BASI DI JAVASCRIPT: overview

Ha mai sentito parlare di Front end developer come figura professionale? Di HTML5, CSS3 e JS6? Il primo crea l’edilizia strutturale della pagina, CSS3 arriva per vestire e arredare la casa e JS interviene per offrire interattività alle pagine. Recentemente si sente parlare di NODE JS in quanto il limite che aveva JS era quello di intervenire solo sulla parte FRONT END senza operare in ambito SERVER. Attenzione a non confondere JS con JAVA però sono due cose completamente diverse! Quindi non ci resta che partire con questo viaggio per vedere le basi della programmazione JS, la sintassi per la corretta scrittura ed esecuzione del codice. Vedremo quali sono i contenitori e come possono essere riempiti, vedremo come stampare a video stringhe o tipi di dati numerici. Vedremo diciamo il potenziale base che offre il linguaggio. Il modo migliorare pe imparare a programmare è solo quello di programmare! Ci sono molti editor di testo utili per sperimentare il codice JS lato FRONT END, tipo Sublime Text o Visual Studio Code o molti altri. Procediamo pertanto con il più classico dei programmi che in questi tempi difficili chiameremo, devi stare a casa anzichè hello world! Quindi creo una pagina HTML semplicemente con tasto destro nuovo dando estensione HTML. Qui scriverò quanto segue:

che cosa dovrebbe fare questa istruzione? Quando con doppio click aprirò la pagina casa.html comparirà quanto segue:

il motivo è evidente non compare nulla perchè tra le virgolette non abbiamo la nostra stringa da stampare quindi facciamo diventare lo script così:

da notare che sto usando blocco note come editor di testo al posto di quelli citati sopra. Ora se lancio la pagina modificata vedrò:

Quindi abbiamo capito che l’istruzione ALERT ci manda iun esecuzione una finestra di dialogo che interagisce con noi a video. Ok a questo punto se io volessi per comodità di gestione questo JS in una cartella esterna per poterlo riutilizzare quando necessità con un semplice collegamento come posso fare? Creo una cartella js e dentro creo un file con le stesse modalità descritte sopra che chiamerò casa.js. A questo punto per agganciare questo file esterno (se il JS non è interno non è necessario includere l’istruzione dentro i tag SCRIPT) possiamo semplicemente scrivere nel nostro HTM questa semplice istruzione:

da sottolineare l’uso dell’ attributo sorgente SRC (source), mentre dentro la famosa cartella js avrò:

risultato finale di tutto questo lavoro di agganci:

ossia lo stesso dell’ inclusione del js nella stessa pagina in quanto l’istruzione è la stessa e il browser interpreta il tutto lato client perchè qui non abbiamo a che fare con Node JS che invece è molto difuso lato server come php per esempio. Adesso proviamo a scivere nel JS esterno altre istruzioni per capire l’importanza della progrmmazione procedurale e del punto e virgola che delimita la fine di una istruzione. Scriviamo altre direttive e facciamo diventare il sorgente js in questo modo:

per vedere l’effetto che fa la nuova istruzione digitata nella seconda riga che entrerà in azione solo dopo aver dato OK all’ ALERT, quindi dopo l’immagine di cui sopr comparirà:

A questo punto sorge spontanea una domanda, se uso i file js esterni dove devo agganciarli all’ interno della mia pagina html? La didattica classica vuole gli script posizionati per bellezza di scrittura e stile nell’ head ma siccome il browser carica prima il body, ha senso inserire tutto prima della chiusura del body finale, in questo modo avremo una pagina caricata più velocemente per l’utente. E’ bene precisare che il sale della programmazione è l’errore. A volte si dimenticano le virgolette per stampare una stringa oppure non si ricorda il nome esatto di una istruzione e manca una lettera, vediamo come intercettare questo errore usando gli strumenti per sviluppatori di CHROME e l’oggetto console diponibile per facili aiuti. Ipotizziamo di aver scritto documen.write inb tal caso inevitabilmente si genererà un errore. Che fare quando ci sono centinaia di righe di codice e non si ha la percezione di dove andare a cercare? Usiamo quindi l’oggetto console! E’ da sottolineare come gli editor moderni di fatto indichino la scorrettezza di una parola digitata con il colore, per questo motivo non conviene digitare blocco note, in quanto srtumento primitivo privo di funzionalità. Se scrivo DOCUMEN al posto di DOCUMENT per dsitrazione io non posso dire al compilatore lato client di eseguire correttamente la seconda istruzione che mi mostrerà il video bianco dopo la corretta visualizzazione dell’ ALERT e la sua conferma. Perchè? Dove devo andare a intervenire? Facendo tasto destro e cliccando ISPEZIONA apro la mia analisi della pagina e recandomi sulla seconda slide CONSOLE ecco l’indicazione che mi serve per risolvere il problema:

alla riga due documen non è definito, quindi facile tornare ora alla riga due e risolvere! Gli errori sono una parte importante della programmazione, chi non fa non li ottiene e non li risolve! C’è anche una istruzione simile alla stampa sul documento per scrivere sulla console con gli stessi criteri e ciè alla funzione console.log(“messaggio”); A questo punto passiamo ad analizzare le variabili. Sono contenitori che contengono tipi di dati e valori. Dentro una cassetta posso avere mele pere e patate ma anche acqua se il contenitore è a chiusura ermetica. Un programma è pieno di variabili che non possono usare le parole chiave del linguaggio nella loro dichiarazione. Adesso proviamo a realizzare un task: nell’ alert anzichè stai a casa , stampiamo solo una variabile, come fare? Di fatto il risultato genera cose già viste sopra ma ilc odice adesso ha questa forma:

Sulle variabili posso cambiare il valore quando voglio quindi proviamo a modificare il codice in questo modo e ad eseguire il tutto in maniera procedurale:

per ottenere questo risultato:

per stampare una variabile all’ interno delle parentesi non devo ovviamente usare le virgolette altrimenti si genererebbe un errore. Poi abbiamo variabili locali e variabili globali, ossia variabili accessibili solo all’ interno di una funzione o ovunque, qui sotto abbiamo un esempio di variabile globale per esempio:

var miaVariabile = “stiamo tutti a casa”;

function mia_funzione() {
alert(miaVariabile);
}

Per commentare ed escludere righe che un domani nell’ ambito di un programma potrebbero riservirmi uso //, ad esempio sopra trasformo tutto in variabile locale usando il simbolo di commento:

//var miaVariabile = “stiamo tutti a casa”;

function mia_funzione() {
var miaVariabile = stiamo tutti a casa;
alert(miaVariabile);
}

La spaziatura in JS è automatica solo alla dichiarazione var il compilatore deve riconoscere uno spazio che precede il nome della variabile. A questo punto vediamo come possoin JS ricevere ingformazioni dall’ utente, il comando specifico è prompt quindi la riga diventa prompt(“hai capito che devi stare a casa?”);

però così non riusciamo a catturare il valore digitato dall’ utente quindi ecco come fare, inserendo var risposta = prompt(“hai capito che devi stare a casa?”); e se volessimo successivamente verificare se abbiamo fatto tutto giusto possiamo stampare risposta con il metodo document.write già visto:

che produrrà dopo una serie di passaggi:

da questo esempio si capisce quindi l’utilità di immagazzinare le variabili in contenitori specifici. Adesso prenderemo in esame un portentoso esercizio dove andremo a concatenare le stringhe. Catturiamo il nostro nome, poi concateniamo il valore catturato con un seguito per dare maggiore senso compiuto (ad esempio un saluto) e infine stampiamo tutto a video:

var nomeutente=prompt(“hai capito che devi stare a casa?”);
var messaggio = (“ciao ” + nomeutente);
document.write(nome);

in rete possiamo trovare moltissimo materiale che ci illustra la concatenazione, le stringhe sono anche oggetti e hanno dei metodi, qui vediamo la concat per vedere un altro modo di fare le cose, il nostro obiettivo quando si inizia a programmare non è imparare a memoria tutto, ma andare a cercare quello che ci serve, i metodi si possono trovare facilmente nella documentazione ufficiale JS, sotto vediamo appunto un metodo dopo il punto caratterizzato da un argomento all’ interno della parentesi:

// Join two strings
var str1 = “Hello “;
var str2 = “world!”;
var res = str1.concat(str2);

// OUTPUT: Hello world!

 

per le stringhe ci sono molti metodi (ossia delle azioni da compiere) e molte proprietà, possiamo recuperari dati legati alla lunghezza della stringa o magari modificare in corsa maiuscole o minuscole

Il giallo di via San Giorgio, uno strano caso per Astore Rossi

Indagando su Riccardo Landini e il suo ultimo il giallo di via San Giorgio estrapoliamo: nato in Emilia ma d’origine romagnola, ha alle spalle studi classici e nel cuore una grande passione per Piero Chiara e per il cinema italiano degli anni Settanta. Nel 2009 ha esordito nella narrativa con il romanzo E verrà la morte seconda. Sono seguiti Il primo inganno, Non si ingannano i morti e Ingannando si impara, volumi di una trilogia. Nel 2013 è stato vincitore del premio Giallo Stresa. La critica di circostanza quella che scolpisce epigrammi sull’ ultima di copertina circoscrive l’avventura di Astore Rossi come incalzante, serrata, avvincente. Certo sembra quasi di rientrare a villa Scott, https://it.wikipedia.org/wiki/Villa_Scott, e negli incubi vissuti con Dario Argento nel suo indelebile Profondo Rosso, ma in questa reggia caduta in disgrazia simile alla casa Usher persa tra i boschi dell’ appennino tosco emiliano, vi è un dramma sepolto che è la concentrazione di tutte le nefandezze mai fatte affiorare dell’ essere umano intenzionato al male assoluto come ideale servile. Lo scantinato segreto che la chiave iniziale vagheggia una volta caduta in possesso di Astore il restauratore dalle mille lacerazioni interiore irrisolte, è un luogo dove l’orrido e l’orripilante fanno germogli che qualcuno dovrebbe definitivamente estirpare. Lo farà lo strano protagonista stesso, forse eccitato dall’ idea di una promessa, forse preoccupato per cancellare le tracce di un suo sentito coinvolgimento in tutta la vicenda, mettendo in piedi uno spettacolo pirotecnico finale alla Nerone che laverà tutti i peccati e consentirà all’ eroe di assolvere alla promessa iniziale di rimediare agli errori del passato. Ma iniziamo per gradi. Si capisce subito che il nostro eroe in realtà è un antieroe, un misantropo che sta scappando da qualcosa e che cerca rifugio in se stesso per trovare un riparo sicuro ovviamente senza trovarlo. Quando la sua dirimpettaia vicina di casa morirà in strane circostanze, si ritroverà in mano senza volerlo una misteriosa chiave che dovrebbe nascondere terribili segreti da sopprimere, con la signora Luisa stralunata dopo un suo ritorno alla villa di famiglia che farnetica di antichi peccati da cancellare. Così senza volerlo Astore, il cui cognome rimanda alla medioevale falconeria di rango, sarà costretto suo malgrado a conoscere la conturbante Barbara nipote della vicina scomparsa, titolare di una galleria d’arte a Milano, che lo instraderà progressivamente verso un fatale ritorno alla vita costringendo a uscire da un sarcofago che si è costruito per difendersi dalle aggressioni del mondo, in cui solo i mobili antichi da restaurare, trovano un balsamo rivitalizzante per sopravvivere, così simili alle incrinature interiori umane da ricostruire. Ma l’immersione nella famiglia Ruggeri/Spada non può avvenire senza fare la scomoda conoscenza del famelico corrotto avvocato Umberto, consumatore abituale di cocaina e dedito alla bella vita di sperpero, che non vede l’ora di vendere la reggia Ruggeri che sta cadendo a pezzi dopo la morte dell’ ultima reggente (la signora Luisa), a un potenziale acquirente per risanare i suoi debiti. Così Astore che aveva fatto un sopraluogo (non autorizzato) per cercare di individuare quale porta la chiave aprisse per carpire chissà quali segreti conturbanti che avevano portato alla morte di Luisa, si ritrova sotto ricatto da parte dell’ avvocato che gli dà dieci giorni di tempo per convincere le sorelle (suora Addolorata sorella di Barbara è la titolare di una istituzione a supporto di bisognosi) a vendere casa per una equa divisione dei beni, cosa che però si presenta irta di ostacoli in quanto il progetto di Umberto non è condiviso. Ma c’è anche il giovane perverso Ruggero espatriato in Inghilterra che durante il racconto da famiglia Adams che scaturisce nel prosieguo, sembra il responsabile delle misteriose scomparse di giovani ragazzine inghiottite dal fiume della cittadina di Rodeno che costeggia la villa di famiglia. L’unica accortezza per chi legge è quella di considerare che la realtà che gli viene somministrata non è rigidamente scolpita per non essere messa in discussione perchè alla fine scopriremo che le valutazioni su Ruggero sono solo di comodo. Nel frattempo la vicenda si evolve e Umberto che deve pagare i suoi ricattatori viene suicidato spingendo il suo fuoristrada in fondo a un burrone, liberando così Astore da una potenziale denuncia per aver commesso una serie di piccole infrazioni. I misteri si infittiscono e intorno alla villa spariscono altre figure critiche: il custode, il giovane fratello etichettato da Barbara come psicopatico, mentre Astore è profondamente turbato per le complicazioni sentimentali con la nipote di Luisa, consapevole anche di dovere alla sua gentile vicina di casa defunta il mantenimento di una promessa strappata afferrando quella misteriosa chiave intrisa di peccati. Così gli interrogativi si accumulano inquietanti costringendo il nostro eroe a ricerche incessanti che lo spingeranno a indagare anche sulle oscure ombre del passato di Rodeno, quando una scomparsa in particolare venne attribuita a uno scultore in stato di indigenza residente in luoghi di fortuna nei boschi, che venne trasformato per un insano accordo non scritto dei Ruggeri/Spada in un fermo penale, poi rientrato per mancanza di indizi significativi a suo carico. Quello che Astore intuisce sul campo sporcandosi le mani è che Oscar (questo il nome del disadattato che vive nei boschi) in realtà ha assistito all’ omicidio e ha anche immortalato nei suoi ricordi il vero responsabile del misfatto, una entità che si muove a distanza di anni con la necessità di eliminare un potenziale pericolo di denuncia. E così tra una devianza e l’altra nei racconti di famiglia (il padre e la madre non sono certo immuni da peccatucci pesanti e sono i primi responsabili per aver sfornato una progenia di mostri), si continua a scavare per risolvere il mistero della chiave, fino all’ inevitabile regolamento di conti finale con doppia sorpresa. Certo se leggi un thriller sai bene che alla fine qualcosa non quadra e che l’assassino deve essere sempre il più insospettabile. Ce ne accorgiamo quando finalmente spalancata quella misteriosa porta che conduce Astore negli scantinati, ci immergiamo in una chiesa sconsacrata fatta di teschi, teste mozzate e da corpi martoriati e crocifissi (Ruggero nello specifico, il più giovane ritornato in Italia a caccia lucrose di finanze dopo la morte della zia). A quel punto niente sarà più come prima con finale decisamente incandescente. Giallo divertente, un pò spartano e atipico per la capacità di cogliere i vizi di forma della provincia, personaggio centrale quello di Astore difficilmente dimintecabile per la sua misantropia ma anche per la sua capacità di resistere agli urti (è stato vittima di una aggressione giudiziaria che lo ha segnato da giovane), belle anche le trasfigurazioni messe in atto in tecnica photoshop sui 4 fratelli, un peggiore dell’ altro come si conviene a un ceppo di sbandati adolescenti figli a loro volta di genitori assolutamente fuori di testa (in particolare il padre, con la madre soltanto attenta a tenere alto il rango della casata occultando ogni marachella come un innocente omicidio che inflazionasse lo stemma araldico). Bella la location della reggia in rovina, completamente isolata dal contesto urbano e foriera di suggestioni da letteratura horror sinistre e ancestrali (ad esempio viene descritta all’ inizio la decapitazione della vecchia madre sola nella villa intenta ad ascoltare musica classica che ormai sentendo approssimarsi l’ora della morte vorrebbe denunciare tutti i segreti di famiglia ai posteri, ma che naturalmente viene bloccata con un colpo netto di scure nel suo intento sconsiderato). Una bella storia trasversale dove le deformazioni sono di casa. Anzi di reggia.

Raccontare in diretta: quando i dialoghi sono senza sale, una lezione dal Manzoni

Così non fa male, sarà ma se mangi insipido che gusto ci provi che traslato nella lettura per l’autore sta a significare un pò di brio in questi discorsi diretti ce li vogliamo mettere o no?! Nel discorso parlato serve trasferire al lettore un discorso di immediatezza, per compiere questa operazione l’autore deve conoscere molto bene i suoi personaggi, sapere tutto di loro, che estrazione sociale hanno, il contesto in cui agiscono, il linguaggio che usano tra di loro, le peculiarità della regione in cui vivono. Vediamo come affronta la questione il sommo maestro Alessandro Manzoni nel suo capolavoro i Promessi Sposi che ebbe due versioni, la prima del 1823 intitolata Fermo e Lucia mentre la seconda definitiva con il titolo che conosciamo. A un certo punto Lucia si trova nella prima versione a faccia a faccia con l’Innominato ed esclama:

-dio è qui a vedere s’ella si muove a peità di me, per usarle pietà in ricambio un giorno-, che sembra una frase scopiazzata da un libro di teologia e messa qui per riempire la pagine. Nella seconda versione Manzoni rivede il suo scritto e ci ripensa e fa dire a Lucia:

-Oh ecco! Vedo che si muove a compassione: dica una parola, la dica, Dio perdona tante cose per un’opera di misericordia! – dove si percepisce un pò più di brio ed aggressività nella voce narrante.

A un certo punto Lucia nella versione definitiva dice all’ Innonimato la semplice frase che impone e ordina:

-mi faccia condurre in una chiesa-, mentre nella versione precedente del 1823 sentiamo dire alla protagonista:

-lasci che io mi ricoveri in qualche chiesa,su le montagne, in un bosco-, a sottolineare un cambio caratteriale della protagonista significativo. La tempra di Lucia si fa più incisiva anche nel dialogo con donna Prassede. Questa cerca continuamente di sondare se la ragazza pensa ancora al suo moroso, ma Lucia ormai più scltra e matura nella seconda edizione dà una risposta repentina, secca e lapidaria, che si prende quasi gioco della sua interlocutrice troppo curiosa:

-ebbene? Dunque non ci pensiamo più a colui?-
-io non penso a nessuno-, rispose Lucia.

Attraverso la negazione continua ripetuta NON Nessuno (che rimanda a un qualcuno), Lucia sa bene che sta dicendo ci penso sempre in ogni istante della mia vita, a lui e a nessun altro, ma la sua inquisitrice non è in grado di coglierne le sfumature della fulminea battuta, che nell’ economia del romanzo serve a Manzoni per indicare al lettore “guarda che Lucia non si fa mettere i piedi in testa da nessuno”. Ecco invece come rispondeva la sventurata nella prima versione: “la povera Lucia protestava da principio con voce angosciosa e timida che ella non pensava a nessuno”. Un bel restyling per questo personaggio che sembra diventare sempre più forte nel procedere degli eventi in una visione dinamica voluta dall’ autore che vuole mostrarci una via per reagire alle avversità! L’impatto con il lettore nelle risposte della seconda edizione diventa più battagliero e mordace. Lucia non si fa seppellire dagli eventi e sembra quasi creare una tensione con i personaggi con la quale interagisce. Le regole della conversazione scritta non sempre seguono i canovacci del parlato quotidiano. Dire mi importa o mi interessa potrebbe anche volere dire non mi interessa o non mi importa e vale il contrario come ha dimostrato Lucia con donna Prassede. Un dialogo troppo eplicito con il tutto detto può deludere. Come sosteneva Sterne Laurence, una pagina ben scritta a volte è solo un modo diverso per fare conversazione. Per la cronaca le risposte date da donna Lucia a donna Prassede creano un effetto ombra sul secondo personaggio che è indotto a chiedersi nella seconda versione del Manzoni che stesse veramente pensando la sua inquisita. Tra l’altro in orgoglio e pregiudizio della Austene la sua eroina mostra il potenziale della tecnica della negazione, a un certo punto dirà “di non pentirsi assolutamente di aver rifiutato la proposta di Darcy, di non provare nè trasporto nè stima per quest’ uomo che è stato scortese con lei”, ma in realtà il lettore percepisce questa ombra contraria in cui l’eroina ostenta in realtà confusi sentimenti non ancora del tutto chiariti. Il lettore deve percepire i personaggi attraverso i dialoghi dei personaggi, per cui bosgna costruire il tutto con estrema attenzione dosando parola per parola gli scambi. Scrivere è come ingaggiare una lotta sportiva con il lettore dove serve un gioco di equilibri attento e meticoloso per non oltrepassare linee critiche.

Progettare un carrello elettronico con PHP e MySql per i nostri acquisti interstellari? SI può fare!

Presto quelli di Venus 6 verranno sulle nostre spiagge doatati da potenti motori a curvatori a propinarci tutta una serie di nuovi oggetti intergalattici che non potremmo fare a meno di acquistare. Quindi la necessità di progettare un carrello elettronico anche se rudimentale che ci faccia fare business é una esigenza quanto mai reale. Presto questi alieni qui verranno da noi per venderci anche arbitri interstellari pronti a dire no var o si var solo in cambio di una carbonara. In sostanza quello che dobbiamo progettare come web developer è un meccanismo base di carrello elettronico da ampliare in futuro per renderlo sito e-commerce istituzionale, non importa se in questa prima fase non abbiamo abilitate le funzioni di checkout e di pagamento effettivo. Quindi sostanzialmente l’alieno ci propina la roba sui nostri dispositivi mobili tramite una breve schermata che presenta un campionario di oggetti con relativo prezzo. Cliccando sugli articoli di nostro interesse alluneremo in una pagina dove avremo un riassunto di quello che stiamo acquistando con una funzione somma che mette insieme il totale delle singole componenti. Quello che dobbiamo fare è creare un file index.php che come sappiamo di default è anche quello che si vede anche senza digitarlo sulla url, poi ci servirà una stringa di connessione da mettere in link nelle nostre pagine perchè dietro naturalmente abbiamo un DB MySql di appoggio, poi ci servirà un file esterno di appoggio che elencherà tutta una serie di variabili responsabili dei calcoli e degli aggiornamenti e infine il carrello rassuntivo da gestire con tutte le opzioni per le modifiche nel caso l’utenti cambi idea o voglia modificare il suo ordine, vediamo quindi il file più semplice, responsabile della connessione al DB, il connect.php:

/*
<?php
$con = mysqli_connect(‘localhost’, ‘root’, ”, ‘shoppingcart’);
?>
*/

ma i dati? Creo un DB di nome shoppingchart e faccio la seguente importazione con il copia e incolla sulla TAB SQL;

/*
— phpMyAdmin SQL Dump
— version 4.1.14
http://www.phpmyadmin.net

— Host: 127.0.0.1
— Generation Time: Apr 30, 2015 at 09:23 PM
— Server version: 5.6.17
— PHP Version: 5.5.12

SET SQL_MODE = “NO_AUTO_VALUE_ON_ZERO”;
SET time_zone = “+00:00”;

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;


— Database: `demo`

— ——————————————————–


— Table structure for table `product`

CREATE TABLE IF NOT EXISTS `product` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(250) COLLATE utf8_unicode_ci NOT NULL,
`price` decimal(10,0) NOT NULL,
`quantity` int(11) NOT NULL,
`description` text COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=4 ;


— Dumping data for table `product`

INSERT INTO `product` (`id`, `name`, `price`, `quantity`, `description`) VALUES
(1, ‘Name 1’, ‘1000’, 2, ‘good’),
(2, ‘Name 2’, ‘2000’, 3, ‘good’),
(3, ‘Name 3’, ‘3000’, 4, ‘good’);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

*/

vediamo poi il contenuto del file item.php che contiene la classe omonima con un elenco di proprietà o variabili secondo la dicitura procedurale:

/*
<?php
class Item{
var $id;
var $name;
var $price;
var $quantity;
}
?>

dopodiche passiamo ad analizzare la pagina index.php che ci mostrerà i prodotti che vogliamo acquistare:

/*
<link rel=”stylesheet” href=”css/table.css”>
<?php
require ‘connect.php’;
$result = mysqli_query($con, ‘select * from product’);
?>
<table cellpadding=”2″ cellspacing=”2″ border=”0″>
<tr>
<th>Id</th>
<th>Name</th>
<th>Price</th>
<th>Buy</th>
</tr>
<?php while($product = mysqli_fetch_object($result)) { ?>
<tr>
<td><?php echo $product->id; ?></td>
<td><?php echo $product->name; ?></td>
<td><?php echo $product->price; ?></td>
<td><a href=”cart.php?id=<?php echo $product->id; ?>”>Order Now</a></td>
</tr>
<?php } ?>
</table>

*/

a questo file abbiamo aggiunto come prima riga un file css di nome table.css per abbellire la nostra tabella che avrà all’ interno della cartella css, il seguente contenuto e che in automatico formatterà tutti i selettori indicati, i tag presenti nell’ html:

/*
table {
border-collapse: collapse;
border-spacing: 0;
width: 100%;
border: 1px solid #ddd;
}

th, td {
text-align: left;
padding: 8px;
}

tr:nth-child(even){background-color: #f2f2f2}
*/

a questo punto manca il file dove io ho il ripeilogo gestione degli oggetti precedentemente selezionati per l’acquisto, il file cart.php, che risulta essere il più complesso di tutta la nostra applicazione se non altro per i suoi contenuti dinamici, anche qui abbiamo lincato il nostro file css per vestire la parte grezza dei contenuti:

/*
<link rel=”stylesheet” href=”css/table.css”>
<?php
session_start ();
require ‘connect.php’;
require ‘item.php’;
if (isset ( $_GET [‘id’] )) {
$result = mysqli_query ( $con, ‘select * from product where id=’ . $_GET [‘id’] );
$product = mysqli_fetch_object ( $result );
$item = new Item ();
$item->id = $product->id;
$item->name = $product->name;
$item->price = $product->price;
$item->quantity = 1;
// Check product is existing in cart
$index = – 1;
if (isset ( $_SESSION [‘cart’] )) {
$cart = unserialize ( serialize ( $_SESSION [‘cart’] ) );
for($i = 0; $i < count ( $cart ); $i ++)
if ($cart [$i]->id == $_GET [‘id’]) {
$index = $i;
break;
}
}
if ($index == – 1)
$_SESSION [‘cart’] [] = $item;
else {
$cart [$index]->quantity ++;
$_SESSION [‘cart’] = $cart;
}
}

// Delete product in cart
if (isset ( $_GET [‘index’] )) {
$cart = unserialize ( serialize ( $_SESSION [‘cart’] ) );
unset ( $cart [$_GET [‘index’]] );
$cart = array_values ( $cart );
$_SESSION [‘cart’] = $cart;
}
?>
<table cellpadding=”2″ cellspacing=”2″ border=”1″>
<tr>
<th>Option</th>
<th>Id</th>
<th>Name</th>
<th>Price</th>
<th>Quantity</th>
<th>Sub Total</th>
</tr>
<?php
$cart = unserialize ( serialize ( $_SESSION [‘cart’] ) );
$s = 0;
$index = 0;
for($i = 0; $i < count ( $cart ); $i ++) {
$s += $cart [$i]->price * $cart [$i]->quantity;
?>
<tr>
<td><a href=”cart.php?index=<?php echo $index; ?>”
onclick=”return confirm(‘Are you sure?’)”>Delete</a></td>
<td><?php echo $cart[$i]->id; ?></td>
<td><?php echo $cart[$i]->name; ?></td>
<td><?php echo $cart[$i]->price; ?></td>
<td><?php echo $cart[$i]->quantity; ?></td>
<td><?php echo $cart[$i]->price * $cart[$i]->quantity; ?></td>
</tr>
<?php
$index ++;
}
?>
<tr>
<td colspan=”5″ align=”right”>Sum</td>
<td align=”left”><?php echo $s; ?></td>
</tr>
</table>
<br>
<a href=”index.php”>Continue Shopping</a>
*/

Chi lo avrebbe mai detto che mettendo insieme questi semplici pezzettini abbiamo giù un dispositivo grezzo ma funzionale che costituirà il nostro punto di partenza per il nostro shopping cart interstellare?

Match del secolo: difesa Alekhine, la nona

[Site “Chess.com”]
[Round “9”]
[White “enricof8”]
[Black “homunculus1”]
[Result “0-1”]
[ECO “B03”]
[WhiteElo “1842”]
[BlackElo “1823”]
[EndDate “2019.01.22”]

visualizzazione dinamica della nona: https://www.chess.com/daily/game/216402780

Prima partita del match: https://umbriawaydeveloper.wordpress.com/2019/01/19/il-match-del-secolo-per-il-titolo-di-campione-condominiale-globale-interplanetario-prima-del-match-huebsch-gambit-faraoni-enrico-vs-homunculus1-0-1/

Seconda :https://umbriawaypotenzia.wordpress.com/2019/01/20/seconda-del-match-mondiale-condominiale-vs-homunculus1-dopo-io-pensa-ma-qui-posizio-persa-micko-philidor-defence/

Terza: https://umbriawaytarget.wordpress.com/2019/01/21/il-match-del-secolo-condominiale-terza-del-match-gm-faraoncic-accorcia-le-distanze/

quarta: https://umbriawaynoir.wordpress.com/2019/01/21/quarto-turno-del-campionato-mondiale-elo-under-di-scacchi-patta-tra-due-supergm-condominiali/

quinta: https://umbriawayfocus.wordpress.com/2019/01/21/quinta-del-match-per-il-titolo-faraoncic-vs-homunculus1/

sesta: https://umbriawayfidelizza.wordpress.com/2019/01/21/sesta-del-mondiale-di-scacchi-seguito-anche-su-altair-4-gm-faraoncic-accorcia-le-distanze/

settima: https://umbriawaydeveloper.wordpress.com/2019/01/22/est-indiana-da-brivido-ora-puoi-limmortale-condominiale-gm-faraoncic-riagguanta-il-fuggitivo/

ottava: https://umbriawaydesign.wordpress.com/2019/01/23/il-match-del-secolo-riveduto-e-corretto-patta-definita-la-sempreinbianco-dai-critici-gm-faraoncic-riesce-a-salvarsi-con-pellegrinaggio-ad-assisi/

punteggio dopo la game: 5 a 4 per homunculus!

1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.c4 Nb6 5.f4 g6 6.Be3 Bg7 7.Nc3 Be6 8.Nf3 O-O 9.d5 Bg4 10.h3 Bxf3 11.Qxf3 dxe5 12.f5!? NT

una novità che però consente subito al nero di minare il centro quando con 12 000! C8d7 13 f5 si poteva migliorare la linea anche se 13..e4 é fastidiosa

12..c6! 13.O-O-O cxd5 14.cxd5 (+0.39 → -0.61)

Inaccuracy. A better move was 14. ♘xd5 Nxd5 15.fxg6 fxg6 16.Qxd5+ Qxd5 17.Rxd5 e6 18.Rd6 Nc6

14…N8d7 15.Kb1 Nf6 16.g4 Rc8! strong move

17.Rh2? (-0.72 → -2.13)

un grave errore quando 17. ♘e4 salvava capra e cavoli, ad esempio 17..Nc4 (17…Nfxd5?? 18.Bxb6 e 17..Nbd5?? 18 Nf6) 18.Bxc4 Rxc4 19.Nxf6+ Axf6 20.fxg6 20…hxg6 21.h4 Qd6 con leggero vantaggio nero)

17…Rxc3!

il bianco ha fatto di tutto per ricevere questa telefonata, sacrificio di qualità ineccepibile, una interrurbana che porta al tracollo

18.bxc3 Na4 19.Rc2 e4 20.Qe2 Nxd5 21.Kc1? (-3.86 → -6.65)

quando si dice é un giocatore preciso, soprattutto nella fase difensiva ah ah, si imponeva la patetica 21. ♖xd5

21..Naxc3 22.Rxc3 Nxc3

0-1

conclusioni: le idee c’erano ma la ciambella non é riuscita con il buco, occorre trovare un miglioramento

JavaScript per aspiranti programmatori – A overview

JavaScript è uno dei linguaggi di programmazione più popolari al mondo e viene utilizzato per aggiungere interattività alle pagine Web, elaborare i dati e creare varie applicazioni (app mobili, app desktop, giochi e altro ancora) Imparare i fondamenti di una lingua ti consentirà di creare il programma che desideri, sia sul lato client che sul lato server. Iniziamo con l’aggiunta di JavaScript a una pagina web. JavaScript sul Web vive all’interno del documento HTML. In HTML, il codice JavaScript deve essere inserito tra i tag script e / script che può essere incluso nel corpo del documento o nell’ head. tieni presente che lo script, che è posto nella sezione head, verrà eseguito prima che il body sia reso. Se vuoi ottenere elementi nel corpo, è una buona idea posizionare il tuo script alla fine del tag body. Per scrivere ciao mondo:

<code>
<html>
<head> </head>
<body>

document.write(“Hello World!”);

</body>
</html>
</code>

Proprio come in HTML, possiamo usare i tag HTML per formattare il testo in JavaScript. Ad esempio, possiamo produrre il testo come intestazione:

<code>
<html>
<head> </head>
<body>

document.write(“

Hello World!

“);

</body>
</html>
</code>

È possibile inserire qualsiasi numero di script in un documento HTML. In genere, il tag dello script è inserito nella testa del documento HTML:

<code>
<html>
<head>


</head>
<body>
</body>
</html>
</code>

C’è anche un tag noscript. Il suo contenuto verrà mostrato se il browser del client non supporta gli script JS. In alternativa, includi il codice JavaScript nel tag body.

<code>
<html>
<head> </head>
<body>


</body>
</html>
</code>

è una buona idea posizionare gli script nella parte inferiore dell’elemento body. Questo può migliorare il caricamento della pagina, perché la visualizzazione HTML non è bloccata dal caricamento degli script. Il tag script può assumere due attributi, lingua e tipo, che specificano il tipo di script; L’attributo language è deprecato e non dovrebbe essere utilizzato.

<code>


</code>

Nell’esempio seguente, abbiamo creato una casella di avviso all’interno del tag script, utilizzando la funzione alert ():

<code>
<html>
<head>
<title></title>

alert(“This is an alert box!”);

</head>
<body>
</body>
</html>
</code>

Anche l’attributo type: script type = “text / javascript” non è più necessario, poiché JavaScript è il linguaggio di scripting HTML predefinito. Gli script possono anche essere inseriti in file esterni. Gli script esterni sono utili e pratici quando lo stesso codice viene utilizzato in un numero di pagine Web diverse. I file JavaScript hanno l’estensione .js. Di seguito, abbiamo creato un nuovo file di testo e lo abbiamo chiamato demo.js. Avere script JS in file separati rende il tuo codice molto leggibile e più chiaro. Per utilizzare uno script esterno, inserisci il nome del file di script nell’attributo src (source) del tag script. Il tuo file demo.js include il seguente codice JavaScript, ma nota bene non il tag script che è già specificato nell’ estensione:

<code>
alert(“This is an alert box!”);
</code>

Puoi posizionare un riferimento di script esterno in head o body, quale preferisci. Lo script si comporterà come se fosse localizzato esattamente dove si trova il tag . Posizionare un codice JavaScript in un file esterno presenta i seguenti vantaggi:

– Separa HTML e codice.
– Rende HTML e JavaScript più facili da leggere e mantenere.
– I file JavaScript memorizzati nella cache possono accelerare i carichi di pagina.

Non tutte le istruzioni JavaScript sono “eseguite”. Il codice dopo una doppia barra //, o tra / * e * /, viene considerato come un commento. I commenti vengono ignorati e non vengono eseguiti. I commenti a riga singola utilizzano doppie barre.



// This is a single line comment
alert("This is an alert box!");

</code>

È una buona idea fare un commento sulla logica delle grandi funzioni per rendere il tuo codice più leggibile per gli altri. Tutto ciò che scrivi tra / * e * / sarà considerato come un commento su più righe. Ecco un esempio:

<code>

/* This code
creates an
alert box */
alert("This is an alert box!");

</code>

I commenti sono usati per descrivere e spiegare cosa sta facendo il codice.

ON PAGE FACTOR: ottimizzare le pagine web

Off Page factors smart clouds

Sono tanti i fattori che possono influenzare il posizionamento, i fattori interni ON PAGE in un progetto vanno curati nei dettagli. Certo poi senza attività promozionale (il SEM) non si va da nessuna parte ma come si suol dire Roma non è stata costruita in un giorno. Il primo passo da fare è la SCELTA DEL NOME DI DOMINIO che deve essere NON CONFONDIBILE nella comunicazione e nel messaggio che si vuole dare, dovrebbe contenere una Keyword e deve riflettere la realtà aziendale. Statisticamente le estensioni . INFO e .BIZ sono molto usate per azioni di SPAM e quindi soggette a PENALIZZAZIONI. Il DOMAIN NAME SYSTEM funziona come risolutore dei nomi di dominio, cioè traduce gli indirizzi IP numerici in parti semantiche comprensibili legate a quell’ IP o anche l’equivalente verbale di quell’ IP. Domini come business.com o casino.com sono stati venduti per cifre astronomiche, perchè? Perchè la scelta di dominio può portare acqua al proprio mulini, in questo caso dobloni. Il CYBERSQUATTING è una tecnica scorretta che vuole occupare nomi di dominio per poi rivenderli. Esistono entità che assegnano l’unicità, consultare ad esempio https://www.icann.org/ , oggi possono essere concessi domini con particolare estensione strategica come www.android.google o www.iphone.apple per esempio. Queste assegnazioni personalizzate però va detto sono molto costose ma le grandi aziende possono comunque beneficiare strategicamente della spesa effettuata. Per i comuni mortali è bene ricordare che il nome di dominio devve essere relativamente per questioni di praticità, deve diventare indimenticabile. E’ buona norma testare prima l’effetto che fa con amici e parenti. Il nome di dominio deve differenziarsi dagli altri e non va confuso deve essere esplicitamente chiaro sulla comunicazione che si vuole trasmettere. Certo che se il dominio www.sonofelice.it è occupato una pessima idea sarebbe quella di andare a registrare www.felicesono.it perchè si crea confusione e ambiguità. Il nome di dominio deve rispecchiare il brand aziendale, ad esempio www.barilla.it. Se l’azienda non ha le caratteristiche della Barilla basta cercare quelle caratteristiche aziendali che rendono quell’ azienda unica ed esclusiva in modo da estrapolare indicazioni funzionali. I domini .ORG e . NET rispecchiano le comunità in rete e quindi sono sempre molto graditi ma come azienda però non sono funzionali. Se ti vuoi muovere nelle macroaree europee devi prendere una estensione .EU, è bene tenere presente che la congruenza è premiante sul WEB e che se prendo un dominio .IT e poi presento una serie di prodotti in russo, la mia comunicazione non è di tipo lineare ma presenta delle contraddizioni. Molto dibattuta è la questione dei trattini in quanto un sito come www.energia-solare-umbria.com tende ad essere macinato da GOOGLEBOT come una frase composta da tre parole in quanto i trattini sono considerati per il motore spazi, ma siamo sicuri che da sole queste parole abbiano un senso organicamente compiuto? I siti dove sono presenti trattini i trattini sono difficili da pronunciare e da ricordare. Certamente si possono usare scorciatoie nel senso che si possono estrapolare delle keywords a coda lunga e usare la loro efficacia come registrazione di nuovi domini che puntano al principale tramite REDIRECT. Attenzione a NON DUPLICARE CONTENUTI su domini differenti. Certamente se le persone sono costrette ad usare la parola chiave direttamente nel link il valore aggiunto seo si commenta da solo esistono tecniche come la RANKABILITY mche usano un termine generico + una parola chiave. L’individuazione della parola chiave è importante e si possono estrapolare coppie di keyword in modo da arrivare a disegnare il contesto globale. Gli esempi che riportano i libri specializzati fanno leva ad esempio sul business dei pannelli fotovoltaici e quindi possiamo individuare le parole “pannelli fotovoltaici, energie rinnovabili, energia solare, energia elettrica, celle energetiche”. Combinando questa mappa con quelle del brand aziendale possiamo individuare ad esempio il nome di dominio (ad esempio SolarEnergy.it può essere un buon inizio). Bisogna trovare dei compromessi tra la SEO e il BRAND aziendale. Certamente l0idea di usare il trattino per evidenziare delle parole chiave a coda lunga con il REDIRECT ha la sua suggestione e la sua utilità pratica. Teniamo sempre presente che la SEO è una disciplina basata sull’ esperienza personale, una percezione soggettiva ma anche nelle sue metriche misurabili che si basa su test, prove e deduzioni. Certamente alcuni errori pacchiani vanno evitati, tipo la registrazione di un dominio fatta un decennio fa dove però dentro non si è mai mosso nulla a livello di contenuti, la duplicazione di contenuti e altre amenità. La storicità di dominio ha la sua importanza solo se i protagonisti del brand o servizio che si intende promuovere intendono movimentare con contenuti freschi ed aggiornati le pagine elargendo preziosi consigli che alimentano indirettamente una preziosa idea di consulenza su criticità esistenti. Il compito del webmaster o chi per lui, è quello di creare contenuti freschi, nuovi e di qualità, la questione della storicità lascia il tempo che trova anche se è pur vero che GOOGLE ha nel suo segreto algoritmo da elisir di lunga vita anche BREVETTI che lavorano in tal senso ma che non devono influenzare il nuovo imprenditore. Certo è che i BACKLINK di un sito degli anno novanta che parla di cucina si porta dietro una storicità che diventa credibilità e quindi tradotto miglior posizionamento. Il DOMAIN GRABBIN, tecnica che prevede l’acquisto di più nomi di dominio, serve nell ‘ottica del posizionamento seo? Se se registrano più nomi di dominio che vengono reindirizzati verso il principale con un redirect senza che vengano creati e modellati dei contenuti pertinenti la cosa ha poco senso, si certamente si tolgono spazi di dominio alla concorrenza e si estendono i confini del proprio recinto, ma quello che è efficace per la seo sono contenuti che poi reindirizzano verso il sito principale. Potrebbe essere vantaggioso registrare sottodomini corti anche per organizzare per sottogerarchie i contenuti del proprio progetto. Umbriabus.it è diverso da umbria-bus.it e da busumbria.it? Certamente! Strategicamente il primo identifica la collocazione geografica più pertinente e i due possono essere usati come sottodomini che con un REDIRECT puntano al sito principale. I domini che contengono parole chiave hanno più significato per la seo anche in ottica di scambio link. Una registrazione multipla per i nomi di dominio migliora il posizionamento nel caso diretto dei sottodomini, ma anche indirettamente nel caso del redirect di domini paralleli perchè questi ultimi magari migliorano la credibilità presso i fornitori rispetto al sito principale che è difficilmente pronunciabile e che tramite redirect comunque possono linkare il sito anche sui propri spazi promozionali per maggiore fruizione e visibilità. Dopo la scelta del dominio e tutte le valutazioni annesse e connesse arriva la SCELTA DELLE KEYWORD per identificare la nostra attività. Queste keyword dovranno essere ricorrenti all’ interno del testo e dei META TAG ma senza esagerare per non incorrere in penalizzazioni. Esperimenti di EYE-TRACKING hanno dimostrato che l’attenzione umana focalizza solo i primi risultati e non vanno oltre la terza pagina per cercare risultati pertinenti alla ricerca.Ci sono centinai di possibilità per essere scelti con delle frasi e query pertinenti e occore sondare quali sono sfruttabili e competitive rispetto a keyword troppo inflazionate ma di maggiore uso comune. Le keyword fanno parte di un concetto EURISTICO perché alla base i presupposti alla soluzione di un problema nato dalla domanda contenuta nella query. Per la scelta della keyword dobbiamo individuare i bisogni dei nostri utenti, conoscere le diverse tipologie di parole chiave che abbiamo a disposizione, dobbiamo metterci nei panni dell’ utente e immaginare le sue digitazioni, dobbiamo trovare un elenco di termini e sinonimi associati al nostro brand, magari studiando i nostri competitors nelle prime posizioni dei motori e guardando i loro articoli e il loro codice html. E’ importante poi usare i tools di supporto come lo strumento gratuito messo a disposizione da Google con adwords. Le Keyword scelte dovranno popolare titoli, contenuti, metatag, attributi, nomi di categoria etc. Le keyword meno competitive sono più facilmente posizionabili.

Ancora tu? Non dovevamo vederci più? Battisti aveva in testa il dragone quando se ne uscito con la sua canzone di successo? Il dragone é scientificamente perdente? E perché Nakamura ci ha vinto con l’over 2700 di nero a Gibilterra? Lucho57 vs Faraoni Enrico e 17..gh5!? Novità Teorica con delirio

Ma il dragone non va a casa scientificamente? Il bianco non vinceva sempre in tutte le varianti? Hanno trovato qualcosa di nero per rivitalizzare qualche linea? Nakamura gioca il dragone nei tornei di alto livello e vince, perché lo fa? Calma, calma qui si dettano le mode e solo perché c’è una vittoria tutti si mettono a giocare il dragone! Ebbene si, nella partita di preallenamento per la serie A2 faraoni Enrico alias Nando Anando propone la sua bestia immonda a un impavido bianco (Lucho57, tempi veloci, chess24, 2 febbraio 2018)

1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 g6 Ancora tu? Non dovevamo vcederci più? E’ molto raro che venga accettata la sfida sulle linee principali perché di solito vince non sempre il giocatore più bravo ma solo quello meglio preparato su quella linea. Per questa ragione dopo la seconda mossa del nero il bianco ha numerose alternative minori valide da sperimentare 6. Be3 Bg7 7. f3 O-O 8. Qd2 Nc6 9. Bc4 Bd7 10. O-O-O Rc8 11. Bb3 Ne5 12. h4 h5 13. Bg5 Rc5 14. g4 hxg4 15. f4 Nc4 16. Qe2 b5 17. h5!?

la variante principale é 17 f5! Da5 e si apre un mondo

17..gxh5!? il nero fa la sua novità teorica!

(17… Nxh5 e 17 ..Tg5!? 18 fg5 Ch5 con posizioni nebulose contemplate dalla moderna teoria delle aperture)

18. Bxf6 Bxf6

(18… exf6 19. Ndxb5 Nxb2 20. Kxb2 Qa5 21. Rd5 Bxb5 22. Rxc5 Qxc3+ 23. Kxc3 Bxe2 posizione giocabile per entrambi)

19. Nf5

(19. f5! Kg7! non facile da vedere come piano difensivo 20. Rxh5 Rg8 21. Qxg4+ Kf8 22. Qh3 Qb6 23. Rh7 Ke8 24. Qh5 Rf8 25. Qe2 Nxb2 26. Kxb2 Rxc3 27. Kxc3 Qc5+ 28. Kd2 Qxd4+ 29. Qd3 Qf2+ 30. Kc1 Qf4+ 31. Kb1 Qe5 32. Kc1 e il bianco deve subire il perpetuo sulle case nere altrimenti l’alfiere in g7 che ce lo metto a fare?)

19… Bxf5 20. Rxh5 Bxc3!?

(20… Bd7! 21. f5 Ne5 22. Rdh1 Rxc3 23. bxc3 e6 24. Qh2 Bg5+ 25. Kb1 Kg7 26. fxe6 Bxe6 27. Bxe6 fxe6 28. Rh7+ Kf6 29. Qh5 Nf3 30. Qxg4 Ke5 31. Qg3+ Rf4 32. Rd1 Kxe4!! e il nero gioca per vincere un giocatore normale difficilmente vedrebbe queste mosse di re al centro della scacchiera in pieno medio gioco)

21. bxc3 Qa5 22. Bxc4

(22. Qh2?? Qa3+ 0-1)

22… Qa3+ 23. Kd2 Rxc4 24. Qxg4+! gulp

24..Bg6 25. Rh3 Rxe4 26. Qh4 f5 27. Rg1 Kf7 28. Rxg6 Ke8 29. Qh5 Kd7 30. Rg8!! porca puzzola  30..Re1!! arigulp

(30… Rxg8? 31. Qxf5+ Kc7 32. Qxe4)

31. Kxe1 Qc1+ 32. Qd1 Qxd1+ 33. Kxd1 Rxg8

e il finale del bianco a gioco corretto é senza speranze. Che dire? Questa novità teorica del nero si può giocare? In questa partita ci sono mosse tattiche allucinanti di ogni tipo e per tutti i gusti anche nascoste nelle analisi, solo nel dragone sono possibili motivi tattici esasperati di complicata bellezza, per ora ha ragione NAKAMURA, il dragone, ANCORA TU, concludiamo con il testo della canzone immortale di Battisti:

 

Ancora Tu non mi sorprende lo sai
Ancora Tu ma non dovevamo vederci più
E come stai, Domanda inutile
Stai come me e ci scappa da ridere
Amore mio hai già mangiato o no
Ho fame anch’io e non soltanto di te
Che bella sei sembri più giovane
O forse sei solo più simpatica
Oh lo so cosa tu vuoi sapere…
Nessuna no ho solo ripreso a fumare…

Sei Ancora Tu purtroppo l’unica
Ancora Tu l’incorregibile
Ma lasciarti non è possibile
No lasciarti non è possibile
Lasciarti non è possibile
No lasciarti non è possibile
Sei Ancora Tu purtroppo l’unica
Sei Ancora Tu l’incorregibile
Ma lasciarti non è possibile
No lasciarti non è possibile

Lasciarti non è possibile

No lasciarti non è possibile

Disperazione gioia mia
Sarò Ancora Tuo sperando che non sia follia
ma sia quel che sia
abbracciami amore mio
abbracciami amor mio
Ché adesso lo voglio anch’io
Ancora Tu, non mi sorprende lo sai
Ancora Tu, ma non dovevamo vederci più
E come stai? Domanda inutile
Stai come me e ci scappa da ridere
Amore mio hai già mangiato o no
Ho fame anch’io e non soltanto di te
Che bella sei sembri più giovane
o forse sei solo più simpatica

 

23 Cc6! di Ljubojevic ed é subito punto: quando le parole del poeta si elevano insieme a Java ed Eclipse!

Nell’indimenticabile torneo di Bugojno ’86 indirizzo http://www.chessgames.com/perl/chesscollection?cid=1012088 c’è un dato analizzando la classifica finale che non può essere trascurato, il vincitore si ritrova un bello zero subito da un certo Sokolov. Ma guardando bene che ci fa un giocatore come Ljuboievic in terza posizione? Il fatto é che in quel torneo macinava idee e immaginazione, ad esempio contro Timman ecco cosa riesce a fare http://www.chessgames.com/perl/chessgame?gid=1092162 da qui la pseudo domanda del titolo: il nero gioca 22..Tg8 pensando di venirne fuori o aveva previsto che cosa sarebbe accaduto alla mossa successiva? Se é un superprofessionista il neofita dira tra se che l’avrà vista per forza questa risorsa ma non puoi ottenere sangue da una pietra, più di tanto quando finisce in posizione inferiore non puoi fare. Quindi 23 Cc6 e il nero finisce in guai grossi. Ma non tergiversiamo e con social media marketing Umbria entriamo nel vivo della programmazione Java grazie al fatto che il lavoro precedente sulla configurazione dell’ IDE ha prodotto buon esito come si evince all’ indirizzo: https://umbriawaydesign.wordpress.com/2018/01/19/cosa-succede-quando-un-giocatore-viene-mortificato-e-di-cognome-fa-mortimer-chiedilo-al-gm-eclipse/; in questa scorribanda formativa o autoformativa vediamo le caratteristiche dell’ IDE, osservando in dettaglio alcune funzionalità. La struttura é quella che si vede barra del titolo, barra dei menù, barra degli strumento, a sx abbiamo la gestione folder progetto al centro troviamo lo spazio per la stesura del codice a dx mi ritrovo la sezione outline e tasklisk che si possono spostare o chiudere con soluzioni flessibili grazie al trascinamento per rendere comoda la struttura personalizzata. In genere la visualizzazione cambia con le diverse modalità del progetto, in gergo vengono chiamate PROSPECTIVE con opzioni di visualizzazione verticale oppure orizzontale. Quello che a noi preme sapere che queste interfaccia visuali consentono sempre una altissima possibilità di personalizzazione e che ci sono sempre diverse soluzioni a un tipo di problema. Esiste anche una modalità di visualizzazione chiamata NAVIGATOR come finestra messa a fianco ad EXPLORER ma molte cose non sono strettamente necessarie. Posso anche impostare la visualizzazione gerarchica sui packages ma spesso queste varianti dipendono dalla soggettività del programmatore. Nella parte inferiore ho una finestra di debug dove cliccando due volte ho anche il dettaglio avanzato che punta al file incriminato. Eclipse di per se é un labirinto stile posizione analizzata sopra, piena di mosse e di contromosse! Il tutto é facile e intuitivo ma le voci di menù sono molteplici e un minimo di smanettamento é auspicabile prima di prendere possesso dello strumento. Posso anche scegliere le modalità di debug dalla barra degli strumenti per esempio, che mi presenta un menù a discesa per le mie esigenze su quale file intervenire. L’editor di codice della finestra principale é davvero potente! E’ ricca di aiuti e suggerimenti per guidare il web developer javista (se ci é consentito dall’ accademia della crusca) per individuare al più presto quello che non funziona e che manca per far funzionare l’accrocchio! Tornando alla questione posta da social media marketing Umbria  all’ inizio, cosa accade quando un agonista non vede una mossa in analisi, ossia quando l’avversario tira fuori dal cilindro dei colpi tattici come quello di Karpov alla mossa 49 all’ indirizzo http://www.chessgames.com/perl/chessgame?gid=1068476, certamente queste bordate destabilizzano e oltre a rafforzare la sicurezza del potenziale vincitore come in tutti gli sport, servono a gettare nel panico la mente del secondo giocatore che perderà il bandolo della matassa incapace di trovare delle mosse forti che potrebbero risollevare gli esiti della lotta.

Abbiamo il DOVERE di parlare di WEB FORM in PHP e della spettacolare partita di TAL giocata nel 1985 vs Ftacnik!

social media marketing umbriaBasta con i buzzurri giochi di parole che hanno consentito alla Juventus di approdare alla semifinale di Coppa Italia contro il Torino grazie a una partita taroccata per un errore umano al minuto settanta quando quel poveraccio di arbitro DOVERI (candidato a visionare prossimamente tornei di freccette) si permetteva di fare grandi danni a quegli sportivi che non tifano Juventus. Finiamola con questa becera rivendicazione e parliamo delle mosse di Tal lo scacchista. Come possiamo definire la Mikhail Tal vs Lubomir Ftacnik Nimzowitsch Memorial (1985), Naestved DEN, rd 8, Sicilian Defense: Scheveningen. Classical Variation (B84) 1-0 in 31 mosse? Un pestaggio sportivo ? O qualcosa simile a una prestazione sonora dei Nirvana modello Come As You Here? Qualcosa di vero c’è a giudicare l’ultimo parallelismo, le parole del testo esaltato da Kurt Kobain sono incomprensibili come le mosse tattiche giocate dal bianco: http://www.chessgames.com/perl/chessgame?gid=1045773. E’ complicato anche ricamarci sopra una bella telecronaca del tipo clamoroso allo Stadium, il bianco vince facile grazie a una incertezza della VAR. Le mosse di Tal sono semplici e oculate nella loro scelleratezza. Come soppesare una mossa come 15 f6!? Il nero forse si aspettava questa spinta di attacco? Un aspetto salta subito all’ occhio e cioé che tutto sommato i pezzi neri sono temporaneamente ripiegati sull’ ultima traversa a esprimere un potenziale limitato rispetto a un gioco di squadra che potrebbero orchestrare. E dopo 20 Ah6 come avrà cambiato la sua valutazione il nero? Avrà finalmente capito in guai seri, chiede social media marketing Umbria? Per le prestazioni di Tal e le sue best games vedere link http://www.chessgames.com/perl/chesscollection?cid=1005503. E ora passiamo a parlare di WEB FORMS per gli sviluppatori PHP che sono strumento o risorse messe a disposizione per consentire all’ utente di processare i dati, sottolinea social media marketing Umbria. Hai presente un modulo di LOGIN? Hai presente dettagli come nome , cognome, indirizzo, mail? Siamo dentro ai web form ma anche ai METODI che servono per processare e spedire queste informazioni. PHP offre un vasto campionariod i opzioni per gestire i FORM al meglio e non dimentichiamoci poi dell’ integrazione con JQuery ed Ajax che consentono un aggiornamento senza passare per il rendering della pagina. Passiamo a valutare con mano e a toccare un esempio pratico che social media marketing Umbria ha messo in piedi all’ indirizzo http://www.farwebdesign.com/php/Example8-webforms.html. Il tag FORM come si evince dalla gallery circoscrivono l’ambito di lavoro della spedizione dei dati e come tutti i tag HTML prevedono la solita apertura chiusura di rito. In una architettura client server, cioé all’ interno di un sistema dove qualcuno richiede e qualcun’ altro predisposto a rispondere, risponde, esistono due modi diversi di spedire i dati GET e POST. Coh get come si evince dal link di cui sopra le variabili transitano sopra la URL e sono visibili il che potrebbe essere un problema in termini di sicurezza, fa notare social media marketing Umbria, per questo spesso si usa il metodo (METHOD nello script) POST dove il tutto passa sotto silenzio in maniera coercitiva! HTTP per Definisce il protocollo di trasferimento ipertestuale come comunicano il server e il client. L’ & come simbolo separa le variabili nella stringa URL nel metodo GET. In uno dei prossimi articoli con social media marketing Umbria affronteremo la spinosa questione del perché l’uomo non sia ancora allunato su Marte (si fa per dire!).