Un año más, llega el día internacional de la copia de seguridad

Hoy, como cada 31 de marzo, se celebra el día de la copia de seguridad.

Así que ya sabéis qué hacer:

Coda

Revisando mis archivos, vi que ya hablé del asunto en 2015, 2017, 2023 y 2024.

Otra coda

Creo que alguna vez lo comenté, pero uso syncthing para mantener sincronizado (y replicado) mi contenido más importante entre mi ordenador de sobremesa, el portátil y el servidor doméstico (que está encendido 24/7).

De H3, Z3 y R2 al "vibe coding" pasando por algunos asuntos más

Uber ha desarrollado H3, una retícula global de hexágonos para georeferenciar puntos y objetos. Cada hexágono tiene asociado un único ID y el sistema está concebido para poder correr de manera eficiente los algoritmos habituales: vecinos próximos, ruta más corta, etc.

OpenTimes es un sistema para mostrar el tiempo de viaje (en distintos medios) entre ubicaciones de EEUU. Tiene precalculados los miles de millones de valores de la correspondiente matriz y lo particular de la cosa es que almacena y sirve los datos desde R2, un sistema de Cloudfare similar al archiconocido S3 de Amazon pero orientado a la distribución eficiente de información para aplicaciones web.

Isosemanas

Muchos fenómenos tienen una periodicidad intrínsecamente semanal (p.e., el tráfico). Eso puede motivar el uso la semana como unidad temporal de referencia en determinados análisis en lugar del mes o el día.

Existe gente que tal vez no esté al tanto de que existe un estándar ISO para definir y representar las semanas sin ambigüedad, el ISO 8601. Sus principales características son

  • Las isosemanas comienzan el lunes y terminan el domingo.
  • La primera isosemana del año es la que contiene el primer jueves del año.
  • Un año contiene típicamente 52 isosemanas, aunque algunos (entre ellos, 1903, 1908, 1914, 1920, 1925, 1931, 1936, 1942, 1948, 1953, 1959, 1964, 1970, 1976, 1981, 1987, 1992, 1998, 2004, 2009, 2015, 2020, 2026, 2032, 2037, 2043, 2048, 2054, 2060, 2065, 2071, 2076, 2082, 2088, 2093, 2099) contienen 53.
  • Las isosemanas se representan con el formato YYYY-Www (e.g., 2025-W10 para la décima semana de 2025)

Hoy en día no merece la pena que indique cómo calcular ni manipular isosemanas en los lenguajes de programación más usuales: casi cualquier LLM lo sabe y lo puede ayudar a uno a crear funciones como

Varios asuntos relacionados con la causalidad

I.

Tiene Andrew Gelman una entrada en su blog, Rubinism: separating the causal model from the Bayesian data analysis, que es, según se mire, relevante o trivial. Esencialmente distingue entre el RCM (modelo causal de Rubin) y el análisis bayesiano (de datos):

  • El RCM (o modelo de los efectos potenciales en inferencia causal) lo resume como un modelo en el que se entiende que los datos proceden de una muestra en la que, en el mejor de los casos, se ha visto el efecto de un tratamiento dado en cada sujeto.
  • El análisis bayesiano como un marco más amplio que puede servir para analizar el RCM (aunque hay alternativas) o para otras cuestiones.

A todo esto, el RCM se llama también modelo de Neyman-Rubin. Neyman (el de los intervalos de confianza) introdujo una versión limitada del modelo en su tesis de maestría de 1923 y muchos años después, en los 70, Donald Rubin lo extendió y generalizó en una serie de artículos como este.

¿Por qué seleccionar "el mejor" modelo?

Tiene Ripley, el gran Ripley, un artículo de hace 20 años titulado Selecting Amongst Large Classes of Models donde discute la cuestión —la del título de esta entrada— y dice:

Deberíamos preguntarnos por qué queremos seleccionar un modelo. Parece ser un error extendido que la selección de modelos trata de “seleccionar el mejor modelo”. Si buscamos un modelo explicativo, deberíamos tener presente que puede haber varios modelos explicativos (aproximadamente) igual de buenos: lo aprendí de David Cox cuando era un profesor novato en el Imperial College tras haber hecho muchas selecciones informales de modelos en problemas aplicados en los que me hubiera resultado útil haber podido presentar soluciones alternativas.

¿Acabaremos programando todos en ensamblador?

Un lenguaje de programación es un lenguaje que media entre el que nos es familiar a los humanos y el que reconocen las computadoras. Los lenguajes de alto nivel nos resultan más cómodos; los de bajo nivel, más crípticos. Todos conocemos, pienso, el trade-off.

Ahora todo el mundo programa en Python. Pero los hay que lo hacen de una manera rara:

Hay un nuevo tipo de programaciónn que llamo [Andrej Karpathy] “programación de vibraciones”, en la que te entregas por completo a las vibraciones, adoptas exponenciales y te olvidas de que el código existe. Es posible porque los LLM (por ejemplo, Cursor Composer con Sonnet) se están volviendo demasiado buenos. Además, solo hablo con Composer con SuperWhisper, por lo que apenas toco el teclado. Pido las cosas más tontas como “reducir el relleno en la barra lateral a la mitad” porque soy demasiado vago para buscarlo. “Acepto todo” siempre, ya no leo los diffs. Cuando recibo mensajes de error, simplemente los copio y pego sin comentarios; generalmente, eso lo soluciona. El código crece más allá de mi comprensión habitual, tendría que leerlo realmente durante un tiempo. A veces, los LLM no pueden corregir un error, así que simplemente busco alternativas o pido cambios aleatorios hasta que desaparece. No está tan mal para proyectos de fin de semana intrascendentes, pero sigue siendo bastante divertido. Estoy desarrollando un proyecto o una aplicación web, pero en realidad no es programación: solo veo cosas, digo cosas, ejecuto cosas y copio y pego cosas, y en general funciona.

Modelos gratuitos en OpenRouter y algunos asuntos más

Las dos noticias del siglo de la semana en el mundo de los LLMs:

Aquí, The Economist argumenta que los LLMs no nos igualarán sino lo contrario, que contribuirá a separar aún más el desempeño socioeconómico de los individuos en función de su capacidades cognitivas (separate the best from the rest, en su formulación original).

Adiós, Análisis y Decisión

Escribí en 2016:

Corría el año 2009 cuando comencé mi segunda aventura bloguera (nadie, yo incluido, quiere rememorar la primera) cuando Raúl Vaquerizo tuvo la caridad de aceptarme como colaborador en Análisis y Decisión.

En diciembre de aquel año escribí cómo utilizar R en una cosa que entonces comenzaba a sonar: la nube y, en concreto, el servicio EC2 de Amazon.

El resultado, probablemente totalmente desfasado, fue este.

Material de hemeroteca, alimento de melancolías.

La recurrente vuelta de la frenología y algunos asuntos más

En A Conversation with Sir David Cox se lee:

Reid: Me gustaría preguntarle sobre su trabajo al principio de su carrera en la Wool Industries Research Association. ¿Qué tipo de lugar era y qué tipo de puesto tenía usted allí?

Cox: Bueno, Henry Daniels lo ha descrito un poco en una entrevista reciente (Whittle, 1993). Era un tipo de organización muy común en el Reino Unido en ese momento, financiada por el gobierno y por dinero obtenido de un impuesto al sector, para realizar investigaciones básicas sobre problemas relacionados con la industria; y en ese momento tenía un director extraordinario que simplemente tenía la idea de contratar a personas y, en gran medida, dejarlas trabajar por su cuenta, con su apoyo. […]