2013
02.09

El fin de semana pasado acudí a mi primer evento de StartUp. Parece mentira, pero ya va a hacer casi una semana del StartUp Weekend Tenerife. Para el que no lo conozca, los eventos StartUp Weekend que consisten en una especie de concurso para llevar a cabo una idea de empresa semilla (start up). Un evento que, por muy manido que suene, me ha cambiado profundamente y para bien. :D

El viernes estaba un poco nervioso, excitado. Realmente no sabía qué me iba a encontrar (no tengo experiencia en este tipo de eventos), ni tenía ninguna idea que exponer. Iba a ver y, si acaso, a ayudar con mi habilidades de programador y aportar lo que pudiera al equipo con el que colaborara, pero desconocía dónde me había metido.

Sin embargo, lejos de eso, lo primero que vi fue a un montón de compañeros y gente conocida.
Vi a un montón de excompañeros de mi facultad. Vi a los chicos de Agile Canarias. Vi a los organizadores, a Juanjo (Altavista Ventures), a Elena y Ángel (Coworking Nomad), a Carlos y Samuel (FEULL), entre otros, dejándose la piel para que el evento saliera con tan excelente nivel. Y en la recepción, un catering fantástico, que aventuraba el genial fin de semana que se avecinaba.

Finalmente me alisté con un grupo para desarrollar el proyecto SpeakApps y ¡quedamos segundos!

2º puesto! Bieeen!

¡2º puesto! ¡Bieen!


Aprendí muchísimo, y esto es lo que me llevé conmigo:

  • Existe un enorme ‘gap’ de conocimiento todavía hoy entre la gente que se dedica profesionalmente a la informática y la que no. En realidad la profesión de “informático” ha desaparecido. Todos los usuarios hoy son informáticos, y las profesiones relacionadas con la misma se han diversificado y especializado.
  • La gente es chachi. A veces soy desconfiado, y creo que ahora soy más abierto.
  • Todos tenemos nuestros puntos fuertes y débiles. Todos podemos aportar, y también debemos dejar que nos ayuden.
  • Me vi en un grupo intentando crear una solución simple en 48h de un problema técnicamente difícil a primera vista y lo logramos. Soy capaz de buscar soluciones creativas y rápidas. Soy “lean” y no lo sabía. Sirvo para emprender. Creo que esto fue lo más importante.

Cuando terminó el evento algo había cambiado para mí. Me sentía transformado: estaba con una energía y una motivación que no conocía antes, y que todavía hoy conservo para seguir adelante. ;)

Tuve incluso la sensación (muy sutil) de que confiaba más en mi mismo, y lo proyectaba. En consecuencia, la gente parecía tomarme más en serio. La gente interactúa contigo según lo que proyectas, y esto depende en gran medida de tu estado mental interno.

Lo único malo del Startup Weekend: pues que se terminó. :P A esperar al siguiente.

2013
01.16

¡Guau! Ha pasado casi un año (¿sabático?) ya, desde mi última entrada. Realmente no me apetecía mucho escribir, ni me encontraba motivado. Pero tras haber ordenado un poco ciertos aspectos de mi vida, ¡vuelvo con más fuerza que nunca! :)

Una de las cosas con las que he tenido que lidiar últimamente es con las conexiones ODBC y el Mac (sí, tengo un Mac hace tiempo ;) ). Y lo cierto es que he encontrado una forma sencilla de poner conexiones ODBC usando unixODBC tal y cómo se usa en Linux. Me ha sorprendido, porque funciona increíblemente bien:

Lo primero que hay que hacer es instalar el unixODBC para Mac OS X. Personalmente, la forma más simple que hay, creo que es usando Homebrew, esa fantástica herramienta de paquetes y software libre que creo que hace que Ruby sea un lenguaje que me ha llamado la atención (¡y lo digo como fanático pythonista! ;) ). Es un ejemplo de trabajo bien hecho (no obstante, no hace falta que uses Homebrew, también están desde hace tiempo Fink y MacPorts).

Instala unixODBC con Homebrew:
brew install unixodbc

Una vez instalado, es hora de compilar el driver de ODBC para PostgreSQL (no está en disponible en HomeBrew, lamentablemente, así que lo haremos a mano):

  1. Descárgate el código fuente del driver ODBC. Elige uno que sea reciente y descomprímelo en un directorio de tu elección, abre una terminal y colócate dentro del directorio.
  2. Compílalo siguiendo la secuencia típica de comandos:

Si todo ha ido bien, deberías tener los drivers de ODBC para postgreSQL como 2 librerías, situadas en /usr/local/lib/psqlodbcw.la y /usr/local/lib/psqlodbcw.so

En principio ya está. Ahora hay que definir a mano el driver ODBC de postgreSQL en el archivo /usr/local/etc/odbcinst.ini que debe tener el siguiente contenido:

y grábalo.

Finalmente, crea un archivo .odbc.ini en tu directorio $HOME, con una entrada de un DSN, como la siguiente:

Esto define el DSN ib3db (con su usuario contraseña). Para probarlo sólo hay que teclear ahora:
isql -v ib3db
Y debería conectarse correctamente.

Conexión remota

El DSN anterior está pensado para conectarnos a una base de datos postgreSQL local. Si quisiéramos conectarnos a una remota, existen muchas maneras, pero la más simple y segura para mi es hacer un túnel SSH:
ssh -C -L 60000:localhost:5432 usuario@servidorremoto.com
Con esto se mapea el puerto local 60000 al 5432 remoto (y habrá que cambiar la linea Port = 5432 del archivo .odbc.ini anterior por Port = 60000, para que use este nuevo puerto). El comando se queda en ejecución. Para cortar el túnel en cualquier momento, no hay más que matarlo con CTRL-C.

Puedes usar otros parámetros extra, como -C (usado en este ejemplo, y recomendable para líneas lentas -e.g. modems- pero no para más rápidas) que comprime la transmisión de datos en el túnel, o -N (no ejecuta nada remotamente) que no abre ninguna sesión remota.

2012
04.22

Gracias

¡Guau! Llevo casi cuatro meses sin escribir una palabra en el blog. En la entrada anterior dije que “es hora de empezar a descorchar vinos” y es que realmente no he parado. ;-)

Pero esta entrada no es para hablar de cosas que estoy haciendo (si hay alguien curioso, que lo dudo, pues que espere un poco, que en un artículo futuro comentaré algo), pero sí para dar las gracias.

Las gracias se las doy a un amigo, que me pasó este vídeo, y también a las personas (entre las que me incluyo) que sé que existen y que creemos que un mundo mejor todavía es posible:

Imagen de previsualización de YouTube

De nuevo gracias. Esta dosis de coherencia la recibí en enero, fue muy inspiradora y no he parado desde entonces :!: No estoy solo; no estás solo; no estamos solos.

2011
12.28

Hace tiempo que no escribo en el blog. Este año, 2011, ha sido bastante raro (hoy día no puedes decir malo, ni quejarte, ya no está bien visto).

Poco a poco voy llegando a una de esas encrucijadas en mi vida donde tengo que replanteármela seriamente. Yo también colecciono vinos viejos.

No necesito pasar por ciertas experiencias para saberlo. No estoy muy satisfecho con mi vida (y sé que mucha gente tampoco, pero eso no me consuela), pero tampoco sé cómo mejorarla. Realmente me siento perdido. Mi mente me dice que algo está roto.

A mi edad, siento que las personas que me rodean (incluso las supuestamente más allegadas) no me respetan; siento que cuestionan (y casi sabotean) hasta la más nimia decisión que tomo sobre mi propia mi vida. Y eso, a mi edad, es duro (es casi como volver a ser niño). Me pregunto en qué he fallado, porque está claro que parte del problema (si no todo) reside en mi.

Lo más duro no ha sido eso: lo más duro es ver cómo aquellas personas que sí me aceptan, que me apoyan e incluso me animan y motivan, o con las que simplemente sentía alguna afinidad, ya no están entre nosotros, o se han ido a vivir lejos.

Este ha sido un final de año triste, y con esa sensación de que cualquier tiempo pasado fue mejor.
De todas maneras no me rindo. Es hora de abrir la botella de vino ahora que aún está bueno:

2011
08.18

Estos último meses he estado trabajando en un proyecto de prototipo de videojuego en 3D realizado en Visual C++ (Visual Studio 2010). Entre esto, las vacaciones y más ajetreos laborales, no he tenido tiempo de publicar nada interesante en el blog… ;-)

El caso es que trabajando con Visual Studio 2010, al principio todo iba bien, pero un día, de repente, los breakpoints dejaron de funcionar. Me aparecía un símbolo de exclamación en amarillo sobre los puntos de interrupción y cuando pasaba el ratón por encima me salía el mensaje “El punto de interrupción no se activará”.

Buscando en Internet veo que este problema es bastante común en todas las versiones de Visual Studio, especialmente en 2008 y 2010. Las razones más comunes por las que no te funcionen los puntos de interrupción suelen ser:

  • El proyecto está compilado en modo Release y no en modo Debug
  • No se encuentran los símbolos de depuración o la ruta de los mismos
  • La opción “Habilitar depuración incremental” en el vinculador está desactivada.
  • No aplicar los últimos parches y Service Packs (algunos de ellos corrigen este problema)
  • Instalación corrupta: Reinstalar la aplicación o Restaurar las configuraciones o incluso borrar las claves de registro y archivos de configuración almacenados en el perfil

El caso es que ninguna de ellas funcionaba hasta que comprobé que si iniciaba el Visual Studio con otra cuenta de usuario todo iba perfectamente. Luego era algo que había en la configuración de mi usuario. Tras abrir los proyectos generados con ambos usuarios y comparar las diferencias en los ficheros XML de ambos proyectos (.vproj) encontré que en el caso fallido se añadía estas líneas:

Quitándolas todo funcionaba bien. El caso es que estas líneas hacen referencia a configuraciones de usuario y en mi panel de Visual Studio no aparecían o tenía problemas para cambiarlas. La inclusión de esta configuración es condicional, y hace referencia a $(UserRootDir)\MicrosoftCpp.$(Platform). Resulta que esta ruta es C:\Users\Boriel\AppData\Local\Microsoft\MSBuild\v4.0, que no es la ruta de configuración de Visual Studio. Borrando dicha carpeta (se volverá a regenerar), se solucionó el problema.

Para evitar males mayores, borré no solo esa carpeta, sino también las de configuración de Visual Studio (C:\Users\Boriel\AppData\Local\Microsoft\VisualStudio\10.0) y claves de registro de mi cuenta (HKEY_CURRENT_USER\Software\Microsoft\VSCommon\10.0). Al reiniciar el IDE apareció el aviso de configuración inicial y el problema se solucionó completamente. ;-)