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. »

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. »

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. »

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? »

Flask-MimeRender v0.1.2

Grazie al contributo di Bruno Ripa, la versione 0.1.2 di Flask-MimeRender pubblicata oggi introduce il supporto per codici di stato HTTP arbitrari. Ho colto l’occasione per uniformare il codice sorgente alle direttive PEP8 e per sistemare alcuni dettagli del package PyPI. Vi ricordo che potete contribuire voi stessi al progetto, direttamente su GitHub. »

Sviluppare una RESTful Web API con Python, Flask e MongoDB

EuroPython 2012La scorsa settimana a EuroPython 2012 ho tenuto un talk intitolato Sviluppare una RESTful Web API con Python, Flask e MongoDB. Mi ha fatto piacere riscontrare forte interesse sia per gli aspetti teorici dell’architettura REST che per la loro implementazione pratica con strumenti quali Flask e MongoDB. In entrambe le sessioni inglese e italiana mi sono state rivolte molte domande, sia in occasione delle Q&A plenarie che nei successivi colloqui informali. Parecchi anche i commenti ed i suggerimenti, davvero utili ed apprezzati (a quanto pare non sono l’unico che, forte di un background .NET, ha compiuto o sta per compiere il salto verso Python e il mondo open source).

Soprattutto ho rilevato una forte curiosità su MongoDB, un database non-relazionale verso il quale sembra prevalere un atteggiamento  di generale timidezza: “vorrei ma non oso”, insomma. Per quanto riguarda Flask direi che ormai, nel vasto firmamento dei micro web framework, è una stella che brilla di luce propria.

»

Convertire una data JSON in un oggetto datetime Python

Abbiamo una stringa JSON che contiene una data: fonte = '{"ragione_sociale": "CIR 2000", "aggiornato_il": "Wed, 06 Jun 2012 14:19:53 UTC"}' Vediamo che succede se la convertiamo in un dizionario Python: import simplejson as json json.loads(fonte) {'aggiornato_il': 'Wed, 06 Jun 2012 14:19:53 UTC ', 'ragione_sociale': 'CIR 2000'} Facile, vero? C’è però un piccolo problema: aggiornato_il è ancora una stringa mentre a noi, per poterlo elaborare comodamente, serve un campo datetime. »

Guido van Rossum a EuroPython 2012

ZOMG! Guido Van Rossum the Benevolent Dictator for Life will give a keynote at #europython — Nicola Iarocci (@nicolaiarocci) April 20, 2012 Partenza col botto per EuroPython 2012. I keynote introduttivi saranno tenuti nientemeno che dal creatore stesso del linguaggio, Guido Van Rossum, e da Alex Martelli. Ieri è stato annunciato il programma ufficiale e a quanto pare mi spetta l’inaugurazione della italian track martedì 3 luglio. Il giorno successivo sarò impegnato, ancora di prima mattina, con la versione in lingua inglese del mio talk: »

Speaker a EuroPython 2012

Uh oh, looks like it’s official now. I will be speaking at EuroPython 2012, both english and italian tracks! *cheers* #europython — Nicola Iarocci (@nicolaiarocci) April 13, 2012 EuroPython è la conferenza europea di riferimento per il linguaggio Python. Si terrà anche quest’anno a Firenze, dal 2 al 8 luglio. Sono in programma molti interventi davvero interessanti, cosa che rende ancor più soprendente il fatto che i miei talk siano stati votati così tanto. »

Infografica: PHP vs Ruby vs Python

I linguaggi di programmazione ‘moderni’ a confronto: PHP vs Ruby vs Python. Lo scorso gennaio Udemy ha rilasciato una bella infografica che confronta i tre linguaggi sotto molti aspetti. Ne esce una fotografia secondo me interessante dell’attuale panorama dei linguaggi interpretati:

»

Python per Facebook

Una casa per gli sviluppatori Python che lavorano con Facebook. Gestiamo due repository su GitHub. facebook-sdk, un set di tools essenziali per lavorare con Facebook in Python. django-facebook, un plugin estendibile per costruire siti Django integrati con Facebook. Python per Facebook via @bacchilu »

Flask MimeRender nel Python Package Index (PyPI)

Un appunto veloce per segnalare che Flask MimeRender, il mio strumento RESTful per il rendering basato sul MIME Media-Type delle richieste HTTP (JSON, XML, HTML, ecc.), è ora presente su PyPI, il Python Package Index ufficiale. La pagina ufficiale di Flask MimeRender su PyPI Tutto ciò significa che l’installazione di Flask MimeRender su Windows, OSX e Linux è diventato più semplice: pip install flask-mimerender Codice sorgente e istruzioni sono a vostra disposizione su GitHub, mentre per spiegazione approfondita ed esempio d’uso vi rimando al mio articolo precedente: Una REST API che adatta le sue risposte al MIME Media-Type delle richieste HTTP. »

Una REST API che adatta le sue risposte al MIME Media-Type delle richieste HTTP

Da qualche tempo sto lavorando alla implementazione di una REST API. In linea generale e semplificando, una API è un servizio che espone alcune funzionalità, è accessibile via internet più o meno liberamente ed è, infine, utilizzabile non solo da persone fisiche ma anche e soprattutto da altre applicazioni. Un esempio di API è quella di Facebook, che consente a chiunque di creare applicazioni che interagiscono con gli utenti e le pagine Facebook. Già, se non ci fosse la API non esisterebbero i terribili giochini Facebook…

Una delle specifiche REST più importanti vuole che un servizio RESTful sia in grado di fornire dati in più formati, in modo tale da soddisfare il maggior numero possibile di utenti/applicazioni. Immaginiamo un servizio che fornisce i risultati delle partite del campionato di calcio. Supponiamo che arrivino tre richieste successive per lo stesso risultato: la prima potrebbe chiedere una risposta in formato XML, la seconda in JSON e la terza in HTML. Il  nostro servizio deve rispondere a tutte e tre le richieste, adattando il flusso di dati della risposta al formato di ognuna.

FlaskNel mio caso la API che sto implementando supporta XML, JSON, HTML e testo puro. E’ scritta in Python (ma va!) e si appoggia all’eccellente Flask micro web framework. Per risolvere in maniera elegante il problema delle risposte multi-formato ho deciso di usare i decorator, una delle caratteristiche più interessanti di Python. Dopo un po’ di lavoro in proprio ho scoperto che qualcuno aveva già risolto il problema, per giunta con la stessa tecnica. MimeRender di Martin Blech è un’ottima soluzione, solo che è specifica per web.py (un altro web framework). La mia soluzione non disponeva di alcune opzioni interessanti che MimeRender include; ho deciso allora di scrivere un port di MimeRender per Flask, e di metterlo a disposizione del pubblico.

»

Imparare a Programmare… Pensando da Informatico

Chi mi segue da tempo sa  che l’educazione è un argomento che mi sta particolarmente a cuore ed è forse per questo motivo che spesso le persone mi chiedono consigli su come imparare a programmare. Gli articoli più letti di questo sito sono senz’altro le guide alla programmazione; Impara Python in 10 minuti e la serie sulle Regular Expression sono vere e proprie Hit, ma certo non sono adatte ai principianti. L’ultima mail è di pochi giorni fa: Mirko chiedeva qual’è il modo migliore per avvicinarsi all’affascinante mondo della programmazione.

»

Python nella scuola italiana. Si può.

Mia moglie è docente nel liceo artistico della nostra città. L’anno scorso era coinvolta in un progetto che vedeva studenti e professori impegnati nella progettazione di un monumento da installare nella sede dell’Autorità Portuale.

Il soggetto scelto dal team erano le onde del mare e ben presto si pose il problema di rappresentarle realisticamente. Un insegnate di Matematica suggerì di ricorrere alla teoria dei frattali. Idea brillante che offriva l’opportunità di un approfondimento didattico piuttosto insolito per un liceo artistico.

»

Python Tools per Visual Studio per accedere a Kinect SDK ed Excel via Python

E’ uscita ieri la versione 1.1 Alpha dei Python Tools per Visual Studio, il plug-in open source per programmare in Python con Visual Studio 2010. Migliorie e molte nuove features per la IDE ma la novità più interessante sono senz’altro PyKinect e Pyvot, due librerie che consentono rispettivamente di lavorare col Kinect SDK e di interagire con Excel via Python. PyKinect in azione Per informazioni su Python Tools per Visual Studio date una occhiata a Programmare in Python con Visual Studio 2010 e Python Studio per Visual Studio 1. »

Python per il Web

Python for the Web è una agile guida introduttiva per chi vuole accedere al Web via Python. Vengono presentate tre eccellenti librerie: Requests, simplejson e lxml. La prima consente di interagire facilmente coi siti Web da Python, la seconda serve a processare i flussi JSON e l’ultima è una fantastica risorsa per lo scraping (l’ho usata in un mio progetto, ve la consiglio senz’altro). L’ultimo argomento della guida è la creazione di siti web in Python attraverso il framework Django. »

Python Tools per Visual Studio 1.0

Dopo una breve e brillante Beta, con l’uscita della versione 1.0 il progetto open source Python Tools for Visual Studio entra nel novero delle estensioni ufficiali per Visual Studio 2010. Ne da notizia W. Somasegar sul suo weblog, con un articolo introduttivo in cui ci ricorda le caratteristiche salienti di PTVS: syntax highlighting, refactoring, debugging in tempo reale, interprete Python interattivo integrato e supporto per CPython, IronPython, JPython e PyPy.

»