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

Annunci

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 il GM Suba degli anni ottanta era un pollo pazzesco?!

Problemi con il vantaggio di sviluppo nel senso che non riesci a sfruttare quei tempi in più che hai guadagnato per trasformare tutto in facile vittoria e in miniatura da copertina tipo Novella 2000? Guardare questa partita allora é un balsamo benefico, qui alle olimpiadi di Thessaloniki del 1984 il nero che é Portish offre doni ellenici per attirare il bianco (Suba) in una trappola mortale http://www.chessgames.com/perl/chessgame?gid=1114040 da qui il titolo: ma come ha fatto il bianco a vedere che collassava rapidamente dopo aver girovagato con la regina per tutta l’apertura? C’era una sorta di codice d’onore che ti obbligava ad accettare qualsiasi sacrificio finché non subivi una mazzata decisiva del tipo 20 … Td1 che probabilmente vedrebbero in molti ma che a Suba frastornato non gli é nemmeno saltata per la testa? E’ possibile che il GM Suba degli anni ottanta era un tizio che se magnava tutto perché era come San Tommaso, come per dire all’ avversario vabbè se adesso non cloncludi nulla adesso hai perso il finale. Peccato che spesso nelle partite citate l’avversario aveva con la sua posizione vincente l’ultima parola e replicava tra le righe a tono: “vabbè non sei arrivato alla ventunesima mossa caro bianco!”. Certo che Suba pur essendo un fortissimo giocatore di pigne altisonanti ne prendeva a bizzeffe tipo questa a cui ebbi il privilegio di assistere in diretta: http://www.chessgames.com/perl/chessgame?gid=1133965 dove dall’ inizio alla fine quel pazzo di uno slavo inizia a far precipitare chicchi di grandine sul collo della sua vittima sacrificale. Sempre citando questa famosa partita di Pinerolo del 1987 ricordo che nel dopo analisi ogni volta che Suba provava a replicare a qualche mossa aggressiva del bianco andando a mangiare materiale che sembrava gratuito, Velimirovic replicava bombardando le retrovie nemiche con veloci scacchi matti! Una giornata storta può capitare a tutti, ci sta e poi ricordiamo che Suba quei tempi piallava a manetta tutta una serie di personaggi dell’ agone scacchistico senza tante remore reverenziali, quello che fa veramente scalpore é tentare di rispondere alla domanda: ma come fai a prenderti delle pigne così … mitologiche?! 20…Td1 giocata da Portish alla cieca l’avevi completamente dimenticata? Guarda che ti retrocediamo a 3naz eh?! A onor del merito ricordiamo che Mihai Suba ha avuto un grande ruolo negli scacchi moderni, consultare https://en.wikipedia.org/wiki/Mihai_Suba e che molte delle combinazioni da lui subite venivano regolarmente riconsegnate ad altri fortunati agonisti, per esempio all’ indirizzo http://www.chessgames.com/player/mihai_suba.html ci troviamo numerose perle da lui messe in piedi nella sezione NOTABLE GAMES senza tanti grandi fuochi di artificio ma con tecnica sopraffina precisa e accurata, evidenzia Umbriaway Consulting.

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.

Le preposizioni inglesi, goia e delizia dei peccatori grammaticali e le mosse impossibili tipo 13 Tf7!!

agenzia web marketingPer quanto riguarda gli scacchi con agenzia web marketing vediamo la Sergey Smagin vs Sergej Salov “Opening a Kan of Worms” Halle (1984), Sicilian Defense: Kan. Modern Variation (B42) 1-0 indirizzo internet http://www.chessgames.com/perl/chessgame?gid=1120348. Alla mossa 13 salta fuori una mossa simile a un meteorite di grandi dimensioni che colpisce la terra, torre da f1 a casa f7 che diventa preludio per una demolizione sistematica di tutti i pedoni neri che difendono l’arrocco nemico, una posizione da far vedere ai corsi di allenamento tattico alle nuove generazioni. Del resto a guardare la posizione prima del salto della torre verrebbe da dire ma dove stanno i pezzi neri a difendere, semplicemente non ci sono. Certo ai tempi queste mosse venivano accolte con stupefacente e religiosa ammirazione, anche perché la mentalità imperante dell’ agonista dell’epoca prevedeva che il materiale veniva prima delle valutazioni ultradinamiche. E ora passiamo con agenzia web marketing a saltare nei quanti della lingua inglese. Innanzitutto che cosa é una preposizione. Ma ce l’hai Internet e wikipedia? Ce l’hai un motore di ricerca per cercare le risposte che non sono dentro di te, ma sulla parabola in download che ci hai sul tetto? Una definizione accademica estrapolata dalla rete é la seguente: la preposizione (dal latino “praeponere” = porre davanti) , in grammatica, è una parte invariabile del discorso che serve a creare un legame fra parole e frasi, specificando un rapporto reciproco e la funzione sintattica della parola, locuzione o frase che la segue.Quando uniscono due parole all’interno di una medesima proposizione, le preposizioni servono a introdurre i complementi (tranne il complemento oggetto e, talora, alcuni altri): esempio: abbiamo pensato a lungo alle tue parole; quando invece collegano due frasi, esse introducono delle proposizioni subordinate: esempio: bisogna prendere il traghetto per arrivare su quell’isola. Ora la questione di TO e FOR. E in Inghilterra come butta per queste preposizioni? All’ indirizzo http://www.oilproject.org/lezione/grammatica-sintassi-inglese-to-for-differenze-10297.html troviamo il seguente materiale didattico per esempio: la regola generale è… che non c’è una regola generale; e questo vale per tutte le preposizioni. 1) Se si vuole indicare un motivo per fare qualcosa, possono usarsi indifferentemente: “I went to the store to buy milk/for milk” (in questo caso però to è integrata nell’infinito). 2) Se si vuole indicare un destinatario, l’uso dipende dal verbo da cui to o for dipendono: “He gave this to her” oppure “This is for her”. 3) Se si vuole indicare un’intenzione, l’uso di to o for dipende invece dall’oggetto dell’intenzione: se l’enfasi è su un’azione, si usa to: “Ask John to send me the file”; se l’enfasi è sull’aspettativa, si usa for: “Ask John for the file”. Al link http://www.linkiesta.it/it/article/2015/09/19/la-pillola-dinglese-come-capire-quando-usare-in-on-o-at/27458/ troviamo queste risorse sulle PREPOSIZIONI “IN”, “ON”, “AT”. “People in Ireland are great…” / “I still remember buying a red coat on my birthday… ” / “I would start work at 9… ”. Le preposizioni “in”, “on” e “at” sono le principali preposizioni di tempo e di luogo in inglese. AT (luogo) indica un punto fisso, il punto preciso in cui si trovano una persona o un oggetto, ad esempio “He is at the park” (Lui è al parco); AT (tempo) si usa inoltre per dare un’indicazione di tempo precisa, ad esempio, “I would start work at 9” (Iniziavo a lavorare alle 9); ON (luogo) si usa quando si vuole dire che qualcosa appoggia su una superficie, ad esempio “The bag is on the floor” (La borsa è sul pavimento); ON (tempo) si usa con i giorni e le date, ad esempio “I still remember buying a red coat on my birthday… ” (Ricordo ancora di aver comprato un cappotto rosso al mio compleanno); IN (luogo) indica l’essere inserito o il trovarsi in uno spazio chiuso, ed esempio “People in Ireland are great…” (Le persone in Irlanda sono fantastiche); IN (tempo) si usa con i mesi, gli anni, i secoli o i lunghi periodi di tempo, in generale ogni volta che non si possono usare “at” o “on”, allora si una “in”, ad esempio, “I was born in 1981” (Sono nato nel 1981).

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!

Angular e il data-binding, un ritratto impressionista di web design Umbria simile alla miniatura di Beliavsky inflitta a Larsen con il Bianco nel 1981 a Tilburg!

web design umbriaNella Beliavsky vs Larsen difesa caro kann classificazione eco B19 partita di scacchi giocata nel 1981 a Tilburg il nero non fa in tempo ad arroccare e il bianco ha modo di giocare una rocambolesca Cg6 alla mossa 15 dopodiché le disgrazie di un re insicuro e in brache di tela vengono tutte al pettine, il link segnalato da web design Umbria per vedere la partita é http://www.chessgames.com/perl/chessgame?gid=1257904 ed é divertente constatare come a un certo punto dopo Dh3 posizionale il nero sia stato costretto a giocare una disperata fg6 prendendo un cavallo avvelenato per assistere a una fase spettacolare dove il bianco si diverte in rilassatezza anche a mettere delle belle torri in presa per forgiare una veloce miniatura da 23 mosse. E torniamo a bomba nello specifico alle strategie di comunicazione digitale di Umbriaway Consulting. web design umbriaCon Angular per far apparire il più classico degli hello world basta davvero poco in particolare nel body é sufficiente marcare <p>Hello {{‘angular world’ + ‘!’}}</p> e ovviamente ci saranno i link di riferimento nell’ head per azionare il tutto con l’accortezza di inserire anche le famose direttive con <html lang=”en” ng-app> proprio all’ inizio che sta a significare che stiamo all’ interno dei comportamenti di una applicazione angular praticamente stiamo contrassegnando il punto di ingresso dell’ applicazione, l’entry point. Le doppie graffe stanno a significare che siamo dentro a una espressione che deve essere valutata. Se non specifico ng-app sto all’ interno del contesto di html per cui finirò per stampare a video le graffe che non verranno interpretate, il termine giusto é renderizzazione. A questo punto bisogna introdurre il concetto di data-binding. web design umbriaSostanzialmente si tratta di sincronizzare una fonte dati agli elementi dell’ interfaccia utente. Questo può avvenire in Angular in due modi, tra view e model oppure tra model e view. L’esempio potrebbe essere quello di una calcolatrice magari con due campi testo dove al variare del valore digitato cambia anche il risultato dell’ operazione assegnata. Nel caso della somma ad esempio avremo un codice sorgente di questo tipo <div ng-init = “num1=1;num2=2”> e da notare come qui la direttiva NG sia diversa rispetto a prima a sottolineare un tipo di contesto diverso rispetto alla gestione della stringa precedente, poi andremo a collegare il model su entrambi i campi con Enter the first amount: <input type=”number” ng-model=”num1″> magari dentro a un div ripetuto anche per la direttiva ng-model=”num2″ e infine andremo a stabilire il totale con questa formula <b>Total:</b> {{num1 + num2 | currency}} dove il currency é riferito alla valuta del dollaro. La direttiva per bootstrappare l’applicazione angular rimane invariata come nel caso precedente con <html lang=”en” ng-app> ma poi compare un ng-init che ha il compito di valutare una espressione assegnando dei valori a delle variabili con <div ng-init= “num1=1; num2=2”> dove assistiamo a una inizializzazione. Da notare come nell’input type abbiamo assegnato un tipo di dati che é numerico campo che accetta i nuovi valori che andremo a digitare per la sommatoria. NUM 1 e 2 vengono automaticamente aggiornati e mostrati come totale nell’ interfaccia utente, questo é un esempio appunto di data binding dove si ha un interscambio tra modello e vista e vista modello. Il simbolo pipe | nell’ espressione finale indica un FILTRO e il currency se non specificato di default equivale al dollaro. Rispetto al data binding in Angular per il momento possiamo fermarci in uno dei prossimi articoli di approfondimento sui portali di Umbriaway Consulting parleremo di CONTROLLERS.

React? Sembrerebbe un principio sacrosanto del gioco degli scacchi da sostenere con forza ma invece é una semplice libreria javascript, parola di seo specialist Umbria!

Usando la consueta metafora degli scacchi nelle strategie di comunicazione di Umbriaway Consulting, torniamo a bomba delle tecnologie client side che funzionano lato client. Javascript é una di queste ma l’evoluzione dei nostri tempi moderni ha portato questo linguaggio ad emanciparsi per abbracciare le cause server side con servizi HTTP cpme node ad esempio ed é il caso di Angular ma anche della libreria User Interface REACT da non confondersi con framework. Torando a monte con gli scacchi però come web design Umbria non possiamo esimerci dal constatare come nella partita Karpov vs Timman giocata ad Amsterdam nel 1981 ci sia stata una situazione tragicomica da evidenziare. Il Bianco fedele al suo stile di pitone stritolatore che fa? Alla mossa 16 gioca un Tb3 silenziosa e di attesa che trasmette un messaggio in codice da decriptare per l’avversario: fammi vedere quale piano attivo hai adesso eh! seo specialist umbriaTimman con i pezzi del lato di donna seppelliti ancora sulla casa di partenza la pensa giusta? Fa qualcosa che solo uno spirito libero impavido potrebbe fare, decide di escogitare un piano dove saranno i pedoni del lato di re a infastidire l’avversario, visto che il bianco spostando tutti i pezzi sul lato di donna ha lasciato un Ah3 e un Af4 un pò in balia di loro stessi potenzialmente esposti ad attacchi demenziali alla baionetta. Ovviamente l’idea di andare a spingere i pedoni che proteggono l’arrocco non é da prendere a cuor leggero ed é considerarsi una scelta totalmente folle ma anche l’unica che poteva mettere in atto il nero per reagire a una passività tipo centrocampo dell’ Inter o nome appunto di questa famosa libreria per lo sviluppo front-end di nome REACT. La partita all’ indirizzo http://www.chessgames.com/perl/chessgame?gid=1068207 mostra come il B sacrificando un pedone sia riuscito a ridurre l’avversario in uno stato pressoché neurovegetativo con i pezzi del nero fermi sul lato di donna fermi anche nella posizione finale di patta scaturita per una ripetizione di posizione. Bella partita sull’ iniziativa, sul gioco pressante e dinamico e di come ci si debba difendere quando si sta per morire per mancanza di ossigeno. Detto questo torniamo al problema vero degli sviluppatori front end che devono essere superman oggi come oggi per essere competitivi perché non basta conoscere JS devi anche conoscere con profondità di dettaglio e funzionalità operativa tutto quello che ci ruota intorno (la vita a disposizione per i normali esseri umani é una non venti :-)) per abbiamo detto che si tratta di una libreria che corre lato server che possiamo rendere le nostre applicazioni molto veloci e snelle con codice riutilizzabile grazie anche al velocizzatore virtual dom, che abbiamo una facilità di implementazione agevole etc etc e che possiamo costruire situazioni statiche o dinamiche. Per far correre REACT serve NODE e smanettare un pò con un server HTTP da installare da riga di comando oppure la soluzione proposta da Umbriaway Consulting é quella di XAMPP da attivare con i suoi START da pannello di controllo. Il concetto chiave é che qui abbiamo a che fare con una tecnologia lato server e non tradizionalmente legata al client javascript anche se sempre di JS stiamo parlando! E la classica visualizzazione Hello React World! qui come avviene? Intanto le librerie vanno linkate e poi nel BODY si specifica un marcatore DIV per dire alla proprietà del document getElementById di andare ad agire su quell’ area di interesse. Sostanzialmente con due rige di codice molto ordinate facciamo tutto specificando il che cosa vogliamo fare e il dove attraverso i due parametri della funzione di renderizzazione ReactDOM.render:

// React.createElement sets up a React element (not a DOM element)
var headerReactEl = React.createElement(‘h3’, {}, ‘Hello React World!’);

// This renders the React element into the DOM (mounts the element to the DOM)
// The element will be a child of the element with id react-app
ReactDOM.render(headerReactEl, document.getElementById(‘react-app’));

// React elements are baHEsically one type of React nodes

A questo punto abbiamo marcato il territorio per eseguire i successivi approfondimenti con seo specialist Umbria in futuro nel frattempo godiamoci la bella patta tra Karpov e Timman piena di spunti meditativi interessanti