iPhone TPM? Linguaggi interpretati all’arrembaggio!

La voglia è tanta… ma questa cosa del TPM rende mooolto più facile la tattica della “volpe e l’uva”!

Da sviluppatore è proprio inconcepibile avere un oggetto, con un sistema operativo, un SDK, ottima documentazione, e… non poter provare un programma sul MIO dispositivo senza avergli fatto fare una giratina virtuale per prendere una firma a Cupertino (99€/anno per lo scomodo)!!

Poi un pensiero: «Perché mai iPhone è uscito senza Java?»

Ma è facile, perché con Java basta avere una Virtual Machine firmata per far girare tutti i programmi del mondo, e ciao ciao AppStore! Stessa cosa per Python-Ruby-Perl!

Quindi TPM mio caro, non hai un gran futuro! (spero!, non ho indagato a fondo, ma credo che il controllo sia per processo e non per… boh, sul linking dinamico o che sò)

Continue reading

iPhone…

But can I download the SDK and install my own Applications on my iPhone?

No. The free SDK only lets you run applications in the iPhone Simulator.
To install your application on your iPhone, you need to be a $99/year
developer. (per poter uploadare in app store).

Insomma, da bravo sviluppatore non posso proprio tollerare di non poter far girare la MIA applicazione sul MIO cellulare. In questo capisco la radicalità di Stallman nella GPL3, che di fatto impedisce di rilasciare software GPL3 su iPhone.

Per ora, capisco che per molti il commento sia “fanculo la GPL3, c’è la GPL2″, ma spero nella viralità della licenza e che presto il pensiero diventi “fanculo l’iPhone blindato!”.

Però se volete vincerne uno (e farmene vincere uno a me se vincete :P ): Concorso Wikio

Cython rocks

Ho cominciato a lavorare sul serio all’università, in laboratorio si macinano proteine, tante, ed il povero Python non regge il passo.

Durante la sosta forzata mi sono baloccato con OCaml, e devo dire che è un linguaggio interessante, anche se per ora non sono ancora riuscito a realizzare un qualcosa di funzionante :/ !

Uscito da gesso e riabilitazione, ho cominciato a studiare le “nuove” reti neurali (deep neural networks), e ne ho implementata una in poche paginate in Python.

Però la velocità è quella che è… allora è partito il pellegrinaggio:

  1. Ho riscritto il tutto in OCaml, ma c’è un bug che non fa convergere nulla… e non lo trovo!
  2. Ho provato pypy, per vedere se il mio codice era abbastanza RPython… ma non lo era
  3. Ho provato ShedSkin, ma anche per lui il mio codice non era abbastanza statico.

Allora mi sono arreso, l’inferenza ancora non è gratuita, e mi sono “abbassato” a buttare giù tipi e gestire la memoria, in Cython!

Adesso, avendo reimplementato solo la classe Layer, l’apprendimento ha una velocità decente, il codice resta leggibile, non ho “esportato” il bug della versione in OCaml ed ho spazio per ulteriori ottimizzazioni senza perdere le comodità di Python!

Yuppie!