SEO: ma è vero o non è vero che?!

web developer umbriaAlla redazione di web design Umbria pervengono costantemente delucidazioni sulle problematiche seo legate al posizionamento. Ma è vero che un buon titolo non deve superare i dodici caratteri? Vero! Ma è vero che un buon titolo deve essere persistente, congruente, prominente? Vero! Ma è vero che un buon titolo deve contenere le keyword inserite poi anche nel testo del documento? Vero! Ma è vero che il titolo deve essere sempre diverso per tutte le pagine del proprio sito? Vero, risponde web developer Umbria, che si ferma un attimo per riprendere fiato. Con il titolo io comunico il tema della pagine ai miei potenziali clienti quindi è chiaro che il tema scotta e anche non poco! Ci sono strumenti in rete che possono aiutare in queste questioni, tra cui il famoso: https://search.google.com/ . Ma ora non distraete Digital Strategist Umbria dal continuare il suo gioco del true o false: ma è vero che se ho un sito web che intende vendere mobili e al posto di scrivere nella pagina web di un prodotto specifico qualcosa di congruente tipo “poltrona reclinabile rivestita” ma inserisco terremoto in Italia Centrale sto facendo una cazzata? Certamente! Ma è vero che se inserisco frasi di benvenuto come welcome al posto delle keyword calde faccio una cazzata? Aridaje, ma certamente, gli spider tendono a ignorare le stop word costituite da articoli, preposizioni, congiunzioni se non fanno parte di una chiave mirata. Attenzione allo spam però, perchè una ripetizione ossessiva rischierebbe di penalizzarci. Attenzione anche a lasciare vuoto il tag TITLE. Attenzioni anche a non entrare in conflitto con parole chiave abusate sul web, denominate “poison word”, evitare quindi l’uso nei titoli di parole come link, directory, forum etc. Quando Google estrapola i titoli, non sempre viene mostrato quello del tag corrispondente, ma la query di ricerca congiuntamente ai contenuti delle ancore, all’ analisi dei titoli del feed rss, ai contenuti delle directory come dmoz, all’ url della risorsa porta poi all’ elaborazione in uscita di un titolo ottimizzato. Non sorprendiamoci quindi se la nostra pagina web a volte ha un titolo che differisce da quello riportato da Google. E a questo punto con social media marketing Umbria torniamo a occuparci del vero o non è vero. Ma è vero che il tag description è importante perchè la sua definizione verrà estrapolata come sintesi per quel sito? Vero! Ma è vero che la description va curata ai minimi termini e resa essenziale in modo da circoscrivere e localizzare il fenomeno? Ma è vero che non deve superare le 12-15 parole ossia 140 e 160 caratteri?! Vero. Ma è vero che la description equivale a forgiare una sorta di claim per rendere attraente i contenuti della pagina e attirare il lead alla sua visita?! Vero! Ma è vero che le description influenzano gli snippet poi in uscita elaborati da Google per la presentazione del nostro prodotto/servizio nelle SERP? Vero! Ma è vero che l’unicità delle description va tutelata per ogni singola pagina? Vero. Ma è vero che il contenuto deve essere coerente con il tema del sito? Vero, sentenzia Faraoni Enrico, ceo di Umbriaway Consulting, che aggiunge, deve anche usare frasi articolate chiare e poco surreali e non deve essere volatile nel senso di generico, perchè la description convoglia l’utente verso qualcosa che sta cercando e quindi deve attirare con contenuti pertinenti il visitatore. Ma del meta tag keyword ne vogliamo parlare? Al contrario degli anni novanta oggi è irrilevante, tutto al più dobbiamo usarlo come un rafforzamento posizionale dell’ informazione o qualcosa che cattura una esigenza inespressa sui motori di ricerca non ancora frequente. Oggi quello che noi sappiamo sulla seo è che parliamo di una congruenza di molteplici fattori e non più di particelle isolate rilevanti, poi anche più di 40 keyword vengono considerate spam dai crawler (virgola spazio come criterio di separazione). Oggi il meta tag keywords è relegato al compito marginale di mafioso che suggerisce e rafforza a completamento di una comunicazione generale che va ben oltre il singolo tag. Ciò non toglie che una pertinenza e coerenza di contenuti va rispettata, perché se vogliamo disegnare un tondo non ci mettiamo a inserire nel nostro mosaico generali degli angoli. E sul meta tag language? Serve per sfruttare gli strumenti di traduzione automatica e nella proprietà content o nella class di un div posso scrivere “notraslate” per impedire la traduzione. E’ bene ricordare che i documenti vanno specificati a un server web, per questo un documento html ha la clausola iniziale doctype. Con il meta tag robots posso dire al crawler se indicizzare la pagina o meno e ci sono alcune proprietà come index, noindex, follow e nofollow che fanno al caso nostro per migliorare la qualità dei nostri contenuti. I follow e nofollow vengono usati sui link quando io voglio validare o meno l’autorevolezza di un link esterno che deve essere pertinente e di valore aggiunto ai nostri contenuti. Le modalità per impedire di visualizzare i contenuti sono molteplici, posso proteggere le password con le cartelle, usare il noindex al meta tag robots come detto o agire sul file htaccess nella root del sito. Se non inserisco nessun meta tag robots gli spider partiranno in quarta a indicizzare tutti i contenuti. All’ interno dei meta tag posso anche personalizzare quello che uno spider deve fare o non deve fare con una sintassi del tipo “nome dello spider” legata a “una azione da compiere”. E sul file robots.txt quali istruzioni posso impartire? Vitali sono le proprietà User Agent che fa riferimento a quale robot il comando si applica e Disallow che serve a indicare quale è il contenuto da bloccare. Ad esempio per bloccare l’accesso a tutti gli spider al file dio.html scriverò Disallow: /mio.html, per non leggere i pdf: Disallow: /*.pdf$ etc. In rete si possono trovare numerose informazioni correlate a come impostare il file robots.txt in base alle proprie esigenze. I meta tag sono anche utili per settare i contenuti dell’ autore che acquisteranno sempre più importanza e il set di caratteri unicode, il più performante per visualizzare lingue straniere come l’arabo per esempio risulta essere utf-8. I contenuti di una pagina vanno organizzati con delle intestazioni che risultano essere molto importanti in ottica seo. Un tah h1 seguito da un sottotitolo h2 rende performante le nostre keywords. L’uso di questi tag deve essere decrescente per indicare agli spider una progressione di rilevanza. I ragni del web scansionano dall’ alto in basso e da sinistra verso destra quindi macinano subito quello che trovano in cima nella pagina. Posso anche stilizzare i tag di intestazione con regole css dove stabilisco font e size. Parlando invece dei link ricordiamoci anche di ottimizzare l’attributo TITLE all’interno delle ancore, sappiamo che una performances seo si ottiene curando i dettagli rispetto ai competitors quindi se parlando di vendita di autoveicoli nel title che tutti omettono scrivo = vendita autoveicoli Terni avrò senza dubbio dei vantaggi rispetto a chi non lo fa. In questo caso aiuta i nostri utenti, dando una caratterizzazione definita, gli utenti ritornano da noi se sono soddisfatti del servizio offerto, è una semplice questione di accessibilità. Poi i link vanno curati con l’attributo nofollow nel caso in cui ad esempio alcuni commentando i nostri post inseriscono anche eventuali url pubblicitarie. Inserendo nofollow diciamo agli spider di non prendere in considerazione tali contenuti proposti. Nofollow significa che non vogliamo passare la nostra reputazione ai link target. Un altro attributo importante oltre al Rel=”nofollow” e il Rel = “canonical” , che specifica delle regole relativamente ai contenuti duplicati tipo ecommerce con prodotti quasi uguali che differiscono ad esempio per colore ma che hanno pagine uguali. Con questo attributo posso specificare delle regole di visibilità. Si parla di canonizzazione degli URL che è un fattore correlato ai fattori di successo del page rank. E’ stata introdotta anche la proprietà “alternate” all’ interno dei link per risolvere i problemi di duplicazione sulle lingue e per differenziare i template di riferimento. Inoltre la rilevanza portata dai tag come strong, corsivo e sottolineato va rispettata perché gli spider macinano contenuti che vengono messi in evidenza ad esempio dal grassetto e il nuovo tag <strong> che sostituisce il deprecato <b>. Secondo alcuni esperti di posizionamento l’influenza nell’ uso di questi tag sarebbe molto bassa, ciò non toglie che noi come seo specialist umbria dobbiamo applicare le tecniche migliori per cercare dei vantaggi competitivi rispetto ai concorrenti. Su SEOmoz l’incidenza sulla seo di questi tag è pari alla sedicesima posizione e tyra strong, italic e underline non vi sarebbe nessuna priorità. Tuttavia esistono anche semplici regole non scritte di accessibilità, più un testo è digeribile e gradevole per l’utente, maggiore è la possibilità che ritorni sulla nostra pagina. Poi ogni motore ha le sue regole, ad esempio per BING sembra essere importante la keyword all’ interno del tag BOLD <b>. Sempre in ottica di accessibilità è bene ricordarsi che l’attributo ALT delle immagini, il famoso testo alternativo se l’utente per qualche motivo non vede l’immagine, va stilato correttamente, meglio ancora se inserisco una keyword. Anche i tooltip sono molto utili per guidare l’utente verso la migliore esperienza conoscitiva del nostro sito e dei nostri contenuti. In uno dei prossimi articoli con web design Umbria, parleremo del web semantico, approfondendo la questione delle nuove sezioni introdotte da HTML5.

Annunci

Coordinate e subordinate, quando lo stile dello scrittore cattura l’attenzione del lettore

Canne al vento di Grazia Deledda, https://it.wikipedia.org/wiki/Canne_al_vento , presenta nel suo stile una profonda malinconia, il lettore prova un immediato sentimento nei confronti di questo protagonista. Ma come ci è riuscita la Deledda, a focalizzare l’attenzione sulla parte immateriale delle cose, sul sentire, sull’ empatia lasciando i fatti in secondo piano?

Tutto il giorno Efix, il servo delle dame Pintor, aveva lavorato a rinforzare l’argine primitivo da lui stesso costruito un po’ per volta a furia d’anni e di fatica, giú in fondo al poderetto lungo il fiume: e al cader della sera contemplava la sua opera dall’alto, seduto davanti alla capanna sotto il ciglione glauco di canne a mezza costa sulla bianca collina dei Colombi.

Eccolo tutto ai suoi piedi, silenzioso e qua e là scintillante d’acque nel crepuscolo, il poderetto che Efix considerava piú suo che delle sue padrone: trent’anni di possesso e di lavoro lo han fatto ben suo, e le siepi di fichi d’India che lo chiudono dall’alto in basso come due muri grigi serpeggianti di scaglione in scaglione dalla collina al fiume, gli sembrano i confini del mondo. Il servo non guardava al di là del poderetto anche perché i terreni da una parte e dall’altra erano un tempo appartenuti alle sue padrone: perché ricordare il passato? Rimpianto inutile. Meglio pensare all’avvenire e sperare nell’aiuto di Dio.

Nella frase “trent’anni di possesso e di lavoro lo han fatto ben suo” il lettore fa una operazione automatica e inconsapevole, non dà nessuna importanza al “podere” e inizia a focalizzarsi sulla nostalgica vena del protagonista. A conferma di questo meccanismo riportiamo la frase successiva “il servo non guardava al di là del poderetto anche perché i terreni da una parte e dall’altra erano un tempo appartenuti alle sue padrone: perché ricordare il passato?” che ricalca la stessa idea, il lettore sembra quasi costretto di riflesso a ripensare al SO di passato, anche se non centra nulla. Riassumendo collegando nel modo giusto periodi che da solo non avrebbero nessun significato, ci ritroviamo ad avere un insieme di cose piuttosto che singoli frammenti in cui la musica che viene suonata e la melodia che si sprigiona é quello di una sorta di analisi introspettiva imposta dallo scrosciare delle acque del fiume simbolo del tempo che passa, basata su aspettative e speranze.

Ogni autore ha il suo stile, quello che incontriamo all’ indirizzo https://it.wikipedia.org/wiki/Dino_Buzzati ,certamente ha il suo modo di raccontare la realtà, che è molto diverso dalla voce della Deledda, premio nobel 1926: https://it.wikipedia.org/wiki/Grazia_Deledda . Buzzati preferisce le contorsioni perverse e funamboliche delle metafore per speigare gli aggrovigliamenti della realtà.

Analizziamo questo frammento tratto dal racconto il mantello presente all’ indirizzo http://www.bibliolab.it/scrittura_creativa/fantasmi_soluzione.htm dove il protagonista è un fantasma che ha ottenuto il permesso dopo la morte di salutare i suoi cari:

Egli si morse un labbro, sembrava che qualcosa gli ingorgasse la gola. «Mamma» rispose dopo un po’ con voce opaca «mamma, adesso io devo andare.»

«Devi andare? Ma torni subito, no? Vai dalla Marietta, vero? dimmi la verità, vai dalla Marietta?» e cercava di scherzare, pur sentendo la pena.

«Non so, mamma» rispose lui sempre con quel tono contenuto ed amaro; si avviava intanto alla porta, aveva già ripreso il berretto di pelo «non so, ma adesso devo andare, c’è quello là che mi aspetta.»

«Ma torni più tardi? torni? Tra due ore sei qui, vero? Farò venire anche zio Giulio e la zia, figurati che festa anche per loro, cerca di arrivare un po’ prima di pranzo…»

«Mamma» ripeté il figlio, come se la scongiurasse di non dire di più, di tacere, per carità, di non aumentare la pena. «Devo andare, adesso, c’è quello là che mi aspetta, è stato fin troppo paziente.» Poi la fissò con sguardo da cavar l’anima.

Si avvicinò alla porta, i fratellini, ancora festosi, gli si strinsero adso e Pietro sollevò un lembo del mantello per sapere come il fratello fosse vestito di sotto. «Pietro, Pietro! su, che cosa fai? lascia stare. Pietro!» gridò la mamma, temendo che Giovanni si arrabbiasse.

«No, no!» esclamò pure il soldato, accortosi del gesto del ragazzo. Ma ormai troppo tardi. I due lembi di panno azzurro si erano dischiusi un istante.

«Oh, Giovanni, creatura mia, che cosa ti han fatto?» balbettò la madre, prendendosi il volto tra le mani. «Giovanni, ma questo è sangue!»

«Devo andare, mamma» ripeté lui per la seconda volta, con disperata fermezza. «L’ho già fatto aspettare abbastanza. Ciao Anna, ciao Pietro, addio mamma.»

Era già alla porta. Uscì come portato dal vento. Attraversò l’orto quasi di corsa, aprì il cancelletto, due cavalli partirono al galoppo, sotto il cielo grigio, non già verso il paese, no, ma attraverso le praterie, su verso il nord, in direzione delle montagne. Galoppavano, galoppavano.

Periodi brevissimi. Frasi che si susseguono a un ritmo incalzante che non danno tregua al lettore. La fretta che si percepisce e il senso di angoscia che ne deriva. Il ritmo del discorso, l’attenzione del lettore che rimbalza come in un flipper impazzito.Siamo alle prese con un largo uso di frasi coordinate che non appiattiscono la narrazione, ma la rendono viva e tambureggiante. Le frasi in grassetto da sole metterebbero sul piatto le stesse azioni e vicende ma il tutto sarebbe sterile senza sentimento. Analizziamo invece adesso le implicazioni stilistiche di Tommasi di Lampedusa e del suo Gattopardo:

La recita quotidiana del Rosario era finita. Durante mezz’ora la voce pacata del Principe aveva ricordato i Misteri Gloriosi e Dolorosi; durante mezz’ora altre voci, frammiste, avevano tessuto un brusio ondeggiante sul quale si erano distaccati i fiori d’oro di parole inconsuete: amore, verginità, morte; e durante quel brusio il salone rococò sembrava aver mutato aspetto; financo i pappagalli che spiegavano le ali iridate sulla seta del parato erano apparsi intimiditi; perfino la Maddalena, fra le due finestre, era sembrata una penitente anziché una bella biondona, svagata in chissà quali sogni, come la si vedeva sempre. Adesso, taciutasi la voce, tutto rientrava nell’ordine, nel disordine, consueto. Dalla porta attraverso la quale erano usciti i servi, l’alano Bendicò, rattristato dalla propria esclusione, entrò e scodinzolò. Le donne si alzavano lentamente, e l’oscillante regredire delle loro sottane lasciava a poco a poco scoperte le nudità mitologiche che si disegnavano sul fondo latteo delle mattonelle.

Periodi lunghi, descrizioni accurate per mostrare tra le righe il blasone del protagonista e della sua nobile casata, di Buzzati e delle sue acrobazie magiche non vi é più traccia, perchè qui i periodi sono lunghi e barocchi. Stile completamente diverso, qui abbiamo un affresco esasperato che però è funzionale per concentrare il fuoco finale sul protagonista e a quel punto anche il lettore si quieta appagato, di fronte a tanta accurata faziosa e impegnativa descrizione. Le coordinate e le subordinate vanno viste metaforicamente come un recinto che spostano sempre di più l’attenzione del lettore verso il centro della narrazione. Ogni autore per compiere questa operazione di affabulazione ha le sue scorciatoie e usa magistralmente le sue frasi accessorie.

E io rinascerò come un cervo a primavera, oppure diverrò morra di scogliera: sistema difensivo e6, Dc7 e Cf6 idea Cg4, pro e contro nella Faraoni Enrico – Attila chess preparazione raggruppamento A2

La canzone di Cocciante si presta ai problemi della posizione che scaturiscono nel morra quando il bianco decide di impostare di nero mangiando un pedone comunque una partita tattica con i sistemi e6-Dc7-Cf6-Cg4. A quel punto la zuffa é garantita e il gioco é aperto per entrambi i colori, vediamo quindi la Faraoni Enrico vs Attila active chess del 3 febbraio 2018 dove entrambi i colori hanno idee e risorse per portare acqua al proprio mulino (il morra é perdente! il morra é facilmente rivitalizzabile!). Che vinca il bianco oppure il nero é probabile che la canzone di Cocciante associata a questa prestazione soddisfi chiunque dal momento che nel verso critico chiunque sarebbe contento di risvegliarsi anche se giocando la stessa variante allo stesso modo con un altro avversario si vinca (da qui le inevitabili corna del cervo aprimavera).

1. e4 c5 2. d4 cxd4 3. c3 dxc3 4. Nxc3 Nc6 5. Nf3 e6 6. Bc4 Qc7 7. O-O Nf6 8. Nb5

(8. Qe2 Ng4 9. Nb5 é la variante principale abbastanza truccaiola)

8… Qb8 9 e5!

9… Ng4!

[9… Nxe5 10. Nxe5 Qxe5 11. Re1 (11. Qf3?! Bd6 12. Nxd6+ Qxd6 13. Bf4 Qb4 sembra promettente per il nero anche se il bianco può organizzare delle minacce sul lato di re) 11… Qb8 12. Qd4 d6 13. Bf4 e5 14. Rxe5+ dxe5 15. Bxe5 decisivo del bianco, linea tattica che mostra cosa succede al nero se gioca con una certa meccanica svogliatezza]

10. Bf4 a6!

(10…Ngxe5 11. Nxe5 Nxe5 12. Re1 d6 13. Rc1 Bd7 14. Bxe6 Bxb5 15. Rc8+ vinta per il bianco per esempio a dimostrazione che il nero deve comunque fare molta attenzione)

11. Nd6+ Bxd6 12. exd6 O-O 13. Nd4 Nge5 14. Nxc6 Nxc6 15. Qg4

e la posizione é da giocare nel senso che se il nero non trova mosse attive può subire veloci miniature, ad esempio dovrà mettere un Alfiere in b7 per puntare su g2 e dare modo alla donna b8 di rientrare a difesa del lato di re, accompagnando però prima queste idee dalla inevitabile spinta in f5 che serve a bloccare le velleità del bianco per dare matto che tra l’altro ha anche idee tipo di alzare un pezzo pesante sulla terza traversa, in h3. Il morrista ha l’iniziativa e più spazio in cambio del pedone mentre il nero se organizza bene le difese (ad esempio potrebbe anche minacciare un Tf6-g6 dopo f5 anche se il bianco potrebbe portare un pedone in h5 per evitarlo) ha un finale quasi vinto! Morra, bicchiere mezzo pieno o mezzo vuoto? Quello che é certo é che anche nel sistema con e6, Dc7, Cf6 etc c’è molta carne sul fuoco e certamente la cessione dell’ alfiere delle case nere al nero bene non fa. E quindi prendete e giocaterlo, tutto questo é il corpo del morra offerto in sacrificio per voi! Per gli affezionati di Cocciante rimandiamo a https://youtu.be/DEKuHTmDxMw

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.

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

Ma dove vai se Angular non lo sai chiede web designer Umbria?

Mentre i terza nazionale continuano a bucare database da Ivrea e Brescia sperando di trovare numeri di carte di credito per giocare alla SNAI la gente seria che vuole diventare GM e non vuole finire al gabbio che fa? Studia Angular senza cimentrarsi in SQL Injection che é peggio di andare al Km 25 di notte. Diamo quindi un occhiata come web agency Umbria a una veloce carrelata sull’ architettura di questo framework la cui curva di apprendimento all’ inizio é molto difficoltosa. Ma prima bisogna parlare della Christiansen vs Portish partita di scacchi giocata a Linares nel 1981 fedeli alla strategia digitale di web agency Umbria che lega l’idea di digital comunication (é autorizzato a farlo, visto che Faraoni Enrico e stato fregiato senza la S del famoso titolo campione regionale di scacchi acquisito nel 2017 ah ah dove la parte finale suona in maniera un pò ironica ma legittima comunque una competenza di settore certificata) a quella che é l’esigenza di analisi sugli applicativi web. Certamente con Angular in cv puoi anche lavorare alla NASA (si fa per dire), quindi non tergiversiamo e chiediamoci: come mai Portish non ha visto la mossa 28 del Bianco? Nella risposta c’é anche un’ altra risposta, sul perché i terza nazionale non riescono a passare cm! Se non hai gusto estetico cambia mestiere non dedicarti agli scacchi perché appunto la mossa subita da Portish non ha niente di meno che un’ opera di Picasso o Magritte: la funambolica e se vogliamo anche facile 28 De4 non vista dal povero nero. Per i dettagli della partita consultare https://www.redhotpawn.com/chess/grandmaster-games/viewmastergame.php?pgnid=42748&subject=Larry-Christiansen-vs-Lajos-Portisch e interrogarsi sul perché a volte senza creatività e immaginazione in questa disciplina non si può spiccare il volo. Liquidata questa parte con il CEO di Umbriaway Consulting vediamo finalmente in un primo approccio filosofico a volo olistico di foresta come mai questo Angular se é ostico é così ostico. Da cosa é composto il markup di Angular?web agency umbria La pagina web si sa ha dei tag ma Angular ha alle sue spalle un template che a sua volta ha alle spalle delle direttive come ng-init o ng-app o ng-model. Ogni direttiva richiama il suo controller Js o codice javascript. Ma il markup di Angular é anche composto da FILTRI, ESPRESSIONI, CONTROLLI FORM oltre che da DIRETTIVE. Tra il TEMPLATE e la VISTA che sta in cima alla piramide c’é la COMPILAZIONE. Le DIRETTIVE danno uno speciale significato o instradamento al MARKUP che ha associate per ognuna di esse del codice java script specifico che semplificando significa che ognuna delle regioni contrassegnate da una direttiva ha uno specifico COMPORTAMENTO e funzionalità. Se una direttiva é composta da un MARKUP + JS CODE questo terzo livello di supporto ce lo ritroviamo a livello architetturale dopo la VISTA e dopo il TEMPLATE con in mezzo tra layer 1 e layer 2 la famosa COMPILAZIONE. Il CONTROLLER é quindi associato a un livello 4 alla DIRETTIVA del livello tre e al suo interno ha un OGGETTO definito semanticamente come SCOPE che non é altro che l’insieme dei dati e delle funzioni che caratterizzano quel tipo di oggetto che diventa accessibile per il TEMPLATE. Sopra il CONTROLLER che ha al suo interno l’OGGETTO SCOPE abbiamo il SERVICE a un livello 5 che non sono altro che comuni LIBRERIE che mettono a disposizione del codice JS. I livelli tre, 4 e cinque vengono definiti con i loro controller, scope e service CONTENITORI che non sono altro che MODULI, quindi un modulo é caratterizzato da un insieme di contenuti che prendono appunto il nome di controller+scope+direttive+service ed altri componenti.web agency umbria A questo punto con web design Umbria verrebbe da chiedersi come interagiscono tra loro i moduli e la risposta é tramite i famosi SERVICE che vengono gestiti con quella che nel linguaggio ANGULAR viene definita DIPENDENZA INJECTION ossia una fase tecnica in cui le varie dipendenze dei moduli dai servizi vengono risolte per essere tradotte in codice che finirà nella parte frontale della nostra applicazione, ossia la vista. Sembrerebbe tutto un pò complicato come la mossa di Christiansen 28 De4!! ma in realtà questo tipo di architettura oltre che semplice é anche illuminante e dà un punto di riferimento al neofita terza naz per vedere uno spaccato di universo che prima non c’era e non era nemmeno lontanamente ipotizzabile. web agency umbriaA questo punto, suggerisce web design Umbria, visto che sappiamo tutto di ANGULAR non ci resta che rifare il CV e spedirlo alla NASA con la prospettiva di guadagnare come minimo, proprio male male che vada dai 20 mila euro in sù alla faccia della crisi a pozzanghere liquide della globalizzazione, senza dover essere costretti da Brescia a bucare i database mysql di mezzo mondo sperando di racimolare numeri di carte di credito utili per veloci puntate SNAI sulle parate di BUFFON. In una delle prossime lezioni approfondiremo ancora ANGULAR quindi visto che porta così tanta prosperità in famiglia, andiamo tutti in pace, amen!

Blog su WordPress.com.

Su ↑