FILIP MARIUS LIVIU vs FARAONI ENRICO provinciale Terni turno 5 , 1-3-2020, 0-1 24 m

Al recente torneo provinciale di Terni pur essendo finito per lo spareggio fuori classifica con 3 e mezzo su cinque (quinto assoluto) e quindi deluso per la mancanza di un risultato sportivo, il mio gioco seppure difettoso come dimostra questa partita, è sempre stato combattivo e senza compromessi, cercando di creare squilibri dinamici in tutte le partite (questo significa anche rischiare di finire in posizioni con il bicchiere mezzo vuoto quando ci si spinge troppo oltre per cercare il bicchiere mezzo pieno, per esempio al terzo e quarto turno). Vittoria facile con un esordiente con il sommo Pirc al primo turno, poi Blackmar-Diemer e sacrificio di qualità ricambiato da parte del mio avversario per pareggiare con una ripetizione di posizione al secondo, al terzo sacrificio di donna teorico per due alfieri e pedone culminato con una ripetizione di posizione in una est-indiana famosa (una Kramnik-Kasparov lampo degli anni novanta finita 0-1, vedere https://youtu.be/VommuOQabIw), al quarto interessante gambetto di re con posizioni ricche di tensione e all’ ultimo turno una partita di attacco dove il mio avversario ha dimenticato il re al centro che sarebbe stata memorabile se non fosse viziata da un errore alla tredicesima mossa ricambiato al tratto successivo. Soddisfatto per la ricerca del gioco, ma non per il risultato! Alla fine il prode Achille torna a casa un pò amareggiato ma con belle partite combattute senza sconfitte tra cui anche questa scorretta creazione finale e soprattutto per aver giocato varianti di apertura inusuali che sembrano vietate nella prassi di torneo!

1 d4 d6

Una mossa flessibile che apre i giochi all’ est indiana, alla vecchia indiana, alla pirc, all’ olandese Leningrado, utile anche per lasciare a bocca asciutta i fan di 2 Ag5

2 g3 f5

il nero sembra aver deciso per impiantare una olandese Leningrado

3 Ag2 Cf6 4 Cd2!?

una mossa giocabile anche se lascia mano libera all’ avversario al centro

4..e5 5 de5 de5 6 c3!

creando problemi sulle diagonali bianche a2-g8 (in congiunzione con una ipotetica Cf3-g5) e h1-a8

6..Cbd7 il nero vuole impedire Db3 7 Db3?!

Non precisa ma il bianco non ha nulla da temere per il prosieguo. 7 Cc4 avrebbe generato una lotta complessa

7..Cc5 8 Dc2 c6 9 Cb3!? (9 b4!?) 9..Ae6 10 Cf3 Dc7!

il nero il nero si prepara all’ arrocco lungo senza temere al momento 11 Cg5 per la ritirata dell’ alfiere momentanea sulla casa c8 (d7 da valutare) con successiva h6

11 Ad2?! 11 Cg5 sembrerebbe comunque migliore con gioco pari 11..h6!

giusta ma giocata con troppa superficialità in quanto la generazione di complicazioni proposta da questa mossa produce un impegno di calcolo che il nero forte del suo titolo di coffee house player trascura, del resto se esite un titolo che è quello di GMC (Grande Maestro Condominiale) ci sarà un perché

12 Ch4!

il mio avversario non titolato mette subito il dito nella piaga, provocando nella testa del nero eventi sismici imprevedibili

12..Cb3

13..Df7! ma questa semplice mossa che tiene equilibrato il gioco con le sue insidie tattiche (punto debole b3, inoltre prendendo in f5 di cavallo si va incontro al boomerang Cg4 per esempio) non mi è mai sfiorata per l’anticamera del cervello!

13 ab3 000?

ecco l’idea del nero, sicuramente sbagliata a livello di GM, ma creativa per perdere a livello di GMC! Anche qui 13..Df7 è ok per il nero ma per qualche strano motivo questa mossa non è mai comparsa negli scenari che avevo in testa. Portando in gioco la Ta8 difendo f5 tatticamente a causa della replica Txd2 che costerebbe cara al bianco (occorrerebbe un gioco preciso per pareggiare dopo 14 Cf5? Td2 15 Rd2 Dd7 16 Dd3 Af5 17 Dd7 Cd7 18 Ta7 Cb6 19 e4 Ae6 20 Rc2=) e cerca di distogliere l’attenzione dalla mossa giusta e cioè quella che porterebbe il bianco in vantaggio con 14 Cg6! dopodichè il nero cade in posizione inferiore dopo 14..Tg8 15 Cf8 Tf8 16 Ta7 Rb8 17 Ae3 (anche la ritirata di torre sembra ok, il nero giocherà g5-f4 sull’ arrocco corto del nemico che però ha una posizione solida con un pedone in più) 17..f4 18 Ac5 Cd7! 19 Af8 Ra7 20 Ag7 con complicazioni vincenti per il B;  Il nero vorrebbe alimentare idee di attacco e di sviluppo, la cosa funziona ma solo se gli viene permesso.

14 Ta7?

L’abbaglio tattico ha funzionato, adesso gli eventi svoltano a favore del nero. Come dice Soltis la partita a scacchi è un insieme di mosse sbagliate, così anche il bianco umanamente mette il piede in fallo. Così come il nero ha dimenticato Df7, anche il Bianco dimentica Cg6, con conseguenze drammatiche.

14..Rb8 15 Ta1 Ac5

il nero punta minacciosamente un alfiere contro il re nemico, trascurando il fatto che dopo la spinta in b4 e successiva Da4 il bianco creerebbe delle minacce di matto immediato che costringerebbero alla difesa

16 b4!? se il bianco opta per 16 00 il nero con g5 potrebbe intorbidire le acque, mentre adesso a 16 Cg6 con la famosa idea Cxe5 e diagonale h2-b8 scricchiolante  il nero oltre a 16..Cg4 con l’idea 17 Ch8? (17 00 The8 produce posizioni caotiche) 17..Af2+ 18 Rf1 Db6 ed è vinta per il nero, potrebbe replicare energicamente con 16..Txd2! e gioco poco chiaro 16..Af2!?

Con il senno di poi l’alternativa 16..Ab6 17 c4 g5 18 Cf5 Td2 dovrebbe tenere, ma ormai il nero ha deciso di cercare la gloria come il prode Achille, se non altro guardiamo l’aspetto positivo, non ci sono più le minacce di matto del bianco sulla colonna A e si gioca a una porta sola!

17 Rf2 Cg4 18 Re1 Db6

il nero ha un pezzo in meno ma una forte iniziativa

19 e3?

e finalmente la pressione del nero produce l’errore desiderato, il bianco fino a questo punto aveva retto botta! Era forzata 19 Tf1 che avrebbe portato a grandi complicazioni favorevoli al bianco dopo 19…Txd2! unica (19..Ch2 è inguardabile a causa di 20 Cg6 +-) 20 Dd2 21 Dc1 (21 Dc2 Ce3 dovrebbe far tirare al nero un respiro di sollievo dopo un cumulo di complicazioni che scaturiscono da 22 Da4 g5!) 21..g5 22 Ah3 Ce3 23 Cg2 Td1 24 Dd1 Cd1 25 Td1 g4 il bianco dovrebbe restare con un pedone in più anche se la posizione rimane caotica

19..Txd2!

dopo 19…Ab3??  20 Db3 Td2 21 Rd2 +- il bianco scappa verso la casa a2. Con la mossa del testo il nero alimenta l’attacco e si ritrova con una torre in meno ma a ben guardare quello che fanno i pezzi avversari ci sono ottime chanche di portare a casa il punto perchè bordate di questo tipo psicologicamente fanno perdere lucidità e freddezza ed è un attimo a subire una miniatura. Per inciso anche 19..g5 sembra buona per alimentare l’attacco dopo 20 Cf3 f4 ma la mossa del testo è più spettacolare e soprattutto mostra come diversi pezzi bianchi siano sui bordi della scacchiera inattivi, cosa che permette al nero di giocare anche senza una figura importante

20 Dd2 Td8 21 De2 Ce3

il momento critico della partita, bisogna assolutamente cercare di portare un pezzo a protezione della casa e2 con Af1 o Af3 ma l’attacco del nero è promettente, ad esempio dopo 22 Af1 f4 23 Df2 va incontro a mosse fantasy tipo 23..Da7!! 24 Ta7 (se sposto la torre in c1 24..Da4 dovrebbe produrre kaos tattico) e il nero riesce per lo meno a dare il perpetuo; dopo 22 Af3 e4! il nero non può perdere. A dimostrazione di quanto sia delicato difendersi qui con il bianco c’è anche la linea 22 b3 g5 e la posizione del bianco è insostenibile

22 Cf3??

il bianco collassa

22..Ac4 23 Df2 Cg2+

o anche 23..Cc2+ seguita dal matto in due

24 Dg2 De3

0-1

Il match del secolo condominiale, terza del match, GM Faraoncic accorcia le distanze

[Site “Chess.com”]
[Round “3”]
[White “enricof8”]
[Black “homunculus1”]
[Result “1-0”]
[ECO “B03”]
[WhiteElo “1816”]
[BlackElo “1814”]
[EndDate “2019.01.17”]

All’ indirizzo https://www.chess.com/daily/game/215826638 troviamo la visualizzazione dinamica dlela terza del match, con il bianco frastornato per gli schiaffi presi nella prima e seconda partita del match che é stato ribattezzato dalla stampa specializzata: del secolo condominiale. Dopo aver perso due punti con un sunto all’ indirizzo https://umbriawaypotenzia.wordpress.com/2019/01/20/seconda-del-match-mondiale-condominiale-vs-homunculus1-dopo-io-pensa-ma-qui-posizio-persa-micko-philidor-defence/ , dove nella seconda il nero non ha proprio giocato, il bianco realizza in questa partita che il GM che ha di fronte non va sottovalutato e che per vincere contro l’Alekine bisogna giocare qualche linea migliore che non sia alla seconda mossa 2 d4 come nella partita d’esordio, come dire anche gli scarsono devono correggere il tiro quando non ottengono risultati. Ecco spiegato il perché del punto esclamativo alla seconda mossa.

1.e4 Nf6 2.e5! Nd5 3.d4 Nb6 4.f4 d6 5.Nf3 dxe5 6.fxe5 Bg4 7.Be2 e6 8.O-O Be7 9.Nc3!? NT

Il problema del bianco in questa variante é che deve puntellare d4 e la mossa di cavallo non smuove un dito a favore di tale causa, indi per cui su questa linea il pedone d4 deve essere sacrificato. Chessbase riporta 9 c3

9..Nc6 10.Be3 O-O 11.Qe1? (+0.91 → +0.17)

meglio 11 Af2 a cui potrebbe seguire 11..De8, il sacrificio di pedone bluff inventato dal bianco a gioco corretto non dovrebbe produrre nulla

11…Bxf3! 12.Bxf3 Nxd4 13.Rd1 Nxf3+ 14.Rxf3 Qe8 15.Ne4?

puntando un occhio sulla casa f6, ma 15 Dg3 Rh8 16 Dg4 idea Tg3 potrebbe essere una interessante linea di sviluppo

15..Kh8?

mancando la non facile 15..Da4 che dovrebbe togliere a gioco corretto ogni speranza al bianco

16.Qg3?

andava giocato 16 b3 idea c4 dopo un presumile cambio di torri sulla colonna “d” e il vantaggio del nero é minimo

16..f5? (-1.24 → +1.17)

Blunder. The best move was 16… ♕a4! 17.Nc3 Qxc2 18.Rd2 Qg6 con posizione senza speranza per il bianco

17.exf6 adesso il vantaggio del bianco é stato ripristinato ma servirebbe un’ altra piccola imprecisione
17..gxf6 18.Rdf1!?

18 Dc7 e 18 Ad4 sono da considerare

18..Nd5 19.Bd4

19..e5? 20.Bxe5! fxe5 21.Qxe5+ Nf6

21..Af6 22 Dd5 Td8 23 Dc4 é senza speranza per il nero a gioco corretto

22.Qc3! +-

una bella mossa di attesa che intende riprendersi il maltolto solo nelle condizioni più favorevoli, adesso il bianco gioca per vincere

22..Qg6

22..Db5 idea 23 Cf6 Dc5+ é da considerare

23.Nxf6 Bxf6 24.Rxf6 Rxf6 25.Rxf6 Qg7 26.Rf3 Rd8 27.Qxg7+ Kxg7 28.Rd3

28..Rxd3?!

accellera la fine anche se l’alternativa Tc8 é spiacevole e a gioco corretto non dovrebbe salvare ma questo é il punto, a gioco corretto!

29.cxd3 +-

il finale di soli pedoni sembra perso per il nero adesso c’è solo da capire se il bianco deve spingere i suoi pedoni ad est per attirare l’attenzione del re in quel settore e scivolare sull’ ala di donna al momento opportuno oppure se riuscire nella strategia contraria, invogliare il re nero ad andare ad ovest visto che il pedone in più sul lato opposto assicura la promozione in maniera rapida e indolore

29..Kf6 30.Kf2 Ke5 31.Ke3 c5 32.g4 Kd5 33.a4 b6 34.h4 Ke5 35.Kf3

dovrebbe essere vinta anche dopo 35 h5, forse addirittura più marcata

35..Kd4 36.g5 Kxd3 ?!

36… ♔e5 é relativamente migliore per 37.Kg4 Ke6 38.Kf4 a6 39.Ke4 b5 40.a5 b4 41.h5

37.h5 Kc2 38.g6 hxg6 39.hxg6 Kxb2 40.g7 c4 41.g8=Q c3 42.Qg7

42 Dc4 é ancora meglio secondo le macchine 42…c2 43.Qb4+ Ka2 44.Qc3

42…a6 43.Ke3 b5 44.axb5

o anche 44.Kd3 b4 45.Qg2+ c2 46.Qxc2+ Ka1 47.Qc1+ Ka2 48.Kc2 b3+ 49.Kc3 b2 50.Qxb2#

44…axb5 45.Kd3 idea Dg2+ 1-0

il bianco é riuscito ad accorciare le distanze, adesso il match si porta sul 2 a 1 per il GM homunculus1 ma lasciamo intravvedere il punto di vista del GM avversario:

A – 9) Cc3… Le mie fonti danno come preferibile 9)c3

B – Su 15)….Da4 temevo 16)Ag5

C – 16)…Da4 non mi convinceva troppo….il bianco può giocare 17)Cg5 che è fastidiosa ma anche 17)Cc3!? Dc2 18)Tdf1 Dg6 19)Dg6 fg6 20)Tf8 Tf8 21) Tf8 Af8 19)Cb5 poco chiaro….

D – 16)….f5 brutta mossa! Apre il gioco a favore del bianco! Avevo pensato anche a 16)….Tad8 17)Tdf1 Cd5 18)Ag5 b5 19)Dh4 con enorme compenso per il bianco!

E – 26)Tf3….. Mi aspettavo 26)Df3….

F – 35)Rf3…..qui probabilmente si vince con quasi tutte le mosse ma secondo me è più precisa 35)h5….

Trattamento evans del gambetto di re, miglioriamo il gioco del bianco

[Site “Chess.com”]
[White “enricof8”]
[Black “mlamdmar”]
[Result “0-1”]
[ECO “C30”]
[WhiteElo “1832”]
[BlackElo “1391”]
[EndDate “2019.01.13”]

1.e4 e5 2.f4 Bc5 3.Nf3 d6 4.b4?!

(+0.22 → -0.90) Inaccuracy. A better move was 4. c3 Bg4 5.d4 Bxf3 6.gxf3 Qh4+ 7.Ke2 Bb6 8.a4!? NT a5 gioco pari ma anche 8..Cc6 9 a5 Axd4 10 cd4 Cd4 11 Rd3 con posizione giocabile per entrambi. Lo schema scelto dal bianco ricorda un pò la tattica del gambetto evans.

4…Bxb4!

il miglior modo per confutare un gambetto é accettarlo. Le macchine indicano questa mossa come inaccurata, con la partita che rientra su binari aperti per entrambi, 4..Ab6 dovrebbe dare un vantaggio netto, ma di fatto é il bianco che deve dimostrare qualcosa con il pedone in meno: -1.12 → -0.42 , a better move was 4…Bb6 5.Na3 Nf6 6.Nc4 Nc6 7.d3 Nxb4 8.Qd2 Nc6 9.fxe5

5.c3 Ba5 6.fxe5 dxe5 7.Bc4 Nc6 8.O-O Nf6 9.Ba3 Bg4! NT

chiaro vantaggio del nero e anche la mossa più forte secondo le macchine, chessbase riporta 9..Ab6+ che potrebbe dar luogo a rientri

10.Qb3?

(-0.86 → -2.10) Inaccuracy. A better move was 10.h3! Bh5! (10..Af3 11 Df3 Ce7 12 d4! Cg6 12 Dg3 gioco pari) 11.Bb5 (11 De1 leggero vantaggio nero) 11..Bxf3! (11..Ce4?! 12 Da4! gioco confuso) 12.Rxf3 Qd7 13.Rd3 Qe6 14.Qe2 Bb6+ 15 Rh1 De6 16 De2 leggero vantaggio del nero; 10 Cg5!? Dd7! chiaro vantaggio nero idea 000 evitando la patta sul sacrificio di donna; la migliore é 10 Ab5 idea Ce4 11 De2 e vantaggio minimo del nero ad esempio 11..Af3 12 Tf3 Ab6+ 13 Rf1! Dh4 14 d3 e controgioco attivo in cambio del pedone

10…Bb6+ 11.d4?

accellera la fine

11..Qd7

idea 000 -+ ma anche con la spiacevole minaccia per il bianco 11..Ca5

12.Kh1

12 Cg5 Ah5 13 Rh1 000 -+

12..Bxf3!

la mossa risolutiva secondo il computer

13.Rxf3 exd4 14.Bb5 Nxe4!

di nuovo un tratto da silicio, nel senso che salta fuori sulla scacchiera di nuovo la mossa più forte

15.Bxc6 bxc6 16.cxd4 O-O-O 17.Nc3 Nd2

0-1

conclusioni: viste le due partite precedenti in cui il mio avversario aveva perso abbastanza velocemente con degli strafalcioni, questa sonora batosta maturata con le mosse migliori del nero sulla scacchiera suona un pò sospetta; mettiamola così potrebbe essere un test per verificare se il bianco é un computer oppure no, certo é che l’umana 10 h3 al posto dell’ errata Db3 non é facile da trovare sulla scacchiera per restare a galla di bianco!

Best games 2018, Carlsen come il prezzemolo anche se non usa PYTHON

Sacrifici corretti, sacrifici scorretti, ma una bella partita giocata ha tutta una serie di parametri per essere giudicata avvincente e bella e artisticamente adeguata rispondendo a precisi criteri di armonia e correttezza oppure no? All’ indirizzo http://www.chessgames.com/perl/chesscollection?cid=1025103 abbiamo delle prestazioni da urlo ma sarò tutto vero? Ad esempio in questa prestazione di Shirov limitata solo dal fatto che é stata giocata in simultanea, il bianco pigro e indolente sacrifica un paio di torri d’angolo per concludere velocemente la partita in apertura: http://www.chessgames.com/perl/chessgame?gid=1704700 inoltre sono reperibili molte partite di attacco giocate anche in maniera pulita e cristallina come ad esempio http://www.chessgames.com/perl/chessgame?gid=1485587 ma veniamo al punto, quali sono state le partite finora inizio 2018 che meritano menzione artirtica? Chessgames menziona Carlsen http://www.chessgames.com/perl/chessgame?gid=1908642, Giri http://www.chessgames.com/perl/chessgame?gid=1908518 e Anand il vecchietto decrepito in grande spolvero http://www.chessgames.com/perl/chessgame?gid=1908509 in effetti queste tre partite da sole sono in grado se visionate di produrre un patologico mal di testa della durata di un mese (mentre guardando una sola partita di un certo Planinc, una qualsiasi, il mal di testa durerebbe oltre 12 mesi senza soste). Complicazioni a go go che rispondono anche alla domanda critica: che cosa serve realmente per migliorare negli scacchi e fare il salto di qualità una volta che si sono appresi gli elementi di base per una corretta valutazione posizionale? Analisi, analisi e ancora anlisi. Senza la capacità di calcolare complesse varianti senza perdere aderenza con la realtà difficilmente si andrebbe da qualsiasi parte. E ora passiamo a Karpov, pardon volevamo dire a Pyton anche se tra i due ci sono delle analogie.Linguaggio compilato? Interpretato? Generazione di un bytecode e macchina virtuale? Andiamo con calma ad esempio: https://it.wikipedia.org/wiki/Interprete_(informatica) e proseguiamo con sangue freddo https://it.wikipedia.org/wiki/Linguaggio_compilato. All’ indirizzo https://umbriawayfocus.wordpress.com/2018/02/10/ma-se-io-gioco-il-gambetto-di-re-contro-aronian-posso-fare-patta-la-risposta-e-affermativa-se-usi-python-e-se-ti-chiami-carlsen/ abbiamo iniziato a curiosare su Pyton, a questo punto approfondiamo. Come dice mamma wiki Python è un linguaggio multi-paradigma, che ha tra i principali obiettivi dinamicità, semplicità e flessibilità. Supporta il paradigma object oriented, la programmazione strutturata e molte caratteristiche di programmazione funzionale e riflessione. Le caratteristiche più immediatamente riconoscibili di Python sono le variabili non tipizzate e l’uso dell’indentazione per la definizione delle specifiche. Altre caratteristiche distintive sono l’overloading di operatori e funzioni tramite delegation, la presenza di un ricco assortimento di tipi e funzioni di base e librerie standard, sintassi avanzate quali slicing e list comprehension. Il controllo dei tipi è comunque forte (strong typing) e viene eseguito a runtime (dynamic typing). In altre parole, una variabile è un contenitore al quale viene associata un’etichetta (il nome) che può essere associata a diversi contenitori anche di tipo diverso durante il suo tempo di vita. Usa un garbage collector per la liberazione automatica della memoria. Python ha qualche somiglianza con Perl, ma i suoi progettisti hanno scelto la via di una sintassi più essenziale e uniforme, con l’obiettivo di aumentare la leggibilità del codice. Analogamente a Perl è classificato spesso come linguaggio di scripting, ma pur essendo utile per scrivere script di sistema (in alternativa per esempio a bash), la grande quantità di librerie disponibili e la facilità con le quali il linguaggio permette di scrivere software modulare favoriscono anche lo sviluppo di applicazioni molto complesse. Approndiamo sempre all’ indirizzo: https://it.wikipedia.org/wiki/Python :sebbene Python venga in genere considerato un linguaggio interpretato, in realtà il codice sorgente non viene convertito direttamente in linguaggio macchina. Infatti passa prima da una fase di pre-compilazione in bytecode, che viene quasi sempre riutilizzato dopo la prima esecuzione del programma, evitando così di reinterpretare ogni volta il sorgente e incrementando le prestazioni. Inoltre è possibile distribuire programmi Python direttamente in bytecode, saltando totalmente la fase di interpretazione da parte dell’utilizzatore finale, e ottenendo programmi Python a sorgente chiuso. Come il Lisp e a differenza del Perl, l’interprete Python supporta anche un modo d’uso interattivo attraverso il quale è possibile inserire codice direttamente da un terminale, visualizzando immediatamente il risultato. L’interprete è inoltre contenuto nella libreria standard e come in molti altri linguaggi interpretati è possibile far valutare stringhe arbitrarie nel contesto corrente. È però possibile passare all’interprete anche un contesto completamente diverso, sotto forma di liste che contengono l’elenco dei simboli definiti. Python dispone anche di un framework per lo unit testing che supporta lo sviluppo di test unitari automatici. E le prestazioni? Se paragonato ai linguaggi compilati statically typed, come ad esempio il C, la velocità di esecuzione non è uno dei punti di forza di Python, specie nel calcolo matematico. Esiste un’estensione, Psyco, che è una sorta di compilatore JIT in grado di velocizzare in modo notevole alcuni tipi di codice, specialmente l’implementazione di algoritmi, pur aumentando la memoria utilizzata. Le performance di Python sono allineate o addirittura superiori ad altri linguaggi interpretati, quali PHP e Ruby, e in certe condizioni può rivaleggiare anche con Java. Non va inoltre dimenticato che Python permette di aggirare in modo facile l’ostacolo delle performance pure: è infatti relativamente semplice scrivere un’estensione in C o C++ e poi utilizzarla all’interno di Python, sfruttando così l’elevata velocità di un linguaggio compilato solo nelle parti in cui effettivamente serve e sfruttando invece la potenza e versatilità di Python per tutto il resto del software.

Davide batte Golia, quando una mossa come 13 Ag5 rende vano qualsiasi commento, anche quelli in PHP!

Qualcuno ha mai sentito nominare un certo Cordes? Aveva il bianco contro Miles nel 1985 a Bad Warisofen che non so dove stà e a un certo punto salta fuori da qulche lontano universo parallelo una mossa pazzesca come 13 Ag5, certamente sono gli anni più belli per gli scacchi giocati, quelli in cui la matematica e l’informatica erano ancora mescolati alla componente umana. Che può fare Miles, magari difende il pedone con Tf8 ma ecco arrivare uno schema da matto anomalo con 14 De5 scacco. Vabbé so quei pochi minuti di celebrità che tutti prima o poi nella vita attraversiamo se non altro quando ci tocca imprecare alle poste quando qualcuno ci passa davanti. E che succcederà mai, il nero sembra averla sfangata con materiale del tutto pari dopo che quella casa d6 diventa il trampolino di lancio tattico per tutti i giochetti sterili del bianco. Sterili? Alla mossa 19 ecco arrivare una semplice spinta di apertura delle linee con il re nero ormai sfinito e si riaprono le danze fino a quando il nero viene piegato e costretto a perdere materiale. Grande prestazione di Cordes quindi http://www.chessgames.com/perl/chessgame?gid=1097651 ma i misteri sopra questa partita rimangono e Giacobbo che fa? Chi é questo Cordes e perché nessuno lo conosce e come mai ha tirato fuori una prestazione da urlo? E ora con seo specialist Umbria saltiamo a PHP. In molti casi se si desidera che siano visualizzati tutti i messaggi di errore durante lo sviluppo, ma non in fase di produzione si può agire sul PHP.ini. Immettere error_reporting =0 e nella pagina web non verrà visualizzato nessun messaggio di errore. E’ possibile registrare i messaggi di errori in un file di LOG invece di disattivarli completamente. Si utilizzano due impostazioni nel file php.ini: impostare log_errors = On e error_log = percorso/nomefile. RISULTATO: gli errori PHP vengono registrati nel file dal nome specificato. Per maggiori delucidazioni rimandiamo all’ articolo scritto da seo specialist Umbria all’ indirizzo https://umbriawayamplifica.wordpress.com/2018/01/04/messaggi-di-errore-in-php-e-mosse-bastarde-non-e-un-titolo-cult-del-nobel-della-letteratura-kazuo-ishiguro-ma-una-scelta-infida-di-kortchnoi-contro-ljubojevic-a-linares-nel-1985/. E ora in seguito a numerose interrogazioni nell’ aula parlamentare di Umbriaway Consulting cerchiamo di dare una risposta al signor Marzullo di strada del Mughetto a Gallipoli: come faccio a escludere porzioni di codice senza cancellarle? L’argomento é stato affrontato numerose volte e rischia di scapparci il morto ma rispondiamo in maniera cortese. I commenti sono note incorporate nello script. PHP ignora i commenti. I commenti forniscono informazioni per la persona che deve decodificare il codice e capire come si é intervenuti nello script e per fare cosa. I commenti vengono anche usati e utilizzati per circoscrivere la semantica del codice e le sezioi critiche della struttura di una pagina. I commenti semplificano e non complicano e vanno usati, sentenzia Faraoni Enrico CEO di Umbriaway Consulting. I commenti possono avere la distanza desiderata e possono essere inseriti ovunque nello script. Il PARSER PHP ignora queste sezioni di codice e trascura eventuali TAG che sono annidati all’ interno di un commento. Con /* indichiamo l’inizio di un commento mentre con */ ne circoscriviamo la fine. Il blocco può trovarsi su più righe se necessario ad esempio /* testo del commento ….*/ é anche possibile indicare un commento di una sola riga. I caratteri // e # indicano l’inizio di una SOLA RIGA di commento. Non esistono regole sulla formattazione dei commenti, spesso gli autori degli script oltre a segnalare il nome e i dettagli del codice inseriscono delle vere bacheche. I commenti possono essere inseriti anche dopo che abbiamo iniziato a dare istruzioni. Vediamo alcuni esempi di commenti validi:

# questa riga é un commento
// anchye questa riga é un commento
$age=21; // il commento inizia qui

###############################
#commento
###############################

/* name= login.php
* descrizione: …..
* autore …….
* created:…..
*/

E Vaganian che fa?! La sa giocare la francese? Chiedetelo a Reshevsky!

agenzia web marketingAll’ indirizzo https://en.wikipedia.org/wiki/Rafael_Vaganian troviamo delle informazioni utili su questo mostro degli scacchi. In breve. Ha ottenuto lo status di Grandmaster internazionale nel 1971, all’età eccezionalmente giovane di 19 anni, dopo un eccellente risultato al torneo Vrnjacka Banja dello stesso anno, dove ha ottenuto il primo posto davanti a Leonid Stein e Ljubomir Ljubojević. Questo è stato anche l’anno in cui è arrivato quarto al World Junior Chess Championship, il vincitore è stato il giocatore svizzero, Werner Hug. Sulla scia di questo risultato deludente, era così arrabbiato con se stesso che sfidò Hug a un incontro lampo nel tentativo di recuperare un po ‘di orgoglio. I giocatori hanno fatto il blitz solo e Vaganian è risultato vincitore. Personaggio allegro e popolare nel circuito del grandmaster, la sua prestazione complessiva in carriera è eccezionale e include ulteriori vittorie a Kragujevac 1974, São Paulo 1977, Kirovakan 1978, Las Palmas 1979, Manila 1981, Hastings 1982/83, Biel 1985 (Interzonal), Leningrado 1987, Toronto 1990 e Ter Apel 1992. A Mosca 1982 e Tallinn 1983, condivide il primo posto con Mikhail Tal e al Næstved 1985 con Walter Browne e Bent Larsen. Ha vinto due volte il torneo di scacchi di Reggio Emilia, la 35a edizione 1992/93 e la 37a edizione 1994/95. A Odessa nel 1989, ha vinto il 56esimo campionato sovietico al suo 38esimo compleanno. Nei precedenti tentativi aveva condiviso il terzo posto a Leningrado nel 1974 ea Mosca nel 1983, mentre finiva secondo nella sua città natale, nel 1975.agenzia web marketing È stato candidato al campionato del mondo due volte, perdendo per Andrei Sokolov nel 1986 e per Lajos Portisch nel 1988. Si stima che abbia vinto più di trenta tornei in totale, e nel 2004, legato per il primo posto a Mosca L’Aeroflot si apre con Sergei Rublevsky e Valerij Filippov. Nel gennaio 2005, il suo punteggio Elo raggiunse brevemente il massimo del 21 ° secolo al 2670, rimettendolo tra i primi 50 del mondo, nonostante fosse a metà degli anni Cinquanta. Il profilo di questa bestia agonistica lo si trova all’ indirizzo http://www.chessgames.com/perl/chessplayer?pid=13989 e ci sono delle gemme che in tanti forse ricorderanno, come la celebre francese contro Reshewsky giocata nel 1976 http://www.chessgames.com/perl/chessgame?gid=1145474 dove si evince che passeggiare con troppa sicurezza in apertura verso il centro della scacchiera non é qualcosa che fa bene al tabellone. mPer vedere il più classico degli alfiere prende pedone f7 bisogna andare su http://www.chessgames.com/perl/chessgame?gid=1145443 mentre per rispondere alla domanda critica “ma questi GM finito il periodo d’oro a distanza di anni sono ancora in grado di battere in maniera convincente forti GM contemporanei?” bisogna vedere come viene tritato il francese Lautier all’ indirizzo http://www.chessgames.com/perl/chessgame?gid=1277125. E per rispondere al quesito posto da agenzia web marketing sullo stile scomodiamo la colonna Suetin che nel 1985, lo ha descritto come un giocatore con grandi doti naturali. Avendo giocato con lui un certo numero di volte, aveva percepito i grandi poteri di intuizione degli armeni: “Ha una bella sensazione della dinamica di una battaglia a scacchi e sa come intensificare il gioco al momento giusto, non sempre calcola le varianti completamente, facendo affidamento sul suo naturale intuito.” Delle idee volatili di Vaganian alla scacchiera, ha aggiunto “… Il sentimento di paura o incertezza gli è sconosciuto: è un ottimista perpetuo, pieno di intenzioni ambiziose in ogni fase di ogni gioco, con un temperamento esplosivo …”. E ora dopo aver capito che le partite di Vaganian vanno viste studiate ripassate e memorizzate perché senza cultura scacchistica non si va da nessuna parte saltiamo con le esigenze didattiche di Umbriaway Consulting a JavaScript parlando di ARRAY e di armadi e di cassetti e di rappresentazioni di dati. Le matrici ricorda agenzia web marketing, memorizzano più valori in una singola variabile. Per memorizzare tre nomi di corso, hai bisogno di tre variabili.

var course1 =”HTML”;
var course2 =”CSS”;
var course3 =”JS”;

Ma cosa succede se hai avuto 500 corsi? La soluzione è un array.

var courses = new Array(“HTML”, “CSS”, “JS”);

Questa sintassi dichiara una matrice denominata corsi puntualizza agenzia web marketing, che memorizza tre valori o elementi. Si fa riferimento a un elemento dell’array facendo riferimento al numero di indice scritto tra parentesi quadre. Questa istruzione accede al valore del primo elemento nei corsi e cambia il valore del secondo elemento.

var courses = new Array(“HTML”, “CSS”, “JS”);
var course = courses[0]; // HTML
courses[1] = “C++”; //Changes the second element

[0] è il primo elemento di un array. [1] è il secondo. Gli indici di matrice iniziano con 0. Tentativo di accedere a un indice all’esterno dell’array, restituisce il valore non definito.

var courses = new Array(“HTML”, “CSS”, “JS”);
document.write(courses[10]);
//Outputs “undefined”

Il nostro array di corsi ha solo 3 elementi, quindi il decimo indice, che è l’undicesimo elemento, non esiste (non è definito). Puoi anche dichiarare un array, dirgli il numero di elementi che memorizzerà e aggiungere gli elementi in seguito.

var courses = new Array(3);
courses[0] = “HTML”;
courses[1] = “CSS”;
courses[2] = “JS”;

Un array è un tipo speciale di oggetto. Un array usa numeri per accedere ai suoi elementi, e un oggetto usa nomi per accedere ai suoi membri. Gli array JavaScript sono dinamici, quindi è possibile dichiarare un array e non passare alcun argomento con il costruttore Array (). È quindi possibile aggiungere gli elementi in modo dinamico, evidenzia agenzia web marketing.

var courses = new Array();
courses[0] = “HTML”;
courses[1] = “CSS”;
courses[2] = “JS”;
courses[3] = “C++”;

Puoi aggiungere tutti gli elementi che desideri. Per maggiore semplicità, leggibilità e velocità di esecuzione, è anche possibile dichiarare gli array utilizzando la sintassi letterale dell’array.

var courses = [“HTML”, “CSS”, “JS”];

Ciò risulta nello stesso array di quello creato con la nuova sintassi Array ().
È possibile accedere e modificare gli elementi dell’array utilizzando il numero di indice, come fatto in precedenza. La sintassi letterale dell’array è il modo consigliato per dichiarare gli array. Gli array JavaScript hanno proprietà e metodi integrati utili. La proprietà length di una matrice restituisce il numero dei suoi elementi, focalizza agenzia web marketing.

var courses = [“HTML”, “CSS”, “JS”];
document.write(courses.length);
//Outputs 3

La proprietà length è sempre uno più del più alto indice di array. Se la matrice è vuota, la proprietà length restituisce 0. Il metodo concat () di JavaScript consente di unire array e creare un array completamente nuovo. Esempio:

var c1 = [“HTML”, “CSS”];
var c2 = [“JS”, “C++”];
var courses = c1.concat(c2);

L’array di corsi che contiene 4 elementi (HTML, CSS, JS, C ++). L’operazione concat non ha effetto sugli array c1 e c2 – restituisce la concatenazione risultante come nuova matrice. Mentre molti linguaggi di programmazione supportano matrici con indici nominati (testo anziché numeri), chiamati array associativi, JavaScript no. Tuttavia, è ancora possibile utilizzare la sintassi di array denominata, che produrrà un oggetto. Per esempio:

var person = []; //empty array
person[“name”] = “John”;
person[“age”] = 46;
document.write(person[“age”]);
//Outputs “46”

Ora, la persona viene trattata come un oggetto, invece di essere una matrice. Gli indici nominati “nome” e “età” diventano proprietà dell’oggetto persona. Poiché l’array di persone viene trattato come un oggetto, i metodi e le proprietà di matrice standard produrranno risultati errati. Ad esempio, person.length restituirà 0. Ricorda che JavaScript non supporta gli array con indici nominati. In JavaScript, gli array utilizzano sempre indici numerati. È preferibile utilizzare un oggetto quando si desidera che l’indice sia una stringa (testo). Usa un array quando vuoi che l’indice sia un numero. Se si utilizza un indice denominato, JavaScript ridefinirà la matrice su un oggetto standard. L’oggetto Math consente di eseguire attività matematiche e include diverse proprietà, vediamo un esempio con agenzia web marketing.

document.write(Math.PI);
//Outputs 3.141592653589793

La matematica non ha costruttore. Non è necessario creare prima un oggetto Math. L’oggetto Math contiene un numero di metodi che vengono utilizzati per i calcoli. Ad esempio, quanto segue calcola la radice quadrata di un numero.

var number = Math.sqrt(4);
document.write(number);
//Outputs 2

Creiamo un programma che chiederà all’utente di inserire un numero e avvisare la sua radice quadrata.

var n = prompt(“Enter a number”, “”);
var answer = Math.sqrt(n);
alert(“The square root of ” + n + ” is ” + answer);

Il metodo setInterval () chiama una funzione o valuta un’espressione a intervalli specificati (in millisecondi). Continuerà a chiamare la funzione finché non viene chiamato clearInterval () o la finestra viene chiusa. Per esempio:

function myAlert() {
alert(“Hi”);
}
setInterval(myAlert, 3000);

Ciò chiamerà la funzione myAlert ogni 3 secondi (1000 ms = 1 secondo). Scrivi il nome della funzione senza parentesi quando lo passi nel metodo setInterval. L’oggetto Date ci consente di lavorare con le date. Una data è composta da un anno, un mese, un giorno, un’ora, un minuto, un secondo e millisecondi.
Utilizzando la nuova data (), creare un nuovo oggetto data con la data e l’ora correnti.

var d = new Date();
//d stores the current date and time

Gli altri modi per inizializzare le date consentono la creazione di nuovi oggetti data dalla data e ora specificate.

new Date(milliseconds)
new Date(dateString)
new Date(year, month, day, hours, minutes, seconds, milliseconds)

Le date JavaScript sono calcolate in millisecondi dal 01 gennaio 1970 ore 00:00:00 Universal Time (UTC). Un giorno contiene 86.400.000 millisecondi.

//Fri Jan 02 1970 00:00:00
var d1 = new Date(86400000);

//Fri Jan 02 2015 10:42:00
var d2 = new Date(“January 2, 2015 10:42:00”);

//Sat Jun 11 1988 11:42:00
var d3 = new Date(88,5,11,11,42,0,0);

JavaScript conta mesi da 0 a 11. Gennaio è 0, e dicembre è 11. Gli oggetti data sono statici, anziché dinamici. Il tempo del computer sta ticchettando, ma gli oggetti data non cambiano, una volta creati. Quando viene creato un oggetto Date, un numero di metodi consente di eseguire operazioni su di esso.

var d = new Date();
var hours = d.getHours();
//hours is equal to the current hour

Creiamo un programma che stampi l’ora corrente nel browser una volta al secondo.

function printTime() {
var d = new Date();
var hours = d.getHours();
var mins = d.getMinutes();
var secs = d.getSeconds();
document.body.innerHTML = hours+”:”+mins+”:”+secs;
}
setInterval(printTime, 1000);

Abbiamo dichiarato una funzione printTime (), che ottiene l’ora corrente dall’oggetto data e la stampa sullo schermo. Abbiamo quindi chiamato la funzione una volta al secondo, utilizzando il metodo setInterval. La proprietà innerHTML imposta o restituisce il contenuto HTML di un elemento. Nel nostro caso, stiamo modificando il contenuto HTML del corpo del nostro documento. Questo sovrascrive il contenuto ogni secondo, invece di stamparlo ripetutamente sullo schermo.

Mongoose quando un database diventa orientato agli oggetti anche con json, a cura di web marketing Umbria!

La miniatura inflitta da Vladimir Borisovich Tukmakov vs Yuri S Razuvaev al 50th USSR Championship (1983), Moscow URS, rd 1, Apr-03 Queen’s Indian Defense: Fianchetto. Nimzowitsch Variation (E15) finita in maniera tattica e rocambolesca con un 1-0, rientra nei sacrifici di donna, proprio oggi che é la giornata mondiale vs la violenza alle donne. Razuvaev in questa partita forse ha abbandonato il suo proverbiale senso del pericolo, evidenzia web marketing Umbria, per andare a caccia grossa di donne altisonanti, desiderio che Tukmakov ha assecondato, perché l’attività trasmessa dalla assurda vitalità dei pezzi minori del bianco rientra nella categoria iniziativa da far subire a tutti i costi e che fa ottenere risultati e veloci miniature, in questo caso in 27 mosse. Liquidata la parte strategica dei contenuti del post da parte di web marketing Umbria passiamo ad approfondire la complessità dei moduli front end per l’aspirante sviluppatore web con le righe di comando, node e mongo, tutti framework che ci consentiranno di costruire interessanti applicazioni. Per entrare subito nel vivo degli argomenti iniziamo a smanettare su https://nodejs.org/it/ dove dalla pagina principale arriviamo a https://www.npmjs.com/package/mongoose e per avere i riferimento rispetto a installazione e uso di MONGOOSE andiamo su http://mongoosejs.com/. Come al solito l’installazione avviene in maniera semplice con il comando $ npm install mongoose. Su UmbriawayVendita siamo entrati in quello che era il modulo MongoDB ma in questo caso abbiamo deciso di utilizzare un’ altro modulo dopo averlo scaricato che si chiama per l’appunto MONGOOSE che come database ha la particolarità di essere orientato agli oggetti. Con JS coinvolto anche nelle logiche asincrone di XML in Mongoose viene introdotto un nuovo tema, quella della PROMESSA che non é un film anche divertente da vedere ma una promessa per l’appunto che nel corso della giornata andrò a completare tutti i miei compiti, che essi siano di passare in edicola piuttosto che andare al cinema per vedere l’ultima versione di Blade Runner. La metafora in carne ed ossa si sposa con quelle che sono le logiche di Mongoose nel senso che nelle attività asincrone abbiamo la certezza che prima o poi quel compito verrà eseguito senza incappare in un blocco sincrono che non fa andare avanti se va incontro a qualsiasi inghippo. Web marketing Umbria fa notare che NODE di suo é sincrono nel senso che tu dai un comando e lui lo esegue mentre Mongoose é asincrono nel senso che le chiamate prima o poi verranno elaborate ed eseguite. In MongoDB avevamo visto che il collegamento avveniva tramite DRIVER o API per eseguire le diverse funzioni da esercitare. Mongoose segue logiche diverse, consente di istanziare i suoi oggetti utilizzando semplici funzioni JS. In particolare la connessione é il primo problema da risolvere e dopo ci ritroveremo subito a definire lo SCHEMA che non é altro una dichiarazione di intenti in cui il programma delinea una struttura e un tipo dei dati su campi come autore o editore o titolo assegnando i soliti stringa o intero o booleano a seconda delle necessità.

Una volta che abbiamo lo schema con web marketing Umbria andremo ad eseguire le nostre funzioni con il MODELLO che istanzia e rende operative le nostre necessità con comandi CRUD che conosciamo in lettura, scrittura, aggiornamento, cancellazione dei dati. Ne deriva pertanto il fahe lo Schemas che é una sorta di indice strutturato deve sempre precedere il Models. Le parole chiave sono quelle usate anche sol pacchetto MongoDB quindi ci ritorveremo a che fare con PROMESSE intrise di metori remove, find (posso cercare un elemento o più elementi o anche per ID), delete e update. E siamo giunti alla conclusione di questo breve excursus con web marketing Umbria e quindi è doveroso fare una sintesi di quello che é stato prodotto a livello di post su uno dei tanti portali di Umbriaway Consulting. Abbiamo visto come installare NODE, affrontato la questione dell’ integrazione dei moduli con NPM, sappiamo inizializzare le nostre applicazioni con il comando node app.js, sappiamo come includere file JSON nei nostri progetti con il comando NPM INIT, abbiamo imparato come connetterci a MongoDB e Mongoose e come gestire i dati in modalità CRUD, create, leggere, aggiornare, cancellare dati. Abbiamo utilizzato due ottimi tools come Nodemon e Robomongo. A questo punto ci manca la parte migliore che risponderà alla domanda ma come faccio a organizzare una applicazione completa con tutti questi elementi? Prima di alzare l’asticella segnaliamo che la grafica inclusa da web marketing Umbria nel post é royalty free presa dall’ ottimo sito https://unsplash.com. Stay tuned adesso viene il bello!

Ma come hai fatto ad allineare tutti gli articoli su una unica riga? Ma il float come proprietà con i CSS la usi?

Diciamocelo la vita non sarebbe la stessa senza i CSS, certo é roba leggerina più per web designer piuttosto che per web developer, ma hanno un grande potenziale per rendere graficamente accattivanti pezzi di codice grezzo che senza un vestito ammiccante darebbero poca soddisfazione nello sviluppo web in Umbria. Vediamo questo all’ indirizzo: http://www.farwebdesign.com/css/aforismi/…verrebbe da chiedere ma come si fa ad allineare tutti gli articoli su unica riga oppure come si fa a delimitare i div con il bordino e il radius angolare? Come faccio agestire le immagini? Come faccio a centrale tutto il materiale più a destra piuttosto che sopportare passivamente un allineamento a sinistra che mi viene proposto in automatico? Prima di rispondere a tutte queste domande con web developer Umbria chiediamoci prima se hai fede scacchisticamente nel calcolo delle varianti. Mettiamo il caso che ti stai giocando una posizione tipo http://www.chessgames.com/perl/chessgame?gid=1152906 e dici ok adesso metto il cavallo nella casa c3 confidando sul fatto che non posso perdere d4 a causa del trucchetto tattico scacco in g6…ebbene tutta questa superficialità da parte di Gligoric non é così premiante nel senso che il nero Schmidt mangiò proprio in d4 confidando su una apertura della colonna h che il bianco non aveva fatto previsto…notevole il modo in cui tatticamente il B sia riuscito a creare fuffa torbida da acqua del tevere fiendo per pattare la partita ma certo l’episodio mostra uno dei pericoli N 1 per gli scacchisti, la pigrizia analitica! Certo che la mossa 8 Cd5 così a occhio farebbe pensare a qualocosa di geniale ma solo umanamente visto che così a intuito un motore si schiererebbe come vittoria da parte del nero! Ok adesso possiamo tornare a tutte le domande di cui sopra con web developer Umbria, con tasto destro si può vedere il sorgente e arrivare a delle risposte automatiche per ogni quesito dal momento che tutte le regole CSS assolvono a compiti ben specifici. La centratura degli elementi si é verificata con un banale utilizzo del comando regola margin-left su una impostazione CSS del body, mentre i border-radius caratterizzano l’area che viene spalmata sul display con l’accorgimento float: left sull’ elemento di interesse che spinge tutti gli elementi appunto svolazzanti a coprire l’intera pagina, cosa che in assenza di questa regola impilerebbe tutto con un lunghissimo scroll verticale. Per quanto riguarda le combinazioni capita a tutti di vederle con molto ritardo anche a distanza di anni volendo!

Blog su WordPress.com.

Su ↑