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'

martedì 1 dicembre 2020

Blast from the past

Mi e' venuta in mente una vecchia esperienza che risale al lontano 2013...

Avevo trovato lavoro per questa azienda il cui prodotto di punta risaliva agli anni 80 (ma forse anche prima).
Un accrocchione multilinguaggio (tra cui cobol e si mormorava pure Pascal) per la gestione di libri (chi e' stato negli anni 90 in un qualsiasi negozio di libri un po' grosso, si ricordera' i terminali in cui l'operatore "operava" da riga di comando, ecco una roba cosi').

Vennero (e passarono) gli anni 90, vennero gli anni 2000 e i nostri eroi si resero conto che esisteva una cosa "magica" chiamata internet, e che sarebbe stato positivo se il loro sw avesse potuto interagire con esso.

Il che non sarebbe male, se avesse comportato una riscrittura del sw su un linguaggio piu' moderno (e possibilmente anche con concetti piu' moderni).
Invece l'ideona fu di lasciar girare il sw su un "server" e di creare pagine html statiche e agganciare i due con una pletora di batch (come se ci fosse qualcuno seduto alla tastiera). Sorvoliamo su quanto fosse "veloce" questa cosa, inoltre questa configurazione rendeva tutto l'ambiente non aggiornabile.

Che ruolo avevo io in tutto questo? Io avrei dovuto proseguire lo sviluppo di una gallery multimediale in java.
Questa gallery era in ritardo di due anni dalla data prevista, il precedente programmatore (quello che per tutto questo tempo non aveva fatto un emerito), sarebbe andato via 10gg dopo il mio arrivo, e ovviamente non si e' degnato di spiegarmi alcunche'.
Fortunatamente abbandonava lo sviluppo sw per dedicarsi all'attivita' vinicola, almeno li' i ritardi giovano al prodotto.
Inoltre gia' sapevamo che la versione 2.0 di questa gallery sarebbe stato un prodotto open-source (ma allora perche' non passare direttamente alla versione 2 visto che siamo in ritardo clamoroso? Ma da questo orecchio il management non ci sentiva).
Pressioni tutti i giorni perche' il cliente era arrabbiato per il "nostro" ritardo (ue ma farlo presente al genio mio predecessore no? Inoltre se proprio hai furia passiamo alla 2 che si fa sicuramente prima).

Ma la goccia che ha fatto traboccare il vaso e' stato quando ho saputo che pagavano solo me tra tutti i dipendenti perche' ero l'unico in prova. Non ho fatto finire il periodo suddetto e me ne sono scappato a gambe levate...

sabato 14 novembre 2020

HP LaserJet 150nw vedere livelli toner

Una volta il livello di toner veniva "comunicato" direttamente dal driver (che pero' era proprietario, quindi dovevi scaricarti il driver dal sito del produttore,cosa che non erano tutti in grado di fare).

Poi arrivo' linux con i driver "generici" (che funzionavano male ovunque), al che windows non poteva non copiare linux (con il solito immane ritardo), ed ecco arrivare i generici anche su windows.

Quindi adesso il livello del toner (almeno per windows 10, per la stampante nel titolo) non si vede piu'.

Sono andato sul sito dell'hp a vedere cosa dicevano di fare per vedere quanto toner e' rimasto e dove, suggeriscono di installare Hp Smart, di installare la stampante (di nuovo???) e poter vedere i livelli di toner...

Scarico 'sto c@%%0 di sw (eoni per scaricarlo), cerca la stampante (ari-eoni) NON la trova. Ho madonnato un po' poi ho pensato che la stampante era connessa alla rete, e mi son detto vediamo se ha un'interfaccia web.

Ce l'ha. Quindi vi prendete l'ip dalle proprieta' della stampante, mettete quell'ip nel browser e ve lo trovate in prima pagina



Da qui ricavate l'ip



Cosi' e' come si presenta la pagina iniziale (con i livelli di toner in bella vista). Io sto finendo il giallo...
Alla prossima!