Fa caldo? Per forza usi i condizionatori cinesi al posto delle funzioni php unset e isset

Calma calma il caldo estivo ti dà in testa? Ci scrivono da Vortice Ombroso in provincia di PG chiedendo come faccio a disattivare una pistola carica, pardon a disattivare una variabile? E se volessi verificare il contenuto di una variabile , cioé se il contenitore é pieno o vuoto ossia se c’è il caricatore sulla pistola di PHP? E vabbè che pazienza abbiamo noi (noi é una parola grossa il CEO di umbriaway.eu é Faraoni Enrico) del portale umbro in espansione dinamica da big bang più eclatante del momento? Per sapere se una variabile ha avuto un valore e quindi un contenuto e quindi una assegnazione di memoria o se attualmente é piena devi usare la funzione IsSet($nome variabile) ad esempio IsSet($altezza) ed eventualmente questa funzione come sanno tutti i neofiti in autoapprendimento su PHP si può concatenare con il magico PUNTO . all’ interno di una stringa. E se volessi svuotare una variabile fino a farla diventare vergine? Per portarla a uno stato di non inizializzazione userò l’ìstruzione unset($altezza) in questo modo sono alle origini e se dovessi adesso rieseguire una funzione sopra a questa variabile per vederni il valore IsSet mi restituirebbe un NULL che é diverso da caratteri come “/” o “0”. Prendiamo in esame una funzione base per altezza per trovare l’area di un rettangolo, se dovessi applicare prima alla variabile $altezza prima un UNSET per inizializzarla a NULL e poi usare un IsSet per verificare l’effetto che fa scoprirei che siamo di fornte a un errore del tipo UNDEFINED VARIABLE. IsSet restituisce il valore logico TRUE, FALSE per gli interi e un valore vuoto tra virgolette come valore per le stringhe. Ricordiamoci sempre che sul famoso punto INI abbiamo la possibilità di settare vari parametri e tra questi anche il famoso E_ALL per la segnalazione degli errori che é meglio attivare come funzionalità per il neofita che si appresta ad avere nella sua prima fase di sperimentazione problemi reali con il DEBUG. Come al solito lo studente che fin qui ha avuto la sensazione di avere le ide3e troppo chiare ha bisogno di essere scombinato a livello didattico con il link presente all’ indirizzo: http://php.net/manual/en/function.isset.php. Il manuale spara sentenze: ISSET determina se è impostata una variabile e non è NULL. Se una variabile è stata disattivata con unset (), non verrà più impostata. Isset () restituirà FALSE se si prova una variabile che è stata impostata su NULL. Si noti inoltre che un carattere nullo (“\ 0”) non corrisponde alla costante PHP NULL. Se vengono forniti più parametri, isset () restituirà TRUE solo se tutti i parametri sono impostati. La valutazione va da sinistra a destra e si arresta non appena viene rilevata una variabile non impostata. Tutto chiaro eh?! Certo funzioni torbide come l’acqua del Tevere. Ok nella seconda lettera di San Taffazzi da Brescia a ceofiti la domanda posta ai miscredenti é: posso io profano mescolare PHP e HTML? La risposta era dentro di te ed era giusta Sig Taffazzi, tramite la commistione dei tag <? e bla bla bla ?> intercalati tra i tag HTML puoi indicare al PARSER di PHO che cosa deve macinare e quale metallo vile trasformare in oro. Certamente devi stare attento a posizionare gli script PHP nei punti giusti in modo anche da facilitare il caricamento della pagina e non ostacolare il rendering della pagina. Il Sig. Astrubale da San Marino ci chiede se nel PHP.INI posso andare ad abilitare gli array superglobali. La risposta é si, ricordiamo che i sei big array sono $_server, cookie, env, files, get, post e che alcune espressioni di abilitazione si trovano nel file sopra citato sotto forma di iniziali come ad esempio GPC , in questo caso specifico mancherebbe la E di $_ENV per esempio come iniziale e usando tale array superglobale senza abilitazione non produco il risultato atteso dall’ istruzione, ossia la stampa di alcune variabili di ambiente tematiche per esempio. Ricordiamo che i BIG ARRAY SUPERGLOBAL sono sei in quanto il famoso $_REQUEST deriva dai tre elementi $_COOKIE, $_GET, $_POST. Speriamo con questa esauriente risposta di avere appagato le esigenze formative del sig. Astrubale. Infine rispondiamo anche ai molti che ci hanno chiesto dal Molise se i database relazionali come MySQL si possono gestire anche con strumenti essenzialmente Microsoft con software tipo Sql Server Express. La risposta é si e ovviamente ci sono molti strumenti free in rete che consentono una gestione grafica delle query per automatizzare velocemente i processi anche di apprendimento, perché il tema sui DB é molto vasto e complesso ed esistono figure professionali dedicate che strutturano i DB in maniera logica e performante con tutte le relazioni delle chiavi primariead hoc.

Annunci

Confessions of a Serial Killer: il caso Scarenzio e il tipo di dati in Java Script, trova le differenze: Faraoni Enrico (2174) vs Scarenzio (2013), 2000.06.04, Torneo Svolta

formazione nocera umbraChi segue i deliri costruttivi di Umbriaway consulting sa che le reminescenze scacchistiche viaggiano di pari passo con un ripasso elementare di nozioni acquisite in ambito programmazione web. Ciò non é casuale in quanto tra i due settori ci sono numerose analogie. Come ricorderanno gli amici scacchisti che acquistano regolarmente Novella 2000 il caso Scarenzio fece scalpore negli anni 2000 in quanto in quegli anni scoppiò uno dei primi scandali agonistici. Scarenzio era un ameba scacchistica che di colpo era a rischio norma di GM, ovviamente era più furbo di Ricciardi che a quei tempi stava ancora studiando per diventare criminale informatico probabilmente nella culla, nel senso che anzichè esplodere tutto il potenziale di un breve arco di tempo la sua progressione seguiva una linea di sviluppo più morbida e a questo punto il lettore incuriosito potrà chiedermi: ma tu che ci hai giocato che sensazione ti sei fatto? Bè se non erro io ci giocai nella partita presentata dopo una sua clamorosa vittoria contro il GM Drazic ma non mi fece minimamente impressione anche se alcuni comportamenti sembravano davvero sospetti, mi riferisco in particolare a quel famoso impermeabile copri magagne che celava una masturbazione segreta con gli algoritmi di qualche strana macchina invisibile nascosto sotto quel misterioso soprabito. Si sa l’impermeabile nell’ archetipo universale dello psicopatico che va al parco a giocare sull’ altalena mette in moto strane immagini cinematografiche. Di fatto pur giocando con Scarenzio diverse volte forse con un tre a zero a mio favore (da verificare) mi sento di affermare ancora oggi che quell’ agonista forse aveva un potenziale eccezionale se riusciva a demolire Drazic che a quei tempi era un giocatore formidabile (ricordo che in una partita di torneo fui piallato di nero contro di lui con la sequenza 1 d4 g6 2 h4!? 1-0 in poche) ma contro il sottoscritto non aveva ancora trovato la strada per nanificare il mio punteggio elo facendolo regredire asllo stato di organismo unicellulare. Prima di vedere questa fantastica partita (ah ah già mi vedo una trafila di cappelle degne del miglior 3N!) ripassiamo i fondamenti di Java Script come vuole il vangelo di Umbriaway Consulting.

In JS posso rappresentare valori interi e decimali. Posso anche rappresentare numeri con la notazione scientifica che fa uso dell’ esponente:

10 oppure 12.234 o anche 12e+02

traduciamo, nel primo caso abbiamo un intero dieci, nel secondo abbiamo il numero docici seguito da tre cifre decimali é il terzo é il numero dodici con esponente due (12*10 alla seconda ovvero 120). La rappresentazione del tipo di dati all’ internod i un calcolatore sono “finite” nel senso che c’è una quantità di ram limitata. Di solito anche per rappresentare una dimensione JS utilizza un contenitore delimitato da 64 bit. Senza scendere troppo nei dettagli interni, basti sapere che questo pone un vincolo su quali numeri possono essere rappresentati. Per gli interi é possibile rappresentare qualsiasi numero nell’ intervallo -9007199254740992 e +9007199254740992. Questo vincolo non rappresenta mai un problema a meno che di avere a che fare con operazioni matematiche su cifre astronomiche. Anche i numeri non decimali hanno limitazioni di rappresentazione, sia sul numero minimo/massimo sia sul numerodi cifre decimali rappresentabili. Questo problema si presenta nelle usuali operazioni tra numeri lì dove uso * per indicare una moltiplicazione e il simbolo / per fare una divisione, si prenda in esame per esempio la seguente istruzione:

alert(32/3/1.1*3*1.1);

Benché le regole matematiche ci dicano che le operazioni di divisione e moltiplicazione dovrebbero annullarsi e dare come risultato il numero originario ossia 32, si scopre che a causa degli errori di rappresentazione, il risultato é diverso, ossia 31.9 periodico. Però se non si ha intenzione di scrivere programmi matematici, questi vincoli per ora possono essere ignorati. Oltre ai normali simboli per le operazioni matematiche +-/* JS gestisce anche il MODULO (resto della divisione interna) che serve a verificare se un numero é pari con l’espressione:

numero % 2 restituisce 0;

%5 restituisce 1 (5/2…resto 1)

In uno dei prossimi articoli umbriaway consulting prenderemo in esame gli operatori di confronto in JS ossia quelle domande legate ai valori di verità come sette é più grande di cinque? dove si può rispondere si o no. Questi due valori detti anche valori di verità sono espressi da JS da una rappresentazione booleana, da BOOL celebre matematico che per primo studiò i valori di verità e le operazioni su tali valori.

E ora torniamo al famoso Scarenzio progenitore efferato (e presunto) di un altro potentissimo serial killer moderno, quello visto recentemente a Imperia.

Ecco la partita: 1. e4 c6 2. c4 d5 3. exd5 cxd5 4. cxd5 Nf6 5. d4 Nxd5 6. Nc3 e6 7. Nf3 Be7 8. Bd3 Nc6 9. O-O O-O 10. Bb1 Bf6 11. Ne4 Nce7 12. Qd3 Ng6 13. Rd1 b6 14. g3 Bb7 15. h4 Nb4 16. Qb3 Bxe4 17. Bxe4 Nd5 18. Qd3 Re8 19. Bg5 Rc8 20. a3 Qe7 21. Kg2 Red8 22. Re1 Nf8 23. Rad1 Bxg5 24. hxg5 g6 25. Qf1 Nc7 26. Qh1 Ne8 27. Ne5 Rd6 28. Qh6 Ng7 29. g4 f5 30. gxf6 Qxf6 31. Rd3 Rc7 32. Rf3 Qe7 33. Rh1 Ne8 34. Bxg6 Nxg6 35. Nxg6 Qg7 36. Rf8+

1-0

Se Scarenzio usava Hal 2001 o Craxi 5300 come processore non mi é dato di saperlo di sicuro se lo usava quel giorno il sudore deve aver leso i meccanismi dell’ elettronica visto che il nero in questa partita non sembra aver toccato palla. C’è da dire che da autentico squilibrato il mio gioco é stato contrassegnato da violente oscillazioni e alti e bassi quindi é anche possibile che quel giorno stavo giocando con tro un supergm ma non lo sapevo perché tanto ero in stato di grazia. Vediamo in dettaglio questa partita che sembra sfatare l’idea che Scarenzio potesse usare i computers. Probabilmente Drazic perdendo contro questo presunto enigma era solo orientato a….a….a….bè forse voleva farsi credere un pollo anche se ci sono altre tesi a supporto che é meglio tenere tra la cenere del tempo e della memoria.

Faraoni Enrico (2174) vs Scarenzio (2013), 2000.06.04, Torneo Svolta

1. e4 c6 2. c4 d5 3. exd5 cxd5 4. cxd5 Nf6 5. d4 Nxd5 6. Nc3 e6 7. Nf3 Be7 8. Bd3 Nc6 9. O-O O-O

10. Bb1 il bianco gioca una mossettina che sta in fondo all’ albero di Kotov rispetto alle varianti principali

 11..Bf6 11. Ne4 Nce7 (11…Ae7) 12. Qd3 Ng6 13. Rd1 novità, in partita poi il bianco si vedrà costretto a riposizionare le torri, sembra logica 13 Cf6 e coppia degli alfieri 13..b6 14. g3 Bb7 15. h4 Nb4 16. Qb3 Bxe4?! (16..a5) 17. Bxe4 chiaro vantaggio del bianco 17..Nd5 18. Qd3 Re8 19. Bg5 Rc8 20. a3 Qe7 21. Kg2 Red8 22. Re1 Nf8 23. Rad1

23..Bxg5?! (23..h6!?) concede un vantaggio posizionale al bianco sulla colonna H 24. hxg5 g6 25. Qf1! Nc7 26. Qh1 Ne8 27. Ne5? (27 Dh4) forse il bianco voleva giocare su 27..Dg5 28 Cc6 e successiva d5? oppure 28 f4 Non ricordo disse lui sul banco sugli imputati ma vedere adesso questa situazione sembra il perito che cerca la verità e che propone il test del DNA al potenziale assassino 27..Rd6? Il pedone in g5 andava mangiato, questo siparietto conferma che in questa partita sicuramente Scarenzio NON TRAFFICAVA con nessun computer a discapito di tutti i processi internazionali che lo hanno visto in un periodo successivo colpevole di chissà che cosa 28. Qh6 Ng7 29. g4 f5 30. gxf6 Qxf6 31. Rd3 Rc7 32. Rf3 Qe7 33. Rh1 Sembra più forte l’immediata Ag6!! 33..Ne8? (relativamente migliore sembra la disperata Cf5 per evitare il prossimo colpo apoplettico, mentre 33..Txd4 naufraga per per 34 Cxg6!)

34. Bxg6!! il classico fulmine a ciel sereno 34..Nxg6 35. Nxg6 Qg7 36. Rf8+ 1-0

Sulla base degli incontri che ebbi con il famigerato Diabolik Scarenzio che vinceva con i GM posso affermare che non ho mai avuto la percezione che il mio avversario contro di me usasse computer magici o cose simili (sintomatico a questo proposito é la sequenza 27 Ce5? e successiva NON presa del pedone g5 che sembrano erroracci tipicamente umani a difesa dell’ imputato), ai tempi mi sembrava molto malleabile per fare il punticino sul tabellone, mentre ho avuto percezione di stranezza su questo non ben delineato impermeabile che l’imputato teneva sulle ginocchia per trafficarci sopra ma gli scacchisti sono “anomali” e ho trovato gente di tutti i tipi che aveva i tic più bizzarri, una rondine certamente non fa primavera, per fare una prova servono tre indizi direbbe il grande Ellroy