Ieri sera ho formattato per l'ennesima volta il mio portatile. Dato che avevo un po' di tempo mi sono diverito a scaricare le versioni aggiornate dei vari tool installati precedentemente sul mio notebook. Tra questi ho notato che finalmente py2exe, la libreria per Python che estende distutils permettendo la creazione di eseguibili stand alone partendo da script python, ha introdotto la possibilità  di racchiudere l'intero programma in un unico eseguibile.Dico finalmente perchè sono moltissime le richieste di persone che preferiscono avere il proprio programma compatto in un unico eseguibile piuttosto che distribuito su vari file.Personalmente non trovo geniale l'idea di condensare tutto in un unico file: a parte il fatto che non ne vedo assolutamente il motivo, una soluzione del genere limita la possibilità  di patch o update di piccole dimensioni per i programmi. Rimane comunque il fatto che py2exe è un ottimo tool che facilita la distribuzione dei programmi python in un ambiente (Windows) utilizzato spesso da persone con poche competenze informatiche.

Continua a leggere Buone nuove per py2exe

Categoria: PHP e Open Source

Tags: ,

Da qualche tempo girano sulla rete varie discussioni riguardo l'implementazione della nuova major version di PHP. C'è chi dice verrà sviluppata per compilare bytecode per Parrot, la virtual machine open source che si propone come ottimo sistema con l'obiettivo di far cooperare diversi linguaggi tra loro (l'implementazione standard è per Perl ma c'è chi ha già pensato ad implementare il compilatore per Python).Dato che a pochi eletti è dato sapere cosa accadrà realmente, ci limitiamo a leggere alcuni ragionamenti scovati per la rete: in questa discussione, iniziata da Rasmus Lerdorf un mesetto fa, si parla di quali feature ormai obsolete eliminare in PHP6; anche Marco Tabini ragiona su questo argomento traendo delle interessanti conclusioni. Il problema di tutte queste innovazioni è che, purtroppo, comporteranno l'incompatibilità degli attuali script PHP. C'è da dire che alcune innovazioni, quale il supporto per Unicode, sono necessarie per tenere passo con i concorrenti. Staremo a vedere ...

Continua a leggere Discutendo PHP6

Categoria: PHP e Open Source

CodeFetch

13 Sep

Navigando per la rete ho trovato questo CodeFetch. Il sito permette di effettuare ricerche avanzate sui code snippet che sono stati pubblicati a corredo di vari manuali. Le ricerche effettuate possono essere molto complesse, e possono essere eseguite su moltissimi linguaggi di programmazione differenti tra cui PHP, Perl, Python. L'obiettivo principale del sito è quello di vendere libri, ma il motore di ricerca può sempre fare comodo. Da tenere d'occhio!

Continua a leggere CodeFetch

Categoria: PHP e Open Source

Spesso mi capita di dover testare delle librerie o il funzionamento particolare di alcune funzioni in determinate circostanze. Solitamente creo il mio file PHP e lo faccio eseguire dal mio webserver e poi controllo il risultato. Pratica comune, direi, ma da quando ho iniziato ad utilizzare Python mi trovo spesso a rimpiangere la sua comoda command line.Stamattina, visto che avevo qualche minuto di tempo, mi sono messo con il mio iBook alla mano ed ho creato un semplice script che emula una shell per PHP.Lo script è molto semplice e sfrutta la funzione eval per valutare l'espressione immessa dall'utente. Purtroppo soffre di alcuni problemi (lascio a qualcun altro il compito di risolverli) dovuti al motore di PHP o a piccole inesattezze che possono essere corrette facilmente. La shell accetta in input un'espressione valida PHP, la esegue e restituisce in output il valore restituito dall'espressione. In caso vegano scritti costrutti sintattici particolari, quali classi, cicli, istruzioni condizionali, la shell si occupa di immagazzinare in memoria l'intero blocco di istruzioni e di eseguirlo. La shell indenta automaticamente il codice se trova una parentesi graffa alla fine della riga, quindi è necessario seguire delle semplici regole sintattiche per far funzionare correttamente la shell. Siete liberi di modificare e correggere il codice. (more...)

Continua a leggere Una shell in PHP

Categoria: PHP e Open Source

In questi giorni mi sto occupando di sviluppare l'interfaccia grafica della nuova versione di SEPY, un editor scritto in Python utilizzato per gestire codice AS.All'inizio ho optato per utilizzare nuovamente i widget nativi, dato che la libreria wxPython che utilizziamo per interfacciarci con il GUI Engine del sistema operativo risulta molto comoda in questi casi. Dopo qualche tempo però, ho voluto provare ad implementare manualmente alcuni widget, in modo da fornire loro un aspetto personalizzato ed accattivante.Mi ero preparato a dover affrontare ore di lavoro per risolvere problemi di ogni genere, ed invece ho scoperto che l'obiettivo che mi ero prefissato non era affatto difficile da raggiungere. wxPython fornisce l'oggetto wxDC che può essere utilizzato in diverse situazioni al fine di disegnare immagini, testo e forme geometriche più o meno complesse su una finestra. Combinado questo oggetto con il sistema di eventi della libreria, sviluppare i miei widget è stato quasi un gioco da ragazzi.Ho provato anche a far girare il programma su Linux e Mac OSX: ottimi risultati, omogeneità del layout e nessun errore!All'interno della libreria wxPython è possibile trovare moltissimi esempi di widget personalizzati: wxOGL, libreria di cui recentemente è stato fatto il porting completo in Python, ne è un ottimo esempio. Anche il programma pySketch, incluso nei demo di wxPython, utilizza l'oggetto wxDC e le sue estensioni per visualizzare i disegni fatti dall'utente.L'unica nota dolente è che purtroppo le cose si complicano nel momento in cui si ritiene necessario apportare delle ottimizzazioni al processo di rendering dei widget. Però questa è un'altra storia ...

Continua a leggere Widget personalizzati con wxPython

Categoria: PHP e Open Source

Unicode è un sistema che permette di associare a molti caratteri e simboli un numero univoco indipendente dalla lingua, dalla piattaforma e dall'applicativo. Con il passare degli anni si è affermato come standard e molti linguaggi hanno iniziato ad includerene il supporto nativamente. Si pensi per esempio a Python o a Java che includono un ottimo set di librerie per la gestione unicode.Purtroppo PHP non sembra voler seguire la moda, e continua a gestire le stringhe come se fossero tutte sequenze di caratteri ascii, lasciando all'utente il dovere di implementare sistemi per la gestione di lingue che richiedono charset multibyte. A dir la verità tra le estensioni di PHP troviamo qualche libreria utile per la gestione di queste situazioni (si pensi alla libreria mbstring o al supporto per le librerie iconv), ma spesso gli hoster non ne abilitano il supporto.In molti si sono mossi al fine di convincere il team di sviluppo di PHP ad includere il supporto nativo per unicode, ma a quanto pare l'operazione sembra essere più complicata del previsto e comunque gli sviluppatori sono frenati dai problemi che portò a suo tempo l'implementazione del supporto nativo per unicode in Perl.Fortunatamente qualcosa sembra muoversi all'orizzonte: probabilmente PHP 6 si baserà su Parrot, un'efficiente virtual machine multipiattaforma creata per supportare i moderni linguaggi di scripting. La VM in questione supporta nativamente unicode, quindi molti dei nostri problemi potrebbero risolversi tra qualche anno ...Speriamo che tutto avanzi come previsto, e nel frattempo continuiamo ad occuparci dell'implementazione dei nostri sistemi hand-made per la gestione dello unicode.

Continua a leggere Supporto nativo per Unicode

Categoria: PHP e Open Source