Gestione degli Eventi in Python

Gli eventi sono molto usati nelle GUI e nelle implementazioni del modello MVC (Model, View, Controller). Un’altra applicazione tipica è nei protocolli di comunicazione, laddove layer di basso livello devono informare quelli più alti quando ci sono dati in ingresso o in uscita. Il linguaggio C# dispone da sempre di una soluzione elegante al problema della gestione degli eventi: il delegato EventHandler. Events è una mia implementazione Python del EventHandler C#. In pratica si tratta di una classe molto leggera che incapsula il cuore del meccanismo di sottoscrizione e gestione degli eventi, e tenta di farlo in maniera “naturale”, sembrando parte integrante del linguaggio Python. ...

March 14, 2013 · Nicola Iarocci

Vi presento Eve il framework per le REST API Web

Lo scorso anno abbiamo lavorato duro per costruirci una RESTful Web API su misura, flessibile e completa. In corso d’opera abbiamo imparato molto sulle migliori pratiche REST, mettendo anche alla frusta le rinomate capacità Web del linguaggio Python. Ad EuroPython 2012 ho poi raccontato la nostra esperienza e condiviso ciò che avevamo imparato. In quell’occasione mi sono reso conto di quanto l’argomento fosse d’attualità, tanto che da quel 4 luglio le slide che avevo preparato (le trovate su Speaker Deck o Slideshare) ed i video su YouTube (italiano; inglese) hanno totalizzato 30mila visite....

January 8, 2013 · Nicola Iarocci

Python ti mette le ali

December 15, 2012 · Nicola Iarocci

Cerberus 0.0.2: tipi di dato personalizzati

Primo aggiornamento per Cerberus, lo strumento per la convalida dei dizionari Python che ho rilasciato qualche tempo fa. Ora è possibile estendere la lista dei tipi di dato da convalidare, aggiungendone di propri. Per esempio nella nostra REST API (che usa Cerberus per la validazione) uso questa tecnica per implementare e convalidare il tipo ObjectId, tipico di MongoDB. I dettagli li trovate nella documentazione.

November 22, 2012 · Nicola Iarocci

Python Tools per Visual Studio 1.5

Seguo il progetto Python Tools per Visual Studio da molto tempo. Python Tools per Visual Studio è un plugin gratuito e open source che trasforma Visual Studio in una IDE per Python. Supporta CPython, IronPython, Intellisense, Debugging, Profiling, Editing, Browsing, REPL Multipli, IPython, Django e Cloud Computing con librerie client per Windows, Linux e OS X (Azure). La versione 1.5, rilasciata oggi, aggiunge supporto per Django, Azure, REPL debugging, Visual Studio 2012 e altro....

November 1, 2012 · Nicola Iarocci

Convalidare un dizionario Python con Cerberus

Da qualche giorno ho rilasciato Cerberus, uno strumento per la convalida dei dizionari Python. Gli passate un dizionario, lui lo confronta con uno schema di convalida e, se c’è qualcosa che non va (per esempio una chiave sconosciuta, oppure un valore di tipo sbagliato), ve lo segnala. Sono due le caratteristiche che rendono Cerberus interessante: è facilmente estensibile (la documentazione include un esempio di estensione del sistema di convalida), e non si blocca sollevando un’eccezione al primo problema riscontrato: gli errori, quando presenti, sono tutti riportati in una lista a fine convalida....

October 16, 2012 · Nicola Iarocci

Decodificare le date in un flusso JSON (Python)

JSON-Datetime permette di decodificare i valori [cci lang=”python” theme=”default”]datetime[/cci] normalmente espressi come stringhe in un flusso JSON. E’ davvero molto semplice, e fa parte della suite strumenti open source che sto sviluppando nel contesto del più ampio progetto RESTful Web API. Del problema della decodifica delle stringhe JSON in valori datetime ho già scritto in passato. Allora proponevo una soluzione algoritmica; ora vi presento un prodotto finito che potete usare nei vostri progetti....

September 10, 2012 · Nicola Iarocci

Pybooks – Le migliori risorse gratuite su Python

PyBooks è un’ottima selezione di risorse gratuite su Python e dintorni. I migliori libri gratuiti su Python sono inclusi, così come alcuni validi tutorial sulle librerie e i framework più diffusi. Il progetto è curato dalle stesse persone che stanno dietro JSBooks, la raccolta di libri JavaScript di cui ho scritto qualche giorno fa. Anche in questo caso è possibile contribuire attivamente segnalando nuove interessanti risorse.

September 4, 2012 · Nicola Iarocci

Imparare Python con Codecademy

Di Codecademy avevo già scritto tempo fa in occasione dei loro primi corsi giocoso-interattivi su HTML, CSS e JavaScript. E’ di ieri l’annuncio del nuovo corso Python per principianti. Se volete rompere il ghiaccio con questo bellissimo linguaggio l’approccio di Codecademy (imparare divertendosi, anche grazie a collaudati meccanismi incentivanti come i punteggi e i trofei) potrebbe fare per voi.

July 31, 2012 · Nicola Iarocci

Analisi delle performance in Python

E’ vero che non tutti i programmi Python richiedono un’analisi rigorosa delle prestazioni, ma è rassicurante sapere che l’ecosistema Python ci mette a disposizione una serie di strumenti a cui possiamo rivolgerci in caso di necessità. Analizzare la performance di un programma significa prima di tutto rispondere a queste quattro semplici domande: Quanto gira veloce? Dove sono i “collli di bottiglia”? Quanta memoria sta utilizzando? Dove occorrono gli spechi di memoria?...

July 25, 2012 · Nicola Iarocci