Entradas

Mostrando entradas de marzo, 2019

MapReduce

Lo que más me agradó del artículo es la forma en la que explica el concepto de MapReduce, así como su funcionalidad, no solamente es una receta de cocina para implementar y entender el modelo de programación. Considero que lo que provocó la necesidad por un modelo que nos permitiera procesar tanta cantidad de datos es algo bastante interesante, ya que no solamente es procesar estos datos de forma rápida, sino también de forma paralela en medida de lo posible y ocultando el desastre que es crear, tener, manejar y mantener este tipo de implementaciones. Tampoco esperaba que para un procesamiento tan pesado de datos se inspirara en un lenguaje funcional ya que siempre me ha parecido más fácil para nosotros y más pesado para la computadora. Sin embargo, es algo bastante obvio por la forma en que lo describe el artículo, basarse en las funciones de Map y Reduce de Lisp que dan origen a sus hermanos en otros lenguajes funcionales como Clojure o Erlang. El modelo que usan para correr

Teaching Concurrency with Erlang

Disfruté mucho del artículo en el sentido de que explica de una forma muy simplificada qué es Erlang y complementa las lecturas pasadas que hemos tenido de este lenguaje de programación, aclarando los temas que igual y no quedaron del todo claros. Creo también que, si bien no hemos programado aún de forma concurrente utilizando Erlang, es una buena opción en el sentido de que simplifica todo el caos que suele ser programar de forma concurrente en otros lenguajes. La verdad es que considero que muchas veces se nos facilita más entender que estamos haciendo en otros lenguajes de programación, porque ya hemos trabajado con ellos y la forma, si bien caótica, en que se implementa la programación concurrente y paralela en ellos, es a lo que ya venimos acostumbrados y tenemos en mente constantemente después de salir de la clase de sistemas operativos. También considero que hay que tomar en cuenta que Erlang es un lenguaje funcional, otra cosa a la que no estamos habituados, ya que sol

Joe Erlang on Erlang

La forma en que Joe Armstrong hizo el acercamiento a la programación paralela me encantó. Además, considero que la forma en que Erlang aborda este problema es algo bastante disruptivo. Considero que la forma en que Joe aborda la forma en que programamos y la forma en que la programación paralela debería ser, comparándola con cómo vivimos y hacemos las cosas en el día a día, es una forma muy práctica y por lo demás sencilla vs como normalmente se programa de forma paralela y cómo se programa en general. Estoy de acuerdo en que es algo irónico y difícil para nosotros mappear en nuestro pensamiento, la forma en la que las threads se comunican. Como él lo dice, es un tanto difícil considerar que comparten la memoria, si nosotros como seres humanos vamos por ahí realizando varias actividades al mismo tiempo de forma natural y además no compartimos una memoria con otros seres humanos. Otra cosa que llamó mi atención es la importancia que le pone al hecho de reducir la dificultad

Código Enigma

Siempre he considerado a Turing como el padre de la computación y lo he admirado bastante, aunque no conocía del todo su historia, sino sus creaciones. Si bien no siempre las películas te cuentan tal cual la historia de lo que sucedió, me gustó mucho esta adaptación porque además de la historia tan interesante, creo que puede inspirar a mucha gente y hacernos dar cuenta de las cosas que están mal con nosotros como sociedad cuando se excluye a la gente por ser diferente. No sabía que Turing había padecido una enfermedad mental, y la forma en que lo muestran en la película, si bien no fue totalmente accurate, lo pone un factor importante para lograr todo lo que logró y mostrando todas las dificultades por las que pasó.   Otra cosa que me dejó sorprendida fue el acercamiento que tomó al problema de criptografía viéndolo como un crucigrama, también la imaginación e ingenio que se requiere para lograr a construir algo que fue la base de las computadoras en las que trabajamos hoy e