Tag Archive for 'debian'

Configurando nuestras interfaces de red con ifupdown

Si usted es de esas personas que suele mover su máquina portátil entre varias redes que no necesariamente proveen DHCP y usualmente vuelve a configurar sus preferencias de conexión, seguramente este artículo llame su atención puesto que se explicará acerca de la configuración de diversos perfiles de conexión vía línea de comandos.

En los sistemas Debian y los basados en él, Ubuntu por ejemplo, para lograr la configuración de las redes existe una herramienta de alto nivel que consiste en los comandos ifup e ifdown, adicionalmente se cuenta con el fichero de configuración /etc/network/interfaces. También el paquete wireless-tools incluye un script en /etc/network/if-pre-up.d/wireless-tools que hace posible preparar el hardware de la interfaz inalámbrica antes de darla de alta, dicha configuración se hace a través del comando iwconfig.

Para hacer uso de las ventajas que nos ofrece la herramienta de alto nivel ifupdown, en primer lugar debemos editar el fichero /etc/network/interfaces y establecer nuestros perfiles de la siguiente manera:

auto lo
iface lo inet loopback

# Conexión en casa usando WPA
iface home inet dhcp
    wpa-driver wext
    wpa-ssid foo
    wpa-psk baz
    wpa-keymgmt WPA-PSK
    wpa-pairwise TKIP CCMP
    wpa-group TKIP CCMP
    wpa-proto WPA RSN

# Conexión en la oficina
# sin DHCP
iface office inet static
    wireless-essid bar
    wireless-key s:egg
    address 192.168.1.97
    netmask 255.255.255.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-search company.com #search@resolv.conf
    dns-nameservers 192.168.1.2 192.168.1.3 #nameserver@resolv.conf

# Conexión en reuniones
iface meeting inet dhcp
	wireless-essid ham
	wireless-key s:jam

En este ejemplo se encuentran 3 configuraciones particulares (home, work y meeting), la primera de ellas define que nos vamos a conectar con un Access Point cuyo ssid es foo con un tipo de cifrado WPA-PSK/WPA2-PSK, esto fue explicado en detalle en el artículo Haciendo el cambio de ipw3945 a iwl3945. La segunda configuración indica que nos vamos a conectar a un Access Point con una IP estática y configuramos los parámetros search y nameserver del fichero /etc/resolv.conf (para más detalle lea la documentación del paquete resolvconf). Finalmente se define una configuración similar a la anterior, pero en este caso haciendo uso de DHCP.

Llegados a este punto es importante aclarar lo que ifupdown considera una interfaz lógica y una interfaz física. La interfaz lógica es un valor que puede ser asignado a los parámetros de una interfaz física, en nuestro caso home, office, meeting. Mientras que la interfaz física es lo que propiamente conocemos como la interfaz, en otras palabras, lo que regularmente el kernel reconoce como eth0, wlan0, ath0, ppp0, entre otros.

Como puede verse en el ejemplo previo las definiciones adyacentes a iface hacen referencia a interfaces lógicas, no a interfaces físicas.

Ahora bien, para dar de alta la interfaz física wlan0 haciendo uso de la interfaz lógica home, como superusuario puede hacer lo siguiente:

# ifup wlan0=home

Si usted ahora necesita reconfigurar la interfaz física wlan0, pero en este caso particular haciendo uso de la interfaz lógica work, primero debe dar de baja la interfaz física wlan0 de la siguiente manera:

# ifdown wlan0

Seguidamente deberá ejecutar el siguiente comando:

# ifup wlan0=work

Es importante hacer notar que tal como está definido ahora el fichero /etc/network/interfaces ya no es posible dar de alta la interfaz física wlan0 ejecutando solamente lo siguiente:

ifup wlan0

La razón de este comportamiento es que el comando ifup utiliza el nombre de la interfaz física como el nombre de la interfaz lógica por omisión y evidentemente ahora no está definido en el ejemplo un nombre de interfaz lógica igual a wlan0.

En un próximo artículo se harán mejoras en la definición del fichero /etc/network/interfaces y su respectiva integración con una herramienta para la detección de redes que tome como entrada una lista de perfiles de redes candidatas, cada una de ellas incluyendo casos de pruebas. Teniendo esto como entrada ya no será necesario indicar la interfaz lógica a la que se hace referencia ya que la herramienta se encargará de probar todos los perfiles en paralelo y elegirá aquella que cumpla en primera instancia con los casos de prueba. De modo tal que ya podremos dar de alta nuestra interfaz física con solo hacer ifup wlan0.

Haciendo el cambio de ipw3945 a iwl3945

Si usted es de esas personas que cuenta con una tarjeta inalámbrica Intel Corporation PRO/Wireless 3945, seguramente sabrá que existen al menos dos proyectos que le dan soporte. El primero de ellos es ipw3945 y se encuentra obsoleto, el desarrollo pasó al proyecto iwlwifi.

Aprovechando que recientemente ha ingresado a la versión inestable de Debian la serie del kernel 2.6.24, este contiene el nuevo modulo iwl3945 que reemplaza al viejo ipw3945. Una de las ventajas de este cambio es que ya no hay necesidad de tener activo el demonio ipw3945d. Sin embargo, aun se necesita del firmware que se encuentra en la sección non-free del repositorio de Debian.

Hasta donde he leído el plan será remover los paquetes ipw3945-modules-* e ipw3945d de los repositorios de Debian (al menos en testing y en unstable) una vez que la serie 2.6.24 del kernel llegue a la versión de pruebas (testing). Aquellos que se encuentren hoy día en la versión inestable (unstable) de Debian deberán cambiar el driver desde ipw3945 a iwl3945. Para aquellos que trabajan en etch también es posible usar el driver iwl3945 si actualiza su versión del kernel por medio del repositorio etch-backports (el nuevo stack mac80211 que usa iwlwifi se encuentra a partir de la versión del kernel 2.6.22).

Las instrucciones que verá a continuación se han aplicado en Debian inestable, si usted desea instalar iwlwifi en etch puede seguir estas instrucciones.

Obteniendo algunos datos de interés antes de proceder con la actualización.

Versión del kernel:

$ uname -r
2.6.22-3-686

Verifique que en realidad tiene una tarjeta Intel Corporation PRO/Wireless 3945

$ lspci -nn | grep Wireless
03:00.0 Network controller [0280]: Intel Corporation PRO/Wireless 3945ABG Network Connection [8086:4227] (rev 02)

Paquetes necesarios

Ahora bien, es necesario instalar el nuevo kernel y el firmware necesario para hacer funcionar a iwlwifi

# aptitude install linux-image-2.6-686 \\
linux-image-2.6.24-1-686 \\
firmware-iwlwifi

Evitando problemas

Verifique que no existe alguna entrada que haga referencia al modulo ipw3945 en el fichero /etc/modules. Para ello recurrimos a Perl que nos facilita la vida.

# perl -i -ne 'print unless /^ipw3945/' /etc/modules

Debido a algunos problemas que se presentan en el paquete network-manager si anteriormente ha venido usando el modulo ipw3945 se recomienda eliminar la entrada que genera udev para dicho modulo en el fichero /etc/udev/rules.d/z25_persistent-net.rules, la entrada es similar a la siguiente:

# PCI device 0x8086:0x4227 (ipw3945)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:13:02:4c:12:12", NAME="eth2"

Fichero /etc/network/interfaces

Este paso es opcional, agregamos la nueva interfaz wlan0 al fichero /etc/network/interfaces y procedemos a configurarla de acuerdo a nuestras necesidades.

auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet dhcp
wpa-driver wext
wpa-ssid foo
wpa-psk baz
wpa-key-mgmt WPA-PSK
wpa-pairwise TKIP CCMP
wpa-group TKIP CCMP
wpa-proto WPA RSN

En este caso particular se está indicando que nos vamos a conectar a un Access Point cuyo ssid es foo con tipo de cifrado WPA-PSK/WPA2-PSK, haciendo uso del driver wext que funciona como backend para wpa_supplicant. Es de hacer notar que el driver wext es utilizado por todos los adaptadores Intel Pro Wireless, eso incluye ipw2100, ipw2200 e ipw3945.

Para hacer funcionar WPA recuerde que debe haber instalado previamente el paquete wpasupplicant.

# aptitude install wpasupplicant

De igual manera se le recuerda adaptar todos aquellos parámetros como wpa-ssid y wpa-psk a aquellos adecuados en su caso. En particular el campo wpa-psk lo puede generar con el siguiente comando:

$ wpa_passphrase su_ssid su_passphrase

Aunque mi recomendación es usar el comando wpa_passphrase de la siguiente manera.

$ wpa_passphrase su_ssid

Posteriormente deberá introducir su_passphrase desde la entrada estándar, esto evitará que su_passphrase quede en el historial de comandos.

Para mayor detalle de los campos expuestos en la configuración del fichero /etc/network/interfaces se le recomienda leer la documentación expuesta en /usr/share/doc/wpasupplicant/README.modes.gz.

Una vez concluidos estos pasos reiniciamos el sistema y seleccionamos en nuestro Gestor de Arranque (ej. GRUB) la versión del kernel recien instalada. Al momento de iniciar su sesión verifique que su tarjeta inalámbrica esté funcionando, de lo contrario haga las revisiones que se indican en la siguiente sección.

En caso de persistir los problemas

Remueva y reinserte el modulo iwl3945

# modprobe -r iwl3945
# modprobe iwl3945

De manera adicional compruebe que udev haya generado una nueva entrada para iwl3945.

$ cat /etc/udev/rules.d/z25_persistent-net.rules
...
# PCI device 0x8086:0x4227 (iwl3945)
SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="00:13:02:4c:12:12", ATTR{type}=="1", NAME="wlan0"

Finalmente, reestablecemos la interfaz de red.

# ifdown wlan0
# ifup wlan0

Elimine ipw3945

Una vez verificado el correcto funcionamiento del módulo iwl3945 puede eliminar con seguridad todo aquello relacionado con el modulos ipw3945.

# aptitude --purge remove firmware-ipw3945 \\
ipw3945-modules-$(uname -r) \\
ipw3945-source ipw3945d

Estas instrucciones también aplican para el modulo iwl4965. Mayor información en Debian Wiki § iwlwifi.

Configurando el sonido (HDA Intel) en Lenovo 3000 c200 en Debian GNU/Linux

La situación poco común se presentó con un portátil Lenovo, específicamente un 3000 c200; el computador en cuestión mostraba la tarjeta funcionando, como si estuviera todo normal, pero sucede que no había sonido en lo absoluto por más altos que estuvieran los indicadores gráficos del volumen. Indagando por Google me encontré que ya han habido muchos casos similares, no solamente para laptops Lenovo, sino para la mayoría que incluye ese tipo de tarjetas y me encontré con una solución en un foro que me funcionó perfecto. Acá voy a tratar de explicar paso a paso todo lo que hice para que funcionara como debe ser.

Lo primero que se hizo fué asegurarse que se trata realmente de una tarjeta HDA Intel, con la siguiente línea de comandos:

$ lspci | grep High

…a lo que se obtuvo la siguiente respuesta:

00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)

…donde se puede verificar que se trata de la HDA de la familia ICH7 de la Intel. Una vez verificado ésto, se procede a instalar algunos paquetes necesarios para que todo funcione de manera correcta, que son los siguientes:

  • build-essentials
  • gettext
  • libncurses5-dev

Ésto se logró con el aptitude, con la siguiente línea de comandos:

$ sudo aptitude install el_paquete_que_quiero_instalar

Luego hay que descargar las cabeceras del kernel que se está usando. Para ésto, la manera más fácil de hacerlo fué instalando el paquete module-assistant y haciendo lo siguiente en una terminal:

$ sudo m-a update
$ sudo m-a prepare

Y el programa automáticamente va a saber cuáles cabeceras descargar y el directorio donde ponerlas. Cuando estén instalados éstos tres paquetes también se va a necesitar descargar de la página del Proyecto Alsa tres archivos necesarios y que son nombrados a continuación:

Se pueden descargar con un gestor de descargas preferido, ésto se hizo con wget, utilizando la línea de comandos:

$ wget -c http://www.alsa-project.org/alsa-driver-1.0.14.tar.bz2

…y así para cada uno de los archivos. Cuando se tengan los tres archivos, se copian a la carpeta /usr/src/alsa/ la cual, probablemente no existe todavía en el sistema y por lo tanto tendrá que ser creada; ésto se puede lograr con la siguiente línea de comandos:

$ sudo mkdir /usr/src/alsa

…cuando se tenga el directorio, se copian los tres archivos tar.gz al mismo; ésto se puede lograr con:

$ sudo cp alsa* /usr/src/alsa/

Luego hay que descomprimir los ficheros tar.gz con:

$ sudo tar xvf el_archivo_que_vamos_a_descomprimir.tar.gz

Una vez descomprimidos nos ubicamos en la primera carpeta que va a ser alsa-driver-1.0.14/ y compilamos el alsa para las tarjetas HDA Intel con las siguientes líneas de comandos:

$ sudo ./configure --with-cards=hda-intel
$ sudo make
$ sudo make install

Luego vamos a necesitar compilar los otros 2 paquetes restantes, para ello, nos ubicamos en la carpeta correspondiente y hacemos en una terminal lo siguiente:

$ sudo ./configure
$ sudo make
$ sudo make install

Ésto se va a hacer tanto para alsa-lib como para alsa-utils, pues el procedimiento es el mismo. Cuando se hayan compilado los tres paquetes el sistema ya debería ser capaz de reconocer correctamente la tarjeta y por lo tanto debe haber sonido; Ésto puedes ser verificado (1) Abriendo un reproductor de preferencia y reproduciendo algo de musica ó (2) Se puede hacer con la siguiente línea:

$ cat /dev/urandom >> /dev/dsp/ 

Con lo cual se obtendrá un sonido algo parecido a unos aplausos, pero en realidad son sonidos producidos aleatoriamente.

Ésto debería ser todo. En las máquinas que se configuraron, cuando se conectaban los audífonos en el panel lateral, el sonido salía tanto por los audífonos como por las cornetas y al parecer se solucionó con una reiniciada, pero sino quieres reiniciar entonces lo que tienes que hacer es tumbar los módulos que se crearon y volverlos a cargar, tal cual reiniciaras el sistema:

$ sudo modprobe -r snd_hda_intel652145
$ sudo modprobe -r snd_pcm
$ sudo modprobe -r snd_page_alloc

Luego para cargarlos hacemos las mismas línea, pero sin la opción -r.

Beryl y Emerald en Debian “Etch” AMD64

Sin mucho preámbulo, sólo tengo que decir que voy explicar cómo tener instalado éste famoso escritorio 3D (Beryl) en nuestros sistemas Debian AMD64. El proceso en general es muy fácil y se resume en unos pocos pasos. Antes que nada debo mencionar que la placa de video que uso es nVIDIA y que para poder utilizar el Beryl hay que hacer ciertas modificaciones al xorg.conf.

Lo primero que debemos hacer es modificar nuestro /etc/apt/sources.list para añadir una nueva entrada que va a ser el servidor desde donde se van a instalar Beryl y Emerald. Ésto lo logramos con la siguiente línea de comandos en una terminal:

 # vim /etc/apt/sources.list

La línea que vamos a agregar a nuestro sources.list es la que se corresponde con el repositorio de Beryl para Debian y es la siguiente:

deb http://debian.beryl-project.org/ etch main

Luego, como han de sospechar, hay que actualizar la base de datos del aptitude, lo cual se logra así:

# aptitude update

Una vez actualizada la base de datos procedemos a instalar el Beryl con la siguente línea de comandos:

# aptitude install -ry beryl

Ésta última línea nos va a instalar el Beryl automáticamente con todos los paquetes recomendados y va a asumir “Sí” como respuesta para poder realizar la instalación. Una vez que está instalado podremos ejecutarlo desde Aplicaciones –> Herramientas del sistema –> Beryl Manager y los temas del Emeral los podemos seleccionar en Escritorio –> Preferencias –> Emerald Theme Manager. Las opciones del Beryl pueden ser modificadas con el Beryl Settings Manager, el cual puede ser localizado en la misma ruta que el Beryl Manager.
Si queremos que el Beryl Manager sea ejecutado cada vez que iniciamos sesión debemos añadirlo a la lista de programas al inicio. Ésto lo hacemos ejecutando Escritorio –> Preferencias –> Sesiones y en la pestaña Programas al inicio hacemos click en Añadir y escribimos beryl-manager.
A continuación algunos atajos del teclado para lograr los efectos más comunes:

  1. Modo de movimiento de imagen borrosas = Ctrl + F12
  2. Rotar escritorios como un cubo = Ctrl + Alt + Flechas direccionales
  3. Efecto de lluvia = Shift + F9
  4. Zoom = Super + Scroll
  5. Selector de ventanas escalar = Super + Pausa
  6. Rotar ventana entre espacios de trabajo con el cubo = Ctrl + Alt + Shif + Teclas direccionales
  7. Modificar la opacidad de la ventana actual = Alt + Scroll

Por último un artículo donde explican las virtudes del Beryl 0.2 y dos videos, que a mi criterio son las mejores demostraciones de Beryl que jamas haya visto.

Audigy SE en Etch AMD64

Hace días me hice con una tarjeta de sonido Audigy SE de la marca Creative y la verdad tuve que dar bastante golpes para dar con la configuración correcta. ¿Cómo lo logré? Muy fácil: Googleando :).

Resulta que el sistema (Debian, of course) reconoce bien el dispositivo y carga de manera perfecta los módulos necesarios; de hecho el alsa-mixer me mostraba todos los canales de la tarjeta pero el único que parecía funcionar era el Analog Front y los otros parecían estar muertos. Casi daño el mouse de tando hacer clicks y darle hacia arriba y hacia abajo :). No podía creer que no funcionara!.

Googleando llegué a la página de la gente de Alsa y me encontré una manera de configurar los drivers. Ahi confirmé que el sistema me estaba cargando el módulo correcto, el snd-ca0106. Entonces, después de ver la pequeña lista de instrucciones, no voy a decir que me espanté y maldije a Creative, no, no lo hice, en ése momento miré al cielo y pregunté: ¡¿Acaso no existe una manera más fácil de lograr que suenen la benditas cornetas?! y la respuesta a mi pregunta vino del wiki de Gentoo, ¿qué cosas no? imagínense todo lo que googleé; bueno específicamente de la sección que dice VIA Envy24HT (ice1724) chip. Ahora se preguntarán.. ¿VIA? éste tipo está loco…. pues sí, VIA. ¿Y qué fué lo que hice? Abrí una terminal e hice lo siguiente:

$ gedit .asoundrc

Luego lo que hice fué copiar el contenido del segundo .asoundrc y pegarlo al mío, luego guardar los cambios y voilá, sistema de sonido 5.1 andando ;). Se preguntarán ¿Cómo hizo éste loco para saber que ese .asoundrc funciona con la Audigy SE?, bueno, con el proceso estándar, prueba error. Copiando y pegando cada uno de los ficheros.

Ahora que el sistema suena perfectamente bien me ha surgido una nueva interrogante, debido a que para poder graduar el volumen del sistema tengo que graduar los tres controles, y la pregunta es: ¿Habrá alguna forma de graduar el volumen para los tres controles al mismo tiempo? Que lo disfruten…

Debian GNU/Linux 4.0

Según puede verse en el sitio oficial del Proyecto Debian, en una noticia aparecida el día de hoy, Upcoming Release of Debian GNU/Linux 4.0, se confirma que el próximo mes de diciembre del presente año será la fecha de publicación de la siguiente versión 4.0 de Debian GNU/Linux, cuyo código nombre es “etch”.

Entre las novedades que podremos observar en esta nueva versión se encuentran las siguientes:

  • Será la primera versión que ofrezca soporte oficial a la arquitectura AMD64. De manera simultánea, esta versión se publicará para 11 arquitecturas.
  • La versión 4.0 ofrecerá la versión 2.6.17 del núcleo linux de manera predeterminada. Además, esta misma versión se utilizará en todas las arquitecturas y a su vez en el instalador.
  • Debian GNU/Linux 4.0 presentará la colección de compiladores de GNU versión 4.1.
  • Debian GNU/Linux deja de utilizar XFree86 como implementación de X11 (sistema de ventanas X) para darle paso a X.Org.
  • Al menejador de paquetes APT seguramente se le añadan algunas mejoras en cuanto a seguridad, admitiendo criptografía modo paranoico y firmas digitales.

Reuniones para eliminar fallos

En la misma noticia podemos enterarnos que el Proyecto Debian está planeando algunas reuniones previas al nuevo lanzamiento en búsqueda de fallos y establecer las debidas correcciones, de esta manera, se ofrecerá al público una versión que presente la mínima cantidad de errores críticos de programación.

Estas reuniones se llevarán a cabo en varias ciudades alrededor del mundo. Por lo tanto, podrá participar el mayor número de personas en la búsqueda y corrección de estos errores de programación.

Si usted está interesado en participar pero no puede reunirse personalmente con los desarrolladores en las distintas ciudades que se describen en BSPMarathon, puede conectarse al canal #debian-bugs en el servidor irc.debian.org y de esta manera participar.

La situación en Venezuela

En mi humilde opinión, considero oportuno que la comunidad Debian Venezuela debe tomar las riendas en este asunto, organizar reuniones para eliminar fallos en nuestra distribución favorita, aprovechando la cercanía del Día Debian para organizar actividades de este tipo. ¿Qué opinan en este sentido?.

ULAnix

Hace ya algún tiempo que la beta #3 de esta distribución LiveCD basada en Debian salió.

Podría decirse que ULAnix es la primera distribución GNU + Linux que nace dentro de una universidad venezolana, Universidad de Los Andes. Aunque muchos afirman que la primera distro venezolana con aval universitario fue Cachapa, no es cierto, Antonio Lopez, el creador de Cachapa, realizó dicho proyecto como una meta personal, posteriormente la Universidad de Carabobo se interesó en Cachapa. Al final, lo importante no es ser el primero, lo importante es que estas distribuciones han sido fruto del trabajo de venezolanos.

ULAnix es una iniciativa del Parque Tecnológico de Mérida.

Básicamente el equipo de trabajo está conformado por los profesores: Gilberto Díaz y Jacinto Dávila, el desarrollo está a cargo del bachiller Jesús Molina.

Si usted desea una copia de esta distribución puede obtenerla desde el repositorio: http://ftp.ula.ve/linux/distribuciones/ulanix/ o desde el mirror que he habilitado en http://ulanix.milmazz.com/.

El equipo de trabajo alrededor de ULAnix agradece que la mayor cantidad de personas se haga con esta distribución, la pruebe e informen los errores que vayan consiguiendo. Aún no existe una página oficial para el proyecto, aunque al parecer se está trabajando en ello, opcionalmente, puede notificar los errores de software en el foro de ULAnux.

Próximamente espero estar probando intensivamente esta distribución y realizar las observaciones que considere pertinentes.

StarDict: El diccionario que buscaba

Leyendo el ejemplar #14 de la revista Tux Magazine me encuentro con un interesante artículo, Learning Foreign Languages with jVLT and StarDict, la segunda aplicación descrita en dicho artículo, StartDict, llamó mi atención, así que a continuación se dará una breve revisión de la aplicación en cuestión.

¿Qué es StarDict?

StarDict es un diccionario internacional multiplataforma escrito en Gtk2, puede ser utilizado sin conexión a la web.

Características

Búsqueda de patrones

Usted puede buscar patrones de cadenas o caracteres usando comodines, por ejemplo, podrá usar el comodín * para buscar una cadena arbitraria, el resultado puede ser vacío, mientras que con el uso del comodín ? buscará una coincidencia con un carácter arbitrario. e.g. Suponiendo que tiene instalado el diccionario InglésEspañol, al buscar el patrón hell? encontrará como resultado la traducción de hello, mientras que con el uso del patrón hell* encontrará todas aquellas posibles coincidencias que comiencen con la cadena hell, hell (infierno en inglés), hell (suerte en noruego), los resultados encontrados dependerá de los diccionarios que haya instalado.

Búsqueda difusa

Si usted por casualidad no recuerda exactamente como deletrear una palabra, podrá intentar realizar dicha búsqueda desde StarDict, éste utilizará el algoritmo de la Distancia de Levenshtein 1. Para utilizar esta característica simplemente comience la búsqueda con el carácter /, e.g., suponga que tiene instalado el diccionario EspañolInglés, usted cree que la palabra acero realmente se escribe así: asero, simplemente introduzca en el formulario la cadena /asero, obtendrá el resultado deseado.

Búsqueda por palabras seleccionadas

Scan SelectionSi usted desea activar esta característica, deberá marcar la casilla de verificación que se encuentra en la parte inferior izquierda de la ventana principal de la aplicación. StarDict automáticamente buscará palabras o frases que usted haya seleccionado en cualquier aplicación, esto incluye navegadores, OpenOffice.org, etc., usted obtendrá un cuadro de dialogo que le mostrará la definición acerca de la palabra seleccionada.

Manejo de diccionarios

Manejo de diccionariosStarDict le permite activar (desactivar) aquellos diccionarios que necesite (no necesite), también puede establecer el orden de búsqueda en los distintos diccionarios instalados. Todo lo anterior podrá realizarlo desde la sección Manage Dictionaries (Recurso: Imagen).

¿No encuentra lo que necesita?

StarDict le permite realizar búsquedas en la web, solo deberá seleccionar el botón de búsqueda en Internet y escoger cualquiera de las 10 opciones actuales de búsqueda.

Ahora bien, seguramente esta aplicación resultará útil para muchas personas, si usted es uno de ellos y está interesado en instalarlo, es muy sencillo.

¿Cómo instalar StarDict?

Si usted es tan afortunado como yo, debe estar usando Debian, así que simplemente tendrá que hacer:

# aptitude install stardict

Ahora bien, si usted utiliza por ejemplo, Ubuntu, también puede instalarlo fácilmente, ¿cómo?, en primer lugar debe activar el repositorio universe (recuerde actualizar la lista de paquetes disponibles), posteriormente debe hacer:

$ sudo aptitude install stardict

Si usted utiliza otra distribución de GNU+Linux o es usuario de Windows, lea la documentación de la página oficial del proyecto, lamento informarle que este artículo es una revisión breve de la aplicación StarDict.

¿Cómo instalar diccionarios?

Primero que nada, debe descargar los diccionarios que necesite, para ello le recomiendo ir a la página de Descarga de Diccionarios del proyecto.

Una vez que haya descargado los diccionarios, debe proceder como sigue:

tar -C /usr/share/stardict/dic -x -v -j -f  \\
diccionario.tar.bz2

Personalizando la aplicación

Preferencias Ya para finalizar, usted puede personalizar la aplicación desde la sección de preferencias, desde ella podrá modificar el comportamiento del programa.

Una característica de StarDict que puede resultar realmente molesta es cuando se encuentra activo el modo Scan, es decir, toda palabra o frase resaltada con el ratón generará un cuadro de dialogo con la definición de dicha palabra o frase, si usted desea controlar este comportamiento, le recomiendo activar las siguientes casillas de verificación:

  • Only do scanning while modifier key being pressed.
  • Hide floating window when modifier key pressed.

Las casillas de verificación previamente mencionadas podrá encontrarlas bajo la sección DictionaryScan Selection.

Si usted esta inconforme con las opciones de búsqueda en Internet, puede agregar las que usted desea desde la sección Main WindowSearch Website.

  1. El algoritmo de la Distancia de Levenshtein o la distancia de edición entre dos cadenas, se refiere al número mínimo de operaciones necesarias para transformar una cadena en otra, bajo éste algoritmo se considera una operación a la inserción, eliminación o substitución de un carácter. Para mayor información le recomiendo leer el artículo Levenshtein Distance, in Three Flavors.[regresar]

Perl: Primeras experiencias

La noche del sábado pasado, después de terminar de estudiar con Ana la cátedra Programación Paralela y Distribuida, me dispuse a revisar las distintas instancias de Planeta Linux, como normalmente hago, pero eso no fué suficiente, me puse a validar el feed que se estaba generando en ese momento (en particular, el feed de la instancia venezolana). Me percate de varios errores y advertencias, entre ellos me llamo la atención:

This feed does not validate.

In addition, this feed has an issue that may cause problems for some users. We recommend fixing this issue.

line 11, column 71: title should not contain HTML (20 occurrences) [help]

Luego de leer la ayuda noto que es recomendable cambiar todos los nombres de las entidades html a su equivalente decimal, es decir, si tenemos por ejemplo: © debe modificarse ©, de igual manera con el resto.

Tenía varias opciones, una de ellas era realizar el reemplazo masivo desde vim, pero esta tarea es realmente ineficiente por el hecho de tener que reemplazar todos los nombres de las entidades html a su equivalente decimal uno por uno, además de eso, debía hacerlo para las tres instancias presentes en Planeta Linux, primera opción descartada de entrada.

Aprovechando que la semana pasada, al igual que el profesor Francisco Palm, estuve presente en un curso sobre el lenguaje de programación Perl, el cual fué dictado por José Luis Rey con la ayuda de Daniel Rodríguez en las instalaciones de Fundacite Mérida, quería poner en práctica algunas de las cosas que aprendí en dicho curso.

Antes de continuar debo agradecer al profesor José Aguilar, a la ingeniera Blanca Abraham, y a la Sra. Tauka Shults por la oportunidad que me brindaron.

Una de las cosas que nos recalcó José Luis fué acerca de las virtudes que debía tener un programador, una de ellas debe ser la flojera, es decir, comenzar a escribir código realmente útil de inmediato, sin ningún requerimiento adicional como ocurre en lenguajes de programación como el C/C++, en donde es necesario realizar una serie de procedimientos antes de comenzar a escribir código útil.

Como mencione en el párrafo anterior, la idea es llegar a ser lo más productivo en el menor tiempo posible. Generar un hash de entidades de nombres html no me parecía el camino idóneo, así que recorde el tema de la flojera, sin pensarlo dos veces comence a buscar en search.cpan.org un módulo que me permitiera convertir los nombres de las entidades html a su equivalente decimal, como primer resultado obtuve lo que buscaba, el módulo HTML::Entities::Numbered, había encontrado mi salvación, leo un poco acerca de su uso y es más sencillo de lo que pensaba, siguiente paso, proceder a instalarlo.

Para debianizar un módulo en Perl es muy sencillo, en primer lugar debemos recurrir al comando dh-make-perl, si no lo tenemos instalado ya, debemos proceder como sigue:

# aptitude install dh-make-perl

Ahora ya podemos debianizar el módulo que requerimos, para ello tuve que realizar lo siguiente:

# dh-make-perl --build --cpan HTML::Entities::Numbered

Como lo puede apreciar, su uso es realmente sencillo, para una mejor explicación acerca de este último comando le recomiendo leer la entrada Instalando módulos de Perl en Debian escrita por Christian Sánchez, como era la primera vez que hacia uso del comando cpan tuve que configurarlo, esto no tomo mucho tiempo, el asistente ofrece explicaciones bastante detalladas.

Una vez realizado el proceso más complicado de toda la operación, el resto era escribir el código fuente que me permitiese convertir los nombres de las entidades html a su equivalente decimal, he aquí el resultado.

#!/usr/bin/perl -l

use strict;
use warnings;
use HTML::Entities::Numbered;

unless(open(INPUT, $ARGV[0])) { die "ERROR: No se especifico archivo para abrir. $!"; }
open(OUTPUT, ">$ARGV[0].bak");
while(<INPUT>){ print OUTPUT name2decimal($_) if chomp; }

¡Listo!, en tan pocas líneas de código he logrado resolver el problema, por supuesto, todo se redujo a buscar el módulo apropiado, una vez hecho los cambios a los ficheros de configuración de Planeta Linux procedí a actualizar la última versión en subversion.

Puede apreciar el antes y después de los cambios realizados.

Debian: Bienvenido al Sistema Operativo Universal (Parte II)

Esta serie de anotaciones comenzo con la entrada Debian: Bienvenido al Sistema Operativo Universal (Parte I).

Después de escribir en la tabla de particiones el esquema de particionamiento descrito en la parte anterior, el sistema base Debian comenzo a instalarse. Posterior a la Bienvenida al nuevo sistema Debian, reinicie y comence a configurar el sistema base debian, en la sección de selección de programas Debian escogí la última opción que nos brinda el asistente, selección manual de paquetes, luego configure las fuentes de aptitude y enseguida inicie la instalación de paquetes puntuales, los cuales describiré a continuación, de manera breve.

Como lo que tenía a mano era el CD Debian GNU/Linux testing _Sarge_- Official Snapshot i386 Binary-1, lo primero que hice fue actualizar a Sarge, seguidamente cambie las fuentes del fichero /etc/apt/sources.list a Etch, actualice la lista de paquetes disponibles e inmediatamente hice un aptitude dist-upgrade, el cambio de una rama a otra fué de lo más normal, no genero problema alguno.

Nota: No he descrito el proceso de instalación del sistema base de manera detallada ya que existe suficiente información en el sitio oficial de Debian, si lo desea, puede ver este video tutorial de instalación de Debian Sarge (aprox. 54MB.), en este video se explica como instalar el Entorno de Escritorio predeterminado que ofrece el asistente, no es el caso que explico en esta entrada, puesto que vamos a generar un Entorno de Escritorio de acuerdo a nuestras necesidades particulares.

Si tiene alguna duda acerca de la funcionalidad de un paquete en particular, puede consultar la descripción del mismo al hacer uso del comando aptitude show package-name, en donde package-name es el nombre del paquete en cuestión.

En los siguientes pasos haré uso intensivo de aptitude, anteriormente ya he explicado las ventajas que presenta aptitude sobre los comandos apt-get y sobre la interfaz gráfica Synaptic, puede encontrar mayor información en los artículos:

Sistema X Window

Instalando los componentes esenciales para el Sistema X Window.

# aptitude install x-window-system-core

GNOME

Instalando los componentes esenciales para el entorno de escritorio GNOME.

# aptitude install gnome-core

GNOME Display Manager

Si usted hubiese instalado el paquete x-window-system, metapaquete que incluye todos los componentes para el Sistema X Window, se instalaría por defecto XDM (X Display Manager), normalmente debería recurrir a la línea de comandos para resolver los problemas de configuración de este manejador, mientras que con GDM (GNOME Display Manager) no debe preocuparse por ello, puede personalizarlo o solucionar los problemas sin recurrir a la línea de comandos. De manera adicional, puede mejorar su presentación con la instalación de temas.

# aptitude install gdm gdm-themes

Mensajería Instantánea, IRC, Jabber

GAIM

Todo lo anterior se puede encontrar al instalar GAIM.

# aptitude install gaim gaim-themes
irssi

Si le agrada utilizar IRC modo texto, puede instalar irssi.

# aptitude install irssi
Centericq

Centericq es un cliente de mensajería instantánea multiprotocolo, soporta ICQ2000, Yahoo!, AIM, IRC, MSN, Gadu-Gadu y Jabber.

# aptitude install centericq

Programas para la manipulación de imágenes

GIMP por defecto no puede abrir ficheros SVG, si desea manipularlos desde GIMP y no desde Inkscape puede hacer uso del paquete gimp-svg.

# aptitude install gimp gimp-python gimp-svg inkscape

Navegador Web

Definitivamente Firefox.

# aptitude install firefox firefox-locale-es-es

Creación de CDs y DVDs

# aptitude install k3b cdrdao

Para quienes quieran su version de K3b en español pueden instalar el paquete k3b-i18n, yo no lo considere necesario puesto que aporta 11,5MB, inútiles desde mi punto de vista.

Cliente Bittorrent

No le recomiendo instalar el cliente bittorrent Azureus, consume demasiados recursos, acerca de ello explico brevemente en el artículo Clientes Bittorrent.

# aptitude install freeloader

Lector de feeds

Normalmente utilizo Liferea. También cabe la posibilidad de utilizar el servicio que presta Bloglines.

# aptitude install liferea

Editor

# aptitude install vim-full

Cliente de correo electrónico

Para la fecha, a la rama testing de Debian no ingresa la versión 1.5 del cliente de correo Thunderbird (mi favorito), así que vamos a instalarlo manualmente.

En primer lugar deberá descargar (se asume que la descarga se realizará al escritorio) la última versión del cliente de correo, el paquete empaquetado y comprimido lo encontrará en el sitio oficial de Thunderbird.

Seguidamente, proceda con los siguientes comandos.

# tar -C /opt/ -x -v -z -f ~/Desktop/thunderbird*.tar.gz
# ln -s /opt/thunderbird/thunderbird /usr/bin/thunderbird
Instalar Diccionario en español
wget -c http://downloads.mozdev.org/dictionaries/spell-es-ES.xpi

Aplicaciones → Herramientas del Sistema → Root Terminal. Desde allí procedará a ejecutar el comando thunderbird.

Desde Thunderbird, seleccione la opción Extensiones del menú Herramientas. Seguidamente proceda a dar click en el botón Instalar y posteriormente busque la ruta del paquete que contiene el diccionario.

Thunderbird + GPG = Enigmail

Esta excelente extensión le permitira cifrar y descifrar correos electrónicos, a su vez, le permitirá autenticar usuarios usando OpenPGP.

wget -c http://releases.mozilla.org/pub/mozilla.org/extensions/enigmail/enigmail-0.94.0-mz+tb-linux.xpi

Como usuario normal, proceda a invocar el cliente de correo electrónico Thunderbird, seleccione la opción Extensiones del menú Herramientas y proceda a instalar la extensión en cuestión, similar al proceso seguido para lograr instalar el diccionario.

Reproductor de videos

Aunque existen reproductores muy buenos como el VLC y XINE, mi reproductor favorito es, sin lugar a dudas, MPlayer. La mejor opción es compilarlo, aún en la misma página oficial del proyecto MPlayer lo recomiendan, existe mucha documentación al respecto. Sin embargo, si no tiene tiempo para documentarse puede seguir los siguientes pasos, le advierto que el rendimiento quizá no sea el mismo que al compilar el programa.

# echo "deb ftp://ftp.nerim.net/debian-marillat/ etch main" >> /etc/apt/sources.list
# aptitude update
# aptitude install mplayer-386 w32codecs

Extensiones para Mozilla Firefox

Estas son las que he instalado hasta ahora, siempre uso un poco más, puede encontrarlas en la sección Firefox Add-ons del sitio oficial.

  • Answers
  • del.icio.us
  • FireFoxMenuButtons
  • Colorful Tabs
  • Tab Mix Plus

Gestor de Arranque

Vamos a personalizar un poco el gestor de arranque GRUB.

# aptitude install grub-splashimages
$ cd /boot/grub/splashimages

En este instante le recomiendo escoger alguno de los motivos que incluye el paquete grub-splashimages, una vez hecho esto, proceda a realizar lo siguiente.

$ cd /boot/grub/
# ln -s splashimages/image.xpm.gz  splash.xpm.gz
# update-grub

En donde, evidentemente, debe cambiar el nombre del fichero image.xpm.gz por el nombre de fichero de la imagen que le haya gustado en /boot/grub/splashimages.