Aquellos que hemos usado mongodb desde python, ya conocemos las virtudes de pymongo. Sin embargo, este lenguaje es orientado a objetos, y trabajar con ellos hace nuestro código más simple y más legible. Mongoengine es un ODM, una librería que se encarga de convertir objetos en documentos mongodb y viceversa.
Algunas veces nos interesa lanzar comandos bash, pero necesitamos de la potencia de python para parsear la salida. En otras ocasiones queremos lanzar los comandos bash directamente desde python porque se hace desde una aplicación web. En estos casos nos viene muy bien el módulo subprocess que nos lo permite.
Muchas veces nos pasa que necesitamos un objeto de esos que luego necesitan algún tipo de limpieza cuando ya no se necesitan. Cualquier programador avanzado os puede contar lo fácil que es olvidarse de la destrucción del mismo, y de las veces que lo ha hecho, él u otras personas.
El otro día me vi leyendo artículos sobre arquitecturas basadas en servicios web, especialmente centrados en patrones REST y codificados en JSON. No es la primera vez que hago algo con frameworks no específicos, pero tras buscar un poco por internet, descubrí un framework específico para servicios REST llamado falcon.
Mucha gente no sabe de lo que hablamos cuando nos referimos a decoradores en contexto de programación python. No es un concepto demasiado complejo, pero nos puede servir para simplificar bastante nuestro código. Sin embargo, hay que admitir que es un concepto difícil si intentamos estudiarlo sin ninguna ayuda externa.
Ya sabéis que me gusta mucho el lenguaje python. Muchos de mis ejemplos y algunas aplicaciones simples no merecen el uso de un framework tan grande como pueda ser django. Para estos casos me encantan los microframeworks, y aunque hay varias alternativas disponibles, me gusta especialmente un microframework llamado bottle.
El otro día tuvimos una caída del centro de datos de desarrollo. Inmediatamente después vimos que teníamos afectación en el entorno de producción, ya que lanzaba peticiones al DNS de desarrollo. Sin saber claramente porque pasaba, hice un servidor DNS en python, para ver que tipos de peticiones se lanzaban.
Es muy útil lanzar comandos SSH desde un script de bash. Sin embargo, los scripts en bash se vuelve ilegibles rápidamente, y no nos ofrece el poderío de la librería python. No es de extrañar que herramientas como ansible o fabric estén escritas en python, usando una librería llamada paramiko.
El otro día me encontraba en mi trabajo con otra petición muy especial: se necesitaba un check para Nagios que contara las apariciones de cierto tipo de errores en un fichero de log. Ese check debía saltar en función de cuán alejado estaba el valor de las últimas 100 muestras.
Aunque no está muy extendido, Telegram es un magnífico cliente de mensajería instantánea. Tiene varios puntos a favor, como por ejemplo seguridad, rapidez y su condición de libre. Lo que no se conoce tanto es que dispone de una API para crear bots que pueden responder automáticamente a sus usuarios.