Codiamo, codiamo tutti…

L’incompetente non conosce le regole, il capace conosce le regole, il guru sa quando è il caso di violare le regole

Su faccialibro mi hanno coinvolto in una discussione sul coding alle elementari, ove per coding si intende l’insegnare il pensiero computazionale e i fondamenti della programmazione. Le obiezioni erano essenzialmente tre:

-> il coding, il saper programmare è una competenza troppo specialistica per essere insegnata.

-> meglio l’insegnamento “analogico” al digitale,

-> costringe gli studenti ad un pensiero rigido, a pensare per zero ed uno, uccidendo la creatività e tasformandoli in tanti piccoli robot. 1

Più una quarta che i progetti in realtà servivano per favorire le multinazionali del software ovvero la microsoft2; un poco di sano gombloddismo non guasta mai.

A me sembra che sul coding si faccia un sacco di confusione, come al solito, e che molti scrivano solo perché sottomano hanno una tastiera.

Prima considerazione: “coding” altro non è che il solito vizio italiano di usare una parola nuova per un concetto vecchio, il pensiero logico computazionale, per farlo passare come moderno. Il pensiero logico computazionale; il pensare in maniera matematica, conoscere, saper descrivere gli algoritmi, saperli utilizzare, è il fondamento di tutta la matematica e, conseguentemente, di tutte le scienze. Prima che venisse chiamato coniato il termine “coding” era quello che imparavi quando studiavi le tabelline e la geometria e ti esercitavi a risolvere i problemi come: Anna, Bruno e Carla hanno ognuno tre mele, quante mele hanno in tutto? Vogliamo preparare una tovaglia per un tavolo quadrato che ha il lato di 50 cm; quanti metri quadri di stoffa dobbiamo comprare? se la stoffa costa 8 euro a metro quadro, quanto spendiamo? Roba che alle elementari si è sempre fatta, solo che si chiamava aritmetica e geometria, e che si dovrebbe continuare a fare anche oggi. Chiamarla coding la fa sembrare qualcosa di figo, di moderno e di innovativo. Invece è la cara vecchia buona aritmetica.
Scava scava il linguaggio di programmazione è solo uno strumento, le strutture base della programmazione (istruzione, iterazione, scelta) son le stesse di qualsiasi algoritmo matematico e consentono di descrivere qualsiasi algoritmo e, conseguentemente, qualsiasi programma.  Il fatto è che molti confondono l’informatica con il saper usare il computer; il che è come dire che il conoscere l’ingegneria meccanica dei motori automobilistici è la stessa cosa di avere la patente e saper guidare una macchina. Usare il computer a scuola non è fare informatica come guidare non è fare progettazione di motori. Invece molti continuano a confondere la materia con lo strumento. Vero anche che molti su questa ambiguità ci giocano per lucrarci sopra. Quando insegnavo ho avuto problemi con ragazzi, convinti che l’informatica fosse la patente europea del software, si son trovati spiazzati quando invece di uord e uindos si è parlato di diagrammi di flusso e algoritmi.

Seconda considerazione: anche con l’informatica puoi fare insegnamento “analogico”; usare un mazzo di carte per spiegare gli algoritmi di ordinamento, fare il gioco delle venti domande per trovare una parola nel vocabolario, applicare tanti algoritmi “informatici” e modelli al mondo reale; prendere la ricetta della pizza come esempio di programma e convertirlo in un flow chart. Tante attività “analogiche”, coding non significa abbandonare i ragazzi davanti al PC.

Terza considerazione: una delle obiezioni contro il coding che ho sentito è: “insegna a pensare per zero ed uno, con regole rigide, riducendo l’alunno ad un automa”. Colossale uomo di paglia. Vorrei vedere un informatico che uno che “pensa” solo con una variabile binaria; si puàò pensare anche per “nibble” (4bit),  byte (8),  “word” (16)  e se proprio serve  “longint” (64 bit) 😀  In realtà la scuola già insegna a pensare con regole rigide di per sé, prendiamo ad esempio la grammatica: ci son regole “rigide” che impongono la concordanza del soggetto con il verbo o che vietano di usare un tempo futuro per parlare di eventi passati. “ieri io andrete al mare” è una frase che non significa niente. E non significa niente perché non rispetta le regole di concordanza del soggetto (io) con il verbo (seconda persona plurale) e non rispetta neppure le regole sui tempi, il verbo è al futuro mentre “ieri” fa riferimento al passato. La grammatica e la sintassi hanno le loro regole rigide quindi, se la rigidità delle regole uccide l’intelligenza e rende le persone automi, per coerenza sarebbe da eliminare anche la grammatica e la sintassi3 nell’insegnamento dell’italiano.

L’ultima considerazione sono invece le solite frignate “scolastiche” di chi cerca di verniciare con tanto idealismo i suoi bassi interessi di bottega, ovvero il non volersi aggiornare, il non voler imparare cose nuove per trasmetterle agli studenti.  Quello che trovo buffo è che i giorni pari ci si lamenti che i privati non investano nella scuola e i giorni dispari ci si lamenti del non voler diventare “schiavi” di chi nella scuola vorrebbe investire. Il solito “mamma ciccio mi tocca, toccami ciccio che mamma non vede”.

Uno dei compiti più importanti della scuola è fornirti un bagaglio culturale per interpretare, capire e saper agire nella maniera ottimale con il mondo; ed il pensiero logico matematico, o pensiero computazionale, rimane uno strumento molto potente per riuscirci. La scuola deve insegnarti a pensare non darti solo una sterile quanto inutile erudizione basata solo su tante nozioni disconnesse e avulse dalla realtà, senza che ti venga insegnato ad utilizzare tali nozioni, a collegarle ed a ragionarci sopra. E il coding altro non è che uno strumento per “applicare” il pensiero logico allo stesso modo dei problemi di aritmetica.

 


  1. una cosa che trovo divertente è che l’algebra di Boole che descrive la logica binaria altro non è che la formalizzazione matematica della logica aristotelica. Quindi lo studio di Aristotele e della filosofia è nocivo. Quando si parla di ironia. 
  2. Già il pensare che il software si riduca ai prodotti microsoft mostra quanto sia approfondita la conoscenza dell’informatica; e questo fa porre qualche sospetto su quanto possano essere appropriate certe obiezioni. 
  3. purtroppo temo stia già avvenendo, basta dare una lettura ai messaggi nei social. :-( 
Annunci

cargo cult ed ingegneria gestionale

Il cargo cult (culto del cargo) è un culto religioso sviluppato da alcune popolazioni aborigene durante la seconda guerra mondiale; si trattava del copiare gli aeroporti e dell’imitare il comportamento del personale aeroportuale. Si parla di “cargo cult” quando qualcuno copia la forma senza però aver capito nulla della sostanza.

Una cosa che accomuna l’ingegneria del software e l’ingegneria gestionale è che spesso diventano oggetto di Cargo Cult da parte di incompetenti. Molti erroneamente ritengono che si tratti di attività facili, alla portata di chiunque, e che basti imitare vagamente la forma: diagrammi e tabelle, per arrivare alla sostanza. E quando tentano di reinventarsi ingegneri ottengono risultati che vanno dal comico al tragico (soprattutto per chi deve sopravvivere alle loro sparate o cercare di riparare).

Stamattina ho avuto un esempio di cargo cult dell’ingegneria gestionale; gli HR hanno chiesto la compilazione di una tabella sulle attività svolte. Nulla da eccepire, un feedback sulle attività è utile ed anche dovuto. Però ho trovato strano che mi venga chiesto l’autput (scritto così invece di output) del mio lavoro misurato secondo una metrica assurda ed inadatta.  Metrica di valutazione delle attività informatiche azzeccata più o meno come l’usare come metrica per valutare un giocatore di calcio il numero di rimesse laterali effettuate.

Proprio un esempio da manuale di cargo cult dell’ingegneria gestionale.

 

Sistemi automatici, spam e trolling

Stavo leggendo questo articolo ove si parlava del problema del trolling su internet.  Sono abbastanza vecchio da aver visto le flamewar e il trolling sui forum e su internet e conosco abbastanza bene l’informatica per poter dire che, al giorno d’oggi, non può esistere e forse non esisterà mai un sistema automatico capace di ridurre a zero trolling.

Umoristicamente parlando si può dire che risolvere il problema del trolling si trova nella stessa classe di difficoltà del problema della stupidità. E, come disse un grande: contro la stupidità neanche gli dei possono nulla.

Al problema del trolling son connessi strettamente altri due problemi: l’indicizzazione precisa da parte dei motori di ricerca, in maniera che forniscano precisamente il contento cercato e non, come capitò ai suoi tempi con i primi motori di ricerca, qualche pagina uebbè con tante signorine poco vestite, e i filtri antispam che dovrebbero “segare” lo spam.

In tutti questi casi esistono sistemi automatici che svolgono il grosso del lavoro, e lo svolgono abbastanza bene. Le criticità son legate soprattutto ai falsi positivi, messaggi che sembrano essere spam, trolling e che invece non lo sono.  Segarli automaticamente? Il rischio è perdere qualcosa di interessante o di importante perché magari qualche spiritoso inizia con un “questo non è il solito enlarge your penis…”

Per un sistema automatico è difficilissimo capire il contesto e spesso il contenuto del messaggio può essere classificato come spam o trolling solo esaminando il contesto.  Capita anche per gli esseri umani; questa è una delle più celebri leggi di internet:

La Legge di Poe afferma che «senza un emoticon sorridente o qualche altro chiaro segno di intenti umoristici, non è possibile creare una parodia del fondamentalismo in modo tale che qualcuno non la confonda con il vero fondamentalismo»[1].

La legge di Poe afferma che, in un testo scritto, privo degli elementi prosodici della lingua parlata (tono e intonazione) e di loro sostituti grafici (del tipo in uso nelle scritture brevi, come emoticon e smiley), è arduo parodiare il fondamentalismo (o, in generale, ogni teoria o ipotesi strampalata) partendo dall’elemento da parodiare, poiché sia la parodia sia l’oggetto della stessa sembrano sconclusionati e rischiano di essere confusi l’uno con l’altro. Viceversa, il vero fondamentalismo può facilmente essere confuso con la parodia del fondamentalismo stesso. fonte wikipedia.

Inoltre se conosco bene come funzionano i filtri posso anche pensare a modi efficaci per aggirarli, basta vedere come agiscono spammer e scammer vari. O chi scrive nei forum con moderazione automatica “blocca insulti”  Watt a Farad in Coulomb, Tesla d’Ampere.

Ecco perché è molto difficile scrivere codice blocca trolling: il trolling è ancora più subdolo dello spam, dipende fortemente dal contesto; la stessa frase può essere umorismo oppure trolling a seconda del contesto e i software hanno molta difficoltà ad individuare il contesto.

L’unico quindi è usare i soliti, classici, sistemi: white/black list per gli autori, segare e censurare tutto quello che non piace. Rendersi conto che i social son la piazza dove tutti possono urlare e si ha poco controllo sulle urla che si sentono, i blog sono un ambiente un poco più riservato.

 

 

 

 

Perché i sistemi automatici non possono funzionare?

Il problema degli amministrativi che non capiscono un cazzo.

Talvolta capita che un tecnico informatico debba predisporre dei progetti e che si materializzi il suo peggiore incubo: che il progetto prima di essere consegnato ai  tecnici informatici dell’altra parte venga vagliato, e corretto, dagli amministrativi, che di informatica non capiscono un cazzo e che si limitano a ripetere  quattro slogan alla moda generando situazioni fra il drammatico e il surreale.

A me son capitati alcuni episodi; agli albori dell’informatica (~AD 2002 circa) mi era stato chiesto di predisporre la rete LAN di un’aula di informatica e configurare il router e i PC affinché andassero in rete. E scrivere un rapportino da consegnare al tecnico che avrebbe seguito la rete. Lo faccio e preparo due paginette: gli indirizzi dei PC sono questi, il DNS è quest’altro, il gateway questo, gli switch son questi altri. Due paginette scarne con le informazioni essenziali sulla rete e sugli apparati. Consegno il documento al mio referente amministrativo, lo guarda e mi dice che era troppo scarno. Che doveva essere di almeno 60 (sessanta!!!) pagine e 5 (cinque!!!) diagrammi per essere considerato accurato.
Preparo il documento richiesto scrivendo un sacco di cavolate inutili come il datasheet completo delle schede di rete, diagrammi scontati in cui specifico che tutti i PC sono collegati fra loro ed al router attraverso lo switch, che i cavi di rete son da collegare alla presa di rete dei PC  e alla placca presente in stanza (il IV segreto di fatima) e lo consegno.
Due giorni dopo mi arriva una telefonata dal collega, informatico, che mi chiedere perché avevo scritto tutte quelle stronzate invece di fargli avere due paginette scarne…

Altri episodi che capitano sono che mentre tu parli di cosa vorresti ottenere loro si concentrano sul come ottenerlo e viceversa: “Dunque il portale avrà delle maschere per interagire con gli utenti e permettere loro di segnalare questo e quello. Ma perché non si usa il prodotto XYZ?”
Richieste di evidenziare parti che, per un tecnico sono scontate; roba del tipo: “Ma perché non hai specificato che quando treno si ferma alla stazione allora non si sta muovendo?”.
E l’interazione con i tecnici della controparte è difficoltosa, sopratutto se il messaggio non è trasmesso “AS IS” ma viene interpretato e viene trasmessa l’interpretazione; la richiesta: “posso avere la struttura della base dati comprensiva della descrizione delle chiavi e delle relazioni” viene tradotta in “potete darci il database delle chiavi completo?

Qual’è il problema dell’approccio: “non capisco un cazzo ma voglio mettermi in mezzo per far vedere che io so fare (grandi cazzate?)” Essenzialmente due:

la prima è che una volta che arriva il documento “corretto” ai tecnici della controparte penseranno che sia stato scritto da un qualche incompetente che si guardava hackers mentre era in overdose di allucinogeni e quindi non capisci se hai a che fare con una persona capace tecnicamente che ha la sfortuna di essere diretto da un incompetente che si vuole mettere in mezzo oppure hai a che fare con in perfetto imbecille. Informazione fondamentale per valutare quanto possa essere proficuo adottare la soluzione di scavalcare gli amministrativi quando c’è da discutere di questioni prettamente tecniche.

E la seconda è che si deve perdere tempo a spiegare ad un non tecnico questioni che, per mancanza di informazioni e di background tecnico, non può capire pienamente e cercare di tenere il progetto coerente e corretto in maniera che passi sia la valutazione amministrativa che quella tecnica. Purtroppo l’amministrativo pensa che il progetto sia destinato al suo corrispondente dell’altra parte e quindi sia capibile da lui e non pensa che prima o dopo, spesso purtroppo dopo, ci sarà anche la valutazione tecnica. E questo spiega come molti progetti, ben disegnati e descritti si trasformano in pastrocchi pasticciati e infarciti di buzzword perché,devono far colpo sul commerciale dell’altra parte, per poi finire cassati dalla parte tecnica perché pastrocchi pasticciati e infarciti di inutili buzzword. (E ovviamente la colpa è dell’informatico che non capisce nulla…)

 

Dieci linguaggi [di programmazione] per me…

Stavo discutendo con una amica che lavora come docente di informatica nelle scuole superiori. Si lamentava che non potesse ricevere il punteggio “bonus” dovuto al possesso dell’ECDL nonostante, per legge, potesse tranquillamente tenere i corsi e far svolgere gli esami per il conseguimento. E, nella discussione, ha anche affermato che “conosco dieci (0x0A) linguaggi di programmazione(1) visto che gli ho dovuti insegnare nei miei corsi”…

La storia dei dieci linguaggi è emblematica di come molti docenti intendano la programmazione come la mera conoscenza della sintassi del linguaggio scelto. Cioè se io conosco la sintassi del while in php allora conosco il php. Purtroppo non è così, il saper programmare è un qualcosa che dipende poco dal linguaggio di programmazione scelto, è la capacità di pensare la sequenza di algoritmi per arrivare alla soluzione del problema e trasformarli in istruzioni chiare per ottenere il risultato atteso. Il tradurre tali istruzioni poi nella sintassi del linguaggio di programmazione è un passo abbastanza semplice.
Sì, certi linguaggi possono facilitare lo svolgimento di alcuni compiti, ad esempio il C rende facilissimo lo spararsi in un piede 🙂 e il C++ di riusare il proiettile per spararsi all’altro >:-D o il PERL per scrivere codice funzionante ma inmantenibile, ma ciò che conta non è tanto la sintassi del linguaggio quanto il saper programmare. Per il teorema di Bohm e Jacopini qualunque algoritmo può essere implementato usando solo tre strutture di controllo: la sequenza, la selezione e il ciclo, il linguaggio al più può metterti a disposizione scorciatoie o sistemi per rendere più robusto il codice (programmazione ad oggetti) ma l’importante è l’algoritmo non il linguaggio nel quale tale algoritmo verrà tradotto.

(1) Non esiste un linguaggio standard per l’insegnamento ma il linguaggio è a scelta discrezionale del docente. I testi di informatica propongono diversi tipi di linguaggi, dai vecchi, ma sempre validi, C e Pascal ai linguaggi alla moda del momento come PHP, Visual Basic o Python.

Schiavitù…

Stavo leggendo questo interessante pezzo di raphael, e mi è venuto da riflettere. Generalmente in tutte le polemiche della scuola o del lavoro puntualmente salta fuori uno ad urlare che “vogliono renderci tutti schiavi mentre la cultura rende liberi”.  Però il vedere uno zio Tom che blatera di come la sua prodigiosa cultura lo renda libero, mentre si spacca la schiena per 16 ore al giorno nei campi mi farebbe dubitare alquanto della mitica libertà che la sua cultura dovrebbe garantire.

Dove servono gli schiavi? se si studia un poco la storia degli stati uniti si vede che la schiavitù formale era diffusa nel sud agricolo dove occorrevano persone per svolgere lavori semplici ma non meccanizzabili a differenza del nord industriale dove le macchine rendevano superfluo l’uso di schiavi(1). Le riflessioni che ho fatto sono due:  “chi ha bisogno di schiavi?”, e seconda, “come evitare di essere ridotti in schiavitù?”.

La risposta “chiunque ha bisogno di sfruttare persone sottopagandole” potrebbe sembrare giusta ma invece è fuorviante. Posso sfruttare una persona ma se è valida molto probabilmente troverà altro, un negriero meno negriero ad esempio, e se io baso tutto il mio lavoro su di essa sarò io a finire nella merda. Quindi la risposta corretta è “chiunque ha bisogno di sfruttare persone sottopagandole per svolgere lavori in cui sono facilmente sostituibili“.   Quando parlano della delocalizzazione di un call center per la gestione dell’assistenza tecnica puntualmente salta fuori la storia dell’alta professionalità acquisita, del non disperdere un capitale di capacità… peccato che siano balle.  Per addestrare una persona a rispondere al telefono, leggere un elenco di domande preimpostate, classificare la risposta dell’utente e agire di conseguenza basta una giornata, due se vogliamo proprio esser buoni. Quindi trovare un operatore di call center per sostituire uno che per un motivo o per un altro mi molla mi costa sì e no due giorni di addestramento più l’eventuale tempo per trovare il sostituto e fargli il colloquio. Però visto che i call center sono bombardati da CV il trovare un sostituto e renderlo operativo non prende più di due o tre giorni.

Diverso se devo sostituire un project manager o un programmatore esperto (non code monkey), quello che spendo per trovare un valido sostituto(2) è, in tempo e denaro(3), molto quindi non mi conviene rischiare che il tizio mi molli per qualcuno che, semplicemente, non lo obbliga a girare con la scopa nel culo per spazzare l’ufficio.

E questo ci porta alla seconda riflessione: come evitare di poter essere ridotti in schiavitù? E la risposta è: avere potere contrattuale ovvero avere competenze e capacità che servano alla controparte e che rendano oneroso trovare un sostituto(4). Occorre quindi saper fare e ovviamente occorre il sapere alla base del saper fare. Serve cultura, la cultura rende liberi. Ma serve la cultura cultura quella del sapere e del saper fare, non quella che ti fa conoscere quattro parole “esotiche” buone solo per sparati pose da colto. Perché il tuo valore, piaccia o no, sono i costi che il datore di lavoro dovrebbe affrontare per trovare una persona capace di sostituirti nel tuo lavoro e prendere il tuo posto svolgendo il lavoro almeno con la tua stessa qualità. 

Visto da quest’ottica si spiega molta schiavitù, ad esempio quella dei bodyrentallari o dei caporali che piazzano esperti  in C/C++/C#/java/SQL/VisualBasic/ASP/Flash/Javascript/PHP/Python/MySQL/PostgreSQL/Oracle/SQL Server/Windows/Linux/Apache/IIS/Exchange… di 22 anni con laurea, dottorato di ricerca e 15 anni di esperienza… Sostituire uno con quei requisiti con un altro con pari requisiti è immediato, il tempo di cambiare i dati personali nel CV tarocco…

(1) Uno schiavo meccanico è meglio di uno schiavo umano.

(2) Se il project manager o qualche programmatore senior può essere sostituito in quattro e quattr’otto allora il progetto informatico cui lavora l’azienda non vale un c…

(3) il tempo è denaro, ritardi nella consegna del progetto costano, il tempo che devo levare ai miei tecnici per mandarli a fare i colloqui costa…

(4) Ricordo una discussione su punto informatico, e su come quantificare quanto si vale per il cliente o per il datore di lavoro. Discussione ovviamente impestata da persone che da sole tenevano in piedi una multinazionale (segretaria tettona del capo compresa) percependo uno stipendio che avrebbe fatto schifo ad uno schiavo di rosarno. E stranamente non facevano girare CV per cercare altro e mandare aff. i vecchi datori di lavoro.

i danni causati dal linarus bipartitionis vulgaris.

Stavo leggendo, sul fatto, e discutendo in un salotto buono della questione “perché migrare a linux e all’open source” e di quanto possano essere nocivi alla causa i talebani dell’open source, quelli che vogliono essere più stallmaniani di stallman.

Il salotto buono è interessante ma poco divertente; ti aspetti una puntata di boyager sugli alieni che costruiscono le piramidi e ti trovi invece “superquark” che mostra come era possibile costruirle con le conoscenze tecnologiche dell’epoca e passa un bel servizio sul telescopio spaziale Hubble. Ottima roba interessante ma niente fallacie e strafalcioni su cui ragionare.

Invece nel forum del fatto, dove si discute di linux è utile perchè mostra uno spaccato dei linarus bipartitionis vulgaris(1). Un sacco di persone convinte che linux sia meglio perché è gratis, perché ci puoi fare tutto, perché c’hai il codice sorgente, perché è alternativo e quindi è fico.

Prima di tutto vorrei sapere cosa ci sia di alternativo in un kernel (il kernel di android è linux) diffuso in ogni dove, in gozzilardi di dispositivi, ma forse lo rende alternativo il fatto che si vedano pochi PC che lo montano e molti si spacciano da linari solo per spararsi pose da acher. Si tratta di un prodotto tecnico e come tutti i prodotti può essere più o meno adatto agli usi cui vorremmo destinarlo.

Seconda cosa, molti strapparlano di linux e di sistemi informativi ma dimostrano platealmente ignoranza di cosa sia in realtà un sistema informativo e di cosa sia un sistema informativo con 14.000 macchine come è quello del comune di Monaco di Baviera. Un fiorire di aneddoti al livello: mi ha detto mio cuggino che sa un commando linux segreto che se lo scrive dopo tre giorni spegne internet. Gente convinta che per gestire quella rete basti ripetere 14.000 volte quello che fanno nel computer di casa e gente entusiasta perché con linux è tutto gratis, e c’è tutto.  Nel caso mancasse qualcosa, la si può commissionare a tre informatici, assunti a progetto, che la scriveranno in una settimana.

Analisi che, a voler fare i buoni, si possono definire ingenue ed idealiste. Il supporto su linux lo paghi così come quello sul software proprietario, e tutte le volte che c’è movimento di denaro c’è rischio corruzione. E a seconda di quello che ti serve forse una settimana è poco per scrivere un buon software.

Rinunciare al supporto tecnico perché c’è la mitica community di supporto che interverrà sempre, rapidamente, comunque e dovunque (o nel caso sia necessario i tre informatici a progetto) è una azione intelligente tanto quanto il chiudere l’ospedale perché tanto c’è san Gennaro che fa i miracoli (o per i non credenti perché ci si può curare con limone e peperoncino o stamina).

Che danni causano questi cialtroni completamente a digiuno di informatica? Come nel caso di stamina, diventano un movimento di opinione che può spingere chi deve decidere gli indirizzi, ovvero il politico, a fare pressioni affinché le scelte tecniche: “installiamo questo o quello”, “usiamo il pacchetto X o il pacchetto Y”, vengano prese non per motivazioni tecniche ma per motivazioni politiche: usiamo il gestionale X perché è opensource ed è scritto da una Cooperativa Equosolidale di Mugnai Indocinesi (S.C.E.M.I) invece di quello delle malvagie multinazionali amerrigane. Peccato che S.C.E.M.I. funzioni da dio per mandare avanti una cooperativa di mugnai ma quando si prova ad usarlo per gestire i volumi di dati di una pubblica amministrazione abbia qualche problemino di scalabilità. Risultato: il budget dell’informatica viene bruciato per correre dietro a farfalle invece di comprare le licenze dei software chiesti dai tecnici.

Ho sentito di un paio di enti pubblici che annunciavano in pompa magna una migrazione full opensource e poi, zitti zitti, son tornati indietro perché Open Office litigava con il programma di contabilità o perché non esisteva la versione linux del programma di pianificazione e gestione della raccolta rifiuti usato dall’ufficio tecnico.

Ma questi fallimenti, come nel caso di stamina, non inficiano la validità della cura anzi paradossalmente vengono presi come esempio dei gombloddi(2) delle multinazionali per sabotare linux e l’open source. E come stamina tutte le volte che decisioni tecniche vengono prese per motivi ideologici e di pancia e non per motivi tecnici finisce tutto (o quasi) in merda.

Infatti un fiasco in una migrazione, fiasco causato da mostruosi errori su budget, tempi e risorse ha come effetto di far considerare un cazzaro chiunque proponga, anche se con uno studio serio, anche se con analisi realistiche di costi e ricavi, di inserire linux.

(1) Io uso linux per tutto, a parte quello che posso fare con windows.

(2) Col gombloddo puoi dimostare qualsiasi cosa. Ex gombloddus quodlibet.

Linux (e open source) per risparmiare o per buttare soldi dalla finestra?

Periodicamente, quando si parla di risparmi per le pubbliche amministrazioni e di informatica, salta fuori lo sciroccato che parla per slogan convinto che basti installare linux (quale?) e free office/open office nelle pubbliche amministrazioni per risparmiare euro ad iosa.

Peccato che la realtà sia alquanto diversa. Prima cosa: il sistema informativo di una pubblica amministrazione, dal comune di medie dimensioni (~30.000) abitanti in su, non è solo N computer winoffice; già il pensare quello apre la porta a madornali errori di valutazione riguardo a risorse, costi e risparmi. Errori che puntualmente portano alla catastrofe. Il sistema informativo è formato, oltre che dalla ferraglia, anche da un insieme di applicazioni specifiche per ambiti di intervento che potrebbero essere ad esempio la pianificazione e la gestione della raccolta dei rifiuti oppure il protocollo o la gestione del bilancio dell’ente. Software che a loro volta impongono vincoli. Brutalmente, se per usare il sistema contabile hai bisogno di winoffice e vuoi cambiare e installarti LOL (Libre Office/Linux) devi pianificare anche il cambio del software del sistema di contabilità (spesso pagato $Cifrone) , trovare qualche software con prestazioni equivalenti che lavori sotto linux altrimenti devi rinunciare o mettere in conto l’uso di sistemi meno efficienti.

Molti progetti falliscono proprio per quel motivo si confronta solo (costo winoffice vs costo LOL) e non (costo sistema informativo windows based vs costo sistema informativo linux based). Nel primo caso i risparmi, anche evidenti, sono tutti a favore di LOL, nel secondo caso rischi invece di dover investire per poi trovarti o con funzionalità minori o con costi maggiori od equivalenti della soluzione windows based. Tanto per fare un esempio automobilistico: un auto a benzina costa meno di un diesel, il gasolio meno della benzina. Il colpo di genio che sostengono alcuni non è: “vediamo che uso facciamo della macchina e scegliamo quella complessivamente più economica” ma “compriamo un auto a benzina e facciamo il pieno di gasolio”

Quando ancora discutevo su PI notavo che molti, soprattutto i ragazzini dei lug che avevano appena scoperto linux, facevano principalmente due errori: il primo era il considerare i sistemi informativi non come un insieme di parti interconnesse ma come un insieme di parti indipendenti e quindi ritenere che il modificare la suite da ufficio o il sistema informativo dei client non avrebbe avuto alcuna conseguenza sul resto del sistema informativo.

E il secondo errore, più grave, è il credere che ad ogni aggiornamento della suite office o del sistema operativo la PA si precipitasse a comprare le licenze per avere tutti i suoi PC con l’ultima versione nuova di pacca, questo porta invece a sovrastimare enormemente i risparmi nella conversione verso linux: “2 licenze di windows e office all’anno per PC contro zero” quando la realtà è: una licenza winoffice ogni 6 anni contro zero.

C’è anche un terzo errore che viene fatto: un pc a fine vita è un pc a fine vita, il rischio di danni hw è elevato e conviene destinarlo ad applicazioni poco critiche, come ad esempio il metterlo in biblioteca per navigare e consultare cataloghi bibliografici, dove un fermo macchina causa minimi disagi. Perché se parte il disco fisso linux o windows non fanno differenza, la macchina è bloccata e bisogna sostituire il disco. E per la legge di murphy ciò puntualmente capita quando c’è qualche documento urgentissimo da terminare…

Quando si progetta la migrazione di un sistema informativo bisogna sedersi, vedere quali sono tutti i requisiti, tutti i vincoli (se l’ufficio tecnico deve usare autocad e questo gira su windows, devi avere windows) e cercare la soluzione complessivamente più economica nel tempo (5/10 anni) considerando tutti i fattori (costo delle licenze di tutti i programmi occorrenti nel caso winoffice e nel caso LOL, costo del supporto, costo della formazione, costo della eventuale migrazione…) e non partire lancia in resta ad installare linux e libre office per poi accorgersi che non puoi mollare windows e fare il rollback sprecando l’equivalente di 20 anni di licenze di windows…

Un ultima cosa, un altro degli slogan più gettonati è: “ma perché pagare consulenti quando si può chiedere al LUG…”. Semplicemente quello che si paga si può pretendere, i regali invece no. Se pago una ditta per l’assistenza 24/24, 7/7, e ho un problema alle 18 del 14 di agosto l’azienda deve intervenire (altrimenti son penali), con il LUG ho quella garanzia? Se Tizio si rimangia le promesse chi paga?

NB

1 – nel backoffice della PA linux (con mysql, apache etc. etc.) è presente e viene usato tranquillamente. Non è vero che esiste una avversione della PA verso il software libero.

2 – non è vero che il software libero è immune da corruzione; se c’è flusso di denaro c’è il rischio di corruzione, e i consulenti linux non lavorano gratis.

 

 

la moda informatica e il mondo della scuola

Verso i primi anni 2000 io, pischello appena uscito dall’università, mi son trovato ad insegnare informatica sia come docente teorico, sia, grazie ad un diploma di perito informatico, come docente di laboratorio di informatica. E mi son visto la seconda ondata di moda informatica che ha colpito la scuola italiana.

A causa della riduzione del numero di nascite di circa dodici/quindici anni fa, si stava riducendo il numero di studenti che si iscrivevano alle superiori. E molte scuole, per non essere chiuse, comunciarono a contendersi gli studenti cercando da una parte di sembrare scuole che garantivano un sicuro successo o professionale nel caso degli istituti tecnici o universitario nel caso dei licei e dall’altra di essere scuole facili che permettevano di conseguire il titolo senza troppi sbattimenti.  Ed inoltre inserendo nel curriculum degli studi la materia alla moda del momento, ovvero informatica ed internet, tutti ne parlavano visto che era il momento in cui stava partendo la bolla di internet e della new economy in italia e internet grazie a video on line e tiscali stava iniziando a diffondersi nelle case di tutti e non solo di smanettoni e appassionati di elettronica o informatica. Ricordo che il simbolo della chiocciolina “@” veniva disegnato e piazzato da tutte le parti, talvolta con effetti che andavano dall’umoristico al penoso come la “Divin@ Commedi@ di D@nte”.

Quindi divenne naturale per le scuole superiori il puntare sull’informatica per apparire moderne e attrattive per gli studenti, ed inoltre, illudendoli che informatica non fosse altro che saper usare poco poco windows e scrivere due righe due su word, che non ci fossero materie troppo difficili da studiare.

Ricapitoliamo: da parte delle famiglie c’era richiesta di fare informatica perché era il futuro dei figli e pierino da essere il tipo che perdeva tempo con i videogames sarebbe stato il guru della famiglia e quello che, diventando ceo di qualche dot.com avrebbe guadagnato qualche gazzillonata di soldi al mese. Pierino voleva fare informatica perché bravo nei videogiochi e convinto di andare a studiare il campo minato di windows, la scuola per attrarre finanziamenti per progetti informatici e studenti e non perdere classi.

Perché l’italia allora non è diventata uno dei centri mondiali di eccellenza nell’informatica? perché gli ammerrrigani non son venuti a rapire intere classi dell’ITIS per trasferirle nella silicom valley? Dov’era l’inghippo?

L’inghippo era nel fatto: una cosa è il discorso sull’informatica che girava sui media e sulla pubblicità, con i giornali che ti mostravano gli aspetti più luccicanti della materia senza però parlare di quello che ci stava dietro, e un altra cosa è la materia informatica intesa come scienze dell’informazione. Una materia che, come le altre materie scientifiche va studiata e compresa e nella quale è difficile tenere i bluff molto a lungo. Cioè parlando con persone alquanto ignoranti dell’informatica potete far credere di essere dei guru e di essere esperti, però se finite per sfortuna a confrontarvi con veri esperti vi vaporizzate all’istante come un gelato in un altoforno. Molte delle assunzioni della bolla della “niu economi” erano perché ignoranti boriosi che riuscivano a vendersi bene venivano valutati da persone tecnicamente più ignoranti di loro, gente che, con lo sgonfiarsi della bolla si è trovata “con il culo per terra”.

Le scuole quindi spacciavano per informatica più il saper usare un computer che il conoscere “le scienze dell’informazione automatica”, e anzi l’insegnamento della vera informatica: teoria della programmazione, sistemi, teoria delle basi di dati spesso causava delusione e rigetto negli studenti. Studenti che si aspettavano qualche trucco su fotosciop per stupire gli amici e non roba come

program calcoli_triangolo;
var lato,area,perimetro :real;             
begin
     writeln('Inserisci il lato del triangolo');        
     readln(n1); 
     perimetro := lato*3;
     area := lato*lato*sqrt(3)
     writeln('il triangolo ha perimetro: ', perimetro); 
     writeln('il triangolo ha area: ', area); 
end.

 Venendo spesso traumatizzato dal trovarsi a fare una specie di matematica invece che l’informatica. C’è anche da parlare dei progetti. Era tutto un fiorire di famigerati progetti legati all’informatica (anche se spesso si limitavano a far prendere l’ecdl agli studenti) e un sacco di docenti, spesso incapaci di distinguere un PC da un tostapane, si precipitavano a proporli e lottavano per parteciparci (e, logicamente, mangiarci) . Tanti corsi dai nomi altisonanti tenuti da capre e fatti solo per estorcere qualche spicciolo al ministero dell’istruzione. 

Risultato: un sacco di ragazzi incompetenti ma convinti di essere in grado di telefonare ad alan cox per insegnargli come si gestisce lo sviluppo di un kernel e che quando si scontravano con l’informatica lato professionale (qualcosa che andava oltre il computer domestico o uffici con più di due computer)  spesso venivano scartati oppure, se avevano la fortuna di trovare qualche capra più capra di loro riuscivano ad entrare e a trovare qualche lavoro interessante. Molti di quelli che avevo conosciuto, i primi tempi guadagnavano anche bene fornendo assistenza di base alle persone, c’era sempre un modem da configurare o i driver di stampa da installare, poi, con il semplificarsi dell’uso dell’hw, l’ingresso in campo delle grosse catene di elettronica di consumo e la diffusione dei nipotini smanettoni, hanno visto il loro giro ridursi e poi chiudersi.

Logica conseguenza che capita tutte le volte che c’è moltissimo fumo e pochissimo arrosto. Il fumo attira tante, tante persone ma chi riesce a mangiare l’arrosto son pochi, molto pochi rispetto a quelli che si avvicinano solo perché vedono fumo.

Adesso con il passare della moda l’informatica sta tornando al suo ruolo naturale; si è separata dal mero “uso del computer” ed è tornata ad essere la scienza che studia l’informazione e la sua elaborazione in maniera automatica.

Volendo si può fare un parallelo con la bolla della new economy in borsa; anche lì molti wannabe gordon gecko erano pronti a lanciarsi in investimenti arditi e speculazioni basate sul niente visto che i mezzi di comunicazione parlavano di questa niu economi come di un casinò in cui tutti stravincevano(1) alla roulette ed al back jack.  E passata la moda a molti son rimasti in mano solo i cocci, o neanche quelli.

(1) E questo avrebbe dovuto far accendere un paio di allarmi…