Storie dalla Sala Macchine


Home Page | Commenti | Articoli | Faq | Documenti | Ricerca | Archivio | Storie dalla Sala Macchine | Contribuire | Imposta lingua:en it | Login/Register


Vampiri, mostri Aniba, ILTUOCODICEDEMMERDA!

I programmatori sono quegli strani individui che manipolano arti esoteriche allo scopo di far comparire pupazetti animati sullo schermo del cellofono. Almeno questa e' la "normale" opinione del 90% degli utenti. Il restante 10% li considera dei criminali inarrestabili sempre intenti a tentare di impossessarsi di password ed accedere a sistemi supersegreti e supersicuri e supersorvegliati per... non si sa bene cosa farci, probabilmene impadronirsi del pianeta.

Questo per gli utenti. Ovviamente, se voi avete una vaga familiarita' con la "razza" dal punto di vista sistemistico, saprete bene che i programmaTORI sono una razza in via di estinzione mentre i programmaTROTI si riproducono come conigli e, nonostante i nostri tentativi, sono sempre piu' comuni nell'ambiente informativo.

Non credo di dovervi specificare cosa intendo io per 'programmatroti', ma dato che sono io che decido cosa scrivere lo faccio lo stesso.

Il programmatroto e' in genere relativamente giovane, perche' quando invecchiano, o cominciano a capire qualche cosa ed a sparare meno cazzate, o finiscono per essere vittima di qualche "incidente" che li elimina dal pool genetico per via diretta. Essendo giovani purtroppo soffrono del tipico complesso della novita' essenziale: qualunque cosa che sia "nuova" e' per definizione bellissima, fantasticissima, superefficiente e assolutamente NON come la cosa nuova della settimana scorsa che ovviamente era una cagata spaventosa ed inutile e completamente vecchia, vetusta e scricchiolante. Per esempio di fronte al termine "database" si lanciano nell'arena menzionando Redis e Mongo che quelli si' che sono database, non come quelle cagate SQL-cosoli' che sono vecchi come il cucco e non servono a niente e poi hanno sempre dei problemi con queste 'chiavi', chimminchiasenefregadellechiavi, noi vogliamo NULL in tutti i campi, anzi non vogliamo nemmeno i campi.

Per lo stesso motivo, PHP e' vecchio e sorpassato mentre NodeJS e' nuovo e brillante. Tutti sono li' che parlano di "Docker" e "Container" e "Kubernetes" e non sanno nemmen fare ssh su una macchine, anzi ssh non lo usano mai, loro usano solo HTTPS perche' e' nuovo. Ma non hanno la piu' pallida idea di cosa voglia dire 'TLS 1.2' e domandano scoglionati perche' devono avere un 'certificato' per la vpn, la vpn e' vecchia e polverosa, loro sono sempre wireless.

Il programmatroto, dato che e' giovane ed e' sempre alla ricerca del nuovo/nuovissimo, non commette mai errori. Il suo codice funziona perfettamente sul suo macbook nuovo di zinca, se non funziona e' il momento di prendere un nuovo macbook ovviamente perche' il problema e' sicuramente nel processore o nella gpu che non sa bene cosa sia o come funzioni ma e' sicuro che quello li' e' il problema che e' vecchio e non supporta l'ultimo standard.

E con questo, parliamo del programmatroto 'du jour': CL.

E devo cominciare spezzando una lancia in suo favore. Perche' CL effettivamente non ha molta colpa nella situazione che si e' venuta a creare. Circa un anno fa, i 3 SL che avevano fondato e dirigevano il posto, arrivarono ad una inpasse. Nel senso che due decisero che vendere baracca, burattini e tutto ad $enormecatenainternazionale era un'ottimissima idea, mentre il terzo non era molto d'accordo. Ma dato che era in minoranza, la sua decisione fu di vendere le sue quote agli altri due e leversi di torno. La vendita fu arrangiata, uno degli effetti inattesi fu che la nostra roba fini' da $noihostiamoroba (della quale efficienza ho gia' detto). Un altro effetto inatteso e' che in rapida successione i due "product owner" (aka: project manager) per il lato backend ed il lato frontend, migrarono presso altri lidi, seguiti dal CTO che era anche piu' o meno l'architetto di tutto il sistema informativo. E poi 7 dei programmatori se la partirono.

Il che lascio' i due SL con una bella pila di posizioni scoperte e di compiti da svolgere per cui mancano abbastanza le persone competenti. CL si ritrovo' quindi spostato dalla parte 'frontend' a quella 'backend' per il solo motivo che era l'unico con una vaga idea di come tale cosa funzionava. Vaga. Molto vaga. Praticamente inesistente.

Il problema e' che CL e' un programmatroto e non un programmatore. E messo di fronte a del codice che non capisce, si ritrae come un vampiro con l'acqua santa invece che cercare di risolvere il problema della quadratura del cerchio.

Che il codice della parte backend sia incasinato e' certo, che sia 'vecchio da buttare via' non molto (e' Python, per lo piu'), ma che sia da mantenere e' assicurato dato che a ritmi giornalieri quelli che lo usano domandano modifiche o aggiunte a funzioni che sono... non troppo funzionali. Altro problema e' che CL, come tutti i programmatroti, ha la tendenza di fare le modifiche e le estensioni direttamente in produzione, con la giustificazione che 'sul suo laptop funziona'.

E con questo passiamo ad una settimana fa circa, quando, piegandosi alle insistenze (ed alle minaccie) del nostro dipartimento Finanza, CL comincio' a lavorare ad una intera batteria di modifiche a certe funzioni. Modifiche che furono prontamente rilasciate in produzione. E stranamente, nessuno comincio' ad ululare che non funzionava piu' un tubo come io mi aspettavo. Almeno non subito.

Il mattino dopo in effetti, fu qualcuno del gruppo logistico che venne a chiedere che cavolo era successo all'export dei dati per il magazzino. Dopo un po' di domande venni informato che il backend produceva anche una serie di files che avrebbero dovuto essere spediti al nostro magazziniere ogni notte, verso le 3 del mattino. Questi files apparentemente non erano stati spediti.

Un rapido controllo mi disse che non erano manco stati generati. Quindi allo scoccare delle 9.30, quando CL arrivo' in ufficio, si ritrovo' con un comitato di ricevimento che voleva files e risposte. I files non era difficile generarli, le risposte molto meno.

Dopo un po' di ravanamenti CL si rivolse a me sostendendo che il "server in produzione e' sicuramente sovraccarico per i batch della finanza", un rapido controllo sul monitor mi dice che la cpu non supera mai il 20% di attivita' quindi tanto sovraccarico non puo' essere, "allora e' sicuramente un problema di memoria", 8 Gb liberi, "il disco fisso e' pieno", 40 Gb disponibili, "arf anf argh, i processi, gli inodes, la latenza della rete, gli interrupts, gli zombie", i vampiri, i mostri aniba, il tuo codicedimmerda!

Lo spedisco a guardarsi i log di quell'accrocchio e dopo un paio d'ore ritorna dicendo che non ha trovato niente. Si perche' avere del logging decente richiederebbe pensarci ed implementare le cose in modo acconcio, vomitare tutto l'output dentro un file invece...

Passano i giorni ed i files continuano a non essere prodotti. Dopo il secondo giorno qualcuno del gruppo Logistico viene a domandare l'installazione di un "controllo" sulla presenza di quei files che notifichi cani&porci della loro mancanza in modo da potersi presentare qui' tutti insieme appassionatamente alla mattina per lamentarsi.

CL continua ad incolpare il server vecchio, la cpu scarsa, la memoria carente, il disco latente, la rete bollente, gli zombie... Mentre io rispondo in automatico i vampiri, i mostri aniba ed il tuocodicedemmerda.

Arriviamo a martedi', con i files che sono sempre prodotti a manina con ore di ritardo.

CL - ...quindi continua a non girare senza dare alcun errore ed io sono convinto, convintissimo che e' un problema di CPU, ram, disco, rete, i processi, gli zombie...
IO - ...i vampiri, i mostri aniba, il tuo codicedemmerda!
CL - Ma...
IO - Senti eh, forse sono io che sono un po' troppo rapido, ma .... Giovedi' viene fatto un rilascio in produzione e da quel momento questi files non sono piu' prodotti. Io ci vedo una connessione tra le due cose, tu no?
CL - Te l'ho gia' detto, quella parte non e' stata toccata dal rilascio, ho solo fatto delle modifiche su altre parti.
IO - Lo hai provato in test?
CL - No, perche' dovevo provarlo in test? Non era niente di strano...
IO - Intendo dire, hai provato in test se quei files sono prodotti? Perche' in Test qualunque cagata di tipo 'carico, memoria' e fracazzi non c'e' di sicuro.
CL - Hmmm.. no, non l'ho provato in test.
IO - E non pensi che dovresti provarlo? E magari aggiungere una pletora di logging e debugging semmai?
CL - Ma .... la cpu, gli zombie...
IO - I vampiri, i mostri aniba ILTUOCODICEDEMMERDA!

Cosi', dopo un po' di... incoraggiamento... CL si siede e prova quella roba in test. E con sua sorpresa sorprendente... NON FUNZIONA MANCO IN TEST.

A questo punto comincia a guardare e...

CL - Hu... Devo fare un rilascio in produzione per mettere a posto questa cosa dei files...
IO - Hai capito che roba era.
CL - Si.
IO - .... eeeeh???
CL - Hemmm... c'erano delle modifiche che erano state fatte allo scheduler ma poi non ho mai rilasciato in produzion e... era roba di poco conto e ... insomma...
IO - Te le sei dimenticate e adesso lo scheduler e' introiato.
CL - He...
IO - Quindi che dicevi del processore, gli zombie... I mostri aniba... ediltuodicedemmerda?

Davide
30/01/2019 15:51

Precedente Successivo

I commenti sono aggiunti quando e soprattutto se ho il tempo di guardarli e dopo aver eliminato le cagate, spam, tentativi di phishing et similia. Quindi non trattenete il respiro.

19 messaggi this document does not accept new posts

Messer Franz

Di Messer Franz postato il 01/04/2019 09:29

-Se ne sono andati in 7 su quanti? Per capire meglio la gravità...

-Oltre ai mostri aniba ricordiamo i pockemon di tipo elettrico, che vivono nei gruppi di continuità e mangiano la nostra corrente...

-Onestamente mi ha quasi sorpreso il fatto dello scheduler, mi aspettavo che avesse provato il suo codice con permessi "apertotuttoatutti" e poi il server (chissà come mai) avesse invece dei permessi precisi e gli ridesse in faccia appena cercava di fare qualcosa nel nuovo codice,  non arrivando mai alla parte "creare i file" che magari era sucessiva al blocco...

-- Messer Franz

Davide Bianchi

@ Messer Franz Di Davide Bianchi postato il 01/04/2019 10:02

-Se ne sono andati in 7 su quanti? Per capire meglio la gravità...

7 su "piu' di 7 ma meno di 15".

-- Davide Bianchi

Guido

Di Guido postato il 01/04/2019 09:56

Beh io sono una specie di ibrido tra programmatore e sistemista, e in effetti spesso e volentieri mi ha fatto comodo sapere come funzionano le cose "sotto il cofano". Anche se soffro del tuo stesso problema aka non mi ascoltano...

-- who uses Debian learns Debian but who uses Slackware learns Linux

Anonymous coward

Di Anonymous coward postato il 01/04/2019 10:38

Come programmatotoro, so che "quella parte non è stata toccata" è una affermazione piuttosto azzardata anche conoscendo molto bene il codice e avendo fatto un ragionevole numeto di prove su un buon ambiente di test il più possibile vicino al quello di produzione.

E quindi se viene usata in un contesto in cui entrambe queste premesse sono false, è un buon indicatore di trotismo.

-- Anonymous coward

Anonymous coward

Di Anonymous coward postato il 01/04/2019 12:22

" Tutti sono li' che parlano di "Docker" e "Container" e "Kubernetes" "

Stavi origliando le nostre riunioni settimana scorsa e non me ne sono accorto? Condivido tutto, e sono "giovane"... Il che dovrebbe farmi pensare :|

-- Anonymous coward

Thomas

Di Thomas postato il 01/04/2019 16:52

C'è un metodo rapido e abbastanza accurato per riconoscere i programmatori dai programmatroti: blocca l'accesso a stackoverflow e attendi mezz'oretta...

-- Thomas

Anonymous coward

@ Thomas Di Anonymous coward postato il 05/04/2019 12:31

 

C'è un metodo rapido e abbastanza accurato per riconoscere i programmatori dai programmatroti: blocca l'accesso a stackoverflow e attendi mezz'oretta...

OH, c'è sempre Java Ranch oppure devi sperare che chi ha fatto le librerie che usi abbia fatto buona documentazione. Sun/Oracle è decente, così come Apache, altre librerie sono un pochetto boh.

 

 

-- Anonymous coward

Emi_ska

Di Emi_ska postato il 01/04/2019 18:18

Io mi sento un po' programmatroto, nel senso che e' da poco che faccio questo lavoro. ho 39 anni e fino a 5 anni fa facevo tutt'altro (avevo uno studio di registrazione e montavo impianti per concerti)... Poi la crisi, Poco lavoro, quindi ho dovuto reinventarmi. Ho studiato come sistemista linux (rhcsa) ed ora mi ritrovo ad essere sviluppatore.

Secondo me l'importante e' non chiudersi in una categoria e continuare a studiare sia come programmatroto che come sistemistroto... Devo dire che questo sito mi ha aiutato molto a crescere. Leggendo le storie ho cercato su google tutto cio' che non conoscevo ed ho imparato tanto.

Grazie Davide, per le storie, gli articoli e per questo sito!!!

Emi_ska

-- Emi_ska

Lazza

Di Lazza postato il 02/04/2019 01:07

Tu li chiami "programmatroti", io li chiamo "self taught programmers". :P E la gente si incavola pure se dico che gli sviluppatori software dovrebbero essere laureati e competenti  (saper progettare un DB relazionale è il minimo minimo, ma c'è anche molto altro) mentre i programmatori dovrebbero almeno aver studiato programmazione, per es. in un istituto tecnico o facendo dei corsi seri, non bootcamp di 2 settimane.



Però non ho capito una cosa, questo era un programmatore... ma non avevano nessuno sviluppatore software che progettasse e coordinasse il tutto?

-- Lazza

Davide Bianchi

@ Lazza Di Davide Bianchi postato il 02/04/2019 07:53

Tu li chiami "programmatroti", io li chiamo "self taught programmers".

Dissento. Io sono un "self-taught", ma c'e' una differenza tra il programmare e fare copia-incolla da codice trovato su internet.

Però non ho capito una cosa, questo era un programmatore... ma non avevano nessuno sviluppatore software che progettasse e coordinasse il tutto?

Se hai letto, i due Project Manager ed il CTO se ne erano appena andati, e questi erano quelli che dovevano coordinare.

 

 

 

-- Davide Bianchi

Guido

@ Davide Bianchi Di Guido postato il 04/04/2019 07:23

 ma c'e' una differenza tra il programmare e fare copia-incolla da codice trovato su internet.

Hai appena descritto $RESPONSABILE (aka $CAPA). Non ti devo dire la qualita' del codice che scrive o la sua comprensione dello stesso vero?

-- who uses Debian learns Debian but who uses Slackware learns Linux

Davide Bianchi

@ Guido Di Davide Bianchi postato il 04/04/2019 08:34

Hai appena descritto $RESPONSABILE (aka $CAPA). Non ti devo dire la qualita' del codice che scrive o la sua comprensione dello stesso vero?

La qualita' e' quella del codice che trovi su stackoverflow (che va da "quasi passabile" a "fa cagare a spruzzo"), la sua comprensione... non farmi ridere dai.

 

-- Davide Bianchi

Guido

@ Davide Bianchi Di Guido postato il 04/04/2019 11:28

La qualita' e' quella del codice che trovi su stackoverflow (che va da "quasi passabile" a "fa cagare a spruzzo"), la sua comprensione... non farmi ridere dai.

Beh ma se non sai distinguere la m...a dalle patatine fritte sai com'e'. Mi verrebbe da ridere anche a me se non fosse che e' la mia capa e ragiona cosi' se per (tuo) sbaglio non conosci qualcosa

 

 

-- who uses Debian learns Debian but who uses Slackware learns Linux

Anonymous coward

@ Lazza Di Anonymous coward postato il 02/04/2019 10:16

Tu li chiami "programmatroti", io li chiamo "self taught programmers". :P E la gente si incavola pure se dico che gli sviluppatori software dovrebbero essere laureati e competenti  (saper progettare un DB relazionale è il minimo minimo, ma c'è anche molto altro)

---------------

aehm... tutto giusto, il fatto e' che quella gente li' dovrebbe esere pure adeguatamente pagata... e invece quando ti chiamano (perche' "abbiamo avuto problemi col consulente di prima" = lo pagavano meno della signora delle pulizie) e ti fanno vedere con orgoglio il loro server, ti ritrovi davanti un minitower (DESKTOP MINITOWER), per la precisione, con:

A. polvere... TANTA polvere.

B. un solo disco (pero' e' grosso, eh, 1TB.)

C. una versione (piratata) di windows

D. niente unita' di backup (perche' "non abbiamo mai avuto problemi")

E. il loro superfigo sistema di gestione (un miscuglio di fogli excel, programma fatto in Visual basic e altri accrocchi per incollare il tutto).

Taccio sulla lentezza della rete (youtube/facebook a palla)

Quando va bene il server e' in uno stanzino separato, quando va meno bene e' nel magazzino degli attrezzi, quando va malino nell'altibagno, quando va male e' in un angolo dell'ufficio coperto da un cartone scocciato a cubo ("perche la ventola dell'alimentantore ormai e' in fin di vita e fa rumore")

Ovvimante ti chiedono di "dare una sistemata" cosa che implica l'intero rifacimento della struttura di rete, la riscirttura del loro superfigo sitema di gestione, l'aggiornamento dei 6 pc di capo/segretaria/impiegati, l'implementazione di un sistema di backup, filtri di accesso a internet, ecc ecc.

Nota positiva: "prenditi tutto il tempo che serve".

Nota negativa: non ti pago piu' della donna delle pulizie, e comunque abbiamo un budget per questo lavoro di 800 massimo massimo 900 Euro, quindi stacci dentro, cavoli tuoi se impieghi una settimana o 4 mesi... Vanno bene? Se no, ho il nipote di mia cugina: giovane ma sveglio, sai, ha un MacBook...

-- Anonymous coward

Thomas

@ Anonymous coward Di Thomas postato il 02/04/2019 15:24

<blockquote>ti fanno vedere con orgoglio il loro server, ti ritrovi davanti un minitower (DESKTOP MINITOWER) [...] quando va malino nell'altibagno </blockquote>



Hai appena descritto quasi perfettamente un mio ex posto di lavoro; le uniche differenze sono che il "server" era un tower standard e che la locazione non era l'antibagno ma il bagno vero e proprio (il wannabe-rack era esattamente a metà strada tra i lavandini e il gabinetto).

-- Thomas

Torotok

@ Thomas Di Torotok postato il 03/04/2019 10:20

Hai appena descritto quasi perfettamente un mio ex posto di lavoro; le uniche differenze sono che il "server" era un tower standard e che la locazione non era l'antibagno ma il bagno vero e proprio (il wannabe-rack era esattamente a metà strada tra i lavandini e il gabinetto).

 

 

Quindi il sistemista aveva eletto il, ahem, "trono" come sua postazione di lavoro? :D

-- Torotok

Davide Bianchi

@ Torotok Di Davide Bianchi postato il 03/04/2019 10:26

Quindi il sistemista aveva eletto il, ahem, "trono" come sua postazione di lavoro? :D

Be', quando il lavoro e' demmerda...

 

-- Davide Bianchi

Anonymous coward

Di Anonymous coward postato il 02/04/2019 09:56

A. il povero CL non e' stato "l'ottavo dei sette" indice del fatto che non ha "mercato": quindi e' rimasto perche' non se lo sarebbe pigliato nessun altro.

B. ritrovarsi a mettere le mani nel codice scritto da altri e', a livello di sofferenza, tra una riunione di condominio e mettere entrambi le mani in una pentola di acqua bollente.

C. ritrovarsi con gente che ti fiata sul collo (leggi: siamo in "emergenza emergenziale emergente") a causa di colpe altrui (leggi: se ne sono andati via in sette e il padulo e' volato automaticamente in qlo a me) porta a scelte disperate e illogiche (leggi: non c'e' tempo, quindi non faccio il backup delle varie modifiche, con conseguente impossibilità di roll-back a "prima", "prima prima", "prima prima -1", non faccio log perche' non c'e tempo, e sempre perche' non c'e' tempo, lavoro sul sistema di produzione, oltr al afatto che, per risparmiare, hanno spento il sistema di test.)

A + B + C = K, dove "K" sta per "KABOOM"

Sono stato lambito da questo tipo di scenario per tre volte e la visione del CL di turno era straziante.

Certo che tu, BD, hai gioco facile contro questi CL, sembri quasi Godzilla contro una scuola di bambini orfani, e zoppi (cosi' fanno pure fatica a scappare)... e chi vuoi che vinca la sfida? indovina un po'.

A proposito, mi sembra che non tiri una aria troppo buona, BD... Aggiornatina al CV?

Ah, la citazione dei mostri aniba... eh, si vede che sei dei "nostri", gli ormai 50enni... ma ve la ricordate Miwa? caschetto, tutina, minigonna, coscia generosa e stivali? A quei tempi non ci pensavo, ma qualche anno dopo, la sola cosa che mi sarebbe interessata era piegarla a pancia in giu' su un tavolo e lavorarmela ben bene da dietro... voi no?

-- Anonymous coward

Anonymous coward

@ Anonymous coward Di Anonymous coward postato il 21/04/2019 19:04

 

<i>Ah, la citazione dei mostri aniba... eh, si vede che sei dei "nostri", gli ormai 50enni... ma ve la ricordate Miwa? caschetto, tutina, minigonna, coscia generosa e stivali? A quei tempi non ci pensavo, ma qualche anno dopo, la sola cosa che mi sarebbe interessata era piegarla a pancia in giu' su un tavolo e lavorarmela ben bene da dietro... voi no?</i>

Fratellooo!!! :D

-- Anonymous coward

19 messaggi this document does not accept new posts

Precedente Successivo


Il presente sito e' frutto del sudore della mia fronte (e delle mie dita), se siete interessati a ripubblicare uno degli articoli, documenti o qualunque altra cosa presente in questo sito per cortesia datemene comunicazione (o all'autore dell'articolo se non sono io), cosi' il giorno che faccio delle aggiunte potro' avvisarvi e magari mandarvi il testo aggiornato.


Questo sito era composto con VIM, ora e' composto con VIM ed il famosissimo CMS FdT.

Questo sito non e' ottimizzato per la visione con nessun browser particolare, ne' richiede l'uso di font particolari o risoluzioni speciali. Siete liberi di vederlo come vi pare e piace, o come disse qualcuno: "Finalmente uno dei POCHI siti che ancora funzionano con IE5 dentro Windows 3.1".

Web Interoperability Pleadge Support This Project
Powered By Gojira