Livello 2 di python Basic Data Types: come migliorare tatticamente e vivere felici, una lezione dal GM Hector con novità preparata sull’ attacco Keres, 18 Rb1!

Come faccio a migliorare se non riesco a creare problemi di gioco all’ avversario? Se gli scacchi fossero facili o semplici saremmo tutti GM! Invece gli scacchi sono molto complessi e il compito di un buon giocatore é quello di spingere l’altro lottatore al di là della linea bianca, costringerlo a risolvere problemi concreti sulla scacchiera. Ma Pyton invece é semplice visto ché articolato su un modello a livelli che ricorda il modello OSI? Il primo livello é quello degli oggetti nomi e tipi mentre al secondo livello abbiamo lo strato BASIC DATA TYPES dove si affrontano le spinose questioni dei tipi nnumerici stringhe operatori ed espressioni per valutare delle situazioni. Abbiamo ancora qualcosa prima e per l’esattezza il NONE TYPE che é un oggetto che ha come istanza la dicitura NONE ossia un valore di ritorno da quelle funzioni definite dalla parola chiave def che in assenza di un valore di ritorno per l’appunto restitueranno un NUNN di rito. Un null come tipo di DATO ha una vita propria. Detto questo cerchiamo di capire un attimo se la nostra aspirazione é divenire veri attaccanti di trovare le mosse giuste in queste posizioni critiche con una sorta di test simulato

Dopo 5..d6 del nero quale é la mossa più incisiva a disposizione del bianco se intende creare delle situazioni tattiche?!
_____________________________________________________________________________________________

Dopo 13..a6 come leggi la posizione e quale mossa faresti?
__________________________________________________________________________________________

Dopo 16…Dxf2! come prosegue il bianco in maniera incisva?
________________________________________________________________________________________

E dopo 18..d5! come continua l’attacco il bianco?

Andiamo con ordine rispondendo alla prima domanda ci verrebbe da dire che l’attacco Keres come dimostra questa partita, la Hector – Mortensen Danimarca 1990 estrapolata dal libro di Aagard il manuale dell’ attacco, é molto pericoloso. Quindi 6 g4! Rispondendo alla seconda questione cerchiamo di valutare cosa vuole fare il nero, ci fa notare Aagard. Se giocasse arrocco lungo e Ae7 la sua posizione sarebbe solida i punti e5 e h5 del resto sembrano saldamente nelle sue mani invece é proprio qui che arrivano i colpi di ariete decisivi. Dopo 14 h5! il bianco minaccia la fastidiosa h6 che non si può permettere quindi l’unico modo per risolvere é accettare il sacrificio di pedone ma così il re nero rimane al centro della scacchiera e in posizione insicura. Questo crea una situazione di pezzi attivi da parte del bianco dal momenti che la torre a8 del nero é impossibilitata a entrare in gioco! E infine dopo 16..Dxf2! (il punto esclamativo deriva dall’ ereditarietà agonistica del GM Larsen che mangiava sempre tutto e poi andava a star bene restituendo materiale) il bianco apre varchi con la preparata 17 e5! con l’idea di dare la casa e4 al cavallo e dopo 17..Df5 abbiamo la novità del bianco che impedisce Dxg5 e Ah6 18 Rb1 NT 18..d5 19 Tde1! preparata appositamente da Hector per questa partita! Link https://chesstempo.com/gamedb/game/1709604

Annunci

Come smantellare le difese del re e vivere felici, ovvero ma perché le modalità di attacco MVC sono molto dispendiose come interazione tra le parti?

Framework PHP che lavorano in MVC? E’ pieno il mondo! Ad esempio Laravel, Codeigniter o Simphony o tutta una serie di strutture base minori che lavorano in maniera efficace come php easy mvc scaricabile all’ indirizzo https://github.com/elrod/php-easyMVC. Per la verità ognuno ha le sue codifiche e il suo modo di strutturare file e cartelle ma il principio rimane invariato che é quello che lega il controller alle viste attingendo ai modelli, il tutto per scomporre molecole di programmazione complesse in atomi elementari riutilizzabili in maniera veloce. Un altro esempio di framework di questo tipo é quello che si trova all’ indirizzo http://www.farwebdesign.com/aforismimvc considerato il capostipite dinosauro di una (si spera) fertile evoluzione almeno a livello di comprensione. Tornando a questo framework easy php mvc presentato all’ indirizzo http://nerdangolo.altervista.org/un-framework-mvc-semplicissimo-php-easymvc/ che dire? L’articolo illustra bene il potenziale inerente per cui si rimanda alla lettura specifica. Il modo migliore per capire é smanettarci sopra come avrebbe fatto Leonardo appassionato di anatomia che misteriosamente di notte si calava in orrendi obitori per vedere che cosa c’era dentro a quel tipo particolare di contenitori. Qui fortunatamente abbiamo solo directory e cartelle e ad esempio quello semplice citato prima come MVC base all’ indirizzo http://www.farwebdesign.com/aforismimvc da solo fa già cristonare non poco quando si passa dal procedurale e CMS più sicuri e complessi strutturati con le classi. Qui si ha un router che instrada le richieste secondo un controller e delle azioni che rimandano a modelli e viste, ovviamente le viste sono le pagine che andremo a vedere a video e possono essere provviste di supporto di layout generici immutabili. Insomma puoi prendere dieci programmatori senior PHP e farti fare un CMS a tema per l’assunzione alla NASA e tanto non ne troveresti due progettato uguali come interazioni, convenzioni sintattiche e strutture di file e cartelle! Certo é che un programmatore senza conoscenze di questi enunciati software architetturali (MVC) é come un essere che miagola nel buio, destinato a non fare il salto di qualità sul versante SENIOR! Ma passiamo alle cose sfiziose, sul tema partite di attacco rocambolesche nella pratica di scacchi agonistica. Vediamo questa gemma http://www.chessgames.com/perl/chessgame?gid=1003436 che cosa avrà pensato il nero giocando Da6?! Qualcosa del tipo adesso ho guadagnato materiale ah ah? Invece colpo di scena la partita finisce con un massacro preparato e neanche tanto nascosto. Obiettivo mettere il re a nudo e smantellare tutti i pedoni che ha davanti per lasciarlo in braghe di tela! Niente di più facile visto che sta per arrivare una girandola di sacrifici come Ch6!! e Tf7!! E quindi? A volte non conviene di andare a caccia di materiale ed essere troppo ottimisti. Da notare valutando le opzioni difensive del nero coma tutti i pezzi siano imbottigliati sul lato di donna senza poter intervenire per salvare alcunché! Ma che in questi posto si prendono in considerazione solo procedimenti di attacco sottili? Macché! Una mossa difensiva che meritas menzione é la famosa 31..Ad7!! di Marshall che rovescia improvvisamente le valutazioni di vittoria del bianco. A vederle e prepararle accuratamente mosse così! Partita indirizzo http://www.chessgames.com/perl/chessgame?gid=1094647 dobe Bauer viene tritato soprattutto dal punto di vista psicologico dal momento che il bianco sembrava poterla da sempre spuntare scrivendo il famoso uno sul tabellone! Insomma con social media marketing Umbria non abbiamo ancora risposto alle domande chiave di MVC ossia come si risolvono in pratica i problemi di sviluppo ma ci stiamo girando in cerchio come avvoltoi che hanno avvistato una risorsa importante in perfetto stile Sergio Leone! E per finire citiamo questo interessante link dove approvvigionare i propri studi scacchistici: https://books.google.it/books?id=jvzl3ZC7skIC&pg=PT6&lpg=PT6&dq=portisch+timman+1985&source=bl&ots=o5H2ZuMSVh&sig=MagpGoRcPdcOsvHyo9KHEzeiq2g&hl=it&sa=X&ved=0ahUKEwjKxMHg1tbYAhXNzqQKHeImAMg4ChDoAQgxMAI#v=onepage&q=portisch%20timman%201985&f=false

Leggere un file esterno con PHP e rimanere brasati nel vedere che in alcune partite uno dei due contendenti non si può muovere senza peggiorare la sua posizione: accendiamola con Social Media Marketing Umbria!

social media marketing umbriaNella famosa partita 16 partita del match di Mosca tra Karpov e Kasparov nel 1985 assistiamo a una strategia “cobra asfissiante” davvero esemplare, evidenzia social media marketing Umbria. Il nero regala un pedone in apertura al bianco che accetta il gentile dono sfidando il suo avversario e dicendo: io so agonista bianconero (mi piace dedicarmi alla scacchiera cioé per evitare le solite risse con i lapeschi affezionati alle case bianche sempre in agguato) dimostrami che hai compenso. Alla mossa 21 il nero gioca la stupefacente 21…g5 e il bianco di colpo improvvisamente ci accorgiamo che non può miglioare in nessun modo la posizione senza creare indebolimenti, che stregoneria é mai questa? C’è un cavallo in d3 che sembra una piovra perché rende passive le torri incapaci di cambi sulle colonne E ed C. L’ Af3 é ridicolo sembra quasi un orpello ornamentale tipo capitello dorico o corinzio. I cavalli bianchi sembrano due belle statuine non possono fare nulla ma a che gioco stiamo giocando eh: http://www.chessgames.com/perl/chessgame?gid=1067175 e guarda caso il bianco si mette nella condizione di subire una serie di tatticismi finali nel tentativo di migliorare la sua posizione. Una bella lezione su iniziativa, materiale, spazio tempo e pressing a tutto campo quasi che offfe una situazione di tipo calcistico (dove peraltro gli scacchi hanno moltissime analogie). E ora torniamo alle farneticazioni da web developer di Social Media Marketing Umbria con la questione della lettura di file testo esterni con PHP. All’ indirizzo http://www.farwebdesign.com/php/Example41-readfile.php troviamo un esempio di come si possa leggere un file esterno di tipo testo con uno script PHP. Per questo esempio crea un semplice
file chiamato somefile.txt nello stesso directory in cui viene eseguito lo script.

<?php
$num_bytes = readfile(‘somefile.txt’);
echo “\n\nThe number of bytes read is: $num_bytes\n”;
?>

La funzione readfile () legge il contenuto del file e lo stampa su schermo. Specificare il percorso del file relativo al file corrente con = readfile(‘somefile.txt’); readfile () restituisce il numero di byte che ha letto. È possibile emettere il contenuto della sceneggiatura stessa passando per la sua percorso per readfile ():

<?php
readfile($_SERVER[‘PHP_SELF’]);
?>

In uno dei prossimi articoli con Social Media Marketing Umbria affronteremo la delicaya questione del perché il nostro sistema solare é in pericolo secondo la moderna teoria dei complotti, pardon, continueremo a esplorare il potenziale degli script PHP.

Il GM Mikenas per piallare Alekhine usava le pseudo classi?

Prima di affrontare le questioni irritanti dei DIV e del posizionamento assoluto o relativo, delle regole di stile che risolvono come clear:both per esempio o ancora di metodi alternativi per risolvere il problema degli elementi flottanti (avete provato a inserire un elemento dentro un DIV CONTAINER allineato a destra? I margini perdono consistenza e collassano e pertanto servono regole di stile che rimettano in carreggiata la struttura! Nel webinar del tre gennaio di Simona Tocci formatrice web designer e web developer indirizzo https://simonatocci.com/ si é parlato di tutto questo e anche di più, come le pseudo classi ad esempio e il ventagliodi opzioni e risorse che mettono a disposizione. L’aspetto interessante come sostiene la brava formatrice é quello del problema che diventa una opportunità e che senza sperimentazione con i CSS3 é difficile assimilare, con particolare attenzione e occhio di riguardo anche lì dove ci sono delle anomalie tipo incongruenze ed errori che possono diventare lampadine accese per mettere in moto altri meccanismi. Quante volte ti sei trovato costretto a combattere con margin, padding, display:table e altre soluzioni stilistiche che di fatto hanno deformato o mostrato a video un risultato inaspettato? C’è un modo per far fare ai CSS e agli elementi della pagina quello che hai in testa senza scatenare una guerra dei cento anni e scagliare a muro il tuo nuovo iphone dieci? Come fare per propagare agli elementi figli CHILD le tue regole in maniera performante e incisiva? L’esercitazione laboratorio con tutti i crismi del caso si trova all’ indirizzo http://www.farwebdesign.com/css/clearfix.html e per l’appunto ci sono all’ interno dell’ esercizio due soluzioni in atto, quella con i clearfix e le pseudo classi before e after e quella tradizionale basata sul dare consistenza ai margini con clear:both lasciano elementi annidati anche vuoti a livello di testo come i paragrafi per esempio. E’ fondamentale avere chiaro che cosia sia un pargrafo o un margine o un padding quando si affrontano queste problematiche e a grandi linee come funzionano i nodi del DOM. Switchando agli scacchi invece saltiamo ad analizzare una figura davvero inquietante agonisticamente un certo signor MIKENAS GM. Qualcuno lo conosce? Accipicchiolina! Persino Alekhine negli scontri diretti sulle tre partite in carriera non riuscì a prevalere con una vittoria una sconfitta ROBOANTE e una patta. All’ indirizzo http://www.chessgames.com/perl/chessgame?gid=1362732 assistiamo a un assassino seriale che uccide la sua preda, nelle competizioni sportive vincere contro un avversario si chiama sport, ma qui il nero viene sezionato come il culto di Iside e pezzi del re nero si ritrovano in ogni dove sopra la scacchiera. La partita é la Vladas Mikenas vs Sergey Fedorovich Lebedev “He’s Mikenas Crazy” (game of the day Nov-07-2010) 4th Georgian Championship (1941), Tbilisi, GEO URS Queen’s Gambit Declined: Modern Variation (D53) 1-0 28 mosse. Per saperne di più vedere l’interessante articolo che si trova all’ indirizzo http://soloscacchi.altervista.org/?p=12341 che esalta le qualità combinative di questo giocatore ma non solo. Un altra partita memorabile di Mikenas é quella all’ indirizzo http://www.chessgames.com/perl/chessgame?gid=1274400 dove come al solito scoppiano i fuochi di artificio anche se non é capodanno. E ovviamente echeggia anche la famosa Tc2!! che costrinse all’ abbandono Alekhine in vista di uno schema di matto geometrico basato su Df3 e Ah3 con carneficina in g2 imparabile. Insomma tra i tanti lavori oggi resi disponibili dalla BCE e dalla globalizzazione qualcuno potrebbe ingegnarsi per sbarcare il lunario e valutare il suo ingresso nel campo della serialità in stile criminal minds e per farlo il modo migliore é analizzare le partite di questo genio cone le rotelle un pò trasversali diventato una celebrità in Lituania. Per concludere consigliamo un approfondimento sulle pseudo classi o sulla portata della soluzione clear:both oltre che una ricerca su tutte le opzioni di visualizzazione degli elementi FLOAT.

Ma é vero che il GM Matanovic non era granché come agonista?

agenzia web marketingMa basta con le fake news che la gente ci crede anche, Matanovic piallava gente del calibro di Tal tanto per fare un esempio e demolire il titolo provocatorio di agenzia web marketing! Per introdurre javascript abbiamo scomodato il GM Petrosjan all’ indirizzo:  https://umbriawayfidelizza.wordpress.com/2017/12/23/petrosjan-non-sapeva-difendersi-forse-sei-in-uno-stato-alterato-di-coscienza-e-comunque-senza-lo-studio-dei-classici-non-ti-serve-a-niente-giocare-lampo-20-ore-al-giorno-su-internet-per-diventare-il/ invece per parlare di variabili abbiamo scomodato Efim Geller all’ indirizzo: https://umbriawayfocus.wordpress.com/2017/12/23/colpi-tattici-da-paura-studia-le-mosse-rocambolesche-partorite-da-quel-pazzo-di-geller/ invece per parlare dei tipi di dati e le loro caratteristiche javascript abbiamo scomodato Nigel Short all’ indirizzo https://umbriawayformazione.wordpress.com/2017/12/24/difesa-pirc-quando-invita-qualcuno-alla-demolizione-dellimpianto-impugnando-una-pistola-il-nome-dell-agonista-che-ha-il-bianco-che-ha-il-fucile-entra-nella-leggenda/ per parlare delle istruzioni condizionali abbiamo scomodato il GM Dreev all’ indirizzo https://umbriawaynoir.wordpress.com/2017/12/25/buon-natale-da-alexey-dreev-best-games/ mentre Tony Miles lo abbiamo scomodato all’ indirizzo https://umbriawayvendita.wordpress.com/2017/12/26/tony-miles-best-games-e-i-mostri-dai-mille-occhi/ per parlare di FUNZIONI in JavaScript. A Gualdo Tadino ci siamo andati per valorizzare il GM Sokolov e per parlare di oggetti indirizzo https://umbriawayvalorizza.wordpress.com/2017/12/26/e-andrei-sokolov-che-fa/ mentre a Nocera Umbra ci siamo andati per valorizzare il GM Vaganian e per parlare di array in JS indirizzo https://umbriawaytarget.wordpress.com/2017/12/27/e-vaganian-che-fa-la-sa-giocare-la-francese-chiedetelo-a-reshevsky/ e infine abbiamo affrontato il gioco di Ljubojevic e il DOM all’ indirizzo https://umbriawaysemplifica.wordpress.com/2017/12/27/e-ljubojevic-che-fa-qualche-combinazione-lha-giocata-in-carriera-risponde-agenzia-web-marketing/. Adesso non ci resta che affrontare con agenzia web marketing il discorso sugli eventi parlando prima di un campione minore come Matanovic grande patron del vecchio caro informatore scacchistico, il cui fascino risiedeva proprio nel suo aromatizzato formato cartaceo. Indirizzo https://it.wikipedia.org/wiki/Aleksandar_Matanovi%C4%87 ecco come ci viene presentato da wikipedia il suo profilo: Aleksandar Matanovic (Belgrado, 23 maggio 1930) è uno scacchista serbo, fino al 1992 jugoslavo, Grande maestro. Campione jugoslavo dei giovani nel 1948, nel 1955 ottenne il titolo di Grande Maestro. Dopo essere stato 2° nel campionato jugoslavo nel 1951, 1956, 1959, lo vinse nel 1962, nel 1969 e nel 1978. Ha partecipato a diversi tornei zonali e interzonali, occupando in questi ultimi posizioni di media classifica. Matanovic ha partecipato dal 1954 al 1972 a 11 Olimpiadi per la Jugoslavia, ottenendo 13 medaglie: 4 individuali (una d’oro in 4a scacchiera a Siegen 1970, due d’argento e una di bronzo) e 9 di squadra (5 d’argento e 4 di bronzo). Ha giocato 146 partite col risultato complessivo di + 61 = 73 – 12 (66,8 %). Nei tornei è stato 1° ad Abbazia nel 1953, 2° a Belgrado nel 1954, 1° ad Amburgo e 2°-3° a Zagabria nel 1955; 1° a Beverwijk nel 1957; nel 1961 è stato 2°-5° a Mar del Plata, 2°-4° a Santa Fe, 1°-2° a Buenos Aires, 1° a Zevenaar; nel 1964 2° a Gerusalemme; nel 1965 2°-4° a Netanya. Dal 1966 è il principale editore dell’Informatore Scacchistico, rivista semestrale di grande diffusione e molto popolare tra gli scacchisti di tutto il mondo. Con la collaborazione di molti grandi maestri ha pubblicato anche una fondamentale enciclopedia delle aperture in cinque volumi. Le partite di questo campione le possiamo ammirare all’ indirizzo: http://www.chessgames.com/perl/chessplayer?pid=21135 dove assistiamo a un bel matto davvero spettacolare contro Buisguer nel 1961 http://www.chessgames.com/perl/chessgame?gid=1028405 per esempio. Oppure una bella vittoria posizionale si fa per dire contro Tal http://www.chessgames.com/perl/chessgame?gid=1139400. A questo punto non ci resta che serrare le file rientrando nei ranghi di javascript per vedere come gestisce gli eventi. Ora che sappiamo come selezionare e modificare gli elementi DOM, possiamo creare una semplice animazione. Creiamo una semplice pagina HTML con un elemento casella che verrà animato utilizzando JS, suggerisce agenzia web marketing.

<style>
#container {
width: 200px;
height: 200px;
background: green;
position: relative;
}
#box {
width: 50px;
height: 50px;
background: red;
position: absolute;
}
</style>

</div>

Il nostro elemento box è all’interno di un elemento contenitore. Nota l’attributo position usato per gli elementi: il contenitore è relativo e la casella è assoluta. Questo ci permetterà di creare l’animazione relativa al contenitore. Animeremo la casella rossa per spostarla sul lato destro del contenitore. Devi avere familiarità con i CSS per capire meglio il codice fornito. Per creare un’animazione, abbiamo bisogno di cambiare le proprietà di un elemento a piccoli intervalli di tempo. Possiamo ottenere questo risultato utilizzando il metodo setInterval (), puntualizza agenzia web marketing, che ci consente di creare un timer e chiamare una funzione per modificare le proprietà ripetutamente a intervalli definiti (in millisecondi). Per esempio:

var t = setInterval(move, 500);

Questo codice crea un timer che chiama una funzione move () ogni 500 millisecondi. Ora dobbiamo definire la funzione move (), che cambia la posizione della casella.

// starting position
var pos = 0;
//our box element
var box = document.getElementById(“box”);

function move() {
pos += 1;
box.style.left = pos+”px”; //px = pixels
}

La funzione move () incrementa la proprietà left dell’elemento box di uno ogni volta che viene richiamata. Il seguente codice definisce un timer che chiama la funzione move () ogni 10 millisecondi:

var t = setInterval(move, 10);

Tuttavia, questo rende la nostra casella spostarsi a destra per sempre. Per interrompere l’animazione quando la casella raggiunge la fine del contenitore, aggiungiamo un semplice controllo alla funzione move () e usiamo il metodo clearInterval () per fermare il timer.

function move() {
if(pos >= 150) {
clearInterval(t);
}
else {
pos += 1;
box.style.left = pos+”px”;
}
}

Quando l’attributo di sinistra della casella raggiunge il valore di 150, la casella raggiunge la fine del contenitore, in base a una larghezza del contenitore di 200 e una larghezza del riquadro di 50.
Il codice finale:

var pos = 0;
//our box element
var box = document.getElementById(“box”);
var t = setInterval(move, 10);

function move() {
if(pos >= 150) {
clearInterval(t);
}
else {
pos += 1;
box.style.left = pos+”px”;
}
}

Congratulazioni, hai appena creato la tua prima animazione JavaScript! È possibile scrivere codice JavaScript che viene eseguito quando si verifica un evento, ad esempio quando un utente fa clic su un elemento HTML, sposta il mouse o invia un modulo. Quando si verifica un evento su un elemento di destinazione, viene eseguita una funzione di gestore. Gli eventi corrispondenti possono essere aggiunti agli elementi HTML come attributi. Ad esempio: <p onclick = “someFunc ()”> del testo </ p>. Mostriamo un popup di avviso quando l’utente fa clic su un pulsante specificato:

<button onclick=”show()”>Click Me</button>

function show() {
alert(“Hi there”);
}

I gestori di eventi possono essere assegnati agli elementi. Per esempio:

var x = document.getElementById(“demo”);
x.onclick = function () {
document.body.innerHTML = Date();
}

Gli eventi onload e onunload vengono attivati ??quando l’utente entra o esce dalla pagina. Questi possono essere utili quando si eseguono azioni dopo che la pagina è stata caricata.

<body onload=”doSomething()”>

Similarly, the window.onload event can be used to run code after the whole page is loaded.

window.onload = function() {
//some code
}

L’evento onchange è principalmente utilizzato su caselle di testo. Il gestore eventi viene chiamato quando il testo all’interno della casella di testo cambia e il focus viene perso dall’elemento. Per esempio:

<input type=”text” id=”name” onchange=”change()”>

function change() {
var x = document.getElementById(“name”);
x.value= x.value.toUpperCase();
}

Il metodo addEventListener () allega un gestore di eventi a un elemento senza sovrascrivere i gestori di eventi esistenti. È possibile aggiungere molti gestori di eventi a un elemento.
È anche possibile aggiungere molti gestori di eventi dello stesso tipo a un elemento, ad esempio due eventi di “clic”.

element.addEventListener(event, function, useCapture);

Il primo parametro è il tipo di evento (come “click” o “mousedown”).
Il secondo parametro è la funzione che vogliamo chiamare quando si verifica l’evento.
Il terzo parametro è un valore booleano che specifica se utilizzare il bubbling o la cattura di eventi.

Questo parametro è facoltativo e verrà descritto nella prossima lezione.
Nota che non usi il prefisso “on” per questo evento; usa “click” invece di “onclick”.

element.addEventListener(“click”, myFunction);
element.addEventListener(“mouseover”, myFunction);

function myFunction() {
alert(“Hello World!”);
}

Ciò aggiunge due listener di eventi all’elemento. Possiamo rimuovere uno degli ascoltatori:

element.removeEventListener(“mouseover”, myFunction);

Creiamo un gestore di eventi che si rimuove da solo dopo essere stato eseguito:

<button id=”demo”>Start</button>


var btn = document.getElementById(“demo”);
btn.addEventListener(“click”, myFunction);

function myFunction() {
alert(Math.random());
btn.removeEventListener(“click”, myFunction);
}

Dopo aver fatto clic sul pulsante, viene visualizzato un avviso con un numero casuale e il listener di eventi viene rimosso. Internet Explorer versione 8 e versioni precedenti non supportano i metodi addEventListener () e removeEventListener (). Tuttavia, è possibile utilizzare il metodo document.attachEvent () per collegare gestori di eventi in Internet Explorer. Esistono due modi di propagazione degli eventi nel DOM HTML: bubbling e capture. La propagazione degli eventi consente la definizione dell’ordine degli elementi quando si verifica un evento. Se si dispone di un elemento <p> all’interno di un elemento

e l’utente fa clic sull’elemento

, l’evento di “clic” dell’elemento deve essere gestito per primo? Nel bubbling, l’evento dell’elemento più interno viene gestito per primo e quindi viene gestito l’evento dell’elemento esterno. L’evento click dell’elemento

viene gestito per primo, seguito dall’evento click dell’elemento

. Nel catturare, l’evento dell’elemento più esterno viene gestito prima e poi l’interno. L’evento click dell’elemento

viene gestito per primo, seguito dall’evento click dell’elemento

. Il metodo addEventListener () consente di specificare il tipo di propagazione con il parametro “useCapture”.

addEventListener(event, function, useCapture)

Il valore predefinito è falso, il che significa che viene utilizzata la propagazione di bubbling; quando il valore è impostato su true, l’evento utilizza la propagazione acquisita.

//Capturing propagation
elem1.addEventListener(“click”, myFunction, true);

//Bubbling propagation
elem2.addEventListener(“click”, myFunction, false);

Ciò è particolarmente utile quando si ha lo stesso evento gestito per più elementi nella gerarchia DOM. Ora possiamo creare un progetto di slider di immagini campione. Le immagini verranno modificate utilizzando i pulsanti “Avanti” e “Indietro”. Ora, creiamo il nostro codice HTML, che include un’immagine e i due pulsanti di navigazione:


Prev

width=”200px” height=”100px”/>
Next

Successivamente, definiamo le nostre immagini di esempio in un array:

var images = [
http://www.farwebdesign.com/uploads/slider/1.jpg&#8221;,
http://www.farwebdesign.com/uploads/slider/2.jpg&#8221;,
http://www.farwebdesign.com/uploads/slider/3.jpg&#8221;
];

Utilizzeremo tre immagini di esempio che abbiamo caricato sul nostro server. Puoi usare qualsiasi numero di immagini. Ora dobbiamo gestire i clic sul pulsante Avanti e Indietro e chiamare le funzioni corrispondenti per cambiare l’immagine.


Prev

width=”200px” height=”100px”/>
Next

JS:
var images = [
http://www.sololearn.com/uploads/slider/1.jpg&#8221;,
http://www.sololearn.com/uploads/slider/2.jpg&#8221;,
http://www.sololearn.com/uploads/slider/3.jpg&#8221;
];
var num = 0;

function next() {
var slider = document.getElementById(“slider”);
num++;
if(num >= images.length) {
num = 0;
}
slider.src = images[num];
}

function prev() {
var slider = document.getElementById(“slider”);
num–;
if(num < 0) {
num = images.length-1;
}
slider.src = images[num];
}

La variabile num mantiene l’immagine corrente. I clic sui pulsanti successivo e precedente vengono gestiti dalle funzioni corrispondenti, che modificano la sorgente dell’immagine con l’immagine successiva / precedente nell’array. Abbiamo creato un dispositivo di scorrimento delle immagini funzionante! HTML5 aggiunge alcuni attributi che consentono la convalida del modulo. Ad esempio, l’attributo richiede può essere aggiunto a un campo di input per renderlo obbligatorio da compilare.
La convalida della forma più complessa può essere eseguita utilizzando JavaScript. L’elemento form ha un evento onsubmit che può essere gestito per eseguire la convalida. Ad esempio, creiamo un modulo con due input e un pulsante. Il testo in entrambi i campi dovrebbe essere lo stesso e non vuoto per passare la convalida.

<form onsubmit=”return validate()” method=”post”>
Number: <input type=”text” name=”num1″ id=”num1″ />
<br />
Repeat: <input type=”text” name=”num2″ id=”num2″ />
<br />
<input type=”submit” value=”Submit” />
</form>

Ora dobbiamo definire la funzione validate ():

function validate() {
var n1 = document.getElementById(“num1”);
var n2 = document.getElementById(“num2”);
if(n1.value != “” && n2.value != “”) {
if(n1.value == n2.value) {
return true;
}
}
alert(“The values should be equal and not blank”);
return false;
}

Restituiamo true solo quando i valori non sono vuoti e sono uguali. Il modulo non verrà inviato se il suo evento onsubmit restituisce false.

NODE da bruco diventa farfalla mentre Hort collassa sotto i colpi della testata tattica torre prende alfiere in e3!

web marketing UmbriaAll’ indirizzo http://www.chessgames.com/perl/chessgame?gid=1058501 troviamo la Vlastimil Hort vs Zoltan Ribli giocata a Hoogovens (1983), Wijk aan Zee NED, rd 2, Jan-15, Sicilian Defense: Najdorf Variation. English Attack (B90) e finita con il punto sul tabellone per il nero. La particolarita tattica segnalata da web marketing Umbria per quanto riguarda i temi accademici degli scacchi risiede qui nel tema dell’ inchiodatura. Certamente dopo 31..Torre nera prende alfiere in e3, Hort avrà sicuramente sostituito a una serie di imprecazioni quello che da lì a poco avrebbe potuto fare come turista a Hoogovens, dal momento che non riesce a muovere nulla e la sua posizione risulta completamente paralizzata. Il bianco viene ridotto all’ impotenza perché l’inchiodatura ha effetti stritolanti da serpente boa che culmineranno in una semplice vittoria 18 mosse più tardi. La tattica é la concretizzazione di una strategia felice, sottolinea web marketing Umbria! Prima di concludere un felice capitolo su quelle che sono le tecnologie NODE ossia javascript lato server, ricordiamo che all’ indirizzo umbriawayamplifica  web marketing web marketing UmbriaUmbria ha parlato di quali sono i primi passi da compiere per costruire una applicazione performante, su umbriawaydesign  é stato affrontato il problema di come richiamare una serie di moduli, tema ulteriormente sviluppato sul portale umbriawaydeveloper , mentre su umbriawayfidelizza  abbiamo visto la potenza evocatrice di NPM il manager di node per integrare framework di terze parti nel proprio progetto, argomento ulteriormente approfondito con i comandi a riga di comando e la Bash con umbriawayfocus , con umbriawayvendita  é stata affrontata la spinosa questione del database MONGO, su umbriawayvalorizza  abbiamo visto framework GUI come robomongo e analizzato le modalità CRUD del DB, su umbriawaytarget , mentre su umbriawaysemplifica abbiamo assistito al miracolo di come tutti gli atomi siano finalmente diventati molecole e infinine applicazione concreta. web marketing UmbriaA questo punto non ci resta che mostrare il risultato finale tramite le immagini catturate dall’ applicazione dove avremmo una interfaccia grafica che cattura i nostri pensieri e li memorizza in un CRUD ad effetto, applicazione che si può usare anche come brainstorming. Occorre ricordare tramite web marketing Umbria che l’applicazione ha bisogno di lanciare prima il server MongoDB lanciando l’eseguibile mongod.exe che si trova dentro la cartella specifica sotto Programmi in modo da inizializzare poi i processi con il noto comando node app.js che ci dà tutta una serie di opzioni, tra cui anche quella salvifica del multitasking, essendo il tutto settato per chi tra vari utenti deve vedere solo la sua parte di dati senza interferire con la login di altri utilizzatori. Tutta questi riassunti estratti sono momenti di studio provenienti da https://www.udemy.com/ e in particolare esercitazioni provenienti dal corso curato dalla bravissima formatrice https://simonatocci.com/ su appunto Node e Mongo. Nelle prossime lezioni affronteremo le questioni collaterali legate a questa attività di acquisizione per queste nuove e potenti tecnologie gestite da riga di comando.

Utilizzo di variabili di variabili in PHP, ovvero come battere Torre con un sacrificio posizionale di cavallo!

web design umbriaAlla mossa 23 Eugenio Torre che ha il nero e che sta giocando il torneo di Tilbrug (correva l’anno 1982) mette una torre in c4 attaccando un pedone centrale del bianco ma Timma che era il bianco aveva già preparato di far esplodere il centro avversario con un sacrificio di cavallo, partita segnalata da web design Umbria all’ indirizzo http://www.chessgames.com/perl/chessgame?gid=1041509 ; seguendo la partita l’occhio nattento dell’ agonista noterà un particolare inquietante: tutti pezzi neri sono ammassati sull’ ala di donna mentre il bianco ha un pericoloso alfiere delle case nere puntato come un missile sull’ arrocco nero e che grazie all’ invenzione del sacrificio può liberare tutto il suo potenziale. Non bisogna mai dare per scontato nulla, serve sempre una certa tensione perché appena senti di essere al sicuro di fatto arrivano brutte sorprese! Ora traslando a PHP diamo un occhiata all’ utilizzo diu variabili di variabili. PHP consente di utilizzare nomi di variabili dionamici, chiamati “variabili di variabili”. E’ possibile assegnare a una variabile un nome memorizzato in un’ altra variabile. In altre parole una variabile contiene il valore di un’ altra variabile! Fantascienza? No solo una caratteristica potente del linguaggio, chiarisce web design Umbria! Ma bando alle ciance e alla fuffa e andiamo subito al sodo! Esempio del formato da mettere in pratica:

$nomeDellaVariabile = “age”;
$$nomeDellaVariabile = 21;

web design umbriaLa seconda dichiarazione ha due simboli di dollaro $$ davanti al nome di variabile e crea una nuova variabile con il nome uguale al valore in $nomeDellaVariabile. Il risultato delle due dichiarazioni di assegnazione é una variabile dal nome $age contenente il valore 21. Se si utilizza una variabile di variabile in una dichiarazione echo é necessario specificare chiaramente il nome di variabile. E’ possibile utilizzare una delle sintassi indicate di seguito: echo $$nomeDellaVariabile; oppure echo “$($nomeDellaVariabile)”; se avessi scritto qualcosa di seguito come: $nomeDellaVariabile = “age”; $age = 21; echo “$$nomeDellaVariabile”;  avrei mostrato a video un errore in quanto la dichiarazione echo legge $nomeDellaVariabile come nome di variabile e legge il primo $ come carattere di testo. Di conseguenza l’output é $age, non 21. A questo punto web design Umbria suggerisce di fare una bella esercitazione per rendersi conto del potenziale della tecnica presentata. Creare quindi due o più variabili contenenti valori sempre tra i famosi tag <?php ?>: $Texas=”large”;$RhodeIsland=”small”; creare ora una variabile contenente il nome di variabile di una delle variabili create precedentemente: $statename=”Texas”; aggiungere ora una dichiarazione echo per visualizzare la variabile di variabile: echo “statename is $($statename)<br>”;  creare ora una variabile contenente un nome di variabile diverso: $statename= “RhodeIsland”; e di nuovo la stampa: echo “$statename is $($statename)<br>”; infine visualizzare i nostri deliri letterari in un browser! Per concludere, coerenti con le strategie digitali di Umbriaway Consulting, segnaliamo un sacrificio questa volta di pedone giocato da Adorjan contro Hulak all’ interzonale di Toluca nel 1982 dove il bianco non si mette a contare i valori nominali delle vittime a bordo scacchiera pur di avere una posizione armonica, spaziosa, dinamica che garantisca una iniziativa vincente partita da segnalata da seo Umbria all’ indirizzo http://www.chessgames.com/perl/chessgame?gid=1016106. Anche se qui il bianco non ha sacrificato niente di pesante come nella partita precedente notiamo come la spinta fatta del nero g5 abbia finito per indebolire l’intera ala di re e l’arrocco e notiamo come il bianco si preoccupi solo di dare aria ai suoi pezzi con la mossa da ariete 20 e5! e molto bella artisticamente la conclusione con una spettacolare Donna in g7 da cineteca da far vedere agli aspiranti allenatori di Coverciano!

Che lavoro fa il seo specialist? Lo sa riconoscere un cloacking si domanda web design Umbria

Seo, sem, brand, traffico ma l’universo marketing on-line perché é così caotico si chiede web design Umbria? Si può districare la matassa? Chi é il seo specialist che cosa fa come si accoppia, vive nella tundra chiediamo a Piero Angela quale é il suo habitat naturale? Chi é il SEM perché esiste? Perché viene retribuito con 10 mila euro al mese (bé non sempre) che competenze ha, quale é il suo ruolo e come si impone nel mosaico generale si interroga web design Umbria. Ma partiamo per gradi senza traumi. Sei stato bravo hai creato un bellissimo portale che parla di stelle, farfalle, cigni o di Orsi in via di estinzione ma ora come facciamo a convogliare il traffico sul nostro dominio e convertire i visitatori in moneta sonante? C’è un sistema? Alla fine parliamo di generazione di nuovi clienti, che cosa vuole in fondo il negoziante del mondo reale quando il cliente fa suonare le ante del suo negozio se non concretizzare il tutto con la vendita? La figura deo SEO specialist é decisamente affascinante, sottolinea web design Umbria, ma ha anche insidie e pericoli. Intanto ha un arco di conpetenze molto vasto che spaziano da sem, monitoraggio con strumenti statistici (tipo Google Analytics), competenze tecniche da webmaster e conoscenza tools specifici, capacità di operare con appropriate parole chiave e qui siamo nel campo di ad words, insomma tutto un complesso labirinto di mondi e di possibilità che rischiano però di essere vane e fumose se non si lavora molto sulla propia brand reputation, tanto per stare in tema. Una miriade di tecniche e segreti sono al cospetto del famigerato seo specialist che eviterà ad esempio di incappare negli errori degli anni ottanta quando un gruppo di assatanati ambiziosi seo specialist in erba tentava di ingannare lo stupido Google con quelle tecniche denominate Hidden Keywords text e Keywords stuffing. Oggi i motori si sono evoluti e sono sempre più umani e si accorgono subito quando qualcuno cerca di ingannarli. Ogni nuovo algoritmo miete migliaia di maleintenzionati che cercano come negli anni ottanta di gabbare il motore leader. Certo che inserire una miriade di parole nascoste con lo stesso colore di sfondo della pagina é proprio una furbata tipica degli anni ottanta, ma oggi gli spider vedono queste nefandezze e ti mettono nella condizione di saltare da un burrone con le meritate e famose penalizzazioni. L’idea di aumentare il volume di queste keywords per segnalare una preminenza leader rispetto ad altri competitors é davvero romantica. Anche con il Keywords stuffing bisogna fare particolare attenzione dal momento che una percentuale troppo alta all’ interno della pagina creerebbe delle situazioni estremamente a rischio per l’intenzionalità di chi opera e di chi deve decodificare il testo quindi lo spider. Anche qui i motori di ricerca attuali ci vanno a nozze e non c’era bisogno di web design Umbria per sottolinearlo. Un altro colpo de genio fu quello del pixeling, ossia quella metodologia che consiste nell’inserire immagini di un pixel con decine e decine quindi di attributi ALT da ottimizzare come testo. In questo modo lo spider degli anni ottanta e novanta era indotto a credere che tutte quelle immagini sono magnificamente ottimizzate ma ovviamente non é così. E del cloacking ne vogliamo parlare? Sei un utente o uno spider chiede web design Umbria? Un IF ELSE avvincente in ultima analisi quindi visto che la versione B per lo spider sarà ottimizzata a uso e consumo dello spider alla faccia della moderna usabilità e delle tematiche user friendly di navigabilità responsive. Anche su questo tema del ridirezionamento gli spider hanno fatto enormi passi in avanti e c’è da dire che chi utilizza una tale tecnica oggi non va incontro a delle penalizzazioni ma ad atroci e immediati e cruenti BAN che lasciano il segno, per cui anche qui il suggerimento di web design Umbria é quello di evitare simili espedienti tamarreschi che lasciano il tempo che trovano. Certamente di pe sè questa tecnica ha anche dei vantaggi, pensiamo ad esempio alla categoria non vedenti, dove un ridirezionamento avrebbe un senso di esistere svincolato dal tema forzato del posizionamento delle key. Tutto qui, abbiamo finito con un veloce accenno alle penalizzazioni? Il professionista seo sa bene che anche sul tema dei contenuti duplicati ci sono molte situazioni a rischio da evidenziare. Oltre a costituire una questione di illegalità a causa delle infrazioni sul copywriter, si va ovviamente incontro a delle penalizzazioni. I contenuti originali e belli edulcorati ma di sostanza al contrario sono ben voluti, soprattutto se hanno una originalità vera e una forza espressiva propria. Tra l’altro c’è un vasto parco tools a disposizione per capire se un contenuto é duplicato o meno, quindi sarebbe un errore da dilettanti, conclude web design Umbria, dal momento che il nostro obiettivo é quello di andare a finire sulle prime due pagine di Google.

Ganna gioca con Portish e cambia la password di MySql: trova le sgrammaticature del titolo e vinci un viaggio a Fano con web developer Umbria

Ma ce l’abiamo qualche indizio ripo http://www.chessgames.com/perl/chessgame?gid=1113701 mica siamo dietro a una scrivania a impersonare il detective Ganna eh?! De che stemo a parlà? della Tal Portish giocata a Biel nel 1976 dove il nero misteriosamente abbandona? A si perché se giocava 37..Tg8 sarebbe piovuta dal cielo Dg6!! secondo i report dell’ epoca, sottolinea web developer Umbria. Ma 38..Db7+ idea hg6 dove porta…il ventaglio di possibilità si avvicina al bianco e nero del detective Ganna roba da far rabbrividire anche Oracle che detiene il monopolio sul database più famoso di tutti i tempi MySql. Quindi mi state dicendo che il nero praticamente si salvava in tutto le varianti anche nella linea dove il B sembra costretto a mettere la donna in e4…calma calma nell’ episodio sotto il segno dell’ Acquario Ganna ripulisce le ache torbide dei Navigli con la mossa 38 Td8!! al posto di 38 Dg6 che senbrerebbe un orrida cappella. Si ma i database, chiede web developer Umbria perché fai tutta questa confusione con la bionda che commissiona il caso di un uomo scomparso a Ganna con gli abbandoni prematuri di Portish e gli storage engine che un professionista deve conoswcere? C’è della brace sotto la cenere ma andiamo per ordine, se qualcuno si é così tanto dato da fare per mettere in piedi un database free che si chiama MariaDB un motivo ci sarà. Ma quante ne sai invece sul suo dinosauro progenitore appunto mysql chiede web developer Umbria mentre in sottofondo serpeggia una musica insidiosa dove Ganna cerca e trova i manigoldi. In fondo a pensarci bene un morto ammazzato si trova sempre quando si analizza una posizione o forse il tizio stava solo dormendo dando l’apparenza della discesa negli inferi? A ben guardare poi la faccia del tipo é irriconoscibile ma saltando di nuovo con web developer Umbria nel mondo parallelo delle investigazioni informatiche possiamo dire che MySql si può installare in tutti i sistemi operativi anche senza LAMP e XAMPP con gestione da riga di comando. Una delle prime cose da fare per questioni di sicurezza sarebbe riempire il database con dei dati protetti da una pwd che non sia vuota come sempre succede quando abbiamo a che fare con neofiti. Di nuovo dopo Td8!! si verifica una sorta di delirio analitico con un nuovo ventaglio di possibilità ma adesso uno scacco in d5 non farebbe più paura perché la casa f7 é protetta dal pedone e6…quindi sio Portish alla fine di tutto ha fatto bene ad abbandonare anche se non sapeva perché. Ma tutte le analisi di questa partita si potrebbero gestire con MySql? Si dovrebbe visto che la posizione qui immortalata é piena di varianti a destra e a manca, sottolinea web developer Umbria. Interi o stringa? E le date che mettiamo datetime , date o timezone? E la lunghjezza dei campi? E le chiavi primarie in autoincremento? E i capi e i record come vanno gestiti per ottimizzare la potenza di InnoDb piuttosto che di MySAM? Per semplificare la vita al detective potremmeo sciorinare una trafila di argomenti legati ai cosiddetti database relazionali RDBMS che questa pagina diverrebbe un lenzuolo dove invece come al solito le immagini in bianco e nero ma anche a colori potrebbero semplificarci la vita, ecco quindi sintetizzata con una bella gallery finale una serie di temi da approfondire per conoscere sul serio i database…ma anche gli scacchi e il detective dal nome strampalato Ganna. L’importante é riconoscere il tipo di dati senza mettere le caramelle dentro al contenitore dei pomodori, conclude Umbriaway Consulting esausto per la visione stroboscopica di Ganna a che fare con Titty, la strana protagonista dell’ episodio intitolato sotto il segno dell’ acquario ricco di fascino e di mistero con attori poi che riconosciamo qui come acerbi ma destinati a una gloriosa carriera cinematografica. Buonanotte da Ganna, dalle mosse viste o non viste da Portish e dal database MySql oggi un pò contaminato da potenziali monopoli!

Java Script: operatori logici e di confronto

Operatori di confronto

Qualsiasi consultazione in internet estrapolerebbe se interrogata sugli operatori di confronto un materiale analogo a quello sotto riportato, in particolare qui attingiamo a MR.Webmaster riconoscendo l’importante qualità formativa del portale. Questi operatori possono agire su diversi tipi di variabili (stringa, numerica, booleana, ecc.) e sono utilizzati per effettuare, appunto, dei confronti. L’esito del confronto genera un valore booleano (TRUE o FALSE).

== Uguaglianza
!= Diversità
< Minore
<= Minore o uguale
> Maggiore
>= Maggiore o uguale

Questo tipo di operatori assume un’importanza centrale all’interno delle strutture di controllo (o strutture condizionali) quando, cioè, l’esito del confronto tra due o più variabili diventa determinante al fine del comportamento del programma stesso.

Vediamo qualche esempio di utilizzo degli operatori di confronto:

var a = 12;
var b = 5;

if (a == b) { … } // il controllo restituisce FALSE
if (a != b) { … } // il controllo restituisce TRUE
if (a < b) { … } // il controllo restituisce FALSE
if (a > b) { … } // il controllo restituisce TRUE

Esistono poi degli operatori chiamati logici che permettono di comporre più espressioni logiche elementari per scriverne di complesse. Per esempio per esprimere il confronto 5 é maggiore di 4 e 3 é maggiore di 1 si usa l’operatore &&: alert(5>4 && 3>1); si noti che la frase é vera solo quando entrambe le condizioni lo sono.

Operatori logici

Un altra serie molto importante di operatori è costituita da quella simbologia che consente di effettuare operazioni logiche di associazione (AND), alternanza (OR) e negazione (NOT). Anche questi operatori sono utilizzati nelle strutture di controllo del flusso di programma.

&& – L’operatore “AND” è utilizzato per creare condizioni complesse composte da una pluralità di sotto-condizioni; affinché la routine si verifichi è necessario che tutte le sotto-condizioni siano vere.
|| – L’operatore “OR” è utilizzato per creare condizioni complesse composte da una pluralità di sotto-condizioni; affinché la routine si verifichi è necessario che almeno una delle sotto-condizioni sia vera.
! – L’operatore “NOT” indica una negazione all’interno di una routine. In sostanza si usa per invertire il significato di una condizione.

Vediamo qualche esempio:

var a = 10;
var b = 3;
var c = 9;
var d = 24;

if (a == b && c < d) { … } // il controllo restituisce FALSE
if (a != b && c < d) { … } // il controllo restituisce TRUE
if (a > b || c == d) { … } // il controllo restituisce TRUE
if (!(a > b)) { … } // il controllo restituisce FALSE

Gli operatori booleani hanno il seguente ordine di precedenza prima si applicano i NOT poi eventuali AND e infine gli OR. Una espressione viene valutata fin quando si é certi del risultato dell’ operazione, per esempio se valutando l'(espressione 1 && espressione 2) l’interprete verifica che espressione 1 vale FALSE non serve che valuti espressione 2 perché si sa già che il risultato sarebbe in ogni caso FALSE.

AND LOGICO &&

primo argomento false , secondo argomento false , risultato finale false
primo argomento false secondo argomento true risultato false
primo argomento true, secondo argomento false risultato false
primo argomento vero secondo argomento vero risultato vero

Sostanzialmente le espressioni di confronto per rientrare nel vero in questa categoria devono essere risolte in entrambi i casi con vero, mentre per l’ OR || OPPURE é l’esatto opposto perché verifica solo che entrambi le espressioni non rientrino nel casi espressione 1 false ed espressione 2 false che genera un false mentre tutte le altre combinazioni danno vero (true true genera true, false e true generano true e true e false generano true).