martes, 20 de julio de 2010

Mi configuracion de Vim

Vim es un editor de texto muy bueno. Es algo bastante diferente a lo normal, para quienes vienen de editores de código gráficos, sea el block de notas, Eclipse, o cualquier otro.
Se puede usar por línea de comandos y todas las cosas normalmente se hacen desde el teclado. Tiene un enfoque bien simplista, pero es super configurable y personalizable, hay cientos de plugins útiles.

En el PyCamp 2010 me lo mostraron por primera vez (algo había visto antes, pero no en profundidad), y en poco tiempo se convirtió en mi editor de cabecera para cualquier lenguaje o tipo de archivo de texto.
Con el tiempo aprendí a meterle mano y adaptarlo a mis gustos, y además de las 4 máquinas donde lo uso (incluyendo el celular), también algunos amigos estaban usando mi configuración. Así que me decidí a documentarla bien y subirla a algún lado, para ordenarla y para que si a otros les sirve también puedan aprovecharla.
Incluye cosas interesantes como un muy buen debugger para Python, autocompletado mejorado, navegador de clases, etc.

Info, descarga y demás yerbas aquí:  fisa-vim-config

viernes, 16 de julio de 2010

Programar programas que programan

Lisp es un lenguaje bastante particular (lleno de paréntesis, jeje). Entre las características que tiene hay una que hasta donde conozco, no poseen otros lenguajes: permite modificar la sintaxis del lenguaje mismo.
Explicándolo sin entrar en demasiado detalle, uno puede escribir macros (que no son nada ni cercano a las macros de los otros lenguajes, solo el nombre tienen parecido), que son "programas que escriben programas". Lisp utilizará esas macros que escribamos para "leer" el código en la sintaxis que inventemos, y a partir de él "escribirá" código (programas) que finalmente serán los que se ejecuten.

Algo así:

  1. inventamos una sintaxis
  2. programamos una macro, que es una función que recibe código en esa sintaxis inventada, y genera código en la sintáxis normal
  3. hacemos programas usando nuestra sintaxis inventada
  4. lisp convierte nuestros programas con sintaxis inventada, en programas válidos, usando nuestra macro
  5. lisp finalmente ejecuta los programas que se crearon en el paso anterior


Cosas interesantes en eso:

  • La macro es una función, pero recibe código como parámetro! En Lisp, la diferencia entre código y datos es bastante borrosa, uno puede manejar código como si fuesen datos fácilmente. El código son en realidad listas, y podemos transformarlas como a cualquier lista normal.
  • Programamos programas que programan! O sea, hacemos un programa que es capaz de crear código y después ejecutar el código que creó.
  • Si trabajamos en una empresa donde nos pagan por cada línea que programamos... a quien le pagan las líneas que nuestros programas programan? a nuestros programas?? :)

Con un poco de idea nomás, uno ya puede hasta crear macros que permitan escribir código lisp invertido, y que se termine ejecutando como si estuviese bien escrito, jeje.

miércoles, 7 de julio de 2010

Aplicaciones en Google Chrome

Gracias a Tavo Tell me entere de la buena noticia: ya se pueden probar las apps en Chrome!
Es el esquema de aplicaciones que se va a usar en Chrome OS.

Aquí el tutorial sobre como activarlas e instalar las tres primeras: gmail, gdocs y gcalendar.
http://bit.ly/aYhdTq

En la web encontré alguien que armó una app para greader:
http://bit.ly/bK90vp

Y yo armé una app para twitter:
http://bit.ly/bgKFUf

(un detalle: si quieren bajar las aplicaciones y chrome les da un error de como deben ser servidas, o solo se les baja y no saben como instalarlas, entonces guarden el archivo, después cambien la extensión del archivo a zip, descompriman en una carpeta, e instalen desde la carpeta como instalaron las tres primeras)