Monthly Archives: January 2009

Formatear una memoria USB FAT32 desde Linux OpenSuse 11.1

Paso #1:

Insertar la unidad USB en un puerto libre del PC.

Paso #2:

Identificar el dispositivo el cual hace referencia a la unidad.

$ ls -l /media

drwxr-xr-x 2 jimezam root 4096 2009-01-22 08:40 disk

Si la unidad montada es la referenciada por la etiqueta disk, ejecutar el siguiente comando.  Reemplace disk por el nombre que corresponda con la etiqueta real de  su unidad USB.

$ mount | grep disk

/dev/sdf1 on /media/disk type vfat (rw,nosuid,nodev,shortname=lower,flush,utf8,uid=1000)

El punto de montaje es /dev/sdf1.

Paso #3:

Desmontar la unidad del sistema operativo.

$ umount /dev/sdf1

Paso #4:

Crear el sistema de archivos en la unidad USB.

$ sudo /sbin/mkfs.msdos -F 32 /dev/sdf1

Paso #5:

Montar nuevamente la unidad USB.  El método mas sencillo para este paso es desconectarla del equipo y volverla a conectar.

Paso #6:

Verificar y reparar cualquier problema con el sistema de archivos.

$ sudo /sbin/fsck.msdos -a -t -v /dev/sdf1

Para mas información acerca del comando fsck.msdos revisar su correspondiente manual.

Mis plugins de Firefox preferidos

Aprendiendo punteros con Binky

Maravillas del outsourcing (y de la gerencia)

http://dilbert.com/

http://dilbert.com/

Instalar VirtualBox en OpenSuse 11.1

Para realizar la instalación de VirtualBox en OpenSuse 11.1 a partir de la distribución nativa se deben ejecutar los siguientes comandos en una ventana de shell, utilizando el nuevo gestor de paquetes de línea de comando llamado Zypper que viene a reemplazar al APT y Yum de las distribuciones anteriores.

$ sudo zypper install virtualbox-ose
$ sudo zypper install virtualbox-ose-guest-tools

Elija una de las siguientes líneas según el tipo de kernel que tenga instaldo.

$ sudo zypper install virtualbox-ose-kmp-default
$ sudo zypper install virtualbox-ose-kmp-pae

En mi caso era la versión 2.6.27.7-9-pae motivo por el cual instalé la segunda opción.  Es posible conocer la versión del kernel instalado ejecutando el siguiente comando.

$ uname -r

También es necesario inscribir a los usuarios que ejecutarán las máquinas virtuales en el grupo vboxusers de la siguiente manera.

$ sudo /usr/sbin/usermod USUARIO -A vboxusers

Donde USUARIO es el nombre de usuario de la persona que estará facultada para ejecutar sesiones de VirtualBox.  Si se omite este paso se obtendrá el siguiente mensaje de error al intentar ejecutar a la aplicación.

/usr/lib/virtualbox/VirtualBox: Permission denied

El ícono de acceso directo queda (oculto) almacenado bajo la siguiente ruta de los menúes de Gnome:

System > Emulator > VirtualBox OSE

Montar un recurso compartido Windows desde Linux

Esta es una actividad extremadamente sencilla, sin embargo me es útil documentarla ya que acostumbra a olvidárseme, especial desde el cambio del tipo de formato smbfs a cifs.

El panorama es claro, del lado del servidor tenemos una máquina Windows (u otro sistema operativo con Samba) con una carpeta compartida.  Del lado del cliente tenemos un equipo con Linux y la distribución -cliente- de Samba instalada.  Se desea montar en la carpeta web del cliente el recurso compartido shared del servidor, utilizando los privilegios del usuario user.

Este procedimiento requiere que se tenga instalado el paquete smbfs en el cliente el cual se puede instalar de la siguiente manera.

$ sudo aptitude install smbf

Para implementar el montaje de la partición remota realizamos los siguientes pasos.

  1. Crear la carpeta /web.  Este paso depende de sus necesidades.$ sudo mkdir /web
    $ sudo chmod 777 /web

  2. Realizar el montaje del recurso compartido.$ sudo mount -t cifs -o user=user //servidor/shared /web

Scrum en menos de 10 minutos

  • Actores del equipo.
    • Product owner.
      • Representa al cliente y a los usuarios.
      • Selecciona cuales características del Product Backlog deben ser realmente implementadas.
      • Determina el rumbo del proyecto.
    • Scrum Master.
      • Asegura que el proyecto avance fluida y exitosamente.
      • Protege al equipo de perturbaciones externas.
      • Confirma que cada miembro del equipo cuenta con la información y las herramientas necesarias para desempeñar su función.
      • Cita a reuniones.
      • Monitorea los avances del grupo.
      • Administra el plan de liberaciones (releases).
      • Es el administrador del proyecto.
    • Scrum Team.
      • Desarrollan el producto y realizan las estimaciones.
      • El tamaño óptimo de este grupo varía entre 5 y 9 personas.
      • Sus funciones son intercambiables y sin roles.
      • Todos los miembros son responsables por todas las actividades.
    • Realizadores de pruebas.
    • Clientes & Usuarios.
    • Ejecutivos.
  • Considerada una de las mejores prácticas de desarrollo ágil.
  • De la imagen del producto deseado se obtiene un listado general de requerimientos (lista de deseos ideales): Product Backlog.
  • El Product Backlog es dinámico y se adecúa a medida que el proyecto evoluciona.  Es responsabilidad del Product Owner.
  • El desarrollo del producto se divide en varias entregas o liberaciones (releases).
  • Se identifican cuales características van a ser incluídas en la próxima liberación (release): Release Backlog.
  • Las características del Release Backlog se priorizan y se estiman sus tiempos de desarrollo: tiempo estimado de la liberación.
  • El trabajo de implementar las características del Release Backlog se divide en varias iteraciones (sprints) generando los Sprint Backlogs.
  • La duración de una iteración (sprint) varía entre un par de días y 30 días.
  • El objetivo de las iteraciones (sprints) es el de implementar un subconjunto de las características del Release Backlog y obtener por consiguiente un subproducto funcional.
  • La sumatoria de los subproductos funcionales de cada iteración (sprint) constituyen el producto final para el cliente.
  • Con respecto a las iteraciones (sprints) realizan dos tipos de reuniones.
    • Sprint planning: 1 día para la planeación de la iteración (sprint).
    • 30 días de trabajo en la implementación de la iteración (sprint).
    • Sprint review: 1 día para la revisión de la iteración (sprint).
  • El Gráfico de Agotamiento (Burnout chart): compara el progreso real de las iteraciones (sprints) versus lo planeado.
  • El GA indica día a día la cantidad de trabajo que falta por desarrollar en una iteración (sprint) o en una liberación (release).
  • La pendiente de la gráfica indica la velocidad del desarrollo.
  • Esta información permite estimar la cantidad de tiempo necesaria para finalizar la iteración (sprint) o liberación (release) actual y determinar si el proyecto se desarrolla a tiempo según lo planeado o si por el contrario, se encuentra atrasado en su cronograma.
  • Los valores del GA se obtienen de la resta entre los tiempos estimados de las actividades del Sprint Backlog y lo actualmente desarrollado.
  • Los errores se gestionan de manera independiente al Release Backlog en el Defect Backlog.
  • Las características solo se consideran terminadas cuando se solucionan todos sus errores encontrados.
  • También es posible planear iteraciones (sprints) basadas únicamente en solucionar lo encontrado en el Defect Backlog.
  • Las reuniones diarias (Daily Scrum) se realizan de pie para hacerlas breves y concisas.
  • El tiempo estimado de estas reuniones es de 10 a 15 minutos.
  • En las Daily Scrum cada desarrollador resuelve las siguientes preguntas al Scrum Master:
    • Qué hizo el día anterior ?
    • En qué va a trabajar hoy ?
    • Qué obstáculos o problemas estima que se le van a presentar ?
  • En las Sprint Review el Scrum Team resuleve las siguientes preguntas al Scrum Master:
    • Qué hicimos bien ?
    • Qué no hicimos bien ?
    • Qué debemos cambiar para mejorar ?

Instalación de Aptana 1.2.1 en OpenSuse 11.1

Hasta la fecha siempre había sido desjuiciado para la instalación de Aptana, simplemente descargaba el archivo .zip, lo descomprimía y funcionaba inmediatamente y sin problemas.  Ahora con OpenSuse 11.1 y Java 1.6.0_11-b03 no funcionó tan fácilmente, iniciaba pero después de mostrar la ventana principal se cerraba con un mensaje de error.

Lo primero que sucedió fue que descubrí que hay un procedimiento de instalación oficial :-P    el cual sugiere crear un script de shell para ejecutarlo en lugar de correr directamente a AptanaStudio.

Ubiqué a Aptana en /home/jimezam/Applications/aptana y creé el script /home/jimezam/Applications/aptana.sh con el siguiente contenido.

export MOZILLA_FIVE_HOME=/usr/lib/xulrunner-1.8.1.19
/home/jimezam/Applications/aptana/AptanaStudio

Gracias a este foro me dí cuenta que la versión 1.9.x del XulRunner no funciona correctamente y es mejor utilizar la última versión 1.8.x disponible.

Creé un nuevo perfil de Firefox para la depuración con Aptana ejecutando el siguiente comando.

$ firefox –ProfileManager

Para ejecutarlo debe cerrar todas las instancias de Firefox, incluyendo procesos no visibles (killall).  El perfil creado se llama "aptana".

El siguiente paso es configurar a Aptana para que utilice el perfil recién creado como navegador para la depuración, para esto inicie Aptana desde el script recién creado.

Seleccione el menú Run > Debug.

Bajo la rama (lado izquierdo) Web Browser > Firefox – Internal Server modifique el valor de los siguientes campos.

  • Browser executable = /usr/bin/firefox
  • Arguments = -P aptana -no-remote

Presione el botón Close para aceptar los cambios.

Para instalar el módulo de PHP se realizan los siguientes pasos.

Seleccione el menú Help > Software Updates > Find and install.

Seleccione la casilla de verificación llamada Search for new features to install y presione el botón Next.

Seleccione la casilla de verificación llamada Aptana: PHP Development Enviroment y presione el botón Finish para iniciar la instalación.

Instalar Netbeans 6.5 en OpenSuse 11.1 con Java 1.6.0_11

Extrañamente la instalación de Netbeans no estaba funcionando correctamente, al ejecutar el comando desde el shell me dí cuenta que se estaba generando el siguiente error.

Cannot find java. Please use the –jdkhome switch.

A pesar de que Java se encontraba instalado en el directorio /usr/local/jdk1.6.0_11 y que esta ruta se encontraba en el PATH y en el JDK_HOME desde el /etc/profile.  Para corregir esto lo que hice fue indicarle a Netbeans donde se encontraba Java a través de la variable netbeans_jdkhome de su propia configuración.

$ vi /home/jimezam/Applications/netbeans-6.5/etc/netbeans.conf

netbeans_jdkhome="/usr/local/jdk1.6.0_11"

Activando las 'teclas muertas' en OpenSuse 11.1

Este año en el equipo de la Fundación voy a utilizar OpenSuse para variar un poco el Ubuntu del año pasado.  Inclusive iba a cambiar a KDE pero la versión 4.1 incluída en el OpenSuse 11.1 me estaba generando muchos errores de protección general y terminé regresando al ya habitual Gnome.

Siempre utilizo el sistema operativo en Inglés con la distribución de teclado en Inglés Internacional (para Windows), esto trae consigo las teclas muertas (dead keys) que me permiten poner tildes a las vocales y las eñes con la presión contígua de dos teclas.  En OpenSuse configuré la distribución del teclado con la siguiente información: USA (layout) y Basic (variant) y las teclas muertas no quedaron funcionando.

Para corregir esta situación se debe realizar un cambio muy sencillo a la configuración, para hacerlo se deben seguir estos pasos.

  1. Abrir el YaST: System > System > YaST.
  2. Bajo la sección de Hardware ejecutar la aplicación Keyboard Layout.
  3. Modificar el Variant a intl.
  4. Presionar Ok para terminar.