02.11
Recentemente, per motivi lunghi da spiegare, mi sono trovato alle prese con un Nokia 6600. Ferma restando la mia poca passione per i cellulari di questa marca, mi sono messo a smanettare un po’ con Symbian. Ricordavo che il buon thane mi aveva parlato di un port di Python per Symbian, appunto, e così ho deciso di approfondire il discorso.
Ho scoperto, intanto, che il porting è un progetto ufficiale Nokia, e che il suo utilizzo è molto semplice. Ovviamente, volevo scrivere un programmino per provarlo, ma non avevo molta ispirazione, fino a che non ho trovato sul mio disco un file che mi aveva mandato Tendold di console-tribe.com: si tratta di uno script Lua per PSP, che mostra un po’ dei famosi Chuck Norris facts tanto per far fare due ghignate.
Mi sono subito applicato per convertire la cosa in Python, compito che ha richiesto solo pochi minuti, data la semplicità della cosa, e l’aver copiato pari pari la lista di facts
, e in men che non si dica avevo scritto la mia prima applicazione per Symbian.
Tuttavia, non mi piaceva ancora il fatto che per lanciarla si dovesse entrare nell’interprete Python, e cercarla tra i vari script. Il mio amico Google mi ha poi informato dell’esistenza di py2sisng, versione migliorata del py2sis originale dell’SDK Symbian (Free software roxx) che serve a rendere script Python per Symbian vagamente indipendenti dall’interprete. In realtà, quest’ultimo dev’essere comunque installato sul telefono, ma nulla di più, non bisogna configurare niente. C’è anche un modo per rendere l’applicazione completamente stand-alone, ma, personalmente, preferisco tenere le due cose separate.
Insomma, per tutti i fan di Chuck Norris dotati di un cellulare Nokia, ecco il risultato: CNFacts.
Note:
- Come detto sopra, dovrete installare a parte l’interprete Python, se siete troppo pigri per leggere sopra, potete prenderlo da qui.
- La versione .sis dell’applicazione dovrebbe girare su tutti i telefoni che montano Symbian 2nd edition, ma non ho ben capito come funziona il discorso delle versioni. In ogni caso, nello zip troverete anche il sorgente Python (.py), che potete eventualmente lanciare dall’interprete.
- Il codice è assolutamente Public Domain. Sui facts non mi esprimo: come dicevo, li ho presi da un altro programma, di cui ignoro nome e autore. Se qualcuno li sa, sarò ben lieto di rendere tributo.
- È possibile personalizzare l’elenco dei facts, basta dare un’occhiata allo script con un editor di testo.
- Il makefile serve solo a creare la versione .sis.
Questo link lo butto lì: Nintendo DS / Stackless Python 2.5.
Aggiungo ancora che è possibile aprire una console dell’interprete Python che gira sul cellulare sul PC via Bluetooth, cosa che facilita assai il debugging. Io faccio così:
sukko@unholycathedral ~ $ sudo hciconfig hci0: piscan sukko@unholycathedral ~ $ sdptool add --channel=3 SP Serial Port service registered sukko@unholycathedral ~ $ rfcomm listen /dev/rfcomm2 3 Waiting for connection on channel 3
A questo punto sul cell: Python -> Options -> Bluetooth console, l’rfcomm che abbiamo lasciato in esecuzione sul PC dirà:
Connection from 00:0E:6D:xx:xx:xx to /dev/rfcomm2 Press CTRL-C for hangup
A questo punto basta aprire un qualunque emulatore di terminale e dirgli di connettersi a /dev/rfcomm2, io solitamente uso minicom. Possiamo quindi lanciare qualche comando:
>>> import sys >>> print sys.version 2.2.2 (#0, Jan 10 2007, 11:31:43) [GCC 2.9-psion-98r2 (Symbian build 546)] >>>
Per terminare il tutto, basta premere CTRL+D nel terminale.
Figo, neh?