Corrección ortográfica Evolution
26 de Septiembre de 2007
De vez en cuando se me escapa alguna falta de ortografía en los correos electrónicos. Esto se va a acabar.
Mi gestor de correo habitual, Evolution, tiene la posibilidad de revisar la ortografía según vamos escribiendo pero para ello hay que instalar previamente los diccionarios de los idiomas en los que solemos escribir habitualmente.
El paquete que proporciona los diccionarios en debian se llama aspell, con aspell-es estaremos instalando el diccionario en castellano.
aptitude install aspell-es
Para activar la revisión ortográfica en Evolution 2.10 lo hacemos en Editar > Preferencias > Preferencias del editor > Ortografía.
Si no nos aparece la lista de diccionarios instalados y estamos usando Gnome como escritorio es porque nos falta el paquete gnome-spell.
aptitude install gnome-spell
:wq
ThinkingRock
28 de Agosto de 2007
Gracias a la recomendación de AJ he comenzado a usar la aplicación ThinkingRock para aplicar GTD en todos los ámbitos. En mi anterior post sobre GTD comentaba cómo gestionaba mis tareas a través del gestor de correo electrónico con la imposibilidad de añadir pensamientos/tareas que no me llegaran a través del correo. Con ThinkingRock este inconveniente está solucionado.
Una de las ventajas de esta aplicación es que permite a cualquiera en iniciarse en el trabajo con GTD desde el primer momento.
Para comenzar a trabajar tan sólo tenemos que crear nuestro archivo y definir los contextos (trabajo, carrera, personal) y los tópicos (llamada, reunión, online, etc.).
Una vez hecho esto podemos empezar a recolectar pensamientos y comenzar a procesarlos convirtiéndolos en acciones simples o proyectos complejos compuestos por varias acciones simples.
Por cada acción simple podemos seleccionar terminarlas tan pronto como sea posible (Do As Soon As Possible), delegarlas o planificarlas para una determinada fecha.
Aquí tenéis unas demos para ver todas las posibilidades:
How to set up contexts and topics
How to collect and process your thoughts
How to review and update your actions
How to plan and review your projects
Una de las funcionalidades que echo en falta es la de poder enviar por correo electrónico desde la misma aplicación las acciones o los proyectos que has delegado.
Tengo que encontrar una forma de tener accesible mi archivo para poder importarlo desde mi casa con las últimas actualizaciones de pensamientos que haya dado de alta. Muchas veces en el trabajo me pasan por la cabeza cosas que tengo que hacer en casa y libera mucho apuntarlas y despreocuparse. Tan sólo tienes que estar pendiente de la pestaña Do ASAP e ir completando las tareas que aparecen en la lista. Yo suelo intercalar una tarea que me guste con otra que no me guste tanto para no dejar siempre las tediosas pendientes.
Probadlo y me contáis si habéis mejorado vuestra productividad.
:wq
Comienzo PFC
26 de Agosto de 2007
Me ha costado bastante coger el ritmo de trabajo después de volver de vacaciones. He decidido no prepararme la única asignatura que me ha quedado para septiembre este año e intentar ir a clase aunque me pise 1 hora semanal con otra asignatura.
Los motivos que me han llevado a tomar esta decisión han sido que no creía poder afrontar con garantías ese examen y que puedo aprovechar el tiempo hasta el comienzo de las clases para sentar las bases del PFC y tener planificado el trabajo para empezar en serio con el proyecto en el segundo cuatrimestre.
No descarto realizar a partir de ahora algunas entradas del blog en inglés para dar más alcance al PFC.
Espero haber tomado la decisión acertada.
:wq
Algoritmos Voraces
9 de Agosto de 2007
Los algoritmos voraces son algoritmos genéricos que se usan normalmente para intentar resolver problemas de optimización. Esto es, problemas en los que hay que maximizar o minimizar una función objetivo.
Se parte de un número de elementos de entrada y se van seleccionando o descartando formando el conjunto final de seleccionados que cumplen las restricciones del problema inicial.
No se tiene la posibilidad de dar marcha atrás y rehacer la selección. La solución no tiene porque ser óptima siempre.
Podemos utilizar el siguiente esquema para resolver problemas mediante algoritmos voraces:
alg
inicializa()
mientras (No fin() )
seleccionaYElimina()
si prometedor():
anotaEnSolucion()
fsi
fmientras
fin
Con la función inicializa() pretendemos establecer las variables necesarias para resolver el problema y asociarles un valor. La función fin() establece el final de las iteraciones sobre el conjunto de elementos de entrada. seleccionaYElimina() es la encargada de elegir el elemento de entrada que se va a procesar y lo elimina del conjunto. prometedor() se encarga de determinar si el elemento elegido añadido al conjunto de salida hace que este mantenga las restricciones del problema. En ese caso se anotaEnSolucion().
Partiendo de este esquema podemos intentar solucionar algunos problemas mediante algoritmos voraces que suelen tener unos ordenes de complejidad bajos.
:wq
Sysadmin Day
27 de Julio de 2007
El último viernes de Julio de cada año se celebra el día del administrador de sistemas.
Felicidades a todos a los que las máquinas los entienden más rápido que las personas.

Durante las vacaciones me autoregalé una lampara led usb (en una tienda de 1 pound en Nottingham) para teclear con el portátil de noche y creo que es un buen día para estrenarlo.
#!/bin/ssh #The Unix Guru's View of Sex unzip ; strip ; touch ; grep ; finger ; mount ; fsck ; more ; yes ; umount ; sleep
:wq
Debian codenames
1 de Julio de 2007
Muchos de vosotros ya sabréis la procedencia de los nombres de las versiones de la distribución Debian GNU/Linux. Cuando yo comencé a usar Linux como sistema operativo principal la versión estable de debian era la “potato”, aunque nunca llegué a instalarla porque por aquella época yo usaba Red Hat. La primera debian que instalé fue “woody” que fue versión estable hasta que “etch” la sustituyó. Yo suelo usar siempre en mi escritorio la versión inestable “sid” y actualmente la versión de pruebas (testing) se llama “lenny”. Pues bien, todos estos nombres de versiones han sido tomados de los personajes de la película de animación Toy Story.
Bruce Perens trabajó para Pixar y fue uno de los líderes de Debian y a partir de ahí surgieron los nombres de las versiones de debian.
Hasta hoy hemos tenido las siguientes versiones:
Debian 1.1 -> Buzz (Lightyear - juguete galáctico)
Debian 1.2 -> Rex (tiranosaurio)
Debian 1.3 -> Bo (Peep - pastora de porcelana)
Debian 2.0 -> Hamn (cerdito)
Debian 2.1 -> Slink (perro muelle)
Debian 2.2 -> Potato (mister potato)
Debian 3.0 -> Woody (vaquero)
Debian 3.1 -> Sarge (sargento de los muñequitos de plástico verdes)
Debian 4.0 -> Etch (pizarra telescketch)
Debian testing -> Lenny (binocular)
Debian unstable -> Sid (el vecino malo rompe juguetes, también signiufica Still In Development)
Se rumorea que el nombre de la siguiente versión lo elige la hija de de Ian y Debora.
Aún quedan muchos nombres de personajes sin utilizar. Larga vida a Debian.
:wq
Laptop crash test
22 de Junio de 2007
Durante algunas épocas del año mi trabajo pasa por hacer pruebas exhaustivas de rendimiento y compatibilidad con GNU/Linux de una gran cantidad de portátiles de todas las marcas y colores.
Esta prueba no la he llegado a hacer nunca.
:wq
Aseveraciones científicas
13 de Junio de 2007
¿Qué es un niño complejo? Un niño con la madre real y el padre imaginario.
Dios es real, a menos que sea declarado entero.
Jesús a sus discípulos: “En verdad os digo: y = x ^2+3x+4″ Los discípulos empiezan a hablar entre si hasta que Pedro se dirige a Jesús y muy apesadumbrado le dice:
- Maestro no entendemos….
- Tranquilos, es una parábola.
2 + 2 = ?
- Ingeniero: 3.9968743
- Físico: 4.000000004 - 0.00000006
- Matemático: Espere, solo unos minutos mas, ya he probado que la solucion existe y es unica, ahora la estoy acotando…
- Filosofo: ¿Que quiere decir 2+2 ?
- Lógico: Defina mejor 2+2 y le responderé.
¿Cómo se calcula el volumen de una vaca?
- Ingeniero: “Metemos la vaca dentro de una gran cuba de agua y la diferencia de volumen es el de la vaca, con esto y su peso, podemos calcular el peso especifico, y así solo pesando a las restantes vacas sabremos su volumen.”
- Matemático: “Parametrizamos la superficie de la vaca y se calcula el volumen mediante una integral triple.”
- Físico: “Supongamos que la vaca es esférica…”
¿Qué hace un electron cuando cae al suelo? Planck
¿Y cuando eructa? Boooooorh
¿Qué es un oso polar ? Un oso rectangular, después de un cambio de coordenadas.
Dos vectores se encuentran y uno le dice al otro: ¿Tienes un momento?
¿Qué le dice la curva a la tangente?: No me toques!
Me gustan los polinomios, pero solo hasta cierto grado.
¿Que le dice un superconductor a otro? “Que frío hace!, no resisto mas.”
Profesor: “A ver, digame usted una forma de comprobar el efecto Doppler, usando la luz en vez del sonido.”
Alumno : “Hmmm… cuando es de noche, las luces de los coches se ven blancas cuando se acercan y rojas cuando se alejan.”
Las tres leyes de la termodinámica :
1) No puedes ganar.
2) No puedes empatar.
3) No puedes abandonar el juego.
Para entender que es la recursividad, antes hay que entender que es la recursividad.
Hardware es aquello que acaba estropeándose.
Software es aquello que acaba no funcionando.
Hardware es aquello a lo que le puedes dar patadas.
Software es aquello a lo que solo puedes maldecir.
Un científico es alguien que lo sabe todo de nada mientras que un filosofo es aquel que sabe nada de todo.
¿Cuántos eran los dálmatas? 101. Pos por el culo te la jinco.
:wq
Guadalinex v4 USB Live
7 de Junio de 2007
Introducción
Normalmente cuando tenemos que trabajar desde un ordenador que no es nuestro entorno de trabajo habitual necesitamos un periodo de adaptación para ser productivos.
La finalidad de este artículo es disponer de una distribución de Linux adaptada a nuestras necesidades para poder utilizarla en cualquier equipo que permita arrancar desde un dispositivo externo usb.
Ingredientes
- Dispositivo de almacenamiento USB de al menos 1Gb de capacidad (recomendado 2Gb)
- Distribución GNU/Linux instalada con las herramientas parted (gparted, qtparted), syslinux y mtools. (recomendado guadalinex, ubuntu o debian)
- CDROM o imagen ISO de Guadalinex v4 Live
Advertencia
Al seguir los pasos de esta receta perderás todos los datos que contenga el dispositivo de almacenamiento USB que uses. Se utilizarán herramientas de particionado y los pasos que se muestren pueden diferir dependiendo de la configuración del equipo donde se realice. Al particionar pueden producirse pérdidas de datos de el/los disco/s duro/s del equipo por lo que recomiendo encarecidamente hacer copia de seguridad de los datos críticos antes de realizar los siguientes pasos, nunca está de más y seguro que llevas mucho tiempo sin hacer una :).
Pasos a seguir
La idea es usar el dispositivo de almacenamiento USB (a partir de ahora, pincho) como si se tratara de un CDLive pero con la característica de persistencia de datos. Para ello necesitaremos crear 2 particiones en el pincho usb: una para la distribución propiamente dicha y otra para almacenar nuestras preferencias y los datos con los que trabajemos.
Conectar el pincho usb al equipo
Iniciar la herramienta de particionado (# gparted) y seleccionar el correcto dispositivo USB, nuestro pincho.

En mi caso se trata de un disco duro externo usb de 100Gb al que le he dejado 2 Gb sin particionar al final.
Primero creamos una partición de al menos 700 Mb (800Mb en mi caso) formateada bajo FAT16 y con la marca de arranque activada.
Después creamos una partición con el resto de espacio disponible formateada bajo Ext2 con la etiqueta casper-rw y sin marca de arranque.
Una vez creadas las particiones tenemos que copiar parte del contenido del cd o la iso de Guadalinex v4 a la partición de arranque.
Suponiendo que tenemos la imagen iso en /ruta/de/guadalinex-v4.iso ejecutamos los siguientes comandos
$ mkdir /tmp/livecd
$ sudo mount -o loop /ruta/de/guadalinex-v4.iso /tmp/livecd
con los que montamos el contenido de la iso en el directorio /tmp/livecd.
Ahora tenemos que montar las particiones, podemos hacerlo simplemente desconectando y volviendo a conectar el pincho usb. Para ver el punto de montaje donde se han montado las particiones podemos volver a utilizar la herramienta de particionado y fijarnos en dicha información.
Si lo queremos hacer a mano podemos ejecutar los siguientes comandos
$ mkdir /tmp/liveusb
$ mount /dev/sdXX /tmp/liveusb
donde sdXX es el dispositivo de la partición fat16 de arranque.
Una vez montadas las particiones copiamos algunos de los archivos y directorios de la iso que montamos anteriormente a la partición de arranque del pincho usb.
$ cd /tmp/livecd
$ cp -rf casper disctree dists install pics pool preseed .disk isolinux/* md5sum.txt README.diskdefines ubuntu.ico casper/vmlinuz casper/initrd.gz install/mt86plus /tmp/liveusb/
donde /tmp/liveusb es el punto de montaje de la partición de arranque del pincho usb y /tmp/livecd es donde tenemos montada la iso de guadalinex.
Ahora tenemos que crear en /tmp/liveusb un archivo llamado syslinux.cfg con el siguiente contenido:
DEFAULT persistent GFXBOOT bootlogo GFXBOOT-BACKGROUND 0xB6875A APPEND file=preseed/ubuntu.seed boot=casper initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash -- LABEL persistent menu label ^Arrancar Guadalinex en modo persistente kernel vmlinuz append file=preseed/ubuntu.seed boot=casper persistent initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash -- LABEL live menu label ^Arrancar o instalar Guadalinex kernel vmlinuz append file=preseed/ubuntu.seed boot=casper initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash -- LABEL xforcevesa menu label Arrancar Guadalinex en ^modo seguro kernel vmlinuz append file=preseed/ubuntu.seed boot=casper xforcevesa initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash -- LABEL check menu label ^Buscar defectos en la imagen de arranque kernel vmlinuz append boot=casper integrity-check initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash -- LABEL memtest menu label ^Realizar test de memoria kernel mt86plus append - LABEL hd menu label ^Arrancar desde el primer disco duro localboot 0x80 append - DISPLAY isolinux.txt TIMEOUT 300 PROMPT 1 F1 f1.txt F2 f2.txt F3 f3.txt F4 f4.txt F5 f5.txt F6 f6.txt F7 f7.txt F8 f8.txt F9 f9.txt F0 f10.txt
Tan sólo nos queda hacer que nuestro pincho usb sea arrancable para lo cual vamos a desmontar la partición de arranque y vamos a utilizar el comando syslinux.
$ umount /tmp/liveusb
$ syslinux -f /dev/sdXX
donde sdXX es la partición formateada en fat16 con la marca de arranque.
Esto es todo, ahora tan solo tenemos que configurar la BIOS del equipo que queramos arrancar con nuestra Guadalinex v4 USBLive y conectarle el pincho usb antes de encenderlo.
Fuentes: Installing Ubuntu Linux on a usb pendrive.
:wq
Final Concurso Universitario de Software Libre
10 de Mayo de 2007
Hoy he tenido la posibilidad de asistir a la final del primer concurso universitario de software libre.
El primer proyecto que se ha presentado ha sido webDevStudio de , un entorno integrado de desarrollo online basado en PHP y AJAX que aún encontrándose en un estado de producción temprana puede sernos de utilidad si tenemos que desarrollar algo rápido y no disponemos de una plataforma de trabajo.
El segundo proyecto presentado ha sido una interfaz gráfica para el programa de cálculo numérico Octave (similar a Matlab) llamada QtOctave. Seguro que será una herramienta ampliamente utilizada cuando el proyecto esté más maduro.
En tercer lugar hemos podido ver el funcionamiento de una herramienta para incrementar la seguridad de un servidor bajo Linux. Se trata de una implementación del método de apertura de puertos port-knocking llamada SharpKnocking basada en C# sobre el framework de Mono.
La última presentación del día, mi principal motivo de asistencia a este evento, fue conocer en persona a Mario Izquierdo (mariodebian) y a su proyecto de sistema operativo para clientes ligeros, TCOS, que es de una utilidad muy importante para reutilizar hardware relativamente antiguo.
A nivel interno los clientes (ligeros) descargan a través de la red un mini sistema operativo GNU/Linux y lo cargan en memoria, a partir de ahí se conectan a un servidor desde el cual se ejecutan las aplicaciones que se muestran en los clientes.
Cuando termine los exámenes tengo que examinar en profundidad el código de esta aplicación para ver si puedo reutilizar los esfuerzos de Mario para mi PFC y si es posible colaborar de alguna forma en este interesante proyecto.
Tengo que dar desde estas líneas mi más sincera enhorabuena a los organizadores de este concurso por el buen hacer y el buen ambiente que se ha puesto de manifiesto en esta final, agradecer la posibilidad de conocer a gente tan interesante y animarlos a continuar con esta extraordinaria iniciativa para futuras ediciones a las que me comprometo públicamente a ayudar en la medida de lo posible.
:wq



