Good and Bad Elixir ➜

Enlace

Super buenos consejos para escribir código Elixir más manejable.

Las funciones con side-effects suelen devolver resultados tipo {:ok, term()} | {:error, term()}. Si estás trabajando con funciones que tienen side-effects, no las conectes con la siguiente función con un pipe. Es mejor tratar los resultados con un case o con un with.

Super de acuerdo en esto. Recuerdo que hace no demasiado me pareció «superapropiado» hacer un fmap monádico en Elixir para poder escribir luego código fancy a lo Haskell:

# Just don't. Not a very smart idea despite what it looks like
def fmap({:ok, x}, f), do: {:ok, f.(x)}
def fmap(whatever, _), do: whatever

def readline(path),
  do:
    File.read(path)
    |> fmap(&String.split(&1, "\n"))
    |> fmap(&Enum.filter(&1, fn line -> line != "" end))

Pero desde que conozco el with, no sólo no me parece necesario sino que oh dios mío por qué pude pensar que esto era buena idea. En caso de que deje de cumplirse con la secuencia de condiciones, with evalúa el bloque completo al valor devuelto por la primera función que salió mal, dejandolo todo más limpio.

def readline(path),
  do:
    with {:ok, contents} <- File.read(path),
         {:ok, lines} <- String.split(contents, "\n"),
         {:ok, trimmed} <- Enum.filter(lines, fn line -> line != "" end) do
      trimmed
    end

Supongo que no será la única epifanía ocurrida en este mundo al conocer la palabra clave with.

Perdiendo cultura

Enlace

Interesante: una buena parte de las películas y audios creados en los años 20 del siglo XX se está perdiendo porque los soportes físicos se están desintegrando, si es que no se han perdido ya.

El problema, tal como cuentan en el documento web que anuncia algunos de los trabajos que el próximo 1 de enero entrará a dominio público (como la versión original en inglés de El Gran Gatsby), es que los historiadores no lo tienen fácil para digitalizar obras que todavía conserven copyright, por lo de los derechos de autor, así que muchos de estos trabajos se acaban perdiendo antes de que puedan ser salvados.

Enlaces (2020-10-04 / 2020-10-10)

Enlace

Cosas que me he encontrado en internet estos días.

Los mayores desafíos de la traducción de cine y series. Algunas entendibles, otras clasificables de crímenes al buen gusto.

Fabricando un detector de mentiras propio de 1927. Hay esqueletos de por medio porque es octubre y porque por qué no.

Hay tres genios en esta grabación: Chuck Berry, John Lennon y el técnico que le apaga el micro a Yoko Ono.

Nadie había usado cintas de cassete con un PC IBM hasta ahora: a pesar de llegar a la vez que los discos flexibles, el PC original soportaba cargar y guardar programas en cintas de casette igual que el resto de ordenadores de su época.

El código autodestructivo oculto en Windows. De ese momento de la historia en el que Microsoft hacía trampas más sucias para quitarse de encima a la competencia.

Enlaces (2020-09-27 / 2020-10-03)

Enlace

Vídeos de YouTube que me han interesado últimamente:

Cosas que he visto últimamente circulando por mi RSS:

Ha reflotado por HN un artículo de 2019 en el que hacen ingeniería inversa a un juego de simulación tipo Sim City hecho en Corea del Norte. A partir del análisis, infieren cosas interesantes sobre el desarrollo tecnológico de Corea del Norte, como el hecho de que Android se ha vuelto un sistema operativo popular en el país, y que incluso existe una cultura local de la piratería informática; aunque lo más probable es que la tecnología realmente proceda de China.

En Nueva York siguen habilitando calles para que los bares instalen sus terrazas durante el invierno. Me estoy acordando ahora de cómo el invierno pasado le ibamos a declarar la guerra a los braserillos de exterior, porque era muy poco ecológico pretender mantener las terrazas en invierno (o al menos por eso recuerdo que me parecía un concepto abominable). Sin embargo, la ciencia cada vez tiene más claro que los aerosoles son un vector de infección importante, así que igual si este invierno queremos hacer vida, resulta necesario seguir buscando estar en espacios al aire libre, como en verano, en vez de estar en interiores rodeados de gente desconocida cuyo estado de salud desconocemos, aunque sea a costa de sacar los abrigos más gordos que tengamos del armario.

Un rando de internet ha conocido esta semana el precio de los 15 minutos de fama cuando reveló en Twitter y YouTube que ha logrado recompilar Windows XP y Windows 2003 a partir de las fuentes que se filtraron la semana pasada, ganando internet por un día. Los vídeos no duraron mucho, porque han recibido un DMCA de Microsoft y ahora están dados de baja. En el momento de escribir esto, su cuenta de Twitter está protegida, así que asumo que la cosa no ha ido bien.