John Adams habla sobre escalabilidad y rendimiento en Twitter

Llego vía Pensamientos Agiles al vídeo de la presentación que hizo John Adams, ingeniero de operaciones en Twitter, en el pasado evento Velocity 09:

Varios puntos que me han parecido interesantes del vídeo:

  1. Por mucho que el Cloud Computing se esté poniendo de moda, ellos lo han probado y no les ha dado buenos resultados.
  2. Cuando un programador hace un cambio en el código y lo añade en el sistema de control de versiones (SVN en el caso de Twitter) se envía un email a todos los programadores del equipo con los cambios realizados.
  3. Procesa la información asíncronamente cuando sea posible.
  4. He descubierto herramientas de monitorización, que consideran básicas, y que yo no conocía en absoluto: RRDTool, Ganglia o MRTG
  5. Rails no es tan malo como dicen a nivel de performance. Lo cierto es que tuvieron problemas con memcache y ActiveRecord.
  6. Las bases de datos no son siempre la mejor opción para almacenar datos.
  7. Dos puntos clave: 1. Monitoriza todo. 2. El usuario quiere velocidad de respuesta.
  8. Utiliza métricas para tomar decisiones y no suposiciones.

Por cierto, hay más vídeos de Velocity 09 en Blip.tv.

La importancia de disponer de una API pública

api_code

Esta semana comentaba Andrés Nieto en su blog la noticia sobre que Bitacoras.com ha abierto al público su API. Como programador me parece una excelente noticia. Ahora puedo acceder de una manera sencilla a multitud de información sobre blogs a la que antes no tenía acceso. Como empresa, Bitacoras.com abre las puertas a que cualquier programador pueda utilizar tu servicio, enriqueciendo el suyo, pasando de tener la información únicamente en tu poder a tener la información distribuida en multitud de servicios creando una relación de dependencia entre tu y el resto.

No hace mucho descubrí comil.us, un mashup que había sido posible gracias a la API de 11870.com. Al verlo, me pareció una idea genial. Un poco de Google Maps, un poco de la API de 11870.com y un poco de imaginación y ya tienes ahí un mashup con cara y ojos. Y éste es tan sólo un ejemplo de las posibilidades que te ofrece disponer de una API y tener la libertad de poder montar nuevos servicios sobre ellas.

A diferencia de lo que que sucede en Estados Unidos donde es difícil encontrar una nueva startup en la que no venga una API de serie, en España es bien distinto. Quitando los casos mencionados en los primeros párrafos de este artículo y poco más, tengo la impresión de que en España las empresas que ofrecen servicios en Internet no proporcionan APIs ya que las ven como «facilitadoras» de que otras empresas puedan robarte tu información y perder así competencia frente al resto.

En mi opinión esta mentalidad de cerrarse en banda es errónea. Para mi, disponer de una API es un paso obligatorio que tienes que dar si quieres ser algún tipo de referencia. Aquello que no seas capaz de imaginarte tú es muy probable que sea capaz de imaginárselo (y llevarlo a cabo) otro por lo que no será mejor que lo monte basándose en tí y no de cero o basándose en otro?

Actualizando el blogroll de 1B+

Hace ya unos días que alguno de vosotros me ibais comentando de un problema en el blogroll de 1B+ por el cual no se veían los enlaces.

Parece ser que había un problema con el plugin de WordPress que utilizaba por lo que he decidido prescindir de dicho plugin y he aplicado los pasos descritos en Crear una página para el Blogroll para volver a disponer de un blogroll en condiciones.

Además, he aprovechado la ocasión para actualizar la lista de blogs que aparecen en el blogroll con aquellos blogs que voy leyendo día a día en la actualidad. Algunos blogs han caído de la lista y he ido añadiendo blogs de amigos, compañeros de trabajo y aquellos que, por motivos profesionales, son imprescindibles para estar al día.

Sea cómo sea, no news is bad news

news

Gustavo, en este tío es gilipollas, trataba ayer el tema de lo importante que es para un anuncio transmitir el mensaje que quiere buscando la reacción de la gente a pesar de que la reacción de ésta sea: «este tío es gilipollas». No importa si eso es lo que se busca. En cambio, afirmaba que, cuando se trata de tecnología, la cosa cambia:

«Cuando hablas de tecnología, de innovación, de vanguardia. Tienes que ser ‘cool’, fresco, provocar asombro, transmitir inteligencia, sonrisas complices. Mejor que no hablen, que generar un imagen de marca Huevo Kinder o una imagen ‘este tío es gilipollas’»

Yo no estoy de acuerdo, en absoluto. Creo que es mucho mejor que hablen de ti, aunque sea mal, que mantener un proyecto tecnológico sobre el que nadie comenta nada. En este caso: No news is bad news. Tenemos que empezar a quitarnos los prejuicios y miedos infundados sobre que alguien hable negativamente de nuestro proyecto. Se acabó la época en la que el poder de lo que se publicaba estaba en manos de unos pocos. Estamos en una época en la que cualquiera puede publicar su opinión así que si tienes un proyecto y nadie opina sobre él públicamente, mal lo llevas.

Veo muy bien que sea así. Puedes afrontar las críticas constructivas y pensarlo como una oportunidad de mejora. Además, si éstas te parecen infundadas, siempre puedes desmentirlas como ha hecho recientemente Google.

Backups de MySQL con Automatic MySQL Backup

mysql

Muchas veces nos olvidamos hacer copias de seguridad de nuestra base de datos. Creemos que nunca va a pasar nada y que siempre van a estar ahí. Si quieres evitar sorpresas desagradables lo mejor es plantearse hacer copias de seguridad.

Si también opinas lo mismo, tienes dos opciones: hacerlas manualmente o hacerlas automáticamente. La primera opción, si bien es la más simple, tiene el inconveniente de tener que ir acordándote periódicamente de ejecutar la acción de hacer la copia de seguridad por ti mismo por lo que se acaba convirtiendo en un engorro. La segunda, si bien es cierto que te va a llevar algo más de tiempo para tener todo configurado, te va a garantizar que puedas tener tus copias de seguridad generadas automáticamente de una manera periódica.

Pues bien, andaba yo un día de estos buscando una solución para poder generar las copias de seguridad de manera automática cuando fui a parar, vía HowToForge, a Automatic MySQL Backup.

Automatic MySQL Backup es un simple script que te permite generar, a través de los comandos mysqldump y gzip, copias de seguridad de tus bases de datos MySQL por días, semanas y meses de una manera sencilla. Entre la opciones disponibles tenemos: hacer la copia de varias bases de datos a la vez, enviar emails con el resultado de la ejecución, escoger el día de la semana para realizar las copias semanales y ejecutar comandos antes y después de la creación de la copia de seguridad.

Llevo ya un par de semanas probándolo tanto para Un Blog Más como para Un Podcast Más con un resultado muy satisfactorio.

Y tú, ¿ya mantienes copias de seguridad de tus datos?