Proudly debugging the system since 1981

Mese: Marzo 2020

Tastiera meccanica

E’ un attrezzo che volevo provare da molto tempo, ma visto che la maggior parte della mia attività di scrittura si svolge su un notebook che mi porto in giro, non mi ero mai deciso.

Ora questa lunga permanenza a casa, e un po la noia, mi ha convinto a comprare questo strumento di tortura uditiva per chi mi sta intorno. Si perchè fa un rumore paragonabile ad una vecchia macchina da scrivere.

Però, per il resto, mi chiedo come ho fatto prima di oggi. La scrittura è infinitamente più comoda e piacevole. Come farò a tornare ad usare la tastiera del notebook?

La tastiera scelta è una Ajazz AK33, con layout ridotto (come si vede nella foto), ha un discreto peso, data la struttura metallica e giochi di luci molto vari, non che la cosa mi interessi molto. E inoltre ha il layout americano, cosa estremamente comodo quando si programma. Ecco un po’ meno quando si scrive in italiano ma comunque si può cambiare e anche se quello che è stampato sul tasto non corrisponde a quello che viene scritto non è un problema. Diciamo che il layout italiano lo so a memoria. Un po’ meno quello americano per cui ogni tanto guardo i tasti per sapere cosa scrivere.

Dagli all’untore

Alla primavera non frega nulla dei nostri problemi.

Probabilmente mi ha fatto male rileggere i Promessi Sposi di recente, e constatare che a distanza di 2 secoli dalla scrittura, e 4 dai supposti eventi narrati poco è cambiato. L’unica cosa che vedo di differente è che la Medicina è una scienza un po più matura e che ha dei dati oggettivi da produrre e capacita analitica sul male.

La peste prima è stata sottovalutata e sminuita dalla autorità, poi chi assisteva i malati è stato lasciato a se stesso, poi in tutta fretta si sono individuati luoghi in cui mettere i malati e alla fine molti di quelli che assistevano i malati si sono ammalati a loro volta. Alla fine si è salvato chi è stato isolato e chi fortunatamente ne è uscito con le sue forze. Gran parte degli sforzi tardivi delle autorità hanno fatto più male che bene.

Ma il punto è che la ggente (con due g) ancora cerca l’untore. Per semplicità: avere un nemico visibile ti mette in pace con i tuoi pochi neuroni. Prima il cinese, poi il passeggiatore di cani, ultimamente si è eletto a categoria untrice il runner. Probabilmente non sarà l’ultima categoria. E perché non il corriere o la cassiera? Vedremo. Non sono tempi noiosi.

Solo non affidatevi all’astrologia, e tenete acceso il cervello. Le soluzioni semplici non esistono. Le soluzioni estreme sono sempre un estremo sbaglio.

Vue.js – Primo impatto

Alla fine il tempo è quello che è, anche in quarantena, e non ho visto molto, ma qualche prima impressione posso scriverla.

Aspetti interessanti:

  • Non necessita che tutta l’applicazione sia una SPA. Può esserlo, ma può anche essere una versione ibrida, con html statico o generato server side in alcune parti, e una applicazione Vue.js dove serve più reattività.
  • Non necessita di scaricare mille cose, librerie, dipendenze, compilare, etc … si aggiunge il link al js sulla CDN e si ha tanto pronto.
  • Approccio a componenti, reattività e data binding. Ovvio. Se no tanto valeva usare una tecnologia server side con un pò di jQuery.

Dubbi:

  • Come scala all’aumentare della complessità dell’applicazione? In genere i framework che puntano a facilitare l’ingresso finiscono anche a facilitare lo spaghetti coding all’aumentare della difficoltà del problema che devono risolvere. Ma dovrei vedere qualche lezione in più.

Proxy Dinamico per logging

Può essere necessario loggare tutto ciò che fa una determinata classe che però fa parte di una libreria e non contiene tutti i log desiderati. Supponendo che non sia necessario debuggare la classe in sè, che fa quello che deve fare nel modo giusto, ma come viene utilizzata all’interno del progetto ho trovato che realizzare un proxy dinamico sia una soluzione efficace e molto versatile. Anche perchè fatto uno, va bene per qualsiasi classe.

La classe che andiamo da realizzare fa due cose :

  • implementa InvocationHandler in modo che venga richiamata tutte le volte che viene chiamato un metodo dall’utilizzatore del target da loggare
  • ha un factory method di comodo che crea una nuova istanza di proxy dinamico attaccando se stessa come InvocationHandler

Implementare InvocationHandler significa implementare il metodo invoke:

invoke di fatto richiama il metodo del target e logga nome del metodo, parametri e risultati. Più la gestione delle eccezioni del metodo target e di tutte le altre possibili eccezioni.

Il metodo wrap permette di avere la nostra classe ben wrappata con un solo comando.

Visto che tutto questo mi ha permesso oggi di scoprire un utilizzo un pò insensato dell’accesso ai dati con conseguente lentezza ho pensato di condividerlo.

Correre o non correre

In tempo di NON coprifuoco, con l’Italia NON chiusa ma caldamente invitata ad essere più asociale che mai la corsa, sport solitario che si può praticare in gruppi grandi a piacere, si adattata molto bene.

Quindi si ho deciso che sì: potevo correre, da solo, in periferia, girando molto al largo da sparuti passanti pur rispettando l’essenza di quello che ci viene chiesto di fare e non causando pericolo ne a me ne agli altri.

Lo rifarò a breve.

Perchè?

Contesto: classe Java, framework Wicket (ma non è significativo), IDE Intellij.

Quale sarà mai il motivo percui, un anonimo programmatore che mi ha preceduto, può aver pensato che avesse senso fare un metodo privato, che nel nome richiama l’idea di un factory method, che ritorna un campo della sua stessa classe?

E poi perchè commentarlo con // (5) ?

Continua a leggere

© 2024 b0sh.net

Tema di Anders NorenSu ↑