pabluk's blog
Posts tagged PHP
Compilando php-gtk2 en Ubuntu 8.10
Jan 11th
Update! you can read this post translated to English here.
Escribo este post porque compilar PHP-GTK 2 en Ubuntu Intrepid no es tan obvio como debería ser, o al menos como dicen acá.
Descargué la última versión estable de PHP-GTK 2, la 2.0.1 pero al intentar compilarlo tira algunos errores, en LaunchPad hay un reporte sobre este bug. El fix para esto es
cd /usr/share/aclocal cat lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 >> libtool.m4
por un problema con libtool.
El tema es que después de hacer esto tampoco compiló. Se me ocurrió probar la versión del CVS de PHP-GTK pero pasaba el configure pero al hacer make tiraba otros errores.
La solución fue descargar la versión anterior a la estable de PHP-GTK, la 2.0.0. Este es el link para descargarla http://gtk.php.net/do_download.php?download_file=php-gtk-2.0.0.tar.gz
Una vez descargado, solo hay que hacer
./buildconf --with-phpize=/usr/bin/phpize5 ./configure --with-php-config=/usr/bin/php-config5 make sudo make install
Después para poder usarlo hay que crear /etc/php5/conf.d/php_gtk2.ini, con el siguiente contenido
extension=php_gtk2.so
para comprobar si el módulo carga correctamente
php -m|grep php-gtk
y listo, ese fue todo el post dominguero
Another Twitter command-line client
Jun 13th
No sé hasta cuando me va a durar, pero por ahora sigo usando Twitter. El tema o la excusa para escribir este script, es que es un embole tener un browser corriendo solo para ver los updates. Y aprovechando que la API esta por todos lados y no es nada complicado hacerse un cliente en cualquier lenguaje. En este caso lo hice con PHP, si si ya sé que podría haber usado hasta bash y tidy para esto. Pero esto fue lo más rápido que encontré para hacerlo, solo necesitaba PHP para parsear JSON y un poco de PEAR. Twitter también soporta XML, RSS y ATOM.
<?php
include ("HTTP/Request.php");
$user = "pabluk";
$pass = "pass";
$timeline = new HTTP_Request("http://twitter.com/statuses/friends_timeline/" .
$user . ".json");
$timeline->setBasicAuth($user, $pass);
$timeline->sendRequest();
$updates = array_reverse(json_decode($timeline->getResponseBody(), TRUE));
foreach ($updates as $update) {
if ($update['user']['screen_name'] == $user) {
echo "\033[32m" . $update['user']['screen_name'] . ":\33[37m " .
$update['text'] . "\n";
} else {
echo "\033[33m" . $update['user']['screen_name'] . ":\33[37m " .
$update['text'] . "\n";
}
}
?>
Bastante sencillo, muestra el username en color y uso array_reverse() para ordenar los updates en la terminal, así aparecen los más recientes al final.
Lo ejecuto con
pabluk@amidala:~$ php twitter-status.php
Para tenerlo cada tanto actualizado se puede correr con
pabluk@amidala:~$ while : ; do clear ; php twitter-status.php ; sleep 120 ; done
Y por supuesto que también se pueden enviar updates, usando curl
#!/bin/bash
curl -u "pabluk:pass" -d status="$@" \
"http://twitter.com/statuses/update.json" &> /dev/null
y haciendo
pabluk@amidala:~$ twitter-update.sh "fin del post..."
Vim para CakePHP
Apr 8th
Hace un tiempo que me decidí a usar algún framework para PHP, cansado de tener que usar mis libs, que por supuesto estaban lejos de ser perfectas, pero que en su momento me fueron útiles. Terminé elegiendo, por ahora, CakePHP. Es bastante fácil de entender, mucho mas que el framework de Zend y se ajusta a lo que necesito… hacer mucho con poco esfuerzo ![]()
Lo único que me faltaba era decidirme por un IDE o un editor de código, a pesar de los grandes IDE como Eclipse y otros. Me terminé decidiendo por Vim, ya sé que muchos me recordaran que siempre me incliné por Emacs (ping Pepe) pero a pesar de es el mejor editor de texto, creo que Vim gana por su sencillez.
Así que ahora a configurar Vim para hacer más fácil la vida con CakePHP. Lo que voy a mostrar es como agregar el resaltado de sintaxis para los archivos .thtml usados en CakePHP.
Sacado de The Bakery, sitio donde se cocina CakePHP, estan estos sencillos pasos
mkdir ~/.vim vi ~/.vim/filetype.vim
y agregamos esto
" my filetype file
if exists("did_load_filetypes")
finish
endif
augroup filetypedetect
au! BufRead,BufNewFile *.thtml setfiletype html
augroup END
Solo queda guardar, salir y voilà!
Hi! this is my personal web site and weblog about my projects, news related to free and open source software, internet and sometimes about real life ;)