jueves, diciembre 18, 2008

Wine + Hg = Freeze Time

Ultimamente me vi en la necesidad de convertir archivos de Autocad (DWG/DWF) a raster/bitmap.
El problema es que las aplicaciones son para window$ y casi siempre trials, con tiempo de expiración.
Para saltarme esta limitación de tiempo se me ocurrió utillizar el sistema de versiones que suelo usar para los proyectos de software, Mercurial. La idea era freezar el conjunto de directorios que genera wine y cada vez que se agota el tiempo, volver a una versión anterior de este conjunto de directorios.
Primero, instalo la aplicación en un "prefix" de wine, que es como una botella, o un contenedor de una "instalación asilada" de Window$. Para esto:
$ WINEPREFIX=~/.wine_freezado_1 wine setup.exe
o
$ WINEPREFIX=~/.wine_freezado_1 wine msiexec /i setup.msi
Inmediatamente después generamos un repositorio en el directorio, añadiamos todos los archivos y generamos un commit.
$ cd ~/.wine_freezado_1; hg init; hg add; hg ci -m "Estado inicial"

Y listo, una vez que se vence el tiempo, simplemente, hg revert --all.
Quizás por comodidad sea interesante generar un nuevo commit después de haber dejado la aplicación preseteada.

Algo interesante de ver es que es lo que la aplicación modifica para tener conciencia del tiempo. Generalmente es el registro, y si la cuestión es bastante tonta, hasta podemos hacer nuestro propio "crack".

Lamentablemente no todas las aplicaciones funcionan bien con wine. Pero como en general hay bastante redundancia con el soft, que siempre algo se encuentra.

Espero que les sirva.

jueves, noviembre 27, 2008

Perfil gráfico de arranque

Encontré una aplicación llamada Bootchart que produce un detalle sobre el arranque del sistema, generando una gráfica de uso de CPU y carga de I/O. Podemos ver gráficamente que es lo que más demora, como si se tratase de YSlow en Firebug.


lunes, noviembre 10, 2008

Depurando in situ: pdb + ipython => ipdb

Muchas veces nos encontramos con situaciones que requieren de una depuración paso a paso, sobre todo cuando tenemos una lógica un poco intrincada. Ipdb (easy_install ipdb) es básicamente pdb (python debugger) con las características de ipython.
En nuestro script (por ejemplo, una vista de django):
import ipdb

ipdb.set_trace()
...y mágicamente nuestro script se detendrá en esa posición del código:


Los atajos de ipdb sob los mismo de pdb:

l -> mostrar la seccion de código donde estamos
s -> step
c -> continue

Existen otros, pero no los recuerdo ahora.
Espero que les sirva!

domingo, noviembre 09, 2008

Kate como editor

Inspirado en el post de Humitos sobre desarrollo con Kate, y viendo la forma en la que textmate ejecuta los programas, me dije, debe haber una fomra fácil de hacerlo en Linux.
Humitos mostraba como hacer uso del ejecutar como script (Ctrl + Alt + X). El problema que encontraba con kate, es que los scripts se cerraban ni bien terminaban.
En la configuración de kate, en la seccion de herramientas avanzadas:


Modifiqué la ejecución de console:



Agregando la variable FROM con valor kate. Una alternativa es agregar --noclose a la invocación, pero tenía que presionar Alt-F4 al terminar el script.

Una vez hecho esto, en los scripts agrego lo siguiente (que lo tengo como sinppet):


De esta manera puedo evitar que console se cierre cuando trabajo y solo cuando lo hago desde kate. Aunque se podría adaptar a otros editores.

Espero que les sirva.



Paseo por MacOSX

Hace tiempo que me había cautivado la intriga de conocer "el sistema operativo de los screencasts".
Excepto en showmedo, donde la plataforma es variada, en su mayoría los screencasts que he visto son realizados sobre Mac.
Con una versión del OS modificada, llamada iATKOS, me di a la aventrua. La instalación tuvo el pequeño detalle de tener que modificar por consola el identificador de partición (0xAF) con fdisk. Una vez hecho esto y formateada, la instalación se realizó sin problemas. ACPI no funciona, lo que significa, que la PC no se apaga, ni se reinicia, ni se duerme. Un pequeño detalle.
Instalé los drivers de Nvidia y nada más. El sonido no funcionaba, tampoco la red ni la wireless, pero si el adaptador USB-Wifi que había comprado hace poco.

Para el usuario de Linux, mac tiene la consola relegada, no existe un Alt-F2, hay muchas combinaciones de teclado que aprender y para instalar sosftware GNU hay que hacerlo mediante macports.
Macports es lentooooooooooooooo, bueno, compila todo. Algo que el usuario de Linux tradicional (exceptuando a los usuarios de gentoo, no estamos acostumbrados). Estas incomodidades supongo que son pasajeras, ya que lo que instalas con macports lo haces una vez cada mucho tiempo y en definitiva, al teclado te acostumbras.

Hay algo que si me sorprendió mucho, y es la forma en la que se distribulle el software: Cuando bajas un programa, bajas un DMG, una suerte de imagen de disco. Una vez montada, arrastrás la aplicación a la carpeta /Applications y queda "instalada". El navegador de archivos te muestra todo como un icono, nada de carpetas, ni archivos, es una aplicación. La idea es buena, pero no hay nada como apt.



Lo que si me encantó fue el monitor de procesos. Es como un htop recargado.



Finalmente, creo que es una plataforma linda, para desarrollar, pero un toque incómoda al principio con el teclado.
Es bastante velóz. La plítica del administrador de ventanas es bastante molesta, pero, Expośé y Spaces ayudan bastante.


jueves, noviembre 06, 2008

Dos sitios donde obtener django mediante Mercurial


Mercurial es un sistema de control de versiones distribuido muy versatil del cual ya he hablado en algún momento en mi blog. Está escrito en Python y va por la versión 1.0.2 al momento de escribir esta entrada.
Django es un framework web cuyo lema es "Un framework para perfeccionistas con fechas límite". Django se carateriza por su reformulación del famoso patrón MVC, como MTV y una interfase de administración automática y customizable generada a partir del modelo.
El desarrollo de django se sostiene sobre un repositorio SVN. Por suerte hay gente que mantiene mirrors sobre mercurial:
hg.gomaa.us
hg.dpaste.com

domingo, noviembre 02, 2008

Como hacer dinero con Softweare Libre (literalmente)


En la lista de inskape apareció el siguiente link.
El Ministerio de Finanzas holades organizó un concurso en el que participaron un grupo arquitectos y artistas invitados. La meta no era crear un edificio sino la moneda de 5 euros conmemorativa con el nombre "Netherlands and Architecture". En el post se puede ver todo el desarrollo de la moneda.

viernes, mayo 30, 2008

Chiche nuevo

Hace rato que no actualizo el blog. No les voy a decir que voy a tratar de revertirlo porque estaría mintiendo.
Este es mi chiche nuevo:


Una Dell XPS 1530 configurada con un Intel Core 2 Duo de 2.0GHz, 3GB de RAM, 320GB de disco (5400rpm) y una placa acceleradora nVidia 8600M GT.
Tiene algunos chiches extras que vienen con todas las XPS: Cámara web integrada, lector de huellas digitales y microfono integrado.
Dentro de los puertos de expansión lo más destacable es el HDMI, del cual no creo que valla a sacar mucho provecho en linux, de todos modos aún no dispongo en casa de ningún periférico con esta entrada.

La máquina venía con Window Vista Home Premium, que al instalar los drivers de la tableta Wacom, dejó de funcionar.
Luego con un vista Ultimate, trás instalar Leopard de la mano de iATKOS también a quedado inutilizado, de todas maneras mucho no me importa.

El desepeño del sistema es más que aceptable aunque hay algunas cosas que extraño de mi viejo equipo de escritorio. La Sound Blaster Live!, la HDA Intel, con un SigmaTel STAC9228 no es lo que yo llamaría "High Definition Audio". Quizás sea ALSA.

El lector de huellas es otro chiche muy cómodo. Trás instalar Kubuntu 8.04 y darme una vuelta por la wiki de gentoo, quedó funcionando perfectamente.
El touchpad y la placa wireless (una instel Pro Wireless 3945) no están funcionando como esperaba, pero como todo hardware nuevo, hay que esperar a que salgan mejores drivers.


domingo, abril 27, 2008

Instalación de Mercurial 1.0


Mercruial es un sistema de control de versiones distribuido, escrito casi totalmente en python.
Habiendose liberado la version 1.0, la mayoría de las distribuciones siguen incluyendo las versinones 0.9.3-0.9.5.
Para instalar la verisón 1.0, primero elminaremos la version que traiga instalada nuestro sistema (estos ejemplos se basarn en *ubuntu):

$ sudo apt-get remove --purge mercurial

Luego

$ cd /tmp $ curl http://hg.intevation.org/files/mercurial-1.0.tar.gz | tar xzf - $ cd mercurial-1.0/ $ make all; sudo make install

Ahora nos toca hablitar la extensión hgk, que nos muestra un árbol visual de las diferentes ramas del repositorio.

Para esto necesitamos copiar el archivo hgk que se encuentra en mercurial-1.0/contrib a algún lugar en el path. En mi caso lo copié a /usr/local/bin.
Tras esto, tenemos que instalar el intérprete de tcl/tk, simplemente:

$ sudo apt-get install tk8.5 # En gutsy es 8.4

Por último, nos falta hablitar esta extensión por defecto.
La configuración global de mercurial se encuentra en /etc/mercurial.

$ sudo mkdir -p /etc/mercurial/hgrc.d/ $ echo -e "[extensions]\nhgk=\n" | sudo tee /etc/mercurial/hgrc.d/hgk.rc

Ahora ya podemos hacer hg view en cualquiera de uestros repos.

lunes, marzo 24, 2008

Compendio de machetes

Aquí pueden encontrar vasrios machetes útiles para varios lenguajes.
http://www.smashingmagazine.com/2006/10/30/cheat-sheet-round-up-ajax-css-latex-ruby/

El de Javscript me perece muy buen, para tenerlo colgado en la pared.

Diseño web actual


Buscando una imagen donde aparecieran los logos de todos los toolkits/frameworks de javascript actuales me topé con esto. Aquí tienen la versión original. La solución es quitar la zona amarillo pato :)

viernes, marzo 14, 2008

Sorpresas

Finalmente estoy en mi último año de inglés, así que decidí comprarme un diccionario en serio, uno Oxford Advanced Learner.
Al comprar una edición de tapa blanda no esperaba que en la contratapa trajera un CD. Para mi sorpresa no estaba rallado ni nada. Pero mi sorpresa fue mayor cuando al montar el CD Nautilus mostraba un directorio con nombre "linux". Al entrar, veo que aparece un subdirectorio con nombre vlc (así que pensé que era solo algún reproductor de video, para algún que otro contenido multimedial), pero afortunadamente estaba equivocado, porque también había un install.sh!
Tras correrlo, comenzó la instalación.
Luego de terminar, tenía en mi escritorio, un oald.desktop con algunos "-e" de más, quizás por alguna incrrecta utilización de echo en el shellscript.
Una vez corregido en kate, mediante Ctrl + B, tenía el flamante acceso a una aplicación que nunca pensé que estuviere hecha sobre Mozilla.
Funcionó perfectamente, ahora ya tengo una aplicación para resolver las dudas que mi fiel amigo dict perfecto a dict.
Más alla de haber obtenido una excelente herramienta, me di cuenta de que si existe una plataforma para desarrollar aplicaciones multimediales para GNU, (bueno, también está Songbird, pero este diccionario es del 2005).
Bueno, dejo un par de shots más...

jueves, enero 24, 2008

Podcasts y Python.


Hace más o menos tres meses que comencé a escuchar podcasts. En un principio par aprobar esa feature de Amarok y luego como herramienta útil y sobre todo práctica para escuchar conferencias o programas, además de practicar un poco el inglés "inglés" que como me mencionó una profesora, se vuelve menos claro que el americano con las consonantes aspiradas :$
Pero bueno, este post en particular es para comentarles de dos podcasts muy interesantes si están usando o aprendiendo python.
Los podcasts son:
Python 411: http://www.awaretek.com/python/
y los de PyCon 2007: http://pycon.blogspot.com/2007/11/pycon-2007-podcast.html
Por último, una captura de como se agregarn a su reproductor favorito:

Mi iPod :)

Finamente tomé la decisión de comprar un iPod. Elegí el iPod nano, versión antigua, de 2GB.
Por ratón lo compré usado por mercadolibre, y si bien el producto funciona de perfectamente, la cobertura de acrílico tiene aglunas rallas así como la parte trasera.
¿Por que un iPod? Quería algo que funcione, nada de pilas, pocas horas de autonomía ni nada, que no tarde mucho en copiar y mover archivos y que se pueda administrar fácilmente desde el software.
El resultado es que es un excelente producto, hace lo que tiene que hacer y lo hace bien. Ahora me llevo la música y los podcasts cuando salgo. Todavía no lo exprimí al 100% (instalar linux por ejemplo), pero estoy muy satisfecho. La única pega es que no reproduce Ogg.