Aquí pongo las cosas que no dan para un post pero quiero conservar y compartir.

Lectura:

Lectura:

Videos:

Misc:

Hace una semana di un “workshop” en la empresa donde trabajo sobre Redis. Fue poco más de una hora. Es muy básico, con un poco de conocimiento en bases de datos relacionales debería ser bastante sencillo tener una idea básica de Redis.

Lo subí para compartirlo con los asistentes. Si sabes un poco de Redis puede serte útil para dar tú el “workshop”.

Redis Training

Lectura:

Misc:

Lectura:

Videos:

Lectura:

Videos:

Misc:

Lectura:

Videos:

En desarrollo de software se utiliza el término “buenas prácticas” para denominar al conjunto de técnicas necesarias para llevar a cabo con éxito un proyecto de software.

He estado pensando en la naturaleza de las “buenas prácticas”. En una discusión técnica es un término que no aporta nada. Al igual que ocurre con los términos “importante”, “urgente” el añadir “buenas” delante de “prácticas” es altamente subjetivo. Por sí mismo no tiene ninguna validez, asignar a una “práctica” el atributo de “buena” no cambia la práctica.

Depende de la experiencia y el foco de cada desarrollador podrá pensar en una serie de “buenas prácticas” imprescindibles para el proyecto. ¿Pero el proyecto de software tendrá más éxito cuantas más “buenas prácticas” adoptemos? No. Adoptar “buenas prácticas” por adoptarlas no tiene sentido, muchas quizá no apliquen al contexto, otras no aportaran mejoras y otras tendrán aporte negativo.

Las prácticas tendrán -adaptadas para un proyecto particular- un aporte positivo o negativo. El aporte podrá ser compuesto o exponencial (asimétrico).

Lectura:

Videos:

Misc:

Lectura:

Videos:

Misc:

Lectura:

Videos:

Misc:

El monkey patching trae problemas pero estaba mirando por curiosidad como hacerlo en Lisp. Un ejemplo, que el símbolo de sumar reste:

1 ]=> (define (+ . args-list)
  (apply - args-list))

;Value: +

1 ]=> (+ 1 1)

;Value: 0

Lectura:

Misc:

Structure and Interpretation of Computer Program es un libro “clásico” de la informática. La primera edición es de 1985. Se usaba para enseñar a programar en el MIT. Aunque algunos lo consideran obsoleto y favorecen otros libros como How to Design Programs.

Son 5 capítulos, he acabado el primero.

  • Me parece un libro terrible para aprender a programar si lo que se quiere es programar.
  • Las matemáticas necesarias no son de un gran alto nivel aunque sí se necesita una base mínima.
  • Si ya sabes programar (como es mi caso) pero no tienes una gran “madurez matemática” el reto de los ejercicios es la parte matemática y no la parte de programación.
  • Introduce conceptos generales de los lenguajes de programación que ya conocía pero verlos de forma aislada, con tiempo, y sin aplicación práctica es un ejercicio fabuloso.
  • Las dudas (y los ejercicios) están resueltas en Internet.
  • Lips y derivados (Scheme en este caso) son interesantes e intuitivos.
  • Está orientado a estudiantes de ingeniería tradicionales cuando quizá no había ni facultades de informática. Conocimientos fuertes en cálculo.

Hay una frase de Taleb que dice:

When you use a ruler to measure the table, you are also using the table to measure the ruler.

Me venía mucho a la cabeza por esa dualidad programación-matemáticas.

Mi motivación para empezar con este libro era aproximarme a la computación desde un punto de vista más cercano a la academia.

Lectura:

Videos:

Misc:

Lectura:

Videos:

Misc:

Últimamente me he estado interesando por los sistemas operativos ya que supone una oportunidad para usar lenguajes de “bajo nivel” (si aceptamos C como lenguaje de bajo nivel). Empecé un curso de Linux y me di cuenta que había muchas cosas que no sabía sobre el funcionamiento de los sistemas operativos. Descubrí Xv6. Es un sistema operativo mínimo que se puede virtualizar con QEMU. Es más sencillo que MINIX y de kernel monolítico. Tiene un manual donde explica en 100 páginas el funcionamiento del sistema. El código es C y es sencillo.

Aproveché también para pasar re-escribir algunas de las GNU core utils para xv6. Hay varios forks y proyectos con modificaciones/extensiones (GUI, en otras arquitecturas…) que resultan más sencillas de explorar que proyectos reales.

No estoy 100% seguro pero uno de los profesores detrás de Xv6 es Robert Morris que es el “precursor” de los virus con El gusano morris.

Lista de enlaces sobre el contenido que me ha gustado/recomiendo/provoca-interés durante el mes. Hay partes que he consumido superficialmente, otras al completo y otras no pueden ser consumidas (Misc). He cogido la idea de la newsletter de Gwern.

Lectura:

Videos:

Misc: