Recuperar revisiones perdidas en Bazaar

0 comentarios

Como saben los regulares de este blog, hace bastante tiempo me he rendido ante Bazaar, el sistema de control de versiones distribuido creado por Canonical y parte del proyecto GNU; más poderoso que SVN, más simple que git… en fin.

Una secuencia de acciones me llevó a una situación terrible: por un momento pensé que había perdido un conjunto de cambios del historial. La condiciones fueron más o menos las siguientes:

  1. Estaba trabajando en una copia local sobre la cual no sabía que estaba bindeada a un repositorio remoto (o sea, un checkout)
  2. Hice commit de un conjunto de cambios (que se grabaron con número de revisión 5)
  3. Ejecuté un bzr bind, con lo se aplicaron una serie de cambios que estaban en el repositorio remoto
  4. La versión del repositorio local bajó a 4… ¡los cambios realizados en la 5ª versión no estaban en ninguna parte!

En resumen, lo que había ocurrido era que había cambiado de línea temporal (al mejor estilo Fringe). Transformar nuevamente la copia en una rama no solucionaba nada, sin embargo suponía que esa revisión debía existir en el repositorio…. ¿cómo restituirla?

Continuar leyendo “Recuperar revisiones perdidas en Bazaar”

Mejorando la privacidad en BitTorrent

3 comentarios

Algunos tips para mejorar la privacidad del intercambio de archivos a través de BitTorrent: cómo cifrar el flujo de red y configurar listas de bloqueos de IPs

Tras el cierre de MegaUpload y otros servicios para compartir archivos, muchos han optado por volver a visitar a un viejo conocido: BitTorrent (el protocolo, no el cliente).

Afortunadamente, los clientes más nuevos y populares han incluido un par de opciones que nos permiten aumentar (aunque sea sólo un poco) el nivel de privacidad de nuestras conexiones.

Continuar leyendo “Mejorando la privacidad en BitTorrent”

Estorninos, plataforma de gobierno estudiantil

1 comentarios

La plataforma Estorninos es un espacio diseñado para la conformación de una comunidad desarrollada por los alumnos del Taller de Construcción de Diseño Gráfico 2011 en la Escuela de Arquitectura y Diseño PUCV.

A principios de año, Herbert me invitó a participar de algunas clases en su curso de Taller de construcción para alumnos de 4º año de la e[ad]. Lo que en un principio estaría dedicado a algunas lecciones de Javascript como contexto general del diseño de interacción en la Web, pronto mutó a acercarnos mucho más al proyecto que este curso se había planteado como meta.

La plataforma Estorninos es un espacio diseñado para la conformación de una comunidad, donde los alumnos se puedan formar en un cuerpo organizado, desde el cual participen en el hacer universidad, que se concreta a través de 4 módulos de abierta participación: proyectos, debates, eventos y notas.

El desarrollo del proyecto está en un estado alpha funcional, y continuará su marcha durante el próximo año, con el objetivo de convertirse en una solución extensible bajo la forma de un conjunto de un tema y plugins para WordPress, distribuido libremente bajo una licencia FOSS. El proyecto está ampliamente documentado en la Wiki de e[ad], donde pueden ver sus fundamentos, metas y logros.

Migrar un proyecto desde SVN a Bazaar

3 comentarios

Bazaar (bzr) permite interoperar cómodamente con Subversion (svn) y permite implementar fácilmente flujos de trabajo adecuados al desarrollo de tus proyectos

Hace ya algunos meses estoy utilizando Bazaar como sistema de control de versiones para todos mis proyectos nuevos, con resultados muy satisfactorios: me resulta muchísimo más potente que Subversion (SVN) por su funcionamiento como sistema distribuído, y a la vez más sencillo de usar que git (del que sólo le podría faltar la  velocidad).

Uno de estos proyectos ha sido el rediseño de un sitio bastante grande y complejo que hemos desarrollado en AyerViernes y que hasta ahora se encuentra versionado con svn, pero que queremos trasladar a Bazaar por la buena experiencia que hemos tenido. En este proyecto frecuentemente se realizan cambios al modo de funcionamiento de sus diversas características o se agregan nuevas funcionalidades, por lo que no podíamos trabajar bajo el supuesto de congelar el trabajo en el sitio actual y migrar todo inmediatamente a la nueva versión en desarrollo; en síntesis, debíamos ser capaces de:

  • Seguir implementando cambios en la versión en producción
  • Desarrollar paralelamente la nueva versión, sin interferir con la anterior
  • Poder incorporar los cambios de la versión en producción a la versión en desarrollo

Afortunadamente, Bazaar puede interoperar con Subversion gracias a un plugin llamado (adecuadamente) bzr-svn, disponible en los repositorios de Ubuntu.

La estrategia que utilizamos demuestra la flexibilidad y potencia de Bazaar. Los pasos a seguir serían aproximadamente los siguientes:

Continuar leyendo “Migrar un proyecto desde SVN a Bazaar”

Trabajando con datos serializados en WordPress

4 comentarios

WordPress permite trabajar con datos serializados en opciones y meta datos de entradas, comentarios y usuarios, lo que puede ser una muy buena opción al trabajar con datos complejos como arrays u objetos.

Supongamos el siguiente escenario: estás desarrollando un metabox para un tipo personalizado de contenido que representa a personas, y en el que debes agregar información de contacto como teléfono, correo electrónico, dirección, etc; la que se mostrará junto a cada persona como una ficha.

Una opción para guardar estos datos sería recurrir a alguna convención de nombres de modo que cada dato se almacena como una fila en la tabla $wpdb->postmeta; algo como _persona_telefono, _persona_email, _persona_direccion, etc. Luego, al mostrar los datos podríamos hacer una consulta como SELECT * FROM $wpdb->postmeta WHERE post_id = $post_id AND meta_key LIKE '_persona%'.

Sin embargo, una mejor alternativa en este tipo de casos sería recurrir a la utilización de datos serializados, ya que nos permitirán guardar en un solo campo una estructura compleja de datos como un array (uni o multidimensional) o un objeto; lo que nos puede facilitar de forma importante varias tareas si planificamos con cuidado nuestra estructura de datos.

Continuar leyendo “Trabajando con datos serializados en WordPress”