All posts in “Sin categoría”

Instalando psycopg2 usando virtualenv en Mac OSX

Intentando instalar psycopg2 para desarrollar una aplicación en Django, utilizando el entorno de Heroku me encontre con el siguiente error:

    Error: pg_config executable not found.
    Please add the directory containing pg_config to the PATH
    or specify the full executable path with the option:
        python setup.py build_ext --pg-config /path/to/pg_config build ...
    or with the pg_config option in 'setup.cfg'.
    Complete output from command python setup.py egg_info:
    running egg_info
creating pip-egg-info/psycopg2.egg-info
writing pip-egg-info/psycopg2.egg-info/PKG-INFO
writing top-level names to pip-egg-info/psycopg2.egg-info/top_level.txt
writing dependency_links to pip-egg-info/psycopg2.egg-info/dependency_links.txt
writing manifest file 'pip-egg-info/psycopg2.egg-info/SOURCES.txt'
warning: manifest_maker: standard file '-c' not found
Error: pg_config executable not found.
Please add the directory containing pg_config to the PATH
or specify the full executable path with the option:
    python setup.py build_ext --pg-config /path/to/pg_config build ...
or with the pg_config option in 'setup.cfg'.
----------------------------------------

Cleaning up…

 El error indica que no encuentra el directorio conteniendo  el archivo pg_config.

Lo solucione agregando el PATH a mi enviroment de mi aplicacion.

export PATH=/Library/PostgreSQL/8.4/bin/:”$PATH”

Ahora probamos:

Successfully installed psycopg2

Cleaning up…

Perfecto! :D

Gobierna mejor quien gobierna menos.

Por cuestiones de salud en los últimos días me he alejado un poco del seguimiento que tenía de algunos proyectos, y debo decir que qué complicado es delegar. Esa parte tan seductora de tener el control. Y en ocasiones resulta muy difícil perder la organización y control de un proyecto para que el equipo sea más independiente. Pero más difícil es pensar que el propio equipo se limita, se detiene, y llega al punto de sentirlo estancado por el mismo control ejercido.

Es obvio que se tienen que delimitar objetivos, seguir una metodología, reunirse y acordar un plan de trabajo y tomar decisiones, pero también muy importante es dejar ser al equipo y sus integrantes, que hagan lo que mejor saben hacer y exploten todo su potencial.

Que será complicado al principio, es probable, que genere confusión y errores, también lo es, como también es posible que no pase nada y el equipo se sienta en confianza, que comiencen a aportar al proyecto y que la fuerza jedi se manifieste y todo fluya. Sea como sea si el resultado no es positivo, también resulta satisfactorio, el equivocarse es parte del aprendizaje como equipo y sirve para adquirir experiencia entre todos.

Al final me quedo con la frase de Lao-Tsé. Gobierna mejor quien gobierna menos.

Es complicado lo se, pero quien sabe, probablemente no estoy dejando ser y si funciona, seremos un mejor equipo de desarrollo.

Propiedad colectiva

Haciendo una reflexión sobre metodologías ágiles y demás, ya sabes de esos días en que no puedes levantarte, y se da por hacerla al filósofo. Y recordando una experiencia personal me vino a la mente una de las características más peculiares que tiene la programación extrema XP, la de la propiedad colectiva del código generado.

Y es que bajo este supuesto, todo el equipo que esté involucrado tiene acceso al código que se está desarrollando, ya sea en un repositorio, el servidor, respaldos o bien vete-tu-a-saber donde guardas lo que estas programando. Y se tiene una propiedad colectiva del mismo, un conjunto de líneas construidas con el esfuerzo de varias personas que dan vida y presentan una solución real a problemas concretos. Vamos, algo casi idílico…

Pero este solo es un supuesto y se lee muy bonito pero en la práctica podría no ser la forma mas romantica de la representación del trabajo en equipo, suele ocurrir en el desarrollador una suerte de complejo de dios, un surgimiento  poderoso del ego, que evitara a toda costa que alguien venga y toque todo lo que con tanto esfuerzo ha construido. Así somos, así seremos si no no seriamos nosotros no?

La finalidad de esta ideología no es más que cualquiera del equipo pueda mejorar una porción del código, y proporciona flexibilidad, disponibilidad y reducción de dependencia. Pero esta claro que que para que este concepto se aplique la palabra mágica en todo esto se llama respeto.

Y es que es muy facil reirse o incluso llevarse las manos al cabeza y maldecir el código y porqué no al generador de ese código al momento de echar un vistazo a alguna función, clase u objeto. Pero probablemente haríamos lo mismo si revisamos código producido por nosotros mismos hace tiempo o porque no, un día antes(….).

La importancia de todo este asunto es que al final de cuentas, todos somos dueños del código, y con todo y fallos de codificación, y nuestra misión es la mejora continua y porqué no ayudar de forma colectiva a la generación de mejor código en equipo. Creceremos como desarrolladores, personas y equipo… Vuelvo a caer a lo idílico… Tengo un problema con eso.

Mi razón de programar.

Hace unos días, mientras esperaba a que diera media noche, cuando todo esta en calma y se respira tranquilidad y paz en el ambiente, estaba listo para comenzar mi jornada en la cual esperaba que algunas cuantas lineas de codigo hicieran productiva mi noche, y de pronto comencé a meditar sobre todo este asunto de la programada y el desarrollo y todo cayó en una pregunta, por que carajos programo? Qué es lo que nos mueve para hacer software…

Que de esto vivo? claramente, pero independientemente de eso, me gusta, amo y disfruto mucho todo el proceso, pelear con tecnologías nuevas, contemplar como poco a poco todo fluye y se va construyendo poco a poco, como si de un edificio se tratase, o bien ver como no funciona nada, y todo se desploma un piso a la vez…

Programo porque hay dias que despiertas y sabes que eres una especie de Neo en la matrix, capaz de encontrar y ver aquello que los demás no ven, y otras en que te arrancas los cabellos y todo el mundo te explica hasta con manzanas y tu no comprendes nada.

Programo porque todos los días hay algo nuevo, una enseñanza, una experiencia, porque de una dia a otro sabes que JSON es la ley, que xQuery no es JQuery, que REST es la panacea y que porqué no, qué podemos jactarnos de usar términos que suenan extraños para el mundo mundial, CRUDS, UI’s, restful, api, push, path y demás lenguaje alienígena.

Programo porque al platicar con colegas es como participar en peleas de gallos, solo que en vez de gallos son egos, una lucha de poder, de conocimiento en la cual gana el que se queda sin argumentos, sin conocer sobre el tema y así sin más de la forma mas etica, noña y cruelmente posible, sales vencedor, sin violencia solo con el código derramado entre las manos.

Programo porque lo disfruto,porque lo aprendo, porque lo comparto, porque lo presumo, amo programar, el saber que esta ahi,  tu le das vida, lo ves crecer y muchas veces lo ves morir… programar escreaciónn pura, es hacer alquimia en tiempos modernos… y como disfruto eso.