<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Angel "Java" Lopez : MapReduce</title><link>http://msmvps.com/blogs/lopez/archive/tags/MapReduce/default.aspx</link><description>Tags: MapReduce</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Code Katas en JavaScript/Node.js usando TDD</title><link>http://msmvps.com/blogs/lopez/archive/2013/01/14/code_2D00_katas_2D00_in_2D00_javascriptnode_2D00_js_2D00_using_2D00_tdd.aspx</link><pubDate>Mon, 14 Jan 2013 09:23:26 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1822588</guid><dc:creator>lopez</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1822588</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2013/01/14/code_2D00_katas_2D00_in_2D00_javascriptnode_2D00_js_2D00_using_2D00_tdd.aspx#comments</comments><description>&lt;p&gt;En estas semanas pasadas, he estado trabajando en ejemplos y módulos JavaScript/Node.js, usando TDD en cada paso. Practicar, practicar, practicar, el camino a la maestría.&lt;/p&gt;  &lt;p&gt;Pueden ver mi progreso y revisar los commits que hago ante cada test. Lo que sigue es un resumen de este trabajo:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://github.com/ajlopez/CobolScript"&gt;CobolScript&lt;/a&gt;: &lt;a href="http://msmvps.com/blogs/lopez/archive/tags/COBOL/default.aspx"&gt;Ver mis posts&lt;/a&gt; un implementación de compilador de COBOL a JavaScript, con ejemplos de consola &lt;a href="https://github.com/ajlopez/SimpleWeb/tree/master/samples/customers"&gt; ejemplo web&lt;/a&gt;, usando MySQL y &lt;a href="http://github.com/ajlopez/SimpleWeb"&gt;SimpleWeb&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://ajlopez.com/images/articles2/cobs09.png" alt="" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="https://github.com/ajlopez/SimplePipes"&gt;SimplePipes&lt;/a&gt;: Una manera de definir pasaje de mensajes usando ‘pipes’ para conectar diferentes nodes/funciones en un grafo. Quiero extenderlo para que tenga proceso distribuido.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://github.com/ajlopez/SimpleBoggle"&gt;SimpleBoggle&lt;/a&gt;: Un programa que resuelve &lt;a href="http://en.wikipedia.org/wiki/Boggle"&gt;un tablero de Boggle&lt;/a&gt;, juega mejor que yo! Ver &lt;a href="https://github.com/ajlopez/SimpleBoggle/tree/master/samples/findwords"&gt;ejemplo de consola&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://github.com/ajlopez/SimpleMemolap"&gt;SimpleMemolap&lt;/a&gt;: procesamiento tipo OLAP multidimensional, pero usando un modelo en memoria. Hay &lt;a href="https://github.com/ajlopez/SimpleWeb/tree/master/samples/customers"&gt;ejemplo web&lt;/a&gt; que usa mi &lt;a href="https://github.com/ajlopez/SimpleWeb"&gt;SimpleWeb&lt;/a&gt; (“dog fooding”):&lt;/p&gt;  &lt;p&gt;&lt;img src="http://ajlopez.com/images/articles2/smemo02.png" alt="" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="https://github.com/ajlopez/SimpleChess"&gt;SimpleChess&lt;/a&gt;: En progreso, define un tablero usando &lt;a href="https://github.com/ajlopez/SimpleBoard"&gt;SimpleBoard&lt;/a&gt;, y ya calcula movidas. Estoy también trabajando en &lt;a href="https://github.com/ajlopez/SimpleGo"&gt;SimpleGo&lt;/a&gt;, para tener un tablero, un juego y evaluadores.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://github.com/ajlopez/SimpleRules"&gt;SimpleRules&lt;/a&gt;: Motor de reglas&amp;#160; “forward-chaining”, hacia adelante (ahora que está de nuevo “de moda” la programación reactiva. Trabaja inspirada en algoritmo RETE-2, detectando los cambios de estado para disparar las acciones apropiadas.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://api.viglink.com/api/click?format=go&amp;amp;key=cdee124b11d6baacda6c3e29b12e23dc&amp;amp;loc=http%3A%2F%2Fajlopez.wordpress.com%2F&amp;amp;v=1&amp;amp;libid=1358011009888&amp;amp;out=https%3A%2F%2Fgithub.com%2Fajlopez%2FSimpleScript&amp;amp;title=Angel%20%5C%E2%80%9DJava%5C%E2%80%9D%20Lopez%20on%20Blog&amp;amp;txt=repo&amp;amp;jsonp=vglnk_jsonp_13580115836212"&gt;SimpleScript&lt;/a&gt;: Ver &lt;a href="http://msmvps.com/blogs/lopez/archive/2013/01/03/simplescript-1-primeras-ideas.aspx"&gt;mi post&lt;/a&gt; con las primeras ideas sobre este lenguaje, que compila a JavaScript, trabajo en progreso.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://github.com/ajlopez/Py2Script"&gt;Py2Script&lt;/a&gt;: Compilador de Python a JavaScript, primeros pasos.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://github.com/ajlopez/SimpleWeb"&gt;SimpleWeb&lt;/a&gt;: Una capa de “middleware”, a la Connect, con un ejemplo web:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://ajlopez.com/images/articles2/simpleweb02.png" alt="" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="https://github.com/ajlopez/BasicScript"&gt;BasicScript&lt;/a&gt;: Mis primeros pasos para compilar Basic a JavaScript. Quiero usarlo como lenguaje de programación para juegos en el browser.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://github.com/ajlopez/SimplePermissions"&gt;SimplePermissions&lt;/a&gt;: El code kata de este sábado a la mañana ;-). Implementa Sujetos (Subjects), roles, permisos, otorgados en contexto.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://github.com/ajlopez/SimpleFunc"&gt;SimpleFunc&lt;/a&gt;: Serialización/Deserialización de funciones y objectos con funciones.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://github.com/ajlopez/SimpleMapReduce"&gt;SimpleMapReduce&lt;/a&gt;: Explorando la implementación del algoritmo Map-Reduce (y una variante, que llamo Map-Process) tanto sincrónico como asincrónico.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://github.com/ajlopez/SimpleTuring"&gt;SimpleTuring&lt;/a&gt;: Implementación de una máquina de Turing.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://github.com/ajlopez/Cellular"&gt;Cellular&lt;/a&gt;: Implementación de autómatas de estado, lineales o de otras dimensiaones. Incluye un ejemplo de &lt;a href="https://github.com/ajlopez/Cellular/tree/master/samples/life"&gt;juego de la vida en consola&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Y en estos dos días pasados, agregué:&lt;/p&gt;  &lt;p&gt;&lt;a&gt;NodeDelicious&lt;/a&gt;: Para recuperar mis enlaces desde la cuenta de Delicious (sin tener que lidiar con el XML que devuelve directamente la API), ahora que el sitio ha sido rediseñado y no tiene paginación. La gente de Delicious sigue pensando que uno usa los enlaces como un feed (que lo viejo se pierde), pero no, muchos usamos a Delicious como un “Mis favoritos” en la nube y queremos acceder por rango de tiempo.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://github.com/ajlopez/SimpleSudoku"&gt;SimpleSudoku&lt;/a&gt;: Una reescritura desde 0, con TDD, de mi anterior AjSudoku, resuelve tableros de Sudoku.&lt;/p&gt;  &lt;p&gt;Tengo que trabajar en:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://github.com/ajlopez/SimpleDatabase"&gt;SimpleDatabase&lt;/a&gt;: Base de datos en memoria, puede que en algún momento le agregue persistencia en archivos.&lt;/p&gt;  &lt;p&gt;Y como siempre, todo esto es muy divertido ;-)&lt;/p&gt;  &lt;p&gt;Nos leemos!&lt;/p&gt;  &lt;p&gt;Angel “Java” Lopez    &lt;br /&gt;&lt;a href="http://www.ajlopez.com"&gt;http://www.ajlopez.com&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1822588" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Lenguajes+de+Programaci_26002300_243_3B00_n/default.aspx">Lenguajes de Programaci&amp;#243;n</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/TDD/default.aspx">TDD</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Code+Katas/default.aspx">Code Katas</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Proyectos+de+C_26002300_243_3B00_digo+Abierto/default.aspx">Proyectos de C&amp;#243;digo Abierto</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/NodeJs/default.aspx">NodeJs</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/COBOL/default.aspx">COBOL</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Compilador/default.aspx">Compilador</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/CobolScript/default.aspx">CobolScript</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/MapReduce/default.aspx">MapReduce</category></item></channel></rss>