0
Giu 16 2018

OpenWRT/LEDE + extroot in F2FS? Ma anche no

Ho parlato più volte del mio TD-W8970 e ancora più volte di OpenWRT.

Sostanzialmente penso che siano un’accoppiata perfetta e una delle configurazioni dei miei vari dispositivi che mi diano meno da pensare, tuttavia di tanto in tanto ci faccio un po’ di manutenzione e di upgrade e così ho fatto anche di recente.

Negli anni il team di OpenWRT ha fatto un ottimo lavoro e adesso l’upgrade spesso riesce correttamente e ripristina senza problemi la configurazione, al più è necessario reinstallarsi i pacchetti aggiuntivi.

Io non ne uso molti: OpenVPN, DDNS e server UPnP, tuttavia ad un certo punto ho cominciato ad essere a corto di spazio, ho deciso quindi di passare ad una root su chiavetta USB. Anche questa è una cosa che mi piace fare, anche perché oggi le chiavette spesso le regalano come pubblicità; forse il TD-W8970 è stato proprio il primo dispositivo su cui ho fatto questo passaggio. Per questo motivo ho deciso di fare un’installazione pulita, con tanto di formattazione della chiavetta.

Guardando la guida ufficiale, mi sono ricordato di F2FS, quel filesystem creato da Samsung appositamente per le memorie flash e di cui mi ricordo tipicamente soltanto quando ho finito di… [Leggi il resto...]

0
Mag 31 2018

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 :-) .

0
Apr 25 2018

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.

L’unico requisito software è invece un’installazione di Raspbian aggiornata o risalente almeno al 10 Aprile dello scorso anno. In caso… [Leggi il resto...]

0
Mar 31 2018

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… [Leggi il resto...]

0
Feb 26 2018

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.

Il montaggio nella maggior parte dei casi… [Leggi il resto...]