lxmusic in portage

I have just made the initial commit of media-sound/lxmusic , one of the few relatives of the lxde family still missing in Gentoo land.

For everyone who doesn’t know, lxmusic is a very simple frontend for the (in)famous xmms2 which was also recently added into the tree thanks to the effort of many people.

For everyone merging lxmusic who doesn’t want to build dev-libs/boost as a dependency (myself included), make sure to set the -cxx use flag in media-sound/xmms2.

Hi Planet Gentoo!

Well, I am not exactly new in the developer world of Gentoo, to be honest I’ve been a developer for almost a year now.

For all who doesn’t know, I started working at Gentoo  with maintainer-needed packages, but I started helping treecleaners and get so much interest in LXDE, as I use it in my netbook.

Lately, I’ve been working with Samba, which has been mostly cared by Patrick Lauer, and thanks to him we all have a stable samba 3.4 version. I am looking forward to bring fixes to the 3.5.x series and all your bug reports, comments, and patches are welcomed of course! :).

/etc/fstab y UUID

Regularmente se especifica en el archivo fstab nombres de dispositivo como /dev/sdb1 tal como en el siguiente ejemplo:

/dev/sdb1        /media/storage        ntfs-3g       defaults        0 1

Esto no es nada nuevo para muchos, pero puede suceder la ocasión en la cual queramos que un dispositivo se monte en una ubicación especial siempre, pero el nombre del dispositivo /dev/sdb1 del ejemplo anterior podría cambiar por ejemplo si se tratara de un dispositivo USB, o de si las galaxias están alineadas o si hace luna llena.

Bueno, en este caso podemos utilizar el UUID (Universally Unique Identifier) el cual identifica a cada sistema de archivos de un disco y hace que el nombre del dispositivo sea irrelevante al momento de montarse.

Obteniendo el uuid

Un par de formas de obtenerlo:

# ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 May  5 02:38 07D4-0918 -> ../../sda1
lrwxrwxrwx 1 root root 10 May  5 02:38 1501c1df-798c-4359-a100-37c97f426269 -> ../../sdb2
lrwxrwxrwx 1 root root 10 May  5 02:38 1cd538b0-c4da-4280-a485-c0324066832f -> ../../sda5
lrwxrwxrwx 1 root root 10 May  5 02:38 25b9f76e-0d99-4c6d-b441-4a4a879ff049 -> ../../sda3
lrwxrwxrwx 1 root root 10 May  5 02:38 9E88682C886804DD -> ../../sdb1
lrwxrwxrwx 1 root root 10 May  5 02:38 D8701AD2701AB6EA -> ../../sda2

# blkid
/dev/sda1: SEC_TYPE=”msdos” LABEL=”DellUtility” UUID=”07D4-0918″ TYPE=”vfat”
/dev/sda2: UUID=”D8701AD2701AB6EA” LABEL=”winxp” TYPE=”ntfs”
/dev/sda3: UUID=”25b9f76e-0d99-4c6d-b441-4a4a879ff049″ TYPE=”ext3″
/dev/sda5: UUID=”1cd538b0-c4da-4280-a485-c0324066832f” TYPE=”swap”
/dev/sdb1: UUID=”9E88682C886804DD” LABEL=”storage” TYPE=”ntfs”
/dev/sdb2: UUID=”1501c1df-798c-4359-a100-37c97f426269″ TYPE=”ext3

Ahora con el uuid en mano, procedemos a modificar nuestro fstab:

UUID=9E88682C886804DD        /media/storage       ntfs-3g        defaults       0 1

Y listo, no dependemos del nombre del dispositivo para montarlo!

Nota: El uso del UUID NO lo inventó Ubuntu

Problema con touchscreen de Openmoko Freerunner bajo Debian

He tenido la oportunidad de jugar un poco con un Openmoko (prestado), el cual tiene instalado Debian Sid; el caso es que al actualizarlo el touchscreen dejó de funcionar correctamente.

Lo curioso es que el calibrador funcionaba como se debe:

apt-get install libts-bin
TSLIB_CALIBFILE=/etc/pointercal TSLIB_TSDEVICE=/dev/input/event1 TSLIB_CONSOLEDEVICE=none ts_calibrate

Probando un parche propuesto al archivo de configuración /etc/X11/xorg.conf en el bug 517307 de Debian, funcionó correctamente.

-	Option		"Device"		"/dev/input/event1"
+	Option		"TslibDevice"		"/dev/input/event1"

La recomendación es siempre hacer un backup de la memoria antes de actualizar para evitar dolores de cabeza 😀

Origen del término Informático “Bug”

Recientemente me preguntaron cual era el origen que se le llamara “bug” a las fallas en los programas informáticos, lo cual intentaré explicar a continuación:

Cuando las primeras computadoras fueron construidas alrededor de la decada de los 40s, la gente que trabajaba con estas encontraba insectos (bugs en inglés) en el hardware de las máquinas.

Pero no fue hasta en 1947 que los ingenieros que trabajaban en la computadora Mark II en la Universidad de Harvard encontraron una polilla atrapada en dicho equipo. Entonces pegaron el insecto a la bitácora y la etiquetaron “Primer caso de bug encontrado”. Desde entonces los términos “bug” y “debug” se volvieron comunes en el lenguaje informático.

Y de prueba, unas imágenes de la bitácora del Mark II:

Primer caso de bug encontrado

Primer caso de bug encontrado

Cuando terminamos el proyecto?

Una ingeniosa respuesta a esta pregunta frecuente hacia los informáticos:

Convirtiendo fecha Unix a fecha regular

Algunos logs de ciertos servicios solamente proveen fecha Unix, lo cual hace un poco difícil hacerse la idea de que fecha/hora exactamente se trata.

Pero la conversión en la consola es sumamente sencilla:

Convirtiendo fecha Unix a fecha regular:

$ date -d @1265312185

Convirtiendo una fecha específica a fecha Unix:

$ date –date “Thu Feb  4 13:36:25 CST 2010” +%s

Convirtiendo fecha actual a fecha unix:

$ date +%s

Quick linux script to check memory usage per program

A long time ago somebody shared me the following script to check memory usage per program.

$ ps aux  | awk '{print $6" "$11,$12,$13,$14}' | 
egrep -v "0.*\[.*\]" |
awk '{print $1/1024" MB --> "$2,$3,$4,$5}' | sort -g

Output is the similar to the following:
….
6.39062 Mb –> gnome-screensaver
6.85547 Mb –> /usr/libexec/vino-server –sm-disable
7.22656 Mb –> /usr/libexec/multiload-applet-2 –oaf-activate-iid=OAFIID:GNOME_MultiLoadApplet_Factory –oaf-ior-fd=18
7.27344 Mb –> /usr/libexec/gnome-settings-daemon
7.98438 Mb –> C:\windows\system32\explorer.exe /desktop
8.35547 Mb –> /usr/libexec/gnome-volume-manager –sm-disable
10.8438 Mb –> metacity
11.1094 Mb –> c:\Archivos de programa\Alcatel\A4980\Alcatel 4980\a4980.exe
14.7305 Mb –> vinagre
20.1914 Mb –> gnome-terminal
20.6758 Mb –> planner
21.2227 Mb –> c:\Archivos de programa\Alcatel\A4980\Alcatel 4980\a4980.exe
24.2578 Mb –> gnome-panel
25.5977 Mb –> nautilus
31.6602 Mb –> claws-mail
91.875 Mb –> gedit
109.188 Mb –> /usr/bin/X :0 -audit 0
144.84 Mb –> /usr/bin/firefox

 

Activando soporte Oracle Instant Client + PHP5 en Debian Linux

Para conectarse a una base de datos Oracle con PHP 5, se puede hacer a través del “Oracle Instant Client” y el modulo oci8 de pear.

Primero se debe descargar los paquetes “Basic” y “SDK” desde http://www.oracle.com/technology/tech/oci/instantclient/instantclient.html. En mi caso, los archivos fueron

  • instantclient-basic-linux32-10.2.0.3-20061115.zip
  • instantclient-sdk-linux32-10.2.0.3-20061115.zip

Creamos directorios y descomprimimos

# mkdir -p /opt/oracle/instantclient
# cd /opt/oracle/instantclient
# unzip instantclient-basic-linux32-10.2.0.3-20061115.zip
# unzip instantclient-sdk-linux32-10.2.0.3-20061115.zip

Agregamos las librerías de oracle a las librerías del sistema

# echo /opt/oracle/instantclient >> /etc/ld.so.conf
# ldconfig

Creamos los vínculos simbólicos en caso de que el comando anterior no lo haya hecho:

# cd instantclient_10_2
# ln -s libclntsh.so.10.1 libclntsh.so
# ln -s libocci.so.10.1 libocci.so

Instalamos paquetes necesarios para la configuración del módulo oci8, entre ellos Pear

# apt-get install php-pear php5-dev build-essential

En teoría el comando pecl install oci8 debería de funcionar, pero aparentemente no puede trabajar con las librerías de Oracle Instanclient, así que procedemos a ejecutar los pasos manualmente

# mkdir -p /usr/local/src
# cd /usr/local/src
# pecl download oci8
# tar xfz oci8-1.3.5.tgz
# cd oci8-1.3.5
# phpize
# ./configure –with-oci8=shared,instantclient,/opt/oracle/instantclient/instantclient_10_2
# make
# make install

El nombre del archivo oci8-1.3.5.tgz cambiará dependiendo de nuevas versiones

Luego activamos el módulo oci8 en el archivo php.ini (/etc/php5/apache2/php.ini and /etc/php5/cli/php.ini), con la siguiente línea:

extension=oci8.so

Este paso tarde o temprano tendrá que ejecutarse, asi que mejor de una vez configuramos el archivo  tnsnames.ora

#  mkdir -p /opt/oracle/instantclient/instantclient_10_2/network/admin

Editamos el tnsnames.ora de acuerdo a nuestras necesidades.

# vi /opt/oracle/instantclient/instantclient_10_2/network/admin/tnsnames.ora

Ahora se procede a reiniciar Apache y listo :), podemos auxiliarnos de phpinfo() para comprobar que el módulo oci8 está cargado.

Desactivando el “beep” o “pitido” de la consola

Algunas distribuciones Linux traen activado por defecto el “pitido” de la consola el cual despu és de un tiempo se hace un poco molesto.

La solución es sencilla y consiste en agregar o descomentar la siguiente linea del archivo /etc/inputrc

set bell-style none

Powered by WordPress with GimpStyle Theme design by Horacio Bella.
Entries and comments feeds. Valid XHTML and CSS.