pabluk's blog... IPv6 ready!
Posts tagged ubuntu
Ubatar and the Ubuntu App Showdown
Jul 8th
The last 3 weeks I was working on developing an application to participate in a contest called Ubuntu App Showdown.
My application is called Ubatar and its main objective is to provide a solution to this idea. Here you can see some videos of the latest version of Ubatar fulfilling its purpose.
During these 3 weeks I learned many things, reading a lot of source code, looking for examples and discussing with other developers.
I can only say that I really enjoyed and was an incredible experience.
Thanks to all the Ubuntu development team and the community at large.
And this is not the end of the project, there are still many things to improve, if you want to help please contact me via this form. Also any questions or suggestions can be sent to Questions for Ubatar in Launchpad.
Le greffon OpenSubtitles de Totem
May 25th
Si vous n’avez pas encore mis à jour votre système Ubuntu vers la dernière version 10.04 « Lucid Lynx » et si vous utilisez le greffon de téléchargement de sous-titres du lecteur vidéo Totem, vous remarquerez que le greffon ne marche plus. Cela est dû à un changement de l’API XML-RPC du site opensubtitles.org.
Mais bon pour le corriger, sans mettre à jour votre système Ubuntu 9.10, vous pouvez ouvrir un terminal et lancez la commande suivante
cd /usr/lib/totem/plugins/opensubtitles/ sudo sed -i 's/www/api/' opensubtitles.py
Ainsi, vous pouvez continuer à télécharger vos sous-titres sans problème.
Metacity Window Buttons
Mar 10th
Una simple herramienta para configurar los botones de Metacity (el window manager del escritorio GNOME).
Si estas usando Ubuntu Karmic Koala y querés configurar los botones para que se vean como en la nueva versión Lucid Lynx. O si usas Lucid Lynx y querés volver la configuración al estilo de Karmic Koala, lo podés hacer sin tener que usar el editor de configuraciones de GNOME (gconf-editor).
Me parece muy bueno el cambio en los botones de las ventanas para la nueva versión de Ubuntu, para hacerlo diferente, único. Costará un poco adaptarse pero es como todo, por eso yo ya cambié el estilo de los botones en mi Karmic
. De todas formas si a alguien no le gusta lo puede cambiar a su gusto, incluso si lo preferís, podés sacar todos los botones de las ventanas
Este es el enlace a la página de descarga.
Y estos son los pasos para descargarlo y ejectuarlo desde una terminal
wget http://launchpad.net/mwbuttons/trunk/v0.2/+download/mwbuttons chmod +x ./mwbuttons
La aplicación esta hosteada en Launchpad y la idea inicial fue solo para probar el módulo gconf de Python y el plugin de Launchpad para Bazaar.
Pimp your GNOME Desktop
Jan 19th
The real title of this post should have been Pimp your Metacity, but not everyone knows that Metacity is the official window manager of GNOME.
This is just a modified version of the default theme in Ubuntu Karmic Koala. The main difference is that the minimize, maximize and close window bottons has been removed. They are only activated by mouseover.
It is useful for users who already know the position of the window buttons in GNOME and all the time use keyboard shortcuts to manage the windows. And especially useful on small screens like netbooks where there is not enough space avaliable to display redundant things.
The Human Simple theme can be downloaded from GNOME-Look http://gnome-look.org/content/show.php?content=118052
ext4 support in Ubuntu Intrepid 8.10
Jul 1st
This is just a simple tip to use ext4 filesystems in Ubuntu Intrepid Ibex 8.10.
In Ubuntu Jaunty ext4 filesystems is fully supported but in Intrepid was in developing.
To use it we must load the module ext4dev
sudo modprobe ext4dev
to check the filesystems supported by the kernel we can do
cat /proc/filesystems
there should be a line with ext4dev.
Now, if we try to mount a formatted partition as ext4, will see that we can not do
sudo dmesg | tail
shows a line that says
EXT4-fs: sda2: not marked OK to use with test code.
to solve it we need to enable test_fs, an extended option for ext4 partitions
sudo tune2fs -E test_fs /dev/sda1
Now, we can mount it without problems
sudo mount -t ext4dev /dev/sda1 /mnt/disk
That’s all folks!
Note 1: replace sda1 by the appropiate device
Note 2: sorry for my english
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
Castellanizando mi teclado!
Oct 31st
Mi eeePC viene con teclado en inglés, lo que no es muy útil para escribir textos en español. Y existen muchas formas y recetas para cambiar la configuración del teclado, entre
algunas está la de ponerlo en español y adivinar de memoria donde esta cada tecla, otros sugieren cambiar las teclas usando xmodmap y creando un archivo .Xmodmap en el home, o editando xorg.conf. Pero la forma más fácil que encontré para hacerlo en Ubuntu con Gnome es ir a Sistema->Preferencias->Teclado y ahí dentro de la solapa Distribuciones, añadir la distribución EEUU y seleccionar como variante Internacional (AltGr dead keys) y voilà! De esta forma ya se pueden agregar, usando la tecla ALT derecha, las vocales acentuadas, la ñ y algunas otras.
Webcam shots and the Picasa Web Data API
Jun 3rd

Hace unos días estuve probando darle algún otro uso a la webcam de mi latop. Y terminé probando esto.
Capturar imágenes con la webcam y enviarlas a un webserver, en este caso como no tengo un hosting ni tengo forma de llegar al puerto 80 de mi router desde internet, se me ocurrió usar la API de Picasa Web para subir las fotos a un álbum desde un script.
Para capturar las imágenes probé varios programas que están en los repos de Ubuntu, pero termine usando fswebcam que no está en los repos, más que nada porque soporta v4l2, que es el driver con el que funciona mi webcam.
Con fswebcam tomo la foto, le seteo el tamaño, un titulo, etc. Y usando curl subo la imagen a un álbum público de Picasa Web. La API de Picasa Web está bastante documentada así que no hubo muchos problemas para hacerlo.
Acá están los scripts para capturar la imagen y para subirla a Picasa Web.
#!/bin/sh
fswebcam --resolution 640x480 --timestamp "%d.%m.%Y %H:%M GMT-03:00" \
--banner-colour "#AA000000" --line-colour "#ff000000" --skip 50 \
--loop 30 --title "PaBLuK" \
--font "/usr/share/fonts/truetype/freefont/FreeSans.ttf:10" \
--exec subirFotoPicasa.sh ~/webcamshots/habitacion.jpg
Con la opción –exec ejecuta el script que sube la imagen después de capturada.
#!/bin/bash
FOTO="/home/pabluk/webcamshots/habitacion.jpg"
AUTHKEY="$(curl --silent https://www.google.com/accounts/ClientLogin \
--data Email=pabluk@gmail.com --data Passwd=eltuyo \
--data accountType=GOOGLE --data source=Google-cURL-Example \
--data service=lh2 | grep Auth)"
FOTOID="$(curl --silent --header "Authorization: GoogleLogin $AUTHKEY" \
"http://picasaweb.google.com/data/feed/api/user/pabluk/album/Webcam?kind=photo" \
| tidy -quiet -xml|grep -A 1 edit-media|grep href| cut -d "'" -f 2)"
curl --silent --request PUT --data-binary "@$FOTO" --header "Content-Type: image/jpg" \
--header "Authorization: GoogleLogin $AUTHKEY" "$FOTOID" | tidy -quiet -xml
En estas líneas se autentifica, toma el id de la imagen dentro del albúm, en mi caso el álbum se llama Webcam, y con la última línea sube y reemplaza la imagen.
Lo bueno:
- No se necesita tener un hosting.
- No me preocupo por el BW consumido, que no es poco.
Lo malo:
- No se puede agregar Javascript o algo para recargar la página de la foto automáticamente desde Picasa Web.
Freedesktop specs y mi patch para Conky
May 17th
Para los que no lo conocen se podría decir que Conky es un monitor de sistema, como gkrellm, nada más que este es un fork de Torsmo. Se lo puede utilizar para monitorear casi cualquier cosa, uso de CPU, memoria, tráfico de red, sockets, disco, mpd, etc. En esta imagen lo que está a la derecha es Conky.
Hasta ahí todo muy bueno pero tengo el problema que si maximizo una aplicación me lo tapa o cuando el window manager mapea una ventana nueva a veces me lo tapa. Y es un perno, al menos para mí.
Para solucionarlo probé cambiando el placement mode de mi window manager a Centered, Random, Smart y nada. Cambiar el tamaño del output device en Compiz tampoco, busqué si había alguna opción para que las ventanas solo se maximizaran hasta un tamaño máximo pero ni ahí. Tampoco era una solución que aparezca siempre encima de todas las ventanas, porque tapa el contenido de la ventana que queda debajo. En internet, incluida la web de Conky, no encontré nada, parece que a nadie le molesta
Después me dí cuenta de que el comportamiento que yo quería es como el de los panels de Gnome, así que fui a ver la fuentes de Conky y para entender un poco tuve que consultar algunas especificaciones de freedesktop.org, en especial esta.
Para bajar las fuentes y poder compilar Conky en Ubuntu hay que poner
sudo apt-get install build-essential sudo apt-get build-dep conky apt-get source conky
Después de un rato entendí que lo que había que hacer es setear una propiedad de la ventana de Conky que se llama _NET_WM_STRUT.
Y bueno con mi conocimiento básico de C hice este patch
--- conky-1.5.1.orig/src/x11.c 2008-03-31 01:56:42.000000000 -0300
+++ conky-1.5.1/src/x11.c 2008-05-17 16:03:21.000000000 -0300
@@ -535,6 +535,38 @@
return (long) color.pixel;
}
+/* Reserve space at the borders of the desktop */
+void set_strut(int window, int x, int y, int w, int h)
+{
+ Atom xa;
+
+ xa = ATOM(_NET_WM_STRUT);
+ if (xa != None) {
+ int left = 0;
+ int right = 0;
+ int top = 0;
+ int bottom = 0;
+
+ if (w < h) {
+ if (x <= display_width / 2) {
+ left = w;
+ } else {
+ right = w;
+ }
+ } else {
+ if (y <= display_height / 2) {
+ top = h;
+ } else {
+ bottom = h;
+ }
+ }
+
+ CARD32 prop[4] = { left, right, top, bottom };
+ XChangeProperty(display, window, xa, XA_CARDINAL, 32,
+ PropModeAppend, (unsigned char *) prop, 4);
+ }
+}
+
void create_gc(void)
{
XGCValues values;
--- conky-1.5.1.orig/src/conky.c 2008-04-01 00:52:20.000000000 -0300
+++ conky-1.5.1/src/conky.c 2008-05-17 14:45:58.000000000 -0300
@@ -7208,6 +7208,7 @@
window.height = text_height + border_margin * 2 + 1;
XResizeWindow(display, window.window, window.width,
window.height);
+ set_strut(window.window, window.x, window.y, window.width, window.height);
if (own_window) {
set_transparent_background(window.window);
}
Con eso funciona y queda solucionado mi problema!
Preview de películas
May 6th
Un programa interesante para hacer un preview de las pelis que uno se baja con su cliente P2P o BitTorrent favorito es DivFix++.
No miré mucho su sitio web pero parece, no sé porque razón, no viene una versión compilada para x86, asi que a compilarla en mi flamante Ubuntu 8.04.
Los fuentes los podemos descargar de la sección Download del sitio.
Necesitamos instalar algunos paquetes para compilarlo
sudo aptitude install build-essential gettext libwxgtk2.8-dev
Una vez instalados los paquetes y descargadas las fuentes hacemos
tar xvjf DivFix++_v0.29-src.tar.bz2 cd DivFix++_v0.29 make
Y listo, opcionalmente podemos mover el binario al directorio bin dentro de nuestro home con
cp DivFix++ ~/bin/
Para usarlo solo tenemos que ejecutar
DivFix++
Desde la interfaz gráfica tenemos que seleccionar un directorio para colocar el archivo generado, también nos pide agregar el archivo que queremos reconstruir y finalmente con Rebuild Index generamos el nuevo video.
También trae algunas opciones interesantes en la línea de comandos para poder ejecutarlo directamente desde nuestro cliente P2P/BitTorrent, las podemos ver con
pabluk@amidala:/~$ DivFix++ --help Usage: DivFix++ [-h] [-nc] [-nk] [-ns] [-o ] -i [-p] [-s] [-e ] -h, --help shows help -nc, --dont_cut_out doesn't cuts out bad parts of file -nk, --dont_keep overwrites original file -ns, --dont_skip_frames doesn't skip unwanted frames -o, --output= output file or directory -i, --input= input file -p, --preview deletes output file after player is closed -s, --skip_fix skips fix process and play file directly if index is available -e, --execute= executes player with output file after fix










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 ;)