Tomcat, VirtualBox, Systemd enter in a bar

This Friday I’ve seen Tomcat, VirtualBox and Systemd entering in a bar.

Let’s continue here in CC BY-SA:
Tomcat unable to execute VBoxManage: NS_ERROR_FAILURE (0x80004005)

Do not ask me why a Java application was issuing VirtualBox commands. It’s too painful to remember certain things. In any case, there is no reason in the world why it shouldn’t work. Or maybe one. Anyway I’ve learned more about Systemd silly features and that day was awesome.

Import huge iCloud calendars into nextCloud (without explosions)

Three weeks ago I received an URL of a really big iCloud shared calendar.

(Having said I’ve nothing against an iCloud shared calendar. If I can use free software to access it, that’s fine.)

So I tried importing that URL into my nextCloud instance.

So I caused very long time of CPU consumption and nextCloud explosions.

Allowed memory size of 1048576000 bytes exhausted

Long story short. iCloud takes six (6!) seconds to generate that huge document; nextCloud invests too much resources in parsing that wall of data.

Now. You can surely increase your limits… but it’s not a good idea to allow a spike of GBs of RAM and seconds and seconds of userspace CPU consumption just to see 50 fresh events, together with 500k legacy events. asd

Also because if you need to stay in sync you have to repeat this operation every some minute.

In order not to blow up my server and not slow down my computers and my LineageOS phone and to save electricity from Apple (which I think does a lot of calculations as well… asd) I wrote a script that orders my server to:

  1. download that shared calendar from iCloud (this takes at least 6 seconds asd)
  2. parse the content
  3. filter by creation date or last modification (sometimes the creation date is missing – asd)
  4. discard the appointments older than 6 months
  5. reconsolidate the remaining events
  6. save the result
  7. expose this last clean calendar to my nextCloud via HTTP

A daemon goes through this preparation process every 20 minutes. At the end I obtain a lightweight and fast resource to be scan by nextCloud whenever it wants, even every second.

Long story short:

  • Apple is happy
  • I’m happy
  • my nextCloud is happy

If you need that script:

https://gitpull.it/source/webcal-cleaner/

https://github.com/valerio-bozzolan/webcal-cleaner/

Manifesto SPID

Il mio manifesto su SPID.

SI RICHIEDE CHE
L’adozione di SPID, se obbligatoria, IN NESSUN MODO costringa ALCUN
service provider (e.g. anagrafe, università, biblioteca, sito, ecc.) a SOSTITUIRE INTERAMENTE i propri sistemi di autenticazione.

Tale requisito è per permettere che si possa far adottare SPID in serenità per dare un servizio aggiuntivo al cittadino SENZA IN ALCUN MODO SCAVALCARE completamente l’autonomia digitale del service provider e, di conseguenza, del cittadino, che potrebbe non essere affatto interessato a centralizzare il suo accesso per tale servizio.

In breve:

  • permettere al cittadino di accedere a SPID nella biblioteca: OK
  • permettere al cittadino di decidere se entrare nella biblioteca con SPID o con un altro sistema già in essere nella biblioteca: OK
  • costringere il cittadino ad usare solo SPID per l’accesso alla biblioteca: NO!
  • costringere la biblioteca a rinunciare al suo sistema di autenticazione: NO!

P.S.

“Biblioteca” è un esempio per qualsiasi service provider possa venirti in mente.

Grant MySQL/MariaDB privileges on all prefixed databases

Here we are, you reached this page while looking for how to grant MySQL/MariaDB privileges on some databases sharing the same table prefix like phabricator_asd, phabricator_lol or mediawiki_asd mediawiki_lol or whatever name prefixed with an underscore and you want to do it in the right way because you remember that something may be not correct in your syntax.

Well:

CREATE DATABASE mediawiki_asd;
CREATE DATABASE mediawiki_lol;

CREATE USER mediawiki_admin@localhost IDENTIFIED BY 'whoooo';

GRANT ALL PRIVILEGES ON `mediawiki\_%`.* TO mediawiki_admin@localhost;

In short you have to adopt \_% remembering to escape your underscores. Why? Because in the GRANT command you should respect the syntax expressed in the MariaDB LIKE specifications and that’s why your damn underscore, without being escaped, is a reserved char meaning whatever single character. The risk of not remembering this, is to forget the underscore escape, allowing all privileges also on unrelated databases like mediawikiasd or mediawikilol etc.
How could you sleep with such unuseful mistake? Uh?

Yep. I’ve written this dummy post because I’m definitely sick of wasting 5 minutes a week looking for this. Hoping to see this post in my DuckDuckGo results soon.

That’s all. asd

Come affrontare un preventivo

I preventivi sono una lotta e uno stress e una fatica immani.

Innanzitutto. Il cliente. Quale hai? L’avrai identificato. C’è quello con mille idee. C’è quello con poco budget. C’è quello con mille idee e zero budget. C’è quello che viene in trionfo, ti fa credere di essere scafato, avere la testa a posto, si presenta col portafoglio (nel senso, magari evita che gli offri te il pranzo), ti spiega dozzine di progetti di millantato successo e poi arriva la fuffa: ti chiede di investire nella sua startup proprietaria rivoluzionaria.

Cosa fare?

Puntualmente dopo aver conosciuto una dozzina di persone troppo simili a questo cliente, persone che hanno perso ogni amico e hanno divorziato o perso tutto e vivono sotto ad un ponte, se hai un minimo di bontà, gli suggerisci di investire i suoi soldi in slot machine, pochi euro alla volta possibilmente, così magari si ritrova con uno Yacht da 60 metri a prenderti in giro o magari finisce come la cruda maggioranza. Il tuo obiettivo deontologico è avvertirlo, nonché, massì, fare del bene e preservare il mondo dalla produzione di vaporware.

La verità è che a volte trattiamo male il cliente proprio perché la regola del “cliente ha sempre ragione” è fuorviante. Al massimo il “cliente ha le sue ottime ragioni”, questo sì. La sua idea quindi non va sostenuta a prescindere ma va analizzata e criticata in maniera costruttiva, per il suo bene, perché devi assumere che sia una persona intelligente e non dica minchiate, semplicemente è lì per chiederti un parere meno banale rispetto a “credi nei tuoi sogni figliuolo”. Ecco il tuo potere. Poterlo informare, dirgli se è una cosa banalotta e fattibile, nella “media dello stupore” e fattibile, rivoluzionaria ma fattibile, o una cosa davvero over-complicated su cui investirebbe solo un pazzo maniaco criminale pieno di risorse a fondo perduto. Il cliente ha bisogno di sentirselo dire. «Guardami negli occhi. Sai che il due per mille di questi progetti, se non sei sufficientemente pazzo e maniaco e pieno di soldi, finiscono nel nuovo cesso del mondo chiamato GitHub, incompleti e con manco più i bot che ti avvertono delle dipendenze piene di falle, talmente hanno pena di questi progetti rivoluzionari mai conclusi in vita terrestre?». A questo punto lui ti potrebbe rispondere: «Esatto amico. Ne sono onorato ed è tutto calcolato. Now take my money.» e siete a posto. Oppure «guarda non mi piace questa energia è vero ad alcuni non va tutto benissimo ma è perché queste persone non credono a sufficienza nei loro sogni proprio come te vedi proprio come te che non farai mai il botto nella vita e non andrai in giro pieno di gente mezza nuda sul ponte della tua nave» a questo punto potresti già levare le tende ma potresti aspettare che dica almeno anche «ecco e se non vuoi raccogliere l’opportunità di investire nella mia ide..» ecco a questo punto, stop. Fermalo. Avvertilo. Auguragli tutta la fortuna possibile ma avvertilo. Fai già sufficiente volontariato alla mensa dei poveri e vorresti evitare che, beh, le vostre strade si re-incontrassero in quel luogo con lui e altre dieci persone che ha coinvolto per l’opportunità di lavorare per lui.

→ Il cliente ha le sue ottime ragioni. Quindi, se si gioca la casa per la sua idea di merda lo devi avvertire, se ci tieni a lui.

→ (Aggiunta rilevante di @quel_tale: «Il cliente ha sempre ragione, ma se ti da solo la graaaande opportunità di lavorare per lui allora non è un cliente e perciò ha torto a prescindere. asd)

Cose da evitare? Affezionarsi al progetto del cliente. Arrivi al punto che vorresti dargli la base missilistica che merita perché ti piace vederlo felice e giocare coi suoi giocattoli, ma puoi farlo solo se lo fai di nascosto altrimenti se chiedi più soldi per coprire i tuoi interventi il cliente cambia sviluppatore o cambia giocattoli e te non ti diverti più.

Cose da evitare? Lavorare a qualsiasi costo. Devi entrare nell’ottica che le società delle patatine andranno al ribasso, sempre, e proporranno un prezzo stracciato realizzando una soluzione mediocre che fra una manciata di mesi dovrà essere riscritta da capo quando ci sarà da aggiungere un’altra pezza o da aggiornare qualcosa, a quel punto si tireranno indietro o faranno altri preventivi altissimi, però nel frattempo sarà qualcosa che farà comunque contento il cliente finchè non scopre l’incastro. Quindi cavalca il tuo punto di forza: puoi lavorare come uno schiavo al minimo del budget e al minimo della qualità patatine way? Oppure puoi fare una cosa che non farebbe nessuno, con fiocchi e nastrini, al massimo della qualità che merita il cliente? Oppure una via di mezzo? Magari, ecco, evitare di presentare con fiocchi e nastrini la tua patatine way.

Specifiche. Quel cliente che dice sempre “il sito” riferendosi quasi sempre a “quella vetrina su cui vengono mostrate delle cose carine”. Il problema è che di quella cosa sembra ci vogliano un paio d’ore di lavoro. Poi ogni tanto chiedi qualche dettaglio e ti conferma che con “il sito” in realtà intende “la mia base missilistica nascosta dietro a quella vetrina carina intasata di mille milioni di funzionalità che voglio solo io… sì insomma il sito no?”.

Questa cosa mi fa sempre molta tenerezza. Perché lo capisco. Una volta ho detto a mio papà sulla spiaggia che avevo capito come si realizzava un teletrasporto. «Sì vedi papà (disegnando cose sulla sabbia) basta solo smolecolare e incanalare tutto e mandarlo da un’altra parte del mondo e riattaccare tutte le cellule al loro posto in ordine e basta vedi?» e lui rideva e proprio mi sfuggiva cosa ci fosse di così complicato. Forse credevo che avessimo sufficiente tecnologia? Sì. Forse credevo che la mia idea non ce l’avesse avuta nessuno? Sì. Forse avrei persino fatto firmare una non-disclosure agreement a mio padre prima di dirgli la mia idea del secolo? Sì. Forse avrei persino chiesto ad altre 20 persone di lavorarci a gratis per poi vivere di rendita per l’eternità? Sì. Forse ero un completo idiota? Sì.

Ah e mai pubblicare un post in cui scherzi su queste cose. Concludi sempre con un po’ di sana auto-ironia così almeno ridete tutti davanti ad una fetta di pizza. Pizza che tanto offrirai te, si sa.

NOTA: Si fa per ridere. Potrei mentire e dire che questo articolo non si riferisce a nessuno in particolare oppure potrei dire la verità ancora più divertente: siamo tutti un po’ clienti.

Due pezzi di noce

Avviso per i nerd che bazzicano qui ogni tanto: questo post parla d’ammmmorrre ed è taggato pericolo diabete. Sei ancora in tempo per spegnere il calcolatore oppure per cliccare qui e preservare le concentrazioni di glucosio nel tuo sangue.


Ieri mia madre—visibilmente preoccupata per me e per le ultime novità nella mia vita—mi ha preso un attimo da parte e narrato una graziosa parabola sulla ricerca dell’anima gemella e annessi valori. All’incirca:

Nel mondo è pieno di noci spezzate a metà, sparse per il mondo, e bisogna solo ritrovarsi. Sicuro di averla trovata ora?

― madre di boz

Lo potremmo chiamare “il postulato delle noci” e voglio molto bene ai miei genitori e sono felice che spesso mi dicano frasi così strane e spiazzanti. Poi però passa qualche minuto, ti ripeti questa lezione nella mente, cerchi di capire se l’hai capita e ti accorgi che non hai capito una cippa. Oppure forse ti hanno appena supercazzolato! Ah! :)

Due pezzi di una stessa noce avrebbero un incastro perfetto piuttosto evidente ma, nella pratica, quando si sta ancora imparando ad amare o quando si è perdutamente innamorati, non ci si rende conto dei propri incastri. Non ti accorgi—che ne so accidenti—di non essere affatto il suo pezzo di noce ed anzi, non ti accorgeresti nemmeno di essere un pezzo di formaggio. Come cavolo dovresti verificare se una persona è la tua noce?

Ti guardi intorno. Noti che il mondo è pieno di pezzi di noce attaccati con nastro adesivo e apparentemente felici ma pronti ad esplodere e… tu sei fra essi in prima fila. Poi, c’è chi ha fregato il sistema e ha trovato proprio il suo pezzo. Li noti perché di solito sono i più simpatici e meno frustrati e i loro occhi brillano di gioia.

Ebbene, ho appena stravolto la mia vita. Stavo mettendo colla sulla mia gioia credendo fosse normale. Credevo non esistesse altro di più sano. Poi? Alzo la testa e scopro che esiste una persona che già assomiglia in modo dannatamente preciso a quello che voglio, e già ti fa sentire il suo dannato preciso pezzo cercato da vite intere e… cosa cavolo dovete fare?

Come si fa ad accorgersi se la tua noce è proprio là? Beh. Non puoi. Ma penso che se la vedi e se non sei stupido devi proprio romperti di nuovo, disilludere le persone che ti stavano vicino, e lasciarti lo spazio per avvicinarti a quel pezzetto, provare, prendertela per la mano, portarla con te, correre insieme e amarvi con tutti voi stessi finché potete, perché se anche solo potrebbe essere la tua noce sta’ tranquillo che rimpiangerai ogni stupido momento in cui non l’avrai verificato.

Beh. Ecco come sto imparando a verificarlo.

  1. Non puoi trovare la tua noce se non desideri chi sei. Sono sempre stato una persona molto spartana e alla buona. Mi andava bene un po’ tutto. Il problema è se nessuno ti sprona a distinguerti dalla massa, ad avere degli obiettivi, una personalità, … non troverai la tua noce perché ti lascerai trascinare in quello che vogliono gli altri e non sarà mai, mai quello che vuoi. Sai cosa desideri dalla vita? Cosa ti caratterizza? A cosa non sei disposto a rinunciare? Cosa ti fa vivere? Se per qualsiasi stupido motivo non sai rispondere con decisione forse non morirai solo e forse nemmeno rimarrai senza una persona che ti ama ma sta’ tranquillo che se non sai rispondere con decisione a tutte queste domande non troverai la tua noce.
  2. È la tua noce quando vi amate senza nascondere quello che siete. Tutto compreso. Sì. C’è una sottile linea che separa un difetto da una caratteristica. Mettersi le dita nel naso può essere un difetto da poter correggere o nascondere ma… solo voi sapete cosa vi distingue e cosa vi fa vivere e forse non stiamo parlando di oggetti nel naso. Queste dovrebbero essere le cose più belle che avete: voi stessi dovreste essere il centro del vostro rapporto. Ciò che siete non deve essere qualcosa da dissimulare per la paura di annoiare il prossimo o di essere incompresi. Beh, vuoi scoprire se è la tua noce oppure no?
  3. Forse non è la tua noce quando capite che ogni rapporto che avete avuto fino a quel momento non ha più senso. È strano ma è troppo facile dimenticare… ma è la tua noce quando capite che non ci sarà mai più nella vostra vita qualcosa di anche solo altrettanto intenso.
  4. È la tua noce quando ti accorgi che da quel momento vivi la tua vita. Sembra una cosa stupida ma… non sempre viviamo la nostra vita. A volte sorridiamo ad amici, parenti, famigliari. Poi usciamo dalla stanza e riposiamo le guance affaticati, sotto sforzo come a teatro. È facile capire se non è la propria vita ma è difficile rendersi conto che è terribilmente sbagliato pensare di poter vivere una vita così.

Ebbene. Di colpo ho riscoperto quanto è importante che io sia me stesso. Ho scoperto quanto è stupido provare a vivere con chi non vuole tutto te stesso o con chi dovrebbe sforzarsi per amare quello che sei. La differenza fra stare bene insieme ed essere l’uno per l’altro.

Quasi al punto di non ritorno ho capito che la metà di noce c’era e stava da un’altra parte. L’ho conosciuta. L’ho amata e mi sono lasciato amare e in 10 giorni avevo già vissuto 10 anni, e passano ancora e ancora le settimane ed è sempre più intenso e non voglio smettere, perché non ho mai pianto, riso, condiviso, parlato, sussurrato, guardato negli occhi, amato e vissuto così tanto la mia vita. Ho capito che non ci sarà mai null’altro del genere. Tutti 4 i punti insieme.

Beh, certo. È più complicato di così. È più difficile e meno spensierato di così. Se non lo fosse non avrei stravolto così tanto la mia vita; i miei genitori non sarebbero così preoccupati; ora non parleremmo di noci.

Nella mia più inaspettata lucidità, nella mia più faticosa disillusione, dopo tutti i nostri avvertimenti, discorsi complicati e le nostre paure comunicate occhi negli occhi per farci del male subito invece che aspettare sorprese, anche se sembriamo un’anomalia, beh, tutto trova un senso: siamo due di quei rarissimi esempi di gusci di noce incollati senza bisogno di nastro adesivo.

Siamo un po’ anomali? Spero non faticheremo troppo a continuare a spiegare agli altri cosa siamo quando lo chiederanno. Ma in fondo, la risposta è molto semplice ed evidente:

Ti amo io. Mi piace la nostra storia. Sei il mio pezzo di noce.


P.S.
Mi scuso con i lettori abituè. Se avete sofferto vi invito a correre immediatamente a roba da duri, tipo la guida su come ottimizzare WordPress, la guida definitiva!1!