La sai l'ultima

Qua ogni giorno c'è una barzeletta nuova.
L'ultima è: se si dimette prima, poi gli facciamo fare un altro.

No, non fa ridere neanche questa.

ex barzelette

Dunque, c'è un ex radicale, un ex democristiano e un ex msi-ino, si mettono insieme per fare un ex-governo.

Keep calm and set breakpoints

Settimana molto impegnata ma altrentanto ricca di stimoli: c'è ne ho da raccontare che potrei scrivere post per un mese.
Sempre se non me li dimentico prima.

Così mi segno qualche appunto:
1) parlare male di quelli che parlano bene degli Mac
2) questioni filosofiche sui web per smartphone
3) programmare fa bene ai dettagli

Comincio dal terzo: ma van culo va!!!!
Ecco adesso che mi sono sfogato va un po' meglio.

I computer sono stupidi, talmente stupidi che se vi dimenticate una virgola potete star certi che il vostro bel programmino non funzionerà mai e poi mai come vi aspettate.
Anzi anche peggio, avrete un errore del tutto inatteso e passerete ore a capire perché fa così.
Passerete ore a cercare di capire cosa non va, a fare modifiche, a cancellare roba, a riscrivere altra roba. Niente. Niente e niente. Qualunque siano i tentativi non ne uscirete.
Allora cominciate a fissare i breakpoints.

Fissare i breakpoints vuol dire mettere nel flusso di istruzione delle pause forzate per controllare il valore delle variabili in quel preciso momento.
Il comportamento del programma dipende dal valore delle variabili e per capire perché si comporta in un modo anziché i un altro bisogna conoscere il valore delle variabili in uso.

Sto usando il php e il codice è disseminato di echo.

Altre volte i breakpoints servono solo per capire fino a che punto il programma funziona e dove è che si blocca: un sorta di fino-a-qui-tutto-bene.

Dopo aver passato il codice istruzione dopo istruzione, dopo averlo fatto girare passo-passo, dopo aver l etto i valori di tutte le variabili, dopo aver perso mezza giornata su una funzione di poche istruzioni, ma che regolarmente si impallava.
Dopo tutto questo e anche peggio, quando hai una irrefrenabili voglia di lanciare il pc contro una parete, quando sei più isterico di un gatto chiuso in lavatrice con la centrifuga, ecco che scopri che manca una virgola.
Una piccola e insignificante virgola. Un dettagli in un listato di centinaia di istruzioni. Ma il dettagli che per uno stupido fa la differenza tra fare la cosa giusta e fare qualcos'altro.
Che per il pc stupido è comunque fare la cosa che c'è scritto, ma che non è quello che avrebbe dovuto.

Programmare vuol dire non trascurare i dettagli. Vuol dire rispettare le regole, soprattutto quelle semantiche, vuol dire essere precisi e anche pignoli. Perché la minima mancanza può generare errori inattesi e, quel che peggio, difficili da scovare.

Il peggior programma in questo senso è il CSS.
Non è un vero linguaggio, sono una serie di regole di definizione di parametri.
Ma qui il dettaglio, la virgola, l'errorino è quello che fa la differenza tra il paradiso e l'inferno, tra le cose che vanno e le cose che non vanno.

Perchè se in un linguaggio come php, malgrado l'errore il programma fa comunque qualcosa di prevedibile.
Con i CSS le cose sono o funzionano bene o funzionano come non ti puoi neanche immaginare e quel che peggio che non puoi settare breakpoint, puo solo andare a caso. Smazzarti le regole, cercare quelle coinvolte, provare, tentare, andare a caso, riprovare, ritentare e poi...

... poi la trovi la virgola, la trovi alla fine. Oh se la trovi.

E a quel punto viene spontaneo eclamare un "ma-va-fan-culo". Un mavafanculo che è liberatorio.
E sei di nuovo in paradiso, il più felice dei beati.

Per la cronaca la mia non era una virgola, era una graffa: una graffa chiusa persa chissà dove che inefficiava una 50-ina di regole che fino a ieri funzionavano benissimo.