Asiru: linux para desarrollo con python

../images/asiru/fisa.png
Autor:Juan Pedro Fisanotti
Bio:Desarrollador python y django pero con gustos variados como ruby y lisp. Entusiasta de linux y el soft libre en general.
Email:fisadev@gmail.com
Twitter:@fisadev

¿Qué es Asiru?

Asiru es un Linux que trae ya instaladas y configuradas unas cuantas herramientas para desarrollar con Python, y está pensado para ser usado como LiveDVD (es decir, no para instalarse sino para ejecutarse desde un DVD o pendrive). ¿Qué tipo de herramientas incluye? IDEs y editores, sistemas de control de versiones, consolas interactivas, debuggers, bibliotecas y frameworks, etc. Detallo un poco más adelante.

Está basado en Linux Mint 11 (que a su vez está basado en Ubuntu) y se encuentra aún en etapa de desarrollo, aunque ya con una versión funcional. Nació para suplir algunos casos de uso bien específicos, pero con flexibilidad para crecer y adaptarse a otras necesidades.

Se trata de un proyecto que surgió casi por casualidad, pero que ahora parece tener ganas de crecer :). En esta nota les comento lo principal del proyecto, suficiente para que se interesen si les sirve, y no se aburran si no les sirve.

../images/asiru/screenshot1.png

Surgimiento y objetivo (breve, para no aburrir)

Asiru surje de dos eventos diferentes que se cruzaron por casualidad:

Por un lado, hace un tiempo mi trabajo me llevó a entretenerme un poco (léase: renegar y divertirme) creando CDs de Ubuntu customizados. La necesidad era poder iniciar Ubuntu desde un CD, pero que el mismo ya posea determinadas aplicaciones instaladas y configuradas, más algunas personalizaciones al sistema operativo.

Encontré algunos tutoriales bastante detallados en la wiki de Ubuntu respecto a crear LiveCDs customizados, y a partir de ellos y de lo que algunos de mis compañeros ya habían hecho, logré el objetivo.

No fue sencillo, pero en el camino aprendí algunas cuantas cosas interesantes de Linux y de la magia que hay detrás de un LiveCD.

Por otra parte comencé a dar clases en una segunda materia de la universidad, ayudando en la parte de práctica (la materia es Inteligencia Artificial).

En esta materia la práctica se hace con Python como lenguaje de programación, y no siempre los alumnos conocen las herramientas que pueden utilizar para programar con él. Sumado a ello, la mayoría de los alumnos no han tenido previo contacto con Linux, lo que es una pena ya que no "elijen" qué sistema operativo utilizar, porque nadie les ha dado a conocer otra alternativa. Se pierden de conocer un sistema operativo que en mi opinión, se adapta mucho mejor a las necesidades de un desarrollador de software.

Viendo esta realidad y con la experiencia que había tenido en el trabajo, se me ocurrió que podría llegar a ser una buena idea proveer a los alumnos de un entorno de Linux ya preparado con las herramientas para desarrollar en Python. De esa manera no se pierde tanto tiempo en enseñarles a descargar y configurar estas herramientas y podemos pasar casi de lleno a la práctica, y al mismo tiempo tienen la posibilidad (porque no es obligación) de comenzar a conocer el sistema operativo que tantos preferimos para trabajar con Python, y para uso diario.

Ese fue el objetivo inicial de Asiru, pero a mitad de camino descubrí que podría resultar útil para otros casos de uso, como llevar en el bolsillo (pendrive) un entorno de desarrollo listo para usar en "emergencias" donde falte nuestra pc, o facilitar la difusión de Python a principiantes en el lenguaje distribuyendo con facilidad DVDs en conferencias o eventos.

Con estas cosas en mente decidí hacer de Asiru un proyecto libre y no restringirlo más a la necesidad de la que surgió, sino abrir las puertas a ideas y necesidades nuevas de quienes estén interesados.

../images/asiru/screenshot2.png

Estado actual

Como dije antes, el proyecto se encuentra en desarrollo pero ya posee una versión usable. En http://asiru.googlecode.com se pueden encontrar los links para descargar la última versión de la imagen de DVD (que también puede ser utilizada para crear pendrives booteables), el código fuente que permite crear dicha imagen, y por el momento solo un poquito de documentación (estoy trabajando en ampliarla).

La versión funcional actual de Asiru inicia con las siguientes herremientas listas para usar:

Editores / IDEs:

  • Vim y GVim: editor por linea de comandos, con mi configuración de vim (http://fisa-vim-config.googlecode.com), que incluye cosas como un debugger, autocompletado, navegador de clases, manejo de tareas pendientes, etc.
  • Editra: editor con entorno gráfico con varios plugins instalados y configurados para autocompletado, navegación de clases, control de versiones, manejo de proyectos, etc.
  • WinPDB: no es un editor, sino un debugger muy bueno para Python.
  • Meld: un muy buen editor gráfico de diffs.

Sistemas de control de versiones:

  • Mercurial: sistema distribuído de control de versiones, con la aplicación TortoiseHg para realizar control de versiones desde el entorno gráfico, y algunos plugins activados (hgk, graphlog, colors).
  • Git: sistema distribuído de control de versiones.
  • SVN: sistema centralizado de control de versiones.

Consolas interactivas de Python:

  • iPython: consola con autocompletado, ayuda mejorada, y varias utilidades, y que se asemeja mucho en comportamiento a la mayoría de las consolas de Linux.
  • bPython: consola con autocompletado y ayuda mejorada, con aspecto más "gráfico".

Bibliotecas y Frameworks:

  • Django: framework de desarrollo web.
  • Bottle: microframework de desarrollo web.
  • VirtualEnv: para crear entornos virtuales de Python con sus propias bibliotecas y configuraciones.
  • PyLint: biblioteca para análisis de código fuente de Python, que detecta errores comunes o signos de baja calidad en el código.

Otras cosas útiles:

  • PIP: herramienta para la instalación simple de bibliotecas de Python.
  • Gunicorn: servidor web simple para aplicaciones Python.
  • Navegadores web Chromium y Firefox.
  • Visor de VNC.
  • LibreOffice para edición de documentos y presentaciones.
  • Gimp para edición de imágenes.
../images/asiru/screenshot3.png

Planes a futuro

Seguramente a cada persona que lea la lista de las herramientas que hoy vienen en Asiru (y más si es un desarrollador Python con experiencia) se le van a ocurrir varios "¿cómo puede faltar XYZ?". A mi ya se me ocurren algunos como Eclipse con PyDev, Bazaar, Twisted, Web2py, Ninja-IDE, etc.

Lo se, faltan muchas cosas importantes. Pero el tiempo y un poco de falta de conocimiento me limitaron la selección. Por eso estoy abriendo el juego para que quienes quieran puedan aportar lo necesario para que la lista se acerque más a lo que cada uno necesita en su entorno de desarrollo.

Si tienen ganas de pispear, o mejor, de aportar algo, péguense una vuelta por http://asiru.googlecode.com, que todavía hay lugar para unos cuantos. Se trata de un proyecto interesante y útil para más de uno en el mundo de Python, y una buena oportunidad de jugar con un poco de "magia negra" de linux :)

Help PET: Donate

blog comments powered by Disqus

Último cambio: Thu Sep 22 06:38:27 2011.  -  Esta revista está bajo una licencia Creative Commons.