Archive for the ‘software’ Category

Shiretoko

Domingo, 28 \28UTC junio , 2009

Llevaba una temporada en la que me daba la sensación de que Firefox cada vez se arrastraba un poco más. Vale, vale, sé que esto no puede ser si no es por algún motivo perfectamente justificado. Pero la sensación la tenía.

Había leído por ahí que los de Mozilla estaban ya en la fase de release candidates del Firefox 3.5. Me lo he instalado. También me he instalado swiftfox, que es una especie de branch del Firefox pero, según dicen, más optimizado. ¿La verdad? Pues bueno, que sí que mola más la versión 3.5 del Firefox, por defecto tira de fuentes con antialias y parece que arranca algo antes y va más ligerete, pero bueno aún tengo que descubrir si merece la pena del todo.

Ahí sigo.

5800, Ubuntu y viva la movilidad!

Lunes, 23 \23UTC marzo , 2009

Pues eso, que estoy más contento con mi móvil que unas castañuelas! (No había dicho antes esto en algún lado?). Mi queridísimo Ubuntu (Intrepid Ibex) es un todo terreno de la conectividad y la movilidad y en conjunción con mi al menos tan querido Nokia 5800XM, hacen maravillas.

En cuanto conecto el móvil al PC por USB me indica el modo que prefiero, principalmente “PC Suite” y “Mass Storage”. El segundo es bastante evidente y es el propio para la transferencia de archivos entre el PC y el móvil y su tarjeta de 8Gybes.

El interesante es el primero: “PC Suite”. En principio, supongo, está pensado para el software del mismo nombre de Nokia y que, por supuesto, no funciona en Linux. Ubuntu, Gnome, Linux y el network-manager son una maravilla ya que detectan el dispositivo de “Banda Ancha inalámbrica” perfectamente. Un click sobre el iconito en la barra de Gnome y, tachán, a interné via 3.5G.

Si hubiera sabido esto hace un par de semanas… simplemente nunca se me había ocurrido conectarlo en modo “PC Suite”, hasta que lo hice en Windows y lo dejé en ese modo. Al volver a Ubuntu, qué sorpresa más agradable que me he llevado 🙂

Enhorabuena a todo el mundo que haya trabajado desarrollando e integrando todo esto, sois todos unas máquinas.

Wacom Bamboo Fun

Martes, 6 \06UTC enero , 2009

AtardecerIntenso – Firmado

Originally uploaded by iratxo.foto

Estas navidades me ha caido uno de los gadgets que siempre había pensado en gestionarme, pero que por una cosa o por otra siempre había postpuesto: Una tableta digitalizadora.

El nombre no es muy afortunado, pero el resultado es una pasada. En particular, y para los interesados, mi mujer me ha regalado una Wacom Bamboo Fun de las grandes. El apartito es una superficie con una relación 16:9 (como mi monitor) y de unos 14x20cm (no lo sé con exactitud). Se conecta por USB y viene con un “lápiz” digital sin pilas. Es una pequeña maravilla de la ergonomía: tiene una punta que al pasar sobre la superficie de la tableta parece como un lápiz de verdad, además de dos botones y una parte de arriba, como una goma, que también es activa.

Ubuntu 8.10 reconoce la tableta Bamboo nada más enchufarla al USB, usando un driver “wacomlinux” que viene de serie con la distribución. El problema es que con esta configuración básica, no hay soporte para la goma de borrar ni para la sensibilidad a la presión, por ejemplo.

Esta pequeña ayuda de la comunidad Ubuntu: https://help.ubuntu.com/community/Wacom tiene una configuración para el fichero xorg.conf que activa estas funcionalidades. Son especialmente útiles en Gimp o inkscape.

Me voy a pintar un poco 🙂

Ah! La foto que encabeza el post tiene mi primera firma digitalizada con la Bamboo, yuju!

Actualizado: Aquí un “dump” de mi xorg.conf

Section “Files”
EndSection

Section “InputDevice”
Identifier    “Generic Keyboard”
Driver        “kbd”
Option        “CoreKeyboard”
Option        “XkbRules”    “xorg”
Option        “XkbModel”    “pc105”
Option        “XkbLayout”    “es”
EndSection

Section “InputDevice”
Identifier    “Configured Mouse”
Driver        “mouse”
Option        “CorePointer”
Option        “Device”        “/dev/input/mice”
Option        “Protocol”        “ImPS/2”
Option        “ZAxisMapping”        “4 5”
Option        “Emulate3Buttons”    “true”
EndSection

Section “InputDevice”
Identifier    “Synaptics Touchpad”
Driver        “synaptics”
Option        “SendCoreEvents”    “true”
Option        “Device”        “/dev/psaux”
Option        “Protocol”        “auto-dev”
Option        “HorizEdgeScroll”    “0”
EndSection

Section “InputDevice”
Driver        “wacom”
Identifier    “stylus”
Option        “Device”    “/dev/input/wacom”
Option        “Type”        “stylus”
#Option        “ForceDevice”    “ISDV4”        # Tablet PC ONLY
Option        “USB”    “on”        # USB Only
EndSection

Section “InputDevice”
Driver        “wacom”
Identifier    “eraser”
Option        “Device”    “/dev/input/wacom”
Option        “Type”        “eraser”
#Option        “ForceDevice”    “ISDV4”        # Tablet PC ONLY
Option        “USB”    “on”        # USB Only
EndSection

Section “InputDevice”
Driver        “wacom”
Identifier    “cursor”
Option        “Device”    “/dev/input/wacom”
Option        “Type”        “cursor”
#Option        “ForceDevice”    “ISDV4”        # Tablet PC ONLY
Option        “USB”    “on”        # USB Only
EndSection

Section “Device”
Identifier    “Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller”
Driver        “intel”
BusID        “PCI:0:2:0”
VideoRam    64000
Option        “UseFBDev”        “true”
EndSection

Section “Monitor”
Identifier    “Monitor genérico”
Option        “DPMS”
HorizSync    28-50
VertRefresh    43-75
EndSection

Section “Screen”
Identifier    “Default Screen”
Device        “Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller”
Monitor        “Monitor genérico”
DefaultDepth    24
SubSection “Display”
Modes        “1280×800”
EndSubSection
EndSection

Section “ServerLayout”
Identifier    “Default Layout”
Screen        “Default Screen”
InputDevice    “Generic Keyboard”
InputDevice    “Configured Mouse”

# Uncomment if you have a wacom tablet
InputDevice     “stylus”    “SendCoreEvents”
InputDevice     “cursor”    “SendCoreEvents”
InputDevice     “eraser”    “SendCoreEvents”
InputDevice    “Synaptics Touchpad”
EndSection

VirtualBox en Ubuntu – Intrepid Ibex

Lunes, 3 \03UTC noviembre , 2008

Si veníais usando VirtualBox en Ubuntu 8.04LTS, lo habitual era tener que instalar el paquete con el módulo apropiado para el kernel que se usaba: Por ejemplo virtualbox-ose-modules-2.6.24-19-generic.

El problema es que en Intrepid Ibex no hay un módulo que soporte el kernel por defecto (2.6.27-7). La solución es sencilla:

  1. Instala el paquete “dkms”. Es un paquete que se encarga de monitorizar el software que depende del kernel y si hay cambios en el kernel y están las fuentes del paquete, lo recompila solo.
  2. Instala las cabeceras del kernel “linux-headers-generic”, por ejemplo.
  3. Instala las fuentes del driver OSE de VirtualBox: “virtualbox-ose-source”.

Este tercer paso hará que se compile e instale el driver, y tachán, VirtualBox funcionando de nuevo y además si hay cualquier cambio de kernel en el futuro, pues con mucha probabilidad se recompilará y funcionará sin tener que instalar más paquetes :).

Sobre planificación de proyectos…

Martes, 7 \07UTC octubre , 2008

http://sinergiasincontrol.blogspot.com/2008/07/17-21072008-estimaciones-imaginativas.html

Es realmente muy buena la tira que hay detrás del link.

via: La masa, el ladrillo…

Revelado RAW

Domingo, 7 \07UTC septiembre , 2008

Las Rozas, Anochece.

Originally uploaded by iratxo.foto

Aunque ya llevo jugando a hacer fotos un tiempo, vamos para 9 meses más o menos en serio, nunca me había planteado el uso de mis fotos en RAW, y eso que, por si acaso, siempre disparo en JPEG y en RAW al mismo tiempo.

RAW es un formato de fichero de imagen digital en crudo, como su nombre indica. El formato RAW suele ser propietaro de cada marca de cámara y varía entre modelos de una misma marca. Básicamente un archivo RAW es un “dump” de lo que ha capturado el sensor de la imagen sin ningún tipo de procesado. A este fichero la cámara suele añadir más información como: datos EXIF, información de procesado, balance de blancos y una copia de baja calidad en JPEG de la imagen, para poder mostrarla como vista en miniatura en los programas que lo soportan.

La gracia verdadera de todo esto es que es la información en crudo del sensor. Dicen por ahí que es lo más parecido a un negativo analógico, pero en versión digital.

Lo malo de estos ficheros es que no son ni estándar, ni manipulables directamente. Hace falta hacer un “revelado”. Básicamente esto lo hace la cámara cuando guarda las fotos en jpeg, aplica un procesado: filtro bayes, ajuste de blancos, de tono y tinte, realce pasoalto, contraste… y guarda comprimido un jpeg.

Si se trabaja en RAW, al no hacerlo automáticamente la cámara, hay que hacerlo mediante un software de “revelado raw”. Este software se encarga de procesar la imagen para convertirla a JPEG, TIFF, PNG… o los formatos de salida que soporte. Lo bueno es que estos softwares dan un control absoluto al usuario sobre el proceso de transformación.

Yo uso Linux y no hay un soporte comercial de software de revelado, pero hay alternativas más que decentes. Yo recomiendo rawstudio como herramienta sencilla pero rápida y fácil de usar, o alternativamente RawTherapee, más compleja pero muchísimo más rica en parámetros de control.

En las tres últimas sesiones que he hecho de fotos he tratado de no tirar en exclusiva de JPEG a la hora de pasar las fotos a mi colección, y he intentado seleccionar las mejores o algunas un poco difíciles y las he procesado desde RAW.

La foto de la cabecera del post es una foto que daba por perdida al verla en JPEG, pero tras jugar unos minutillos con rawstudio, he conseguido este resultado que me ha gustado mucho más que otras fotos que eran, en teoría, técnicamente mejores.

Chrome

Jueves, 4 \04UTC septiembre , 2008

No he probado aún este navegador. Creo que lo haré cuando pueda hacer “apt-get install chrome” en mi Ubuntu. Así pues, no puedo hacer ningún comentario, pero he encontrado una cita que me ha ilusionado sobre el engredito de Google:

Miguel de Icaza sobre Chrome:

El código de Chrome es bello, elegante, sucinto, muy en el espíritu de Kernighan y Ritchie

Sin duda un comentario buenísimo.

Vía: Microsiervos.

Podcast – Recomendación

Miércoles, 27 \27UTC agosto , 2008

Al hilo de mi última (y primera) recomendación sobre un podcast, el de Guillermo Flores, he estado trasteando con algunos sitemas para gestionar y escuchar podcasts. Al final, después de jugar un rato y hacer cosas más serias después, he llegado a la conclusión de que el mejor se adapta a mis necesidades es: gpodder. En ubuntu “apt-get install gpodder“. Lo encontré con apt-cache search :).

La verdad es que me gusta porque permite tener el respositorio local de ficheros en un disco independiente y te puede sincronizar tanto con iPod como con una tarjeta de memoria o dispositivo que esté montado en el sistema de archivos. Yo me he sincronizado con mi móvil y me he descargado unos 750Mbytes de podcasts sin problemas. Ahora voy enganchado todo el día al móvil, pero sin hablar.

Trac como herramienta para Scrum

Domingo, 24 \24UTC agosto , 2008

Hace ya un tiempo que tengo pensado escribir una entrada sobre este tema, pero por unas cosas o por otras lo he ido dejando en la pila de “por escribir”. Hoy, esperando a que se suban unas 270 fotos para revelar, me he planteado que puede ser un buen momento.

Desde hace un par de años venimos usando Trac como sistema central para la gestión de proyectos software (y los que no son software en general también) en la empresa donde trabajo. Trac es un sistema web centrado en un wiki, con sistemas montados alrededor de él: tags, blog, sistema de tickets/incidentes… y un montón de plugins, extensiones y macros. Está pensado para la organización de proyectos de desarrollo software de forma principalmente colaborativa.

En un principio hemos estado usando Trac de una forma intensa pero sin un objetivo definido. Simplemente viene bien para documentar, tracear bugs, información personal y demás.

Una de las cosas que más me ha convencido Trac con el pasar del tiempo es lo bien que se puede usar en un entorno o grupo de desarrollo que tenga implantada una metodología tipo scrum. Scrum es una forma de gestionar/avanzar en proyectos de desarrollo software (principalmente, aunque no exclusivamente). Está basada en el concepto de que un pequeño grupo de gente auto-organizada responde mejor a los cambios y es más eficiente, sobre todo si se auto establecen objetivos a muy corto plazo y se mantiene una comunicación muy muy muy fluida entre todos los miembros del equipo.

Sin entrar en excesivos detalles, scrum tiene tres conceptos centrales: Pila de producto (o proyecto), pila del sprint y el propio scrum. La pila de producto es una lista de funcionalidades (u objetivos) a medio/largo plazo que se establecen en el proyecto de desarrollo. Generalmente esta pila no está definida por completo nunca y siempre está cambiando, su dueño es el gestor del producto (product manager). Esta pila es la guía final del proyecto, aquí están representado lo que quiere nuestro cliente (o lo que se establece en un estándar) y es a lo que hemos de ir a buscar.

La pila de sprint es, como su nombre indica, las cosas que el grupo se propone hacer para el sprint. Un sprint no es más que un periodo de corto relativamente corto, de entre 2 y 6 semanas, en el que se establecen unos objetivos sacados de la pila de producto y que se meten en la pila de sprint. El equipo es responsable de calibrarse, de asumir los trabajos y de gestionarse para conseguir que al final de mes la pila de sprint esté vacía.

Por último, el scrum en sí, además de la metodología, es una mini-reunión diaria que se establece para, básicamente, permear el conocimiento y la gestión en el grupo e intentar resolver cualquier problema de ahora o del futuro próximo. Se han de responder tres simples preguntas: ¿Qué has hecho desde el último scrum?/¿Qué harás para el siguiente?/¿Algún problema?.

Insisto en que Trac me gusta porque trae herramientas incorporadas que permiten la implantación de una filosofía tipo scrum de manera bastante sencilla. El propio wiki es una forma extremadamente colaborativa de documentar un proyecto, o cualquier cosa, que se lleva muy bien con la filosofía de gestión scrum. Pero es que además:

El blog permite documentar, si se desea, los sprints de una forma rapidísima y muy útil para una referencia futura.

Los milestones, que pueden tener fecha o no, permiten implementar tanto la pila del producto (sin fecha), como la del sprint (con fecha).

Los tickets, pueden asociarse fácilmente a las entradas en la pila de producto o de sprint, y es sencillo ir traspasando tickets de una pila a otra y ver cómo se van quemando los sprints según se van cerrando los tickets.

Además me gustan especialmente dos funcionalidades de trac. Por un lado los tags me parecen un sistema realmente muy potente y natural de organizar la información. La metainformación es una forma de no preocuparse por complicadas jerarquías o estructuras de organización de la información, si no simplemente de asignar palabras clave a un documento, blog o ticket. Posteriormente una consulta a los tags apropiados y recuperamos todos los documentos asociados. Si se es solo un poco ordenado con los tags, se pueden crear complejas estructuras de información, muy sencillas de acceder, con la información totalmente a mano siempre.

Por otro lado el blog, además de para documentar reuniones, es muy potente para animar al equipo a documentar. Creo que la excesiva formalidad o burocracia está detrás del anquilosamiento de los proyectos, y estoy convencido de que metodologías menos formales como el wiki o mejor aún, un blog basado en wiki como el de trac, incentivan a la gente a escribir documentación para uno mismo o para los demás. La clave del éxito total pasa por asignar unos tags correctos y ya tendremos una forma de indexar esas entradas, además de la temporal, por supuesto.

Mi recomendación con respecto a proyectos de software, al menos hasta grupos de 6-10 personas, es intentar implantar un sistema trac y si encima se le une una filosofía scrum de gestión, pues mejor.

cramfs en sistemas big-endian (arm, ppc…)

Miércoles, 16 \16UTC julio , 2008

Quería aprovechar para dejar escrito en algún lado un problema al que me enfrenté el otro día jugando con cramfs, linux y un sistema bigendian. Desafortunadamente no conseguí encontrar información sobre lo que ocurría, Google estaba como… ¿perdido?. Lo más probable es que yo no le hiciera las preguntas correctas. De todas formas, para cuando el gran hermano se de una vuelta por aquí, y si tiene a bien indexarlo, comentaré el problema y la solución que encontré.

Estaba yo intentando crear un sistema de archivos usando cramfs. cramfs (con minúscula) es un tipo de sistema de archivos de solo-lectura, ideado para sistemas empotrados con memoria ROM o flash, aunque se usa en otras aplicaciones.

La principal gracia que tiene es que, a diferencia de un ramdisk tradicional, el uso de memoria es muy reducido con lo que es ideal para sistemas empotrados, que por lo general de memoria RAM andan cortitos.

Pues eso. Para hacer el sistema de archivos hay una utilidad: mkcramfs (en Ubuntu: sudo apt-get install cramfsprogs) Esta utilidad es tan sencilla como indicarle un directorio de tu PC donde tengas (por debajo) el sistema de archivos que quieras arrancar en el sistema destino (empotrado, por lo general) y el nombre de fichero de salida. Y ya!

Ale, se flashea/escribe sobre el dispositivo destino y se arranca. Y falla. “kernel panic”, “root filesystem not found”, “unknown block (31,0)”… vamos, que no. Puedes pensar que es un problema de haber compilado el kernel mal, pero si le has puesto soporte para cramfs, estará casi seguro bien, sobre todo si antes ha sido capaz de arrancar, por ejemplo, un ramdisk o un j2ffs.

Lo más probable es que tu ordenador sea little-endian y tu plataforma sea big-endian. La utilidad mkcramfs genera un fichero de salida en formato de la máquina origen, little-endian. Y el host destino es, en este caso, big-endian. El kernel no encuentra el número mágico que le dice que es un cramfs y hace un “panic” irresoluble. Pero la solución es muy sencilla: cramfsswap (en Ubuntu sudo apt-get install cramfsswap). Esta utilidad convierte una imagen cramfs de little-endian a big-endian (y si quieres viceversa también).

Espero que este post le sea de utilidad a alguien.