WordPress vintage

Imagen

Aprovechando que WordPress cumplió 18 años la semana pasada, me he decidido a instalar el clásico tema Default, el que fue el tema por defecto hasta la llegada de los temas “Twenty”.

Por supuesto, Default no es un tema pensado para móviles. No tiene menús integrados (he tenido que traerme la navegación a la sección widgets). Sorprendentemente, se lleva bien con Gutenberg, aunque no tiene soporte para post formats por lo que no puedo marcar una entrada como “Minientrada”, ni como “Estado”, ni como ninguna de esas cosas que vinieron después, ya en la era Twenty, con temas compatibles con móvil, y con un diseño que roza lo brutalista, basado en colores fuertes, pocas decoraciones y tipografías grandes.

Pongo esta captura de pantalla como evidencia por si en algún momento decido regresar a algo un poco más moderno.

En defensa de SQLite

Minientrada

Recientemente en Ruby on Rails incorporaron un cambio que genera un aviso al arrancar la aplicación en modo producción si el driver de base de datos que está configurado es el de SQLite. El aviso se puede desactivar cambiando un flag de configuración en el production.rb para confirmar que no es un accidente, sino una decisión.

You are running SQLite in production, this is generally not recommended.

Debo romper una lanza a favor de SQLite. Tiene sus issues, claro está, pero muchos de ellos pueden entenderse si se lee la documentación técnica.

Por ejemplo, si nunca te has leído su guía sobre tipos de datos y afinidad de columnas probablemente te sorprenda lo blando que es para validar los tipos de datos durante el INSERT (puedes guardar enteros en columnas creadas como VARCHAR, y viceversa).

No vale para todo, pero lo he visto muchas veces en producción en circunstancias en las que tiene sentido que esté en producción, y si está justificado, seguiré defendiéndolo con fuerza como alternativa ligera.

¿Qué hacemos cuando hay conflicto en el Gemfile.lock?

Minientrada

Pues esta es fácil pero como todo en Git nunca aparente. Va a pasar cuando haga cambios al Gemfile en dos ramas a la vez.

git checkout HEAD -- Gemfile.lock

Esto es para traerme el Gemfile.lock que había antes de obtener mi conflicto. Lo importante es que podemos confirmar con un git status que se preserva el Gemfile, así que los cambios en las versiones o librerías siguen ahí.

Si he metido o quitado una dependencia del Gemfile, ahora ejecuto bundle para que se descargue o se retire del lock por encima de la última versión que había en la rama en la que estoy intentando hacer el merge.

Si he actualizado la versión de una dependencia del Gemfile, ahora ejecuto bundle update para que se vuelva a reflejar ese cambio en el lock por encima de la última versión que había en la rama en la que estoy intentando hacer el merge.

La caída de Freenode

Minientrada

Veo estos días la caída de Freenode como quien ve la caída del imperio romano. Cuando empecé a programar, Freenode era el lugar en el que todo proyecto abierto que se precie debía participar. Hoy muchos proyectos ya no están en IRC: migraron a Matrix, Discord o Slack, y los que aún quedan, huyen estos días de FreeNode como gacelas ante los leones.

Nunca me gustó la interfaz de IRC. Siempre tuve miedo de equivocarme y mandarle un mensaje privado a alguien con mi contraseña intentándome comunicar con NickServ. Los modos, las contraseñas en plano, ChanServ. Admito que IRC es de las pocas tecnologías «clásicas» que menos pena me da que desaparezcan.

Portapapeles del sistema y VIM

Minientrada

El registro de Vim + (PLUS) interactúa con el portapapeles del sistema operativo (el que te permite luego hacer Ctrl-V en otra aplicación).

Si hago un yank en Vim poniendo "+ primero (por ejemplo, "+yy para copiar una línea o una selección visual), luego puedo pegarlo en otra aplicación gráfica de macOS con Cmd+V. Es bidireccional, así que puedo pegar del portapapeles del sistema si he copiado de otra app con "+p.

Hasta ahora utilizaba el modo selección y luego ejecutaba !pbcopy para enviarle mi buffer a pbcopy (un comando de terminal de macOS que envía su stdin al portapapeles), pero esto es más cómodo y no me borra el buffer.

Aspiradores y rovers

Estado

Cuando tengo problemas con mi aspirador inteligente mientras estoy fuera de casa empiezo a entender los problemas que tienen los ingenieros de la NASA cuando sus rovers empiezan a hacer cosas raras.

– No, ¿por qué decidió no seguir entrando? ¿Dejé algo de por medio?
– ¿Por qué da vueltas en vez de meterse en la base de recarga?
– ¿Cómo que se volvió a quedar atrapado en la puerta del cuarto de baño?

Notitas de seguridad para WordPress

Minientrada

La extensión Two Factor es un must. WordPress está detrás de ella y es open source, por lo que en principio debería estar libre de chantajes, modo PRO y demás cosas. Hace lo que tiene que hacer: te pide que introduzcas un código de 6 dígitos con una aplicación TOTP que estés utilizando.

Two Factor te desactiva, desafortunadamente, el acceso XML-RPC y el WP-JSON. Hay quien tiene sus concerns y ve bien apagar esas APIs, pero por otra parte yo sí las quiero para poder automatizar cosas con WordPress. Esto lo tengo solucionado con dos cosas:

  • Con la extensión Application Passwords (que deja de ser necesario en WordPress 5.6 porque ya viene preinstalada), se pueden crear passwords especiales para poder crear integraciones con contraseñas aleatorias sin tener que darles nuestra propia contraseña.
  • Este snippet PHP para inhibir el Two Factor cuando se usa una Application Password. (De otro modo, las Application Password también tratarían de pedir un token 2FA, lo cual no es posible al automatizar.)

Recomendaría también extensiones que prevengan ataques por fuerza bruta. La que yo uso inhibe el login si se introduce mal la contraseña varias veces, tanto por wp-login como por XML-RPC. Me quedaría conectarlo con el cortafuegos para bloquear directamente las IPs problemáticas, pero eso es un asunto para otro momento.

El RSS se quiere poner de moda

Enlace

Google tiene planes para integrar un lector RSS en Google Chrome. Podría ser interesante para ver si se pone de moda RSS otra vez. O al menos que los sitios vuelvan a señalizar con la etiqueta de descubrimiento para que los que usamos extensiones podamos capturar el feed.

Hubo una época en la que los navegadores tenían lectores RSS integrados. Internet Explorer, Firefox, hasta Safari. Poco a poco fueron perdiendo esta funcionalidad, siendo Firefox el último en traicionar eliminando los marcadores dinámicos y el botón RSS.

Probando a publicar desde la app de WordPress

Estado

Probando a publicar desde la app de WordPress. Yo es que tampoco pido tanto ya. Algo que me deje publicar sobre la marcha sin fricción. No quiero commits de Git, no quiero contraseñas en un navegador ni tokens 2FA a cada vez que abra el panel. Quiero un botón en la hoja para compartir y con suerte integración con atajos de iOS. 😫