Microservizi e Applicazioni monolitiche: come creare e attaccare debolezze e vivere con gioia con tanti punti sul tabellone

All’indirizzo http://www.chessgames.com/perl/chessgame?gid=1020368 abbiamo un modo elegante e accademico per imparare come si creano le debolezze e si attaccano per creare sconquassi nella posizione nemica. E’ bello vedere come in questa game giocata tra Garry Kasparov vs Ulf Andersson Match (1985), Belgrade YUG, rd 5, Catalan Opening: Closed Variation (E06) 1-0 in 50 mosse il bianco profredisce piano piano e lento lento fino a prendersi tutta la scacchiera e a guadagnare materiale. Colpisce la totale rilassatezza nello sfruttamento dei vantaggi acquisiti come se il gioco degli scacchi fosse facile una volta apprese quelle sicure tecniche posizionali che ti portano a vincere facile senza mollare un millimetro e rischiare alcunché. Ma la questione qui é un’ altra é molto incasinata, definisce Umbriaway Consulting. Microservizi dunque. Ci sono buone possibilità di essere internati, se prendi in esame le espressioni seguenti come MVC pattern architetturale. Fullstack application. Front Page, single page. JAVA SPRING. DAO. AJAX. REST. SOAP. Perché ebay, amazon e netflix hanno in simpatia il modello architetturale dei microservizi? Perché i servizi Soap stanne perdendo terreno rispetto a quelli REST (rest is ok perché lavora con JSON)?  Ma alla fine che cosa é un microservizio? Base dati, API, JSON, JPA e JWT? Chiamate asincrone JQuery? Applicazioni ibride, posso costruire funzionalità separate con richieste su porte diverse usando tecnologie poco omogenee come Java, PHP o Pyton? Perché le WEB APP stanno perdendo terreno rispetto alle funzionalità offerte dai microservizi? Porta 8080? Porta 8081 o 8082? FAT JAR o WAR? Quindi cerchiamo di rispondere alle domande base. Che cosa é un MICROSERVIZIO e perché sta acquistando più interesse delle applicazioni MONOLITICHE? Immaginiamo di aprire l’agenda al mattino e di leggere i seguenti microservizi: andare a comprare il giornale, portare a spasso il cane, andare a salutare quelli di equitalia etc etc e immaginiamo di arrivare a fine giornata dopo aver svolto in sequenza tutto questo calderone di impegni vari e assortiti spesso dipendenti da imprevisti di orario o ritardi naturali. Ora se arrivo a fine giornata e li barro tutti in quel giorno posso anche considerare la giornata come un contenitore complessivo e globale composto da layer che hanno condizionato l’intera successione di eventi. Il microservizio rimane come concetto logico legato a quella singola attività svolta in maniera unica e singolare, fine, senza vincoli di sangue con qualcosa che viene prima o dopo. Altro esempio ho una molecola e ho l’unità elementare che la compone, l’atomo. Possiamo considerare un microservizio come un animo autonomo e indipendente, e più atomi scritti anche con linguaggi diversi su porte diverse, possono offrire servizi indipendenti riutilizzabili senza vincoli generali con una scatole contenitore che li contiene. Ma che differenza c’è tra WAR e FAT JAR? con il WAR da non confondere con il nuovo tormentone calcistico della domenica sportiva, posso deploiare le mie applicazioni usando uno strumento aggiuntivo che si chiama web application e che ascolta le richieste per soddisfarle, non a caso si sente udire spesso l’espressione http listener. Il FAT JAR come estensione di file é tipico del framework SPRING BOOT e tra le due tipologie la differenza sostanziale é che nel secondo caso non abbiamo bisogno di un software aggiuntivo come TOMCAT che svolge la funzione di APPLICATION SERVER in quanto la stessa struttura interna ha tutte le risorse per lanciare in maniera autonoma l’applicazione. Sostanzialmente quando arriva la richiesta questi microservizi non hanno bisogno di deploy in quanto chi é predisposto a spacchettare nonfa altro che istanziare e attivare la risposta. Entrambi i file hanno al loro interno come struttura del folder una cartella TEST che serve a svolgere i controlli logici formali sulle istruzioni impartite in produzione. Con il microservizio io posso dividere l’applicazione in vari layer svincolandomi da un meccanismo globale, immaginiamo un CRM che deve gestire ORDINI, CLIENTI, PAGAMENTI e che deve lavorare come la cassa interna di un orologio. Ma con i microservizi io posso delegare a tre soluzioni atomiche appunto a tre microservizi indipendenti le funzionalità che svolgono quelle operazioni specifiche senza renderle dipendenti da un contenitore e questo mi consente di lavorare singolarmente sopra ogni servizio senza dover modificare un TUTTO. WAR sta per WEB JAR, una contrazione che prende la W di web e il finale dell’ estenzione. Un altra differenza sostanziale tra i due file WAR e FAT JAR consiste nel fatto che nel secondo non ho necessità di gestione all’ interno della cartella webapp con il file XML predisposto in quanto il FAT JAR non ha la cartella indicata ma solo il MAIN e la folder RESOURCES dove si intuisce che il MAIN svolge un compito primario in quanto consente di lanciare l’applicazione senza passare per APPLICATION SERVER e quindi senza usare software aggiuntivo. Il MAIN istanzia quindi e manda in esecuzione le richieste su una parte di application server già inclusa che non richiede software esterni per successive lavorazioni. Questo mi permette una maggiore flessibilità e indipendenza sulle chiamate http tipiche delle architetture client-server e trasforma il microservizio in qualcosa di estremamente modulare e facile da gestire dal momento che intorno a lui la complessità viene annullata delle sue componenti interdipendenti a un complesso meccanismo che tiene conto di tutte le singole parti che vivono solo all’ interno di un gruppo. Con il microservizio l’atomo ha la sua vita autonoma senza inficiare la funzionalità della molecola. Sostanzialmente per le applicazioni monolitiche full stack strutturate a layer si preannuncia un momento di sviluppo un pò complicato dal momento che i microservizi sempre di più suonano alla porta con insistenza.

Annunci

Tony Miles best games e i mostri dai mille occhi

agenzia web marketingAlle olimpiadi di Dubai nel 1986 indovina chi giocava per l’inghilterra negli incontri a squadre? Gente come Speelmann, Short, Nunn e Tony Miles indirizzo internet https://it.wikipedia.org/wiki/Tony_Miles. Nell’ olimpiade citata Miles diede il suo contributo per far vincere in prima scacchiera una storica medagli d’argento agli inglesi. Di Kasparov che non riusciva mai a battere disse: mi sembra di giocare con un mostro dai mille occhi ma anche a fine carriera a metà anni novanta, dopo che si era ammalato con disturbi nervosi, al PCA Intel Rapid Chess Grand Prix di Londra eliminò Vladimir Kramnik al primo turno e Loek van Wely al secondo, ma fu sconfitto dal connazionale Michael Adams nelle semifinali ad indicare da agenzia web marketing che proprio un giocatore privo di talento non era. Vinse tre volte (1995, 1996 e 1999) il prestigioso Memorial Capablanca a Cuba. Nel 1999 arrivò primo alla pari al Continental Open di Los Angeles. Nel 2001 vinse il suo ultimo torneo al Canadian Open Chess Championship di Sackville nel New Brunswick, estremo est del Canada. Da Wikipedia scopriamo che Tony Miles è stato un personaggio singolare. In un torneo si accordò per una patta senza giocare alcuna mossa e alle rimostranze dell’arbitro che non voleva assegnare alcun punto, rispose che spesso capita che i giocatori fanno mosse banali per fingere una partita che vogliono pareggiare e che quella sarebbe stata la prima volta in cui si puniva questo comportamento. A suo nome è indicata la linea di gioco: E12 – Difesa Ovest Indiana, variante Miles (1. d4 Nf6 2. c4 e6 3. Nf3 b6 4. Bf4). Geoff Lawton ha curato la pubblicazione di un libro intitolato Tony Miles: “It’s Only Me”.

E ora prima di passare con agenzia web marketing alla parte di programmazione javascript dando una occhiata alle funzioni, vediamo se in carriera Tony Miles ha giocato belle partite. Ad esempio http://www.chessgames.com/perl/chessgame?gid=1068157 mette in evidenza una sorta di eccentricità e stravaganza se non altro perché il Bianco é Karpov. La promozione a cavallo scacco in una est indiana girata da Hitchcock all’ indirizzo http://www.chessgames.com/perl/chessgame?gid=1098358 é da brividi e dimostra come non potevi concedere nulla a Tony Miles neanche un leggero vantaggio di sviluppo. Anche la pigna inflitta a un ex campione del mondo ha il suo perché http://www.chessgames.com/perl/chessgame?gid=1097114 e i suoi elementi di genialità dal momento che quasi tutti avrebbero ipotizzato che una figura intera dal valore nominale tre sarebbe scomparsa dalla casa d7 seguendo la via degli spogliatoi. Insomma talento e creatività ma anche solida impostazione strategica, come a dire con agenzia web marketing me dici poco eh?! E ora riprendiamo il tunnel spaziale verso JS. Una funzione JavaScript è un blocco di codice progettato per eseguire una determinata attività. I principali vantaggi dell’utilizzo delle funzioni: Riutilizzo del codice, definire il codice una sola volta e utilizzarlo più volte. Usa lo stesso codice molte volte con argomenti diversi, per produrre risultati diversi. Una funzione JavaScript viene eseguita quando “qualcosa” richiama o chiama. Per definire una funzione JavaScript, utilizzare la parola chiave function, seguita da un nome, seguito da un insieme di parentesi (). Il codice che deve essere eseguito dalla funzione si trova all’interno delle parentesi graffe {}.

function name() {
//code to be executed
}

I nomi delle funzioni possono contenere lettere, cifre, caratteri di sottolineatura e segni di dollaro (stesse regole delle variabili). Per eseguire la funzione, è necessario chiamarla. Per chiamare una funzione, iniziare con il nome della funzione, quindi seguirla con gli argomenti tra parentesi.
Esempio:

function myFunction() {
alert(“Calling a Function!”);
}

myFunction();
//Alerts “Calling a Function!”

Always remember to end the statement with a semicolon after calling the function. Una volta definita la funzione, JavaScript ti consente di chiamarla tutte le volte che vuoi.

function myFunction() {
alert(“Alert box!”);
}

myFunction();
//”Alert box!”

// some other code

myFunction();
//”Alert box!”

Le funzioni possono assumere parametri. I parametri di funzione sono i nomi elencati nella definizione della funzione. Sintassi:

functionName(param1, param2, param3) {
// some code
}

Come per le variabili, i parametri dovrebbero avere i nomi, che sono separati da virgole tra parentesi. Dopo aver definito i parametri, è possibile utilizzarli all’interno della funzione.

function sayHello(name) {
alert(“Hi, ” + name);
}

sayHello(“David”);
//Alerts “Hi, David”

This function takes in one parameter, which is called name. When calling the function, provide the parameter’s value (argument) inside the parentheses. Function arguments are the real values passed to (and received by) the function. È possibile definire una singola funzione e passare ad essa valori diversi (argomenti).

function sayHello(name) {
alert(“Hi, ” + name);
}
sayHello(“David”);
sayHello(“Sarah”);
sayHello(“John”);

Questo eseguirà il codice della funzione ogni volta per l’argomento fornito. Puoi definire più parametri per una funzione separandoli da una virgola

function myFunc(x, y) {
// some code
}

L’esempio sopra definisce la funzione myFunc per prendere due parametri.I parametri vengono utilizzati all’interno della definizione della funzione.

function sayHello(name, age) {
document.write( name + ” is ” + age + ” years old.”);
}

Quando si chiama la funzione, fornire gli argomenti nello stesso ordine in cui sono stati definiti.

function sayHello(name, age) {
document.write( name + ” is ” + age + ” years old.”);
}

sayHello(“John”, 20)
//Outputs “John is 20 years old.”

Dopo aver definito la funzione, puoi chiamarla tutte le volte che è necessario. Le funzioni JavaScript non controllano il numero di argomenti ricevuti. Se una funzione viene chiamata con argomenti mancanti (meno di dichiarata), i valori mancanti vengono impostati su undefined, che indica che a una variabile non è stato assegnato un valore, evidenzia agenzia web marketing. Una funzione può avere un’istruzione di reso opzionale. È usato per restituire un valore dalla funzione. Questa affermazione è utile quando si eseguono calcoli che richiedono un risultato. Quando JavaScript raggiunge un’istruzione di ritorno, la funzione si interrompe. Utilizzare l’istruzione return per restituire un valore. Ad esempio, calcoliamo il prodotto di due numeri e restituiamo il risultato.

function myFunction(a, b) {
return a * b;
}

var x = myFunction(5, 6);
// Return value will end up in x
// x equals 30

Se non si restituisce nulla da una funzione, verrà restituito undefined.

function addNumbers(a, b) {
var c = a+b;
return c;
}
document.write( addNumbers(40, 2) );
//Outputs 42

Il comando document.write emette il valore restituito dalla funzione, che è la somma dei due parametri. JavaScript offre tre tipi di finestre popup, le caselle Avviso, Richiesta e Conferma. Una casella di avviso viene utilizzata quando si desidera garantire che le informazioni giungano all’utente. Quando viene visualizzata una finestra di avviso, l’utente deve fare clic su OK per continuare. La funzione di avviso prende un singolo parametro, che è il testo visualizzato nella finestra popup. Esempio:

alert(“Do you really want to leave this page?”);

Per visualizzare interruzioni di riga all’interno di una finestra popup, utilizzare una barra rovesciata seguita dal carattere n.

avviso (“Ciao \ nCome sei?”);

Fai attenzione quando usi le caselle di avviso, poiché l’utente può continuare a utilizzare la pagina solo dopo aver fatto clic su OK. Una finestra di messaggio viene spesso utilizzata per consentire all’utente di immettere un valore prima di immettere una pagina. Quando viene visualizzata una finestra di richiesta, l’utente dovrà fare clic su OK o Annulla per procedere dopo aver inserito il valore di input. Se l’utente fa clic su OK, la casella restituisce il valore di input. Se l’utente fa clic su Annulla, la casella restituisce null.

Il metodo prompt () accetta due parametri.
– Il primo è l’etichetta, che si desidera visualizzare nella casella di testo.
– Il secondo è una stringa predefinita da visualizzare nella casella di testo (opzionale).

Esempio:

var user = prompt(“Please enter your name”);
alert(user);

Una casella di conferma viene spesso utilizzata per consentire all’utente di verificare o accettare qualcosa. Quando viene visualizzata una finestra di conferma, l’utente deve fare clic su OK o Annulla per procedere. Se l’utente fa clic su OK, la casella restituisce true. Se l’utente fa clic su Annulla, la casella restituisce false. Esempio:

var result = confirm(“Do you really want to leave this page?”);
if (result == true) {
alert(“Thanks for visiting”);
}
else {
alert(“Thanks for staying with us”);
}

Agenzia web marketing e Angular: la sfida continua, parte III

agenzia web marketingCome i nostri appassionati aspiranti web developer ricorderanno all’ indirizzo https://umbriawayformazione.wordpress.com/2017/12/13/web-marketing-umbria-scacco-matto-ad-angular-prima-puntata/ abbiamo introdotto il tema del famoso framework e di come riuscire a metabolizzarlo mentre al link https://umbriawaynoir.wordpress.com/2017/12/13/web-marketing-umbria-e-angular-puntata-ii/ si evince che chi non sfonda una porta sfonda un portone, tradotto che anche i geroglifici possono essere resi comprensibili dalle deduzione di qualche novello Champollion. A complicare ulteriormente le cose in quest’ ultimo link avevamo iniziato anche di ARTICOLI DETERMINATIVI nella STRUTTURA della LINGUA INGLESE e oggi completiamo il tema rispondendo alla domanda che era rimasta in sospeso, dopo aver individuato una buona quantità di regole sul perché e come invece andava usato. Non si usa prima di nomi di nazione al singolare, città, luoghi, monti, continenti per cui Italy e Venice e Lake Como e Mount Everest e Africa NON NECESSITANO dell’ ARTICOLO DETERMINATIVO THE. Non si usa prima di un GENITIVO SASSONE e degli AGGETTIVI POSSESSIVI tipo Francesca’ s wallet (il portafoglio di Francesco) e My new dress (il mio nuovo vestito). Non si usa prima dei nomi dei pasti e degli sport per cui dinner is delicious (la cena é deliziosa) o John play tennis (John gioca a tennis). THE non si usa prima di nomi propri, soli o preceduti dal titolo di professione o nobiltà, quindi Nelson was a great man o Mrs. Jane Robinson is a career woman. THE non si usa prima dei nomi quando vengono usati in senso generale tipo do you go to school? o I like jazz. Come si può vedere la lingua inglese é ricca di regole e controregole e non é fare lo slalom in questo ginepraio di varianti. A proposito di varianti agenzia web marketing segnala all’indirizzo http://www.chessgames.com/perl/chessgame?gid=1487789 un bel dragone giocato nel 1983 tra i GM Plaskett e Watson.agenzia web marketing Molti potranno obiettare che questa complicata miniatura sia oggi completamente smontata dalla teoria delle aperture che considera il dragone come una apertura tendente all’ autoimplosione se il Bianco arriva preparato con la novità teorica alla mossa 64 che gli fa vincere facilmente il finale. Bella 18..Ag4! altamente destabilizzante e da catenaccio calcistico italian style. Il dragone si presta molto alle tematiche di attacco e controattacco ed é simile a molte varianti della pirc, vedere ad esempio anche la partita al link http://www.ajedrezdeataque.com/02%20Partidas/3_ptos/bloque112/Yudasin-Gipslis.htm dove il nero però non riesce nemmeno ad arroccare attirato da un dono avvelenato e viene travolto da una girandola di sacrifici mortali oltre che dal gioco preciso e accurato da parte del bianco. Liquidata con agenzia web marketing anche la parte di training scacchistico non ci resta che passare al vivo dell’ argomento, ossia come funziona Angular? agenzia web marketingNelle scorse lezioni abbiamo solo inizializzato la nostra APP cpn il webpack e il famoso comando ng serve dopo aver installato tutte le risorse necessarie ma non abbiamo ancora visto il codice sorgente. Su https://angular.io/ si fa riferimento alla versione 4 e a quella facciamo riferimento con il supporto di TypeScript al posto di javascript che ha caratteristiche più performanti rispetto al suo famoso genitore. A questo punto consigliamo un editor di codice come Visual Studio Code, indirizzo https://code.visualstudio.com/ . Dove andremo a lavorare nel 99 per cento delle volte che abbiamo aperto Visual Studio Code? La risposta data da agenzia web marketing é: dentro la cartella SRC e successivamente APP. Qua dentro creeremo i nostri componenti, i nostri moduli e le nostre direttive. Se clicchiamos ul file app.component.html dove viene generato tutto l’html della pagina . Una figata pazzesca é quando da questo file faccio delle modifiche e senza dover fare aggiorna e controaggiorna dall’ altra parte mi verrà renderizzato il nuovo blocco di modifiche (comoda la vita eh?!), dove per altra parte si parla del lancio preliminare di ng serve che mette in moto la struttura client-server all’ indirizzo http://localhost:4200. Ma se io volessi dare un messaggio di benvenuto allora come faccio? Apporto questa modifica all’ HTML “ciao e buon Natale eh” sull’ H1 per esempio ottenendo una compilazione automatica che mi farà vedere la nuova modifica ovviamente dopo aver salvato il file su VSC (visual studio code). agenzia web marketingAnalizziamo ad esempio questo codice: <h1> ciao {{ name }} {{ title }}! </h1> da dove arrivano le strane espressioni contenute tra le doppie graffe?! La risposta di agenzia web marketing é dal file app.component.ts dove ts sta per typescript per l’appunto e che cosa conterrà questo file per mostrare a video ciao nome dell’ utente + auguri di buone feste? Quello che si vede postato con l’immagine a supporto ossia le dichiarazione delle variabili con la dichiarazione della classe automaticamente importata e collegata dal file HTML. E come si fa a cambiare una regola CSS? Lo posso fare? Certo che si dal file app. component.css dove posso impostare colori, padding, margin, background-color, text.align center etc etc e chi più ne ha più ne metta, conclude agenzia web marketing. Quando creeremo un nostro modulo che ha dei componenti lavoreremo comunque su questi tre blocchi separati rispetto alla cartella SRC e APP, quindi app.component.html/app.component.ts e app.component.css! Ora non resta che vedere il giro completo per vedere come viene caricata a livello complessivo un APP e quali sono i file di configurazione che rendono funzionale il tutto, prima di chiudere ricordiamo che la grafica inedita contenuta in questo script arriva da http://www.unspalash.com, stay tuned con agenzia web marketing!

Documenti e collection con MongoDB: web marketing Umbria e la serafica calma di Smyslov nel vincere in discesa le game!

web marketing UmbriaAll’ indirizzo http://www.chessgames.com/perl/chessgame?gid=1126755 troviamo la Vasily Smyslov vs Robert Huebner , Smyslov – Hübner Candidates Quarterfinal (1983), Velden AUT, rd 4, Mar-30 English Opening: Symmetrical. Four Knights Variation (A35) , 1-0 .E’ proprio vero che la pazienza serafica del saggio che non ha fretta di concludere porta quasi sempre a grandi soddisfazioni! Eppure non é che web marketing Umbria vede in questa strategia qualcosa di blando e ipnotico senza incisività e mordente, una mossa come 27 e5 é roba che scotta anche perché se uno si ferma a una valutazione statica verrebbe da dire che l’alfiere bianco in g2 serve solo a picchiare sulla diagonale h1-a8 mentre ha questa brusca deviazione verso est coadiuvata da infida 26 Dh3 giocata preparatoria alla mossa prima! Precisione e accuratezza e una sopraffina tecnica consentono al colosso Smyslov di portare a casa il punto in 48 mosse. Partita prevalentemente tattica con una conoscenza profonda delle idee strategiche ereditate dall’ apertura, ancora una volta lo studio dei classici sulle partite di Smyslov certamente non delude ma arricchisce l’agonista che deve allenarsi cercando di vedere tanti più stili possibili da integrare nel proprio repertorio.web marketing Umbria Finita la parte scacchistica non ci resta che fare i conti con Mango DB per tornare a node, ma prima cerchiamo di rispondere con web marketing Umbria a un dubbio filosofico posto da uno dei nostri tanti lettori relativamente a Node e ai file system. Come faccio a gestire eventuali contenuti su un foglio testo creano e scrivendo all’ interno di un documento? La libreria da usare é quella appunto denominata file system che contiene al suo interno numerose funzioni o metodi per appendere il testo tra cui appunto un metodo append. Abbiamo già visto da articoli come Umbriawayamplifica che per richiamare un modulo dopo averlo installato dobbiamo scrivere qualcosa come const fs = require(‘fs’); dopodiché il contenitore mette a disposizione tutto il suo contenuto e possiamo sfruttarlo in questi termini: fs.appendFile(“testo.txt” , avviso , function(errore) { if(errore){ console.log(“si è verificato un errore”) } }); dove ovviamente per avviso si intende una variabile precedentemente creata con LET e riempita di contenuti stringa o anche intercalata da altri dati tipo $data per esempio. Soddisfatta questa sfrenata sete di conoscenza o semplice curiosità non ci resta che avventurarci dentro Mongo! Mongo DB non é un database relazionale e viene gestito da una serie di documenti all’ interno di collezioni caratterizzate da identificazioni univoche. Mongo può disporre anche di una importante interfaccia grafica o GUI che é ROBOMONGO. NPM gestisce l’installazione di Mongo DB con il comando npm installa mongodb –save , l’installazione va sempre a cercare l’ultima versione e il –save serve a contrassegnare la dipendenza salvata sul famoso JSON visto in precedenza con npm init. Collegandosi all’ indirizzo https://www.mongodb.com/download-center#atlas si ha la possibilità di scaricare sulla TAB Community Server la versione per il proprio sistema operativo che é semplice e intuitiva nella sua versione completa. Dopo l’installazione sotto C:/Programmi/MongoDB/Server/3.4/bin compariranno gli eseguibili mongod.exe e mongo.exe. Lanciando prima mongod.exe da terminale ma non da gitBash andremo ad aprire la porta 27017 in ascolto per la seconda finestra di terminale dove lanceremo mondo.exe che é la nostra finestra dove possiamo dare i comandi per gestire il DB, inserire i dati e interrogare le nostre collection. Tramite db.demo.insert e db.demo.find dove demo sta per la nostra cartella collection andremo a inserire e cercare i dati come mostrato in una delle finestre allegate al post. A questo punto per iniziare a lavorare non ci resta che scaricare la nostra GUI all’ indirizzo https://robomongo.org/download tenendo sempre le finestre precedenti aperte e alla fine possiamo gestire oltre che da riga di comando il DB anche da interfaccia grafica, per ora con web marketing Umbria l’overview per mettere in piedi questo DB strutturato a documenti e collection é giunto alla fine! Grafica sempre messa a disposizione da https://unsplash.com.

Primi passi con un progetto complesso mysql/php: un db relazionale é come una scacchiera, parola di web design Umbria!

web design umbriaLa maggior parte dei libri e manuali tecnici che parlano di php e mysql dedicano i primi capitoli almeno un paio a un overview generale e tutto un capitolo prolisso sull’ installazione di mysql e poi sull’ installazione di php e poi sull’ installazione del server apache, osservazione critica di web design Umbria. Installate in locale xampp https://www.apachefriends.org/it/index.html e risolvete un sacco di problemi dipodiché vi concentrate senza perdere troppo tempo alla sostanza dei contenuti e non a quelli della cornice dal momento che in rete se qualcuno desiderasse installare i pacchetti isolati trova una grande quantità di guide e informazioni su come districarsi per ottimizzare le varie configurazione ambiente. Sostanzialmente in una architettura client e server si instaura un rapporto perverso simile a due tenisti dove il client invia una riochiesta interrogazione per mano dell’ utente e dall’ altra parte una macchina infallibile se le istruzioni sono corrette risponde in maniera ottimizzata per dare delle risposte dal server che invia i dati elaborati al client. Volendo potremmo anche vedere un esempio tipo questo da inserire nel body: <p>Today’s Date (according to this Web server) is <?php echo date(‘l, F dS Y.’); ?> che genera nel browser questa risposta: Today’s Date (according to this Web server) is Sunday, October 08th 2017. Questo é la dimostrazione di quanto detto precedentemente anche se qui l’utente non fa nessuna richiesta diretta ma é la pagina che aggiorna sempre dinamicamente il contenuto. Vediamo i parametri usati da indirizzo http://php.net/manual/en/function.date.php dove scopriamo che la l sta per (lowercase ‘L’) A full textual representation of the day of the week; la F sta per A full textual representation of a month, such as January or March e naturalmente Y per l’anno in 4 cifre. Ora che le pagine siano dinamiche siamo contenti ma le cose diventano davvero ionteressanti quando di mezzo abbiamo un database mysql per interrogare i dati, pensiamo solo a un contenitore dove mettere tutte le nostre barzellette preferite per estrapolare poi davvero quello che é di ns interesse di volta in volta. Immaginiamo cento pagine con cento barzellette diverse, una per ogni singola pagina HTML all’ interno del DB posso posizionare tutte le mie barzellette in unica soluzione tabella all’ interno di campi testo univoci contrassegnati da un id di appartenenza che le identifica. web design umbriaLe barzellette verrebbero selezionate in automatico, le pagine dinamiche costruite in base alle interrogazioni e gli inserimenti andrebbero ad accrescre il nostro numero di record con una query di INSERT. Un database é composto da uno o più tabelle e poniamo il caso che lo chiamiamo in questo caso jokes al plurale. Poi creeremo una tabella che avrà tre colonne contrassegnate da id , joketext e jokedate e con varie righe , una per ogni barzelletta inserita. Per ragioni di buona progettazione ogni tabella di database dovrebbe sempre dare la possibilità di identificare ognuna delle sue righe in modo univoco. I criteri per la costruzione dei database relazionali vedono proprio nel concetto di ridondanza il loro punto di lavoro critico nel senso che i record non devono essere ripetuti all’ interno della tabella e anche dati che compaiono più volte occupano inutilmente spazio in memoria. La progettazione del DB é fase molto delicata e ricca di implicazioni. Se il server host non mette a disposizione una finestra di accesso é possibile anche da finestra di comando windows cmd collegarsi all’ indirizzo IP della macchina con la login tramite il comando da root mysql, quindi mysql -h hostname -u username -p, tutto questo per dire che imparare i comandi mysql da riga di comando é cosa molto importante e non solo armeggiare sulla parte grafica di phpadmin presente in localhost. ad esempio mysql>SHOW DATABASES; mostrerà una risposta tipo due row in set seguito dal tempo di esecuzione con la rappresentazione grafica elemntare dei database mysql e test che sono quelli di default messi a disposizione dal software. Se scrivessi mysql>DROP DATABASE test; cancellerei il database test questo per dire che bisogna fare molta attenzione a quello che viene digitato. Il punto e virgola é la fine del comando e quindi se si omette posso anche spezzare i comandi su più righe per una migliore lettura di quello che voglio ottenere. Per uscire dal software basta un mysql>QUIT e Bye di conseguenza. Il metodo di inserimento dei comandi che useremo per governare MySQL per tutto il resto della trattazione fa parte di uno standard generale detto Structured query language o SQL e possiamo riferirci a questo linguaggio anche dicendo semplicemente query visto che to query sta a significare interrogare, cercare. SQL é un linguaggio standard per interagire con i DB e non ci sono grandi differenze saltando altrove semmai cambiano solo i dialetti. Basta solo non fare condusione tra MySQL e SQL, il primo é il software che ci viene messo a disposizione per immagazzinare i dati mentre il secondo é il linguaggio di interrogazione per ottenere i risultati di manipolazione modellazione estrapolazione che ci interessano. web design umbriaPer creare un database da riga di comando mysql>CREATE DATABASE ijdb; Per iJdb (internet joke database) dopodiché per usarlo e selezionarlo scriverò mysql>USE iJdb; Un database é vuoto finché non vengono aggiunte delle tabelle, quindi dovremmo preoccuparci come prima cosa di costruire un contenitore adeguato per i nostri dati. Dal punto di vista didattico per inserire i dati in un DB possiamo usare un doppio metodo tipo mysql> INSERT INTO table_name SET colonna1=value1, colonna2=value2…; oppure mysql> INSERT INTO table_name (colonna1, colonna2) VALUES (value1, value2)..;nel secondo caso nella seconda forma del comando INSERT l’ordine con cui ordinate le colonne deve coincidere con l’ordine con cui ordinate i valori. Per visualizzare i dati, aggiunge web design Umbria, si usa il comando mysql>SELECT * FROM joke; che tradotto significa seleziona tutti gli oggetti dalla tabella joke. Se i risultati appaiono disorganizzati posso estrapolare solo quello che mi interessa con la formula mysql>SELECT id, jokedate FROM joke; potrei anche desiderare di vedere almeno una parte della barzelletta e lo posso fare con questo comando specificando i caratteri: mysql>SELECT ID, LEFT (joketext,20), jokedate FROM joke; con COUNT posso visualizzare il numero di risultati avuti come numero di righe mysql>SELECT COUNT(*) FROM joke; possiamo anche cercare determinati attributi tipo tirami fuori tutti i record che sono stati inseriti dopo una specifica data mysql>SELECT COUNT(*) FROM joke WHERE jokedate>= “2004-0101”; possiamo anche estrapolare quelle barzellette che al loro interno hanno una specifica porzione di testo con mysql>SELECT joketext FROM joke WHERE joketext LIKE “%chicken%”; con LIKE parola chiave dico a mysql che la colonna nominata deve soddisfare una specifica qualità. Il segno % indica che la parola cercata può essere preceduta e/o seguita da una qualsiasi stringa di testo.Posso combinare quanto visto precedentemente con l’operatore logico AND per cui posso combinare il where con e il like con l’uguale e maggiore come data appunto unendo le espressioni con AND. Per aggiornare i dati la nomenclatura é mysql>UPDATE table_name SET colonnaname = new value, …WHERE conditions ad esempio possiamo cambiare una specifica data con il comando mysql>UPDATE joke SET jokedate=”1994-03-01″ WHERE id=1; per cancellare mysql>DELETE FROM table_name WHERE conditions; Per cancellare tutte le barzellette con la parola chiave pollo: mysql> DELETE FROM joke WHERE joketext LIKE “%chicken%”; inutile ricordare che bisogna fare molta attenzione nell’ usare la parola chiave DELETE ad esempio un comando da riga come questo mysql>DELETE FROM joke; svuoterebbe la tabella in un battito di ciglia! Per capire la forza di un database relazionale dovremmeo lavorare sulla dipendenza e sui legami tra molte tabelle dove esistono complesse relazioni tra le entità coinvolte. In una delle prossime sessioni di allenamento con umbriaway consulting andremo a vedere l’interazione specifica con i file php per modellare questi dati segregati nel contenitore. In rete ci sono molte guidi di riferimento per avere una sintesi dei principali comandi mysql per esempio: https://mauriziosiagri.wordpress.com/it/mysql/mysql-comandi-utili

Un Jquery al giorno toglie il medico di torno, anche Kubbel prima dei pasti non fa male ma il metodo addClass risana meglio della B12

Senza coordinazione l’avversario rimarrà in vita quindi la prima cosa da fare é dare consistenza e coesione al vostro codice e cercare di destabilizzare la posizione avversaria…pardon, non é che noi di web developer Umbria stiamo facendo confusione tra script PHP e scacchi agonistici? Stiamo calmi mica negli scacchi ci sono solo gli scacchisti ci saranno anche i compositori tipo Leonid Ivanovič Kubbel per esempio da non confondere con altri della famiglia tutti agguerriti e assatanati agonisti. Lo studio presentato qui , il B muove e vince, da web developer Umbria ha il suo fascino….il nero sta per promuovere in maniera irreversibile ma il bianco riuscirà a creare una sorta di trappola mortale intorno al re con colpi alla Leonardo da Vinci! E torniamo al nostro JQuery. È importante notare che questo metodo non sostituisce una classe. Si aggiunge semplicemente la classe, aggiungendola a qualsiasi elemento che può essere già assegnato agli elementi. Prima di jQuery versione 1.12 / 2.2, il metodo .addClass () ha manipolato la proprietà className degli elementi selezionati, non l’attributo di classe. Una volta che la proprietà è stata modificata, è stato il browser che ha aggiornato l’attributo di conseguenza. Un’implicazione di questo comportamento era che questo metodo funzionava solo per i documenti con semantica HTML DOM (ad esempio, non documenti XML pura).A partire da jQuery 1.12 / 2.2, questo comportamento viene modificato per migliorare il supporto per i documenti XML, incluso SVG. A partire da questa versione, invece, viene utilizzato l’attributo di classe. Quindi, .addClass () può essere utilizzato su documenti XML o SVG. Può essere aggiunta più di una classe alla volta, separata da uno spazio all’insieme di elementi corrispondenti, maggiori info all’ indirizzo: https://api.jquery.com/addclass/

Quanto costa diventare GM figo? Devi fare le lampade? Scoprilo con web design PG, PHP e MySql

Quanto costa diventare Grande Maestro? Che investimenti occorrono per giocarsela pari con Scarlsen o vincere il torneo di Testedimezzo a metà strada tra la provincia di Terni o di Perugia. Ebbene il neo eletto GM Fiasco vincendo questo torneo non si capisce bene se ha dato lustro di più alla provincia di Perugia o quella di Terni ma rimane un fatto inconfutabile: diventare SuperGM a livello locale e non costa mica due bruscolini. Noi di web design Perugia siamo andati a curiosare nel dopopremiazione per chiedere al GM Fiasco quanti soldi ha speso per diventare GM. Ovviamente siamo molto interessati alla fase di sviluppo con mysql e PHP per cui l’intervista era solo un pretesto per estrapolare i dati. Prima di pubblicare su Facebook i risultati dell’ inchiesta abbiamo avuto l’accortezza di prenotare un volo di trasferimento di residenza verso la Patagonia sicuri che il GM non potrà mai raggiungerci, ma andiamo con ordine. Il comparto formazione di umbriaway consulting si é reso conto che uno dei problemi più affrontati da Giacobbo in Vojager é quello della manipolazione dei dati con php e mysql. Ebbene siamo giunti alla conclusione che la questione più delicata é quella della somma dei campi. Molti di voi storceranno il naso per dire: ma sei Paloma o che? Guarda che l’engine storage mette a disposizione la funzione somma. Ok ma non sono mica nato imparato no? Come funziona questa cosa? Ebbene nella prima fase abbiamo quindi intervistato il GM Fiasco con l’idea di capire quanti euro servono in tempi di bce e di globalizzazione per cavalcare l’onda delle divinità che vedono matto in 27 tutto forzato. Una volta capito che il GM ha raggruppato le sue spese in quattro diramazioni principali: spese di rappresentanza con la voce di campo km25, necessarie per tenere sempre in tiro la tensione agonistica, poi intgrazioni alimentari vegane per potenziamento sui finali (campo vega), elettronica di consumo per dispositivi da nascondere accuratamente in posti dove non batte mai il sole (campo cheating) e area di persuasione occulta (campo bustarelle) per vincere velocemente contro forti GM in 20 e conseguire così la terza norma. Ora come potremmo gestire tutte queste spese? Inserire tutti questi campi singolarmente in una tabella come interi non é macchinoso? Ho delle scorciatoie? Una buona idea potrebbe essere quella di inserire nella nostra tabella un campo Type impostandolo a varchar 255 ad esempio perché parliamo di descrizioni e non di numeri che si possono sommare, web designer Perugia riflette anche sul fatto che ci va un ID il solito primary key in autoincremento e anche un campo descrizione, ovviamente quindi il campo price alla fine é quello più importante in quanto ospita gli interi da sommare. Ok ma poi come fai a differenziare le voci del campo Type? Fortunatamente web design Perugia vi viene in soccorso segnalando la clausola GROUP by in mysql. Ma trodotte in pratica queste farneticazioni come si concretizzano? Intanto per fare un albero ci vuole un fiore nel senso che non si diventa programmatori al top nel proprio condominio con le mani bianche e pulite, bisogna sporcarsele ste mani e toccare con mano quello che gli script fanno anche perché solo in questo modo si risolvono i problemi, con la magia del fare. Quindi prima fase creare una tabella con un campo ID, seguito da descrizione, da tipo o type e infine la colonna più importante price che sarà un intero quindi. Famolo e poi creiamo uno script di connessione e di selezione del DB per estrapolare con una particolare SELECT quello che ci interessa. Per andare più veloci come web design Perugia abbiamo tralasciato di inserire i riferimenti della data per le spese effettuate, solo per testare se effettivamente questa funzione SUM é potente: http://www.farwebdesign.com/example/test_connect/paygm/

PHP Overview

Che tipo di difficoltà pratiche si possono avere durante l’apprendimento di PHP chiede alla redazione di umbriaway consulting un lontano lettore di Aci Trezza. Bè il modus operandi quando si impara un linguaggio é sempre lo stesso, si imparano prima i costrutti fondamentali del linguaggio (tipi di dati, cicli, lavorazione con funzione specifica su stringhe etc) familiarizzando con la sintassi e con tanti picdcoli mattoncini per poi vedere globalmente come avviene magari attraverso script più complessi come avviene l’interazione tra pagine web e database. PHP però é estremamente flessibile e non si limita solo alla parte web può anche essere usato per procedurare script lato shell per esempio e per automatizzare operazioni lato sistemista. Certamente la priorità rimane la generazione dinamica di pagine web dove l’utente può elasticamente usufruire di una navigazione personalizzata dove con JavaScript incluso nell’ HTML avrò una generazione (rendering) di pagine lato client all’ interno del browser e con PHP intervengo lato server aumentando i criteri di sicurezza. I linguaggi lato client danno la possibilita di gestire gli eventi sulla pagina in tempo reale (effetto rollower per esempio) mentre PHP includendo script che possono partire prima della elaborazione della pagina statica permette collegamenti a DB e quindi può andare a recuperare dati sensibili, ne consegue che ci sono meno effetti grafici altisonanti immediati durante l’interazione dell’ utente con la pagina, in quanto il codice viene eseguito dietro le quinte. Ovviamente PHP lavora anche con IIS e i sistemi Microsoft e con ORACLE ma in quest’ ultimo caso la gestione e l’interazione degli script é più raffinata e complessa. Sostanzialmente PHP lavora bene con MySQL, ne consegue che i tre elementi da installare prima di cimentarsi come programmatori con questo linguaggio sono:

occorre installare un server Web Apache
occorre installare un database MySQL
occorre installare il parser PHP, il motore che interpreterà i nostri script

Per installare Apache si va su http://httpd.apache.org/download.cgi e si recupera l’installer dando un occhiata alle caratteristiche delle varie versioni (ognuna ha dei vantaggi e svantaggi). Ovviamente ci sarà una procedura diversa di installazione a seconda che si parli dei sistemi Windows o Linux (formati tar.gz). Poi si va su http://www.mysql.com e si scarica il database e infine si va su http://www.php.net per scaricare la versione 7 del motore. In rete ci sono numerose procedure guidate che fanno riferimento ai problemi di come installare e configurare i vari ambienti relativamente ai vari sistemi operativi per cui tralasciamo questa parte (visto che le librerie oggi sono sempre più stabilizzate e che gli interi pacchetti completi possono facilmente essere installati anche con procedure globali come XAMPP per esempio). Nel file di configurazione php.ini ad esempio anticamente si prestava particolare attenzione alle direttive da configurare come la famosa voce error_reporting = E_ALL per esempio che serve a gestire gli errori nell’ ambito della sicurezza. Dal punto di vista degli editor da utilizzare per la creazione del codice oggi in rete si può trovare di tutto con strumenti di debug sempre più affidabili e funzionali, perché il nodo da sciolgliere per il neofita é proprio questo, riuscire ad essere guidati il più possibile quando si parte per costruire infrastrutture sempre più complesse con i famosi mattoncini. Assolta questa funzione non ci resta che partire con la questione delle variabili e con un articolo già presente in rete: https://umbriawayfocus.wordpress.com/2017/07/04/il-potere-di-solito-accompagna-le-donne-perfettamente-centralizzate-se-no-il-sole-che-ci-sta-a-fare-al-centro-dell-universo-eh-partita-faraoni-trumpf-cis-2009-dove-tolomeo-fu-schiaffeggiato-da-c/ dove il famosissimo script phpinfo(); rimane una delle prime funzioni che il neofita si mette a studiare all’ inizio della sua carriera di programmatore.L’articolo definisce bene questo tipo di funzione per cui possiamo sorvolare e sottolineare solo come la coppia <?php ?> di tag delimiti l’area di parserizzazione del codice. La dicitura <script language=php> e <script> presenta lo svantaggio di andare a fare confusione con il tag di chiusura con JavaScript. Il file php.ini abilita anche contrassegni diversi come il vecchio asp del tipo <% e %> che però genera enormi confusioni se PHP interagisce con IIS quando ASP non viene disabilitato. Inoltre nello script presente nell’ articolo si sono visti anche le tipologie di commento da singola riga a multiriga, segnalando anche il famoso # per le righe singole:

<? //questa é la prima riga scritta in php
/* la funzione che segue visualizza informazioni
variegate circa la configurazione del sistema */
phpinfo();
// la prossima riga é l’ultima di php
?>

da notare come il punto e virgola delimiti la fine struzione a quel punto la funzione predefinita verrà eseguita per andare a recuperare tutte le informazioni di sistema da sparare poi lato statico al browser. PHP non é Java e non é rigoroso come altri linguaggi per cui sopra anche togliendo il ; lo script funziona lo stesso!

Appunti di comunicazione II a cura di turismo Umbria.

Se urlo avrò paura. Se rido sarò felice, i muscoli facciali e le microemozioni , Lie to me. Le parole sono chiavistelli ipnotici, aprono porte. Come si fa a spiegare un sogno? Il test di Leavitt come ci arrivano le informazioni quando qualcuno trasmette e quando qualcuno riceve senza possibilità del feedback. Con il feedback 5 fig su 5 ok senza una azzeccata (rettangoli e quadrati disposti nello spazio in un certo modo con angoli e base da mostrare senza far vedere alla classe)…zone di ambiguità nella comunicazioni angoli e basi…le rappresentazioni grafiche e gli scarabocchi l’alfabeto il significato semantico il ciao che può essere variato deformato stirato allargato..neuroassociazioni, il suono casa scatena la rappresentazione visiva…in molle varianti perché ognuno interpreta quell’0 informazioni sulla base di filtri personali dovuti a memoria, carattere, esperienze etc. Le parole fanno scattare delle procedure. Triste? Disperato? Linguaggi universali. Contrazioni muscolari…convenzioni casa in Francia lo posso dire in diversi modi…gli ASSIOMI DELLA COMUNICAZIONE. Il primo assioma ci insegna che non si può non comunicare. Qualunque comportamento comunica qualcosa e, visto che è impossibile avere un non-comportamento, la non-comunicazione è altrettanto impossibile. Il secondo assioma chiarisce che all’interno di ogni comunicazione vanno distinti due livelli. Il primo è il livello del contenuto, che dice che cosa stai comunicando. Il secondo è il livello della relazione, che dice che tipo di relazione vuoi instaurare con la persona a cui la rivolgi. Il terzo assioma spiega che il modo di interpretare una comunicazione dipende da come viene punteggiata (o ordinata) la sequenza delle comunicazioni fatte. Per esempio, di fronte a un uomo che si chiude in se stesso e alla moglie che lo brontola, il primo potrebbe dire che si chiude perché la moglie lo brontola, e la seconda potrebbe ribattere che lei lo brontola perché lui si chiude. A seconda della “punteggiatura” usata cambia il significato dato alle comunicazioni e alla relazione. Il quarto assioma differenzia due tipi di comunicazione: quella analogica e quella numerica (o digitale). La comunicazione analogica si basa sulla somiglianza (analogia) tra la comunicazione e l’oggetto della comunicazione: rientra in essa tutta la comunicazione non verbale e l’uso di immagini (ad esempio, se incrocio le braccia sul petto sto comunicando, per analogia, una chiusura). La comunicazione numerica riguarda invece l’uso delle parole, e in generale di segni arbitrari organizzati da una sintassi logica, cioè di segni usati convenzionalmente per designare qualcosa: il fatto che la parola “tavolo” rappresenti un oggetto con un piano orizzontale sorretto da delle gambe, su cui solitamente si appoggiano delle cose, non ha nulla a che vedere con l’oggetto in sé; è, appunto, una parola scelta convenzionalmente (e divenuta parte di una lingua). Il quinto e ultimo assioma della comunicazione umana spiega che tutte le interazioni tra comunicanti possono essere di due tipi: simmetriche o complementari. Si ha un’interazione simmetrica quando gli interlocutori, tramite le loro comunicazioni, si considerano di pari livello, sullo stesso piano: nessuno dei due sembra voler prevalere o essere subordinato all’altro, come genericamente nel caso degli amici o dei colleghi. L’interazione complementare si ha invece quando gli interlocutori non si considerano sullo stesso piano, e ciò risulta dalle loro comunicazioni, che pongono uno dei due in una posizione superiore (one-up) e l’altro subordinata (one-down): ne sono un esempio le interazioni tra dipendenti e superiori, o tra madre e figlio. Gli assiomi hanno valore in senso assoluto. Il messaggio, quello che arriva, come é stato filtyrato? Come interpreta, come reagisce, che intensità ci mette, quanta emozione e passione ci riversa. L’importanza del feedback per la verifica dei cambiamenti. La credibilità del messaggio. Gestire il verbale e il paraverbale. Usare congruenza essere coerenti. Relazioni, scelte, conseguenze, comportamenti. Il test dell’ omino che sta in silenzio che trasmette a quello davanti una informazione (due cappelli bianchi e neri, il primo omino ha un muro davanti). I segnali contraddittori hanno un significato, non puoi predicare bene e ruzzolare male. Abbattere RESISTENZE e INTERFERENZE. Contenuti rielaborati dal ricevente. Milton Model, sparare nel mucchio. La TV che trasmette i telegiornali. Usare i tre canali contemporaneamente, verbale, non verbale e paraverbale. Percezioni diverse, avversione per la matematica. Sette per cento il verbale. 38 per cento la voce, 55% il non verbale. Sincrono, asincrono, messaggi unidirezionali, bidirezionali. Quello mi sta antipatico mi dice che ha visto la Bella e La Bestia e che gli é piaciuto? Darò consistenza al suo giudizio? No anche se per te é un bel film. il Pregiudizio e la memoria. Alla fine che cosa comunichiamo? Come? Attraverso quale mezzo-canale? In quale AMBIENTE, in quale CIRCOSTANZE. Il dramma del figlio unico. Il dramma del mafioso terzo figlio. Lottare per il primato sociale, sfoggiare la propria virilità, avere dieci mogli, modelli culturali diversi. Lottare per il primato affettivo, studi sugli zeta index div. FISIOGNOMICA; PROSSEMICA; CINESICA. Contenuto, relazione, il messaggio é stato travisato. L’importanza della fiducia nelle relazioni. Valutiamo, giudichiamo, mi piace o non mi piace.

Crea un sito o un blog gratuitamente presso WordPress.com.

Su ↑