lunes, 25 de junio de 2007

Compilando el kernel de Linux

Tenía que compilar el kernel de Linux para una práctica de la facultad. Lo compilé una vez para probar y después lo compilé y le agregué soporte para la placa de red. Las siguientes instrucciones están basadas en el readme que viene con las fuentes del kernel.

1)Descargar el kernel, yo utilicé el 2.6.21.5

2) Copiar el kernel al directorio de fuentes:
sudo mv linux-2.6.21.5.tar.gz /usr/src


3) Descomprimir las fuentes del kernel:
cd /usr/src
sudo tar xzvf linux-2.6.21.5.tar.gz

4) Crear un directorio aparte para poner el código compilado(se recomienda):
mkdir /home/diego/build
mkdir /home/diego/build/kernel

5) Elegir las opciones de configuración del kernel:
make O=/home/diego/build/kernel menuconfig

6) Compilar el kernel, paciencia, este proceso lleva mucho tiempo(4 hs en mi caso):
make O=/home/diego/build/kernel

7) Instalar los módulos del kernel:
sudo make O=/home/diego/build/kernel modules_install install

8) Modificando la configuración del gestor de arranque:
sudo mkinitrd -o initrd.img-2.6.21.5 2.6.21.5
sudo gedit grub/menu.lst

Agregar lo siguiente luego de ## ## End Default Options ##:
title Ubuntu, kernel 2.6.21.5
root (hd0,1)
kernel /boot/vmlinuz-2.6.21.5 root=/dev/hda2 ro quiet splash
initrd /boot/initrd.img-2.6.21.5
savedefault
boot

title Ubuntu, kernel 2.6.21.5 (recovery mode)
root (hd0,1)
kernel /boot/vmlinuz-2.6.21.5 root=/dev/hda2 ro single
initrd /boot/initrd.img-2.6.21.5
boot


9) Reiniciar para probar el nuevo kernel. Nada más me tiró unos errores(warnings más bien), pero funciona todo bien.

Donde dice /home/diego debe reemplazarse diego por el nombre de usuario real.

Más info:

Compilando el kernel
Otro tutorial

miércoles, 20 de junio de 2007

Diseño web: conociendo otros puntos de vista

Hace unos días, mientras buscaba unas cosas de diseño web, encontré el blog de Tecnología multimedia 1, una cátedra de la carrera de Diseño Multimedial (Facultad de Bellas Artes UNLP). Después me dió curiosidad y quise ver que daban, y después de ver los temas me llamó mucho la atención que se dieran temas que yo creía que ya ni eran considerados para diseño de sitios web (en concreto se enseñaba a diseñar sitios web con frames).

Yo tengo una formación distinta, plasmada en frases como: "Está mal diseñar con tablas", "No hay que usar frames", "Hay que separar el contenido de la presentación", "HTML sólo se debe utilizar para definir la estructura semántica del documento". Siempre estuve a favor de utilizar HTML para el contenido y CSS para la presentación, cuesta un poco más de trabajo, pero los resultados se ven en: modularidad del código, fácil mantenimiento, facilidad de cambiar la presentación del sitio. Es trasladar las ideas utilizadas para resolver problemas y para desarrollar programas al ámbito del desarrollo de sitios web.

Todas las páginas que hice, las hice con un editor de texto (JEdit). De hecho nunca me gustaron el Dreamweaver ni demás aplicaciones WYSIWYG, ya que considero que el código que generan es bastante malo, y es algo casi imposible de mantener.

Otro asunto es la diferencia que parece existir entre el diseñador y el desarrollador. La impresión que siempre tuve de los diseñadores es que les importaba más el aspecto visual que la funcionalidad o el cumplimiento de estándares. Los resultados me parecían siempre los mismos: páginas con frames, páginas diseñadas con tablas, diseñadas con Flash, sitios que no pasan la validación del W3C, etc. A su vez algunos diseñadores opinaban que las páginas hechas por informáticos eran funcionales, pero totalmente antiestéticas.

Como el tema me interesaba y consideré que era un lugar adecuado para debatirlo, decidí dejar un comentario en la página y recomendar algunos links. Al otro día descubrí que lo habían publicado, y me gustó mucho la idea del contacto interdisciplinario, ya que creo que enriquece a ambas partes y permite desarrollar mejores sitios.

Los 10 comandos que más uso en Linux

Siguiendo una idea que vi en el blog de Alejo, estos son los 10 comandos que más uso en Linux.

history|awk '{print $2}'|awk 'BEGIN {FS="|"} {print $1}'|sort|uniq -c|sort -rn|head -n 10

138 sudo
70 ghc
45 cd
41 ifconfig
29 plog
25 ls
17 ./compilador
15 ps
15 man
11 kill


Sí, el ghc es el Glasgow Haskell Compiler, y lo uso para hacer el trabajo de Compiladores.

martes, 19 de junio de 2007

¿Cómo aprendo a programar en Java?

Alejo escribió:

"...Querer aprender Java no es lo mismo que querer aprender a programar. Mucha gente aprende Java solo para poder trabajar de eso y ganarse algún dinero, pero solo los que quieren aprender a programar pueden lograr algo interesante..."

Instalando Xubuntu



Luego de innumerables problemas, pude hacer funcionar la placa de red en Ubuntu. Después se me ocurrió actualizar manualmente mi distribución de Ubuntu (de Hoary a Dapper), pero hubo un error y arruiné el SO. La segunda vez que quise hacer lo mismo también hubo errores, pero por suerte pude arreglar todo desde línea de comandos, la única consecuencia es que con la versión del kernel 2.6-10 no funciona el X Window.

Mirando los 'otros' Ubuntus, me dieron ganas de instalar Xubuntu. ¿Qué es Xubuntu?. Básicamente lo mismo que Ubuntu, pero en lugar de utilizar GNOME utiliza Xfce. Quizá no sea tan lindo a nivel visual, pero es mucho más rápido, ya que Xubuntu se diseñó para computadoras mas antiguas o para usuarios con máquinas más potentes que quisieran tener un sistema más eficiente.

Si ya se tiene Ubuntu, Xubuntu es fácil de instalar, sólo se instala con el Synaptic el paquete xubuntu-desktop, o con la consola:

sudo apt-get install xubuntu-desktop

Después al iniciar sesión se puede elegir el entorno que se quiera usar.

Página oficial de Xubuntu