domenica 31 gennaio 2021

Quando le decisioni sono prese da incompetenti

...e che non ascoltano chi le cose le sa...

Ma andiamo con ordine. Ero ancora presso $ente - per "risolvere" un problema (che francamente non ricordo), l'hosting partner propose di cambiare versione di oracle dalla 10 alla 12.

Studiamo cosa cambia, ci facciamo fare un db di "prova" uguale a quello di collaudo, facciamo tutte le prove che dobbiamo, ci studiamo cosa dobbiamo cambiare, il dialetto per hibernate etc etc... La cosa e' fattibile e lo diciamo alla $capa.

$capa era di quelle persone con un sacco di certificazioni ma nessuna competenza tecnica, pochissima capacita' di ascolto, presunzione di essere un essere semi-divino e soprattutto convinta che gli altri cercassero costantemente di fregarla.

All'epoca il mio suggerimento fu di pianificare questa migrazione, in modo da capire cosa ci fosse tra le nuove features del 12 che non erano sul 10 e che avrebbero potuto venire a nostro pro.

Il db era parecchio grosso (peggiorato dal fatto che qualche genio aveva deciso di usarlo pure come storage di file), tabelle di 100 milioni di righe erano pressoche' normali.
Una feature molto utile del 12 sono le tabelle "partizionabili" - ovvero divise per un certo "criterio". Tipo se le partizioni per anno, puoi fare una select solo sulla partizione dell'anno che ti interessa senza dover per questo cercare su tutta la tabella. Questo riduce la select su un numero di righe molto minore migliorando drasticamente le prestazioni.

Ma ovviamente la $capa decise che avevamo furia e quindi questo passaggio dovesse avvenire a parita' (quindi vanificando il senso del cambio versione) e che eventualmente ci sarebbe stato tempo "dopo" per i miglioramenti.

Dopo. In un ambiente di produzione? Chi si metterebbe a fare certi cambiamenti?

Quindi il cambio versione e' servito sostanzialmente a cambiare versione ma non a migliorare. Perche' gli strumenti messi a disposizione dalla 12 non sono stati usati, e la 12 viene usata come fosse una 10. Prestazioni identiche, problemi non risolti e via.

D'altra parte non dovrebbe stupirmi, quando feci presente il problema di tenere i file su db mi fu risposto "quando non c'e' piu' spazio ne aggiungiamo".
Tipo microsoft insomma...

giovedì 28 gennaio 2021

Domanda ai negazionisti

Allora lasciamo perdere le testimonianze TUTTE concordi dei reduci.

Lasciamo perdere anche quelle dei sovietici (e americani) che hanno liberato i lager e hanno visto e fotografato.

Lasciamo perdere le testimonianze fotografiche di Brasse.

Lasciamo perdere le testimonianze dei Sonderkommando sopravvissuti (Shlomo Venezia per dirne uno)

Lasciamo perdere tutte le costruzioni ritrovate (dei crematori, lager etc).

Lasciamo perdere le testimonianze dei nazi (Hosse p.es).

Ammettiamo che le ceneri ed i reperti ritrovati siano falsi (notare la genialata, ti servono resti umani bruciati per simulare che siano stati bruciati degli umani)...

...ed ammettiamo che per un momento sia tutto falso. Quindi le camere a gas costruite dopo dagli alleati per screditare i nazi, i testimoni in qualche modo "convinti" a fornire una versione concorde (e nessuno che a distanza di 50 anni che parli o che venga fuori la falsificazione ma vabbe'...)

Dicevo, ammettiamo un secondo per ipotesi tutto questo. Ma tutte quelle persone scomparse (dai 3 ai 7 MILIONI) dove CAZZO SONO FINITE????
Prendiamo un numero "mediano" (5 milioni). Su una popolazione come l'italia sono c.ca 1 persona su 10 che scompare nel nulla.
Ti scompare qualcuno che conosci ogni 10 e nessuno si preoccupa dove siano finiti?

5 milioni di persone che nessuno sappia dove sono finite...
...ok...

domenica 24 gennaio 2021

sabato 23 gennaio 2021

Java TelegramBot non risponde

Che maleducato direte voi...

In molto soldoni: voi mandate del testo al bot e succede che il bot non vi caghi nemmeno di pezza.

La prima cosa da verificare e' che al bot il comando arrivi veramente, quindi nel metodo onUpdateReceived ho messo un bel log.info proprio in cima e poi ho aspettato.
Aspettato cosa? Beh ovviamente il problema non si verifica mica sempre...

Questo per essere sicuri di non finire in qualche ramo "morto" (senza risposta) e quindi capire se il problema e' il vostro (o mio nel caso) oppure no.

Appurato che quando non c'era risposta era perche' al bot non arrivava proprio niente (se il problema e' sul vs. codice sistematelo, il mio era a posto) cosa potete fare?

L'unica cosa possibile: cambiare versione di librerie. Nel mio caso ero partito dalla 3.qualcosa e non lo faceva mentre la 4.9.2 si. Era abbastanza palese che se non era il codice eran le librerie (se non e' zuppa e' pan bagnato).

Di solito si va in avanti, ma la 5 e spicci aveva un problemino, hanno cambiato completamente come il bot inoltra i media (da un oggetto SendVideo Sendstocazzo etc) ad InputFile, per carita' piu' generico ma non avevo assolutamente voglia di mettermi a spaccare tutto per qualcosa che sostanzialmente funziona (si ok lo so e' da fare prima o poi, ma non di Sabato).

Quindi? Se non puoi andare avanti vai indietro... La prima versione senza quel bag per me e' stata la 4.8.1 maven update, build deploy. Ed ecco il bot rianimato...

martedì 19 gennaio 2021

Wildfly failed to reinstate timer


L'errore (che poi errore non e' perche' funziona) e' questo: 5:32:09,026 WARN [org.jboss.as.ejb3.timer] (EJB default - 1) WFLYEJB0161: Failed to reinstate timer seguito dal nome del war ed altra roba

A cosa e' dovuto: a dei timer "sporchi" che jboss non riesce a levare (es. il server ve lo siete copiato da un'altra parte, ci ributtate sopra l'applicativo che c'era prima, la deployments viene pulita da eclipse ma il resto no). Quindi ci sono delle istanze pregresse dello stesso timer.

Come si risolve: a server fermo andate nella dir del server quale che sia, standalone => data => timer-service-data ed eliminate tutto quello che c'e' (c'e' una serie di directory che hanno il nome del war.nomedellaclassetimer

riavviate jboss, a posto l'errore non c'e' piu'