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