Desde hace un par de semanas un amigo me mando una invitación a Google Wave, he estado probando la herramienta y a pesar de que desde mi punto de vista aun le falta mucho por pulir, la verdad dudo mucho que remplace los actuales medios de comunicación, pero eso no quita el hecho de que es bastante ágil en comparacion a otros medios, lo cual puede traer ventajas en temas como coordinar proyectos y cosas de ese estilo :).

Uno de los temas que me ha atraido mas con respecto a GWave en los últimos días (y sobre lo que hablare en este post) es sobre la programación de robots usando python y las interfaces de AppEngine


Actualmente para poder crear un Robot, es necesario una cuenta en Google AppEngine. Para crear esta cuenta se necesita verificar a traves de SMS. En el caso de mi país, intente hacerlo a través de Movistar y no funciono, luego intente a través del celular Entel de un amigo y no hubo problema, pero antes de probar eso deje una queja usando el formulario de problemas y al siguiente día hábil me contestaron para confirmar la activación de la cuenta :). La principal ventaja de usar AppEngine para crear robots, es que uno puede aprovechar todas las interfaces que trae Google de por se para hacer Web Services, esto se programa en Python y Java, y por lo menos la interfaz de Python esta muy bien documentada, uno puede dar uso completo a la base de datos que trae la cuenta de AppEngine para poder almacenar estados del robot con respecto a la persona o Wave que interactua, lo cual es una ventaja si se quiere buscar un nivel de interactividad mas acabada. La desventaja esta en que AppEngine funciona con un sistema de Quotas, el cual a pesar de ser generoso para proyectos pequeños y prototipos, pero esta aveces se queda corta con Robots que son llamados extensivamente (ya he visto un par de veces a kasyntaxy@appspot.com salirse de su Quota diaria), y se tiene un limite de 10 proyectos por usuario, asi que hay que cuidarlos amenos que uno este dispuesto a pagar por más.

Por ahora no se pueden testear los robots sin subirlos al servidor de appEngine (de por si uno tiene una cuota de 1000 actualizaciones diarias....), lo cual puede presentar un problema si se piensa actualizar un robot con una funcionalidad nueva, ya que para probarlo, quedaría dispuesto para cualquier usuario automáticamente, de todas maneras este problema se planea solucionar a futuro.

Yo por ahora cree un robot de prueba para probar distintas funcionalidades, el que cree se llama grillobot@appspot.com, esta programado en Python y por ahora permite la misma funcionalidad de Emoticony (cambiar emoticons por imagenes), pero aproveche la base de datos de AppEngine para poder hacer que el robot discrimine a quienes realizar los cambios y la habilidad de permitir a los usuarios poder customizar los emoticons que quieran utilizar a su gusto.

Si quieren conversar sobre el tema, Pingueen a tavez de wave a novalkar (no tengo invitaciones de todas maneras), a continuacion dejare algunos links con la distinta documentación que me ha sido útil para aprender.

Overview sobre Robots
Tutorial de Robots en Python
Referencias de la libreria "waveapi"
Source de Watexy en Python
Documentación de AppEngine
Source de Emoticony en Java



Esta es la ultima vez que voy a poder participar en esta competencia, espero que nos valla bien :).

Para los que apañen, los puntajes estarán publicados y serán actualizados en tiempo real en http://www.acm-icpc.cl/ desde las 14:00 según tengo entendido (la competencia empieza a las 13:00 y dura 5 horas), también escuche que iba a haber un podcast en vivo en el mismo sitio... pero la verdad no se que tiene de entretenido ver a un montón de weones sentados programando... pero spngo q así nos pueden hacer barra virtualmente xDD.

Update: Al final sacamos 9no lugar, empatando con el 2do por problemas, pero con una diferencia de 3 horas de tiempo entre entregas de problemas... lo único que me da paja es no poder haber sacado un mejor lugar que las 2 veces anteriores (7mo y 6to respectivamente), pero al menos lo pase bien participando estos 3 años y gane mucha experiencia con los problemas que resolví, ojalaa que para los próximos años la universidad se ponga las pilas con la capacitación de los equipos futuros...
En el post anterior quedo documentado como instalar Ubuntu 9.04 en un Dell Vostro 1400, en el proceso deje una partición de 20GB vacía, en esta continuación voy a documentar como instalar Windows XP en esta partición de tal forma que pueda ser ejecutado a través de VirtualBox en Ubuntu y a la vez poder empezar el computador booteando desde esta partición, siguiendo los pasos que se explican claramente en este sitio y dándole un par de toques personales.

Introducción:

VirtualBox es un programa OpenSource principalmente desarrollado por Sun, este permite poder aprovechar las tecnologías que traen los procesadores modernos para ejecutar un sistema operativo dentro de otro, haciéndole creer que tiene el control sobre la maquina, siendo que la verdad se comunica con la maquina real a través de "hardware virtual", a este proceso se le llama Virtualización.

Una alternativa a usar la virtualización para ejecutar programas de Windows es Wine, que es una aplicación que crea una capa entre las aplicaciones de Windows y el sistema operativo en que se están ejecutando, traduciendo las llamadas que hacen las aplicaciones de Windows a instrucciones que pueden ser respondidas por el sistema operativo en que se esta ejecutando, esta es una muy buena alternativa para poder ejecutar software de Windows sin tener que recurrir a la piratería o a gastar dinero de mas, pero a pesar que cada vez es mas estable y adquiere mas características nuevas, sigue siendo distinto a ejecutar el programa en Windows directamente, lo cual es posible lograr a través de la virtualizacion.

El problema de virtualizar es que si no se tiene un equipo que tenga los suficientes recursos para ejecutar los 2 sistemas operativos, es bastante lento y poco practico, además que como es una tecnología "relativamente nueva" (desde el 2004 para ser mas especifico) y tiene poco tiempo de desarrollo en comparación con Wine, aun no se desarrollan características que permiten ejecutar algunas aplicaciones que requieren de comunicación directa con el hardware, como lo son algunos juegos que requieren de la aceleración 3D que proporciona la tarjeta gráfica, aunque esta brecha cada vez es menor, ya que en la version 3.0 de VirtualBox implementan drivers virtualizados compatibles con Direct3D 8/9, yo solo intente utilizar las pruebas que vienen con dxDiag, y por lo menos funciona el Direct3D 9, pero se ve que van por buen camino.

Normalmente cuando uno instala una maquina virtual, se utiliza un disco duro virtual (que para el sistema operativo Host, termina siendo solo un archivo), este disco duro solo puede ser accedido desde la maquina virtual a través de VirtualBox, de tal forma q si quisiéramos correr un programa que requiera mas recursos que los que podemos virtualizar, tendríamos que instalar Windows en una partición aparte, terminando con duplicación de los datos y mas cosas que mantener actualizadas, en cambio, si tenemos Windows virtualizado y a la vez corriendo en su propia partición es que uno puede ejecutar el sistema operativo en forma virtualizada para realizar tareas que requieren pocos recursos (hacer debugging de IExplorer 6 o usar aplicaciones el Visual Studio o Microsoft Office) sin tener que reiniciar el computador, y se tiene la opción de que si el programa que se quiere ejecutar no corre por falta de recursos, simplemente se reinicia el computador y se le dan los recursos reales a Windows para que trabaje bien.

ADVERTENCIA: No es recomendable realizar estos pasos si no entiendes lo que estas haciendo, asumo que alguna vez has usado VirtualBox y sabes hacer lo básico (crear maquinas virtuales normales, manejar particiones virtuales y manejar las configuraciones basicas), también es recomendable hacer un respaldo previo de la información importante. También cabe señalar que muchos de estos pasos no son recomendados por los creadores de VirtualBox para los usuarios normales, ya que errores de uso pueden llevar a la perdida completa de la partición o la corrupción de los datos en la partición. Yo no me hago responsable si alguien intenta seguir estos pasos y no obtiene los resultados esperados, terminando con daños físicos, mentales o problemas irreparables de software o hardware, yo me voy a saltar un montón de pasos de la guía original que se encuentra en este sitio, ya que solo estoy documentando la forma en que me funciono a mi con mi Hardware especifico.

Requerimientos:

PC con Ubuntu 9.4 una partición libre: el tamaño depende de el uso, yo le di 20GB para instalar las aplicaciones importantes, los juegos los tengo en un disco duro externo, obviamente puedes intentar con otra distro de Linux, yo estoy documentando con esta nomas.
CD o Imagen de Windows XP: Cualquier versión de XP sirve.
CD o Imagen de Ubuntu 9.04: Otra distro tambien sirve, esta fue la que use y documentare.
VirtualBox: duh?

Paso 1: Preparar la Particion y crear un VMDK que la represente:

Primero tenemos que confirmar que partición es la que estamos usando dentro de nuestro disco duro:

sudo VBoxManage internalcommands listpartitions -rawdisk /dev/sda

En mi caso, la particion es la 3 (type 0x07 y 19077Mb) así que para crear el archivo vmdk use el siguiente comando:

sudo VBoxManage internalcommands createrawvmdk -filename ~/.VirtualBox/rawDiskXP.vmdk -rawdisk /dev/sda -partitions 3 -relative

La opcion -relative sirve para que Virtualbox solo interactué con esa partición cuando quiera trabajar con la maquina virtual.

Luego de esto debemos de alguna forma hacer que VirtualBox pueda escribir directamente en esta partición (en otras palabras, darle permiso de escritura sobre /dev/sda3), en el tutorial muestran 3 formas de hacer esto, siendo la primera la mas simple e insegura (correr VBox con sudo), la ultima mas segura, pero requiere instalar un montón de scripts... lo que termina siendo difícil de mantener, yo intente de optar por la otra opción, que es darme permisos de escritura sobre la partición. Siendo que Vbox al instalarse, crea un grupo de usuarios al que deben pertenecer los usuarios que van a usar la maquina virtual, pensé simplemente cambiar el grupo de la partición de "disk" a "vboxusers" (no es muy seguro, ya que otros programas también quedan con permiso para escribir en esta partición, pero peor es nada), así que intente con el comando

sudo chown :vboxusers /dev/sda3

Para mi sorpresa esto no funciono xD ya que después de un rato volvía a su grupo original (disk), así que luego de investigar en internet descubrí que Ubuntu usa un sistema llamado Udev, que maneja la generación de los nodos dentro de la carpeta /dev, manteniendo los permisos de los archivos que están adentro, pero que de todas maneras se pueden modificar creando un archivo con reglas apropiadamente (para mas detalles, revisen la documentación de udev xD), yo lo hice con gedit, pero se puede resumir en el siguiente comando

sudo echo 'KERNEL=="sda3", GROUP:="vboxusers"' > /etc/udev/rules.d/60-vboxgroup.rules

Luego reinician el sistema y agregan el archivo.vmdk usando el Virtual Disk Manager, si hicieron todo bien con lo de los permisos, no deberían tener problemas.

También es una buena idea evitar que Ubuntu Automonte la partición, ya que si por alguna razón la partición esta montada mientras esta corriendo la maquina virtual, se podrían hechar producir inconsistencias en los datos, y perdidas de información, esto se puede hacer agregando la siguiente linea en /etc/fstab

/dev/sda3 /mnt/native ntfs ro,noauto,umask=117 0 2

Con eso basta para que no pase nada con la partición de forma automática (uno siempre la puede cagar manualmente).

Paso 2: Instalar Windows desde la maquina virtual

Antes de empezar a instalar Windows, es necesario hacer un arreglo archivo vmdk, ya que si intentamos instalar Windows, este va a querer instalar los archivos de inicio donde nosotros tenemos instalado el GRUB (y no queremos eso), así que lo que haremos es primero entrar a la partición a través de una maquina virtual que corra el LiveCD de Ubuntu, y usar el programa Gparted para setear nuestra partición como el lugar de booteo, esto solo se va a setear dentro de el archivo vmdk, así que no deberían haber problemas al instalar Windows después de esto.

Luego creamos nuestra maquina virtual para instalar Windows, usando el archivo VMDK preparado. Antes de proceder a instalar Windows debemos revisar las siguientes opciones en la maquina virtual:

* [I/O APIC] No lo enciendan, va a hacer que su maquina virtual sea mas lenta y terminaran con errores si lo desactivan después. Nota: ACPI tiene que estar encendida de todas maneras.

* [SATA Controller] Actívenlo si están usando la versión de código cerrado de VBox

* [Network] Activen solo una tarjeta virtual, y asignarle la misma dirección MAC que su tarjeta de red fisica.

* [Devices] Aparte de la tarjeta de red, todos los otros dispositivos deberian quedar apagados, estos los activaremos mas adelante.

Ya teniendo esto listo, montamos el disco de Windows XP en la maquina virtual y nos disponemos a instalarlo (solo el sistema operativo por ahora). Cuando Windows ya este corriendo, seguimos los siguientes pasos:

1) Creamos un segundo Perfil de HardWare ("MiPC" -> Propiedades -> Hardware) El segundo perfil de Hardware que creamos vamos a usarlo para la maquina virtual, así que es buena idea nombrar los perfiles adecuadamente (yo les puse "Nativo" y "Virtual"), después de terminar no es recomendable equivocarse de perfil, ya que se perdería la configuración, y todo este atado seria en vano, también es recomendable no usar timeout para no cometer errores al intentar de iniciar.

2) Bajar MergeIDE

3) Deshabilitar el hardware que instalo VirtualBox (solo debería ser la tarjeta de red en este caso, esto se hace desde el Device Manager).

4) Ejecutar MergeIDE con el disco de instalación de Windows montado para dejar lista la partición Nativa, esto se hace a través del siguiente comando:

MergeIDE X

Donde X es la letra del lector de CDs de la maquina virtual (en la mia era D).

ADVERTENCIA: Después de este paso, nunca mas deberían ingresar a la maquina virtual con el perfil Nativo, o sino se lo van a hechar.

5) Apagar la maquina virtual y (ahora si) activar todos los dispositivos en el panel de configuración de esta (Usb y sonido si queremos xD), luego la abrimos denuevo desde la maquina virtual usando el perfil correcto y procedemos a instalar VBGuestAdditions (si quieres instalar Direct3D, instala GuestAdditions en Modo Seguro y sin olvidar elegir el perfil de hardware correcto).

6) Ahora hay que hacer los programas que tienen que iniciar solo en la Maquina virtual solo lo hagan en esta, para hacer esto, primero abrimos la linea de comandos de Windows y ejecutamos el siguiente comando:

ipconfig /all

Este nos va a devolver información sobre la conexión, pero lo que a nosotros nos interesa es el nombre de la tarjeta de red, ya que la maquina virtual usa una tarjeta de red que va a ser distinta a la que tenemos instalada, si instalaron Windows ingles debería aparecer "AMD PCNET Family PCI Ethernet" como el nombre (para mi no fue el caso =P), suponiendo esto, crean un archivo de texto y escriben en el el siguiente script:

ipconfig /all | find "AMD PCNET Family PCI Ethernet"
if NOT ERRORLEVEL 1 start "" %1 %2 %3 %4 %5 %6 %7 %8 %9


Este archivo lo renombran como vm_only.cmd y lo guardan en %windir%\system32\

Luego se meten al registro de Windows y entran a "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", ahí van a estar los programas que se inician al comienzo del sistema, los que queramos que solo sean iniciados por VirtualBox (en nuestro caso, GuestAddins) debemos cambiarlos de esta forma.

C:\WINDOWS\system32\VBoxTray.exe

Pasaria a:

cmd /c vm_only C:\WINDOWS\system32\VBoxTray.exe

En el tutorial original hay un par de tips opcionales mas, como desactivar servicios inútiles para la maquina virtual (como el Bluetooth o el Wifi), instalar Intel Matrix Storage Manager para aprovechar mejor el disco SATA, o activar soporte para múltiples procesadores en el modo nativo, pero no los cubriré, si quieren saber, vallan a la otra guía.

Paso 3: Dentrar a Picar en modo Nativo

Para entrar en modo nativo, primero tenemos que agregar las siguientes lineas en /boot/grub/menu.lst:

title Windows XP
root (hd0,2)
chainloader +1


Ya con esto listo podemos reiniciar el computador y partir en modo Nativo, siendo esta la primera vez que Windows va a ver todos los dispositivos reales, habrá que esperar un rato a que termine de detectar todo (hasta el mouse), luego procedemos a instalar los drivers que faltaron (en mi caso, yo ya los tenia respaldados con un Timestamp, asi que solo tuve que revisar en Dell que drivers estaban desactualizados, bajar los nuevos, remplazar los viejos en el respaldo y cambiar el Timestamp XD).

Ya teniendo lo básico listo, seguimos el mismo paso 6, la única diferencia es que no es necesario verificar la tarjeta, solo copiamos el mismo script y probamos con el caso opuesto, el nuevo script se va a llamar n_only.cmd:

ipconfig /all | find "AMD PCNET Family PCI Ethernet"
if ERRORLEVEL 1 start "" %1 %2 %3 %4 %5 %6 %7 %8 %9


Solo tuve q copiar y borrar el NOT, ya esto listo, se meten al registro y hacen lo mismo que hicieron con VBoxGuestAddins, pero al revés, el q creo el tutorial quedo con esta configuración (yo quede con una mas grande, pero es lo que hay xD).

Ya, y eso fue todo, ahora solo queda instalar el software que quieran, pero eso ya no es asunto mio xD, si quieren activar Windows hay algunos detalles que deben revisar, pero eso lo pueden ver en el Tutorial original. Espero que esto le halla servido a alguien mas, lo que es a mi, me sirve de ayuda de memoria xD.
Ya que termine mi semestre bien, y tengo mas tiempo libre, voy a formatear y limpiar el desastre que deje en las particiones de mi notebook la ultima vez que lo hice xD (a comienzos de año), lo mas probable es que no sea dificil arreglarlo a mano, pero siempre es cómodo tener la opción de botarlo todo y empezar denuevo (aparte que para mi es más entretenido), también el plan es dejar todo esto documentado por si a alguien le sirve o si se me olvida como hacerlo en el futuro (con mi memoria todo es posible).

En resumen, lo que tengo planeado es Formatear el notebook, particionar el disco duro, instalar Ubuntu y luego instalar Windows desde VirtualBox en una partición propia, así poderlo acceder tanto desde Linux como en forma nativa (Aunque la instalación de Windows la documentare en otro post).


ADVERTENCIA: los pasos indicados aquí dan como resultado la eliminación total de la información del disco duro, no es recomendable hacerlo sin hacer un respaldo previo de la información importante. También cabe advertir que yo no me hago responsable si alguien intenta seguir estos pasos y no obtienes los resultados esperados, terminando con daños físicos, mentales o problemas irreparables de software o hardware, solo estoy documentando la forma en que me funciono a mi con mi Hardware especifico.

Materiales a Utilizar:
CD Media Direct
CD Ubuntu 9.04
Aliños a gusto.

Mi Hardware:
Dell Vostro 1400, además viene Bluetooth y Webcam ;D


Paso 0: RESPALDAR!!!

En Linux respaldar es mas fácil, porque la verdad todo lo importante o esta en mi carpeta en /home o en /opt, también es practico respaldar la carpeta /etc (EN ESPECIAL el xorg.conf en mi caso).

Paso 1: Formatear con el disco de Media Direct 3.3

Mi único objetivo al realizar el formateo de esta manera es que el disco instale una partición inicial que contiene algunos archivos de DELL para realizar diagnósticos al computador si algo malo pasa (se pueden acceder a estas herramientas dejando puesto un botón cuando el computador esta booteando), Mas adelante reparticionare el otro espacio, Media Direct nunca me ha servido la verdad =P, es un desperdicio de espacio en el disco duro que se puede aprovechar para un bien mejor, quizás en el futuro vea como hacer para que en vez de empezar Media Direct, parta desde una partición que tenga un sistema de netbook como Moblin o el nuevo GoogleOs xD, habrá que ver.

Paso 2: Particionar el disco y instalar Ubuntu 9.04

La verdad la única parte que voy a documentar de esto es el particionamiento del disco, ya que lo demás pasos para instalar Ubuntu son triviales, a menos que no sepas leer ni llenar formularios, aveces pasa, pero para estos casos existen estos tutoriales.

Volviendo al tema principal, hay muchas formas en que uno puede dividir las particiones, en mi caso, mi disco duro tiene 149,05 GB según el instalador de Ubuntu, así que decidí esta vez dividirlo de esta forma manualmente:

3,36 MB [FAT32]: DellUtility
esta ya viene por el paso 1.
50 MB [EXT4]: /boot
La dejo aquí solo por convención, el espacio basta y sobra harto.
20 GB [NTFS]: Windows XP SP3.
Este espacio queda reservado, antes lo tenia con 15 GB, y quede algo corto para algunos juegos, así q esta vez le daré 5 GB más.
10 GB [EXT4]: / (root)
La vez pasada lo deje en 13,5 y quede justo, asi que esta vez dejare la carpeta opt en una partición aparte y le dare 10 gb
10 GB [EXT4]: /opt
Esta carpeta la uso para instalar SW que no es manejable por el gestor de paquetes, antes llego a 5 GB con lo que le instale, esta vez le di su partición propia y mas espacio.
1 GB [SWAP]:
En algunos lugares leí q con la mitad de la RAM para swap bastaba, otros dicen que con 512MB basta, otros dicen que 1.5x de la RAM sirve, también me han recomendado intentar utilizar el sistema sin swap, pero lo deje así pq es lo que me ha funcionado hasta ahora.
REST GB [EXT4]: /home
Aquí va todo lo mio, ya sean sources en desarrollo, documentos, tareas, trabajos, vídeos, musica... es mi note, así q dudo que cree mas cuentas de usuario de todas maneras XDD.

Lo que me encanta del instalador de Ubuntu es que si lo instalas desde el Live-CD, puedes aprovechar de las bondades del sistema mientras se instala (ya sea navegar por internet, chatear o jugar sudoku :D)

Paso 3: Personalizar y Tunnear

Ya instalado y corriendo el sistema operativo, es bueno darle unos toques finales antes de instalar las herramientas, ya sea instalar controladores especificos (solo el de nvidia en mi caso, ya que al parecer esta vez todo funciona bien :D, hasta el sonido o__O!) o activar y desactivar cosas que no se vallan a usar.

1) Desinstalar Basura

Algunos prefieren partir con un sistema minimalista e instalar lo que van a usar, pero como yo soy flojo, y no dispongo de una coneccion a internet muy buena, prefiero partir desde una base y sacar lo que sobra. Voy a hacer una lista de lo que saque en todo caso (esto lo hago a través del gestor de paquetes synaptic).

Ekiga > Cuando se empiece a masificar la telefonía IP quizás lo instale denuevo).
Evolution > Lo probé durante 6 meses, prefiero el Thunderbird.
example-content > Nada útil para mi.
fspot > No manejo tantas fotos como para necesitar que me las maneje un programa.
gnome-orca > No estoy "TAN" mal de los ojos como para necesitar que me lean la pantalla XD.
gnome-pilot > No tengo una Palm y no tengo planeado comprarme una (aunque quizás un celular con Android xD).
linux-*.2.6.28-11 > ya que se actualizo el kernel, botar el viejo (no borren esto si no saben lo q están haciendo).
onboard > no nito un teclado en pantalla :P.
Transmission > no me gusta este cliente de torrents, me agrada mas el Deluge.
Tomboy > no lo encuentro practico
w3m > ya estoy acostumbrado al lynx para navegar por internet por consola :P.

Cosas q desinstalo pq "creo" q no me sirven de nada:
-------------------------------------------------
bogofilter > yo no tengo servidor de correo, y mis correos los administra Google :P, no necesito otra capa para el spam, pero si el TB lo pide, supongo que volvera.
evolution-common y evolution-data-server > ya que el unico que dependia de ellos era Evolution... (EDIT: evolution-data-server se queda, pq da soporte para integrar ical en el calendario del panel)
fglrx-modaliases > sirve para los drivers de las tarjetas ATI... dudo q me sirva
ggzcore-bin > si algún juego que juegue me lo pide lo reinstalo :P

2) Actualizar y instalar drivers propietarios.

En Ubuntu esto es solo hacer 6 clicks y poner la contraseña del sistema 2 veces =P (quizás reiniciar el sistema por los cambios en el kernel en mi caso)

3) Desactivar TODOS los efectos visuales + Tema Dust Sand

Se verán bonitas las ventanas como gelatina, los escritorios en cubo y las cosas de ese estilo, pero al final lo único que hacen es consumir recursos y sin aportar a la usabilidad del sistema. La verdad no he investigado que tan optimizados están estos sistemas, pero yo prefiero aprovechar estos recursos en otras cosas (esa es mi opinión personal nomas) y el tema "Dust Sand" (que viene instalado en el sistema) es el que mas me ha gustado hasta ahora :).

4) Tweeks Varios:

* Modificar /boot/grub/menu.lst, quitar la palabra quiet de la linea que dice #defopts y de la linea donde carga Ubuntu, además dejar el timeout en 0
* Dejar "alt + ctrl + T" configurado para abrir una consola... mas q eso no necesito, pq desde la consola se puede hacer todo xD.
* Instalar i8kutils, útil para manejar los ventiladores mi notebook Dell :D, hay q agregar la linea "i8k force=1" a /etc/modules y reiniciar el note después de instalar para q funcione eso si.
* Activar monitores de frecuencias, monitores del sistema y monitores de temperatura en el panel (duh, se me olvido que había que instalar sensor-applet para esto XD)
* Agregar un panel a la izquierda con iconos para ejecutar programas y mover el area de notificaciones ahí (es un ajuste personal nomas).
* Aumentar las áreas de trabajo a 4.
* Restaurar el xorg.conf respaldado (para que funcione mi monitor externo Samsung LN32A550 conectado por cable VGA a 1080p ¬¬)
* Hacer que el calendario de el panel muestre las tareas de un calendario online a travez de ical (en la terminal "/usr/lib/evolution-webcal/evolution-webcal [URL ical]")

Paso 4: Sazonar a gusto

Ahora solo queda instalar el software que uno vea necesario q no venga por defecto, en mi caso voy por lo siguiente:

Basicos:
--------
Navegador: Firefox + pluggins varios (Web Developer, Weave y el infalible FireBug)
Mail: Desde el ultimo formateo he estado usando Evolution... y ahora que llevo 5 meses usándolo, puedo decir tranquilamente que me gusta mas Thunderbird.
Chat: como Pidgin funciona, Pidgin se queda, también no hay q olvidar XChat para IRC, TeamSpeak y Skipe por si las moscas (aunque aun no me acostumbre a hablar por el PC 9__9)
Descargas: Deluge para los torrents, es lo que me funciona, ademas q tiene todas las funcionalidades que necesito
Ofimatica: OpenOffice me basta y sobra.
Musica - Videos: Rithmbox apaña, Totem apaña, nunca he tenido la necesidad de instalar algo distinto, y si fuera a llegar, lo hago xD.

Otros Mencionables o que me gusta tener a mano:
-----------------------------------------------
Audacity > para trabajar sonidos es practico.
CDEmu > util para montar imagenes de CDs y DvDs.
Cheese > pa darle algun uso la webcam q tengo xD.
Gimp > este viene por defecto, pero vale mencionar que se queda :D.
Glade > pa hacer ventanitas para programas GTK+, la lleva xD.
Gnome Commander > es comodo para trabajar con servidores FTP o SFTP :).
Gobby > pq simplemente la lleva :D.
Gwibber > es comodo para ver las actualizaciones de Twitter y postear las mias, aparte q le tengo cariño al proyecto xD.
Lynx > remplazando el w3m.
Komodo Edit > es comodo tener autocompletacion al escribir python.
Liferea? > antes lo usaba, pero me gustaría tener un lector de feeds de escritorio que tuviera mejor integración con GoogleReader.
Meld > indispensable, tanto para revisar codigo como para detectar copias en las tareas xDD.
Mono Develop > solo pq amo el nombre XD.
RapidSVN > pq simplemente me encanta :).
TexMaker > lo mejor q conosco para escribir Latex... no es q conosca otros xD.
VirtualBox > pq es genial.
Wine > pq es util.
WireShark > pq es practico.

... bueh, eso es todo por ahora, cuando termine de instalar las aplicaciones continuare con la Instalación de Windows :).