PodcastVery, incumplimiento de promesas y no vacaciones

Portada del podcast Drupalízate
Drupalízate es un podcast semanal creado por mí, donde hablo sobre desarrollo web basado en Drupal.
El contenido central es resolver las típicas dudas que pueda tener alguien que tiene o quiere tener una web en Drupal.
Aparte de resolver dudas de "clientes", también se habla de tips, recomendaciones y buenas prácticas para el Developer que recién empiezan en este mundo.
Audio y notas del episodio

Esta semana he hecho un episodio cortito.

Es un resumen de las últimas semanas/mes, desde cuando grabé el anterior episodio. En este episodio vengo a comentar por encima lo que he hecho estas semanas y podéis intuir, más o menos, lo que voy a hablar en el siguiente episodio.

Transcripción automática de este episodio de audio (puede contener errores)

 Hola, bienvenido o bienvenida otra semana más aquí a a drupalizate, donde bueno, yo te cuento las peripecias que voy haciendo con webs en drupal. Primero todo, disculpadme si escucháis golpes de fondo o niños chillando e insultándose en francés. Estoy grabando y en el mismo momento que estoy grabando hay unos niños aquí delante, como aquí al lado para ser exactos, en el patio, dando golpes con la pelotita, que se la pueden meter donde yo te diga. Pero bueno, no tengo otros días para grabar y los niños parece que tampoco tienen otros días para jugar, así que espero que el micrófono dinámico haga su trabajo y apenas se escuche nada. Dicho esto, este episodio va a ser un resumen de las últimas semanas porque... bueno, creo que lo comenté en el episodio pasado. El episodio pasado, que tú lo has escuchado hace apenas una semana, yo lo grabé hace como tres semanas y pico, casi cuatro, no llega al mes, pero poco le falta. Así que bueno, han pasado cosas por el medio. La primera es que estamos en agosto, yo no hago vacaciones, pero los clientes tampoco. Así que se han despertado varios, con algunos que otros fuegos y actualizaciones varias, no programadas. Supongo que es porque su desarrollador se... bueno, lo que sea, no sé. Tengo más trabajo del esperado en agosto, que tampoco me quejo, porque al final es trabajo que voy a cobrar. Pero bueno, al final los 6 projects que tengo, sobre todo este con el que estoy ahora, que es podcastvery, solo le puedo dedicar algunas horas el fin de semana, porque tampoco voy a estar trabajando todo sábado y todo domingo. Hago algunas horas, cuando puedo, cuando tengo ganas, ya que es un proyecto que no cobro por hacer. Dicho esto, he tenido por esto unas tres semanas, por aquí en medio he tenido un cambio de piso, porque para quien no sepa, soy entre comillas, nómada digital, cada equis tiempo unos meses me voy cambiando de apartamento de Airbnb en Airbnb o en Booking, y en este caso estoy en Francia y me he movido de un pueblo que estaba cerca de Ginebra a uno que está a una hora y pico más lejos de Ginebra. Y me voy a quedar todo el agosto aquí hasta septiembre, supongo, no lo sé. Bueno tengo que comentar esto porque por aquí en medio tenía un cambio de apartamento, he perdido un tren, perdí un día de trabajo casi. Bueno, problemas de moverse, estoy quejando por quejarte la verdad. Total, no he hecho todo lo que prometí, a día de hoy yo pensaba tenerlo ya todo hecho en podcastvery y no es así. Lo que sí que he hecho es hacer el movimiento de datos de MySQL, que en mi caso es MayaDB, a Elasticsearch, porque decidí, ya lo conté en el episodio que viene, pero decidí moverlo a Elastic en mi caso, en vez de moverlo por ejemplo a una tabla custom dentro del mismo MySQL, o a un solo o a otros sitios, o a un Postgres. Y pues esto, hice un skip que me moví los datos, he tenido que refactorizar partes del código que no tuve en cuenta en su día y que al hacer este cambio de movimiento de datos, pues había partes del código que reventaban y había partes de la web que habían dejado de funcionar. Después de que he tenido que mover el servidor, ya no tengo uno, sino que tengo tres servidores, he hecho un escalamiento horizontal y ya lo comentaré más en detalle en el episodio que viene porque aún estoy en ello, me falta acabar de redimensionar el de base de datos, pero ahora tengo tres servidores, tengo uno para MySQL, uno para Elasticsearch y otro para el resto, que es pues PHP, NGINX, Redis y las tallas Chrome. Y digo esto en ello porque he tenido problemas varios, en este caso con la gestión de servidores y gessner. El destacable es que no sabía yo que tengo un límite en la cantidad de servidores. He llegado al límite de 10, he tenido que solicitar acceso a que me lo amplien y pues me han tardado más de un día. Así que me han cortado, o sea, si yo quería hacerlo todo un sábado, pues me lo cortan por la mitad, lo tuve que hacer la semana siguiente. Problemas de esos que no tienes en cuenta y que te atrasan toda la tarea pues unas semanas. Y por lo que os más, básicamente esto, me estoy peleando con servidores, me estoy peleando con Elasticsearch y he tenido que refactorizar código, gran parte del código custom que había hecho yo para el tema de búsquedas con tags, de palabras claves relevantes, consultas MySQL, de los, o sea, views que hacían consultas para obtener datos de los episodios, ahora se tienen que hacer todas como custom a Elasticsearch. Y bueno, pues esto que me ha llevado bastante más tiempo, digamos que casi un por tres, del tiempo que había pensado dedicarle a estas tareas. O sea, la estimación de tiempo para esta tarea la cagué completamente, lo subestimé bastante. Ah, y por cierto, problemas varios también he tenido al eliminar tal cantidad de nodos. O sea, para que os hagáis una idea, si tengo cuarenta y pico millones de nodos a eliminar, suponiendo que cada nodo me tarda un segundo, que ya te digo yo que no, que es bastante más rápido, pero si fue un segundo por cada nodo y tengo cuarenta y pico millones de nodos, son cuarenta y pico millones de segundos, lo que equivale a más de un año, ¿vale? O sea, contando que cada día tenía sus veinticuatro horas, pues a más de un año de eliminación de contenidos, cosa que es inviable. Y busqué soluciones alternativas, básicamente, ya te lo comentaré más en detalle la semana que viene, pero esto, tuve que ideármelo un poco para, vale, pues cuando se mueven los datos a la Sixth Edge, no eliminar en ese momento el nodo, sino dejarlo allí y después hacer otro script para que me elimine las tablas correspondientes y después otro script para que solo me elimine ya el nodo que ya no tenga campos. Como digo, lo comentaré más en detalle la semana que viene. Hoy tengo un poco de pisa y esta semana, como que creo que no voy a tener tiempo para grabar ese episodio, he decidido, pues grabarlo el domingo. Y poca cosa más. Y por cierto, muchas gracias a las tres personas que me habéis hecho comentarios de cómo arreglaría este tipo de problemas. O sea, con lo que yo comenté las semanas pasadas, han habido tres personas que me han dado su opinión que algunas han sido de, pues, eliminar los episodios y ha tomado po saco y dos cargas. Yo, a ver, depende del proyecto, en este caso prefiero tener los episodios porque tengo que realizar búsquedas, en este caso usando elasticsearch, para buscar por texto dentro de los episodios. Cuando alguien busca palabras clave como, yo qué sé, podcast de SEO, o podcast de marketing, o podcast de economía, que le salgan si esas palabras están en los episodios. O cuando alguien busca, yo qué sé, mi nombre, por ejemplo, que le salgan podcasts donde me han entrevistado a mí, o a la persona que estén buscando. O sea, al final creo que tener los textos de los episodios es importante para este proyecto y para mi caso de uso. Pero como digo, hubo uno que me dijo de, pues, eliminarlos y la verdad es que, depende del proyecto, podría ser una opción viable. En vez de guardar los datos, lo guardo en caché, en el mismo momento de que el usuario hace la primera petición a la URL del podcast, el primer usuario se va a comer un tiempo de espera importante, pero los usuarios siguientes, como estos están ya en caché, pues durante x tiempo, x horas, no había problema alguno, y después de unas horas se vacía la caché y bueno, y tengo menos problemas de espacio. Pero como digo, esto no me permitiría hacer búsquedas de texto, así que lo descarté por este motivo. Otros me han dicho, bueno, pues, recomendaciones de cómo montar servidores, que si los separaría todo, digo, no, si esto ya lo tengo previsto, he separado todo. Y bueno, y algunas recomendaciones de este estilo, así que muchas gracias por escucharme y por darme recomendaciones de por dónde tirar. Voy a detallar un poco más la semana que viene, tengo que hacerme bien un guión de todo lo que he hecho, las recomendaciones que me habéis dado, por qué las he seguido o por qué no, que creo que es una cosa útil para la gente, pero como digo, tengo que tener más tiempo para organizarme y explicarlo mejor. Así que, por una cosa más, y disculpad por esta demora de otra semana más. Pero bueno, como que la gente está de vacaciones, no sé si me va a escuchar mucha gente este episodio. Vale, disfrutad las vacaciones, gente.

¿Tienes algún proyecto en mente?

Si quieres hacer algo en Drupal tal vez puedas contratarme.

Ya sea para consultoría, desarrollo o mantenimiento de sitios web Drupal.