Logo Blogo

Python

Kivy ha creato Python for Android, un nuovo ambiente per lo sviluppo

pubblicato da Federico Moretti in: Python Mobile

PythonPython for Android è un nuovo progetto di Kivy, una libreria open source per creare dei programmi sui dispositivi portatili equipaggiati col multi–touch. Questo strumento permette di realizzare delle distribuzioni personalizzate del linguaggio, da utilizzare con le proprie applicazioni. Al momento, funziona esclusivamente con Kivy.

È stato provato soltanto con Ubuntu 11.10 (Oneiric Ocelot): Python for Android non è l’unico progetto per utilizzare il linguaggio nelle applicazioni del sistema operativo di Google. Probabilmente, è il più completo — a patto d’appoggiarsi a Kivy. Tra gli altri è il primo strumento a supportare il bootstrap personalizzato di Python.

Se un fork di Python for Android prevedesse un metodo alternativo per il bootstrap, il progetto potrebbe funzionare a prescindere da Kivy. Allo stato attuale, questo strumento è orientato ad applicazioni che implementino OpenGL ES 2.0, utilizzato – in particolare – nei giochi. È un punto di partenza per “qualcosa” di più ambizioso.

Via | Mathieu Virbel

Calypso, un nuovo server per CalDAV/CardDAV/WebDAV, da Keith Packard

pubblicato da Federico Moretti in: Python Server

Distributed Authoring and Versioning (DAV)Calypso è un nuovo calendar server, concepito da Keith Packard, che supporta CalDAV/CardDav su Linux e Android. Derivato da Radicale – del quale condivide la licenza, GPLv3 – è essenzialmente un tentativo di sostituire la gestione delle attività e dei contatti sugli smartphone. Un modo per avere il controllo totale dei propri dati.

È scritto in Python come Radicale. Packard non considera ancora Calypso un prodotto a sé. Piuttosto, è un’estensione di Radicale che prevede il supporto aggiuntivo di CardDAV e WebDAV. Al contrario di Radicale, al momento Calypso non è in grado di gestire i calendari generati con aCal: quest’ultimo è un client di CalDAV per Android.

La nascita di Calypso è dovuta a una lunga esperienza di Packard coi calendar server degli smartphone più recenti. Iniziata con SyncML per Linux su Nokia S40 e N900, l’avventura di Packard è continuata su webOS. Essendo incerto il futuro del sistema operativo di HP, Calypso è, invece, orientato ad Android: una scelta comprensibile.

Continua a leggere: Calypso, un nuovo server per CalDAV/CardDAV/WebDAV, da Keith Packard

EMeSeNe potrà sfruttare il protocollo XMPP di Windows Live Messenger

pubblicato da Federico Moretti in: Python Messaggistica

eXtensible Messaging and Presence Protocol (XMPP)È di particolare attualità il passaggio al protocollo eXtensible Messaging and Presence Protocol (XMPP) da parte di Windows Live Messenger. Riccardo Bortolato, uno sviluppatore di EMeSeNe, ha cominciato a lavorare alla transizione sul client non ufficiale per Linux, Mac OS X e Windows. Non è tanto semplice quanto potrebbe sembrare.

GNOME ha dichiarato di prevedere il supporto di Messenger via XMPP con Empathy 3.4. L’ostacolo – per entrambi – è costituito dalla registrazione su Windows Live con OAuth 2.0: l’autenticazione non avviene con username e password, ma con un token autorizzato da Microsoft. Un po’ come succede per le applicazioni di Facebook o Twitter.

Bortolato non prevede di proseguire in prima persona il lavoro per portare WLM su XMPP: il codice prodotto è servito soltanto ad avere un’idea dell’integrazione con Python. Chi volesse fare altrettanto può sfruttare l’identificativo registrato per EMeSeNe. Prima o poi il passaggio diventerà “mandatorio” e il client dovrà adeguarsi.

Via | EMeSeNe

PyPy arriva alla 1.7, un Python sempre più veloce

pubblicato da Giacomo Picchiarelli in: Open Source Python

PyPy logoRilasciata la versione 1.7 di PyPy. Molte correzioni per questo rilascio e, come al solito, enormi passi avanti dal punto di vista delle prestazioni. PyPy è un interprete e compilatore JIT nato come alternativa all’interprete Python per la versione 2.7.1. Per questa release gli sviluppatori hanno puntato all’ampliamento delle aree che forniranno performance superiori. Un processo che sta portando risultati notevoli.

La riscrittura di un interprete Python non è cosa da poco. Lo sviluppo di PyPy utilizza un approccio per approssimazioni successive: il set di funzioni e librerie implementate con i criteri di efficienza indicati aumenta, seppur lentamente, di versione in versione. Per questa fase si possono registrare miglioramenti, rispetto alla 1.6, che vanno dal 30% con punte del 2.000% (in pratica, 20 volte).

Per una visione più chiara sulla compatibilità fornita è possibile consultare l’apposita sezione del sito degli sviluppatori. Certamente non è possibile utilizzare PyPy con la tranquillità del normale interprete Python: molti comportamenti non sono ancora del tutto aderenti allo standard e ci sono ancora numerosi side-effects che portano l’interprete a comportarsi in maniera lievemente differente da quanto ci si aspetterebbe.

Nonostante tutto, la valenza tecnologia di PyPy è notevole se si pensa che framework complessi come Django vengono eseguiti senza particolari accortezze e che il metro di misurazione sul quale vengono effettuati i test è CPython. C’è da sperare che la crescita di PyPy darà un contributo importante all’espansione di Python.

Via | LWN

Camelot 11.11.16, un framework Python per lo sviluppo RAD

pubblicato da Giacomo Picchiarelli in: Open Source Python

Rilasciata la versione 11.11.16 di Camelot. Questo rilascio introduce un nuovo metodo nella definizione delle azioni, che utilizza il meccanismo degli “iteratori” per comunicare tra il model e la view (GUI). Inoltre sono state implementate la compatibilità con PySide e la creazione ritardata dei widget posizionati su schede, migliorando così le prestazioni per interfacce complesse. Disponibile anche la traduzione in italiano. Finalmente.

Camelot è un framework per lo sviluppo RAD rilasciato sotto due licenze: GPL2 oppure commerciale per progetti in cui le condizioni della GPL non vengono rispettate. Camelot poggia il suo funzionamento, oltre che su Python, anche su Sqlalchemy e Qt. Un progetto di chiara ispirazione Django con una vocazione al data-driven grazie alla presenza di Sqlalchemy.

Sviluppare con Camelot consiste nel definire il modello dei dati per poi, alla maniera Django Admin, gestire le interfacce. La gestione GUI beneficia anche dell’ereditarietà e di un set corposo di elementi grafici complessi che consentono uno sviluppo ad un alto livello di astrazione. L’ideale per chi vuole occuparsi più della logica business che di dettagli tecnici.

La “responsività” viene mantenuta anche nelle elaborazioni con una elevata mole di dati. Scalabilità, che affiancata all’integrazione con i prodotti Microsoft Office, fanno di Camelot un eccellente banco di lavoro per applicazioni enterprise. Un framework da provare assolutamente.

Via | OpenSourcePixels

Qualche benchmark su Vala, dopo la scelta di Canonical per Zeitgeist

pubblicato da Federico Moretti in: Gnome Python

ZeitgeistGli sviluppatori di Canonical e Collabora, i principali sponsor di Zeitgeist, hanno optato di recente per la sostituzione di Python con Vala. Una scelta che non ha fatto discutere soltanto su queste pagine. J. P. Lacerda, coinvolto nel progetto, ha pensato così di ripubblicare alcuni benchmark comparativi sulle prestazioni di Vala.

I risultati, effettivamente, mostrano un discreto boost prestazionale. Tuttavia, il confronto non può essere effettuato con Python: vala-benchmarks, lo strumento utilizzato, paragona il linguaggio a C, C++ e C# (Mono). Per quanto possa convincere, non ha molta attinenza con Zeitgeist. Il miglioramento più evidente è rispetto a Mono.

Lacerda non cita esplicitamente il passaggio a Vala di Zeitgeist, eppure è difficile che si tratti soltanto d’una coincidenza. La scelta di Vala asseconda l’inserimento di ulteriori componenti da GNOME3 in Ubuntu/Oneiric: l’aggiornamento di Zeitgeist, infatti, non sarà disponibile sui rilasci precedenti. Valuteremo i miglioramenti.

Via | J. P. Lacerda

Zeitgeist è stato tradotto in Vala da Python: una scelta discutibile

pubblicato da Federico Moretti in: Gnome Python

ZeitgeistZeitgeist, il logger degli eventi di sistema fortemente voluto da Canonical, è stato tradotto in Vala. La riscrittura coincide con l’esordio della versione 0.9 (attualmente in fase alfa). Finora, Zeitgeist è stato sviluppato in Python: la traduzione comporta tanto una serie di benefici, quanto alcuni bug da risolvere al più presto.

Michal Hruby ha spiegato che il cambiamento comporta una riduzione dei tempi d’avvio di Zeitgeist. Per il resto, il database e la Application Programming Interface (API) per D–Bus sono rimasti invariati. Il nuovo Zeitgeist richiederà soltanto un aggiornamento di GNOME Activity Journal, che risulterebbe compromesso dalla transizione.

Concepito per Unity, Zeitgeist progredisce su GNOME Shell: il passaggio a Vala evidenzia il costante avvicinamento, a livello di codice, tra le interfacce. Tuttavia, la transizione ha corrotto la Full–Text Search (FTS) di Zeitgeist e il porting su KDE non beneficerà dell’utilizzo di Vala. Il linguaggio è una “prerogativa” di GNOME.

Via | Seif Lotfy

GUI Miner, uno strumento open source per guadagnare fondi su BitCoin

pubblicato da Federico Moretti in: Python p2p

BitCoinGUI Miner è un’interfaccia grafica realizzata per il PyOpenCL BitCoin Miner, un’applicazione per guadagnare crediti nella moneta virtuale di BitCoin. Sia la GUI, sia il programma sono open source (e lo è persino il sistema di BitCoin): a dispetto del nome, GUI Miner può utilizzare backend differenti da OpenCL per generare i crediti.

BitCoin è un sistema di micro-pagamenti in valuta virtuale, paragonabile a Flattr, che si basa sul concetto del peer-to-peer. Per ottenere dei crediti esistono sostanzialmente due modalità: l’acquisto con moneta corrente, oppure la generazione attraverso il “mining”, una soluzione che deve il proprio nome all’attività dei minatori.

Non è semplicissimo capire il funzionamento di BitCoin: la valuta cambia di valore un po’ come le azioni in borsa. Il mining per accumulare crediti avviene sfruttando il potere di calcolo dei processori. Oltre a OpenCL su AMD/ATI, GUI Miner supporta CUDA su nVidia: in alternativa sfrutta la CPU. Tutte le opzioni sono configurabili.

Via | MakeUseOf

Zeitgeist s'integra con Tracker, per indicizzare gli eventi di GNOME

pubblicato da Federico Moretti in: Gnome Python

Meta-TrackerZeitgeist propone un altro passo avanti nell’integrazione con GNOME Shell. Sviluppato su Ubuntu e Unity, Zeitgeist progredisce nell’interfaccia predefinita di GNOME: questa volta è stata predisposta l’integrazione con Meta-Tracker, il sistema di ricerca e indicizzazione per il desktop. Non sono state apportate modifiche a Zeitgeist.

La semplice estensione realizzata può funzionare con qualsiasi interfaccia per il desktop: sia Unity, sia GNOME Shell. Lo script è in Python e non interagisce direttamente con le librerie grafiche. Basta scaricarlo e spostarlo nel percorso dove risiedono le estensioni di Zeitgeist. Per Ubuntu è ~/.local/share/zeitgeist/extensions/.

Oltre a Meta-Tracker e Zeitgeist, sul sistema devono essere presenti dei logger, affinché possa avvenire l’indicizzazione degli eventi. Ubuntu ne prevede alcuni sui propri repository, mentre per tutti gli altri i sorgenti si trovano su Launchpad. È necessario riavviare sia Meta-Tracker, sia Zeitgeist perché l’integrazione funzioni.

Via | Seif Lotfy

Singly e The Locker Project sono i progetti futuri di Matt Zimmerman

pubblicato da Federico Moretti in: Python Javascript

SinglySingly è la società cui è approdato Matt Zimmerman, all’indomani dell’abbandono del ruolo di Chief Technical Officer (CTO) di Canonical. Non è tanto la carriera di Zimmerman, quanto il principale progetto della nuova società a destare interesse: The Locker Project è un servizio open source per la gestione dei dati personali sul web.

Il concetto di “locker” è di particolare attualità per la presentazione di Amazon Cloud Player e Google Music Beta. Più in generale, si tratta di una piattaforma per lo storage che permette l’accesso e l’esecuzione remota dei file al proprietario. Ubuntu One Music offre questa possibilità. The Locker Project è in Python su node.JS.

The Locker Project è distribuito sotto licenza BSD e si avvale di TeleHash per l’abilitazione di Application Programming Interface (API) che consentano l’accesso ai file su P2P. Il protocollo è Kademlia, una Distributed Hash Table (DHT) già nota per l’integrazione con aMule. Il trasferimento dei file avviene su UDP con un hash SHA.

Via | Matt Zimmerman