Discutiendo sobre el cambio de hora

En base a lo que está pasando con el cambio de hora en Argentina y su aplicación en computadoras con unix o linux, apareció esta nota en el blog de Ricardo Goldberger que incluía un comentario del Buanzo que yo contesté más abajo.

Hoy Ricardo publicó una respuesta de Buanzo en la que dice que la única forma razonable de publicar información en tzdata es hacerlo únicamente cuando se esté totalmente seguro de que la información es cierta.

¿Pero quién tiene que estar seguro y quién se ocupa de que la información segura llegue a tiempo a los equipos?

Por suerte, tanto Buanzo como yo usamos sistemas abiertos con lo cual podemos ocuparnos nosotros mismos y cagarnos en el resto del mundo

Supongamos que Olson y Eggert (a quienes no conozco personalmente, pero los respeto por el laburo que hacen y les tengo aprecio porque hacen un laburo que a mi me sirve sin que yo se los pida o les pague por ello), deciden seguir la recomendación que Buanzo (y otra gente en distintas listas y sitios de seguimiento de bugs) recomienda…

Es más, supongamos que Olson y Eggert viven día y noche pendientes de todos los Boletines Oficiales de todos los países (y divisiones políticas en el caso de los países federales como el nuestro) y aparte entienden todos los idiomas (incluídas las versiones legaleese de cada uno de ellos)… en ese caso, podemo suponer que ayer (jueves 16 de octubre) a la mañana (hora argentina) leyeron el Decreto 1693/2008 en el Boletín Oficial y recién ahí modificaron en el tzdata los datos para este verano para toda la Argentina (es lo que dice el Decreto ese) y lo publicaron.

Eso pone (o debería poner) en marcha las actualizaciones de los paquetes en las distintas distros de unix, linux, etcéteras… Por más crítica que consideremos la hora de nuestros servidores, sospecho que los maintainers del paquete tzdata de cada distro no van a dejar todas sus ocupaciones por un update que no consideren crítico ellos (al menos desde el punto de vista de seguridad/intrusión/etc)… con lo cual, la modificación podría aparecer en los repositorios de cada distro con viento a favor durante la semana que viene… o sea, que a partir de las 0 de este domingo, todos los equipos tendrían mal la hora.

Ahora bien, hoy (17 de octubre, un día peronista) a la mañana, resulta que por suerte Olson y Eggert tampoco tienen nada mejor que hacer que leer el Boletín Oficial de Argentina, se encuentran con el Decreto 1705/2008 que dice que doce provincias no van a aplicar el horario de verano… supongamos que en el medio tuvieron la suerte de no leer el Boletín Oficial de Mendoza de ayer jueves 16 de octubre, donde salió la Ley Provincial N° 7.955 que establece que Mendoza utiliza los husos horarios UTC-03:00 y UTC-04:00 y le deja al Poder Ejecutivo Provincial la elección de cuándo usa cuál (no se gasta en aclarar qué piensan hacer esta misma semana, por ejemplo)…

Entonces hoy agarran y vuelven a modificar los datos y sacan una nueva versión de tzdata… y vuelta a comenzar la ronda de updates en el downstream de cada distro… ¿cuándo estarán listas? ¿hoy a la tarde? ¿mañana? ¿el lunes? (ya nos pasamos de las 0 del 19).

La cuestión es que, sea su potestad o no, mientras las autoridades sigan publicando la información oficial con 30 nanosegundos de anticipación a los hechos, la probabilidad de tener mal los datos, por demoras de implementación o por haber hecho una mala presuposición es significativamente cercana a 1.

La gente que está enojada con alguien más que no sean ellos mismos porque el 5 de octubre les cambió la hora de las máquinas, si las cosas se hubieran hecho como ellos dicen, tendrían mal la hora el próximo domingo. ¿Por qué? Porque, claramente, es gente que delega la observación de los cambios de hora en los maintainers de su distribución, y estos maintainers, al menos una vez, demoraron más de quince días en actualizar esa información desde que la tuvieron disponible.

Si los maitainers del tzdata de la distro que estén usando hubiesen sido suficientemente diligentes, para el 5 de octubre ya habrían tenido distribuido el tzdata2008f que se publicó el 15 de septiembre y que corría la fecha del cambio.

Ahora, en el mundo real, Olson y Eggert trabajan de otra cosa y le dedican el tiempo que pueden o quieren a mantener la base de datos tzdata (y el código que la procesa) actualizados… no sé cuántos idiomas hablan además de inglés, pero sospecho que no están leyendo diariamente el Boletín Oficial de la República Argentina. Entonces dependen de que alguien les pase información, intentan ver cuán razonable es y en base a eso deciden incluir una modificación en algún momento.

Si bien el sistema dista de ser perfecto, al menos tiene un buen punto de referencia que es la lista de correo donde se discuten todas estas cosas en forma pública y abierta.

Cualquiera puede participar por más que (como yo) no conozca el funcionamiento interno del paquete tzdata y apenas entienda el formato de la base de datos e inclusive gente que ni siquiera sabe eso, pero puede participar y dar su opinión acerca de la verosimilitud de una información que les concierne y la razonabilidad de aplicar un cambio o no en la base de datos.

La ventaja adicional de participar es que uno se entera de primera mano cuándo hay una actualización de datos y qué contiene y, en base a eso puede decidir aplicarla antes de que llegue a los repositorios de su distribución o puede decidir no aplicarla porque está en desacuerdo (y evitar hacer la actualización una vez que la actualización llegue a los repositorios de la distro).

De lo que yo me quejaba hace unos días no es de que la base tzdata estuviera mal o que la versión en el repositorio de Ubuntu estuviera desactualizada si no de que yo mismo me dejé estar y no estaba leyendo la lista por lo que no me dí cuenta del primer error (de tener el cambio del primer domingo de octubre) ni de que el mismo se había subsanado (mal para algunos) como para ponerme a romper para que el cambio llegue a mi Ubuntu y si no, de última, actualizarlo yo a mano y listo.

La situación hoy es la siguiente: todos los sistemas operativos que estén con la versión tzdata2008f, g, o h y estén en la Ciudad de Buenos Aires o en las Provincias de Buenos Aires, Córdoba, Chaco, Corrientes, Entre Ríos, Formosa, Misiones, Jujuy, Tucumán o San Luis, tienen la hora bien y la van a cambiar (o no cambiar en el caso de San Luis) bien el próximo domingo (suponiendo que entre los Decretos 1693/2008 y 1705/2008 cubren todo y no hay alguna Provincia que decida no acatarlos).

Quienes estén en las Provincias de La Pampa, Catamarca, Chubut, La Rioja, San Juan, Mendoza, Santa Cruz y Tierra del Fuego deberán hacer algo para que no les cambie la hora este domingo 19 de octubre.

Podrían poner a lo bestia la zona horaria Etc/GMT-3 o utilizar America/Argentina/San_Luis (aunque si miran datos viejos, van a estar mal los relojes entre enero y marzo de 2008 ya que San Luis volvió a UTC-3 antes que el resto del país).

La otra variante es utilizar temporalmente la receta que publiqué ayer y actualicé hoy hasta que se actualice tzdata y esa actualización llegue a cada distribución.

Llamado a la solidaridad

Este es un llamado a la solidaridad para con nuestros sysadmin hermanos de provincias cuyanas y otras del Oeste argentino que, por lo que leí, posiblemente no adhieran al cambio de huso horario el domingo 19 de octubre…

La base de datos de husos horarios al día de hoy (versión 2008h) implementa el cambio de hora en toda la Argentina.

Provincias de CuyoSi esto queda así y, como sospecho, Mendoza y otras provincias no cambian la hora, a las computadoras con unix y linux de estas provincias les pasará lo mismo que nos pasó en todo el país el domingo 5 de octubre.

Es por eso que les pido que si alguien tiene información fidedigna (si es posible con un link a información oficial o de medios de comunicación razonablemente serios), la envíe a la lista de correo timezone o, si lo prefiere, ponga un comentario acá abajo y yo lo mando a la lista.

Auxilio para administradores de sistemas

Escribí en mi wiki un machete con instrucciones para actualizar los datos con la última versión que exista de la base de datos (aunque no haya sido publicada por la distribución unix/linux que estés usando).

¿Qué hora es?

Qué hora son, mi corazón… (Manu Chao)

Hoy (5 de octubre) a la mañana estaba en la compu, miro el relojito arriba a la derecha (era menos laburo que girar la muñeca izquierda y mover la vista en dirección a ella) y veo que son las 12 y pico… por algún motivo no me daba… decido tomarme el laburo y veo que en mi muñeca era justo una hora más temprano… raro… la hora de mi pc se actualiza con un conjunto de servidores de hora utilizando un método que funciona bien (esto incluye que si un par de servidores “se vuelven locos”, el sistema se da cuenta y los ignora).

Me pongo a mirar bien y me doy cuenta de que en realidad, a las 0 horas del domingo 5 mi computadora creyó que había que empezar a usar la “hora de verano” (a 2 horas del meridiano de Greenwhich en lugar de las 3 horas que se usa durante el resto del año).

Me fijo en los mensajes de la lista de correo de la gente que se ocupa de mantener una base de datos que dice qué huso horario se usa en cada lugar y cuándo y veo que ya alguien lo había notado… también veo que en realidad ya había una versión más nueva de la base de datos (publicada el 15 de septiembre) pero como mi sistema operativo todavía no tenía en sus actualizaciones esta versión, yo no la tenía… no es grave… soy lo suficentemente nerd como para bajarla y actualizarla a mano (cosa que hice).

El problema no es ese… el problema es… ¿cambiamos la hora este año? ¿en qué fecha? ¿el 12 de octubre es feriado? ¿y el 13?

Lamentablemente, en Argentina nos hemos acostumbrado al “lo que yo quiero, cuando se me cante” y a esto no son ajenos nuestros gobernantes (ni los de ahora, ni los de antes, ni los de antes de eso)… estamos acostumbrados a que no haya normas y que las excepciones no sean excepcionales, si no a que sean la norma.

Husos horarios

Pero volvamos al tema de la hora… o, más bien del huso horario. La mayor parte de Argentina se encuentra (geográficamente) en el huso horario 4 horas al oeste de Greenwhich (llamado UTC-04:00), y la región que está en otro huso (el centro y oeste de la Patagonia), están a 5 horas (ver el mapa de husos horarios a junio de 2008).

Algunos pocos países (más anchos que Argentina en el sentido Este-Oeste), utilizan más de un huso horario (notablemente Estados Unidos y Rusia, también lo hacen Australia, Brasil y México -que sigue una de las líneas de cambio de hora de Estados Unidos). El resto de los países contiguos (incluída China y la mayor parte de la Unión Europea), utilizan un solo huso horario.

En Argentina, durante muchos años (hasta 1969), se utilizó el huso horario UTC-04:00 y desde 1930 se utilizó (con frecuencia pero sin regularidad) el huso horario UTC-03:00 como “hora de verano”… el tema es que el primer domingo de octubre de 1968, se empezó a usar UTC-03:00 y en algún momento de primavera/verano/otoño entre 1968 y 1969 alguien decidió que había que dejar de cambiar la hora… y nos quedamos en UTC-03:00… Del 23 de enero hasta el 1° de mayo de 1974, volvió a aparecer la “hora de verano” (sospecho que asociada con la “crisis del petróleo”, yo realmente era muy chico en esa época y no me acuerdo)… pero como estábamos en UTC-03:00, la “hora de verano” se convirtió en el huso horario UTC-02:00 que, en nuestras latitudes, corresponde geográficamente al medio del Océano Atlántico.

Reloj extraño
Desde entonces usamos UTC-03:00 y utilizamos la “hora de verano” en UTC-02:00 entre 1988 y 1993… el 21 de septiembre de 1999 se promulgó la Ley 25.155 de Hora Oficial que volvía a UTC-04:00 con “hora de verano” en UTC-03:00 pero nunca se hizo efectiva… en junio de 2001 estuvo a punto de entrar en vigor y finalmente fue anulada por el Congreso.

En el otoño/invierno de 2004 devino el caos federal… Mendoza promulgó el 21 de mayo la Ley Provincial 7.210 que declara la emergencia pública energética en esa provincia y adopta UTC-04:00 como hora oficial entre el 23 de mayo y el 16 de octubre (notar que se promulga la Ley menos de 48 horas antes de tener que hacer el ajuste de los relojes). Las provincias de San Luis, San Juan, Santa Cruz, Chubut, Tierra del Fuego y Tucumán (quizás alguna más que se me escapa) también pasaron a UTC-04:00… luego el gobierno nacional las fue presionando para que volvieran a UTC-03:00 y lo fueron haciendo… cada una en otra fecha… en ese momento intenté conseguir información razonable del Ministerio del Interior y de cada una de las provincias acerca de cuándo se habían producido los cambios (tanto la fecha en que empezaron a usar UTC-04:00 como la fecha en que volvieron a UTC-03:00), pero no conseguí nada.

Finalmente el 26 de diciembre el Senado y Diputados aprobaron (el mismo día) la Ley 26.350 de Hora Oficial que se publicó en el Boletín Oficial el viernes 28 de diciembre (que la inocencia te valga)… esta Ley que está en vigencia estableció que Argentina usa UTC-03:00 y “hora de verano” en UTC-02:00 que comenzaba ese mismo domingo 30 de diciembre de 2007 (una vez más, menos de 48 horas desde la publicación de la Ley) hasta el 16 de marzo de 2008… pero lo peor que tiene la Ley es esto:

ARTICULO — El Poder Ejecutivo nacional fijará anualmente la fecha de iniciación y de terminación del período estival que corresponda.

Es decir… el cambio de hora se hace… ¡Cuando se le cante al/la Presidente!… ni siquiera pone un mecanismo y le da la potestad al Ejecutivo de modificarlo… es por esto que en ese momento se puso el primer domingo de octubre como fecha tentativa del cambio, pero llegamos a ese momento sin definición alguna por parte del Ejecutivo. No sé por qué sospecho que una vez más, la Resolución pertinente veinte minutos antes de tener que hacer el cambio de hora (ahora por suerte no hace falta que las dos cámaras aprueben una Ley)…

La imprevisión permanente

No quiero ponerme a discutir acá si conviene que Argentina use el huso horario UTC-04:00 o UTC-03:00, ni si conviene o no adelantar una hora la hora en verano, ya sea para ahorrar energía, para salir a trabajar con luz de día o para tener una hora más para criticar al Gobierno. Lo que me molesta es que en forma absolutamente innecesaria se manejen cosas que deberían ser triviales con una imprevisión permanente.

Sea cual fuere la decisión que se tome, no se puede cambiar el mecanismo todos los años. En el caso de la hora, nos afecta a los que tenemos responsabilidad sobre la administración de computadoras (pregútentle si no a los reponsables del sitio del Diario Clarín que hoy estuvo todo el día con la hora adelantada), otro caso semejante es el del corrimiento de los feriados… la lista de feriados que se cambian se modifica permanentemente… en un momento se pasaban al lunes más cercano, ahora los de junio son en dos lunes fijos (creo que el primero y el tercero), antes, si caían en fin de semana, no se modificaban… pero el próximo 12 de octubre (que cae domingo) se pasa al lunes 13… Otra vez… no quiero discutir si hay que mover o no los feriados, si el 17 de agosto se mueve y el 25 de mayo no. Lo que quiero es saber con anticipación qué se va a hacer y que se haga lo mismo todos los años (recuerdo que un año se intentó cambiar algo porque justo coincidía con la visita del Emperador de Japón). De este modo, si bien el tema de la movilidad de los feriados es para alentar el turismo, al enterarse 10 días antes de que el 13 de octubre es feriado, la gente no puede utilizarlo para lo que se supone que se quiere hacer.

Escriban una Resolución sobre cómo se hará el cambio de hora todos los años, en octubre y en marzo (o cuando se quiera hacer) y manténganlo. Escriban una Resolución sobre qué feriados se pueden mover, en qué casos y a dónde se mueven y manténganlo.