Sobre el Copilot y lo de repetir código

Minientrada

No estoy siguiendo mucho el tema de GitHub Copilot más allá sobre los memes que ya se han hecho, así que tampoco puedo contar nada innovador.

A los programadores nos encanta soltar siglas para todo. Una de ellas es DRY: do not repeat yourself. Resolver continuamente los mismos problemas y reescribir el mismo código es absurdo porque provoca código complicado de mantener. El código debería ser reusable.

Excepto que no todo el código acaba siendo fácil de reutilizar. O, al menos, puede ser bastante excéntrico tratar de reutilizar cierto código. Crear librerías de funciones útiles que hagan las cosas sencillas pero que la librería estandar de nuestro lenguaje de programación no nos proporcione, o marcarse un Node.js y tener un ecosistema lleno de paquetes monofuncionales (en el sentido más literal de la palabra) para hacer cosas como comprobar si un array está vacío, si un número es par, o para introducir espacios en una palabra.

«¿Un paquete para crear un array de N posiciones en JavaScript? Eso es absurdo». Posiblemente. El zero-dependency es un estilo de vida, y en el caso de lenguajes como JavaScript, reducir el número de dependencias en el package.json no le viene nada mal a la mayoría de paquetes. Pero probablemente para la mayoría de estas funciones, no puedas escribirlas de tirón sin tener que entrar en Google a buscar en Stack Overflow, y a veces no tenemos tiempo ni de buscar en Stack Overflow.

Es aquí donde creo que las IAs de este estilo podrían tener potencial. No me hagas cambiar de ventana para buscar en internet cómo hacer X en Y, perder tiempo consultando la segunda respuesta porque la primera no aplica, luego la segunda pregunta porque la primera no contiene las respuesta que me interesa… En su lugar, deja que le diga al ordenador en palabras propias qué pretendo hacer y que me genere código sin levantar los dedos del teclado. O deja que automatice el código más aburrido y repetitivo de escribir para ahorrarme tiempo.

Existen razones por las cuales ni quiero pedir acceso a la beta de GitHub Copilot, pero de usarlo, se me ocurrirían casos de uso interesantes que de otro modo tendría que resolver perdiendo tiempo para escribir la función o buscando en internet, como por ejemplo:

  • Dado este array asociativo de objetos ({item1: { k1: v1, k2: v2 }, item2: { k1: v3, k2: v4 }}), fabrica un índice inverso a partir del campo k2 de cada item del array asociativo.
  • Fabrica un array con integers monotónicamente crecientes ([0, 1, 2, 3, 4...]). La IA generaría algo como Array(40).fill(0).map((_, i) => i).
  • Haz una función que valide un e-mail (¿te sabes la regex de memoria sin buscar en internet? ¿te sabes los mil millones de casos edge que tiene el RFC de las direcciones de e-mail?).

Parafraseándome a mí mismo en Twitter hace unos días,

Si programas en Java llevas pudiendo hacer clic para que el ordenador te genere los getters y los setters de tus clases desde hace décadas. Esto podría revalorizar el análisis y el diseño y dejar al ordenador que rellene specs. Imagina escribir un TDD y que el IDE lo rellene.

Trabajar en los procedimientos más complejos y reales y en la lógica de negocio que requiere intervención humana con el tiempo que gano cuando al pulsar un botón me rellena los métodos chorra tipo «buscar X en este array»? Lo compro. Y eso que no espero usar este producto.

@makigas

No se admitirán devoluciones

Minientrada

Hace mucho que no opino mal, pero siempre es un buen momento para romper la racha. Como siempre, yo escribo para desahogar, los demás leen bajo su propio riesgo.

Ayer se abrió un precedente peligroso. De todos los atropellos y situaciones «fuera de lo normal» que venimos viendo en este país en los últimos tiempos, no termino de comprender por qué tenemos que tragar y asimilar como normal que a ciertas personas se les trate por encima de lo que las leyes más básicas y esenciales del país establecen.

No se admitirán devoluciones: próximamente serán los del bando contrario los que vengan con excentricidades que posiblemente suenen fuera de la ley, o como mínimo de naturaleza cuestionable también. No valen llantos. Si vamos a abrir este tipo de melones, aquí va a haber melón para todos.

Twitch y product placement

Minientrada

Últimamente consumo más contenido en streaming por Twitch. Rellena acústicamente mientras trabajo o hago otras cosas. No necesito prestarle atención, solo necesito que esté ahí.

Pero no puedo evitar advertir que Twitch tiene algunas carencias graves en algunos aspectos, y uno de ellos es el de declarar el product placement.

Hace unas semanas, Tom Scott publicaba un vídeo que roza la obra maestra donde se cuestiona por qué se han fabricado leyes adhoc a plataformas como Instagram o YouTube, en las que se exige a influencers que declaren en la descripción o en el vídeo que su contenido tiene contenido promocional. Estas leyes no afectan a televisión, cine y música.

En Twitch, bastantes canales de gaming tienen logos en pantalla de marcas que se van alternando, de fabricantes de componentes de ordenadores, tarjetas gráficas, bebidas energéticas… A veces alguna referencia a alguno de estos patrocinadores… y aunque a título personal a mi me da igual, y en el fondo estoy de acuerdo con Tom en que es absurdo legislar exclusivamente el área online mientras se hace la vista gorda con otros sectores que también mueven dinero, pero me pregunto cuánto tardarán en legislar Twitch también.

Seguimos sin datos de COVID los fines de semana, oh no

Minientrada

Copia archivada de la web sobre la situación actual del Nuevo Coronavirus del Ministerio de Sanidad en la medianoche entre el domingo 1 y el lunes 2 de noviembre de 2020:

ATENCIÓN: Dada la evolución epidemiológica en nuestro país, la siguiente publicación de datos se producirá el lunes.

Esa frase lleva lo menos 3 meses puesta en la web. Ni que hayamos vuelto a declarar un estado de alarma hace poco.

Al menos se podrían dignar a cambiar el mensaje con la excusa por la que el Ministerio de Sanidad no publica resultados los fines de semana… en el informe del viernes había 3 comunidades con una IA por encima de 1000 casos por 100.000. La incidencia nacional está en 485. Uno se pregunta cuál debe ser la evolución para que vuelvan a reportar información los fines de semana.

Hasta la Comunidad de Madrid ha regresado a lo de publicar informes durante fines de semana y festivos… (rant posiblemente relacionado).

Disciplina social

Enlace

Bravísimo Pedro el otro día pidiendo disciplina social a la ciudadanía. Del salimos más fuertes y del «el virus está derrotado, ahora hay que salir a celebrarlo» a sacar la zapatilla y amenazar con lo peor si no nos empezamos a portar bien.

Me pregunto si le habrá pedido disciplina social a la presidenta del Gobierno Balear cuando fue pillada un miércoles por la noche por la policía en un bar fuera del horario permitido por las restricciones.

El huso horario que nos corresponda

Minientrada

En este fin de semana toca el último domingo del mes de octubre, así que atrasaremos los relojes una hora en la madrugada del sábado al domingo.

No tengo muy claro si este año, al tocar justo a la vez que el inicio de la ola 2-bis de COVID, habrá tanto debate como en anteriores años, o si nos perderemos este año los comentarios que no faltan cada vez que pasa esto:

  • Este no es el huso horario que nos corresponde.
  • ¿Es que nadie piensa en el reloj biológico?
  • ¿Es que nadie piensa en las horas de sol?

España no está en el huso horario que geográficamente le corresponde. Esto es un hecho. Se adoptó la hora de Europa central en marzo de 1940 y desde ahí ha estado desde entonces. Normalmente, cada año por estas fechas los medios y las redes inician el debate sobre si deberíamos plantearnos adoptar de nuevo la franja horaria original o no.

En lo que a mí respecta, soy pro-horas solares como es previsible. Hoy día me molesta menos terminar de trabajar a las seis y que ya sea de noche porque aprendí el año pasado el truco de hacer vida solar al aire libre a primera hora de la mañana y no entrar a trabajar muy pronto.

Aun así, no estoy dispuesto a aceptar un cambio de huso horario si no se ataja antes el verdadero mal de este país: sus horarios. ¿Quieres que amanezca y anochezca a la misma hora de reloj a la que lo hace en otros países europeos con nuestro mismo huso? Pues a mí me gustaría entonces que también coincida la hora de reloj para otras cosas.

Armonicemos de una vez los horarios de trabajo para que salir de trabajar entre las 17 y las 18 sea lo normal y no un privilegio para algunos tipos de trabajo. Normalicemos lo de comer antes de las 14 horas. Paremos la aberración de desayunar a las 10.

Sólo entonces tendrá sentido iniciar el debate de si huso horario +1 sí o no. Aunque para entonces, aviso que luego no querré lloros cuando en verano a las 5:00 en la meseta central haya luz.

Mal de muchos, consuelo de tontos

Minientrada

EDIT: Este post ha sido actualizado después de ser publicado porque el Ministerio ha publicado datos a última hora de la tarde. De cualquier modo, Madrid no ha reportado datos hoy. Teniendo en cuenta que esta información es la que se usa luego para declarar restricciones y planes, ir a ciegas no es lo mejor que podamos hacer.

Hola, buenas. Hemos llegado a un acuerdo con el virus para que se vaya de puente. Por eso hoy, aunque sea lunes, no es necesario que el Ministerio de Sanidad o la Comunidad de Madrid actualicen sus informes de situación diarios de la COVID-19. Vamos a estar casi 100 horas sin datos oficiales hasta el martes.

Por las noticias de Europa, ya no somos el peor país de la Unión Europea. Ya nos adelantan países como Holanda o la República Checa, y nuestra incidencia ha bajado en las últimas dos semanas. Así que supongo que nos lo podemos permitir, porque ya no debemos estar tan mal. Aunque en los últimos informes se hayan venido sumando 100 muertos por día. (Podéis convertirlo a accidentes aéreos si tenéis estómago). Mal de muchos, consuelo de tontos.

Aerosoles y la excepción de usar mascarilla en el puesto de trabajo

Minientrada

Al menos en la Comunidad de Madrid, uno de los supuestos casos en los que no es obligatorio el uso de mascarilla es cuando se está sentado en el puesto de trabajo habiendo distancia de seguridad con otros empleados y usuarios:

4. La obligación de uso de mascarilla no será exigible en los siguientes casos:

f) En los centros de trabajo exclusivamente cuando los trabajadores permanezcansentados en su puesto de trabajo siempre que se pueda garantizar la distancia deseguridad interpersonal de, al menos, 1,5 metros con otros trabajadores y/o usuarios de las instalaciones.

Artículo 1 de la Orden 920/2020 del 28 de julio (PDF).

La ciencia sigue avanzando en la dirección de que la COVID-19 se propaga mediante aerosoles, incluso aunque se cumpla la distancia de seguridad. De ser así, me pregunto si en algún momento se plantearán modificar las normativas en las que haya una excepción similar a esta para empezar a obligar su uso en interiores. Si la tesis del aerosol es cierta, estar en tu puesto de trabajo sin nadie cerca no te libra de emitir aerosoles. En las oficinas con peores sistemas de ventilación podría ser un peligro.

Dejavú

Enlace

Tengo miedo.

El postureo de la privacidad

Minientrada

Parecía que con la marcha de Reino Unido de la Unión Europea, nos ibamos a librar por un tiempo de propuestas de ley que restrinjan la privacidad en el cifrado de datos. Pero un artículo publicado en la web de la EFF sugiere que Europa estaría preparando una posición pública al respecto del cifrado de las comunicaciones, y que no sería precisamente favorable.

In late September, Statewatch published a note, now being circulated by the current EU German Presidency, called “Security through encryption and security despite encryption”, encouraging the EU’s member states to agree to a new EU position on encryption in the final weeks of 2020.

While conceding that “the weakening of encryption by any means (including backdoors) is not a desirable option”, the Presidency’s note also positively quoted an EU Counter-Terrorism Coordinator (CTC) paper from May (obtained and made available by German digital rights news site NetzPolitik.org), which calls for what it calls a “front-door”—a “legal framework that would allow lawful access to encrypted data for law enforcement without dictating technical solutions for providers and technology companies”.

Lejos de querer distanciarse de la posición de Estados Unidos o China, parece que al final Europa quiere ser como el resto y declarar su particular guerra a las matemáticas, incluso después de haber puesto leyes tan complejas y extrañas para proteger la privacidad de sus ciudadanos en los últimos 10 años como la famosa ley de cookies o la ley GDPR. ¿Resultará que al final lo de la privacidad es un postureo?

¿Habrá correlación con esa inquietante obsesión que ha adquirido ahora el gobierno español con intentar hacer redes como WhatsApp o Telegram interoperables, o que cedan a ser usadas para enviar mensajes de emergencia pública (en vez de usar la función de difusión de celda que todos los teléfonos inteligentes tienen de forma nativa sin depender de aplicaciones concretas…)?