Jax

Más allá del "software" libre y algunos asuntos más

  1. Últimamente, casi siempre que se usan las palabras tecnología y enseñanza en una misma frase es para denunciar los perniciosos efectos de la primera en la segunda. No obstante, aquí_ se señala una de sus potenciales atractivos: adecuadamente usada, podría permitir gestionar la varianza (por no usar el término tabú, desigualdad), en el desempeño escolar.
  2. En Stan’s autodiff is 4x faster than JAX on CPU but 5x slower on GPU (in one eval) se ponen en cuestión “leyes de la naturaleza/informática” que no son otra cosa que generalizaciones. Va por casos. Doy fe.
  3. Uno de los problemas de las licencias de abiertas es que, por diseño, olvidan una dimensión muy importante del desarrollo de código: hay gente que vive de eso (véase, por ejemplo, Free as in Do as Your Told). Un nuevo tipo de licencia, la fair source, quiere remediar el problema. En resumen, es un tipo de licencia privativa que deviene automáticamente abierta al cabo de un tiempo razonable.
  4. Otro de los problemas que ocurren (a veces) al desarrollar software libre: que tus dependencias pueden quedar huérfanas, como aquí
  5. Xata ofrece alojamiento para instancias de Postgres que cuenta con un segmento gratuito (free tier). Aquí describen la solución tecnológica y el impacto económico de ese servicio (en concreto, de cómo usan lo uno para minimizar lo otro).

Números aleatorios, estado interno y su relación con el paralelismo

I.

En primer lugar, no voy a hablar de números aleatorios sino seudoaleatorios. Resumiéndolo todo mucho, un generador de números seudoaleatorios (PRNG en lo que sigue) es una función que a partir de una secuencia fácilmente adivinable (p.e., 0, 1, 2,…) genera otra de números con apariencia aleatoria.

Los números de la secuencia adivinable constituirían los distintos estados del PRNG. En R, Python y otros lenguajes populares, el generador de números aleatorios hace dos cosas: generar un número aleatorio y actualizar el estado.