11.19.2009

Por qué QT debería ser más popular

Llevo trabajando 6 meses con Qt y me estoy preguntado por qué Qt no es mucho más popular de lo que es. Apenas se ve código, fuera de aplicaciones con interfaz gráfico y zulos de talibanes pro-software libre, hecho con Qt.

Voy a enumerar las cosas por las cuales creo que Qt es una librería de muy buena calidad:

- Completa: tiene api para la mayoría de cosas comunes, no solo hablo de interfaz gráfico, hablo también de manejo de ficheros, threads, procesos... vaya lo típico que puedes necesitar a diario

- Documentación: Buena documentación, todos los métodos comentados adecuadamente, ejemplos de uso, ejemplos, demos. Todo lo necesario para hacer una aplicación lo puedes encontrar en la documentación que instalas al instalar Qt, no tienes apenas que estar mendigando por foros.

Ya solo con estas dos merece la pena ser usada, pero además tiene:

- Sistema de build: autotools y familia son realmente penosas de usar. Qt tiene qmake que permite, de forma sencilla y clara crear los ficheros de build. Es posible que no sea tan completo como autotools, pero es que normalmente es lo que necesitas.

- Integración con Webkit: puedes perfectamente tener todo el interfaz gráfico en html/css/javascript y la parte de controlador y modelo en C++.

- Sistema de script: tiene un sistema de script similar a javascript que se integra a la perfección con la aplicación. Símple de usar, fácil de comunicar (gracias a las signals y slots) e integrado.

- Signals/Slots: esto es una extensión de Qt sobre C++, pero es especialmente interesante. Puedes enlazar señales (por ejemplo un click en un botón), con acciones en otro objecto. Es _extremadamente_ útil cuando tienes una aplicación multithread ya que puedes hacer paso de mensajes usando esta técnica.

- Internacionalización: sí amigos, olvidaos para siempre de "char*". Qt usa QString para todo, lo cual te "fuerza" a olvidarte del ascii y trabajar con unicode. Además tiene herramientas para traducir.

En mi opinión Qt debería ser algo mucho más usado por los programadores C++.

La única pega de Qt es que ahora es propiedad de Nokia y esta está empeñada en hacer que todo vaya en symbian (lo peor que he visto en muchos años), como se puede ver en el anuncio de la rc 4.6.. Espero que Nokia la mantenga por muchos años.

11.18.2009

agroguia, anunciado en TV

Hace cosa de una semana la universidad de Valladolid publicó una nota de prensa acerca del premio de la fundación 3M que ganamos hace meses. Podría comentar lo poco detallista que ha sido la universidad de valladolid conmigo al no darme ni las gracias por hacer un desarrollo para ellos, darles el prestigio de un premio nacional y además un 15% en metálico, pero no lo voy a hacer, no merece la pena.

El caso que con esa nota de prensa, algún periodista ha creado una hoax terrible sobre que teníamos unas gafas de realvidad virtual y muchas televisiones se han interesado por nosotros (TVE, antena3, RTCYL), periódicos y radios (mañana tengo una entrevista con una de colombia).

Hoy hemos salido en el iformativo de TVE de Castilla y León, os dejo el video (el primer que habla soy yo):

11.08.2009

Haz caso a tu instinto

Hay veces que tomas una decisión, de pequeño o gran tamaño, en las que algo en tu interior, no sé qué, te dice si la decisión es buena o es mala, si debes tomar el camino o no.

Creo que unos le llaman instinto, otros corazonada, otros sexto sentido... para más definiciones acerca de esto podeis echar un ojo al siguiente video.

Hace unas semanas un agricultor me llamaba interesado por un GPS para su tractor, le atendimos exactamente igual que a todo el mundo, pero después de 1 minuto de conversación, "algo" me decía que aquello no iba a ir bien. No hice caso, pensé se merecía el mismo trato que el resto a pesar de una apreciación (subjetiva, todo sea dicho), así que hablé con él, le enseñe el equipo y decidió comprarlo. Trató de negociar, pero era una negociación donde solo él ganaba, así que mucho no tenía que negociar. Ahí fue el momento en el que yo ya sabía que esto acabaría mal.

Llego el día de la entrega, le instalamos el equipo y entonces dice que no quiere el equipo por diversas razones a cual más estúpida. Le dije 4 cosas desde el cariño y el sentido común y me fui contento a casa. Contento porque he aprendido el "a mi esto no me vuelve a pasar" y contento por la sutileza con la que le mandé a tomar por culo :).

Conclusión: Haz caso a tu instinto

11.02.2009

agroguía, datos de un pequeño negocio

Nunca he hecho públicos datos de agroguía, pero esta vez voy a comentar un poco los datos de ventas, visitas de la web y otros datos que pueden resultar interesantes. No soy especialmente bueno analizando datos de estadísticas web, no tengo experiencia, así que los análisis son a lo bruto y posiblemente algún argumento sea erroneo.

Hace cosa de un par de meses, cara a afrontar la nueva temporada (para nosotros la temporada empieza en septiembre), decidí darle un cambio a la web de nuestro sistema de guiado GPS para la agricultura, eliminando wordpress como la página inicial, cambiándolo por una página de producto donde se viese claramente el producto, cosas que se pueden hacer con él, un formulario de compra, el precio (que nunca habíamos publicado), etc.

La razón de cambiarla ha sido fundamentalmente una: el feedback del usuario. Cuando llegan muchos correos preguntándote cosas que no tienen demasiado que ver con lo que haces significa que no estás explicando bien lo que la gente quiere saber. También en parte a muchos comentarios que gente que sabe de este tema mucho más que yo, gracias a todos ellos :).

Opté por un diseño a lo 37signals, un titular dejando bien claro para que vale y a continuación otro explicando qué le va a solucionar al agricultor (no sé marketing, pero me suena a algo fundamental que explicar). Luego la típica imagen del producto y el resto de página explicando diferentes utilidades del producto.

Uno de mis principales miedos era el de perder el posicionamiento que había conseguido, no tengo claro como funciona, así que cerré los ojos e hice lo que me salió del cuerpo.


Y ahora los datos, estadísticas de la web en septiembre, según google analytics:
- Visitas (no páginas vistas): 533
- Media de tiempo en la página: 5:51 minutos

Si de las visitas resto los que no han estado en la web ni 10 segundos (por ejemplo gente que llega desde google buscando algo que no va a encontrar), 180 en total, me quedan 353 visitas en la web durante todo el mes. Más del 80% vienen de buscadores, la mayoría google.

Si esto se lo cuentas a alguien se rie de ti, son 11 visitas efectivas al dí­a. Bien veamos datos de ventas.

En septiembre hemos vendido 10 licencias, a 1000euros (+iva) cada una, en total facturado 11600euros, esto es un 2.8% de las visitas han comprado. No sé si es demasiado, para un producto de 1000euros creo que está bien. Recordar que de ahí, hay que restar gastos (hardware, SS, etc) e impuestos (16% iva y 20% del beneficio, del valor añadido vaya).

Conclusiones que saco:
- 11000€/mes para un negocio es realmente poco. Imaginemos que tuviesemos que pagar oficina, gastos y demás. Si quitas impuestos se queda en una verdadera miseria. Ahora, si tenemos en cuenta que somos dos personas, que hemos dedicado, tirando por lo alto, una media hora al dia (15horas/persona-mes) entre preparar envíos, hablar con clientes, responder correos... las cuentas salen un poco mejor. No se trata de ganar mucho, se trata de ganar lo máximo con el mínimo trabajo.
- Al contrario que el año pasado, este año todos los clientes han sido por la web. El año pasado era un hecho aislado cuando alguien compraba por web.
- No hemos hecho nada de publicidad, nada, ni revistas, ni webs, absolutamente nada.
- Mucha gente llega a la web buscando en google agroguia, esto es, ya nos conocen y saben lo que vienen buscando.
- El posicionamiento ha mejorado, a pesar de la maraña de redirecciones que tengo en nginx.
- El tiempo que me deja libre el no tener que mantener agroguía, lo estoy usando para sacar otro producto de trazabilidad para la agricultura (esta vez ya sé algo de css, aunque de diseño mucho no he aprendido, la verdad), para aprovechar los clientes que ya tenemos y meternos en un vacío de aplicaciones decentes.

Como curiosidad, decir que casi tengo más tráfico en el server de ataques a paquetes web PHP que de gente interesada. :).

Estoy realmente contento, no por las ventas, si no porque estamos jústamente donde quería: vendemos a un nivel aceptable, trabajamos no deamsiado, tenemos clientes cada vez más preparados (se nota por la bajada de llamadas de soporte) y encima haciendo lo que nos da la gana.

10.31.2009

Python y miniframeworks web

He empezado a colaborar con web.ontuts, una blog sobre tutoriales de programación web, con un pequeño artículo sobre juno, un pequeño framework web hecho en python muy útil para pequeños servicios.

Aquí está:
mini-aplicaciones web con python y juno

10.25.2009

Lo que debería haber en todas las empresas de software de España

En todas y cada una de las empresas de software de España debería haber un cartel, bien grande, donde todos pudiesen leerlo, con la siguiente frase

"El verdadero progreso es el que pone la tecnología al alcance de todos"


De un tal henry ford.

vía voolive visto en microsiervos.

10.23.2009

integración continua en 100 líneas de código

Actualmente estoy trabajando con un embebido con linux, la potencia de la placa es bastante limitada y a la hora de compilar una aplicación mediana el sistema demasiado. Como tengo varias placas decidí montar un servidor de integración continua en uno de ellos usando compilación distribuída con distcc. La forma de trabajar es la siguiente:

- programo haciendo mis commits en local (usando git)
- cuando necesito probar mi código en el embebido hago "git push ci" de forma que ci es un remote parecido a ssh://user@ciserver/home/ci/project.
- Este repositorio tiene un post-recieve-hook que lanza una petición al servidor de integración continua, este compila (distribuido, con distcc) y si la compilación va bien lanza un "build_pass" que usando rsync hace deploy en la máquina de pruebas.

Parece muy complicado, pero realmente es poca la configuración que se necesita, casi todo va sobre ssh.

Sentía la necesidad imperiosa de tener un servidor de integración continua pequeño y manejable, así que decidí hacer uno :).

Con juno, un miniframework web que permite en dos patadas tener una pequeña aplicación web.

Si quereis probarlo o ver el código, el código está en github: cipy, servidor de integración continua.

Funciona bien, realmente no hace demasiado, pero basta. Solo soporte un proyecto, pero no hay problema para lanzar varias instancias, cada una en un puerto diferente, apuntando ngnix ( o tu servidor web favorito) con un "proxy pass" a cada una con un "location" diferente.

Si realmente quieres un servidor de integración continua potente puedes usar hudson.

Un shot:

9.28.2009

"Making of" de cubyshot

Este año he presentado un pequeño juego a artfutura, en realidad hemos presentado, ya que wonder es el creador de la música. Se trata de un juego mata-mata, hecho exclusivamente con cubos, procedural y en <96kb.

Antes de nada el video y los links, después la miga.

cubyshot from javisantana on Vimeo.



codigo fuente: cubyshot en github
exe: cubyshot (ojo, si tienes antivirus es posible que te de un toque por la auto-descompresión del ejecutable). Puedes compilarlo con el visual c++ express.

El juego lo empecé allá por enero y en unas tardes saqué un pequeño prototipo (video). Partí del framework de 4kb de iq (muy bueno aunque no sea para una 4kb) y sobre él empecé a trabajar basándome sobretodo en los juegos de kenta cho, aunque luego lo deje hasta retomarlo hace un par de semanas más o menos.

El código es bastante simple (a pesar del sprint de los últimos dos días antes de art futura está bastante limpio), está en C, aunque está "orientado a objectos" conlos típicos punteros a funciones. Hay partes que me gustaría destacar:

- Todo está sobre el objeto actor_t, cualquier cosa que se mueva "implementa" ese interfaz, de forma que con un pool de objetos y unas pocas funciones tienes todo moviendose. La separación entre controlador y vista es, creo yo, bastante clara :).

- La mayoría de las animaciones son fijas, esto es, son una función matemática. normalmente basada en sin/cos. Por ejemplo el movimiento de los enemigos finales es:

a->pos[0] = 10.0f*perlin2d(a->time*0.001f, a->time*0.001f)*sinf(a->time*0.4f);
a->pos[1] = 14.0f + 3.0f*sinf(a->time*0.4f);

Esto da bastante libertad, porque siempre hay una fórmula matemática que más o menos se ajusta a lo que quieres. El mago de esto es iñigo quilez, te aconsejo que leas el making of de elevated.

- Para la mayoría de elementos en la pantalla no hay posiciones prefijadas, símplemente se situan en posiciones aleatorias, lo único que varía es el seed, dicho de otra forma, es el ADN de cada objeto.

- Casi ningún movimiento es directo, casi todos los movimientos de objectos están filtrado paso bajo, por ejemplo, el cambio del color del escenario.

- He usado fixed timestep, de esa forma simplifica mucho la lógica, no tienes que preocuparte del dt.

- Los efectos de sonido son sintetizados (puedes leer un tutorial que escribí hace años de como está hecho) y la música (XM) se reproduce con minifmod. La música se lleva el 80% del peso del exe :).

- Los enemigos finales están calculados proceduralmente con un efecto mirror. De hecho si arrancas el juego y no comienzas, cada 20 segundos más o menos se genera una nave nueva. Entre una nave y otra solo varía la semilla de números aleatorios. Para generarlas me he basado en invader fractal.

- Curiosidades. El código de la ciudad procedural (video) está en el código pero no me ha dado tiempo a usarlo... y parte de las ñapas de inicialización de direct sound están tomadas del código fuente del quake1 :)

Partes de las que no estoy contento son la generación de los enemigos, apenas hay variabilidad, la dificultad, el poco uso que le di a la paleta (fundamental en juegos con gráficos de coder), no haber preparado un objeto timer, etc, etc.

Todo se andará.

9.21.2009

El software y sus productos

Hace dos días hablaba con el director comercial de una empresa y me comentaba su opinión acerca de la rentabilidad de las empresas de software y sobre los técnicos.

Me dijo algunas cosas que me llegaron muy dentro:

- Las empresas de software no saben "hacer producto". Y esto es una realidad como un templo, tan grande como que en todas las empresas que he estado ninguna ha ganado dinero vendiendo productos, salvo la primera, que no era de software :). Vendiendo servicios sí, pero productos nada. Él lo achacaba a la falta de visión que tiene el técnico del cliente y la cantidad de empresas de software que han nacido a la sobra de subvenciones, otro par de verdades como chalets con piscina y jardín.

- Es imposible medir el rendimiento de un programador. En su empresa nunca se había hecho software, sin embargo se habían tenido que poner manos a la obra para poder vender un servicio. Medir el rendimiento de un comercial es muy "simple", si hay ventas y cuantas. De un programador, cómo se mide el rendimiento? cómo sabes si un programador es bueno o es malo? cómo mides su trabajo? Me cuesta a mi responder a eso, no quiero ni pensar a una persona no técnica. Y es que de un programador que se centre en resolver un problema a otro que se vaya por las ramas hay días y días de desarrollo.

Aclara bastante las ideas escuchar el análisis de una persona que ve el desarrollo de software desde lejos, a pesar de que sea un comercial :P. Por lo menos este no era de los de "sí a todo", "MI equipo por 1000€ menos" o "con dos semanas MI equipo tiene más que suficiente".

9.08.2009

Las aplicaciones web de los bancos

Me pregunto que clase de engendros programarán las aplicaciones web que ofrecen los bancos a sus clientes. Es realmente difícil hacerlo tan mal, en todos y cada uno de los aspectos, tanto el técnico como de usabilidad, diseño... funcionan realmente mal sea cual sea el navegador, funciones sin sentido, confusión absoluta para hacer una mísera transferencia... os animo a que entreis en la web de vuestro banco preferido y useis un poco firebug. Algo me dice que están programadas por grandes consultoras con grandes comerciales con grandes amigos y muchos expertos en tecnología.

Pero la cosa no queda ahí, lo peor es que no te dan un acceso a los datos de forma simple. Esto es, no puedes de forma simple tener los datos de, por ejemplo, los movimientos realizados. Tan difícil es tener un api web simple que los retorne?

Con la cantidad de pasta que todos los ciudadanos hemos regalado a los bancos bien podría el gobierno haberles obligado a hacer las cosas bien, porque digo yo, si para hacer negocio se necesita mover dinero y no tenemos una forma automática y homogenea de tener esos datos disponibles, como quieren que las empresas españolas automaticen, informaticen o se "adapten a la nueva realidad de las TIC", como dicen los ignorantes tecnológicos que hablan por nosotros las sandeces que sabe dios que asesor de su partido les ha comentado que queda bien porque se lo ha oído a vaya usted a saber que gurú.

8.24.2009

railsrumble y la comunidad rails

Este fin de semana ha sido la railsrumble, un concurso donde hay que crear una aplicación web en 48 horas usando el framework web Ruby on rails.

No deja de ser una compo más, pero llama la atención la calidad, tanto en los diseños, como en la funcionalidad. 48 horas es muy poco tiempo para cualquier cosa, lo justo para centrarse en algo y hacer una cosa sencilla.

A pesar de eso lo que más valoro no es la calidad técnica de los trabajos, si no la calidad de la comunidad alrededor de rails. Solo hay que ver algunos detalles, por ejemplo la costumbre de compartir del código (no hay más que ver la cantidad de plugins para rails que hay en github), estar siempre tratando de mejorar, organizan conferencias de muchísima calidad (en españa tenemos conferencia rails, recomiendo ver las charlas) y un largo etcétera... incluso solo con ver el diseño de algunas web podrías decir si está el backend está hecho por gente de la comunidad RoR.

Decir que hay varias entradas españolas recogidas por @happywebcoder, varias de ellas están en la final:
- http://letsdecide.us/ código
- http://diversion.r09.railsrumble.com/ un especie de wiki al estilo github.
- http://triphq.net
- parlio. Reseña especial, porque además de haber hecho la aplicación en 48h, han intentado que tenga un uso final apuntando bien algo: acercar lo que hacen a los que votas a la gente de a pie. Me una pregunta: cómo se les tiene que haber quedado la cara a la gente que hace la web del parlamento vasco . El código en el github de probono (la asociación a la que han donado el código).

8.02.2009

folding en vim

Hasta ahora no había usado el folding de vim porque me parecía un verdadero peñazo el crear los folds para el código en C/C++, sin embargo existe un modo de hacerlo tan simple que no puedo dejar de usarlo:

:set foldmethod=syntax

de esta forma se colapsa todo. Para abrir y cerrar tan fácil como:

- zO con 'O' de "open". Es mayúscula para que se abran los folds internos, si usas zo se abre el fold de primer nivel.
- zc con 'c' de close.

Hay miles de tutoriales de folding, pero creo que he puesto la forma más simple que se puede.

7.29.2009

progit, libro de git libre

Hay dos o tres blogs que leo habitualmente de los cuales no me interesa para nada la tecnología, pero que están escritos por gente tan buena que merece la pena leerlos. Unos de ellos es el blog de github, y esta mañana me encuentro con que han liberado un libro sobre git.

El libro merece la pena para aprender git, aunque me da la impresión que es una amalgama de la estupenda guía git magic y el libro de la web oficial de git.

Dejando a un lado la parafernalia de la libertad, creative commons y otras hierbas, lo que hace el libro redondo es el último capítulo, git internals, donde explica, bien clarito, con 2 comandos básicos, como funcioan git por dentro. Asombra lo realmente simple que es.

Como me gusta saber como funcionan las cosas, he mirado el código fuente de git, pero no el actual, si no el primero publicado, git-0.01, donde se puede apreciar claramente todas las cosas que explica en el capítulo. Una pena que el capítulo no haga referencia a ese código.

Y ya que estaba metido en harina he buscado el primer código liberado de mercurial, mercurial-0.1, para ver si el sistema usado es el mismo. Me han llamado la atención dos cosas, la primera de ellas es que si ejecutas hg, el script principal, sin parámetros la aplicación te lanza la típica excepción... no comprueba los parámetros, la segunda es el propio "announce.txt". El código dista de ser ordenado y documentado, pero 4 años después ahí lo tienes..

Otra curiosidad, la primera release de git fue el 7 de abril, la primera de mercurial el 27 de mayo del mismo año (2005), 39kb de C frente a 6.2kb de python :).

7.06.2009

¿Sabe tu madre lo que haces en tu trabajo?

Seguro que os habeis encontrado en la situación: una persona sin conocimientos técnicos, o muy básicos, os hace una pregunta, pongamos "qué significa el número ese, 8080, que hay detrás de esta dirección de esta web". Puedes ponerte a explicarle la pila de protocolos desde la capa física hasta http, tú lo sabes, sabes porque los desarrolladores usan a veces otros puertos, te sabes la teoría, cuando ves eso rápidamente viene a tu cabeza cosas como iptables, proxy_pass, accept, netcat, tomcat...

O la pregunta que nunca sabré responder: "hijo, qué haces en tu trabajo?", esa pregunta bien intencionada de las madres, donde ves que están poniendo todo el interés, lo hacen porque te quieren y no las puedes fallar. Pero lo siento amigo, vas a fallar, o dicho de otra forma, en tu cabeza sonará un EPIC FAIL! (y a continuación lo twitearás y 4 ó 5 ciber-amigotes se descojonarán)

Y ahora vamos a algo más serio, porque que tu madre sepa o no que eres un fan de java es poco relevante, pero que trates de explicarle algo a alguien, incluso si es técnico, y no te entienda me parece cuanto menos grave. Yo lo reconozco, me explico mal, hablo demasiado rápido y encima meto términos muy técnicos que la persona que escucha no tiene porque saber. Lo peor es que me doy cuenta y que la mayoría de personas que he tenido a mi alrededor con mi perfil padecían del mismo problema.

De quién es el problema, de nuestros compañeros de trabajo que no se esfuerzan o nuestra por no saber esquivar los terminos técnicos o condensar la información de forma clara? Siempre he pensado que el peso de la primera era mayor, pero a medida que pasa el tiempo y veo diferentes perspectivas, sobretodo de personas técnicas de lo que podríamos decir avanzada edad, me doy cuenta que es posible que al final simplificar es lo mejor para explicarle las cosas a tu compañero y lo mejor, para ti mismo.

7.01.2009

Agroguia AR gana los premios 3M

Hace ya más de un año se me ocurrió, un sábado de mañana, que porque no mezclar un GPS con una webcam para mostrar información al agricultor sobre la imagen real en vez de solo representar en 2D los datos del GPS como venía haciendo en nuestro sistema de guiado agrícola.

De esa mañana surgió un prototipo hecho con python. Se lo enseñé a Jaime Gómez, mi tutor de proyecto y le gustó, entonces planteó la posibilidad de hacerlo un poco más en condiciones, así que hace 3 meses decidimos usar una webcam mejor, un GPS más rápido y grabar unos videos en un tractor tratando de verdad una tierra.

Así, junto a Pablo, un chaval al que llevo el proyecto fin de carrera a medias con Jaime, preparamos la documentación, grabamos el video y lo enviamos a los premios 3M. Ayer la organización nos dijo que lo hemos ganado en la categoría de industria. :)

Me llamaron de RNE para hacerme una entrevista (que no sé cuando emitirán, se me olvidó preguntar) y hay una reseña en el norte de castilla.

Son 6000€ (a pachas con hacienda, como no), pero lo más importante para mi es ver como una idea de una mañana puede llamar la atención y convertirse en algo real con "poco trabajo".

Dejo una imagen de la aplicación:

6.27.2009

y mañana ya es viernes

No hay otra cosa en lo que los españoles no seamos más optimistas que en los hitos del fin de semana. Siempre están ahí, siempre hay una excusa para ser positivo, todos aportan para llegar bien al maldito viernes a las 15:00 (en el mejor de los casos).

Y es que ODIO, pero mucho, cuando un compañero de trabajo dice: "bueno, mañana ya es viernes", o "miercoles, en dos días fin de semana" o para remate "ya se termina el lunes en 3 días y un poco viernes", pero vamos más allá, marcamos milestones más cercanos, dentro del día: "en dos horas nos vamos", "ya solo quedan 30 minutos", "me tomo un café, leo el periódico y ya son las 11". Me pregunto que pasaría si la gente se marcara milestones tan cercanos y tan claros en su trabajo, quizás scrum naciera así :).

Entonces me pregunto yo, si para tí un 80% de la semana es sufrimiento, por qué cojones no dejas el trabajo y te buscas algo que te llene más? He tenido la suerte de estar en empresas en la gente tenía interés por su trabajo pero más suerte es haber estado en las que no lo tenían, porque así uno valora aún más hacer lo que le gusta y poder decir, por mucho que te pongan de gilipollas para arriba, "me gusta mi trabajo, cada día".

Está claro que el tiempo libre es lo mejor, pero igual que cuesta coger el coche para irte a la ciudad de al lado a cenar en tu tiempo libre, también cuesta esfuerzo tratar que cada día sea interesante en tu trabajo.

Por favor, si lees esto, acuerdate antes de decir delante de un compañero, pero sobretodo, de ti mismo "ya falta menos para el viernes" que quizás ese no sea el camino y que posiblemente estés creando un "mal ambiente" que al final irá contra ti.

6.16.2009

Tecnología vs personas

A menudo me doy cuenta que algo es claramente mejor que otra cosa (tecnológicamente hablando), puede que en ciertos casos haya duda, pero hay casos en los que no hay lugar a duda, todos los argumentos se decantan a favor de cierta tecnología, pongo un ejemplo.

Imaginemos que tenemos código que vamos a mantener y tenemos que tomar una decisión: mantenerlo en carpetas y parches o tener un sistema como subversion/git/mercurial/etc. No hay duda (aunque linus tolvalds prefiere tener tar.gz antes que subversion), es obvio que tener un sistema de control de versiones es, de largo, una mejor solución.

Sin embargo qué pasa si el código está en una empresa con 50 programadores que nunca lo han usado y están acostumbrados a su sistema de tar.gz? La inercia de la gente es muy posible que pueda a todos los argumentos a favor de una tecnología mejor.

En The pargmatic programmer (capítulo 3, punto 17) ponen este caso como ejemplo y dicen (versión libre) "si estás en un lugar donde no usan control de versiones, no trates de hacer que los demás empiecen a usarlo, comienza usándolo y que los demás vean las bondades del sistema".

Igual que con el control de versiones hay miles de casos, lenguajes de programación, librerías, sistemas de gestión, correo electrónico... no basta con saber de tecnología hay que saber presentarla bien.

6.04.2009

webs de alquileres

Esta semana he estado buscando vivienda en Pamplona y creo que no ha podido ser más traumático. Mi primer epic fail fue pensar que con internet lo tenía todo hecho, así que buscamos solo cosas por internet y después de una semana puedo asegurar que a las webs de alquiler les queda muchísimo por andar.

Aposté por los sitios web porque pensé que me podían dar mucha información (fotos, videos), comentarios de propietarios e inquilinos, situación exacta de la vivienda, casas parecidas, comparativas de precios por sector, etc, etc, pero cual ha sido mi sorpresa y todo han sido fallos, errores y problemas, enumero:
- primera cagada: las webs de alquileres están copadas por inmobiliarias. A ver, se supone que se trata de evitar un intermediario y lo que hacen es dejar meter por medio a sus competidores.
- Dejar poner viviendas con poca información, sin fotos, etc.
- No permitir interacción entre usuario/propietario de forma directa. Algunas tienen sitios de contacto, pero no es nada directo, mucho más lógico un pequeño hilo donde la gente les pregunte.
- No dar información de cuando se dio de alta el anuncio, última actulización, evolución de precio y comparativa con otros de su sector.
- No tener un sistema de puntos para valorar al inquilino y al propietario, de esta forma sería posible sabrer si el propietario es un payaso o el inquilino un jeta. Este punto es bastante delicado, pero si funciona en ebay...

La que más se acerca es idealista pero tiene, en comparación con otros sitios, menos viviendas. Me encanta la herramienta que tienen en sus "labs" para poder ver sobre el mapa los inmuebles. Se nota que los creadores de idealista son "familiares" de 11870.

En resumen, si una inmobiliaria cobra la mitad de una mensualidad por encontrarte casa, creo que si al usuario se le pone un precio lógico para usar la aplicación web. Por cierto, he dicho que estoy hasta las narices de servicios gratuítos? prefiero pagar y tener un buen servicio a tener un servicio mediocre.

5.28.2009

cambio de trabajo

Me cambio de nuevo de empresa, mañana será mi último día en algor, la subcontrata de telefónica I+D donde he estado trabajando. 6 meses (y 1 día) es el tiempo que he estado aquí, realmente poco (aunque solo un pelo por debajo de mi media en una empresa).

Las razones de mi marcha son fundamentalmente 2:
- Yo no estoy hecho para estas empresas donde la productividad no es importante, donde no se aprecia al empleado y se trabaja con personas como carneros. Hay gente que le gusta esto, que aguanta o que no tiene otra salida, no es mi caso.
- Telefónica I+D, además de querer que me cambiase de empresa de forma unilateral, no creo que tuviese en mente mantenerme demasiado tiempo más en su plantilla de "personal ajeno". La cosa está muy negra, la forma de trabajar de estas empresas propicia que cuando se necesita aportar valor todo se desplome y telefónica I+D es la reina del lugar.

En general no me he adaptado bien a la forma de trabajar, no comprendo muchas de las cosas que se hacen, ni la gente me entiende a mi, tampoco comprendo como la subcontratación y dispersión de los integrantes de un proyecto es algo común.

Bueno, sea como fuere, yo me marcho de aquí con un regustillo agridulce. Por una parte ya conozco como funcionan estas empresas, he conocido a gente muy agradable, pero me doy cuenta que el futuro de parque tecnológico de boecillo no es muy largo tal como está ahora, ha llegado el momento de las empresas que aportan valor y son competitivas, y esas no están en boecillo (*).

Mi siguiente destino es Pamplona, me voy a una empresa que vende lo que hace, que gana dinero con ello y que compite. Espero aprender mucho y poder aportar lo que no he podido aportar aquí (seguramente la única espina que me queda clavada). Por lo menos me voy con el consuelo que ahora @lalangosta sabe que es trac, @Chiralilla conoce mercurial y @djgago sabe que los buenos sitios webs se hacen con python :)


(*) Seguramente habrá empresas que funcionen bien en boecillo, disculpas por adelantado, no he llegado a conocer ninguna.

5.25.2009

Nuevo microblog: retales de código

Me fascina ver como hay gente que es capaz de sacar el máximo partido a unas cuantas líneas de código. Por eso he creado un microblog alojado en tumblr que me parece un servicio la mar de adecuando para estas cosas sobre pequeños trozos de código que hacen grandes cosas. Además los creadores tienen pinta de ser gente guay (usan mac, monitores gordotes, oficinas supermolonguis) :p. Por cierto, que interesante es ver como son las oficinas y como trabajan otros desarrolladores, pero eso es para otro post.

Otros microblogs que sigo, relativos a programación son, lines of code de LinkingPaths y commandliners mantenido, entre otros, por @rafacas.

Bueno, aquí os lo dejo: small pieces of code