domingo, febrero 10, 2008

My Stats On WCG

He puesto un widget con las estadísticas que genera mi Sempron 2200 en World Community Grid. Son modestas, pero es lo mínimo con lo que se puede colaborar en una buena causa, que para el que no sepa lo que es.. aqui:

jueves, febrero 07, 2008

El valor del OpenSource. Pero ahora hablando en Euros

Mirad por donde, voy a continuar con la conversación de lo que tiene el OpenSource y de lo que vale.


He encontrado la lista de las adquisiciones más sonadas y costosas del mundo del OS. Es la siguiente:

  1. Sun buys MySQL, $1 billion, 2008
    Sun now has their hands on the world’s most widely used open source database.

  2. Red Hat buys Cygnus Solutions, $675 million, 1999
    Red Hat started the open source acquisition race early when they bought Cygnus Solutions, providers of open source software support.

  3. Citrix buys XenSource, $500 million, 2007
    Considering how hot virtualization is right now, we can see why Citrix bought XenSource, the company behind the Xen virtualization software.

  4. Yahoo buys Zimbra, $350 million, 2007
    Yahoo already have their own email services, and with Zimbra they got an integrated email, messaging and collaboration software.

  5. Red Hat buys JBoss, $350 million, 2006
    Red Hat strengthened their SOA offerings by buying the JBoss Java application server.

  6. Novell buys SUSE, $210 million, 2003
    Novell got their own Linux distribution by buying SUSE.

  7. Nokia buys Trolltech, $153 million, 2008
    Trolltech is the company behind the Qt GUI framework which is used by the popular Linux desktop environment KDE.
Queda claro que el OS cada vez tiene más valor, más allá de si el framework es útil o no.

Ayer mismo discutía si el modelo OS no es una manera de crear dinero "gratis", montando una empresa con el único fin de ser comprada, y nutriéndose de contribuciones de una comunidad anónima. Algo así como pasa con casi todas las web 2.0.

Quizás si, y se den casos como este que comento, pero yo creo que lo que no tiene valor no se compra ni se vende, directamente no despierta el interés de nadie. Al menos, en la lista anterior no hay ninguna empresa que no se lo haya currado, mucho y durante mucho tiempo.

Solo el tiempo, y el mercado lo dirán, yo sigo contento con el modelo OpenSouce + soporte :)

miércoles, febrero 06, 2008

Buceando en JBoss

Tras una intersante conversación con un ex-piratoso, me ha dado por bucear dento de JBoss (Redhat), de lo que ofrece tanto por su rama comercial como por la comunitaria.

He descubierto dos proyectos que me han llamado mucho la atención, la verdad. Uno porque puede casar muy bien con alguno de mis objetivos en Piratosa para este año (aún por desvelar) y otro porque me ha parecido un proyecto muy interesante.

El primero se llama Kosmos, y se trata de un conjunto de Portlets que sirven para monitorizar ciertas aplicaciones. Como un monitor para gestores de la configuración. Soporta: subversion, jira, sourceforge y cruisecontrol. Entiendo que no todo el mundo dispone de un proyecto en SourceForge, pero el de subversion y cruisecontrol pueden servir en más de un proyecto.

El otro proyecto interesante se llama mobicents (1) y (2). Este proyecto es un servidor orientado a eventos, de tal manera que sobre él se pueden implementar servicios de mensajería instantanea (XMPP-Jabber-Googletalk), VoIP, y prácticamente todo lo que queramos sobre multimedia-IP.


Ahora mismo no tenemos que cubrir ningún proyecto de estas características, pero nunca se sabe por donde va a salir el tema. Además, que se trata de un proyecto bonito, que quizás encaje con alguna barrabasada de proyecto-I+D+i...

lunes, febrero 04, 2008

Fábricas de software, creatividad y sueldo

Me he encontrado con un artículo publicado en Cinco Días, en el que se pretende fomentar el outsorcing europeo a empresas españolas. Lo mejor de todo es el motivo: somos baratos.

La que se ha liado con el tema en barrapunto es buena, y con razón. Pero la conversación ha ido por otros derroteros:

Se habla de las condiciones de trabajo, que si las 10h al día, que si los 16mil al año, que si las factorías son cárnicas... y todo lo que muchos ya nos sabemos casi de memoria. ¿Y es verdad? Pues por desgracia sí. Y no creo que exista ningún informático que no haya hecho horas o sepa de cerca por donde van los tiros.

Además de las discusiones, las repercusiones ya se ven: cada vez hay menos informáticos en las aulas. Sin embargo yo no creo que sea una mala noticia. Me explico.

Tal vez yo esté traumatizado (empiezo a pensar que si) por mi época universitaria, pero he de decir que aquello estaba plagado de oportunistas. Por aquellas lo de "haz infomática que tiene mucho trabajo y cobran una pasta" sonaba. Claro, estábamos por los dosmil. Tanto es así, que gente de mi bachillerato, de los que iban para educación, o biología, aparecieron en mi clase de la universidad el primer día sin haber encendido un ordenador.

El resultado es que esa gente ha acabado la carrera, y ahora trabajará... donde sea, pero sin tener ni puta idea - que eso nos pasa a todos al empezar-, pero con una diferencia: sin la más mínima curiosidad. Con ese panorama, trabajando en algo que no les gusta, viendo que cobran 16mil, y que trabajan sus 10horitas... echarán pestes de aquello y estarán quemados. Lógico. El desengaño del oportunista. Pero se lo merecen.

Lo "bueno" que tiene el nuevo panorama es que ahora ya no pasará eso. Con las aulas vacías no habrá "oportunistas", sino gente a la que le verdad le interesa o le gusta la informática. Saldrán generaciones de gente que, además de correrse sus buenas juergas en la universdad, habrán aprendido aquello que les gusta y querrán seguir aprendiendo en su vida laboral.

Quizás con la aún mayor escasez de informáticos útiles, y quien sabe, puede que hasta un poco más de reputación profesional (algo más allá del friki). El informático de profesión tome cierta relevancia social y profesional, y acabemos siendo valorados social y económicamente.

Cada vez tengo más claro que la informática no es cosa ni de técnicos ni de superiores (ni mucho menos los panolis de primera de los que ya hablé), sino de gente con curiosidad por este tema, con ganas de aprender cada día, de encontrarse retos cada día. Como dice Fowler esto no es construir un puente. Tampoco es cosa de frikis.

El informático, por definición, es un ser blandito (si estás cuadrado no vales, huesudo si vales) que le gusta reirse de cosas escritas en binario (hex tb vale) pero que además siente la inquietud de averiguar, investigar y probar en su casa cosas nuevas (apis, tecnologías, leer sobre metodologías, sistemas operativos, videojuegos) que despiertan su interés y le abren el espectro de visión para hacer su trabajo de manera creativa.

Y eso se merece un dineral al mes.

sábado, febrero 02, 2008

Empezando a pensar ágil

Hace ya un tiempo que me empieza a picar el gusanillo de lo ágil. Sé que no es el modelo que mejor casa en una factoría, pero dado que cada vez tenemos proyectos más llave en mano quizás sea algo que debamos abordar.
También ha ayudado a ello gente del equipo en el que trabajo, con experiencia en este tema. Ayer, sin ir más lejos, estuvimos manteniendo una conversación sobre XP, y ahora estaba leyendo sobre ello.
A continuación os pongo un fragmento de "La Nueva Metodología", en la que Martin Fowler (ahí es nada) presenta sus razones por las que pensar ágil:
  • Adaptabilidad de los procesos.
  • Métodos orientados a la gente y no a los procesos.
"Separación de Diseño y Construcción

La inspiración usual para las metodologías han sido disciplinas como las ingenierías civil o mecánica. Tales disciplinas enfatizan que hay que planear antes de construir. Los ingenieros trabajan sobre una serie de esquemas que indican precisamente qué hay que construir y como deben juntarse estas cosas. Muchas decisiones de diseño, como la manera de controlar la carga sobre un puente, se toman conforme los dibujos se producen. Los dibujos se entregan entonces a un grupo diferente, a menudo una compañía diferente, para ser construidos. Se supone que el proceso de la construcción seguirá los dibujos. En la práctica los constructores se encuentran con algunos problemas, pero éstos son normalmente poco importantes.

Como los dibujos especifican las piezas y cómo deben unirse, actúan como los fundamentos de un plan de construcción detallado. Dicho plan define las tareas que necesitan hacerse y las dependencias que existen entre estas tareas. Esto permite un plan de trabajo y un presupuesto de construcción razonablemente predecibles. También dice en detalle cómo deben hacer su trabajo las personas que participan en la construcción. Esto permite que la construcción requiera menos pericia intelectual, aunque se necesita a menudo mucha habilidad manual.

Así que lo que vemos aquí son dos actividades fundamentalmente diferentes. El diseño, qué es difícil de predecir y requiere personal caro y creativo, y la construcción que es más fácil de predecir. Una vez que tenemos el diseño, podemos planear la construcción. Una vez que tenemos el plan de construcción, podemos ocuparnos de la construcción de una manera más predecible. En ingeniería civil la construcción es mucho más costosa y tardada que el diseño y la planeación.

Así el acercamiento de muchas metodologías es: queremos un plan de trabajo predecible que pueda usar gente del más bajo nivel. Para hacerlo debemos separar el plan de la construcción. Por consiguiente necesitamos entender cómo hacer el diseño de software de modo que la construcción pueda ser sencilla una vez que el plan esté hecho.

¿Qué forma toma este plan? Para muchos, éste es el papel de notaciones de diseño como el UML. Si podemos hacer todas las decisiones significativas usando UML, podemos armar un plan de construcción y entonces podemos dar planes a los programadores como una actividad de construcción.

Pero aquí surgen preguntas cruciales. ¿Es posible armar un plan que sea capaz de convertir el código en una actividad de construcción predecible? Y en tal caso, ¿es la construcción suficientemente grande en costo y tiempo para hacer valer la pena este enfoque?

Todos esto trae a la mente más preguntas. La primera es la cuestión de cuán difícil es conseguir un diseño UML en un estado que pueda entregarse a los programadores. El problema con un diseño tipo UML es que puede parecer muy bueno en el papel, pero resultar seriamente fallido a la hora de la programación. Los modelos que los ingenieros civiles usan está basado en muchos años de práctica guardados en códigos ingenieriles. Además los problemas importantes, como el modo en que juegan las fuerzas, son dóciles al análisis matemático. La única verificación que podemos hacer con los diagramas UML es la revisión cuidadosa. Mientras esto es útil trae errores al diseño que sólo se descubren durante la codificación y pruebas. Incluso los diseñadores experimentados, como me considero a mí mismo, nos sorprendemos a menudo cuando convertimos dichos diseños en software.

Otro problema es el costo comparativo. Cuando se construye un puente, el costo del esfuerzo en el plan es aproximadamente un 10% del total, siendo el resto la construcción. En software la cantidad de tiempo gastada codificando es mucho, mucho menor. McConnell sugiere que para un proyecto grande, sólo 15% del proyecto son código y pruebas unitarias, una inversión casi perfecta de las proporciones de la construcción del puente. Aun cuando se consideren las pruebas parte de la construcción, el plan es todavía 50% del total. Esto genera una pregunta importante sobre la naturaleza del diseño en software comparado con su papel en otras ramas de la ingeniería.

Esta clase de preguntas llevaron a Jack Reeves a sugerir que de hecho el código fuente es un documento de diseño y que la fase de construcción está en realidad en la compilación y el ligado. De hecho cualquier cosa que pueda tratar como construcción puede y debe automatizarse.

Estas ideas llevan a algunas conclusiones importantes:

En software la construcción es tan barata que es casi gratis.
En software todo el esfuerzo está en el diseño, de modo que requiere de personas creativas y talentosas.
Los procesos creativos no se planean fácilmente, de modo que la previsibilidad bien puede ser una meta imposible.
Debemos ser muy cautos al usar la metáfora de la ingeniería tradicional para construir software. Es un tipo diferente de actividad y por ende requiere un proceso diferente."

Tras leer el texto completo la única conclusión que saco es que XP es una buena metodología, y tiene mucha mucha razón, pero se han de conjugar una cierta serie de circunstancias para que sea beneficiosa con respecto a la adaptación de RUP que tradicionalmente seguimos en mi empresa.

Ahora mismo (acabo de leer el artículo) tengo unas cuantas por las que no pondría XP, entre las que enumeraría el análisis de riesgos, la gestión de plazos, la facturación y sobre todo la implicación del cliente, pero seguiré analizando y espero, dentro de poco, tener alguna conclusión menos inmediata, y sobre todo, más fundamentada.

Por si acaso os pongo el enlace al artículo traducido.

viernes, febrero 01, 2008

Fin de semana....

Y sin destino....