21 de marzo de 2010

Reencuentro con Eduard Jodas

Yo conocí a Edu, en mi primer trabajo después finalizar mis estudios, había trabajado ya en los dos últimos años pero siempre a tiempo completo y no en un equipo de trabajo dedicado al desarrollo de aplicaciones concretamente.

Edu no era de la empresa para la que yo empecé a trabajar, era de una consultora de software externa que estaba subcontratada para realizar el desarrollo de varias aplicaciones web internas.

Del equipo de personas de su empresa, concretamente 3 miembros, él más o menos el jefecillo, bueno básicamente gestionaba a sus compañeros y se encargaba de hacer lo que en España tocaría hacer más, la arquitectura del software.

Antes de empezar con el gran proyecto, denominado Pirámide, nombre que recibía la aplicación web que se iba a desarrollar, heredando lo de la aplicación inicial hecha en MS Access, si he dicho Access aunque parezca imposible que el paso de una aplicación de Access a web llevó los 9 meses planificados y un poco más, a Edu le encargaron montar junto con algún colega más que ya no estaba por allí el entorno de desarrollo, unos cuantos servidores WAS, un CVS, etc...

El proyecto empezó y pasó por sus diferentes fases, toma de requerimientos, validación de los requerimientos, diseño y maquetación de las pantallas (esto me tocó a mí y por eso y algo más que no viene a cuento no llegué a los dos años en la empresa), hasta que se acercaba la fase de programación la cual fue precedida por la fase de diseño de la arquitectura del software y esa fase es la que lideró Edu con todo su potencial y conocimientos que tenía; esto es lo que me demostró que en España también hay gente que le gusta hacer las cosas bien hechas y que las defiende y esta vez su defensa permitir no suprimir esta importante fase.

Más tarde el proyecto finalizó y todos fuimos cayendo ha formar parte de otros proyectos o de otras tareas relacionadas con la puesta en producción de la famosa Pirámide. Luego casi a los dos años de mi entrada, yo me largué de buenas maneras, aunque la empresa se lo tomó bastante mal y Edu se iba a largar en breve, ya que estaba en el proceso de selección para entrar a currar en Google inc., que aunque no era seguro, yo lo estaba que lo iba a conseguir.

Ahora después de no volverlo a ver desde que me largué de la empresa, lo he vuelto a ver en el mismo Zurich, aprovechando un visita que he hecho a otro amigo que lleva por aquí una temporada y a raíz de esto he decido hacerle algunas preguntas para saber más su trayectoria pasada, presente y futura, así que aquí os las dejo junto con sus respuestas.
  1. Ivan: ¿cómo empezaste tu andadura por el mundo de los bits?

    Edu: Empecé jugando al clásico juego que eran dos rayas uno a cada lado de la pantalla y que se trataba de devolver un punto que hacía de bola, es decir como si se tratara de jugar al tenis pero sin red, totalmente dos dimensiones, no recuerdo el nombre concreto.

    Ivan: Yo indico, creo que se llamaba Pong.

    Edu: Luego más tarde mi padre nos compró a mí y a mi hermana un Spectrum 48kb el cual nos pasábamos horas y horas, haciendo turnos, copiando código que aparecía en unas revistas técnicas, cuyo nombre no recuerdo para luego ejecutarlo y ver que sucedía, aunque la mayoría de veces no obteníamos nada porque nos habíamos equivocado en algún lugar y uno podía morir en el intento de encontrar el error.

  2. Ivan: ¿Cómo continuó tu carrera profesional?

    Edu: Continué haciendo cursos de todo, desde ofimática hasta programación en un lenguaje que se llamaba Q Basic y como me gustaba esto de jugar con los ordenadores, en el momento de finalizar el instituto me metí a hacer Ingeniería Informática, sin concretamente saber que iba a ser mi vocación.

  3. Ivan: ¿Te imaginabas acabar en la considerada la mejor empresa del mundo donde currar?

    Edu: Que va, ni si quiera se me pasaba por la cabeza que acabaría currando fuera de España.

  4. Ivan: ¿Se vive bien en Zurich? Y ¿currando en Google?

    Edu: En Zurich, no sé vive mal, si lo que te gusta es la naturaleza, pero si te gustan las grandes metrópolis donde lo que buscas son que haya grandes eventos, ferias, etc, entonces no es tu lugar. Lo que si es verdad es que el verano es fenomenal para hacer las actividades de montaña pero en invierno, es bastante más chungo debido a frío y si tu pasión no es el esquí, no aprovechas mucho la naturaleza durante esta estación.
    Lo de currar en Google, por supuesto, me apasiona.

  5. Ivan: Ahora que estas en Google ¿te ves el resto de tu vida aquí, en Zurich, junto a Google?

    Edu: ¡No!, no me puedo imaginar pasar toda mi vida en un mismo lugar, me considero todavía joven y con mucha vida por delante para pensar en pasar toda mi vida en lugar fijo.

  6. Ivan: ¿Utilizas Bing o Yahoo?

    Edu: Jajajajaja, ninguno de los dos. No obstante probé Bind al principio cuando apareció, pero no me aportó nada nuevo y me he quedado con Google, ya que lo tengo todo con él y prefiero no cambiar por algo que no veo que me aporte mejoras.

  7. Ivan: ¿Que sistema operativo utilizas? ¿Google OS?

    Edu: En casa utilizo Windows Vista 64 Bits, pero no lo recomiendo, recomiendo mejor usar Windows XP o Windows 7.

    Ivan: ¿Y en Google?

    Edu: En Google Linux y en el portátil Mac OS, pero como también realizamos desarrollo para Windows, también lo utilizamos, todo depende del proyecto en el que estés.

    Ivan: Pero ¿Windows sobre máquinas virtuales?

    Edu: No necesariamente, depende de las necesidades que se tengan, hay personas que con una máquina virtual ya les es suficiente y otras que necesitarán más.

  8. Ivan: ¿Ya te has convertido en un GURU del J2EE?

    Edu: Que va, ahora se menos que cuando estaba en MGS.

  9. Ivan: ¿Eres friki?

    Edu: Si, por supuesto.

  10. Ivan: Tus viejos colegas y familiares más cercanos ¿se han puesto celosos al abandonarlos?

    Edu: Si y no. Algunos conocidos han tenido ocasión de probar de entrar en Google, e incluso siendo mejores que yo, por H o por B, no han querido intentarlo, así que estar aquí para algunos no quiere decir estar en un lugar ideal.

  11. Ivan: ¿Que echas de menos de España? ¿de Cataluña? ¿de Barcelona?

    Edu: De España el clima, de Cataluña el mar y la cultura y de Barcelona la familia, los colegas y el mar.

  12. Ivan: ¿Las suizas te ponen más que lo “made in Spain”?

    Edu: A mi me gustan todas, aquí te parecen más exóticas pero luego te acabas acostumbrando y te parecen normales.

  13. Ivan: En Suiza ¿te toman igual el pelo con el cuento de la crisis como lo hacen en España?

    Edu: Realmente creo que hay crisis en España, con el índice de paro que hay no creo que todo sea cuento.

    Ivan: Tienes razón, pero yo creo que hay algunos que se aprovechan de la situación.

    Edu: Aquí no se aprovechan o al menos en mi caso, a mí por ejemplo me han bajado el alquiler sin decir nada, solo por el simple hecho que debido al estado de la economía actual me han dicho que el alquiler baja.
    Y en Google, sin problema, es como vivir en una burbuja anticrisis.

  14. Ivan: En Suiza ¿se tiene la misma mierda de consideración que en España sobre el valor que genera la inversión en tecnología?

    Edu: No, aquí se tiene más conciencia en la importancia de la inversión en tecnología para mejorar y/o optimizar la productividad de las empresas; en cambio en España los técnicos y las inversiones en tecnología se consideran un mal necesario, por lo que siempre van a por el mínimo.

  15. Ivan: Y para finalizar voy a pedirte que me reveles el gran secreto ¿que tengo que hacer para acabar currando en Google aunque sea en la cantina de camarero?

    Edu: Ser culturalmente muy abierto y tener experiencia en haber estado en otros países y en contacto con otras culturas. No tener esto es un gran handicap.

    Ivan: Y el saber Inglés otro, ¿no?

    Edu: Si, es otro gran handicap.

Espero que la hayáis disfrutado igual que yo la he disfrutado haciéndose la.

Hasta la próxima enfermos.

13 de marzo de 2010

Cabinas telefónicas con servicio de e-mail

Estando de visita a un colega por Zurich y aprovechando el viaje para hacer turismo por allí me he topado con una cabina telefónica curiosa, al menos para mí, ya que nunca antes lo había visto.
La cabina telefónica a parte del clásico teléfono que tenía, también tenía un aparato a parte con una pantalla y un teclado, así que al verlo he entrado para curiosear y he podido ver que en Zurich, las cabinas te dan posibilidad de enviar e-mails y FAX por el precio de 0,50 CHF.

Interior de una cabina telefónica de Zurich (Suiza)

Ah algunos os parecerá que es una tontería, y es que ahora con todo el mundo llevando tarifas de datos en el móvil que llevamos en el bolsillo, lo parece, pero yo hace ya algún tiempo, cuando estas tarifas no eran tan asequibles, me había encontrado con la necesidad de tener que enviar un e-mail y no poder hacerlo, y ya sé que hay cybers y todo eso, pero cuando necesitas uno no lo encuentras.

Lo curioso de todo esto, que ya que pones una pantalla con un teclado, porque no se da acceso a Internet también, ¿será que tienen miedo que se use para hacer hacking? (esta última pregunta me la planteo después de llevar algún tiempo leyendo temas de seguridad y hacking ético el cual me ha provocado una especie de obsesíon por la seguridad y no es de extrañar, cada día ves cosas nuevas y es que la gente que se dedica a este mundo lo peta absolutamente todo.

Por cierto, aparte de lo comentado, hay que decir que las cabinas, son cabinas, ya sea por el tema del frio o porque en este país puede que estén más acostumbrados ha darle un par de vueltas a las cosas antes de hacerlas, pero hablar en estas cabinas es algo bastante factible, ya que en las de España, según que calles, la comunicación solo es a una banda.


Exterior de una cabina telefónica de Zurich (Suiza)

Hasta la próxima enfermos.

6 de marzo de 2010

Instalando Marvell Yukon Ethernet Controller en Ubuntu

Después de un tiempo sin poder dedicarme a dejar bien configurado mi Netbook el cual ya compré hace algún tiempo, finalmente me he decidido dedicarle un rato, hoy mismo, para dejar funcionando la tarjeta ethernet integrada en el sistema operativo que le puse desde el primer momento que lo tuve, que es concretamente un Ubuntu 9.10 Netbook remix. Si ya sé que alguno podéis llegar a pensar que como es que no lo hice desde un primer momento, pues esto se reduce a básicamente 3 aspectos:
  1. Falta de preferencia de mi tiempo libre para dedicarle a esto.
  2. El aspecto 1 se debe a que la tarjeta Wireless Broadcom si que fue detectada en la instalación base.
  3. El aspecto 2 queda justificado por los 2 objetivos por el cual lo compré, que fueron tener menos pereza en cargar un ordenador a cuestas y para que en los momentos de mayor pasividad no me diera tanta pereza estar delante de un ordenador; este último objetivo implícitamente requiere el uso de la wireless, ya que en esos momentos es cuando necesito estar en el sofa o en la cama, por lo que los cables me sobran, además debido a esto inicialmente no me día cuenta que el sistema operativo no la había detectado.
Bueno ya no me enrollo más y paso a explicar la aventurita de instalar el driver, que me ha llevado un rato algo largo, pero como siempre a parte de ahora tener la tarjeta ethenet funcionando me ha llevado a aprender, como siempre, alguna cosa más.

Buscando el dispositivo
He empezado buscando el fabricante del dispositivo que lleva el Netbook porque aunque alguno de vosotros penséis que como es que no podía saberlo, pues básicamente se debe a que cuando compré el Netbook no miré concretamente que tarjeta ethernet llevaba.
Esto fue fácil de solucionar buscando en la Web de HP el modelo y viendo con que hardware se comercializaba; esta vez ha sido fácil ya que en el caso de la ethernet solo habían utilizado un fabricante y modelo, concretamente se trata de una Marvell Yukon Gigabit Ethernet.

Buscando el driver
Aunque parezca una parida, resulta que encontrar el driver apropiado para linux no lo ha sido tanto, por tres motivos:
  1. En los repositorios de paquestes de Ubuntu no hay o no he encontrado un driver; por lo que se jodió la instalación más fácil y rápida a la que podía optar.
  2. HP no ofrece drivers para linux para este Netbook.
  3. Resulta que los drivers te los puedes descargar de dos lugares, de SysKonnect y de Marvell, siendo distintos.
Bueno, así que me descargo los dos el SysKonnect y el de Marvell.

Analizando los drivers
Una vez descargados, que en el caso de Marvell he descagado el que indica para kernels de la versión 2.6 pero con una coletilla que pone "Fedora", les he echado un vistazo rápido y ya he visto que el de Marvell es de una versión superior, concretamente la 10.84.3.3 frente a la 10.70.1.3 de SysKonnect.

Después he leído detalladamente el README del driver de Marvell y ver que cumplía con todos los requisitos de instalación, he visto que hay dos modos de instalación, uno llamado "Modo de Instalación" y otro "Modo de Generación de Parche"; por lo que he leído más adelante en mi caso lo que quiero es instalarlo no parchear un kernel para que luego el driver quede integrado en las fuentes de este y pueda ser distribuido con este driver añadido.

Una vez ya he tenido claro el proceso de instalación he decidido echarle un ojo al README del drivers de SysKonnect y con un simple vistazo vemos que son iguales; así que dando se esta divergencia, claro está que he optado primero por probar con el de Marvell que es de versión superior.

Instalando los drivers
La primera prueba
Lo primero que he probado es lo más sencillo que uno puede hacer, que es ejecutar las instrucciones y ver si todo funciona y no se genera ningún problema.

Como el resultado no ha sido satisfactorio, he hecho lo mismo con de SysKonnect y el resultado ha sido el mismo, así que va a tocar mirar los errores generados.

Chequeando los errores
En ese momento he empezado a mirar si los errores eran parecidos en un driver y en el otro y efectivamente lo eran así que me quedo con el Marvell definitivamente, ya que es de versión superior como ya he comentado anteriormente.

El primer error que me ha aparecido al lanzar la instalación

$ sudo ./install.sh

parecía que era un problema del código del script de instalación, pero después de buscar un poco google, he encontrado en un post, que se soluciona fácilmente cambiando el intérprete de comandos indicado en el script de "#!bin/sh" a "#!bin/bash" y el error que daba de que la sintaxis era incorrecta para un "(" después de la declaración de la primera función del fichero "functions", incluido con los ficheros de instalación, se solucionaba.

Una vez solucionado este pequeño mal entendido he vuelto a ejecutar la instalación y me he encontrado con un error que indicaba que no encontraba las fuentes del kernel, ya que lo que va a hacer es recompilar el driver para el kernel que se esté usando. He empezado mirando el synaptics y he visto que si tenía instalado las fuentes del kernel (los headers) así que algo pasa que no los encuentra.
A raíz de eso, he mirado un poco más específicamente y he visto que lo que necesita es generar un link en /usr/src llamado linux que apunté a los headers del kernel que estas corriendo, por lo que manos a la obra:

$ sudo ln -s /usr/src/linux-headers-2.6.31.19 /usr/src/linux

Después de esto, volvemos a probar y el resultado es que nada que continua fallando, indicando que o que las fuentes están corruptas o que no coinciden con la versión del kernel que se está ejecutando, así que ejecuto el siguiente comando para ver que versión estoy ejecutando y poder comparar a que versión de las fuentes he creado el link

$ uname -r
2.6.31-19-generic

Así que la he cagado de dos posibilidades que habían (ya sabía que estaba utilizando la 2.6.31-19, por lo que los headers de versiones anteriores los había descartado), he linkado con la que no era ,así que he cambiado el link

$ sudo rm /usr/src/linux
$ sudo ln -s /usr/src/linux-headers-2.6.31.19-generic /usr/src/linux

De nuevo he vuelto a ejecutar y otro vez ha fallado, viendo que estaba sucediendo he visto que ahora lo que no ecuentra es las fuentes del kernel pero esta vez accediendo desde "/lib/modules/2.6.31-19-generic/source", así que viendo que hay en ese directorio, veo que "source" no existe y ¿porque no?, pues no lo sabía pero después de ver que haya en ese directorio he visto que había un link llamado "build" que apuntaba a "/usr/src/linux-headers-2.6.31-19-generic", así que he decidido probar de linkar "source" al mismo lugar

$ sudo ln -s /usr/src/linux-headers-2.6.31.19-generic /lib/modules/2.6.31-19-generic/source

Y de nuevo he vuelto a probar y esta vez sí, se ha compilado, instalado y cargado el módulo en el kernel.

Conclusiones
Con todo esto he aprendido a que tampoco están difícil compilar e instalar un dirver para linux si el script esta bien hecho, solo tienes que tener un compilador (lo más habitual es el gcc), las fuentes del kernel que estas ejecutando y los links correctos a los directorios donde se encuentran las fuentes.
Por cierto el módulo se llama sk98lin, por si alguien en algún momento se necesita descargarlo o cargarlo manualmente.

Hasta la próxima enfermos.