19
settembre
2009
0

Symfony e Ajax, finalmente il “cart” anche con jQuery

Ho appena patchato il plugin sfJqueryReloaded (il trunk) per abilitare il supporto a jq_drop_receiving_element(), ultimo tassello mancante per poter riscrivere il tutorial ajax di symfony anche con jQuery.

Potete trovare la demo riscritta in http://cart.demo.keasoft.it/ e la patch (in attesa di approvazione dai lead del plugin) qui jQueryHelper.php.diff

Buon divertimento

27
giugno
2009
2

Aggiornamento del kernel: tutta colpa di initramfs-tools? No di libmtp

Oggi mi sono deciso ad aggiornare il kernel alla 2.6.30 visto che avevo qualche problema di installazione (postinst) con la versione 2.6.29-2. Lanciando apt-get ricevevo questo messaggio

update-initramfs: Generating /boot/initrd.img-2.6.29-2-686
cpio: ./etc/udev/rules.d/libmtp.rules: Cannot stat: No such file or directory
update-initramfs: failed for /boot/initrd.img-2.6.29-2-686
dpkg: il sottoprocesso installed post-installation script ha restituito un codice di errore 1
E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem.

Stessa cosa con il 2.6.30… sigh!
Spulciando nella rete ho trovato un post tra i Debian bug che riportava esattamente lo stesso errore.
L’errore è dovuto ad una coesistenza difficile tra due versioni di libmtp: io avevo installato sia la libmtp5 che la libmtp8. E’ stato sufficiente eliminare la 5 (obsoleta) e tutto si è risolto automagicamente.
Buon upgrade a tutti!

24
maggio
2009
0

Insegnamenti di Rasmus Lerdorf: verificare gli include con PECL/Inclued

Sono stato la settimana scorsa all’ottimo phpday 2009. Uno dei talk che mi ha colpito maggiormente è stato quello si Rasmus, l’inventore del PHP. Veramente ha tenuto due talk, uno sulla storia del php (Welcome) e l’altro, sconvolgente, sull’ottimizzazione (Simple is Hard). Rasmus era piuttosto infervorato sulla questione ottimizzazione, semplicità del codice e conseguente abbandono dei framework.
Ha spiegato alcune tecniche per la verifica dei colli di bottiglia dei siti, sia con benchmark sia con strumenti di diagnostica. Ho provato siege (si scarica e si lancia) e sto provando inclued che essendo un PECL si installa da riga di comando con:

# pecl install inclued

Ma con mia grande sorpresa non si è installato

running: phpize
sh: phpize: command not found
ERROR: `phpize' failed

Grrrrr. Alla ricerca del comando perduto:

# apt-get install php5-dev

Rilanciando il comando, pecl scarica il pacchetto, lo compila e lo installa. Cerca di modificare la configurazione di php.ini senza successo, quindi procedo con inserire la configurazione in /etc/php5/conf.d/inclued.ini

extension=inclued.so
inclued.enabled=1
inclued.dumpdir=/tmp

Fatto, ora inizia il divertimento… ma solo DOPO aver riavviato apache (altrimenti si perdono decine di minuti a chiedersi perchè nonostante gli sforzi /tmp rimane vuota!).
Ricaricando una qualsiasi pagina vengono creati file /tmp/include.XXXXX.1 e a questo punto si possono graficare:

$ php /usr/share/php/gengraph.php -i inclued.27843.1
Written inclued.out.dot...
$ dot -Tpng -o 1.png inclued.out.dot

Ho testato la home page di un’applicazione che sto scrivendo con Symfony 1.2, se volete vedere la devastazione dei risultati guardate l’immagine.

Albero di include/require di un progetto symfony

Albero di include/require di un progetto symfony

13
novembre
2008
0

IPC 2008 Marble game: the solution!

I’m happy to announce that I’ve found the solution! Marble game (only one level) is solved with 30 steps and the program runs only 173734 iterations!!! :P
You can try to decrease the limit (now 30) and reach the solution quickly… but be aware, you may not find the solution at all.

Donwload: marble_game.zip (1.3KB)

$ php marble_game.php
And wait… ;)

2
ottobre
2008
1

Far convivere Symfony 1.0, 1.1 e 1.2

A volte capita di dover far convivere sulla stessa macchina di sviluppo diverse versioni si Symfony. Ci sono diverse soluzioni per poter realizzare il nostro scopo e qui vi esporrò quella che utilizzo più frequentemente.
Presupposto che la maggior parte delle applicazioni siano scritte per SF 1.0 oppure che questo sia già installato via PEAR e presupposto che vogliamo installare anche la 1.1 e la 1.2 sulla stessa macchina, procediamo come segue:

  • installazione di SF 1.0 via PEAR
  • installazione di SF 1.1 e 1.2 via SVN

L’installazione classica di SF da manuale via PEAR è la seguente (la versione corrente è la 1.0.18):

$ pear channel-discover pear.symfony-project.com
$ pear install symfony/symfony-1.0.18

In questo modo quando lanciamo il comando

$ symfony -V

otterremo la versione appena installata

symfony version 1.0.18

Ora procediamo con l’installazione di Symfony 1.1 da SVN: prendendo spunto dal manuale prendiamo la versione corrente, non quella di sviluppo ma quella stabile (ad oggi la 1.1.3).
Prepariamo la directory che ci servirà come deposito di SF 1.1 e 1.2

$ mkdir ~/symfony_rep
$ cd ~/symfony_rep

Ora prendiamo l’ultima release del ramo 1.1

$ svn co http://svn.symfony-project.com/tags/RELEASE_1_1_3
$ ln -s RELEASE_1_1_3 1.1

Facciamo la stessa cosa per la 1.2 (se ne avete bisogno) ma in questo caso non essendo ancora stata rilasciata la stabile dovremmo prendere la versione di sviluppo come da manuale

$ svn co http://svn.symfony-project.com/branches/1.2

Ottimo, abbiamo tutte e tre le versioni installate, ora non ci resta che aggiungere 2 alias per rendere l’utilizzo della versione 1.1 e 1.2 più semplice.

$ alias sf11='~/symfony_rep/1.1/data/bin/symfony'
$ alias sf12='~/symfony_rep/1.2/data/bin/symfony'

Questi alias per comodità potete inserirli nel vostro ~/.bashrc così che siano sempre disponibili ad ogni riavvio (o apertura di nuove shell).
Se tutto è andato bene, digitando i vari sf11 e sf12 doveste ottenere il seguente risultato:

$ sf11 -V
symfony version 1.1.3 (/home/VOSTROUTENTE/symfony_rep/RELEASE_1_1_3/lib)
$ sf12 -V
symfony version 1.2.0-DEV (/home/VOSTROUTENTE/symfony_rep/1.2/lib)

Buon lavoro!

29
settembre
2008
0

Regali di Natale

Se siete in giro e vi volete togliere il pensiero per il mio prossimo regalo di Natale potete essere i primi a regalarmi questo.
Ok dai… potete fare anche una colletta :P

18
settembre
2008
1

Dominio in vendita

Non il mio… ma volevo comprare qualcosa di più simpatico per il mio blog tipo k3a.net
Sono andato a vedere se era libero (povero illuso) e ho trovato che era in vendita da alcuni simpaticoni che hanno monopolizzato una miriade di domini, praticamente tutti i domini con 3 e 4 caratteri sono stati registrati,
Il costo? 175$ !!!
Mi sa che a meno di una vincita al lotto, per il momento ho altro da acquistare… miii 175$ per un dominio…

6
settembre
2008
0

TODO: Tante Originali Decisioni Obsolete

Spulciando nel mio hard disk in cerca di qualcosa da cancellare (lo spazio libero è sempre poco!) mi sono imbattuto in una marea di file “*todo*”: casa_todo, lavoroX_todo, lavoroY_todo, festa_todo, viaggi_todo, echechecchioneso_todo, etc_todo, etc_todo.
Questa miriade di piccoli e preziosi e (quasi tutti) dimenticati file che albergano allegramente nel mio PC, sono il frutto del tentativo più o meno riuscito di organizzare i miei pensieri. Sono tutti file di testo con un semplice elenco, spesso commentato a dovere, dove cercavo di collocare le idee che avrei voluto mettere in pratica nel medio/breve periodo.
Ricordo una frase sentita nel DVD di Revolution OS (si lo ammetto sono stato l’unico a comprarlo in Italia), che diceva verosimilmente: [parlando di laureandi] “… la maggioranza degli studenti finisce per occupare la gran parte del tempo a cercare di diventare più produttiva, se invece lavorassero alla tesi la finirebbero in un giorno”.
Bhe più o meno è quello che ho fatto io (non per la tesi), ho passato gran parte del mio tempo a cercare il modo di essere più produttivo e questi file TODO sono uno dei tentativi.
Come concetto lo uso ancora ma ora i pensieri sono raccolti in pagine ordinate di KJots (alternativa KDE di Tomboy per Gnome).
I file di TODO sul mio HD ora sono decisamente obsoleti ma sono orgoglioso che molte delle cose scritte in quei piccoli scrigni testuali siano state realizzate.

24
agosto
2008
0

Pulire gli arredi dell’acquario

Oggi pomeriggio mi sono dedicato alla pulizia dell’acquario il quale, dopo un mesetto di noncuranza, risultava quasi indecende.
Dopo qualche ricerca infruttuosa sulla pulizia degli arredi, una telefonata a Johnny mi ha chiarito le idee: brusca e acqua fresca!
E’ una della poche volte che il Web mi ha deluso… non ho trovato nessuno che mi indicasse le tecniche di pulizia degli arredi del mio acquario in particolare dei vari sassi che erano pieni di alghe; alghe piccole incastonate nei pori delle rocce.
Volevo prendere la brusca classica di plastica che si utilizza per lavare i panni quando mi sono ricordato di avere forse qualcosa di più incisivo: lo scovolino con setole metalliche!!!
Ha la forma di uno spazzolino da denti, leggermente più grande, con setole metalliche color oro.
Con lo scovolino, acqua e molto olio (di gomito) ho portato allo stato originale (quasi) i miei sassi.
Dopodichè mi sono dedicato alla potatura delle piante (anche loro un po’ annerite dalle alghe): ho disboscato un terzo delle foglie, il risultano non è affato male ;)

Vi riporto il prima e dopo del sasso centrale (particolare)

Arredo prima del trattamento

Arredo prima del trattamento

Arredo dopo il trattamento

Arredo dopo il trattamento

1
agosto
2008
0

digiKam 0.10.0-beta2 per KDE4

Il mio programma preferito di manipolazione/gestione delle foto è finalmente giunto ad una versione usabile.
Ebbene si, nonostante sia una beta con diversi (molti) bug da risolvere va in crash relativamente poco e si possono vedere già una miriade di nuove funzionalità.
Forse la più impressionante per me è stata questa:

Ci pensate di poter disegnare (scarabocchiare) un pezzo di foto e lui ve la trova nella vostra galleria!!!! Spettacolare!!!!

E cosa dire del supporto per il geo-tag delle foto non solo in associazione a GPS ma anche graficamente (tipo Google earth) e soprattutto la ricerca tramite selezione di una zona geografica come da video.

Non vedo l’ora che esca la versione finale… a Natale!!! Nel release plan ci sono un totale di 6 beta e 2 RC