Piero V.

Compara e unisci PDF

I PDF sono dei file molto comodi da leggere, ma possono diventare un inferno da modificare.

Avendo preso l’abitudine di prenderci appunti direttamente sopra, per me diventa un bel problema quando un documento viene aggiornato, così ho deciso di fare un’applicazione web che consenta di compararli visivamente e unirli.

È ancora un po’ un proof of concept. In pratica si basa sul noto PDF.js di Mozilla: lo usa per renderizzare le varie pagine in due canvas affiancati.

La navigazione è basata tutta su JavaScript vanilla, o meglio, su ES6, quindi con i browser moderni funziona, quindi, pur non avendo provato, sono sicuro che non vada su Internet Explorer.

Quindi questo progetto mi ha permesso di mettermi alla prova con JS, per vedere se riesco ancora a fare qualcosa senza jQuery, e mi ha dato modo di imparare un po’ a usare le API HTML5 per il Drag&Drop con i file.

Invece per il drag&drop dell’elenco di pagine che verranno unite mi sono affidato alla libreria html5sortable, che però non ha altre dipendenze. Avevo cominciato a implementare anche quello, però i risultati non erano buoni e la difficoltà parecchia. Quindi per questa cosa ha avuto senso usare una libreria, che peraltro non pesa molto.

Infine, per il lato client, ho usato Bootstrap 4, giusto per dare un po’ di classe al tutto.

Per il lato server ho usato una Servlet Java: pur non piacendomi molto come tecnologia, ha il vantaggio di poter chiamare direttamente l’ottima libreria iText, che è veramente potente e versatile.

L’unico svantaggio è la viralità della sua licenza: Afferro GPL. Mi vedo quindi costretto a rilasciare il lato server sotto questa licenza, invece il lato client, da solo, per quanto mi riguarda, se la Afferro lo concede, lo potete considerare sotto licenza MIT (non sono sicuro sia possibile, però).

Per il momento è ancora allo stato embrionale, soprattutto il codice lato server, quindi per motivazioni di sicurezza non ne faccio il deploy sul mio VPS, però vi lascio volentieri il codice per il download 😊 .

Boot USB su Raspberry Pi 3

Le Raspberry Pi tradizionalmente fanno il boot da schede di memoria, da SD standard con il primo modello, da MicroSD dal secondo modello in avanti.

Questo è uno dei loro peggiori difetti, a mio avviso. Non ho mai provato una grande simpatia per questo tipo di memorie, anzi, le trovo parecchio scomode, perché hanno bisogno di un lettore e talvolta anche di un adattatore, costano più delle chiavette USB, ma soprattutto mi hanno abbandonato, ormai già due volte.

La prima volta decisi di farmene una ragione e comprai un’altra microSD. Adesso, a distanza di un anno, è successo di nuovo, ma questa volta ho scoperto che su Raspberry Pi 3 esiste il boot USB nativo, un po’ come con la Orange Pi Zero.

La liberazione

Purtroppo, per poter abilitare questa funzionalità serve usare un’(ultima) volta una microSD, ma per mia esperienza posso dire che va bene praticamente qualsiasi scheda, anche molto vecchia, non HC e di qualsiasi classe. Infatti io ho usato una vecchia Kingston che sarà di classe -5 😊 . L’unico requesito è la campienza: almeno 2GB. … [Leggi il resto]

Filtri di FlatPress portati in Python

Da un bel po’ di tempo sto pensando di passare ad un sistema in Python per gestire il mio sito.

C’è solo una cosa che mi ferma: quando scrivo un articolo, la maggior parte è scritta in HTML puro, però ci sono anche alcuni tag speciali che usano dei plugin FlatPress ed in generale prima di mandare in output un post ci sono diversi filtri, ereditati da WordPress, che ne modificano il contenuto, abbellendone la tipografia (per esempio cambiando gli apici e le virgolette normali), bilanciando i tag se mi ero dimenticato di farlo etc.

Sono tanti anni che scrivo questo articoli su questo sito e ormai ne ho già accumulato un discreto numero, quindi passarli uno ad uno è un’opzione improponibile. Rimangono le due possibilità di prerenderizzare tutto e portare nel nuovo sistema un codice in puro HTML, oppure portare al nuovo sistema i vecchi filtri. Io ho scelto quest’ultima.

Alla fine FlatPress non ne usa così tanti: di default solo wpautop, wptexturize e conver_chars, che rispettivamente sistemano gli a capo, i break e i paragrafi, sistemano la tipografia e convertono alcune entities. Poi però ci sono anche alcuni plugin, in particolare il BBCode che aiuta davvero molto con l’inserimento delle immagini e la gesione di lightbox. … [Leggi il resto]

Smart plug con Raspberry Pi e Telegram

Recentemente ho lavorato ad un progetto che mette insieme diverse cose che mi piacciono: Telegram, la Raspberry Pi, che insieme possono fornire un’ottima base per creare semplici dispositivi IoT.
In questo caso ho creato una presa intelligente, che può essere accesa e spenta tramite un bot Telegram.

I requisiti sono veramente semplici: di base servono una Raspberry Pi, una scheda con dei relè, delle prese e un po’ di cavi.

Se preferite, potete usare al posto della Raspberry Pi anche altre schede, l’importante è che abbiano un modulo per il GPIO. Per esempio per un altro progetto molto simile io ho usato una Orange Pi Zero, di cui ho già parlato.

Per quanto riguarda i relè, l’importante è che funzionino a 5V, in pratica tutte le schede che funzionano con Arduino vanno bene. Io per esempio ho preso su Aliexpress un paio di schede da 4 relè a meno di 2€ ciascuna. Ce ne sono anche dall’Italia: hanno il vantaggio di arrivare prima, ma costano anche 5 volte tanto.
Questa potrebbe essere l’unica spesa per il progetto, a patto che abbiate già del materiale elettrico di recupero e una Raspberry, almeno questo è stato il mio caso. … [Leggi il resto]

Adwaita+Tango for PuTTY

Recently I have started using PuTTY more and more. It is a very nice program that has lots of features but it has also a big problem: with the default settings, fonts and colors are a bit ugly and in some case the text is even difficult to read.

Luckily PuTTY has lots of customization possibilities. My first idea was to use Solarized (Light), because I use it also on my phone with JuiceSSH and on Gedit. However, almost immediately I realized this problem:

ls using the Solarized Light theme: the image shows that it is difficult to tells directories from files

As you can see, directories, files and links have almost the same color and are very difficult to distinguish. Notice that I have enabled the bold as font, which by default is disabled, otherwise directories and links would have normal weight, and it would be even more difficult to what is what. … [Leggi il resto]