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
Mag 19 2016

vCard Cleaner

Una funzionalità che trovo molto comoda della rubrica Android è la possibilità di poter esportare la rubrica in VCF.

Non so se più per romanticismo o più per fondata paranoia, non voglio salvarla su un servizio cloud come Gmail, però non voglio neanche rischiare di perderla, quindi questi file sono la scelta migliore.

Sul mio vecchio Huawei Y530 andavo abbastanza bene, perché riuscivo a esportare insieme tutti i contatti da un unico provider di rubrica, in particolare dall’archiviazione locale del telefono, possibilità che non ho più trovato nella Cyanogenmod che uso sul mio Oneplus One.

Infatti adesso posso sì decidere che contatti esportare, ma vedo tutti i contatti insieme, compresi i duplicati creati da Telegram e Whatsapp e i contatti di cui ho solo l’indirizzo e-mail su Gmail.

Ho così deciso di fare uno script in Python che ripulisce il file esportato, cancellando i contatti privi di numero telefonico e mette insieme i duplicati. Inoltre se uno stesso numero è ripetuto più di una volta per il contatto, viene tenuto solo una volta.

Lo script potrebbe essere un po’ migliorato, facendo in modo che, per esempio, accetti da argomenti i file da pulire, anziché scriverli nel file stesso.

Come dipendenza ha solo VObject che può essere installata tramite pip oppure tramite altri gestori di pacchetti (è presente, per esempio, nei repository Debian, sotto nome di python-vobject).

Il mio script è rilasciato nel pubblico dominio, invece VObject (almeno al momento di scrittura dell’articolo) è rilasciato sotto licenza Apache 2.0.

Download: vcard_cleaner.py.

0
Nov 17 2014

Python SSH Tunnel Server

SSH tunnels are great!

They allow to bypass firewalls and NAT problems, and you can use as unprivileged user, since you don’t have to install virtual network devices such as TUN or TAP.

Another good reason to chose SSH is that it is a standard protocol, so there are many implementations: OpenSSH on most Unices, PuTTY on Windows and cross platform libraries (Java, Python…).

However there is a great disadvantage: the SSH server. If you have a server you probably already use SSH, therefore you don’t want to share your custom port and grant access to your server, or create accounts to allow it.

A solution could be creating a chroot or something like that, but I wasn’t really confident in it, therefore I looked for an alternative SSH server, and I’ve come up with this library: TunnelServer.

Python already has a brilliant SSH library: Paramiko. It’s very transparent: it manages the packages for you, but you are the one who should manage the rest (login check, shell comunication, PTY allocation…, socket-ssh channel synchronization). That’s great, but sometimes unhandy, so I’ve written this class, which is a middleware: the class user still has to check login, but you don’t have to create… [Leggi il resto...]

0
Mag 08 2014

Download video in streaming flash con Python

Un tempo su Linux si poteva trovare un video guardato in streaming direttamente nella directory /tmp.

In seguito, con degli aggiornamenti, flash scaricava il video sempre lì, ma veniva eliminato, anche se fisicamente presente.

Per ritrovarlo bastava trovare il processo dell’implementazione flash del browser, solitamente con ps aux | grep flash e così si trovavano i possibili pid.

Andando a vedere nella directory /proc/pid/fd, si trovavano tanti link, uno di questi a un file tipo /tmp/Flash.... In seguito si poteva trattare quel link come se fosse un file normale, quindi riprodurlo, passarlo a mencoder o ffmpeg etc… Se volevate copiarlo dovevate aspettare che il browser avesse finito di scaricare il video!

In seguito sembrava essere scomparsa anche questa possibilità, ma oggi mi sono accorto che è tornata, quindi vi lascio un breve file in python che permette di trovare automaticamente i vari file:

[Leggi il resto...]
2
Gen 15 2012

Panda3D: ruotare la telecamera col mouse

Come l’avevo fatto con Blender, ora lo faccio con Panda3D ;)

Dall’hello world della documentazione ufficiale, ho fatto questo script che muove la telecamera col mouse.

In pratica esegue un task - una funzione eseguita ad ogni frame - che controlla la posizione del mouse, la trasforma da radianti a gradi sessagesimali (usati da Panda) e alla rotazione che ha in quel momento la telecamera aggiunte quella ottenuta con la trasformazione. Infine centra il mouse.

Devo ancora capire perché trasformando le coordinate del mouse - il cui intervallo in panda è [-1; 1] - si riesca a ottenere una buona rotazione con Panda, però sembra funzionare bene!

Ecco lo script python:

[Leggi il resto...]