El fin de mis streams grupales de pomodoro

El 28 de febrero de 2023 transmitiré mi último stream de cowork o pomodoro grupal en Twitch. En esta ocasión no es un parón temporal, es un parón definitivo. Seré la primera persona que echará de menos los lazos que se han formado en el chat de mi canal de Twitch, donde este tipo de streams se ha mantenido a modo de servicio público durante más de un año por la labor que hacía y por la comunidad de estudiantes y trabajadores remotos que se ha formado, pero creo que es necesario dejar de hacerlo por varias razones.

Antes que nada, para cualquier persona venida de fuera que se pregunte qué quiere decir todo esto de los streams de pomodoro, se viene una definición. Twitch es una plataforma que aunque está asociada al mundo de los videojuegos, en los últimos años se ha abierto mucho a cualquier tipo de contenido que caracterice por ser en directo, incluyendo cosas como los deportes, los podcasts y otro tipo de conversaciones o la programación.

Una de las comunidades más interesantes de Twitch es, sin duda, la etiqueta Pomodoro. Es exactamente lo que puede parecer. En vivo se transmite un reloj de pomodoro, y de algún modo la mayoría de espectadores se pone de acuerdo para sincronizarse con el mismo. A modo de salvapantallas, quien opera el canal activa su cámara para que el resto del mundo le vea trabajar y estudiar, y el chat participa trabajando y descansando de forma sincronizada y escuchando la música de ambiente tranquila que acompaña este tipo de transmisiones.

Durante los últimos 13 meses, aproveché por las mañanas mi canal de Twitch para emitir este tipo de contenido. La razón por la que empecé a hacer esto fue por pura necesidad. A principios de 2022 me mandaron a trabajar a casa en la oficina debido a un nuevo brote a nivel nacional de coronavirus. Para entonces, mi capacidad de trabajar de forma remota estaba severamente impactada por la fatiga de haber sufrido estrés en el trabajo en todos los meses anteriores, sin forma de concentrarme. Después de descubrir este tipo de contenido en Twitch, decidí iniciar el mío propio bajo la idea de que si transmitía durante varias horas una imagen en vivo de mi webcam, por lo menos me forzaría durante un tiempo a estar concentrado en el trabajo. Eventualmente, el brote se controló, pero yo continué manteniendo ese tipo de streams después de haber aprendido a trabajar mejor y más efectiva de forma remota debido a la nueva subcomunidad que se estaba formando en paralelo a la de mis streams de programación.

Tal como he empezado a anunciar esta semana, he decidido que el próximo día 28 será el último cowork que transmita por mi canal de Twitch. Aunque no descarto pregrabar de vez en cuando segmentos de pomodoro y subirlos a YouTube, dejará de haber emisiones en directo de ese tipo y a partir del 1 de marzo de 2023, mi canal de Twitch se centrará más en los streams de programación de las tardes, los cuales van a cambiar de horario igualmente para hacerlos antes, algo que también me está sentando bien debido a que acabar mis streams tan de noche me venía impidiendo descansar correctamente desde hace meses.


¿Por qué? Existen varias razones al respecto. Ninguna tiene que ver con cuestiones profesionales respecto al trabajo que hago, empleadores o clientes. Nadie me ha afeado nunca que haga este tipo de contenido, ni tampoco ahora mismo estoy teniendo problemas de ese tipo por transmitirlos y trabajar así.

Desde hace tiempo noto que el proceso de arranque cada mañana del stream es lento y que me supone perder entre 5 y 15 minutos configurando todas las aplicaciones necesarias para hacer funcionar el vivo, ajustar las opciones que la cámara olvida cada vez que se apaga el ordenador, montar la música… al cabo de un mes, se acumulan varias horas perdidas en montar una y otra vez los mismos programas y las mismas configuraciones. Si multiplicamos esas horas por lo que cuesta una hora de mi tiempo en la tarifa estandar que le aplico a nuevos clientes en este momento, el resumen es que al mes estoy perdiendo dinero cada día. Bastante, de hecho, podría estimarlo en unos 1000 euros al mes tranquilamente.

Al margen de eso, no solamente trabajo como desarrollador de software autónomo. También produzco cursos y le dedico una parte de la semana a avanzar mis proyectos en línea sobre cursos y a hacer investigación sobre temas. Es imposible de hacerlo si todo mi material de grabación está bloqueado por el propio stream de pomodoro, ya que no puedo usar ni el software de grabación, ni el micrófono, ni en ocasiones la cámara, lo cual está dificultando las cadenas de producción y es parte de la razón por la que algunos de mis proyectos en línea parece que se han estancado en los últimos meses, porque no tengo la posibilidad de rellenar horas muertas a lo largo de la semana.

Esto es especialmente problemático los días en los que, que por cuestiones de época baja, me he encontrado falto de trabajo externo pendiente para el día, y con una agenda vacía antes de la hora de comer. No tengo trabajo externo que facturar, pero tampoco puedo ponerme a avanzar la grabación de cursos porque tengo las herramientas de grabación ocupadas. Todo lo que puedo hacer es destinarlo a investigación sobre futuros temas y a adelantar tiempo escribiendo notas sobre temas futuros; o a formarme por mi cuenta para poder adquirir conocimiento que pueda explotar en el futuro, lo cual me hace sentir incómodo debido a que lo que estoy transmitiendo esencialmente es una webcam en la que se me ve durante varias horas haciendo scroll con el ratón en un navegador y anotando cosas, lo cual transmite una imagen que no es la que quiero enseñar y que creo que me puede hacer daño a título personal y profesional.

En sí la comunidad no es complicada de gestionar en la mayoría de ocasiones, pero hay excepciones. Antes decía que los streams de pomodoro funcionan bien cuando todo el chat está de acuerdo en seguir los ciclos de trabajo-descanso y conoce cómo funcionan las reglas, pero no siempre es así. En ocasiones (cada vez menos, sobre todo desde que abandoné la categoría de Just Chatting y empecé a parasitar la categoría de Software Development, pese a no ser un stream de programación como tal), recibo la visita de simpáticos amigos que vienen simplemente a calmar su aburrimiento de formas un poco raras con el chat. Aunque ya he aprendido a aplicar el protocolo, siguen siendo momentos tensos debido a que realmente juego en desventaja ante un troll que aparece en el chat en medio de un momento donde el stream debe transmitir focus y aparentar normalidad para el resto de personas. A la larga este tipo de vigilancia continua acaba cansándome.

Finalmente está la cuestión de cómo a nivel personal me afecta el tener la cámara puesta todo el día y el estar emitiendo 9 horas de contenido como éste. A nivel físico, no poder tener la flexibilidad de realmente descansar y levantarme durante los descansos debido a que hay que generar interacciones con la gente del chat durante el descanso está acabando conmigo. Sí, podría simplemente levantarme y poner vídeos en bucle durante el descanso, pero después de varias pruebas, no es por eso por lo que viene la gente.

No poder despejar la cabeza durante un rato cuando estoy bloqueado en el trabajo porque hay que pulsar botones en el centro de emisión después de cada sesión me agota y me estresa. Y, lo más importante, me está empezando a costar saber cuándo estoy en vivo y cuándo no, debido a que al durar este tipo de streams todo el día, empiezo a tener problemas para cambiar el chip a modo stream en las primeras horas del día, y a salir del modo stream después de cerrar. Ciertos patrones como tener que comprobar varias veces los LEDs de los micrófonos y las cámaras porque no me termino de fiar de si realmente están activas o no son una pista de que igual algo no estoy haciendo bien.


En definitiva, me he visto obligado a poner punto y final porque he empezado a encontrarlos poco sanos y poco buenos para mí, y eso significa que estoy fallándole a la razón por la cual los empecé en primer lugar: para servirme de ayuda.

Durante este año, este tipo de streams han servido de refugio y de lugar de encuentro para mucha gente, y me alegra haber podido mantener este servicio público tanto tiempo en marcha por su utilidad, pero también es importante recordar que dentro de todas las personas a las que debe ayudar, también estoy yo.

Años después, he conseguido dejar Twitter, ¿por qué?

Antes que nada, decir que esto no tiene nada que ver necesariamente con el cambio de rumbo que ha tomado Twitter desde que Elon está al mando. Ni siquiera lo dejé cuando estaba de moda hacerlo: en noviembre, cuando todo el mundo anunciaba que era el fin y ponía su handle de Mastodon en la bio o en el username. Me he esperado a hacerlo ahora, cuando ya no es guay.

En fin, la cuestión es que en mis vacaciones de navidad, probé a cerrar sesión de Twitter en todos los navegadores y a eliminar las aplicaciones allá donde estuviesen instaladas. Y una de las cosas que noté al poco tiempo de dejar de mirar Twitter es una mejora en mi bienestar, en mi ánimo y también un poco en mi salud mental.

Durante enero he entrado de vez en cuando a publicar mensajes forzados con actualizaciones sobre mi contenido en YouTube y a dar un par de RTs sueltos, pero sin hacerle mucho caso. Durante este tiempo seguí recibiendo menciones e interacciones, las cuales por otro lado me daba pena ignorar. Por eso el otro día, después de pensarlo, llegué a la conclusión de que si iba a dejar de mirar la app, había que hacerlo de forma menos silenciosa. Así que, primero exporté una copia de seguridad de mis tweets en todas las cuentas de mis proyectos (las cuales, por cierto, se tardaron bastante en generar, probando que tal vez algo ha pasado ahí), y después de borrar todos los tweets con una herramienta de borrado masivo, anuncié tanto en @makigas como en @nosgustalinux que las cuentas estaban fuera de servicio y que no iba a leer ningún mensaje que me llegase.

La bandeja de interacciones de esta cuenta no está siendo leída.

🔵 Puedes encontrar cursos y más material para aprender gratis y en español a programar que voy generando en https://youtube.com/@makigas y en https://makigas.es.

🟢 Puedes encontrar las noticias y tutoriales sobre GNU/Linux, BSD y otros sistemas libres que voy generando en https://youtube.com/@nosgustalinux y en https://nosgustalinux.es.


Durante mucho tiempo pensé que con simplemente ajustar y medir al milímetro el tipo de cuentas que se seguían y con las que se interactuaba permitiría conseguir una aplicación más higiénica de usar. Pequeños hacks, como que bloquear a @MomentsES (están muy callados desde hace unos meses, me pregunto por qué será… 🤭) provocaba que dejasen de salir noticias en la sección de tendencias, o que configurar la ubicación en un país cuyo idioma no hablase, como Japón o Rusia, permitía por lo menos usar la aplicación sin tantas distracciones debido a que las tendencias y las noticias me eran imposible de leer.

Sin embargo, no es suficiente, por varias razones.

En primer lugar, el enemigo está en casa. Al principio mediante lista secreta, y luego finalmente dando follow de forma pública, mi timeline de Twitter consistía en cuentas sobre programación y también otros canales que se dedican a la creación de contenido. Un poco para seguir a los creadores que sí me interesan, y también medir el termómetro de lo que ocurre en general.

Incluso en el caos de una red social como esta, también existe cierto orden, cierta jerarquía y ciertas subcomunidades. Twitter-Tech es una de ellas. Y como subcomunidad, también está expuesta a sus propios dramitas, sus propios debates mensuales sobre si HTML es un lenguaje de programación o no, y todas esas cosas.

En ocasiones, tampoco necesitas ir fuera a buscar la crispación porque la crispación está dentro, cuando un tema polémico se convierte en el tema del día y todo el timeline se convierte en indirectas jocosas referentes al mismo tema, lo cual a la larga tampoco resulta demasiado sano de leer.

Por otra parte, el buscador tampoco está demasiado lejos. Una mente curiosa y unas ganas de saber si «todo ahí fuera es tan malo como parece» es suficiente para acudir al terrible buscador, poner una palabra clave correcta, y hacer doomscrolling durante minutos leyendo lo que podría ser el inminente fin del mundo, o alguna chorrada similar.

Finalmente, lo que hay tampoco es tan bueno. Si algo es excesivamente bueno o sobresaliente, probablemente lo vea enlazado desde alguna fuente de información más prioritaria. Cada día se publican muchísimos mensajes, pero queda saber cuántos de ellos son realmente importantes y cuántos vamos a olvidar en cuanto pasemos a otra cosa.

¡Pero Dani! Como creador no deberías pensar eso, se supone que tú quieres lo mismo para tus proyectos. Precisamente ahora vamos con los problemas que hay en el otro lado, después de este separador.

La cuestión es que como creador de contenido tampoco estoy satisfecho con la forma en la que hay que tener presencia en varias redes sociales simplemente porque cada una se especializa en una cosa concreta y nada más. Hay que usarlas todas a la vez para poder contar una película completa, y también hay que ocuparse de enlazar desde cada red social a todas las demás y ocuparse periódicamente de reenviar gente de un sitio a otro. Personalmente, lo encuentro agotador y un derroche de tiempo que le podría dedicar a otras cosas.

Además, cosas como las que vimos en diciembre cuando Twitter intentó prohibir cualquier enlace a Instagram, TikTok o Mastodon son la prueba de que, realmente, este tipo de conglomerados existen simplemente porque las plataformas no se oponen, pero que en el momento en el que a una red le deje de parecer bonito que existan caminos con otra red, se sentirá libre de cortarlos. Parece que es nuevo, pero es sabido desde hace años que YouTube tiene un problema con Twitch, y que en vez de buscar opciones para atraer gente a su plataforma, encuentra más sencillo simplemente penalizar a la gente en vez de atraerla.

Sobre mi opinión sobre el tipo de contenido que tendría que generar para promocionar mis proyectos en Twitter, por ejemplo, tampoco voy a decir mucho de forma pública. Se podría resumir en que no soy fan de la cultura actual de crear hilos sobre cualquier cosa simplemente para tener esa dosis de relevancia durante el día. No voy a desarrollar porque tendría un conflicto de intereses al llevar proyectos similares en internet a los de otras personas que sí hacen esto, lo cual puede hacer que suene innecesariamente violento cualquier cosa que diga por mi parte.


En definitiva, Twitter tampoco era una red social en mi caso demasiado productiva y que desde el punto de vista de mis proyectos me robaba demasiado tiempo de cara a gestionarla y a crear ganchos para conseguir traer gente de una red a otra todo el tiempo.

Echaré de menos el sentimiento de comunidad en algunas cosas, por ejemplo, en las menciones más directas, pero por otra parte, las pocas cosas buenas que tienen no permitían contrarrestar todas las partes negativas que exponía. He mejorado bastante en bienestar este mes y me gustaría mantenerme así.

Mi opinión después de probar Miniflux (RSS)

El mes pasado, durante mis vacaciones, reemplacé mi instancia local de TinyTinyRSS por una instancia de Miniflux. Ambas son aplicaciones cloud que actúan como lector RSS. Ya hablé la semana pasada sobre las razones por las cuales prefiero mantener mi cliente RSS en un servidor, pero se resume en que la falta de sincronización entre dispositivos que tienen Mozilla Thunderbird o QuiteRSS los hace inaceptables si unas veces leo cosas con mi PC y otras con mi móvil.

TinyTinyRSS es un pepino de software. No tiene otro calificativo. Es un software que voy a seguir recomendando y del que voy a seguir hablando bien. Es flexible, potente y tiene una interfaz de usuario web avanzada que recuerda a la de otros clientes RSS mayores y llenos de funciones. Tiene filtros con los que se pueden marcar como leídas o borrar entradas que cumplan unas condiciones (ideal para filtrar ruido), y también tiene un sistema de plugins extensible para agregarle nuevas funciones.

Sin embargo, no todo es bonito. TinyTinyRSS también es desafortunadamente un software que tiene bugs. En particular, dos veces se me ha corrompido la instalación y he tenido que tirar de copia de seguridad para rescatar mi lista de feeds y vaciar la base de datos, perdiendo el historial, las entradas marcadas como favoritas, y también parte de mi tiempo. 2 veces en 4 años tampoco es demasiado desde el punto de vista estadístico, pero sí es cierto que es una molestia que preferiría evitar.

Existen otras razones por las cuales he acabado cansándome del comportamiento de este software. Fundamentalmente tiene que ver con el proceso de instalación, especialmente ahora que está basado en Docker. Iba a contarlas aquí, pero son muchas y por otra parte se supone que quiero hablar de Miniflux hoy, así que corto y pego en otro borrador y ya lo dejo para otro día.


Miniflux es otro lector RSS cloud que puedes ejecutar en un servidor y ponerle a cargo de revisar periódicamente si los sitios que sigues tienen novedades, dejándolas en una base de datos para que las puedas leer cuando puedas.

Su interfaz web es excesivamente minimalista, pero a cambio esto le permite ser compatible con teléfonos móviles y otro tipo de pantallas táctiles, e incluso se puede instalar como PWA para un acceso más conveniente en la pantalla de iOS o Android. Tiene las funciones que se pueden esperar de este tipo de programas, e incluso tiene un sistema que permite ajustar dinámicamente la frecuencia con la que mira si una web tiene novedades según la cantidad de posts que publica a la semana (para sitios de noticias diarias cambia la frecuencia a 1 hora como mucho, y para sitios personales no suele mirar más allá de una vez cada pocos días).

Además, se puede desplegar en un único binario de Go. En mi caso, lo corro desde Docker y consume bastante menos recursos que lo que consumía TT-RSS, lo que permite aliviar la carga del servidor y lo que espero que en algún momento me ayude a ahorrar recursos y tal vez hacer downgrade a una máquina más pequeña si veo que no me hace falta tener una máquina tan potente.

También tiene APIs que me permiten usar Miniflux como un backend cuya interfaz web apenas reviso, sino que me conecto desde mi propio cliente de escritorio o de móvil como quien lee el correo. En este caso, Miniflux implementa la GReader API. Es una API mucho más flexible y potente y que me permite hacer cosas que antes no podía hacer, como suscribirme rápidamente a una fuente desde mi móvil o cancelar una suscripción si deja de interesarme un sitio web. Antes, tenía que entrar al panel de control web para poder hacer esto.

Al haber pasado a usar la GReader API, ahora puedo usar más clientes de escritorio, por lo que también he cambiado los programas que uso para leer mis noticias. En Mac y en iOS/iPad, me he pasado a NetNewsWire, que es un cliente libre y gratuito. NewsFlash también es compatible con la GReader API, de modo que en GNU/Linux he podido seguir usando NewsFlash cambiando únicamente una cuenta online por otra.

Sigo pensando que para meterse en el mundo del RSS existen opciones mucho más accesibles, como Feedly, y como he dicho varias veces, es mi opción recomendada. No obstante, para alguien que quiera ensuciarse las manos y ocuparse de instalar servicios autoalojados en su VPS o en su nube propia, Miniflux es fácil de instalar y depende únicamente de si mismo y de una base de datos PostgreSQL en la que volcar el estado de la aplicación, y que aunque tiene una interfaz web que no a todo el mundo le va a gustar, tiene más formas de ser accesible desde otras aplicaciones para no sufrirla tanto.

¿Por qué utilizo un lector RSS cloud?

De cara a un futuro post que quiero hacer sobre clientes RSS y algunos cambios que he hecho en mis flujos de lectura durante estas vacaciones, he querido hacer un post de preámbulo. Si hago posts más cortos y centrados en un tema, me será más sencillo de escribir y revisar, y también más fáciles de referenciar en el futuro.

Hoy quiero hablar sobre por qué mi forma de consumir feeds RSS es la que es. En mi servidor web tengo instalado un cliente RSS que se ocupa de comprobar los blogs a los que estoy suscrito, 24×7, y almacenar las novedades en una base de datos a la espera de que las lea cuando tenga tiempo.

Y aquí lo que quiero es explicar por qué trabajo así y no simplemente descargo en mi ordenador una aplicación como QuiteRSS o NetNewsWire, o alguna de las que encuentre en la tienda de aplicaciones de mi móvil. Ya me ocupé de contar en un post anterior por qué no uso Feedly, pese a que me sigue pareciendo la forma más sencilla de no complicarse tanto la vida, y a que lo sigo recomendando para que alguien que quiere meterse en el mundo del RSS pueda tener un primer contacto sin pegarse cabezazos contra la pared.


Sobre por qué utilizar un servidor para mis feeds RSS y no simplemente descargar una aplicación en mis dispositivos, precisamente la razón es porque utilizo varios dispositivos. Si usase simplemente una aplicación de escritorio o una aplicación de móvil que no esté sincronizada con ninguna nube, acabaría teniendo cuatro aplicaciones RSS diferentes con cuatro listas de blogs diferentes y donde habría que marcar cuatro veces cada cosa que vea como leída.

Si utilizo una aplicación cloud, como es TinyTinyRSS en mi caso, puedo tener un único cliente RSS en un servidor, al que accedo desde todas mis pantallas. Por la mañana en el PC leo un artículo y lo marco como leído, y por la noche desde el móvil aparecen más artículos nuevos pero no el que ya he leído por la mañana.

Hasta ahora he venido usando TinyTinyRSS. Es una de las aplicaciones web de software libre más usadas de cara a lanzar un lector RSS en un servidor, y también una de las más veteranas. Tiene una interfaz web que permite leer artículos desde cualquier navegador web y es lo suficientemente avanzada como para cubrir los casos de las personas más «power users», que se parece a lo que era en su momento Google Reader (porque, de nuevo, la única forma de medir un cliente RSS es compararse a Google Reader, incluso aunque hayan pasado 10 años desde su cierre).

Sin embargo, una de las cosas que valoro de TinyTinyRSS es que tiene una serie de APIs que permiten crear integraciones con otras aplicaciones. Con ellas, es posible utilizar algo que no sea el navegador web para leer noticias de una forma más flexible y bonita según las circunstancias. Por ejemplo, la interfa web original de TT-RSS es un poco complicada de usar en teléfonos móviles, precisamente porque está pensada para ser usada en aplicaciones de escritorio.

De modo que en mi móvil tengo una aplicación aparte, que se parece a una aplicación de teléfono móvil normal, con letras y botones grandes, pero que cuando se abre, se comunica con mi servidor para ver qué noticias hay descargadas ahí y mostrármelas como si fuese un cliente de correo. A medida que las voy leyendo, va empujando esa información al servidor para que luego me salgan como leídas en el resto de dispositivos que uso.

En MacOS he venido usando Reeder. Normalmente sería de pago, pero he tenido la suerte de pillar en el pasado tanto la versión 3 como la versión 4 en momentos en los que estaban temporalmente gratis. En mi móvil y en mi tablet también tengo Reeder. Juraría que por Reeder para iOS sí he pagado en el pasado, aunque ahora no lo recuerdo.

Cuando uso GNU/Linux, NewsFlash también tiene conector para interactuar con mi instancia, y es la aplicación que utilizo para interactuar con mi servidor y leer mis noticias desde una aplicación con el look and feel de GNOME.

O al menos así ha sido hasta esta navidad, pero esto es algo que dejo para otro día. Entre tanto, aquí he hecho un diagrama para resumir este lío.

La estrambótica arquitectura RSS de Dani
La estrambótica arquitectura RSS de Dani
TinyTinyRSS
TinyTinyRSS
Servidor
Servidor
Feeds RSS
Feeds RSS
Navegador web
Navegador web
Reeder para Mac
Reeder para Mac
NewsFlash para Linux
NewsFlash para Linux
Reeder para iOS/iPad
Reeder para iOS/iPad
Text is not SVG – cannot display

¿Por qué no uso Feedly pese a que lo sigo recomendando?

Fui usuario de Google Reader hasta prácticamente su fecha de cierre. El cierre de Google Reader es curiosamente uno de esos eventos traumáticos donde pese a que ya han pasado prácticamente 10 años desde su cierre, para quienes lo usábamos sigue siendo algo que incluir en la tarjeta de presentación. «Hola, me llamo Dani y fui usuario de Google Reader».

¿Qué fue Google Reader?, se preguntará tal vez alguien que se perdió esa época del internet mágico. Era un lector de RSS. Por ponerlo en contexto de forma breve, RSS es un protocolo que permite que una página web comunique de forma automatizada de sus novedades, por ejemplo, las últimas noticias publicadas en un periódico o los últimos posts publicados en un blog.

Un lector RSS es un programa con el que podemos «suscribirnos» a varios sitios web, y se ocupará cada pocos minutos u horas de consultar mediante protocolo RSS si la web tiene algo nuevo que no hayamos visto todavía, y que lo mostrará en pantalla como si se tratase de un cliente de correo.

La mayoría de clientes RSS hacen un buen trabajo al detectar novedades duplicadas y así saber qué hemos visto ya y qué no, y tiene memoria suficiente como para guardar docenas de artículos que podemos leer vorazmente cada día, o dejar un tiempo esperando en una cola de lectura que finalmente podemos marcar como leída de golpe y sin compasión.


Tras su desaparición, estuve un par de años utilizando Feedly. Feedly es uno de esos servicios que suelo recomendar a cualquier persona que quiera probar el mundo del RSS. Es un servicio en el que puedes tirar un par de páginas web que quieras tener al día, y que cada vez que una de esas páginas publique algo interesante te lo mostrará al abrir la aplicación.

Quizá el mayor atractivo de Feedly es el motor de descubrimiento, y la posibilidad de encontrar nuevos sitios exclusivamente a través de feeds RSS. Esta es también una de las principales razones por las que, como digo, seguiría recomendando Feedly a personas que estén entrando ahora en el mundo del RSS.

Sin embargo, pese a que lo sigo recomendando, realmente no uso Feedly. Nunca terminé de cogerle gusto. Por lo menos en este caso veo más difícil que desaparezca, debido a que aunque tiene un modo gratuito, también tiene algunas limitaciones que te invitan a pagar por él si vas a usarlo mucho. Y mientras haya gente que siga pagando por el servicio, en principio debería seguir habiendo dinero para que Feedly siga existiendo como empresa ofreciendo su producto. A estas alturas Feedly ya ha vivido más años que Google Reader, así que parece que lo están consiguiendo.

Mi principal problema con Feedly está en la cantidad de características que ofrece, y en lo confusas que son algunas de estas características. No deja de ser un software cloud, y qué software cloud hoy en día puede denominarse un «servicio» si no está constantemente reinventándose y agregando nuevas funciones o cambiando su forma de ser cada pocos años para mantenerse fresco.

Durante mis últimos tiempos con Feedly, la mayoría de funciones que me encontré, como el algoritmo de prioridades o las funciones de equipo (¿por qué activarlas para todas las cuentas en vez de preguntarme si las quiero en primer lugar?), me resultaban muy complicadas de utilizar. No quiero que un algoritmo filtre las noticias por mí; precisamente la gracia del RSS es ver, como si fuese un cliente de correo, cada uno de los artículos nuevos de los sitios que explícitamente he solicitado seguir.

En definitiva, creo que Feedly es un buen servicio, y que también es un producto que le puede gustar a la mayoría de personas que solo quieren una forma simple de consumir contenido sin complicarse con aplicaciones. Sin embargo, después de un tiempo utilizándolo, descubrí que no es para mí, y lo sustituí por otro tipo de aplicaciones que sí me eran más prácticas.

También, todo hay que ponerlo en su debido contexto. La época de Feedly y de la muerte de Google Reader es también la época del boom de las redes sociales. En esa época, como la mayoría de personas, había movido mi forma de enterarme de la actualidad a las redes sociales, fundamentalmente Twitter y Facebook, así que apenas consultaba el RSS. Sólo hace un par de años, probablemente 2018 o 2019, que volví a preocuparme por esta dieta informativa mía y decidí volver a estar más pendiente del RSS.

El plan para 2023 es no programar

Evidentemente, es mentira. Trabajo como desarrollador, así que si no programo, no entra el dinero. Mi plan es no programar fuera del trabajo. Excepto que eso también es mentira, porque sí voy a seguir programando fuera del trabajo. Y aun así, siendo freelance, ¿qué puedo considerar trabajar? Voy a explicarme un poco.

En 2022 han hecho 15 años desde que tiré mi primera línea de código. Ni siquiera había terminado la secundaria y no tenía muy claro nada de lo que estaba haciendo. Todo el código hecho por esta época está perdido, porque no hacía copias de seguridad de nada y perder carpetas era algo demasiado frecuente en mí por entonces. Por un lado, esto es algo que da un poco de pena debido a que se tratan de las primeras cosas que hice y pueden tener algo de valor simbólico. Por otro… tampoco es que ese valor sea mucho en cualquier caso.

Siempre me he caracterizado por ser una persona cuya forma de trabajar es crear prototipos de cosas, para probar tecnologías, para hacer experimentos, o para crear una maqueta de algo serio que pueda ser explotado más adelante. Estos prototipos siempre se han hecho tirando líneas de código a partir de la nada, en muchas ocasiones con poco diseño y poca arquitectura detrás, allá donde sea posible. En algunos casos, como mucho una pensada a alto nivel y poco más.

Sin embargo, nunca he invertido tiempo de verdad en simplemente sentarme a aprender bases, o a aprender despacio sobre alguna tecnología concreta, con calma y sin intentar tratar de responder desde el principio a la pregunta ¿qué puedo hacer con esto? Cuando llevas demasiado tiempo en esto, la tentación de tratar de buscar usos prácticos para cualquier tecnología desde el primer momento es un riesgo real que puede impedir ver algunas cosas con claridad.

Esto es lo que busco durante 2023, nada más y nada menos. No digo que no vaya a programar cosas fuera de mi trabajo, porque tengo algunos compromisos abiertos que cerrar y algunos incentivos para acabar algunos proyectos que tengo abiertos ahora mismo. Parte de la razón por la que me hice freelance es para poder construir producto propio que pueda distribuir por mi cuenta, y quiero terminar algunas de las ideas en las que he empezado a trabajar.

He guardado ya algunas listas de reproducción, algunos libros y algunos artículos que quiero revisar y mi objetivo es tomar parte del tiempo que de otro modo pasaría programando cosas por mi cuenta y convertirlo en tiempo para aprender con calma durante 2023. Veremos a finales de año cuánto he avanzado con este plan.

Actualizada clave GPG

La clave pública GPG que había subida a mi página de contacto caducaba mañana. Esta clave la uso fundamentalmente para firmar releases en GitHub y otras plataformas, aunque alguna vez he recibido correo firmado y alguna vez hasta correo cifrado.

El mes pasado extendí el periodo de validez por un par de años más pero olvidé actualizar también la subclave de cifrado. Hoy he extendido la fecha de validez y he subido una versión actualizada de la clave. No termino de comprender cómo funciona un keyserver, o si la actualización verdaderamente es efectiva, o qué pasa con las versiones antiguas de la clave, pero en principio he testeado el archivo que hay subido en https://danirod.es/contact/pgp.asc desde otro ordenador y todo está funcionando, así que bien.

La extraña transición de WordPress a un editor de sitios genéricos

Minientrada

Me ocupo de mantener el WordPress que hace funcionar danirod.es actualizado, pero no siempre le presto atención a las novedades. Recientemente, mirando las novedades de WordPress en los últimos 12 meses, me encontré que está despegando una función en WordPress llamada Edición de sitio completa o Full Site Editing.

Esta función permite tratar un sitio web como si fuese un SquareSpace o una de estas páginas web, porque deja editar completamente todos los aspectos del tema, incluyendo los bloques que mostrar en la página de portada o en la página de una entrada. Se basa en la tecnología de Gutenberg, pero llevada más allá para permitir ver todo el sitio web como si fuese una zona editable controlada por bloques. Algunos de estos bloques son los esperables para una plantilla de sitio, como por ejemplo el bloque «Bucle de entradas de blog», el bloque «Título de entrada» o el bloque «Fecha de publicación».

Me estoy ocupando de probar esta nueva función en un sitio de staging y no termino de saber cómo sentirme al respecto. Por un lado, me resulta una forma bastante fresca de ver los temas y que permite modificar todos los aspectos de un sitio web de una forma mucho más clara para que no quede sin tratar ni el último píxel. Sin embargo, por el otro me da un poco de pena que WordPress termine de integrarse en este mundo de páginas web de temas genéricos y superlimpios donde todos los sitios web se ven iguales.

En los últimos años, los temas por defecto se han caracterizado por un diseño más brutalista y tipografías más grandes. Aunque esto genera sitios webs más limpios donde solo hay una columna de texto sin distracciones a los lados, resulta un poco incómodo tener páginas web que griten tanto con esos tamaños de tipografía. Además, incluso en algunos casos considero que un aside en forma de barra lateral le puede dar un poco de personalidad a un blog pequeño e incluso un toque retro, ahora que está de moda que todos los sitios web se vean iguales.

Hasta ahora he intentado usar los temas preinstalados de WordPress de forma intencional, para poder centrarme en el contenido, pero también intentar permitir que el sitio comunicase unas intenciones sin decir nada, simplemente a base de una combinación de colores o widgets de barra lateral. Sin embargo, continúo jugando en un entorno de pruebas para ver si puedo encontrar una combinación bonita pero que a la vez no le quite la personalidad a lo que hago.

Mi workflow con KeePass

Minientrada

Llevo años utiliando KeePass para gestionar las contraseñas de mis sitios web. Mi base de datos tiene a estas alturas probablemente 6 o 7 años y ha sido usada a través de múltiples aplicaciones que son capaces de comprender el formato de la base de datos.

En este momento, la aplicación que utilizo en mis ordenadores para poder acceder a mi base de datos es KeePassXC. Como es multiplataforma, es muy fácil de instalar en todas partes: Windows, Linux, FreeBSD, MacOS… Por otra parte, también he usado aplicaciones para Android en el pasado, y ahora que uso iOS e iPadOS, utilizo KeePassium acceder a las contraseñas ahí.

KeePassium se vuelve mucho más directo y personal, por ejemplo, cuando se activa el desbloqueo con huella o con Face ID, para evitar tener que teclear todo el rato la contraseña. Esto también me resulta práctico si tengo que desbloquear una contraseña en algunos sitios donde no me gustaría que alguien me viese pulsar teclas en la pantalla de mi móvil, como es el transporte público. También soporta integración con el autocompletado de contraseñas nativo de iOS.

No mucha gente sabe que una base de datos de KeePass vale para algo más que para guardar usuarios y contraseñas. Cada entrada de KeePass soporta archivos adjuntos y otro tipo de datos extra, de modo que aquí algunos trucos avanzados que uso en mis bases de datos:

  • Gracias a la función de archivos adjuntos, utilizo mi base de datos de KeePass para guardar otro tipo de cosas que no son contraseñas. Una copia de mis claves SSH, una copia de mi certificado GPG, los PKCS de la administración pública, y el keychain que hace falta para firmar APKs antes de subirlos a la Google Play Store.
  • La función de atributos también es ideal para guardar notas secretas, por ejemplo, con los códigos de un solo uso necesarios para recuperar una cuenta que tenga activo el 2FA en caso de emergencia.
  • Algunas copias de seguridad de archivos sensibles, como el archivo que uso para controlar mis finanzas personales, también lo puedo cargar como adjunto en una entrada de KeePass que no tiene contraseñas ni nada.
  • Es posible utilizar KeePassXC también como proveedor OTP, en vez de aplicaciones del móvil tipo Google Authenticator. Esto lo pongo a prueba constantemente en mi ordenador del trabajo, donde tengo otra base de datos diferente para las cuentas del trabajo, y funciona de forma excelente.
  • Es posible personalizar las carpetas y las entradas con iconos propios. KeePassXC también tiene la opción de descargar automáticamente el favicon de un sitio web para emplear como icono, lo que hace más fácil ubicar una cuenta en una tabla muy grande gracias a que se puede encontrar por el icono.
  • Aparte de crear contraseñas aleatorias y asociarlas automáticamente a nuevas entradas en la base de datos, es posible usar un generador independiente que no está conectado a nada, pero que te deja igualmente copiar la contraseña generada. Empleo esta función bastante en el trabajo para generar contraseñas aleatorias cuando me piden que registre en algunas aplicaciones de intranet cuentas de usuario de otras personas, si luego voy a tener que mandarles una contraseña inicial. Al margen de que se acuerden de cambiarla o no luego, por lo menos es más seguro que iniciarla a 123456.

Dos meses usando Apple Sillicon

Hace un par de meses, me cambiaron el ordenador del trabajo por un modelo más reciente. Cuando me lo renovaron, el modelo que me asignaron era uno de los recientes que utiliza la arquitectura Apple Sillicon y un procesador M1, como el que están usando ya en algunos iPad. Aquí cuento algunas de las cosas buenas y malas que me he encontrado en estos dos meses.

Cosas positivas

Mi opinión está posiblemente sesgada debido a que este ordenador no deja de ser un ordenador de trabajo. No es mío realmente, es prestado y no me pertenece, y tampoco tiene cargado software que no tenga que ver con mi trabajo, así que más allá de editores de textos, entornos de Node.js y otras aplicaciones que necesito para trabajar, no tiene gran cosa. No hay editores de vídeo, no hay juegos, no hay nada de lo que emplearía en un ordenador más personal.

También mis impresiones podrían estar sesgadas por el anterior modelo, que era un 2015, de modo que su procesador ya tiene unos cuantos años y eso puede hacer que algunos programas recientes no vayan tan bien. Y, sin embargo, lo poco que tengo lo veo con un rendimiento bastante bueno. Por hacer una comparación a base de lo que he visto en mi día a día:

  • En mi anterior ordenador tardaba en torno a unos 10 minutos en instalar Ruby a través de rbenv. Para instalar Ruby, rbenv compila Ruby desde el código fuente, así que el proceso de instalación incluye asegurarse de que hay compiladores de C instalados, descargar y compilar OpenSSL, y finalmente descargar y compilar todo el runtime de Ruby. En mi ordenador con Apple Sillicon y procesador M1, esto le toma 3 minutos, o sea, una tercera parte del tiempo.
  • En mi anterior ordenador, ejecutar una suite de tests completa del proyecto con el que más tiempo paso le podía llevar entre 20 y 25 minutos. En el Apple Sillicon, toma de 5 a 6 minutos.

De cara a la parte térmica, en dos meses todavía estoy esperando a escuchar alguna vez el ventilador de mi ordenador. Ni siquiera cuando estoy ejecutando tests más complejos o haciendo operaciones más intensas lo he llegado a escuchar. Alguna vez lo he notado un poco caliente, pero muy poco. Casi ni podría decir que se calienta mucho.

Y de batería, resulta impresionante como puedo estar toda la mañana trabajando con él sin enchufarlo a la red para luego encontrarme la batería al 70% o al 75%. Incluso lanzando servidores, corriendo tests, usando el navegador web, teniendo varias aplicaciones Electron en ejecución o entrando en videollamadas.

En cuanto a compatibilidad, existen varias aplicaciones que todavía son Intel, pero no lo notas, debido a que funcionan igual que una aplicación ARM, sin pérdida de rendimiento. Fundamentalmente, veo esto en aplicaciones Electron, donde usan algunos runtimes antiguos que todavía son Intel y que aún no han actualizado a Sillicon.

Para la línea de comandos también es posible usar binarios Intel si se ejecuta a través del wrapper arch, por ejemplo arch -arch x86_64 terraform para ejecutar una versión x86_64 de Terraform. He elegido Terraform como ejemplo, precisamente, porque algunos plugins que no estén actualizados puede que sólo tengan versión Intel en el registry; así que al final es más conveniente instalar todo Terraform como una aplicación Intel para no llevarse sorpresas cuando un Terraform ARM trata de invocar un plugin que no es compatible.

Cosas negativas

No obstante, no es oro todo lo que reluce, y aquí algunas de las cosas negativas que he encontrado en el M1 en estos meses:

  • Aunque es algo que en los últimos modelos ya están corrigiendo, mi ordenador es de primera generación, de modo que el número máximo de pantallas externas que puedo enchufar por lo general es… una y no más. Reportan que con docks compatibles con DisplayLink es posible usar más de una, pero con un cable USB-C ordinario o con un adaptador genérico HDMI a USB-C, aparte de la pantalla interna sólo se hace posible trabajar con una pantalla a la vez.
  • El único punto donde he encontrado conflictos en la compatibilidad con el procesador es, irónicamente, en línea de comandos. Todavía está pendiente de salir una versión de GCC que tenga soporte real para darwin-arm64, de modo que la única alternativa al clang es utilizar una versión de GCC en modo Intel. Por otra parte, algunas bibliotecas nativas de Node.js tienen problemas para compilar, por lo que al final lo más seguro que encuentro es emplear versiones Intel de Node.js a través de Rosetta. Tengo dos instalaciones de Homebrew, una Intel y otra ARM, por esta razón.
  • Como el procesador es ARM y no Intel, si se usa Docker o Podman se usará también un kernel Linux para ARM dentro del hipervisor, así que hay que tener esto en cuenta si los Dockerfiles no son compatibles o descargan directamente binarios para la arquitectura incorrecta.

Opinión final

No obstante, pese a que lo de que no acepte más de una pantalla en los primeros modelos es una cagada bastante grande, mi resumen general sobre el procesador M1 (y todos los que han venido detrás de él) es que es una tecnología revolucionaria. El M1 ha agitado bastante las bases de los procesadores para ordenadores normales. Quitando algunos modelos de la Surface que pueden tener un buen rendimiento parecido al de un iPad Pro, ARM hasta ahora ha sido visto principalmente como procesador para computación móvil o para ordenadores pequeños como la Raspberry Pi o los Pinebook (1). Sin embargo, para ordenadores normales de escritorio hasta ahora nunca ha habido nada excesivamente sorprendente. El M1 es uno de los primeros procesadores que busca llevar ordenadores con rendimiento equivalente a un Intel a las mesas de trabajo o de entretenimiento. Algunos fabricantes se han empezado a animar. Por ejemplo, Lenovo está preparando el lanzamiento del X13s para este 2022, un portátil general que utiliza Snapdragon que pretende darle algo de vidilla al ecosistema Windows ARM, el cual lleva existiendo varios años sin que esté destacando demasiado por el momento.


(1) En realidad, esta frase está ignorando procesadores ARM como el A64FX, el cual está siendo usado por algunos computadores como el que desde hace un par de años lidera el Top 500.