Oct 03

Al momento de escribir esta entrada en el blog, solo faltan diez días para que el Ocelote Soñador (Oneiric Ocelot) la version 11.10 de Ubuntu sea liberada.

Por un lado me entusiasma como siempre tener una nueva version de Ubuntu para cacharriarle, pero por otro lado me preocupa las nuevas características de esta nueva version que al parecer no trae demasiados cambios como cuando la version 10 de Ubuntu salio con una gran cantidad de software nuevo y su inicio de tan solo 30 segundos, esta vez al parecer no hay demasiadas cosas nuevas si no mas refinadas pero que me asustan, la verdad no me he podido acostumbrar a la interface de usuario Unity y sigo usando Gnome.

De todos modos estaremos actualizando todas mis equipos y maquinas virtuales a esta nueva version a ver si por fin nos acostumbramos al Unity y esperemos que siga mejorando cada dia mas el Ubuntu que ya por el 2006 comenzamos a usar.

Tagged with:



En October 3 de 2011, Marlon J. Manrique escribió acerca de Ubuntu 11.10 : Pronto llega el Ocelote Soñador.
Jul 01

Ya se encuentra disponible la version de Wiring 1.0 Rc3 para la plataforma Linux, esta simplemente es un archivo esta es un archivo tgz que simplemente se debe descomprimir y ejecutar el archivo wiring el cual ya tiene los permisos de ejecución.

Esta version de Wiring para Linux llega gracias a Gabriel Zea que se ha encargado de armar la cadena de herramientas compilación entre ellas el AVR para LInux.

Por el momento lo he probado en Ubuntu 11.04 y ha funcionado correctamente la compilación, la búsqueda del puerto, pero no me ha funcionado la descarga del sktech a la tarjeta que recién actualice, debo seguir probando hasta identificar el problema.

Wiring 1.0 RC3 en Linux Ubuntu 11.04

Enlaces :

 

Tagged with:



En July 1 de 2011, Marlon J. Manrique escribió acerca de Wiring : Version 1.0 RC3 Disponible para Linux.
Apr 22

Introducción.

Firefox tiene una característica que permite recuperar el conetenido de su sesión (las pestañas abiertas) aún después de que ha ocurrido un problema grave de ejecución como es el caso cuando el proceso termina abruptamente o el equipo se apaga sin cerrarse convenientemente.

La siguiente vez que se utiliza Firefox, este permite elegir si se desea iniciar una nueva sesión o si por el contrario se desea restaurar la versión anterior.

Yo acostumbro aprovechar esta característica para trabajar en ciertas páginas web durante varias sesiones sin tomar nota de sus URLs, confiando en que la restauración de sesión las abrirá nuevamente.  Esto ha sido confiable salvo algunas pocas oportunidades en las cuales he perdido la sesión, especialmente molesto cuando por error propio presiono el botón de iniciar una nueva sesión en lugar del de restaurar.

Por suerte Firefox permite recuperar la copia de seguridad de la sesión aún si se ha decidido iniciar una nueva.  El procedimiento es muy simple y se explica a continuación.

Procedimiento.

Tan pronto como se desee recuperar la copia de seguridad de la sesión anterior escribir en la barra de direcciones la siguiente instrucción.

about:sessionrestore

La última sesión disponible se recuperará inmediatamente restaurando las pestañas que se tenía abiertas.

La configuración de la restauración de sesión permite ajustar otros comportamientos relacionados como el forzar a que siempre se restaure la sesión si hay una disponible, restaure automáticamente la siguiente sesión únicamente o desactivar esta característica.

Enlaces.

Tagged with:



En April 22 de 2011, Jorge Iván Meza Martínez escribió acerca de Recuperar la sesión de Firefox.
Feb 07

Introducción.

El día de ayer fue liberada la versión 6.0 (Squeeze) de GNU/Linux Debian.  En el presente artículo se describen los pasos necesarios para actualizar este sistema operativo desde su versión anterior, Lenny (5.0), a la actual.

Como en toda actualización se recomienda hacer copias de seguridad previas de la información importante y en caso de realizarse en un servidor en producción se recomienda realizar pruebas de compatibilidad para garantizar su correcto funcionamiento.

Procedimiento.

Crear una copia de seguridad de la lista de repositorios del sistema operativo.

# cp /etc/apt/sources.list /etc/apt/sources.list.bak

Modificar la lista de repositorios del sistema operativo reemplazando las ocurrencias de Lenny a Squeeze.  El resultado final será algo similar a lo mostrado a continuación.

# vi /etc/apt/sources.list

# main repo
deb http://ftp.debian.org/debian/ squeeze main
deb-src http://ftp.debian.org/debian/ squeeze main
deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main

# contrib & non-free repos
#deb http://ftp.debian.org/debian/ squeeze contrib non-free
#deb-src http://ftp.debian.org/debian/ squeeze contrib non-free
#deb http://security.debian.org/debian/ squeeze/updates contrib non-free
#deb-src http://security.debian.org/debian/ squeeze/updates contrib non-free

Actualizar los índices de los paquetes a partir de los nuevos repositorios recién configurados.

# aptitude update

Instalar screen (opcional) para mantener la actualización aún si se cierra el shell desde donde se inició.

# aptitude install screen

Ejecutar screen si se instaló.

# screen

Si se pierde la conexión con el shell de la instalación, es posible recuperar su acceso mediante la ejecución del siguiente comando.

# screen -Dr

Actualizar los paquetes básicos para la instalación de la nueva versión.

# aptitude install apt dpkg aptitude

Realizar la actualización del sistema operativo.

# aptitude dist-upgrade

Enlaces.

Tagged with:



En February 7 de 2011, Jorge Iván Meza Martínez escribió acerca de Actualizar Debian Lenny a Squeeze.
Feb 04

LibreOffice

LibreOffice

Introducción.

LibreOffice es la suite de productividad personal basada en OpenOffice que se empezó a desarrollar después de los drásticos cambios conceptuales sucedidos en la organización después de su compra por parte Oracle.

A continuación se relacionan los pasos necesarios para instalarla en un equipo con GNU/Linux Ubuntu 10.10 reemplazando el OpenOffice incluído de manera nativa.

Procedimiento.

Desinstalar cualquier versión previa de OpenOffice.

$ sudo apt-get purge “openoffice*.*”

Agregar el repositorio de LibreOffice y refrescar el índice de paquetes.

$ sudo add-apt-repository ppa:libreoffice/ppa

$ sudo aptitude update

Instalar los paquetes básicos del software.

$ sudo aptitude install libreoffice libreoffice-gnome

Instalar la traducción oficial al español (opcional).

$ sudo aptitude install libreoffice-help-es libreoffice-l10n-es

Activar el idioma español.

Si se instaló la traducción al idioma español (paso anterior) es posible actualizarla mediante el menú Tools > Options.

Opciones de idioma

Opciones de idioma

En el diálogo de opciones de idioma bajo la rama Language Settings / Languages, elija los siguientes valores de acuerdo con sus necesidades.

  • User interface: idioma para la interfaz de usuario.
  • Locale settings: información para la localización.
  • Default currency: información de moneda (se selecciona automáticamente con la localización).
  • Default languages for documents: idioma por defecto para los documentos.

Enlaces.

Tagged with:



En February 4 de 2011, Jorge Iván Meza Martínez escribió acerca de Instalar LibreOffice en GNU/Linux Ubuntu 10.10 desde repositorio.
Feb 03

Introducción.

Es conocido que la arquitectura de 32 bits (i686) no puede direccionar 4GB o mas de memoria RAM (~2.8GB) aunque esta se encuentre físicamente instalada en la máquina.

Una solución para este problema consiste en utilizar un sistema operativo basado en una arquitectura de 64 bits (x64), la cual le permite direccionar una cantidad mayor de memoria.  El uso de esta arquitectura trae consigo algunos problemas que pueden ser incómodos en equipos de escritorio mas no en servidores.

  • El gasto de memoria RAM del sistema operativo es mayor.
  • Algunas aplicaciones de 32 bits no funcionan correctamente, por ejemplo el plugin de Flash.
  • Algunas aplicaciones y librerías que se distribuyen de manera binaria no se encuentran disponibles para 64 bits.

Finalmente he llegado a la conclusión que sólo debe utilizarse un sistema de 64 bits cuando realmente se amerite, en cualquier otro caso se deberá utilizar uno de 32 bits.

  • Servidores en producción.
  • Equipos que contengan máquinas virtuales sobre las cuales se ejecuten sistemas operativos de 64 bits.
  • Equipos con 4GB o mas de memoria RAM.

El último caso incluía también a las máquinas de escritorio que contaban con 4GB o mas de memoria RAM, es decir, era necesario instalarles un sistema operativo de 64 bits de lo contrario no podrían utilizar la totalidad de la memoria disponible.

Para evitar esto es posible utilizar un kernel con soporte para PAE (Physical Address Extension) sobre un sistema operativo de 32 bits.  Con esto se amplía el espacio de direcciones hasta 36 bits lo que permite direccionar hasta 64GB de memoria RAM.

A continuación se detallan los pasos necesarios para instalar el kernel con soporte para PAE en un computador de escritorio que utiliza GNU/Linux Ubuntu 10.10 de 32 bits como sistema operativo.

Procedimiento.

Inicialmente se cuenta con el kernel de 32 bits instalado por defecto.

$ uname -a

Linux jimezam-ultra 2.6.35-22-generic #33-Ubuntu SMP Sun Sep 19 20:34:50 UTC 2010 i686 GNU/Linux

Este kernel no permite direccionar la totalidad de la memoria RAM a pesar de que el equipo cuenta con 4GB instalados físicamente.

$ free -m

total       used       free     shared    buffers     cached
Mem:          2926 762       2163          0         50        404
-/+ buffers/cache:        307       2618
Swap:         4769          0       4769

Se procede con la instalación del kernel con soporte para PAE.

$ sudo aptitude install linux-generic-pae linux-headers-generic-pae linux-image-generic-pae

Es necesario reiniciar la máquina para que el nuevo kernel recién instalado sea tenido en cuenta.

$ sudo reboot

El nuevo kernel sigue siendo de 32 bits pero ahora incluye el soporte para PAE.

$ uname -a

Linux jimezam-ultra 2.6.35-25-generic-pae #44-Ubuntu SMP Fri Jan 21 19:01:46 UTC 2011 i686 GNU/Linux

Ahora es posible apreciar como la memoria direccionada es mayor en comparación con el kernel original.

$ free -m

total       used       free     shared    buffers     cached
Mem:          3922 898       3024          0         52        527
-/+ buffers/cache:        317       3604
Swap:         4769          0       4769

Enlaces.

Tagged with:



En February 3 de 2011, Jorge Iván Meza Martínez escribió acerca de Soporte a mas de 4GB de RAM en GNU/Linux Ubuntu de 32 bits.
Jan 11

Introducción.

Empathy es el software de mensajería que incluye por defecto GNU/Linux Ubuntu desde su versión 10.04.  Antes utilizaba Pidgin el cual es está mas maduro debido a su mayor trayectoria, sin embargo después de instalar esta última versión de Ubuntu -10.10- decidí darle una oportunidad a esta nueva aplicación.

Tal y como lo mencioné, a este software aún le faltan varias de las características que considero indispensables para su uso, entre ellas la posibilidad de permitir o negar la posibilidad de los contactos de ver nuestro estado o comunicarse con nosotros (privacidad).

Estado de la sesión en Empathy

Estado de la sesión en Empathy

Otra característica que extrañaba era la posibilidad de estar invisible, es decir, conectado a los diferentes servicios de mensajería pero sin aparecer conectado en las listas de mis contactos.  Esto era parcialmente factible, ya que con protocolos como el de Messenger era posible pero específicamente con el de GTalk (mensajería de Google) no lo era, cuando se tenían cuentas activas de este protocolo el estado era asignado automáticamente como ocupado lo que hacía a mi usuario evidentemente visible.

Pensé que era una limitación del protocolo de Google (basado en XMPP) sin embargo recientemente encontré que era realmente un bug de Telepathy -la librería que da soporte a las conversaciones en Empathy- y que este ya ha sido corregido.

Actualizar Empathy.

La nueva versión de las librerías que corrige este problema no puede ser instalada automáticamente desde el repositorio, al menos para la versión actual de Ubuntu, aparentemente por un problema de dependencias.  Por este motivo es necesario realizar una actualización manual de los paquetes.

En primera instancia es necesario descargar las nuevas versiones de los siguientes archivos.  Para la versión de 32 bits de Ubuntu:

  1. http://packages.ubuntu.com/natty/i386/telepathy-gabble/download
  2. http://packages.ubuntu.com/natty/i386/libsqlite3-0/download
  3. http://packages.ubuntu.com/natty/i386/libtelepathy-glib0/download

Para la versión de 64 bits de Ubuntu.

  1. http://packages.ubuntu.com/natty/amd64/telepathy-gabble/download
  2. http://packages.ubuntu.com/natty/amd64/libsqlite3-0/download
  3. http://packages.ubuntu.com/natty/amd64/libtelepathy-glib0/download

Posteriormente es necesario instalar los paquetes .deb descargados anteriormente.  Esto se puede hacer de varias maneras, desde haciendo doble clic sobre ellos y dejando que el Ubuntu Software Center se encargue de ellos hasta, como yo lo prefiero, instalarlos desde línea de comando de la siguiente manera.

$ sudo dpkg -i libsqlite3-*.deb telepathy-gabble_*.deb libtelepathy-*.deb

Finalmente es necesario reiniciar Empathy para utilizar la nueva versión recién instalada.

Enlaces.

Tagged with:



En January 11 de 2011, Jorge Iván Meza Martínez escribió acerca de Actualizar Empathy a la versión 2.32.1.
Dec 31

Introducción.

Minim parece ser una muy buena librería para la reproducción y manipulación de archivos de audio utilizando a Processing como lenguaje de desarrollo.

Experimentando con esta librería intentaba reproducir dos sonidos provenientes de dos archivos WAV diferentes, sin embargo siempre obtenía el siguiente mensaje de error a pesar de que cuando lo intentaba con uno sólo funcionaba correctamente.

JavaSound Minim error
==== Couldn’t open the line: line with format PCM_SIGNED 44100.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian not supported. ====

Este problema me sucedía tanto al utilizar AudioSample como con AudioSnippet.

Solución.

Aparentemente el problema está relacionado con la plataforma Ubuntu ya que esta apuesta por OpenJDK como máquina virtual de Java por encima de la distribución oficial de Oracle (sun-java6) y por este motivo desafortunadamente olvidaron agregarle el soporte para el sistema PulseAudio que utiliza por defecto esta distribución.

La solución propuesta en los foros es copiar los archivos necesarios desde los directorios de OpenJDK a sus equivalentes de SunJava6.  En mi caso que utilizo exclusivamente la última versión fue necesario que instalara temporalmente el paquete openjdk-6-jre-lib, copiara los siguientes archivos y lo desinstalara nuevamente.

$ sudo cp /usr/lib/jvm/java-6-openjdk/jre/lib/[ARCH]/libpulse-java.so /usr/lib/jvm/java-6-sun/jre/lib/[ARCH]/

$ sudo cp /usr/lib/jvm/java-6-openjdk/jre/lib/ext/pulse-java.jar /usr/lib/jvm/java-6-sun/jre/lib/ext/

Se debe tener cuidado al reemplazar la subcadena [ARCH] contenida en la primera instrucción a ejecutar con la correspondiente plataforma instalada realmente, ya sea de 32 bits (será entonces i386) o de 64 bits (amd64).  La ejecución del comando uname -m debería brindar información suficiente al respecto.

Enlaces.

Tagged with:



En December 31 de 2010, Jorge Iván Meza Martínez escribió acerca de Problemas para reproducir sonidos en Processing con Minim bajo Ubuntu 10.10.
Dec 30

Introducción.

Después de actualizar mi servidor de desarrollo a Ubuntu 10.10 server empecé a tener problemas para iniciar las máquinas virtuales basadas en KVM.  Básicamente se quejaba por problemas de permisos en /u/vms donde se almacenan las imágenes de los discos duros virtuales (por defecto es /var/lib/libvirt/images -global- o ~/.libvirt/storage -usuario-).

En los logs de las máquinas virtuales ubicados bajo /var/log/libvirt/qemu se pueden apreciar mensajes como el siguiente.

char device redirected to /dev/pts/1
qemu: could not open disk image /u/vms/sandbox_ubuntuserver-10.10_x64.img: Permission denied

Las imágenes de los discos duros pertenecen a root:root y esta relación es restaurada cada vez que se intenta ejecutar cada una de las máquinas virtuales así que modificarlas manualmente es infructuoso.

$ ls -l /u/vms

-rw——- 1 root root 7516192768 2010-08-11 23:32 c-head.img
-rw——- 1 root root 7516192768 2010-08-04 18:21 c-wn1.img
-rw——- 1 root root 7516192768 2010-07-24 16:42 c-wn2.img
-rw——- 1 root root 7516192768 2010-07-15 00:34 c-wn3.img

Solución.

Indicar explícitamente que root será el grupo y el usuario que ejecutará los procesos de QEMU.  Para hacer esto es necesario realizar el siguiente ajuste de configuración.

$ sudo vi /etc/libvirt/qemu.conf

# The user ID for QEMU processes run by the system instance
user = “root”

# The group ID for QEMU processes run by the system instance
group = “root”

Reiniciar el servicio para tener en cuenta los cambios recién realizados.

$ sudo service libvirt-bin restart

Conclusiones.

Aparentemente la nueva versión de KVM en Ubuntu trae consigo cambios en la forma como este se ejecuta, siendo ahora bajo usuarios sin privilegios y antes como root.  El proceso de actualización, al menos en mi caso, parece que no consiguió realizar todas las modificaciones necesarias para alcanzar este objetivo y por ello fue necesario indicar explícitamente que se utilizaba a root para ejecutar los procesos (método antíguo).

Otra posible solución a este problema podría haber sido indicarle a QEMU/libvirt (o a quien corresponda) que efectivamente se desea ejecutar los procesos con usuarios sin privilegios (método nuevo) sin embargo por el momento no he logrado encontrar quien es el responsable de los cambios de estos cambios de propiedad de los archivos.

Enlaces.

Tagged with:



En December 30 de 2010, Jorge Iván Meza Martínez escribió acerca de Problemas de permisos para ejecutar las máquinas KVM después actualizar a Ubuntu 10.10 Server.
Dec 09

Introducción.

Preparando un mejor ejemplo para el uso del wiimote con Processing decidí actualizar la versión procedimiental del Laberinto que utilicé como demostración en una charla hace un par de meses.

Con esta mejora es posible conectar el wiimote al sketch y controlar con él al caballero en busca de su tesoro mas preciado: la princesa :-)  Adicionalmente el wiimote vibrará cuando el caballero se encuentre con ella.

El movimiento del caballero es controlado por el d-pad mientras que el botón de inicio (home) lo teletransporta y el botón #1 reinicia el juego.

Implementación.

Como primera instancia es necesario tener instaladas las librerías requeridas para el uso del wiimote con Processing.

A continuación se realizan las siguientes modificaciones al código base del sketch.

Se importa el paquete de las clases relacionadas con el wiimote.

import lll.wrj4P5.*;

Se establece una referencia global al control.

Wrj4P5 wii;

En el setup se establece la conexión con el wiimote.

void setup()
{
    // ...
    wii = new Wrj4P5(this);
    wii.connect();
}
Se implementa el método buttonPressed para manejar los eventos provenientes del control con la lógica que se mencionó anteriormente: d-pad controla la dirección, home teletransporta al jugador y el botón #1 reinicia el juego.
void buttonPressed(RimokonEvent evt, int rid)
{
  if (evt.wasPressed(RimokonEvent.LEFT))
    moverJugador(LEFT);
  if (evt.wasPressed(RimokonEvent.RIGHT))
    moverJugador(RIGHT);
  if (evt.wasPressed(RimokonEvent.DOWN))
    moverJugador(DOWN);
  if (evt.wasPressed(RimokonEvent.UP))
    moverJugador(UP);
  if (evt.wasPressed(RimokonEvent.ONE))
    reset();
  if (evt.wasPressed(RimokonEvent.HOME))
    teletransportarJugador();
}

La verificación del encuentro entre la princesa y el caballero se realiza en el método moverJugador y sucede cuando la nueva ubicación del caballero no es una pared && es un tesoro, en ese momento se ejecuta la siguiente instrucción para hacer vibrar el control.

wii.rimokon.vibrateFor(400);

Enlaces.

Tagged with:



En December 9 de 2010, Jorge Iván Meza Martínez escribió acerca de Laberinto 0.2 controlado por wiimote.