Willyfrog

interrupt.el

Pues poco a poco he seguido aprendiendo Emacs, diversos sabores de lisp (ninguno a fondo aun) y entre ellos bastante elisp. La cosa es que cada dia disfruto más con Emacs y cada vez estoy mas enredado con él. Hasta el punto que empiezo a desarrollar pequeñas utilidades para mi día a día.

Y de ahí este post, recientemente en mi trabajo tengo la necesidad de mantener un log de las interrupciones sufridas a lo largo de una jornada de trabajo. Es algo que no debería necesitar, pero la freecuencia es elevada y el equipo ha visto la necesidad de hacer continue.

Configuracion encriptada en Emacs

En mi aprendizaje de Emacs he descubierto el módulo jabber.el que te permite mantener las conversaciones de Google Talk dentro del propio editor. Pero hay que pasarle las contraseñas o guardarlas en modo plano, lo cual es algo incomodo desde el punto de vista de la seguridad. Si bien para la cuenta del trabajo me daria igual ya que no usa la autenticación de dos factores y por lo tanto me se de memoria mi contraseña, en la personal si lo tengo habilitado y la desconozco y aunque la conociera, seria poco afortunado guardarla como texto plano.

Por ello, buscando un poco he encontrado como cifrar un fichero continue.

Mi primera utilidad de elisp

Desde hace algún tiempo me pasé a Emacs, si bien la versatilidad ya la tenía en vim (es un gran editor) con Emacs puedo además aprovechar para aprender un sabor de lisp: emacs lisp (elisp para abreviar). Esta es una tarea que imagino que me llevará años ya que no es un uso intensivo, sino que intentaré ir haciendo pequeñas funciones y cambios que me permitan aprovechar esa caracteristica tan genial de Emacs de ser programable.

Lo difícil es encontrar algo que hacer, por lo que lo primero que se me ha ocurrido es algo que ya he tenido que hacer continue.

Auriculares para correr miomundo

Recientemente he comprado unos auriculares ligeros para correr. Esto no debería ser un motivo de entrada para un blog, ¿no? pero me ha llamado la atención el poco cuidado de los detalles que han tenido hasta el punto de que debe haberles perjudicado gravemente a las ventas.

Pero antes de nada decir que me han costado 12 €, por lo que no espero un producto de grandes acabados ni que la calidad de sus graves sea superior. Cuando decidí comprarlos fue porque no queria dejarme mucho dinero en un producto que no se si lo usaré muy a menudo, ya que continue.

Traduccion elisp en 15 minutos (aprox.)

El otro dia vi un tutorial sencillo y rapido para aprender emacs lisp, me pareció una introducción muy necesaria para la gente que (como yo) está aprendiendo Emacs. Más que nada porque aprender Emacs y no aprender como funciona elisp es perder el tiempo. ¡Ojo! esto no quiere decir que sea necesario tener la capacidad de escribir grandes y complicados programas en él, sino simplemente ser capaz de leerlo y entender por donde van los tiros. Y es que su propia configuración está escrita en elisp, por lo que si no lo entiendes, dependes del resto para poder configurar tu continue.

Movimiento estático

Finalmente he movido el blog de Wordpress a algo estático, como llevaba queriendo hacer desde hace tiempo. Wordpress no tiene nada malo, me sigue pareciendo una plataforma de blog muy buena, especialmente para gente que no quiera complicarse la vida.

Pero (y si no hubiera un pero, seria que me gusta mover por mover) requiere ser activo, cosa que no me pasa con el blog, que durante un tiempo escribo y durante un tiempo dejo de escribir, alternandose ambos a lo largo del tiempo. Y wordpress, siendo dinamico, con php y mysql, require de mimo, cuidado y mantenimiento para evitar que continue.

Cargando modulos dinámicamente en la botella

Estoy algo liado montando una api para un pequeño proyecto mio, buscando que sea lo más cercano a RESTFUL por motivos laborales y por aprender cosas nuevas (entremedias estoy probando Emacs, que me esta costando un rato el cambio desde Vim).

Como framework estoy usando bottle, ya que siempre estoy usando Flask y quería probar otro distinto a ver qué tal. Y más adelante intentaré montarlo de manera asíncrona, pero eso para más adelante.

Como digo, es una primera aproximación, imagino que el código final tendrá una pinta muy diferente, pero para alguien que quiera cargar dinámicamente los módulos y tratar de ejecutar las funciones es un buen punto de continue.

Des/activando virtualenv automaticamente

Algo que no se me habia ocurrido hasta que mi compañero me lo comentó es la activación automática del entorno virtualenv nada más entrar en el propio directorio, de esta manera ahorramos tiempo y problemas de no estar en el virtualenv apropiado.

Buscando un poco por la red, encontré este gist donde hacía parte de lo que queria, ya que no terminaba el virtualenv al abandonar el directorio, por lo que podria dar problemas al seguir en la misma linea de comandos y ejecutar otras cosas. De ahí que modificara el script para que al abandonar el directorio desactivara el entorno.

Para poder utilizarlo se puede poner el entorno continue.

Receta para introspeccion en python

Al final no me ha servido ya que hay varias propiedades que no son legibles en el codigo legacy que estoy mirando, pero por si a alguien le sirviera copio una receta vista en SO para ver los contenidos de un objeto:

Original:diveintopython
Author:Mark Pilgrim (mark@diveintopython.org)
def info(object, spacing=10, collapse=1):
   """
   Print methods and doc strings.
   Takes module, class, list, dictionary, or string.
   """

    methodList = [e for e in dir(object) if callable(getattr(object, e))]
    processFunc = collapse and (lambda s: " ".join(s.split())) or (lambdas: s)
    print "\\n".join(["%s %s" %
 
continue.

Pyweek 2012

Despues del "subidon" con ludum dare, me atreví a meterme en pyweek.

No ha sido tan excitante en algunos aspectos, ya que tenia mucho más tiempo y eso provocó el "luego lo hago". La mayor parte del tiempo se me fue en pequeños errores (alguno de los cuales aun siguen existiendo) en el tema de colisiones. En general los consejos y criticas son los que yo mismo pensaba cuando subí la versión final.

Quizás me planteo para más adelante recuperar la idea y hacerlo de nuevo con otro engine... pero eso es hablar del futuro.

Mi participación en el pyweek

Previous »