Memoria de una mudanza

Mi nombre es Nicolás Fantino, ala_747 es mi alter ego en el mundo ya nada virtual de los ceros y unos y 100px es el espacio binario que perpetro con más cariño. Se supone que sé hacer algunas cosas más o menos bien. Tengo una relación bastante alegre con WordPress desde que era b2 (aunque no tuve un blog, o algo parecido, hasta mayo de este año). Cuando Mariano me pidió que, finalmente, lo ayudara con la mudanza de Denken Ãœber, hasta entonces gestionado con Movable Type, a WordPress no lo podía creer. Tanto tiempo machacandolo para que se decidiera y cuando ya había desistido, viene y me sorprende así… mortal :)

No es mi primera mudanza de MT a WP. Quizás alguien haya leído en su momento la memoria de la mudanza de Minid. De aquel momento a ahora ha pasado mucha agua bajo el puente. WordPress ha crecido mucho y lo sigue haciendo, sus desarrolladores y la comunidad que lo utiliza no paran de agregar funciones nuevas y de mejorar las existentes, y ésto nos hace la vida más facil para este tipo de cuestiones. Al igual que en la mudanza de Diego, me comprometí a escribir una explicación lo más detallada posible del proceso que seguimos, esperando que pueda ayudar a alguien que se encuentre pensando en hacer lo que hicimos aquí.

Como muchos sabrán, hay varias formas de mudar un blog de un sistema de publicación a otro. Con la debacle de MT hubo muchos sitios que decidieron pasarse a otros gestores, entre ellos WP. Muchos de esos sistemas no son tan flexibles como WP para ciertas cosas y por lo tanto obligaron a los autores a hacer un “borrón y cuenta nueva” con sus sitios (sea recomenzando su blog desde cero; o importando los posts, categorías y comentarios pero perdiendo las URI antiguas). Cuando hablamos de sitios muy grandes y frecuentados, como Denken Ãœber o Minid, creo que no pueden permitirse “el lujo” de perder las URI antiguas ya que no solo están indexadas en todos los buscadores (cosa que se puede lograr esperando a que cada buscador indexe el sitio nuevamente), sino que además muchos posts están enlazados desde otros muchos sitios y los autores de esos sitios pueden no saber que tienen enlaces rotos en sus escritos. Además, existe una regla básica a la hora de hacer “buena web” la cual dice que las URI no se cambian, deben ser permanentes para que la gente pueda agendarlas y consultarlas independientemente del tiempo que pase (ya que se dá por supuesto que tuvo sus motivos para agendarlas).

Ahora bien, mudar un blog de este calibre cuidando los detalles e intentando que el resultado “se vea” lo más parecido posible a lo que había antes requiere un pequeño estudio y una planificación previa. Es una ecuación muy simple: cuanto más estudio y planificación, menos problemas o imprevistos sobre la marcha. Siempre se debe tratar de ir de lo general a lo particular para que los posibles imprevistos nos aparezcan en la cabeza (o el papel) antes de que pasen realmente.

Lo primero que decidimos es que queremos cambiar de MT a WP, por lo tanto debemos conocer lo más detalladamente posible ambos sistemas, sus posibilidades, sus limitaciones, sus trucos. El siguiente paso es analizar en detalle lo que se tiene online. Anotar cosas como el formato de las URI (de los posts, de los archivos, etc.), la codificación de caracteres, el tipo o los tipos de archivos que se ofrecen, las diferencias entre páginas (la página principal no es igual que la de un post particular, o que la home de una categoría, o que los resultados de una búsqueda).

Con todo bajado al papel recién podemos ponernos a pensar en el sistema nuevo. Debemos asegurarnos qué cosas podremos replicar (y cómo las replicaremos) y cuáles no.

A partir de aquí será conveniente hacer una instalación del sistema nuevo para hacer pruebas paralelamente al sitio de producción (personalmente, siempre intento usar el hosting del sitio de producción para asegurarme el mismo entorno que tendrá nuestro nuevo pequeño cuando pase a suplir al viejo). Para este caso decidí probar una versión “alfa” del futuro WP 1.3. ¿Una “alfa“? ¿No será peligroso? Bien, es posible, pero no lo creo. Dos meses atrás no lo hubiese hecho porque las “alfas” que había estaban muy verdes y hacían agua por todos lados (aunque ya hubiera osados que las ponían en producción –A Proletarium Blog, por ejemplo- y las sacaban adelante como si nada pasara, loable ;)). Pero finalmente, ¿por qué una “alfa“? Ok, el secreto estaba en el formato de los permalinks. Mariano usaba un formato del tipo “/archivos/categoría/post.php” y, como muchos sabrán, la versión 1.2 de WordPress no soporta categorías en los formatos. Este detalle hizo que la mudanza de Minid fuera bastante más complicada que la de Mariano ya que tuve que modificar bastante el sistema original y, por ende, actualizar el sistema de Diego no será tan facil como el de Mariano. Otro secreto es el nuevo sistema de “Themes” que taerá WP 1.3. Denken Ãœber tiene distintos formatos para mostrar los datos dependiendo de dónde estemos. La página principal no es igual que una página de categoría, o de un post particular, o del resultado de una búsqueda. Si bien he explicado en mi sitio cómo lograr ésto bastante facilmente en WP 1.2 hay que admitir que es bastante más complicado que el sistema nuevo que permite crear templates (plantillas) separadas para cada sección del sitio y que, ademas, admite una serie de funciones que ayudan a la detección de la sección en la que nos encontramos para el uso de condicionales if-else. Para leer más sobre el funcionamiento de “Themes” (en inglés) o sobre las funciones “is_” para condicionales (en inglés).

Bien, con el nuevo sistema instalado podemos exportar la base de datos de MT y seguir “las instrucciones del fabricante” para importarla en WP. El primer paso “real” está dado. A parir de aquí todo será “cuesta abajo” (si todo va bien). Lo siguiente será definir el formato de permalinks y probar que todo funcione. Con el formato de Mariano no he tenido que mover líneas del .htaccess porque WP tome las URI del admin como posts o categorías pero puede suceder, así que a no desesperar y a aprender lo básico de Expresiones Regulares para entender qué lógica siguen las reglas del mod_rewrite que nos da WP y a modificar lo que haga falta (sé que suena o parece dificil, pero no lo es), a veces basta con subir una línea a arriba de todo para que todo funcione.

Viendo que todo funciona correctamente podremos dedicarnos a cambiar el template “default” por el nuestro. Lo que hice con el site de Mariano fue copiar el HTML de cada tipo de página y reemplazar los textos que estaban por las etiquetas que pondrían esos textos sacándolos de la base de datos. Otra forma de hacerlo sería buscar equivalentes entre las etiquetas de MT y las de WP, pero como no estoy demasiado familiarizado con las de MT, preferí el primer sistema. Mientras hacía ésto, y por pura “deformación profesional”, no pude evitar fijarme en la estructura del XHTML de las páginas; así me dí cuenta que con 4 gráficos y arreglando un poquito los anchos de algunos contenedores en el CSS se podía lograr un bonito rediseño casi sin esfuerzo. No le pregunté nada a Mariano, lo hice (me llevó unos 15 minutos) y lo puse en el sevidor de pruebas y le pedí que entrara a ver como iba “la cosa”. Se sorprendió bastante y, por suerte, le encantó (de hecho, hasta me “mintió” que era justo lo que tenía en mente) y no hubo que tocar nada más.

A esta altura, ya teníamos un “doble” de Denken Ãœber funcionando a pleno pero gestionado con WordPress. A continuación, los últimos detalles. La lista de los últimos posts de Mobile, una funcioncita para mostrar los últimos posts comentados y otra para presentar los Archivos Anuales y el sitio estuvo listo para largar.

Para poner el nuevo sitio online también había un par de posibilidades. La primera era mover el sitio de desarrollo al de producción, aún con el MT funcionando, limpiar la base de datos del WP, volver a exportar el MT, importarlo en el nuevo sitio y “apagar” el viejo. ¿Pros? ¿Contras? Bueno, básicamente este sistema tiene un solo “pro”, permite un “downtime cero“; o sea, “Hola, soy MT, ahora me ves… ahora ya no me ves porque soy WP, ¿te diste cuenta de algo? ;)”, pero tiene una contra: todo comentario ingresado al MT mientras se hace el backup, se descarga el backup a la maquina, se vuelve a subir al server, se importa al WP y se pone el WP online, deberá ser ingresado “a mano” por el dueño del sitio luego. En este sitio consideré que todo el proceso llevaría unos 15 minutos (bien planeado, bien ejecutado y sin contratiempos como cortes de línea o de FTP). La segunda opción era hacer todo lo anterior pero previo “bajar” el MT, no permitiendo así ni comentarios, ni trackbacks, ni pingbacks que ingresar a mano luego. Siendo el estimado de 15 minutos, consideré mejor esta última opción y así le ahorré un posible trabajo extra a Mariano (quien ya nos ha hablado de su “comodidad” :P).

Resumiendo el final… el “downtime real” fue de entre 15 y 20 minutos durante los cuales quien haya entrado se habrá encontrado con muchos errores 404. El tiempo total de trabajo real fue de unas 4 horas y la alegría de leerlo a Mariano diciendome que “al final WP no estaba tan mal” fue mucha.

Ahora bien, no todo son rosas en estos caminos. Muchos habrán visto que durante unas 2 horas justo después del cambio el servidor devolvía un espantoso error 500. Ésto se debió a que yo no sabía que este nuevo WP viene con algo nuevo: si el .htaccess tiene permisos de escritura, al entrar en la página de gestión de los permalinks ésta actualiza automáticamente el .htaccess. Cuando terminamos, yp tuve que salir un par de horas de casa y Mariano se dió una vuelta por el admin y pasó por esa página. Ésta reescribió las reglas en el .htaccess con tan mala suerte que una línea se juntó con otra anterior que habíamos agregado a mano (para redireccionar los feeds viejos a los nuevos) y la sintaxis se fue al cuerno y eso solo significa una cosa, Apache colgado, ¿solución facil? no dejar el .htaccess con permisos de escritura.

Otra cosa digna de mencionar es algo que nos está estaba pasando con Bloglines. Los feeds ya no están realmente donde estaban antes por lo que agregamos un par de reglas para que el mod_rewrite redireccionara las URI de los feeds viejos a los nuevos (cosa totalmente normal y que ya he hecho muchas veces, inclusive en 100px). Bloglines se resiste resistía a aceptar que los feeds todavía existen existían, lo más raro es que es el único. Todos los programas y sistemas sindicadores que hemos probado funcionan, Bloglines no lo hacía. Por si alguien tiene una idea de lo que pueda estar pasando, hemos redireccionado con los siguientes comandos:

RewriteRule ^index.xml$ /index.php?feed=rss2 [QSA]
RewriteRule ^index.xml$ /index.php?feed=rss2 [QSA,L]
RewriteRule ^index.xml$ /index.php?feed=rss2 [r=301]
Redirect Permanent /index.xml https://www.uberbin.net/feed/rss2/

Nada ha funcionado con Bloglines, y todas han funcionado con todos los demás. Si alguien sabe de qué va la cosa, aquí escuchamos :) Usando la última opción y luego de más de 12 horas, Bloglines ha vuelto a leer los feeds (opción A: era un problema nuestro y se ha arreglado con la última regla; opción B: Bloglines agregó idiomas y rompió el lector de feeds de Uberbin :P).

Una última cosa que se nos escapó y que nos dió un susto ayer mismo. MT seguía funcionando, aunque “escondido”. Ayer, alguien llegó por casualidad a un post del MT y puso un comentario y automáticamente MT nos pisó el index.php (por eso más de uno vió durante un rato el sitio “viejo”). Simplemente se subió nuevamente el index.php del WP y todo se arregló, obviamente MT ha sido jubilado completamente para que no vuelvan a pasar más cosas como esa.

Bueno, bit más o bit menos, ésta es la historia de esta mudanza y así se la contamos, esperando que pueda ser útil (al menos para saber lo que no hay que hacer).

Agradezco a Mariano por la confianza ciega (muy ciega e inconsciente :P) que ha depositado en mí y en mis criterios para la realización de este trabajo. Ha sido para mi una gran responsabilidad y he disfrutado realmente mucho haciéndolo, como todos los trabajos que me presentan algún desafío (de los que ando escaso últimamente, dicho sea de paso). Y agradezco el espacio que me brinda para contar la experiencia.

Gracias.

22 opiniones en “Memoria de una mudanza”

  1. EXCELENTE DECISIÓN MARIANO, mejor, diseño, mejor cms, ojalá que todo mejore…

    Después de tanta necedad, oajalá todos hicieran lo mismo y aparte le dan trabajito a 100px. Ya me está cayendo mejor marianp [ aunque no recuerdo por qué antes me acía mal =) ].

  2. Que buen seguimiento. Personalmente me gusta mucho WP, la facilidad de manejo de su código, su soporte y dinamismo lo hacen mi favorito. Excelente trabajo ala_747.

  3. Excelente historia Nico… no me cabe duda que todas y cada una de las razones por la que usas WP tienen su asidero, y en el caso de este blog ha sido una mejora sustancial… ;D Sin embargo, una cosa es eso y otra es decir (no vos, sino otros bloggers) que WP es lo mejor para todo el mundo. Yo por ejemplo tengo una instalación de MT fuertemente modificada con tropecientos plugins y hackeos que me permiten hacer cosas como incluir partes de diversos blogs en una sola página actualizada en tiempo real, mostrar acrónimos, escribir posts utilizando Textile o Markdown en vez de tags de html, etc, etc…. cuando estuve investigando sobre la idoneidad de WP para mis necesidades (yo también estuve tentado de pasarme), busqué en el sitio / wiki de WP formas o plugins que me permitieran hacer lo mismo que pretendía hacer con MT. Desafortunadamente no encontré recursos que me permitieran lograr replicar en WP lo que hoy hago con MT, y además la limitación -por el momento- en WP de no tener soporte nativo para blogs múltiples fue un factor determinante en mi decisión. O me sentaba a esperar el día en que WP incorpore todas estas funcionalidades (algún día, estoy seguro) o actuaba de una vez echando mano de lo que ya existe.

    NO estoy diciendo que nada de esto se pueda hacer con WP, si con conocimientos de PHP y tiempo de sobra se puede hacer casi cualquier cosa, de eso estoy totalmente convencido…

    Sin embargo, no todos tenemos el tiempo, ganas o dedicación para “desaprender” todo el conocimiento y mañas de un sistema aprendidas a fuerza de años y paciencia para pasarnos a otro y empezar de cero sin más argumento de que “todos lo están haciendo”. Para mi frecuencia de publicación y comentarios que llegan a mi sitio, que son cifras más que modestas, creo que el sistema de MT sale sobrado. Si ya fuera un Mini-D, un ALT1040 o un Mariano Amartino (hehe :D ), con la frecuencia de posts y hits que tienen estos sitios, definitivamente sí consideraría la posibilidad de utilizar un sistema de CMS más dinámico y que vaya más allá del concepto de blog. Pero ese no es ni ha sido ciertamente mi caso.

    En resumen, cada quien toma su decisión sobre qué CMS le conviene usar más, y si WP cubre todas tus necesidades, pues “more power to you”… todos tenemos necesidades y circunstancias distintas, y por eso a veces llegamos a otro tipo de conclusiones.

  4. Pingback: Area Estrategica
  5. hace una semana el server de mi blog se cayó por unas horas y luego volvió, pero después de eso bloglines (y solo bloglines) se negaba a aceptar los feeds. probé de todo, y nada. recién hace una hora o más volvió a cachar los feeds sin tirar error, al igual que los de mariano y los de varios otros más con el [!].

    pd: el bloque de adsense sobrepasa el ancho del div de los comments. ¿un estironcito más?

  6. ¿Qué te pasa Mariano? WordPress!! ¿Y te está gustando? ¿Y una Alpha3? Tras tres años de vida “virtual” sigues tomando riesgos. Excelente.

    Nicolás, solo se puede decir, impresionante trabajo.

    PD: ¿Dónde está Absolut?

  7. Diego, todo lo contrario… la idea era mostrar que se puede hacer una mudanza “bien hecha” en bastante poco tiempo y con, relativamente, poco trabajo… si igual no te animas, siempre quedamos algunas soluciones extremas ;)

    Del Real, gracias peeeero… coincido con Beto en que a veces una solución no le rinde a todos por igual, aunque también coincido plenamente contigo en que le den trabajito a 100px :P

    Lucas, muchísimas gracias.

    Beto, 200% de acuerdo en que es casi imposible que un sistema sea la “solución ideal” para las necesidades de todo el mundo, el extremismo nunca es bueno. Puntualizando en todas las necesidades que tenías, todas existen (inclusive para WP 1.2). El proyecto de WP adolece de un problema básico, falta de orden y exceso de contribuyentes. El wiki es un descontrol y encontrar algo ahí es casi imposible; de hecho, hay cosas que ni siquiera están en el wiki (léase, todos mis plugins, sin ir más lejos). Ésto obliga a hacer un trabajo de invesigación bastante molesto a la hora de encontrar soluciones a las “necesidades especiales”. Se está haciendo un esfuerzo por encontrar la mejor solución para organizar la avalancha de data que anda repartida por todo el mundo sobre WP pero, personalmente, lo veo complicado complicado. Lo de los blogs múltiples está en desarrollo (http://mu.wordpress.org/), pero aún no me he hecho tiempo para probarlo. Creo que tienes bien clara la idea y que si un día más adelante aparece algo que sirva mejor a tus propósitos, cambiarás. Así debería verlo todo el mundo, el “sí, porque sínunca es un argumento válido para mí :)

    chinaski, lo que nos pasó con Bloglines sigue sin explicación para mí… los feeds estuvieron “caidos” para él desde el sábado por la tarde y reaparecieron “mágicamente” mientras escribía este post (vale aclarar que la regla que está puesta ahora y que funciona estaba puesta desde el día anterior y nada había sucedido). Voy a creer que fue un problema de ellos y que si ahora pruebo cualquiera de las demás reglas todo seguiría funcionando (en 100px uso [r=301] y siempre anduvo). Esperemos que no vuelva a pasar. Lo del AdSense… sip, se va un poquito, pero no se puede ampliar el área porque estamos al límite de ancho, veré de mover el banner un poquito hacia la izquierda.

    Vuarnet, gracias… no tienes por qué hacerlo ;)

    faemino, gracias mil… Absolut nos lo tomamos para festejar los 3 años y la mudanza feliz :P

  8. yo preparo la mudanza de planetfrank en diciembre, quizas opte por la opcion de paginas estaticas por que no se que tan factible sea mudarme desde typepad

  9. Excelente explicación Nico. Me he enterado de todo. :)

    Saco dos conclusiones: la primera en caso de mudanza optar por wp 1.3 alfa o esperar la 1.3 definitiva.
    Y la otra que la planificación y testeo del sitio antes de hacer el cambio es fundamental.

    Ah!! quien andaba viendo la MT vieja fui yo… jeje. Pero no recuerdo haber comentado nada. O si? upss.

    Creo que algunos links al viejo site dan un msg tal como: “Nada por acá :). ”
    Ejemplo: http://tinyurl.com/6v65u

    Nada, solo decir enhorabuena por el trabajo realizado. :)

  10. frank, según la tabla de “features” de TypePad, tienes opción de exportar todo (sea cual sea tu plan contratado). Si no la encuentras en tu panel de control puedes escribir al soporte técnico de TypePad para que te orienten (que para algo se paga, ¿no?).

    Una vez exportado todo, puedes usar el importador de MT que trae WP, ya que los archivos exportados por MT y por TypePad son iguales.

  11. “Mudanza” le llaman al cambio de un vulgar software que solo sirve para mostrar lo realmente importante, el contenido. Y para eso se mandan un artículo como para explicar un tratamiento médico. Tan poco tienen que hacer los “webloggers”!?
    Encima lo llaman “memorias”. Gente, por favor, tengan relaciones sexuales. Sus mujeres deben estar muy insatisfechas.

    Ah, esto seguro es ser… cómo lo llamaban?… Troll. Eso. Ay, ay, ay…

  12. Me encantan los comentarios como los de deb, resultan en respuestas como las de Franco. Si bien son temas que pisan el off-topic, le dan un condimento genial.
    Gracias Deb!
    (disculpen mi off-topic, hay gente que les molesta, pero no me pude contener)

  13. Pingback: Betolog
  14. no quiero ser mala onda (bah…) pero lo que dice Deb es totalmente sensato… esto parece más la explicación de un par de tipos que armaron un cañón de fotones que un simple traspaso de un sistema a otro…, igual que todo el barullo que armó minid en su momento… no estarán exagerando un poco? no era para tanto me parece…

  15. no quiero ser mala onda (bah…) pero lo que dice Deb es totalmente sensato… esto parece más la explicación de un par de tipos que armaron un cañón de fotones que un simple traspaso de un sistema a otro…, igual que todo el barullo que armó minid en su momento… no estarán exagerando un poco? no era para tanto me parece…

  16. Deb, tu comentario tiene tanta mala leche que revela un profundo grado de insatisfacción. En mi barrio, el veredicto hubiera sido inapelable: te hace falta pija. Pero en este lugar somos muy educados y no creemos esos conceptos machistas, asi que no lo diremos. Entre otras cosas, porque creer que toda aquella persona que no piensa como nosotros tiene un grave problema sexual es, simplemente, poco inteligente y una simple bravata de alguien que no tiene mucho que hacer. Cuando quieras, eso sí, te pasamos el teléfono de algun analista :).

  17. kane, ésto que te parece una nimiedad es parte de mi trabajo, lo que hago para ganarme la vida, dar soluciones a problemas en sitios o desarrollos web y, sinceramente, no creo que sea una pavada (y menos aún cuando lucho día a día para no ser un mediocre en lo que emprendo). Si leíste la explicación, tal vez recuerdes la parte donde se explicita que hacer un “borrón y cuenta nueva” sí es muy fácil. Cambiar 600 posts (o 1200, o los que sea), 5000 comentarios (o 13000, o los que sea), varias categorías y varios autores “de un sistema a otro” y que todo lo que funcionaba de una forma determinada lo siga haciendo exactamente de la misma manera, ya no es tan fácil (si realmente leíste el post sabrás que tampoco es tan dificil).

    No puedo (ni quiero) consentir que la extensión y detalle de la explicación entren en discusión. Partiendo de la base de que fue escrita buscando guiar o aclarar dudas a cualquier persona que se encontrara en una situación similar, no cabe en cerebro humano pensar en términos de “exageración” cuando de explicar algo se trata, sería demasiado necio. Por lo demás, si le sirve aunque sea a una sola persona en el mundo, habrá valido más la pena ponerlo que no ponerlo.

    Lo único que voy a hacer notar a Deb en particular es que no debería dejarse llevar tanto por sus impulsos primigenios (eso nunca lleva a buen puerto) y pensar un poquito antes de escribir pavadas como lo de si llamar “mudanza” a mover algo (el contenido) de un lugar a otro (de un sistema a otro). Va con las aclaraciones entre paréntesis por si todavía está ofuscado y no puede pensar. Sobre si los webloggers no tienen nada que hacer, no podría asegurárselo, aunque conozco muchos que sí tienen; personalmente, no soy un weblogger. Sobre lo de “memoria”, no sé a qué se dedica (y tampoco me importa), pero si tuviera algo que ver con diseño o desarrollo (de verdad, al menos) sabría lo que es la “memoria descriptiva” de un trabajo realizado. Tal vez solo haya sido su enojo (y las evidentes consecuencias en su mente).

    No sé ustedes pero yo, lo dejo acá.

  18. antes que nada.. solo lei todos los comentarios y hay muchos para comentar pero estoy en plena PamPa y no hay una conexion decente y barata a Internet como para responder todos.

    Solo quiero aclarar 3 cosas:
    1- Nico, mil gracias por el laburo bien hecho y estar cada vez qeu tenia una duda o quilombo pese a que lo tuyo estaba termnado.

    2- Kane, la nimiedad es dejar de lado que no es cambiar un sistema a otro y nada mas; es cambiar un sistema, sus base de datos, el historial , el diseño, el sistema de templates, los tags y etc; no es que pongo un CD y listo. Es como decirte que vos como diseñador sites haces nimiedades cuando rediseñas un site o cuando lo llevas a Flash.

    3- Deb, sinceramente no tengo ganas de debatir con vos ni de agredirte y empezar una discusion desde cero; sólo respeta qeu para mi los posts, comentarios, diseños, “memorias” de 3 años son importantes y que el cambio de Soft implica desde nuevas bases de datos hasta el “toqueteo” de archivos para que todo quede bien.
    No te interesan estas cosas.. es simple.. tenes toda internet para leer :)

Comentarios cerrados.