OpenCongress.org

Ale me pasa OpenCongress.org, un sitio que reune información oficial del senado y congreso estadounidense con noticias y posts sobre las cuestiones que allí se tratan. Muy en la linea de las iniciativas de MySociety.

Creo que con 100.000 euros se podría montar un equipo que haga un proyecto similar pero relativo al congreso y senado españoles, y que trabaje durante al menos un año. Seguro que hay fundaciones privadas y otros organismos públicos (las cajas de ahorro, mismamente, que en teoría son entidades sin ánimo de lucro y tienen que -por ley- destinar todos sus beneficios a obra social) que podrían financiar un proyecto de este tipo.

¿Conoces a alguien a quien le interesaría mover un proyecto de este tipo?

Notas sobre el taller de Last.fm en el FOWA 2007

Algunas notas desordenadas tomadas el pasado jueves en el taller de Last.fm en el Future Of Web Apps de Londres. Fue un taller de tres horas el tercer día de la conferencia, titulado Scalable LAMP Development for Growing Web Apps. El taller corrió a cargo de Matt Ogle, coordinador del equipo de desarrollo de Last.fm.

  • Su servidor de BD es MySQL y la máquina donde está el maestro tiene actualmente 16 procesadores. Usan InnoDB (no dio detalles pero también, como muchos otros, odia InnoDB). Aunque dijeron que hablarían del tamaño de la BD y el esquema de replicación, al final no lo hicieron (a ver si localizo a Matt para preguntarle estas y otras cosillas).
  • Utilizan TRAC como gestor de proyecto, donde se integra el Subversion, gestión de incidencias y peticiones, etc. Además han hecho un bot de IRC que actualiza un canal de IRC interno con los commits del subversion, las actualizaciones/nuevos tickets, el despliegue de cambios en los servidores en producción y otros indicadores sobre el estado de la plataforma. También lo utilizan para pedirse las cosas unos a otros. Es lo que llaman “osmotic communication”: que toda la empresa esté al loro de lo que pasa en los diferentes rincones.
  • A raiz del interés demostrado por la gente en este bot, lo han liberado.
  • En linea con esto, utilizan metodología SCRUM para el desarrollo: basicamente consiste en iteraciones constantes con sprints relativamente cortos en vez de la planificación de grandes releases. Es decir, en vez de planear cambios radicales que duran meses planean sacar pocas funcionalidades cada dos o tres semanas. Esto lo han adoptado después de sufrir en sus propias carnes lo primero: sacar una release que se retrasa primero una semana, luego un mes, luego se sigue retrasando…
  • Otro punto interesante de esto del SCRUM es la aproximación al trabajo en equipo y las reuniones: se plantea una reunión diaria muy corta, donde se plantea a cada desarrollador tres preguntas: ¿Qué has hecho desde la última reunión SCRUM? ¿Tienes algún obstáculo? ¿Qué harás antes de la próxima reunión SCRUM?
  • People Trump Process. Hay que conseguir que el proceso no estorbe, que las cosas fluyan.
  • Utilizan Perlbal para balancear. Con un servidor con Perlbal son capaces de servir más de 4.000 peticiones/segundo hacia 25 servidores web. Diskless netboot webservers: Los servidores web no tienen la aplicación instalada en el disco duro, sino que la aplicación se despliega a memoria a través de la red (no me quedó muy claro si todo el SO está en memoria -ni siquiera si algo así es posible-). Perlbal permite modificar su configuración en caliente: puedes añadir y quitar nodos sin tener que rearrancar.
  • Utilizan Memcached y lo tienen clusterizado en todos los servidores web, de modo que tienen una Memcache de 25 GB. Su hit ratio es de más del 90%. Es decir, 9 de cada 10 consultas a la BD están en caché, y a la BD solo le llega una de cada diez. Si se añaden más máquinas al cluster de Memcache se invalida la caché, por lo que se sufre un poco hasta que vuelve a estar en caché lo más pedido. Dicen que están trabajando en una modificación para permitir el añadir máquinas sin que se invalide la caché, aunque va lento.
  • Utilizan Lighttpd para servir estáticos (imágenes del site, hojas de estilo). Y MogileFS (un sistema de ficheros distribuido y redundado) para los avatares, las portadas de discos, etc.
  • Compilan los diferentes archivos de CSS y de JS de forma automática en uno de cada para reducir el número de peticiones al servidor web y mejorar la velocidad.
  • Utilizan Rhino para comprobar errores de forma automática en el JS y comprimirlo (es Java).
  • Para monitorización Ganglia y Nagios.
  • Utilizan Hadoop (que implementa el paradigma map/reduce -the application is divided into many small fragments of work, each of which may be executed or reexecuted on any node in the cluster-) para procesar de forma distribuida y paralalela grandes cantidades de información. El ejemplo que puso fue el procesamiento de las listas semanales de los usuarios; antes de Hadoop el proceso tardaba 24 horas y con Hadoop solo 45 minutos.
  • En los primeros días de la compañía, el CEO hacía la comida para todo el mundo (hasta que fueron demasiados).

Dos conclusiones:

  • Brad Fitzpatrick de LiveJournal es el creador (y liberador!) de Memcached, Mogile y Perlbal. Se merece una posición privilegiada en el cielo de los desarrolladores web (y eso que nosotros solo utilizamos el Memcached).
  • Hay un montón de similitudes entre la forma de trabajar de Last.fm (una aplicación web graaande) y la nuestra, que estamos desarrollando una aplicación web mucho más pequeña pero que está creciendo mucho. Eso indica que estamos en el buen camino, supongo (aunque en el momento de escribir este post el site está caído…).

Spam personalizado

spam-mongrel1.png

¿Soy el único al que le personalizan el spam? (creo que no debería hacer esta pregunta,dada una de las temáticas más habituales del spam…)

Madame Figaro On Rails

madame-figaro.pngManuel Aristaran y Michel Martens y son dos desarrolladores argentinos trabajando con Rails. Uno de sus últimos proyectos es Madame Figaro (que, para los españoles, debe ser algo así como el Yo Donna de El Mundo).

En Argentina On Rails les han hecho una entrevista en la que cuentan todo sobre el proyecto: somo surgió, cómo trabajaron, plugins que emplearon, etc. De alto interés.

Sería ideal que existiese un sitio en castellano en el que se recopilasen entrevistas o artículos de este tipo: qué proyectos se están llevando a cabo, quién lo está haciendo, cómo se hacen, el resultado de las distintas técnicas empleadas… ¿Alguien se anima a montarlo?

Etikedo, portal horizontal de tags de Ya.com

eitkedo.pngAcabo de cruzarme, con Etikedo.com, lo que se podría definir como el portal horizontal de tags de Ya.com. Están empezando a taguear distintos tipos de contenido (noticias, posts de blogs) desde distintos sites, y cuando pinchas en el tag no vas a un listado de elementos tagueados de ese site, si no a Etikedo.com, que lista el contenido de todos los sites de Ya.com.

Por ejemplo: tienes este artículo en el site de noticias (noticias.ya.com); sus tags no listan todas las noticias de ese site, sino que te vas a un meta-site de tags, donde se lista todo el contenido de Ya.com.

La idea me parece muy interesante, aunque la ejecución no me termina de convencer. Por cierto que me gustaría conocer como lo han resuelto tecnicamente.

Reorganizando algunos cientos de posts: un wiki

El primer post en mi blog es de Agosto de 2003. Han pasado 3 años y medio y mi WordPress me informa desinteresadamente que en este tiempo he escrito 406 posts. Muchos de ellos son totalmente prescindibles, pero en algunos otros hablé de temas sobre los que vuelvo una y otra vez. Son temas que -para mí- están vivos, me interesa seguir tomando notas sobre ellos, leo cosas relacionadas que podría incluir como referencias… pero hacer todo esto sobre posts de un blog es complicado.

Así que me he propuesto usar un wiki como cuaderno personal donde ir recopilando, reordenando y refactorizando la información sobre los temas que me interesan. No pretendo que un texto, por ejemplo, sobre la web semántica se vaya ampliando y crezca y crezca: al revés, la idea es ir depurando ideas para sintetizar – aunque si he escrito rollos largos y densos pues por allí se pueden quedar aunque escondidos para el que los quiera sufrir.

El uso del wiki también es un experimento. Ya ha quedado claro que el formato blog es ideal para publicar en Internet: cualquiera puede hacerlo, es rápido y ágil, es divertido… Pero su simplicidad también implica que todo lo que uno va escribiendo tenga una estructura determinada y se vaya perdiendo en el tiempo, siendo díficil el hacer crecer un texto o una idea que se lo merezca.

Los blogs también se han convertido en la manera más sencilla de tener una página personal y conseguir tu cuota de proyección digital. Así que se trata de explorar una hipotética intersección entre el formato blog y el formato wiki, seleccionando lo mejor de cada casa. Ya veremos a dónde llegamos.

Y aquí está el wiki: todavía tiene muy poquitas cosas, pero como yo también tengo poquito tiempo y avanzará muy despacito, lo lanzo ya por miedo a no lanzarlo nunca: http://www.furilo.com/wiki.