Tales from the Machine Room


Home Page | Comments | Articles | Faq | Documents | Search | Archive | Tales from the Machine Room | Contribute | Set language to:en it | Login/Register


Vampires, Kaiju monsters, YOURSHITTYCODE!

Developers are those weird guys that manipulate esoterich arts and make funny animated puppets appears on the phone screen. At least, this is the 'normal' opinion of about 90% of the users. The remaining 10% thinks they are criminals always trying to steal passwords and moneys  and "hack" into super-secret places to do... don't know really what but must be some sort of evil scheme.

This is what USERS thinks. Of course, if you have a minimal knowledge with the "race" from a sysadmin point of view, you know that there are developers that are, unfortunately, an almost extint race while devePLOPPERS are reproducing faster than rabbits and, despite our best efforts, are getting more and more common in the IT environment.

I shouldn't explain what I mean with "devePLOPPERS", but since I am the one writing this, I'll do anyway.

A devPLOPPER is normally quite young, it has to be because when you get a bit older you start understanding something and that make you somehow less dumb (I didn't say 'smarter') and less prone to sprout bullshit, either that or you are the victim of some 'accident' that remove you from the gene pool in an abrupt way.
Being young unfortunately they suffer of the typical complex of "essential novelty": everything that is "new" is, by definition, wonderful, beautyful, superefficient, fantastic and absolutely NOT like that old fart from last week that obviously was a complete shit, old, dusty and creaking. For example, when presented with the term 'Database' they throw terms like Redis and Mongo those are databases, not that sql-shit-there that are completely useless and always have problems with those "keys" whothefuckcaresaboutkeys, we want NULL all over the place.

For the same reason now PHP is old and dusty while NodeJS is new and marvelous. Everybody is there talking about Kubernetes and Docker and Container and can't even use ssh. Actually they never use ssh, they only use https because it's new. But they have absolutely no clue what is 'tls 1.2' and ask annoied why should they have 'certificates' for the vpn. The vpn is old and dusty they are always wireless...

Devploppers, since are young, are always searching for the new and they never-ever makes mistakes. His code is always perfect and it always works perfectly on his latest macbook. If it doesn't work is time to ask for a new macbook because the old one is obviously defective, must be a problem in the cpu or maybe is the gpu that is not clear what is it and why should be there but that is probably the problem because it doesn't support the latest standard.

And with this, we're going to talk of the devplopper "du jour": CL.

And I have to begin by talking in his favour. Because the situation isn't really CL fault. About a year ago, the 3 SL that were in charge of the whole company reached an inpasse. Two of them were in favour of selling the whole shebang to $enormousretailer while the third one wasn't. But since it was 2 vs 1, he decided that the only option was to sell his partecipation to the other two and move out. The sale was finalized and one of the unexpected results was that we had to use $wehoststuff (of which I've already spoken about). Another unexpected result was that in short time, both the 'product owner' (aka: project managers) for the backend and the frontend of the system left, quickly followed by the CTO, that was also the architect of the whole IT environment, and 7 developers.

This left the 2 SLs, with a huge pile of open positions to fill and a lot of tasks for which there were not enough competent peoples. CL found himself moved from the 'frontend' to the 'backend' for the simple reason that he was the only one with a vague knowledge of the whole thing. Vague. Very vague. Basically none.

And CL is also a devplopper, not a developer. If you show him some code that he doesn't understand, he tend to retreat hissing like a vampire in front of a cross, instead of diving in trying to figure it out.

And yes, the backend code is quite a mess, not that much that you can just toss it out (it's Python, mostly) but it require a lot of maintenance also because the users that are using it require changes and update daily.

CL has also the habit of doing changes directly in production with the justification that "it works on his laptop".

And with this, we talk about last week, when, after repeated requests (and threat) by our finance department, he began working to a series of changes to some function. Changes that were promptly release on production. Strangely enough, nobody started screaming right away like I was expecting.

The next day however, somebody from the Logistic group came to notify us that some sort of 'data export' to our warehouse had failed to produce any data. After some inquiry, I was informed that the backend was producing every day a bunch of files that were then handed out to the warehouse and those files apparently were missing for the previous night.

A quick check told me that the files were actually MIA. So at 9.30, when CL entered the building, he had a welcome committee that was asking for files and answers. The files were easy to produce, the answers not so much.

After a bit of messing around, CL came to me with the view that "the production server is overloaded" a quick check told me that the cpu never get above 20%, "then is a problem with the memory of the system for sure", there are 8 Gb free, "the disk must be full", 40 Gb available, "the processes... the inodes... the network latency... interrupts... zombies...", vampires, Kaiju monsters, yourshittycode...

I send him to check the logs of that piece of crap and after a few hours he came back complaining tha he hasn't found anything. Yes because a decent logging require to think about it and implement it in a decent way, while throwing up everything into a file instead...

A few days passes by and the files keep not being produced. After the second day our Logistic groups came to ask a new "check" to be sure that those files are actually produced and if not, to notify pigs&dogs so everybody can came in early in the morning to complaint about it.

CL keep pointing the finger towards the server, the cpu, the ram, the disk, the network, the zombies... while I keep answering about vampires, Kaiju monsters and his shitty code...

We reach tuesday, with the files that are still produced by hand hours later.

CL - ...and it keeps running without giving any error and I'm convinced that is a problem with the CPU, the ram, disk, network... zombies...
Me - Vampires, Kaiju monster, yourshittycode!
CL - but...
Me - Listen, maybe it's me that jump to conclusions but... On thursday you released a bunch of stuff in production and starting from that very night, that thing began to crash. I see a connection between the two, you don't?
CL - I told you already, that stuff wasn't involved in the changes I released.
Me - Did you checked on test?
CL - No, why should I?
Me - I mean, have you tried in test to run that thing in the scheduler if it does work? Because on test there isn't a problem of 'load/memory' whatever for sure.
CL - Hemmm... no I didn't tried it in test.
Me - And don't you think you should do it? And maybe add a bunch of debug messages?
CL - But... the cpu, the zombies...
Me - The vampires, Kaiju montesrs, youshittycode!

So after a bit of ... encouragment... CL try that stuff in test. And he is astonished that... IT DOESN'T WORK IN TEST EITHER! At this point he start looking and...

CL - Hu... I need to do a release on prod to fix that export problem...
Me - Good, did you understood what was it?
CL - Yes...
Me - ....aaaand?
CL - Well... there were some changes that had been made to the scheduler but weren't release on prod and ... it was some simple stuff and ...
Me - You forgot about them and now the scheduler is fucked.
CL - He...
Me - So when you talked about the cpu, the zombies... Kaiju monsters and yourshittycode...

Davide
30/01/2019 15:51

Previous Next

Comments are added when and more important if I have the time to review them and after removing Spam, Crap, Phishing and the like. So don't hold your breath. And if your comment doesn't appear, is probably becuase it wasn't worth it.

19 messages  this document does not accept new posts

Messer Franz

By Messer Franz posted 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 By Davide Bianchi posted 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

By Guido posted 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

By Anonymous coward posted 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

By Anonymous coward posted 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

By Thomas posted 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 By Anonymous coward posted 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

By Emi_ska posted 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

By Lazza posted 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 By Davide Bianchi posted 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 By Guido posted 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 By Davide Bianchi posted 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 By Guido posted 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 By Anonymous coward posted 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 By Thomas posted 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 By Torotok posted 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 By Davide Bianchi posted 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

By Anonymous coward posted 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 By Anonymous coward posted 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 messages  this document does not accept new posts

Previous Next


This site is made by me with blood, sweat and gunpowder, if you want to republish or redistribute any part of it, please drop me (or the author of the article if is not me) a mail.


This site was composed with VIM, now is composed with VIM and the (in)famous CMS FdT.

This site isn't optimized for vision with any specific browser, nor it requires special fonts or resolution.
You're free to see it as you wish.

Web Interoperability Pleadge Support This Project Powered By Gigan