<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8700470556582436056</id><updated>2012-01-24T07:58:34.140-08:00</updated><category term='agile'/><category term='java'/><category term='ext'/><category term='spring'/><category term='ajax'/><category term='proposito'/><category term='emprender'/><category term='enseñaje'/><category term='creatividad'/><category term='.net'/><category term='diseño'/><category term='ubuntu'/><category term='testing'/><category term='lecturas'/><title type='text'>Kudewe</title><subtitle type='html'>www.kudewe.com, tecnología + creatividad sustentable</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.kudewe.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>84</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-7990852788093038466</id><published>2012-01-23T02:24:00.001-08:00</published><updated>2012-01-24T07:58:34.147-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='proposito'/><title type='text'>Historias de Alejandra - parte 1</title><content type='html'>&lt;div&gt;El fin de semana pasado con mis compañeros del trabajo Nico, Nestor y Sabrina (novia de Nestor) nos fuimos de viaje a Alejandra, un pueblo en Santa Fe donde nació Nestor. La idea era acercar un poco la tecnología a los chicos. Queríamos hacerlo de una forma en la que ellos sean protagonistas de su aprendizaje, guiados por su interés y capacidad de descubrimiento.&lt;/div&gt;&lt;div&gt;Así que lo que se nos ocurrió fue invitarlos a que vengan a contarle al mundo historias de Alejandra.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La invitación:&lt;/div&gt;&lt;div&gt;&lt;img src="http://4.bp.blogspot.com/-Z6GQw89Nyoo/Tx02StUG87I/AAAAAAAACdg/VBd6FTc-e6A/s400/DSC00638.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5700772398350398386" style="cursor: pointer; width: 400px; height: 300px; " /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Como no nos conocíamos empezamos haciendo algunos. Uno muy bueno fue el pium que nos sirvió para conocer nuestros nombres:&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/-NU3OrjHh7d4/Tx02qqfGR_I/AAAAAAAACds/x1eraqR4SU0/s1600/DSC00572.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/-NU3OrjHh7d4/Tx02qqfGR_I/AAAAAAAACds/x1eraqR4SU0/s400/DSC00572.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5700772809908045810" style="cursor: pointer; width: 400px; height: 300px; " /&gt;&lt;/a&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Hicimos varios, el reloj, el zah!, piedra, papel o tijera multitudianario:&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/-Fzg375DYls0/Tx02uWpYZ-I/AAAAAAAACd4/crsBZkP5Kgc/s1600/DSC00584.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/-Fzg375DYls0/Tx02uWpYZ-I/AAAAAAAACd4/crsBZkP5Kgc/s400/DSC00584.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5700772873301944290" style="cursor: pointer; width: 400px; height: 300px; " /&gt;&lt;/a&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Y cuando perdimos un poco la timidez, empezamos a preparar las historias que queríamos contar.&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/-W8zx_9XOiVc/Tx03A7BmG-I/AAAAAAAACeE/dgBSjI74Iv8/s1600/DSC00590.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/-W8zx_9XOiVc/Tx03A7BmG-I/AAAAAAAACeE/dgBSjI74Iv8/s400/DSC00590.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5700773192304827362" style="cursor: pointer; width: 400px; height: 300px; " /&gt;&lt;/a&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cada grupo contó una historia suya, cercana, de su pueblo, de lo que le parecía importante. Guiados por eso que querían decir, aprendimos juntos a usar un blog.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-il7XsrKBjf8/Tx03LIAP9iI/AAAAAAAACeQ/HrKB9qs5t_A/s1600/DSC00635.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/-il7XsrKBjf8/Tx03LIAP9iI/AAAAAAAACeQ/HrKB9qs5t_A/s400/DSC00635.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5700773367587534370" style="cursor: pointer; width: 400px; height: 300px; " /&gt;&lt;/a&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Mientras subían las historias nuestra compañera Gaby K y su hijo Maxi escribían comentarios desde Buenos Aires, eso puso muy contento a los chicos. &lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/-ss41vlT6fNg/Tx03PajBhpI/AAAAAAAACec/nEr8SszAyvg/s1600/DSC00629.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/-ss41vlT6fNg/Tx03PajBhpI/AAAAAAAACec/nEr8SszAyvg/s400/DSC00629.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5700773441284703890" style="cursor: pointer; width: 400px; height: 300px; " /&gt;&lt;/a&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Mientras estábamos subiendo fotos y la conexión se ponía lenta, las chicas se pusieron a saltar la soga. Y nos hicieron dar cuenta que era un buen momento para parar un poco y ponernos a jugar a la escondida express, a la sardina, o al director de orquesta:&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/-WN3sYK3SITY/Tx03Um3IVFI/AAAAAAAACeo/fLYrNWe-RDg/s1600/DSC00633.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/-WN3sYK3SITY/Tx03Um3IVFI/AAAAAAAACeo/fLYrNWe-RDg/s400/DSC00633.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5700773530489607250" style="cursor: pointer; width: 400px; height: 300px; " /&gt;&lt;/a&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Al final del dia, a eso de las 8 de la noche, terminamos de contar algunas historias de Alejandra:&lt;/div&gt;&lt;div&gt;&lt;a href="http://historiasdealejandra.wordpress.com/"&gt;http://historiasdealejandra.wordpress.com&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Queremos agradecer a toda la gente que nos dio una mano con esto. A la mamá de Nestor, que nos alojó en su casa y nos hizo de comer cosas muy ricas. A su familia, que nos recibió en el campo con un cordero, a Gonza, un gurí de 8 años que nos enseñó a andar a caballo. A azul que nos acompaño a todas partes. A Guido, Fabian, Patricia y Laura que promocionaron el evento en la radio y en el cable y nos abrieron las puertas de la casa de la cultura. A Sandra que nos prestó la netbook con fotos. A Gaby K y Maxi que escribieron muy lindos comentarios para los chicos. A Mati, que nos prestó un router. A mi amiga Sole que nos ayudó a preparar la actividad con juegos, gracias a ella pudimos bajar a un papel lo que queríamos hacer. A nuestros compañero Clodo y Peluca que no pudieron venir pero nos dieron una mano p/preparlo. A todos los que les contamos la idea, ni sabíamos que queríamos hacer y aún así nos apoyaron. A los chicos y los papás de Alejandra, que hicieron posible esta actividad.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-7990852788093038466?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=7990852788093038466' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/7990852788093038466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/7990852788093038466'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2012/01/historias-de-alejandra-parte-1.html' title='Historias de Alejandra - parte 1'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-Z6GQw89Nyoo/Tx02StUG87I/AAAAAAAACdg/VBd6FTc-e6A/s72-c/DSC00638.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-3164204128477585666</id><published>2011-12-12T18:47:00.000-08:00</published><updated>2011-12-13T05:12:55.386-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='creatividad'/><title type='text'>Desarrollando América</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/-ircLcMXnoPk/Tua964PvA8I/AAAAAAAACco/x2sPYTE8fbU/s1600/desarrollando%2Bamerica.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/-ircLcMXnoPk/Tua964PvA8I/AAAAAAAACco/x2sPYTE8fbU/s400/desarrollando%2Bamerica.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5685440398830273474" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Hace muy poco tiempo, con unos compañeros de trabajo (Nico, Nestor y Clodo), participamos del concurso &lt;a href="http://desarrollandoamerica.org/que/"&gt;Desarrollando América&lt;/a&gt;. La propuesta del concurso era desarrollar una solución digital a un problema social, en una maratón de 30 horas. Los temas de esta edición fueron educación, presupuesto público y seguridad. Para desarrollar las aplicaciones, la organización facilitó distintas fuentes de datos.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A nosotros nos tocó como dato el boletín oficial (nos dieron muchos boletines) y nos pidieron trabajar sobre las adjudicaciones, en la tercera sección. Lo que hicimos fue una aplicación para poder digitalizarlos, extraer la información importante y una herramienta simple para poder consultar y visualizar esta información.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://1.bp.blogspot.com/-bZQSuU5rwHQ/Tua_E20lhuI/AAAAAAAACc0/-SkHHpO_jQo/s400/trabajando.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5685441669758289634" style="cursor: pointer; width: 400px; height: 300px; " /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Nos fue muy útil usar algunas cosas que sabemos ayudan a trabajar mejor, sobre todo cuando hay poco tiempo:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Tener una visión clara: En este caso, después de la pizza y antes de empezar una noche larga, cada uno comentó porque participaba del concurso, cual era nuestra motivación.&lt;/li&gt;&lt;li&gt;Un proceso colaborativo: Entre todos identificamos qué queríamos hacer y lo priorizamos, buscando para cada caso la solución más simple que se nos ocurría.&lt;/li&gt;&lt;li&gt;Prácticas como TDD y pair programming. Si pudimos resolver la parte difícil (extraer la información importante de los PDFs) fue gracias a TDD, una vez más nos salvó las papas del fuego.&lt;/li&gt;&lt;li&gt;Usar herramientas de gestión visual.  Decoramos el ventanal de la casa de Nestor con papelitos de colores.&lt;/li&gt;&lt;li&gt;Trabajar cerca del usuario, tener feedback rápido y adaptarnos a eso. Unas horas antes que termine el concurso, hicimos una demo con periodistas, que nos dieron muy buen feedback y sobre eso, modificamos la aplicación, agregando por ejemplo un semáforo visual y detalles que eran valiosos para ellos.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Al final hicimos una presentación&lt;/div&gt;&lt;div&gt;&lt;a href="http://prezi.com/g5orqdkbb5fk/del-boletin/"&gt;http://prezi.com/g5orqdkbb5fk/del-boletin/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;mostramos la aplicación&lt;/div&gt;&lt;div&gt;&lt;a href="http://delboletin.com.ar/"&gt;http://delboletin.com.ar/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Y sin esperarlo, sucios, con mucho sueño y la misma ropa del día anterior, nos eligieron para el 1er puesto de Argentina.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://2.bp.blogspot.com/-iWcO8JSwV6o/Tua_eOPB2tI/AAAAAAAACdA/X37uyoNkAtU/s400/premio.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5685442105539943122" style="cursor: pointer; width: 400px; height: 298px; " /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Personalmente, fue un gusto compartir horas de sueño con mis compañeros. Tengo la suerte de tener cerca a unos tipos de fierro, muy buena gente. Hacer cosas con ellos es siempre un placer. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En el concurso conocimos a muchas personas, gente que desde distintas maneras, dedica su tiempo, esfuerzo y talento para construir una sociedad mejor. Para nosotros, conocerlos fue muy valioso, son un ejemplo a seguir y creo que un poco nos inspiraron, porque tenemos intenciones de continuar con esto...&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-3164204128477585666?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=3164204128477585666' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3164204128477585666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3164204128477585666'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2011/12/desarrollando-america.html' title='Desarrollando América'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ircLcMXnoPk/Tua964PvA8I/AAAAAAAACco/x2sPYTE8fbU/s72-c/desarrollando%2Bamerica.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-3291830640898548399</id><published>2011-11-25T17:28:00.000-08:00</published><updated>2011-11-25T19:25:43.627-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='creatividad'/><title type='text'>Armando un mapa de la tecnología colaborativamente</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-j5xVmePyIZ4/TtBQTxhe9qI/AAAAAAAACcc/sUdcyaufE9k/s1600/tech-radar-july-2011.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 245px;" src="http://4.bp.blogspot.com/-j5xVmePyIZ4/TtBQTxhe9qI/AAAAAAAACcc/sUdcyaufE9k/s400/tech-radar-july-2011.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5679127430755710626" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;El &lt;a href="http://www.thoughtworks.com/radar"&gt;radar de tecnología&lt;/a&gt;, es una herramienta visual (sugerida por &lt;a href="http://www.thoughtworks.com/"&gt;ThoughtWorks&lt;/a&gt;) que permite a una organización:&lt;div&gt;&lt;ul&gt;&lt;li&gt;Entender cuales son las tecnologías que nos dan más valor.&lt;/li&gt;&lt;li&gt;Dar un poco de dirección a actividades de exploración, como pueden ser áreas investigación y desarrollo (I+D).&lt;/li&gt;&lt;li&gt;Alinear actividades de capacitación.&lt;/li&gt;&lt;li&gt;Ver que prácticas conviene empezar a hacer, seguir haciendo o dejar de hacer.&lt;/li&gt;&lt;li&gt;Estar atentos para poder aprovechar oportunidades de evaluación y prueba de tecnologías nuevas para nosotros.&lt;/li&gt;&lt;li&gt;Alinear distintos esfuerzos por trabajar mejor (más calidad, productividad y felicidad).&lt;/li&gt;&lt;li&gt;Ver que cosas hay que forzar un poco para que pasen, porque nos conviene.&lt;/li&gt;&lt;li&gt;Ver que cosas tenemos que pedir, porque exceden nuestro alcance.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Tomando algunas ideas del libro &lt;a href="http://www.amazon.com/Gamestorming-Playbook-Innovators-Rulebreakers-Changemakers/dp/0596804172"&gt;Game Storming&lt;/a&gt;, hicimos:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://2.bp.blogspot.com/-aYicRXcEWmQ/TtBLR-h4YVI/AAAAAAAACcQ/HUwwnsLTckY/s400/DSC00431.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5679121902329160018" style="cursor: pointer; width: 400px; height: 300px; " /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Apertura&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Charlar en pares sobre:&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Qué es la tecnología?&lt;/li&gt;&lt;li&gt;Para que sirve?&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Luego comentar a todos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Exploración (The 4Cs)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En 4 rincones, armar una lista (1 item por post-it) de:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Técnicas&lt;/li&gt;&lt;li&gt;Herramientas / Frameworks&lt;/li&gt;&lt;li&gt;Plataformas&lt;/li&gt;&lt;li&gt;Lenguajes&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Después de 10 minutos, los participantes rotan al siguiente ricon.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Cierre&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lo siguiente, es elegir las tecnologías más valiosas y volcarlar en el radar. Empezamos por un rincón (técnicas por ejemplo) y cada participante toma un post it, comenta al grupo porque le parece valiosa y donde la ubicaría:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Adoptar: Lo recomendamos fuertemente. Lo usamos apropiadamente en nuestros proyectos.&lt;/li&gt;&lt;li&gt;Intentar: Vale la pena intentar en un proyecto que pueda manejar el riesgo.&lt;/li&gt;&lt;li&gt;Evaluar: Vale la pena explorar para entender como puede darnos valor.&lt;/li&gt;&lt;li&gt;Esperar: Proceder con cuidado.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Puede que en algunos casos se genere un poco de debate y eso está bien. Para que podamos aprovechar el mejor el tiempo, podemos hacerlo por tiempo fijo y hacer preguntas que ayuden a la convergencia y a la selección, como por ejemplo:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Considerás que esa tecnología agrega tanto valor que vale la pena ponerla en el radar?&lt;/li&gt;&lt;li&gt;En comparación a otras, la pondrías en intentar o adoptar?&lt;/li&gt;&lt;li&gt;Cómo priorizarías esta tecnología respecto a otras?&lt;/li&gt;&lt;li&gt;Pensás que es valiosa para toda la organización?&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Seguramente no vamos a armar el mejor radar en un único intento. Lo importante es identificar las tecnologías más importantes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El radar sirve si lo usamos para alinear los esfuerzos de la organización por mejorar. Es conveniente revisarlo periódicamente, porque el mercado cambia (&lt;a href="http://blogs.adobe.com/conversations/2011/11/flash-focus.html"&gt;hace poco Adobe anunció que dejará de trabajar en el flash player p/browser mobile&lt;/a&gt;), porque nuestras habilidades cambian (aprendemos mientras hacemos), porque en un entorno tan cambiante como es el desarrollo de software y las relaciones humanas, necesitamos explorar y elegir para adaptarnos.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;También está bueno revisarlo para ver el impacto de cosas que hacemos. Cuando por ejemplo todos acordamos pasar una tecnología de evaluar a intentar, y vemos que eso ocurre por actividad de capacitación hecha por nosotros o un compañero, es una buena forma de motivación.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-3291830640898548399?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=3291830640898548399' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3291830640898548399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3291830640898548399'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2011/11/armando-un-mapa-de-la-tecnologia.html' title='Armando un mapa de la tecnología colaborativamente'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-j5xVmePyIZ4/TtBQTxhe9qI/AAAAAAAACcc/sUdcyaufE9k/s72-c/tech-radar-july-2011.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-7869097605259663788</id><published>2011-11-25T16:32:00.000-08:00</published><updated>2011-11-25T17:18:09.164-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='enseñaje'/><category scheme='http://www.blogger.com/atom/ns#' term='proposito'/><title type='text'>Enseñando desde atrás del salón en la Fundación Inicia</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-_Q-uK2ndvw8/TtA7pQsZegI/AAAAAAAAAFg/lnUHazk8cUs/s1600/389787_10150557806556258_45614281257_11577017_1549937466_n.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/-_Q-uK2ndvw8/TtA7pQsZegI/AAAAAAAAAFg/lnUHazk8cUs/s400/389787_10150557806556258_45614281257_11577017_1549937466_n.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5679104710156057090" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;El martes pasado junto con &lt;a href="http://www.fuerzatres.com/"&gt;Ingrid Astiz&lt;/a&gt; y &lt;a href="http://crealogar.blogspot.com/"&gt;Ricardo Colusso&lt;/a&gt; participamos del evento &lt;a href="http://www.inicia.org.ar/New/Notas/FrontEnd/feNotasItem.aspx?IdNota=34"&gt;Enseñar a Emprender&lt;/a&gt; de la &lt;a href="http://www.inicia.org.ar/"&gt;Fundación Inicia&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ingrid facilitó un taller de &lt;a href="http://www.fuerzatres.com/2010/06/reunion-de-retrospectiva.html"&gt;retrospectivas&lt;/a&gt;. Originalmente el rincón de Ricardo iba a ser sobre Kanban. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En la apertura escuchamos la presentación de cada uno de los participantes, que hacían y a que venían. Había desde un emprendedor gastronómico, que enseña a jóvenes sin trabajo a cocinar, capacitadores, formadores, personas que pertenecen a ONGs, todos, desde distintas propuestas buscan construir una sociedad mejor.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Luego escuchamos a &lt;a href="http://danielarroyo.blogspot.com/"&gt;Daniel Arroyo&lt;/a&gt; hablando sobre los &lt;a href="http://danielarroyo.blogspot.com/2011/10/video-clase-sobre-cohesion-social.html"&gt;5 problemas sociales más importantes del país&lt;/a&gt; (debería ser una charla TED). Y a Daniel Cerezo, quien nos contó como hizo con la música para ayudar a los sectores más frágiles de la sociedad.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Viendo todo esto, se nos ocurrió que a estas personas sería más útil algo del tipo "&lt;a href="http://blog.kudewe.com/2011/11/ensenando-desde-atras-del-salon-en.html"&gt;enseñando desde atrás del salón&lt;/a&gt;". Y nos dijimos, porque no cambiamos el tema?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/-a2S2ZJl2dEo/TtA7vkr1rVI/AAAAAAAAAFs/GEU68v_QRJk/s1600/375801_10150557803516258_45614281257_11576995_1300084661_n.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://2.bp.blogspot.com/-a2S2ZJl2dEo/TtA7vkr1rVI/AAAAAAAAAFs/GEU68v_QRJk/s400/375801_10150557803516258_45614281257_11576995_1300084661_n.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5679104818601635154" style="cursor: pointer; width: 400px; height: 300px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Algo que notamos en todos los grupos que pasaron por este rincón, es que por media hora, perdieron la noción del tiempo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Fue muy bueno para mi tener la oportunidad de acercar a estas personas, que hacen tantas cosas buenas, una herramienta más para que sigan haciendo su trabajo. Me puso muy contento participar de una actividad así  y hacerlo con mis compañeros de ágiles. Mezclar comunidades es una práctica con mucho potencial.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-7869097605259663788?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=7869097605259663788' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/7869097605259663788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/7869097605259663788'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2011/11/ensenando-desde-atras-del-salon-en-la.html' title='Enseñando desde atrás del salón en la Fundación Inicia'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-_Q-uK2ndvw8/TtA7pQsZegI/AAAAAAAAAFg/lnUHazk8cUs/s72-c/389787_10150557806556258_45614281257_11577017_1549937466_n.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-5059198369334313202</id><published>2011-11-21T19:05:00.001-08:00</published><updated>2011-11-21T19:35:30.969-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='lecturas'/><title type='text'>Agile Coaching - Cómo preguntar?</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-L-kEA1Bywx8/TssTS7RkV-I/AAAAAAAACbs/P8K8ZDzj2SQ/s1600/agile%2Bcoaching.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 300px; height: 300px;" src="http://1.bp.blogspot.com/-L-kEA1Bywx8/TssTS7RkV-I/AAAAAAAACbs/P8K8ZDzj2SQ/s400/agile%2Bcoaching.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5677652971100592098" /&gt;&lt;/a&gt;&lt;br /&gt;Por estos días tengo en la mesa de luz &lt;a href="http://www.amazon.com/Agile-Coaching-Rachel-Davies/dp/1934356433"&gt;Agile Coaching&lt;/a&gt;, de Rachel Davies y Liz Sedley. Siguiendo una idea de &lt;a href="http://twitter.com/#!/pablitux"&gt;Pablo Tortorella&lt;/a&gt;, para fomentar su lectura, en lugar de recomendar el libro voy a comentar un párrafo.&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En la página 37, habla sobre cómo hacer preguntas. Dice que una forma de liderar un cambio es preguntando. Y cómo preguntar? No hagas preguntas cerradas, de las que generan un si / no cómo respuesta. Preguntá cosas como "cómo", "que pasaría" para abrir la conversación e invitar a las personas a reflexionar y compartir su opinión.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Por otro lado, con unos compañeros (&lt;a href="http://www.dominoni.net/"&gt;Matias Dominoni&lt;/a&gt; y Carlos Bellucci sin blog por ahora), vamos a ver si nos animamos a hacer de esto una práctica frecuente. Asi que ahi fue la 1ra piedra.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ahh, gracias a &lt;a href="http://twitter.com/#!/aeidelman"&gt;Adrían Eidelman&lt;/a&gt;, que me prestó el libro.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-5059198369334313202?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=5059198369334313202' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/5059198369334313202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/5059198369334313202'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2011/11/leyendo-agile-coaching.html' title='Agile Coaching - Cómo preguntar?'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-L-kEA1Bywx8/TssTS7RkV-I/AAAAAAAACbs/P8K8ZDzj2SQ/s72-c/agile%2Bcoaching.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-1820514709677815733</id><published>2011-11-13T10:46:00.000-08:00</published><updated>2011-11-13T11:10:39.342-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='creatividad'/><title type='text'>De donde vienen las grandes ideas</title><content type='html'>Hace unos días vi este video sobre la visión de Steven Johnson donde se cuestiona de donde vienen las grandes ideas:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;iframe width="560" height="315" src="http://www.youtube.com/embed/R3LcLQXk9cg" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Es interesante las perspectiva para entender como generar un entorno que favorezca la generación de ideas y acelere su proceso.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En lugar de comentar sobre el video, que es genial, me gustaría compartir algunas ideas que me se me ocurrieron al mirarlo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hace unos meses, haciendo un curso de &lt;a href="http://dondevuelaelcondor.blogspot.com/2011/08/natura-inmensa.html"&gt;seguridad y avalanchas en terrenos nevados en Ushuaia&lt;/a&gt;, aprendí un método de gestión del riesgo de Werner Munter que explica muy bien en su libro &lt;a href="http://dondevuelaelcondor.blogspot.com/2011/08/natura-inmensa.html"&gt;3x3 Avalanchas&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El método, asombroso por su simplicidad, da muchas herramientas al montañista, no solo para moverse de forma más segura en terrenos nevados, sino también para no dejar de cuestionarse y aprender.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cuando lo aprendí, tuve una corazonada, pensé que también podría servir para la gestión de proyectos, cambiando un poco sus dimensiones:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Las condiciones nivo / meteorológicas las cambiaría por las condiciones del proyecto (contrato, plazos, expectativas).&lt;/li&gt;&lt;li&gt;El terreno por la tecnología.&lt;/li&gt;&lt;li&gt;El factor humano lo dejaría igual.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Una coincidencia es que el terreno va de la mano del factor humano, al igual de la tecnología.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Luego la dimensión de escala la cambiaría por las siguientes:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Antes de empezar un proyecto.&lt;/li&gt;&lt;li&gt;En el sprint planning.&lt;/li&gt;&lt;li&gt;Antes de tomar una tarea.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Ahora bien, esto que empezó con una corazonada, lo confirmé un poco más cuando hace un par de meses nos llegó una nueva tarea para hacer. Antes de empezar la tarea, con un compañero hicimos este análisis:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Condiciones: Esperan que hagamos esto rápido y bien.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tecnología: Nos piden resolver una integración entre 2 plataformas (.net y php) usando una base de datos común. Esto implica además resolver temas de consistencia de datos y autenticación.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Humano: No contamos con un buen soporte técnico de una de las aplicaciones a integrar. Sospechamos que no es la solución más simple al problema. La solución fue inducida por personas que no conocen de tecnología.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esto nos hizo replantearnos si queríamos meternos en esto o si apostábamos a desmenuzar un poco más el problema para encontrar una solución más simple. Hicimos esto y el problema se solucionó &lt;b&gt;sin que tuvieramos que escribir una línea de código&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esto confirmo un poco la corazonada. Hace unas semanas lo charlé con un compañero al que le comenté la idea y le presté el libro. Él también sintió la misma corazonada.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Por lo que sería interesante seguir generando colisiones con otras personas para acelerar el proceso de llevar a la práctica esta idea. Este post es una manera de comenzar a hacerlo...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-1820514709677815733?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=1820514709677815733' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1820514709677815733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1820514709677815733'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2011/11/de-donde-vienen-las-grandes-ideas.html' title='De donde vienen las grandes ideas'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/R3LcLQXk9cg/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-4746997839970300912</id><published>2011-11-11T11:34:00.003-08:00</published><updated>2011-11-11T19:59:44.857-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='enseñaje'/><title type='text'>Enseñando desde atrás del salón en Agiles 2011</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-od4RlVNCPRo/Tr3co0mR3nI/AAAAAAAACbY/tZnmA6fuj2k/s1600/maniobra-heimlich-srgb-resize.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 283px;" src="http://4.bp.blogspot.com/-od4RlVNCPRo/Tr3co0mR3nI/AAAAAAAACbY/tZnmA6fuj2k/s400/maniobra-heimlich-srgb-resize.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5673933699428769394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En el pasado Ágiles 2011 en Argentina tuve la oportunidad de realizar una actividad en el open space del último día. Mi intención era incentivar a las personas a que se animen a crear espacios de aprendizaje en sus trabajos. Y por otro lado, ver hasta que punto hace falta ser experto para facilitar un espacio así.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La propuesta fue aprender primeros auxilios, usando algunas técnicas del libro &lt;a href="http://www.amazon.com/Training-Back-Room-Aside-Learn/dp/0787996629"&gt;Trainning from the back of the room&lt;/a&gt;. Y repasar entre todos el proceso de aprendizaje&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Le pedí una mano a Ricardo Colusso, para que me ayude a facilitarlo. Rick no tenía conocimiento del tema, lo cual nos iba a servir para ver hasta que punto es necesario ser un experto. Esto fue lo que hicimos:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;Apertura&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Recibimos a los participantes y les propusimos:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Elijan una experiencia de aprendizaje (puede ser una materia de la facultad, de la secundaria, un curso, alguna de las actividades de este evento, etc.). Luego piensen como pasaron la mayor parte del tiempo. Y párense en el lugar que corresponda.&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Leyendo textos&lt;/li&gt;&lt;li&gt;Escuchando&lt;/li&gt;&lt;li&gt;Mirando presentaciones, videos, imágenes&lt;/li&gt;&lt;li&gt;Discutiendo conceptos / practicando&lt;/li&gt;&lt;li&gt;Enseñando a otros&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;Luego preguntamos a algunos:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Cuál fue el caso.&lt;/li&gt;&lt;li&gt;Cómo fue la calidad del aprendizaje?&lt;/li&gt;&lt;li&gt;Cuál les parece es la mejor forma de aprender?&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Bueno, hacia allá es donde queremos ir (aprender enseñando a otros).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Conexión&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Mitos y hechos: Imagínense que estamos en un almuerzo con compañeros de trabajo y uno se  atraganta comiendo. En 2 grupos de 10 aprox. hacer una lista de las cosas que escucharon hay que hacer en estos casos y clasificarlas en mito / hecho. Luego todos exponen las ideas y mejoramos la clasificamos usando el conocimiento de todos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Rick facilitó la actividad para un equipo y yo para el otro. En mi caso, hice algunas preguntas y respondí algunas dudas sobre el tema. Al finalizar, nos sentamos en ronda y los grupos expusieron las cosas que clasificaron como mito o hecho. Luego, apareció el experto para aclarar algunas cosas que no clasificamos bien. &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;En este punto, vimos que las personas ya tenían cierto conocimiento sobre el tema. Casi no hubo diferencia entre las ideas y las clasificaciones. Lo bueno en este caso, es que se construye conocimiento a partir de lo que el grupo sabe. Y previamente los participantes enseñan y aprenden entre ellos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Además, al comienzo de una capacitación, la expectativa de aprender algo nuevo genera una emoción positiva que favorece el aprendizaje. Sería un desperdicio usar ese momento contando la agenda de la actividad, nuestra experiencia en el tema o hablando sobre cosas que las personas ya saben.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Conclusión&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Contamos que lo que hicimos antes se llama conexión en el libro “enseñando desde atrás del salón” e hicimos algunas preguntas para revisar el proceso de aprendizaje.&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Que fue lo que conectamos?&lt;/li&gt;&lt;li&gt;Que observaciones pueden hacer de la actividad?&lt;/li&gt;&lt;li&gt;Conversamos?&lt;/li&gt;&lt;li&gt;Cómo eran vistos los errores?&lt;/li&gt;&lt;li&gt;De quienes aprendimos?&lt;/li&gt;&lt;li&gt;Levanten la mano quienes aprendieron algo. Y quienes enseñaron algo.&lt;/li&gt;&lt;li&gt;El desafío era p/grupos o individuos?&lt;/li&gt;&lt;li&gt;Qué tema les parece podrían iniciar con “mitos y hechos”?&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Concepto / práctica&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Le contamos que vamos a aprender la maniobra de Heimlich. y les pedimos que elijan como preferían hacerlo (todos eligieron la práctica)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;•&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Leer un texto&lt;/div&gt;&lt;div&gt;•&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Ver un video&lt;/div&gt;&lt;div&gt;•&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Hacer una práctica guiada&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Luego contamos la historia de Diana, una chica que dio un curso de primeros auxilios, uno de los participantes le enseño la maniobra a un amigo y este la pudo hacer efectivamente (las historias son importantes porque mantienen más tiempo nuestra atención). Y preguntamos si la enseñarían a sus amigos y familiares?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Conclusión&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Cómo tomamos nueva  información?&lt;/li&gt;&lt;li&gt;Que aporta presentar opciones de aprendizaje y dejar que ustedes decidan?&lt;/li&gt;&lt;li&gt;Les parece que es bueno poner al cuerpo en movimiento? Porqué?&lt;/li&gt;&lt;li&gt;Les parece que sirve contar historias. Porqué?&lt;/li&gt;&lt;li&gt;Como fue nuestra atención? Porqué prestamos atención? Porqué no la prestamos? Y nuestras emociones?&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Cierre&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Qué aprendieron?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cómo lo van a usar? Armamos una líínea en el suelo que iba desde “la semana que viene preparo un taller”hasta “creo que esto de enseñar no es para mi”&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Evaluación: Qué les pareció? &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Es importante terminar con una emoción positiva. Reconociendo lo que aprendimos, lo bien que la pasamos. Por todo esto, todos hicimos un gran aplauso.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para mi fue una muy buena experiencia. La energía durante la sesión fue alta, positiva, todos participaron y todos aprendimos de todos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ahh, gracias a Avatar por sporsorear mi participación en el evento!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-4746997839970300912?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=4746997839970300912' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/4746997839970300912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/4746997839970300912'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2011/11/ensenando-desde-atras-del-salon-en.html' title='Enseñando desde atrás del salón en Agiles 2011'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-od4RlVNCPRo/Tr3co0mR3nI/AAAAAAAACbY/tZnmA6fuj2k/s72-c/maniobra-heimlich-srgb-resize.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-5660217182043242672</id><published>2011-11-11T11:34:00.001-08:00</published><updated>2011-11-11T12:06:29.513-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='enseñaje'/><category scheme='http://www.blogger.com/atom/ns#' term='proposito'/><title type='text'>Desafío del malvavisco</title><content type='html'>&lt;div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Hace algunos meses, unos amigos de scout me invitaron a participar del foro de jóvenes. Se trata de un encuentro donde los chicos debaten sobre temas importantes y hacen recomendaciones a la organización scout argentina.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Uno de los temas del encuentro tenía como objetivo aportarles alguna herramienta para que puedan gestionar proyectos de servicio. Asi que lo que hicimos fue el desafío del malvavisco:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://marshmallowchallenge.com/Welcome.html"&gt;http://marshmallowchallenge.com/Welcome.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/-xD4t8Vy-RPo/Tr1-R7aClUI/AAAAAAAAAEw/Dwh3hy1gUYM/s1600/DSC00107.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://1.bp.blogspot.com/-xD4t8Vy-RPo/Tr1-R7aClUI/AAAAAAAAAEw/Dwh3hy1gUYM/s400/DSC00107.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5673829952026481986" style="cursor: pointer; width: 400px; height: 300px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://1.bp.blogspot.com/-8Nptt5OayMI/Tr1-oUtsufI/AAAAAAAAAE8/NGnElu4ctJM/s400/DSC00119.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5673830336776944114" style="cursor: pointer; width: 400px; height: 300px; " /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://3.bp.blogspot.com/-QY69iUOYOOk/Tr1-_rcpt2I/AAAAAAAAAFI/pPQTFXRXfi0/s400/DSC00127.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5673830738016450402" style="cursor: pointer; width: 400px; height: 300px; " /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El cierre de la actividad lo hizo mi compañero Marcos, contando una historia de unos chicos que para un campamento de fin de año fueron a pavimentar una plaza y estando allá descubrieron que la necesidad era otra, una estatua de la pacha mama. Y lo resumió muy bien diciendo:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;"En un proyecto de servicio, el malvavisco es la necesidad"&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-5660217182043242672?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=5660217182043242672' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/5660217182043242672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/5660217182043242672'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2011/11/desafio-del-malvavisco.html' title='Desafío del malvavisco'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-xD4t8Vy-RPo/Tr1-R7aClUI/AAAAAAAAAEw/Dwh3hy1gUYM/s72-c/DSC00107.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-3847503742018040477</id><published>2011-10-09T09:03:00.000-07:00</published><updated>2011-10-09T12:04:45.749-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='creatividad'/><title type='text'>Siempre hay lugar p/innovar</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/-Gfe0CbWT_wo/TpHNmrFt9mI/AAAAAAAACU0/_SY7BLbv13Y/s1600/la_fuerza_de_la_naturaleza_humana.jpgmid.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 302px; height: 400px;" src="http://3.bp.blogspot.com/-Gfe0CbWT_wo/TpHNmrFt9mI/AAAAAAAACU0/_SY7BLbv13Y/s400/la_fuerza_de_la_naturaleza_humana.jpgmid.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5661532270866855522" /&gt;&lt;/a&gt;&lt;br /&gt;Leyendo "&lt;a href="http://www.amazon.com/Training-Back-Room-Aside-Learn/dp/0787996629"&gt;Trainning from the back of room&lt;/a&gt;" descubrí el aporte de &lt;a href="http://en.wikipedia.org/wiki/Hans_Monderman"&gt;Hans Moderban&lt;/a&gt; a la seguridad vial.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Él dice que por ejemplo removiendo la línea central de una calle doble mano la gente maneja de manera más segura. Llenar las calles con símbolos, sígnos y barreras hace que las personas se sientan lo suficientemente protegidas como para manejar tan rápido como quieran.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Descubrió que la eficiencia en el tráfico y la seguridad en las calles urbanas mejoran cuando las calles y el espacio público es rediseñado para fomentar que cada persona negocie su movimiento directamente con otros.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Este concepto se resumen a favorecer espacios compartidos, intersecciones y rotondas sobre semáforos, líneas marcadas, signos y luces. Me hace acordar a &lt;a href="http://agilemanifesto.org/"&gt;favorecer a las personas e interacciones sobre procesos y herramientas&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Con estás ideas bajó la tasa de accidentes en un 30%.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Será que si tratás a las personas como tontas, ellas actuarán así?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Parece que siempre hay lugar p/innovar, a veces la solución es tan simple que no la vemos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-3847503742018040477?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=3847503742018040477' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3847503742018040477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3847503742018040477'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2011/10/siempre-hay-lugar-pinnovar.html' title='Siempre hay lugar p/innovar'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Gfe0CbWT_wo/TpHNmrFt9mI/AAAAAAAACU0/_SY7BLbv13Y/s72-c/la_fuerza_de_la_naturaleza_humana.jpgmid.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-3360565039607658433</id><published>2011-08-30T19:39:00.000-07:00</published><updated>2011-11-11T11:50:57.732-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='enseñaje'/><category scheme='http://www.blogger.com/atom/ns#' term='proposito'/><title type='text'>Primeros Auxilios + Training from back of room</title><content type='html'>A veces me pasa que me toca capacitar en un tema a un grupo que ya tiene conocimiento / experiencia al respecto. De hecho, esto creo que es algo que pasa la mayoría de las veces.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En esos casos, empezar de 0 es una pérdida muy grande para ellos. Dicen los que saben de entrenamiento, que los 1ros minutos son los más importantes de una sesión. Donde el cerebro está más lúcido. Además, la sorpresa de algo nuevo genera una emoción que favorece el aprendizaje. Desperdiciar ese valioso tiempo, diciendo cosas que ya todos saben, sería una lástima.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La pregunta es, cómo se puede aprovechar?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tengo un grupo de amigos, que hacen con frecuencia salidas en bici. Tienen distintos niveles de experiencia, conocimiento, pero desde hace un tiempo vienen viajando, haciendo salidas importantes, como el doble cruce de los andes, o casi 400km por las sierras de córdoba.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hace un tiempo, nos empezamos a juntar, pizzas y cervezas de por medio, para que puedan llevarse nuevas herramientas a sus viajes que les permitan moverse con mayor seguridad. Una de ellas es por ejemplo primeros auxilios.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tomando algunas ideas del libro &lt;a href="http://www.amazon.com/Training-Back-Room-Aside-Learn/dp/0787996629"&gt;Training from the BACK of the Room&lt;/a&gt;, arrancamos conectándonos con el tema planteando un accidente en un descenso en bici. Ellos tenían que anotar en post-it cada una de las acciones que harían y ordenarlas. Esto ya me dió una clara idea de que cosas conocían y cuales no.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/-FIOCDxtKJyk/Tl2meKQSLtI/AAAAAAAACSA/1Xa7aqVZeIg/s1600/301077_10150355028317177_756757176_10130194_3805503_n.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://2.bp.blogspot.com/-FIOCDxtKJyk/Tl2meKQSLtI/AAAAAAAACSA/1Xa7aqVZeIg/s400/301077_10150355028317177_756757176_10130194_3805503_n.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5646852544871411410" style="cursor: pointer; width: 400px; height: 300px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;(Arriba a la izq: 1ra fila los primeros 6 post-it de la fila son los del ejercicio. La 2da fila es el mismo ejercicio, pero hecho al final del encuentro)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Luego, continuamos tratando los temas que podrían ayudarlos a resolver mejor la situación. Usando algo visual y grande (papel afiche y marcador) fuimos poniendo los conceptos más importantes y enseguida, pasábamos a la práctica:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-gvoPmr2isLs/Tl2oAmR9gwI/AAAAAAAACSI/D_vMOdq5ihM/s1600/300517_10150355027587177_756757176_10130180_3466470_n.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://3.bp.blogspot.com/-gvoPmr2isLs/Tl2oAmR9gwI/AAAAAAAACSI/D_vMOdq5ihM/s400/300517_10150355027587177_756757176_10130180_3466470_n.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5646854236021818114" style="cursor: pointer; width: 400px; height: 300px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;(Haciendo el ABCDE de la evaluación primaria)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/--vFiTjKqW4E/Tl2oSo7ZvKI/AAAAAAAACSQ/DfkV9OIcFOM/s1600/297082_10150355027877177_756757176_10130186_1518313_n.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://3.bp.blogspot.com/--vFiTjKqW4E/Tl2oSo7ZvKI/AAAAAAAACSQ/DfkV9OIcFOM/s400/297082_10150355027877177_756757176_10130186_1518313_n.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5646854545970150562" style="cursor: pointer; width: 400px; height: 300px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;(Limpiando heridas en una pata de chancho)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En el medio pasó algo que bajo otro paradigma de enseñanza hubiese sido negativo. Una hora más tarde, se sumó una persona al taller y a las pizzas. Esto, en otro contexto, hubiese sido un problema. Pero en este caso, resultó una oportunidad para que los chicos pudieran reforzar lo que aprendieron. Lo que hicimos fue pararnos frente a los afiches y que ellos contaran lo que habíamos hecho al nuevo compañero. Enseñar a un par es una de las maneras más efectivas de aprender.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Como cierre (es importante hacer un cierre para que nos caiga la ficha de lo que aprendimos), volvimos a hacer el ejercicio del comienzo y cada uno compartió lo que había aprendido. Aca de nuevo, lo que uno reconoce como aprendizaje propio, puede ayudar a reforzar el del otro.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-3360565039607658433?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=3360565039607658433' title='3 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3360565039607658433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3360565039607658433'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2011/08/primeros-auxilios-training-from-back-of.html' title='Primeros Auxilios + Training from back of room'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-FIOCDxtKJyk/Tl2meKQSLtI/AAAAAAAACSA/1Xa7aqVZeIg/s72-c/301077_10150355028317177_756757176_10130194_3805503_n.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-3515459326718661501</id><published>2011-08-28T18:25:00.001-07:00</published><updated>2011-11-11T11:50:57.732-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='proposito'/><title type='text'>Espacio abierto p/emprendedores</title><content type='html'>Hace varias semanas, junto con &lt;a href="http://www.fuerzatres.com/"&gt;Ingrid Astiz&lt;/a&gt; y &lt;a href="http://crealogar.blogspot.com/"&gt;Ricardo Colusso&lt;/a&gt;, facilitamos un espacio abierto p/emprendedores en la organización &lt;a href="http://www.inicia.org.ar/New/Default.aspx"&gt;Inicia&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://3.bp.blogspot.com/-LdRjbD6_gGs/TlrrXKvSW7I/AAAAAAAAAEo/r1rOYI8QBkQ/s400/DSC00024.JPG" style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5646083866114546610" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lo más lindo de todo esto, fue el reconocimiento por parte de los participantes y de Inicia. A veces pienso que los trabajos voluntarios son los más satisfactorios.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Creo que Inicia es un lugar muy interesante, ya que apunta a potenciar a los emprendedores. Teniendo en cuenta que en la Argentina la mayoría del trabajo lo proveen pymes y que estas además distribuyen mejor la riqueza que las grandes empresas, el trabajo de Inicia me parece que está muy bien dirigido, a lograr acciones con impacto, algo nada menor.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ahhh, los post de mis colegas:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ricardo: &lt;a href="http://crealogar.blogspot.com/2011/07/espacio-abierto-de-emprendedores.html"&gt;http://crealogar.blogspot.com/2011/07/espacio-abierto-de-emprendedores.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Ingrid: &lt;a href="http://www.fuerzatres.com/2011/07/open-space-en-inicia.html"&gt;http://www.fuerzatres.com/2011/07/open-space-en-inicia.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-3515459326718661501?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=3515459326718661501' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3515459326718661501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3515459326718661501'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2011/08/espacio-abierto-pemprendedores.html' title='Espacio abierto p/emprendedores'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-LdRjbD6_gGs/TlrrXKvSW7I/AAAAAAAAAEo/r1rOYI8QBkQ/s72-c/DSC00024.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-3571100041063372609</id><published>2011-08-28T18:07:00.000-07:00</published><updated>2011-11-11T11:47:38.623-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emprender'/><title type='text'>Gracias Open App Challenge!</title><content type='html'>El año pasado, gracias a un post de &lt;a href="http://msmvps.com/blogs/lopez/archive/2010/10/06/presentaci-243-n-de-open-app-challenge-de-telef-243-nica-negocios.aspx"&gt;ajlopez&lt;/a&gt; encontre el concurso &lt;a href="http://www.openapp.com.ar/"&gt;Open App Challenge&lt;/a&gt;, de Telefónica. Tuve la suerte de poder participar presentando un proyecto y quedar seleccionado entre los 20 primeros.&lt;div&gt;&lt;br /&gt;&lt;iframe width="448" height="282" src="http://www.youtube.com/embed/St0euN5vvIY" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Participar fue una muy buena experiencia. Me desafió a trabajar sobre una idea, darle forma, tratar de describirla desde el valor que da, tachar, volver a escribir. Fue un lindo aprendizaje.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para la prox. que creo será &lt;a href="http://wayra.org/taxonomy/term/74"&gt;wayra&lt;/a&gt;, voy a probar algo distinto. De trabajar con otra persona, ya que otra mirada amplía enormente las posiblidades.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;gracias a la gente de Open App Challenge!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-3571100041063372609?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=3571100041063372609' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3571100041063372609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3571100041063372609'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2011/08/gracias-open-app-challenge.html' title='Gracias Open App Challenge!'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/St0euN5vvIY/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-8627192020483479005</id><published>2011-06-17T11:02:00.000-07:00</published><updated>2011-11-11T11:47:11.108-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diseño'/><category scheme='http://www.blogger.com/atom/ns#' term='enseñaje'/><title type='text'>Solid + Training from the BACK of the Room</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/-HkKMFQEoEls/TfueyM8So1I/AAAAAAAACPI/rtBiSPaGkSo/s1600/IMG_0007.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 288px;" src="http://4.bp.blogspot.com/-HkKMFQEoEls/TfueyM8So1I/AAAAAAAACPI/rtBiSPaGkSo/s400/IMG_0007.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5619259545379578706" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Desde hace poco empecé a preparar un taller sobre principios de diseño &lt;a href="http://www.google.com.ar/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CBcQFjAA&amp;amp;url=http%3A%2F%2Flostechies.com%2Fwp-content%2Fuploads%2F2011%2F03%2Fpablos_solid_ebook.pdf&amp;amp;ei=eZn7TfG1IYTqgAe5x7TuCg&amp;amp;usg=AFQjCNEagF1Vg_SXghoJRAbmLEOrcuw2Qg"&gt;solid&lt;/a&gt; usando el libro &lt;a href="http://www.amazon.com/Training-Back-Room-Aside-Learn/dp/0787996629"&gt;Training from the BACK of the Room&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;En general estamos acostumbrados a que enseñar se parece a algo del tipo el maestro habla y los alumnos escuchan. El libro propone una alternativa interesante, preguntando: querés que ellos te escuchen o que aprendan? Quién está hablando la mayor parte del tiempo?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Se trata de hacer a los "alumnos" los protagonistas del proceso de aprendizaje. Dejarles la mayor parte del tiempo para que aprendan debatiendo, haciendo, poniéndolo en práctica, contestándose dudas, enseñando a otros.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lo primero que recomienda el libro es identificar los temas y los resultados observables que queremos conseguir. Esto tiene que ver con empezar con una visión clara del taller.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/64233873@N08/5842762471/" title="temas por ferclaverino, en Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2676/5842762471_a5f1eaeceb.jpg" width="500" height="299" alt="temas" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Y luego hacer distintas actividades que involucran conectarse con el tema, concepto, práctica y conclusión:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/64233873@N08/5843303034/" title="srp por ferclaverino, en Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3615/5843303034_4c3e3ef3a5.jpg" width="500" height="285" alt="srp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El libro explica como diseñar una actividad de aprendizaje y propone distintas dinámicas. En esencia se basa en:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;El aprendizaje involucra al cuerpo tanto como la mente.&lt;/li&gt;&lt;li&gt;Es fundamentalmente un acto de creación, no de consumo de información.&lt;/li&gt;&lt;li&gt;Toma lugar en varios niveles a la vez en el cerebro, y no es una actividad lineal, del tipo una cosa a la vez.&lt;/li&gt;&lt;li&gt;La colaboración incrementa el aprendizaje, el aislamiento y la competencia lo decrementa.&lt;/li&gt;&lt;li&gt;Ocurre haciendo activamente, con tiempo de reflexión y feedback, no pasivamente.&lt;/li&gt;&lt;li&gt;Emociones positivas e imaginación mejoran el aprendizaje. La falta de alguna de estas lo inhibe.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Este primer experimento fue, desde mi punto de vista, muy bueno, ya que pude notar el entusiasmo de los participantes al exponer ideas, el humor con el que hicieron las presentaciones y la intensidad de las actividades. Me llamó la atención lo productivo que fue proponerme hablar lo menos posible.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-8627192020483479005?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=8627192020483479005' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/8627192020483479005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/8627192020483479005'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2011/06/solid-training-from-back-of-room.html' title='Solid + Training from the BACK of the Room'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-HkKMFQEoEls/TfueyM8So1I/AAAAAAAACPI/rtBiSPaGkSo/s72-c/IMG_0007.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-6423738644378883725</id><published>2011-04-03T15:00:00.000-07:00</published><updated>2011-04-03T15:52:46.716-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><title type='text'>Simple login con janrain</title><content type='html'>Gracias a la comunidad alt net hipano, me enteré de &lt;a href="http://www.janrain.com/products/engage/social-login"&gt;janrain&lt;/a&gt;, que entre otras cosas, provee un servicio que sirve para autenticar usando cuentas de distintos proveedores (google, facebook, twitter, etc).&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Hace poco me tocó agregar un login simple a una aplicación, por lo que decidí probarlo. Es muy fácil. Luego de crear una cuenta y una aplicación, hay que obtener el widget de login. El sitio es muy claro y te va guiando paso a paso.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Paso 1: completar la url de token. Luego que el usuario se loguea, el browser del usuario hace un post a esta url pasando un token. Lo bueno es que la url puede ser localhost, por lo que se puede usar el servicio en un ambiente de desarrollo que no sea visible desde internet.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Paso 2: explica que hacer con ese token. Básicamente, nuestra app tiene que llamar a un servicio de janrain por http, que devuelve un xml o json con los datos del usuario.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Paso 3: elegir los providers. Se trata de elegir si me quiero autenticar con google, facebook, twitter, etc.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lo simple de todo es es cómo se puede integrar a una aplicación asp mvc. Vamos por pasos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Primero una interface muy simple para poder autenticar:&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;public interface ITokenAuthentication {&lt;/div&gt;&lt;div&gt;    string Login(string token);&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Aca se puede ver la interface y su implementación:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://codepaste.net/qzgkmz"&gt;http://codepaste.net/qzgkmz&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Luego, le decimos al web config que vamos a usar form authentication:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&amp;lt;authentication mode="Forms"&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;&amp;lt;forms loginUrl="~/Home/Index" /&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&amp;lt;/authentication&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Creamos un controller de autenticación (es al que janrain hace el redirect después que el usuario se loguea):&lt;/div&gt;&lt;div&gt;&lt;a href="http://codepaste.net/icpni4"&gt;http://codepaste.net/icpni4&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;[HttpPost]&lt;/div&gt;&lt;div&gt;public ActionResult Token(string token) {&lt;/div&gt;&lt;div&gt;    string username = tokenAuthentication.Login(token);&lt;/div&gt;&lt;div&gt;    FormsService.SignIn(username, true);&lt;/div&gt;&lt;div&gt;    return RedirectToAction("Index", "Presupuestador");&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;public ActionResult LogOff() {&lt;/div&gt;&lt;div&gt;    FormsService.SignOut();&lt;/div&gt;&lt;div&gt;    return RedirectToAction("Index", "Home");&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;br /&gt;Y una vista, donde tenemos que poner antes del body:&lt;br /&gt;&lt;div&gt;&lt;div&gt;    &amp;lt;script type="text/javascript"&amp;gt;&lt;/div&gt;&lt;div&gt;        var rpxJsHost = (("https:" == document.location.protocol) ? "https://" : "http://static.");&lt;/div&gt;&lt;div&gt;        document.write(unescape("%3Cscript src='" + rpxJsHost + "rpxnow.com/js/lib/rpx.js' type='text/javascript'%3E%3C/script%3E"));&lt;/div&gt;&lt;div&gt;    &amp;lt;/script&amp;gt;&lt;/div&gt;&lt;div&gt;    &amp;lt;script type="text/javascript"&amp;gt;&lt;/div&gt;&lt;div&gt;        RPXNOW.overlay = true;&lt;/div&gt;&lt;div&gt;        RPXNOW.language_preference = 'es';&lt;/div&gt;&lt;div&gt;    &amp;lt;/script&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La vista podría contener algo como esto:&lt;/div&gt;&lt;div&gt;&lt;div&gt;    &amp;lt;% if (Request.IsAuthenticated) { %&amp;gt;&lt;/div&gt;&lt;div&gt;        Bienvenido &amp;lt;b&amp;gt;&amp;lt;%= Html.Encode(Page.User.Identity.Name) %&amp;gt;&amp;lt;/b&amp;gt;!&lt;/div&gt;&lt;div&gt;        [ &amp;lt;%= Html.ActionLink("Salir", "LogOff", "Account") %&amp;gt; ]&lt;/div&gt;&lt;div&gt;    &amp;lt;% } else { %&amp;gt; &lt;/div&gt;&lt;div&gt;        &amp;lt;a class="rpxnow" onclick="return false;" href="https://myJanrainApp.rpxnow.com/openid/v2/signin?token_url=&amp;lt;%= Server.UrlEncode(Request.Url.Scheme + "://" + Request.Url.Authority + Url.Action("Token", "Account")) %&amp;gt;"&amp;gt;Ingresar&amp;lt;/a&amp;gt;&lt;/div&gt;&lt;div&gt;    &amp;lt;% } %&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Finalmente, usando un filtro, le decimos al controller X que queremos restringir al acceso para ciertos usuarios:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;    [Authorize(Users = "myUserName, myFriendUserName")]&lt;/div&gt;&lt;div&gt;    public class MyController : Controller&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;y creo eso es todo.&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-6423738644378883725?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=6423738644378883725' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/6423738644378883725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/6423738644378883725'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2011/04/simple-login-con-janrain.html' title='Simple login con janrain'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-1731461871464666629</id><published>2010-09-17T05:47:00.000-07:00</published><updated>2010-09-17T06:43:22.544-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Juegos para aprender en Ágiles@BsAs</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_KJxP8stBacs/TJNkbqdodGI/AAAAAAAAAEE/RKI-nCFOgnc/s1600/picando.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 221px;" src="http://4.bp.blogspot.com/_KJxP8stBacs/TJNkbqdodGI/AAAAAAAAAEE/RKI-nCFOgnc/s400/picando.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5517864394876810338" /&gt;&lt;/a&gt;&lt;br /&gt;Luego de una breve interrupción, la comunidad ágil de bs. as. retomó sus &lt;a href="http://www.agiles.org/agiles-bsas"&gt;encuentros de los miércoles&lt;/a&gt;, esta vez en la oficinas de &lt;a href="http://www.southworks.net/"&gt;SouthWorks&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La propuesta en este caso fue realizar juegos ágiles en un formato open space. Junto con &lt;a href="http://tierraygirasoles.blogspot.com/"&gt;Ingrid Astiz&lt;/a&gt; y &lt;a href="http://twitter.com/aeidelman"&gt;Adrian Eidelman&lt;/a&gt; preparamos la siguiente visión de la actividad:&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;La idea de este encuentro es experimentar trayendo a la comunidad juegos nuevos e invitar a quienes estén interesados en practicar habilidades de facilitación a guíar un juego. Proponemos salir de los juegos convencionales que se hacen generalmente en los cursos y poner un poco de nuestra creatividad para descubrir &lt;a href="http://www.agilitrix.com/2010/05/how-to-create-your-own-game/"&gt;juegos nuevos&lt;/a&gt; o poco conocidos, introducir alguna variación a uno conocido que permita otra experiencia y porque no inventar alguno.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;Estos fueron los juegos que propusieron los participantes (probablemente me olvide algún juego o facilitador). Algunos de los juegos tienen link (x si alguien quiere facilitarlo alguna vez):&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;ia!, hanko!, ai! (muy bueno p/romper el hielo)&lt;/li&gt;&lt;li&gt;my mind in scrum (x &lt;a href="http://twitter.com/aeidelman"&gt;Adrian Eidelman&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.industriallogic.com/games/pairdraw.html"&gt;pair draw&lt;/a&gt; (x &lt;a href="http://twitter.com/clodobidau"&gt;Claudio Bidau&lt;/a&gt;)&lt;br /&gt;&lt;img src="http://2.bp.blogspot.com/_KJxP8stBacs/TJNp8gRaAxI/AAAAAAAAAEM/xXmDbVcOEJY/s400/pair+draw.jpg" style="cursor:pointer; cursor:hand;width: 400px; height: 225px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5517870456634999570" /&gt;&lt;a href="http://www.marshmallowchallenge.com/Welcome.html"&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.marshmallowchallenge.com/Welcome.html"&gt;el desafío del malvavisco&lt;/a&gt; (x mi)&lt;br /&gt;&lt;img src="http://4.bp.blogspot.com/_KJxP8stBacs/TJNqnXVlGlI/AAAAAAAAAEU/WbFALzaRCW8/s400/malvavisco.jpg" style="cursor:pointer; cursor:hand;width: 225px; height: 400px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5517871192970959442" /&gt;&lt;/li&gt;&lt;li&gt;origami (creado x &lt;a href="http://twitter.com/estebanroasio"&gt;Esteban Roasio&lt;/a&gt; y facilitado por el duo dinámico &lt;a href="http://crealogar.blogspot.com/"&gt;Ricardo Colusso&lt;/a&gt; y &lt;a href="http://twitter.com/pablitux"&gt;Pablo Tortorella&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;yo mando, tu mandas (o algo así...)&lt;/li&gt;&lt;li&gt;vista (genial, parece un truco de David Copperfield)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Fue un encuentro muy divertido, donde todos aportamos algo proponiendo juegos, participando, debatiendo, etc y creando entre todos un lindo espacio para aprender.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;ahh, gracias &lt;a href="http://twitter.com/martinsalias"&gt;Martín Salías&lt;/a&gt; x las fotos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-1731461871464666629?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=1731461871464666629' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1731461871464666629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1731461871464666629'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/09/juegos-para-aprender-en-agilesbsas.html' title='Juegos para aprender en Ágiles@BsAs'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_KJxP8stBacs/TJNkbqdodGI/AAAAAAAAAEE/RKI-nCFOgnc/s72-c/picando.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-9057240234511924165</id><published>2010-08-30T18:08:00.000-07:00</published><updated>2011-11-11T11:47:11.108-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='enseñaje'/><category scheme='http://www.blogger.com/atom/ns#' term='proposito'/><title type='text'>Armando un campamento colaborativamente - 1ra parte</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_HTsF5nAznt0/THxdbfJB5oI/AAAAAAAACDQ/4WZxd9KDkp0/s1600/campamento.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 262px;" src="http://1.bp.blogspot.com/_HTsF5nAznt0/THxdbfJB5oI/AAAAAAAACDQ/4WZxd9KDkp0/s400/campamento.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5511382770791868034" /&gt;&lt;/a&gt;&lt;br /&gt;El sábado pasado nuevamente los chicos del clan del grupo scout Santa Cruz fueron víctimas de otro experimento. La actividad para el sábado era armar la planificación del próximo campamento de grupo.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para calentar los motores, hicimos el juego &lt;a href="http://www.industriallogic.com/games/pairdraw.html"&gt;pair draw&lt;/a&gt;, para experimentar el potencial de trabajar por pares.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Luego elaboramos el marco del campamento (o visión). Para eso hicimos un ejercicio muy simple. De a pares armamos una lista de posibles marcos. Luego nos juntamos de a 4 y armamos una nueva lista. Finalmente, armamos una propuesta entre todos y quedó "32 bit camp", relacionado con los juegos tipo Monkey Island, Age of Empires y Mario Bross, que fueron los marcos finalistas.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El siguiente paso fue armar un conjunto de propuestas de actividades, encuadradas bajo el marco propuesto. Para eso cada uno escribió las actividades que se le ocurrieron en un hoja. Luego pasábamos la hoja al de al lado, tomábamos la del compañero y usábamos las actividades escritas como disparadores de nuevas ideas (triple nickels).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Al finalizar pegamos las propuestas en un pizarrón y las priorizamos por puntos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://2.bp.blogspot.com/_HTsF5nAznt0/THxZx_4M3QI/AAAAAAAACDA/dmKewTcQ8rw/s400/IMG_0178.jpg" style="cursor:pointer; cursor:hand;width: 300px; height: 400px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5511378759490264322" /&gt;&lt;img src="http://2.bp.blogspot.com/_HTsF5nAznt0/THxaLVYKYAI/AAAAAAAACDI/diO8sxMAXM8/s400/IMG_0180.jpg" style="cursor:pointer; cursor:hand;width: 300px; height: 400px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5511379194758193154" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Luego, hicimos un juego conocido cómo "censo de paises", para aprender a estimar colaborativamente:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/LxwKhEwWQHM?fs=1&amp;amp;hl=es_ES&amp;amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/LxwKhEwWQHM?fs=1&amp;amp;hl=es_ES&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;y aplicamos lo que aprendimos p/estimar las actividades del campamento haciendo &lt;a href="http://www.planningpoker.com/detail.html"&gt;planning poker&lt;/a&gt;, empezando por las que consideramos más importantes:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/W8i03u_dDvc?fs=1&amp;amp;hl=es_ES&amp;amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/W8i03u_dDvc?fs=1&amp;amp;hl=es_ES&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Si bien no pudimos terminar ese día con la planificación, hicimos lo mejor posible enfocándonos en las cosas que nos parecieron importantes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esta historia continuará...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-9057240234511924165?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=9057240234511924165' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/9057240234511924165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/9057240234511924165'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/08/armando-un-campamento-colaborativamente.html' title='Armando un campamento colaborativamente - 1ra parte'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_HTsF5nAznt0/THxdbfJB5oI/AAAAAAAACDQ/4WZxd9KDkp0/s72-c/campamento.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-7867273730164885207</id><published>2010-08-12T08:43:00.000-07:00</published><updated>2010-09-03T10:57:33.552-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Scrum Master: un trabajo que no es fácil</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_HTsF5nAznt0/TGQwJTJeDDI/AAAAAAAACCE/hPlyEBxed7g/s1600/trabajo_dificil.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_HTsF5nAznt0/TGQwJTJeDDI/AAAAAAAACCE/hPlyEBxed7g/s400/trabajo_dificil.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5504577580870536242" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Scrum es simple, pocas reglas, basado en principios, técnicas simples, pero muy difícil de implementar. El trabajo del scrum master, dueño del proceso, no es un trabajo fácil ya que encierra &lt;a href="http://blog.kudewe.com/2009/11/1er-dia-curso-scrum-master.html"&gt;grandes desafíos&lt;/a&gt;. Pero, con algunas distinciones, se pueden abrir un mundo de posibilidades:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;El entregable es el producto y el equipo (vía &lt;a href="http://twitter.com/ajlopez"&gt;@ajlopez&lt;/a&gt;)&lt;br /&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/2009/08/06/tales-from-the-scrum-su-equipo-el-pr-243-ximo-nivel.aspx"&gt;http://msmvps.com/blogs/lopez/archive/2009/08/06/tales-from-the-scrum-su-equipo-el-pr-243-ximo-nivel.aspx&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Una buena manera de mejorar un proceso estable es cambiando el proceso. Acelerarlo probablemente lo empeore.&lt;/li&gt;&lt;li&gt;Un equipo no es más productivos cuando el pipeline de trabajo está lleno. Si se maximiza la asignación de recursos, no se obtiene el mejor rendimiento. Un equipo a full es cómo un motor sin aceite, puede que todas las piezas encajen a la perfección, pero necesitamos del aceite para que funcionen bien en movimiento.&lt;/li&gt;&lt;li&gt;Facilitar el proceso en lugar de dirigirlo. Cuando vemos que algo no funciona bien, en lugar de intervenir directamente y corregirlo, podemos ser un espejo que refleje los problemas que vemos al equipo y dejar que ellos encuentren la mejor manera de resolverlos.&lt;/li&gt;&lt;li&gt;Cultivar vs construir. El trabajo de un scrum master tiene más que ver con cultivar que construir, ya que no controlamos directamente el resultado. Verlo de esta manera ayuda a poner el foco en generar las condiciones para que el equipo sea auto organizado y colaborativo.&lt;/li&gt;&lt;li&gt;Ritmo. Cambiar de ritmo tiene costo, ya sea que se acelera o desacelera la velocidad.&lt;/li&gt;&lt;li&gt;Las personas no somos buenas haciendo multi-tasking.&lt;/li&gt;&lt;li&gt;Una visión: calidad, productividad y felicidad.&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.kudewe.com/2010/03/ideas-de-lisa-adkins-para-fomentar-el.html"&gt;Ideas de Lisa Adkins&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;“No temas a los errores. No los hay.” – Miles Davis. El error es una inversión en aprendizaje.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-7867273730164885207?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=7867273730164885207' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/7867273730164885207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/7867273730164885207'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/08/scrum-master-un-trabajo-que-no-es-facil.html' title='Scrum Master: un trabajo que no es fácil'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_HTsF5nAznt0/TGQwJTJeDDI/AAAAAAAACCE/hPlyEBxed7g/s72-c/trabajo_dificil.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-3103183420375279380</id><published>2010-08-09T11:06:00.000-07:00</published><updated>2011-11-11T11:47:11.108-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='enseñaje'/><category scheme='http://www.blogger.com/atom/ns#' term='proposito'/><title type='text'>Asado y scrum con los chicos de la Cooperativa Hormingón</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_HTsF5nAznt0/TGCUeee8-yI/AAAAAAAACB8/eD4olYhuPcY/s1600/Imagen0244.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 308px; height: 400px;" src="http://4.bp.blogspot.com/_HTsF5nAznt0/TGCUeee8-yI/AAAAAAAACB8/eD4olYhuPcY/s400/Imagen0244.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5503561995946621730" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Ayer junto con mi amigo Clodo, facilitamos un taller de scrum para los chicos de la &lt;a href="http://www.cooperativahormigon.com.ar/"&gt;cooperativa Hormigón&lt;/a&gt;. La verdad fue una experiencia muy buena para todos.&lt;br /&gt;&lt;br /&gt;Algo interesante que hicimos, a diferencia de otros talleres, es que en este construimos la visión en conjunto, haciendo un juego conocido como tríbus y nos quedó esto:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;"Mejorar el método de laburo que venimos construyendo hace 3 años con técnicas nuevas"&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Para conseguir la visión, escribimos para cada actividad el nombre, el para que y la duración y les pedimos a ellos que las prioricen según lo que ellos consideran los acerca más a la visión. Nos quedó así:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Máquina humana, para entender la esencia de la colaboración y el ritmo, 20'&lt;/li&gt;&lt;li&gt;Multitasking, para entender porqué es bueno focalizarse, 10'&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Pelotas, para entender porque es importante la retrospectiva, 10'&lt;br /&gt;&lt;img src="http://2.bp.blogspot.com/_HTsF5nAznt0/TGCQEPQXF-I/AAAAAAAACBk/jvXftwB04x0/s200/Imagen0245.jpg" style="cursor:pointer; cursor:hand;width: 200px; height: 169px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5503557147135776738" /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.kudewe.com/2010/08/un-poco-de-supervivencia-para-priorizar.html"&gt;Supervivencia&lt;/a&gt;, para entender cómo priorizar riesgos, 30'&lt;br /&gt;&lt;img src="http://1.bp.blogspot.com/_HTsF5nAznt0/TGCQ-C4meUI/AAAAAAAACBs/tL5hSKWY18k/s200/Imagen0248.jpg" style="cursor:pointer; cursor:hand;width: 200px; height: 150px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5503558140247308610" /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://softwareagil.blogspot.com/2009/06/juegos-en-educacion.html"&gt;Pajarraco&lt;/a&gt;, para aprender a construir algo empíricamente, 60'&lt;br /&gt;&lt;img src="http://4.bp.blogspot.com/_HTsF5nAznt0/TGCRqLoZPUI/AAAAAAAACB0/i3PRU17_Iuo/s200/Imagen0255.jpg" style="cursor:pointer; cursor:hand;width: 200px; height: 150px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5503558898509495618" /&gt;&lt;/li&gt;&lt;li&gt;Censo de Paises, para estimar guiados por consenso, 10'&lt;/li&gt;&lt;li&gt;Pair drawing, para entender el potencial de la colaboración, 20'&lt;/li&gt;&lt;li&gt;Retrospectiva, 20' &lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Al finalizar cada una de las actividades, hicimos una ronda de preguntas abiertas que nos permitieran descubrir qué cosas aprendimos y contrastar cómo &lt;a href="http://blog.kudewe.com/2010/01/el-espiritu-de-scrum.html"&gt;los principios de scrum&lt;/a&gt; ayudan a mejorar el trabajo en equipo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Tuvimos algunos imprevistos, como un gran asado y algunas actividades que nos llevaron un poco más de tiempo. Al final hicimos una retrospectiva del taller, se nos hizo un poco largo, gustó la didáctica y aprendimos herramientas para trabajar mejor. Uno de los juegos que más sorprendió a todos fue el de multitasking y el de estimación (países)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-3103183420375279380?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=3103183420375279380' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3103183420375279380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3103183420375279380'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/08/asado-y-scrum-con-los-chicos-de.html' title='Asado y scrum con los chicos de la Cooperativa Hormingón'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_HTsF5nAznt0/TGCUeee8-yI/AAAAAAAACB8/eD4olYhuPcY/s72-c/Imagen0244.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-5403314718303807446</id><published>2010-08-08T18:32:00.000-07:00</published><updated>2011-11-11T11:47:11.109-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='enseñaje'/><title type='text'>Un poco de supervivencia para priorizar riesgos</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_HTsF5nAznt0/TF9sTKJCyrI/AAAAAAAACBA/Sg2Dp0DLvV8/s1600/matienzo+cueva.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 267px;" src="http://4.bp.blogspot.com/_HTsF5nAznt0/TF9sTKJCyrI/AAAAAAAACBA/Sg2Dp0DLvV8/s400/matienzo+cueva.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5503236346065636018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Algo que me parece interesante de las actividades al aire libre, es que la naturaleza es un gran escenario de aprendizaje. Particularmente, &lt;a href="http://dondevuelaelcondor.blogspot.com/2010/07/refugiados-empezando-por-el-principio.html"&gt;la supervivencia en terrenos agrestes&lt;/a&gt; es un juego muy bueno para priorizar riesgos en un entorno cambiante. Esta es una actividad que hicimos hoy con los chicos de la cooperativa Hormigón:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"Somos un grupo de 4 personas que viajamos en avioneta cruzando los andes. Mientras cruzábamos por la zona de Bariloche, uno de los motores empieza a fallar y el avión se estrella. Lamentablemente el piloto no sobrevive al accidente. En cambio, los 4 tripulantes consiguen sobrevivir sin lesiones de gravedad. Son las 3 de la tarde, nos encontramos en un bosque nevado rodeado de montañas. Es el mes de agosto y sabemos que durante el día hace 0 grados aprox y por la noche puede bajar a -20. Sabemos que estamos a 40km de la ciudad y escuchamos a lo lejos el ruido de un arroyo. ."&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El ejercicio consiste en priorizar en 10 minutos la siguiente lista de cosas para sobrevivir:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;encendedor sin bencina&lt;/li&gt;&lt;li&gt;hacha&lt;/li&gt;&lt;li&gt;pistola calibre 45 c/1 bala&lt;/li&gt;&lt;li&gt;espejo&lt;/li&gt;&lt;li&gt;diarios (1 por persona)&lt;/li&gt;&lt;li&gt;virulana&lt;/li&gt;&lt;li&gt;ropa extra&lt;/li&gt;&lt;li&gt;naylon de 3x2&lt;/li&gt;&lt;li&gt;mapa&lt;/li&gt;&lt;li&gt;botella de whisky&lt;/li&gt;&lt;li&gt;brújula&lt;/li&gt;&lt;li&gt;1 chocolate familiar&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Algunas preguntas interesantes para hacer al finalizar la lista:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Si solo pudieran elegir 1 elemento, se sienten conformes con la priorización que hicieron?&lt;/li&gt;&lt;li&gt;Y si pudieran elegir 3?&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;La siguiente consigna es armar en 10 minutos una lista de los riesgos del escenario identificando para cada uno el impacto y la probabilidad de ocurrencia (alto, medio, bajo) y priorizarlos (1ro lo que tiene más impacto y más probabilidad).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La tercer consigna es volver a priorizar en 10 minutos la lista de cosas, pero teniendo en cuenta los riesgos identificados. Es decir, tengo que elegir primero las cosas que me cuidan de los riesgos más graves.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Al finalizar, algunas preguntas para debatir:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;En cual de las 2 listas sienten que tienen más chances de supervivencia?&lt;/li&gt;&lt;li&gt;Les parecen útiles la distinción de impacto y probabilidad de ocurrencia para priorizar riesgos?&lt;/li&gt;&lt;li&gt;De qué otra manera lo harían?&lt;/li&gt;&lt;li&gt;Cómo fue el proceso de toma de decisiones al elaborar las 2 listas? Qué diferencias encontraron?&lt;/li&gt;&lt;li&gt;Encontraron en este juego alguna similitud con la realidad?&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Este juego es una variación de este otro:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://wilderdom.com/games/descriptions/SurvivalScenarios.html"&gt;http://wilderdom.com/games/descriptions/SurvivalScenarios.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-5403314718303807446?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=5403314718303807446' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/5403314718303807446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/5403314718303807446'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/08/un-poco-de-supervivencia-para-priorizar.html' title='Un poco de supervivencia para priorizar riesgos'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_HTsF5nAznt0/TF9sTKJCyrI/AAAAAAAACBA/Sg2Dp0DLvV8/s72-c/matienzo+cueva.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-3657411892797113159</id><published>2010-08-07T10:39:00.000-07:00</published><updated>2011-11-11T11:47:11.110-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='enseñaje'/><category scheme='http://www.blogger.com/atom/ns#' term='proposito'/><title type='text'>Scouts, scrum y panchos</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_KJxP8stBacs/THO3qvYXCFI/AAAAAAAAADU/vWh-dkFeusM/s1600/DSC00206.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_KJxP8stBacs/THO3qvYXCFI/AAAAAAAAADU/vWh-dkFeusM/s400/DSC00206.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5508948714105276498" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;El viernes pasado con mi amigo Clodo hicimos un taller con la siguiente visión "Aprender herramientas para resolver problemas con recursos limitados". Las víctimas fueron los chicos del Clan del grupo Scout Santa Cruz.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La idea era darles herramientas a los chicos que los ayudaran a ponerse objetivos y cumplirlos. Apuntamos a enseñar los principios en lugar de la técnica o las recetas. En general los problemas que les tocan resolver tienen que ver con supervivencia, organizar un servicio, hacer un bastón (revista interna), etc. En todos ellos cuentan con recursos limitados para poder hacerlo. Así que tomando &lt;a href="http://blog.kudewe.com/2010/01/el-espiritu-de-scrum.html"&gt;los principios de scrum&lt;/a&gt;, quisimos presentarles estas distinciones:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Empirismo&lt;/li&gt;&lt;li&gt;Priorización&lt;/li&gt;&lt;li&gt;Ritmo&lt;/li&gt;&lt;li&gt;Auto-organización&lt;/li&gt;&lt;li&gt;Colaboración&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Para eso, hicimos una serie de juegos que nos permitieron ver cómo estos principios afectan a un equipo y nos ayudan a conseguir productividad, calidad y felicidad.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Uno de ellos fue "multitasking", donde vimos que las personas no somos buenas haciendo varias cosas al mismo tiempo:&lt;/div&gt;&lt;div&gt;&lt;img src="http://4.bp.blogspot.com/_KJxP8stBacs/THO4bsB8NhI/AAAAAAAAADc/JxEQ0wvlIWY/s400/DSC00207.JPG" style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5508949555019527698" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El "&lt;a href="http://softwareagil.blogspot.com/2009/06/juegos-en-educacion.html"&gt;pajarraco&lt;/a&gt;", facilitado por el mostro:&lt;/div&gt;&lt;div&gt;&lt;img src="http://4.bp.blogspot.com/_KJxP8stBacs/THO6CqFQYMI/AAAAAAAAADk/k0pQLZy6V14/s400/DSC00202.JPG" style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5508951324023087298" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Acá está el pájaro mitológico Hozambique y su hijito:&lt;/div&gt;&lt;div&gt;&lt;img src="http://2.bp.blogspot.com/_KJxP8stBacs/THO6ZtWWKOI/AAAAAAAAADs/RnBgQoWkZKQ/s400/DSC00205.JPG" style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5508951720037066978" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En este juego aprendimos la importancia de priorizar las cosas que más valor me dan con menor costo y las ventajas de trabajar usando un proceso empírico:&lt;/div&gt;&lt;div&gt;&lt;img src="http://4.bp.blogspot.com/_KJxP8stBacs/THO6mDJSSGI/AAAAAAAAAD0/tYBrlWD2PNY/s400/DSC00208.JPG" style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5508951932046297186" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;También hicimos otros, como la "máquina humana" para experimentar los cambios de ritmo y el potencial de la colaboración, y "pelotas" para entender el valor de la inspección y adaptación (empirismo).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Fue una linda noche, terminamos con una picada y unos panchos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-3657411892797113159?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=3657411892797113159' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3657411892797113159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3657411892797113159'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/08/scouts-scrum-y-panchos.html' title='Scouts, scrum y panchos'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_KJxP8stBacs/THO3qvYXCFI/AAAAAAAAADU/vWh-dkFeusM/s72-c/DSC00206.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-3026609531143691986</id><published>2010-07-30T12:54:00.000-07:00</published><updated>2011-11-11T11:42:49.129-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='proposito'/><title type='text'>150x300 Yo colaboré, te invito</title><content type='html'>&lt;div&gt;Hace unos días me llegó por mail esta invitación a sumar más personas a la causa conocida como &lt;a href="http://www.150x300.com.ar/"&gt;150 x 300&lt;/a&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_HTsF5nAznt0/TFMuShl6lgI/AAAAAAAAB_c/9sTRsruLCAA/s1600/150x300+-+Colabora.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 396px;" src="http://2.bp.blogspot.com/_HTsF5nAznt0/TFMuShl6lgI/AAAAAAAAB_c/9sTRsruLCAA/s400/150x300+-+Colabora.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5499790465739429378" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-3026609531143691986?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=3026609531143691986' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3026609531143691986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3026609531143691986'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/07/150x300-yo-colabore-te-invito.html' title='150x300 Yo colaboré, te invito'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_HTsF5nAznt0/TFMuShl6lgI/AAAAAAAAB_c/9sTRsruLCAA/s72-c/150x300+-+Colabora.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-7971472733921112291</id><published>2010-06-21T15:59:00.000-07:00</published><updated>2010-09-03T10:58:51.122-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emprender'/><title type='text'>La rueda loca en una servilleta</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_HTsF5nAznt0/TB_v4Z_6HJI/AAAAAAAAB5k/y8QSWL_O4wU/s1600/servilleta2.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_HTsF5nAznt0/TB_v4Z_6HJI/AAAAAAAAB5k/y8QSWL_O4wU/s400/servilleta2.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5485366623491202194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esto que algunos llamamos &lt;a href="http://twitter.com/#search?q=%23laruedaloca"&gt;#laruedaloca&lt;/a&gt; de &lt;a href="http://hacer-historia.com.ar/"&gt;Hacer Historia&lt;/a&gt;, es una herramienta para diseñar la coordinación de las conversaciones necesarias para producir valor en mis clientes (donde el valor es un juicio de los clientes).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Con esta "simple" herramienta podemos descubrir espacios de acción que no teníamos en claro, pensar en los posibles quiebres que pueden ocurrir, cosas que pueden salir mal, darnos cuenta de qué cosas necesitamos pedir y a quien, ya que no se puede hacer todo solo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sin entrar en detalles me gustaría contar lo que hay en el medio de la rueda. La rueda gira en torno a las preocupaciones de mis clientes, que tienen que ver con:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Ver el negocio en dimensiones que hasta entonces no podía ver.&lt;/li&gt;&lt;li&gt;Entender mejor su negocio para conseguir objetivos particulares (bajar costos, expandir el negocio, aprovechar mejor los recursos, etc).&lt;/li&gt;&lt;li&gt;Contar con información clave a tiempo para tomar decisiones.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La esencia de mi oferta se basa en:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://agilemanifesto.org/"&gt;Agilidad&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Soluciones simples pero de alto valor p/el cliente.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Algo anecdótico es porque elegí una servilleta para hacer este ejercicio. Algunas razones:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;En una servilleta lo importante es el contenido, no la forma.&lt;/li&gt;&lt;li&gt;Dicen que &lt;a href="http://alteregodelargazona.blogspot.com/2010/03/grandes-ideas-empiezan-en-las.html"&gt;las grandes ideas empiezan en las servilletas&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Este post va dedicados a todos mis amigos de Hacer Historia, que me ayudaron con esta rueda y me mostraron posibilidades ahí donde yo estaba ciego.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-7971472733921112291?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=7971472733921112291' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/7971472733921112291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/7971472733921112291'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/06/la-rueda-loca-en-una-servilleta.html' title='La rueda loca en una servilleta'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_HTsF5nAznt0/TB_v4Z_6HJI/AAAAAAAAB5k/y8QSWL_O4wU/s72-c/servilleta2.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-4729385544023088028</id><published>2010-06-15T17:03:00.000-07:00</published><updated>2010-09-03T10:58:51.123-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><title type='text'>Generación de código, seguimos sin ver la luz?</title><content type='html'>&lt;div&gt;En el pasado &lt;a href="http://www.agiles.org/agile-open-tour/ba-2010-coding"&gt;agile open de programación&lt;/a&gt;, junto con &lt;a href="http://twitter.com/claudiomeschini"&gt;@claudiomeschini&lt;/a&gt;, &lt;a href="http://twitter.com/mariodallago"&gt;@mariodallago&lt;/a&gt; y otra persona más que no recuerdo quien era, participamos de una sesión que los muchachos llamaron "Generación de código, seguimos sin ver la luz?" en referencia al maestro &lt;a href="http://twitter.com/ajlopez"&gt;@ajlopez&lt;/a&gt;, alguien que para mi hace aportes muy interesantes a la comunidad. El material del encuentro lo pueden encontrar acá: &lt;a href="http://www.agiles.org/agile-open-tour/ba-2010-coding/resultados"&gt;http://www.agiles.org/agile-open-tour/ba-2010-coding/resultados&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hablamos sobre experiencias personales en el uso de generación de código p/construir aplicaciones y sobre temas relacionados. Voy a tratar de hacer un resumen de los temas que tocamos. Visiten el blog de Claudio, que en cualquier momento escribe algo también:&lt;/div&gt;&lt;div&gt;&lt;a href="http://claudiomeschini.blogspot.com/"&gt;http://claudiomeschini.blogspot.com/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Experiencias personales de uso&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Claudio comentó sobre su proyecto &lt;a href="http://claudiomeschini.blogspot.com/2009/01/quetzal-finalmente-disponible.html"&gt;Quetzal&lt;/a&gt; de generación de código. Yo comenté sobre una experiencia de hace unos años &lt;a href="http://msmvps.com/blogs/lopez/archive/2009/06/30/un-caso-de-uso-de-ajgenesis.aspx"&gt;usando AjGénesis en un proyecto real&lt;/a&gt; y la de hace unas semanas, donde a partir de un modelo muy simple, generamos una solución web mvc con las características que venimos usando últimamente (service layer, domain model, repository, log4net, structure map, manejo de errores c/páginas amigables, etc). También generamos los scripts de nAnt p/integración continua con cruise control y deploy automatico al ambiente de QA.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Modelos abstractos&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dijimos que algo destacable de la generación de código es trabajar con modelos abstractos. A partir del modelo, es posible generar código con una herramienta (ej: &lt;a href="http://www.ajlopez.com/ajgenesis/"&gt;AjGénesis&lt;/a&gt;) o en runtime (ej: mapeos de &lt;a href="http://nhforge.org/"&gt;nhibernate&lt;/a&gt;). De hecho hicimos extensible el concepto a no solo generar código, sino cualquier artefacto de texto como pueden ser script de base de datos, archivos de mapeo nhibernate, archivos de configuración, etc.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Una distinción importante para hacer en el modelo es separar el modelo de la tecnología o aspectos de implementación (como podrían ser paths, lenguage de programación, etc).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Algo interesante de AjGénesis es que el modelo se puede cargar de cualquier lado. Por ejemplo se podría cargar una parte del modelo a partir de las clases de una dll. Y luego completar ese modelo con más información, cómo por ejemplo que campos son requeridos p/armar un ABM.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Otra cosa que puede servir a la hora de diseñar un modelo es la de favorecer &lt;a href="http://en.wikipedia.org/wiki/Convention_over_configuration"&gt;convención sobre configuración&lt;/a&gt;, para que sea menor la cantidad de cosas a definir en el mismo. Por ejemplo, podría asumir que todos los campos de mis entidades son requeridos y especificar puntualmente cuales no.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Mantenimiento&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Uno de los problemas que a veces se presenta, es que después de generar el código surgen necesidades que me obligan a cambiarlo. Si el cambio lo hacemos directamente en el código, este gap es costoso de mantener y me pierdo de volver a cambiar el modelo y regenerar nuevamente. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Una manera de lidiar con esto vimos que es importante crear buenas abstracciones que separen la parte del problema que puede ser resuelta con generación de código, de la que no. De esa forma, hacer un cambio se traduce a modificar el modelo y volver a generar el código.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Cuando conviene usar generación de código?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Pregunta de respuesta fácil, depende... De qué depende? eso es más difícil de responder. La generación de código es una manera de automatizar tareas repetitivas, por lo que si hay algo que se repite muchas veces, podría considerarla como una buena opción.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Criterios de evaluación&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Conversamos también sobre algunos criterios para evaluar una herramienta de generación de código:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;El código generado debería ser el mismo que escribiría a mano sin usar la herramienta.&lt;/li&gt;&lt;li&gt;Una prueba ácida sería que a partir del mismo modelo, debería ser posible generar código para otra tecnología.&lt;/li&gt;&lt;li&gt;El modelo a definir debe ser libre.&lt;/li&gt;&lt;li&gt;Posibilidad de cargar este modelo de cualquier lado: xml, excel, txt, dll, tablas, etc.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Pueden ver mucha más información sobre este tema en el blog de &lt;a href="http://twitter.com/ajlopez"&gt;@ajlopez&lt;/a&gt;:&lt;/div&gt;&lt;div&gt;&lt;a href="http://msmvps.com/blogs/lopez/archive/tags/AjGenesis/default.aspx"&gt;http://msmvps.com/blogs/lopez/archive/tags/AjGenesis/default.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div&gt;pd: este post salió hablando x twitter con &lt;a href="http://twitter.com/jfroma"&gt;@jfroma&lt;/a&gt; y @&lt;a href="http://twitter.com/ajlopez"&gt;ajlopez&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-4729385544023088028?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=4729385544023088028' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/4729385544023088028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/4729385544023088028'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/06/generacion-de-codigo-seguimos-sin-ver.html' title='Generación de código, seguimos sin ver la luz?'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-2181542219703302291</id><published>2010-04-08T16:48:00.001-07:00</published><updated>2010-09-03T10:59:09.796-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='creatividad'/><category scheme='http://www.blogger.com/atom/ns#' term='emprender'/><title type='text'>El cuento de Juan Carlos</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_HTsF5nAznt0/S8IzmGgZS0I/AAAAAAAABzo/nujEuhMXZXA/s1600/three_little_pigs.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 320px;" src="http://2.bp.blogspot.com/_HTsF5nAznt0/S8IzmGgZS0I/AAAAAAAABzo/nujEuhMXZXA/s400/three_little_pigs.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5458982428000996162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Este por suerte no es el cuento del tío, sino el que nos cuenta &lt;a href="http://juancarloslucas.com.ar/"&gt;Juan Carlos Lucas&lt;/a&gt; en &lt;a href="http://hacer-historia.com.ar/"&gt;Hacer Historia&lt;/a&gt; y tiene que ver con cómo vemos al mundo.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El cuento más fácil es en el cual los resultados dependen del contexto. Donde uno no pude hacer nada, ya que es así por alguna razón ajena a nosotros. Pero esto es, según el cuento de &lt;a href="http://twitter.com/juancarloslucas"&gt;@juancarloslucas&lt;/a&gt;, sólo la punta de iceberg. Por debajo de la superficie del agua los resultados dependen de las acciones. Hasta acá, no había nada nuevo para mi...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Buceando un poco más profundo vimos que las acciones dependen de las conversaciones. No es loco pensarlo, generalmente hago las cosas porque antes las converso. Y ciertas conversaciones me posicionan desde un lugar donde mis acciones serán distintas. Siempre puedo elegir las conversaciones en las que quiero participar.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Un poco más profundo, las conversaciones dependen de las emociones. No converso de la misma manera cuando me paro en el resentimiento que cuando me paro en el entusiasmo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Las emociones y el cuerpo tienen una sintonía muy grande, mayor de la que creemos. Esta conexión la descubrí en los cursos y talleres de scrum que organiza &lt;a href="http://twitter.com/acyment"&gt;@acyment&lt;/a&gt; y es una muy buena técnica de facilitación para equipos el hacer actividades con el cuerpo. Esto los animales lo tienen muy en claro, yo lo experimento seguido con mi perro, si me abro de pies y manos y abro los ojos, con signo de exclamación, seguramente me va a saltarme encima con mucha alegría.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Las emociones dependen de las interpretaciones que hacemos y estas de la deriva histórica, nuestra historia y experiencia desde el momento que nacemos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lo interesante de esta manera de ver las cosas es que abre un mundo de posibilidades. Si me quedo con el cuento que los resultados solo dependen del contexto, entonces en un contexto desfavorable no puedo hacer nada. Si me quedo con el cuento de que los resultados dependen del contexto y de mis acciones, tengo posibilidades, pero mi universo se limita a trabajar sólo en las acciones. Si por ejemplo quiero impulsar nuevas prácticas en un equipo, en algún momento me voy a encontrar con no saber cómo influir en las acciones de los demás.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Si en cambio, tomo este otro cuento, las posibilidades que tengo para influir en los resultados son mucho mayores.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En mi caso, este cuento me enseño a discernir en un dominio donde antes estaba ciego. Algo que dijo Juan Carlos y que me abrió los ojos fue que &lt;b&gt;el dominio de intervención de un coach está en las acciones, las conversaciones, las emociones y las interpretaciones&lt;/b&gt;. Que todas estas cosas se pueden cultivar. Y usó especialmente la palabra cultivar, en lugar de construir, porque es algo que no se puede controlar.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Muy buena la 2da clase de Hacer Historia!&lt;br /&gt;saludos,&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-2181542219703302291?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=2181542219703302291' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/2181542219703302291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/2181542219703302291'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/04/el-cuento-de-juan-carlos.html' title='El cuento de Juan Carlos'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_HTsF5nAznt0/S8IzmGgZS0I/AAAAAAAABzo/nujEuhMXZXA/s72-c/three_little_pigs.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-292902447556155325</id><published>2010-04-01T19:02:00.001-07:00</published><updated>2010-09-03T10:58:51.123-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Nos cuesta estimar valores absolutos</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_HTsF5nAznt0/S7VS9cFagyI/AAAAAAAABu8/twhyd7Yrp9Y/s1600/ciudad_panama_800x600.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_HTsF5nAznt0/S7VS9cFagyI/AAAAAAAABu8/twhyd7Yrp9Y/s400/ciudad_panama_800x600.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5455357739093623586" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Este es un ejercicio simple para descubrir lo difícil que es estimar en absolutos. Mirando la foto, cuanto mide el edificio más alto? mmm, no se, mucho...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sin embargo puedo decir que es el doble del de más a la derecha.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En un post de &lt;a href="http://twitter.com/ajlopez"&gt;ajlopez&lt;/a&gt; encontré este video de &lt;a href="http://www.mountaingoatsoftware.com/"&gt;Mike Cohn&lt;/a&gt; donde habla de estimaciones ágiles y menciona esta dificultad:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;a href="http://ajlopez.wordpress.com/2010/01/07/agile-estimation-by-mike-cohn/"&gt;http://ajlopez.wordpress.com/2010/01/07/agile-estimation-by-mike-cohn/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La foto es la ciudad de Panamá.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-292902447556155325?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=292902447556155325' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/292902447556155325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/292902447556155325'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/04/nos-cuesta-estimar-valores-absolutos.html' title='Nos cuesta estimar valores absolutos'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_HTsF5nAznt0/S7VS9cFagyI/AAAAAAAABu8/twhyd7Yrp9Y/s72-c/ciudad_panama_800x600.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-3798743602898027314</id><published>2010-03-31T15:16:00.000-07:00</published><updated>2010-09-03T10:58:51.124-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Re-encendiendo scrum en un equipo</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_HTsF5nAznt0/S7POXfZUhJI/AAAAAAAABt8/dR_20yAWUiM/s1600/firesteel-strike-new-3.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 300px; height: 300px;" src="http://3.bp.blogspot.com/_HTsF5nAznt0/S7POXfZUhJI/AAAAAAAABt8/dR_20yAWUiM/s400/firesteel-strike-new-3.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5454930476635817106" /&gt;&lt;/a&gt;&lt;br /&gt;Hace poco empecé a colaborar con un equipo que desde hace un tiempo viene usando scrum, pero no del todo. A veces hacen daily meetings, a veces no, de a poco dejaron de hacer sprints time box. Pero más allá de las prácticas, no trabajan como un equipo auto organizado, sino que uno de ellos llevaba las cosas adelante, asigna las tareas, carga solo con toda la responsabilidad, etc.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Me imagino que esto deber ser algo común, un equipo empieza usando scrum, pero poco a poco la iniciativa va perdiendo fuerza hasta que se diluye. Seguramente deben haber muchos factores que ayudan a que pase esto. Me hace acordar a un chiste de Dilbert:&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_HTsF5nAznt0/S7PSXZ2W5kI/AAAAAAAABuE/mFc-uKsqv7I/s1600/dilbert_agileprogramming.gif"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 139px;" src="http://1.bp.blogspot.com/_HTsF5nAznt0/S7PSXZ2W5kI/AAAAAAAABuE/mFc-uKsqv7I/s400/dilbert_agileprogramming.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5454934873193506370" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Mas allá de las causas, que podría hacer para ayudarlos a conseguir mejor calidad, productividad y felicidad?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Una manera de implementar scrum que me gusta es la que &lt;a href="http://twitter.com/acyment"&gt;@acyment&lt;/a&gt; llama PDF, pain driven facilitation, facilitación guiada por el dolor, o en otras palabras, empiezo por lo que más me duele. Si bien duele, me gusta porque es empírica, exige que seamos prácticos, requiere una gran habilidad para que el equipo descubra y priorice que es lo que más duele y esto es un muy buen ejercicio para un scrum master.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lo que nos propusimos hacer es volver a hacer un sprint time box. Y para comenzar, hicimos una retrospectiva, antes del sprint. La idea de la retrospectiva era entender cómo estamos. Y no solo eso... también quería transmitirles &lt;a href="http://blog.kudewe.com/2010/01/el-espiritu-de-scrum.html"&gt;el espíritu de scrum&lt;/a&gt;. En el fondo me daba un poco de miedo participar en la retrospectiva de otro equipo, sobre todo porque nunca habían hecho una y me preocupaba que llegara a ser demasiado tensa.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Así que preparamos algo así (tomado del &lt;a href="http://www.box.net/shared/qms74hy9vh"&gt;resumen de retrospectivas ágiles&lt;/a&gt; de Juan Gabardini):&lt;/div&gt;&lt;div&gt;Preparar escenario: ball game, para repasar los principios de scrum&lt;/div&gt;&lt;div&gt;Recabar datos: post-it bueno / malo&lt;/div&gt;&lt;div&gt;Generar entendimiento profundo: 5 porqué&lt;/div&gt;&lt;div&gt;Decidir qué hacer: brainstorming / filtrado&lt;/div&gt;&lt;div&gt;Cierre: nos comprometimos a hacer 1 cosa&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Como facilitador de la reunión, traté de recordar permanentemente que este es un espacio para decir lo que pensamos, lo que sentimos y para escuchar a los demás también. Al final, no pasó ninguno de mis miedos infundados, de hecho la pasamos bastante bien y como conclusión identificamos que el mayor impedimento es que toda la responsabilidad del proyecto cae en una persona. Esto es como una espiral descendente, ya que genera menos compromiso y motivación en las demás personas, sobrecargando aún más a quien lleva la responsabilidad.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Me parece muy bueno y enriquecedor poder colaborar y ayudar a otro equipo. La verdad no es algo que lleve mucho tiempo, solo 2 a 3 horas por sprint y creo es una inversión que vale la pena.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En las retrospectivas siguientes me gustaría usar el comienzo de la misma (preparar escenario) para reforzar los principios de scrum con diferentes juegos y actividades, despertar el entusiasmo en las personas y re-encender scrum poco a poco.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;También ir variando las distintas técnicas del resumen de Juan. Animar a las mismas personas del equipo a facilitar la retrospectiva, hasta que se sientan en confianza para llevarlas solos. Esto es algo que hacemos en mi equipo y la verdad nos funciona muy bien, ya que refuerza el "todos pueden hacer todo".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-3798743602898027314?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=3798743602898027314' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3798743602898027314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3798743602898027314'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/03/re-encendiendo-scrum-en-un-equipo.html' title='Re-encendiendo scrum en un equipo'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_HTsF5nAznt0/S7POXfZUhJI/AAAAAAAABt8/dR_20yAWUiM/s72-c/firesteel-strike-new-3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-9159512025312936138</id><published>2010-03-28T10:32:00.000-07:00</published><updated>2011-11-11T11:47:11.110-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='enseñaje'/><title type='text'>Algunas actividades para preguntarnos cómo trabajamos?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_HTsF5nAznt0/S6-TA5fD5pI/AAAAAAAABr0/mMaJaWMDNes/s1600/pregunta.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 267px;" src="http://4.bp.blogspot.com/_HTsF5nAznt0/S6-TA5fD5pI/AAAAAAAABr0/mMaJaWMDNes/s400/pregunta.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5453739317409343122" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;En el &lt;a href="http://blog.kudewe.com/2010/03/taller-de-scrum-en-la-empresa.html"&gt;pasado taller de scrum&lt;/a&gt;, quise despertar la duda en las personas. Encender la inquietud respecto a cómo fomentar auto organización, colaboración, ritmo, empirismo en un equipo. Quería que el taller sea intenso, pero con gusto a poco, o mejor dicho, con hambre de aprender más.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para tratar de conseguir esto, se me ocurrió tomar como base un &lt;a href="http://www.youtube.com/watch?v=L9tSjpqeBa4&amp;amp;feature=related"&gt;video&lt;/a&gt; de Lisa Adkins donde describe un camino para conseguir la magia de los equipos altamentecolaborativos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Cambios de conversaciones y comportamiento (behaviour and conversation changes)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esta actividad es muy simple, se hace de forma grupal (10 personas anduvo bien). En el piso, de forma desordenada, hay tarjetas de papel que tienen escritas las siguientes palabras:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Coordinar esfuerzos inviduales&lt;/li&gt;&lt;li&gt;Fomentar la colaboración&lt;/li&gt;&lt;li&gt;Ser un experto en un área&lt;/li&gt;&lt;li&gt;Ser un facilitador para el equipo&lt;/li&gt;&lt;li&gt;Foco en objetivos específicos&lt;/li&gt;&lt;li&gt;Foco en la performance del equipo&lt;/li&gt;&lt;li&gt;Conocer la respuesta&lt;/li&gt;&lt;li&gt;Preguntar al equipo por la respuesta&lt;/li&gt;&lt;li&gt;Liderar el equipo&lt;/li&gt;&lt;li&gt;Dejar que el equipo encuentre su propio camino&lt;/li&gt;&lt;li&gt;Manejar&lt;/li&gt;&lt;li&gt;Guiar&lt;/li&gt;&lt;li&gt;Hablar de deadlines y opciones técnicas&lt;/li&gt;&lt;li&gt;Hablar de valor de negocio&lt;/li&gt;&lt;li&gt;Hacer lo óptimo&lt;/li&gt;&lt;li&gt;Hacer lo correcto ahora&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;La consigna es ordenar las tarjetas en 2 columnas. La de la izquierda son las cosas que deberíamos dejar de hacer para favorecer la colaboración. La de la derecha, las que deberíamos empezar a hacer. El resultado final es algo así:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Coordinar esfuerzos individuales =&gt; Fomentar la colaboración&lt;/li&gt;&lt;li&gt;Ser un experto en un área =&gt; Ser un facilitador para el equipo&lt;/li&gt;&lt;li&gt;Foco en objetivos específicos =&gt; Foco en la performance del equipo&lt;/li&gt;&lt;li&gt;Conocer la respuesta =&gt; Preguntar al equipo por la respuesta&lt;/li&gt;&lt;li&gt;Liderar el equipo =&gt; Dejar que el equipo encuentre su propio camino&lt;/li&gt;&lt;li&gt;Manejar =&gt; Guiar&lt;/li&gt;&lt;li&gt;Hablar de deadlines y opciones técnicas =&gt; Hablar de valor de negocio&lt;/li&gt;&lt;li&gt;Hacer lo óptimo =&gt; Hacer lo correcto ahora&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Algo que me parece bueno, es hacer el ejercicio en el piso, ya que eso da visibilidad a todos de las tarjetas y por otro lado, para ordenarlas hay que mover el cuerpo (no se bien porqué, pero en las actividades donde me muevo, me comprometo más con la actividad). Una cosa que hubiese sido mejor, me parece, es que las tarjetas que se corresponden no empiecen con la misma palabra, para no hacer tan obvio algunas asociaciones. Por último, es valioso hacer una ronda de reflexión al final de la actividad, para que cada uno exprese lo que le generó la misma.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Promover o inhibir (promote or inhibit)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En un rotafolio, se escriben algunas características de un equipo en scrum, una columna de promuevo y otro de inhibo. La idea es que cada participante haga vea en retrospectiva cómo desde su rol promueve o inhibe estás características. Se reparte un marcador a cada uno y luego se los invita a marcar un punto donde sientan que encaja mejor.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_HTsF5nAznt0/S6-ZM_rrqUI/AAAAAAAABr8/asiuOLs-BEI/s1600/promote+inhibit.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://4.bp.blogspot.com/_HTsF5nAznt0/S6-ZM_rrqUI/AAAAAAAABr8/asiuOLs-BEI/s400/promote+inhibit.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5453746122301090114" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Después de esta actividad, un compañero dijo que reconoció que sin querer inhibía mayormente estas características en su equipo. El descubrirlo fue una sorpresa para él, eureka!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;FishBowl&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esta actividad me sorprendió, ya que no me esperaba que gustara tanto ni que espontáneamente hiciéramos uno al día siguiente. El debate arrancó con la pregunta "cómo usamos scrum en nuestros equipos". Luego cada uno contó sus experiencias y desaciertos. Quien quería preguntar, debía ocupar el lugar del &lt;a href="http://en.wikipedia.org/wiki/Fishbowl_(conversation)"&gt;fishbowl&lt;/a&gt; o esperar a que se vaciara.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-9159512025312936138?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=9159512025312936138' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/9159512025312936138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/9159512025312936138'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/03/algunas-actividades-para-preguntarnos.html' title='Algunas actividades para preguntarnos cómo trabajamos?'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_HTsF5nAznt0/S6-TA5fD5pI/AAAAAAAABr0/mMaJaWMDNes/s72-c/pregunta.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-4701750979502177682</id><published>2010-03-26T15:36:00.000-07:00</published><updated>2011-11-11T11:47:11.110-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='enseñaje'/><title type='text'>Taller de scrum en la empresa</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_HTsF5nAznt0/S61BMRb2hbI/AAAAAAAABrU/m5x8NpJoZEc/s1600/scrum.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 288px;" src="http://3.bp.blogspot.com/_HTsF5nAznt0/S61BMRb2hbI/AAAAAAAABrU/m5x8NpJoZEc/s400/scrum.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5453086402909996466" /&gt;&lt;/a&gt;&lt;br /&gt;Hace unas semanas organicé un taller de scrum en la empresa donde trabajo. Fue breve pero intenso (medio día, 10 personas). &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La verdad fue muy entretenido prepararlo y realizarlo. Todo empezó tomando como base la visión del área de desarrollo, nos juntamos, la escribimos y nos preguntamos, es ahí hacia donde queremos ir? Luego, armamos una propuesta. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dado que era la primera vez que lo hacía y no estaba seguro de cuanto tiempo llevaría cada actividad, armamos un mini task board donde dividimos el taller en 4 horas. Luego llenamos cada hora con actividades y 10' de break. Sobre la marcha, la hora nos servía cómo punto de control para ir quitando las actividades menos importantes (nos extendimos más de lo estimado en algunas...). Finalmente, pudimos hacer las siguientes actividades:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;Parte 1 - El espíritu de scrum&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La idea en esta parte del taller es que cada uno experimente en carne propia la esencia de scrum. Algo parecido, salvando las distancias, al &lt;a href="http://blog.kudewe.com/2010/01/el-espiritu-de-scrum.html"&gt;taller&lt;/a&gt; facilitado por &lt;a href="http://twitter.com/tobiasmayer"&gt;Tobias&lt;/a&gt; y &lt;a href="http://twitter.com/acyment"&gt;Alan&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Actividades&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;ball game, 20'&lt;/li&gt;&lt;li&gt;&lt;a href="http://agileanarchy.wordpress.com/2009/11/10/the-agile-playground-3/"&gt;spaguetti game&lt;/a&gt;, para entender el potencial de un equipo auto organizado, 10'&lt;/li&gt;&lt;li&gt;Si, pero, 5'&lt;/li&gt;&lt;li&gt;Si, y, 5'&lt;/li&gt;&lt;li&gt;Si, entonces, 10', para aprender a aceptar lo que me dice el otro y construir colaborativamente&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Parte 2 - Scrum Framework&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El objetivo de esta parte es mejorar nuestro entendimiento del framework scrum y conocer cómo están trabajando otros equipos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Actividades&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Explicale a tu abuela los roles de scrum, 10'&lt;/li&gt;&lt;li&gt;Elaborar y priorizar, primero 1, luego entre 2, luego entre 4, luego ..., 20'&lt;br /&gt;Que skills tiene un buen PO, SM?&lt;/li&gt;&lt;li&gt;La dinámica de scrum, 10'&lt;/li&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Fishbowl_(conversation)"&gt;Fishbowl&lt;/a&gt;: Cómo usan scrum en sus equipos? 20'&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Parte 3 - Transformación hacia una cultura ágil&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La idea de esta parte es entender dónde estamos parados en la transformación hacia una cultura ágil y que cada uno pueda hacer una breve retrospectiva de cómo su rol impacta en el equipo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Actividades&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Espejo, para entender la diferencia entra liderazgo tradicional y emergente, 10'&lt;/li&gt;&lt;li&gt;Behaviour and conversation changes, 10'&lt;/li&gt;&lt;li&gt;Promote or inhibit, 10'&lt;/li&gt;&lt;li&gt;Retrospectiva&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;bueno, ahora pasemos a lo interesante, las&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Conclusiones&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Algo que tuvo muy buena aceptación fue hacer juegos y actividades, hizo que el taller sea divertido y llevadero para todos. Por otro lado, la experiencia de aprendizaje es mucho mejor, que la clásica donde uno expone y otros escuchan.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El spaguetti game no salió como esperaba. Hicimos el spaguetti con 6 personas y el analista / pm lo pudo resolver. Creo que 6 es poco, deberíamos haber usado 8.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para romper el hielo, empezamos el taller sacándonos el calzado, lo cual ayuda entre otras cosas a preparar el ambiente.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En la sala teníamos 1 pizarra con el espíritu de scrum (auto organización, empirismo, colaboración, ritmo, priorización), 1 pizarra con el taskboard y un rotafolio donde íbamos resumiendo el resultado algunas actividades. Fue bueno tener estos 3 materiales siempre visibles.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Después de cada juego, hicimos una pausa donde charlamos entre todos sobre la experiencia del mismo. En este punto creo que es muy importante que el facilitador del taller realice preguntas que pongan en relieve la intención del juego (repasando la pizarra con el espíritu de scrum).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Propuse la idea del &lt;a href="http://en.wikipedia.org/wiki/Fishbowl_(conversation)"&gt;fishbowl&lt;/a&gt;, solo como un método para poder hablar ordenadamente entre todos y fue una de las actividades que más gustó! De hecho, al día siguiente hicimos otro en donde tratamos problemáticas más particulares de los proyectos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para la última parte del taller, busqué juegos en &lt;a href="http://blog.tastycupcakes.com/"&gt;http://blog.tastycupcakes.com/&lt;/a&gt;, pero no encontré uno que me cerrara. Así que inventé algunas actividades en base al video de Lisa Adkins, &lt;a href="http://www.youtube.com/watch?v=L9tSjpqeBa4&amp;amp;feature=related"&gt;The Road from Project Manager to Agile Coach - 2 of 2&lt;/a&gt; (dejo &lt;a href="http://blog.kudewe.com/2010/03/ideas-de-lisa-adkins-para-fomentar-el.html"&gt;una traducción no muy buena de la 1ra parte&lt;/a&gt;). Fue divertido tratar de inventar una actividad...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Mi idea era que las personas disfrutaran del taller, se llevaran algún aprendizaje, pero sobre todo inquietudes, dudas y ganas de trabajar de esta manera.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-4701750979502177682?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=4701750979502177682' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/4701750979502177682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/4701750979502177682'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/03/taller-de-scrum-en-la-empresa.html' title='Taller de scrum en la empresa'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_HTsF5nAznt0/S61BMRb2hbI/AAAAAAAABrU/m5x8NpJoZEc/s72-c/scrum.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-1821545871253409465</id><published>2010-03-17T18:41:00.000-07:00</published><updated>2011-08-10T06:21:03.884-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Ideas de Lyssa Adkins para fomentar el espíritu de scrum</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_HTsF5nAznt0/S6GfywUphnI/AAAAAAAABpI/Rd4UdVnBeHA/s1600-h/ideas.JPG" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img style="cursor: pointer; width: 301px; height: 400px;" src="http://4.bp.blogspot.com/_HTsF5nAznt0/S6GfywUphnI/AAAAAAAABpI/Rd4UdVnBeHA/s400/ideas.JPG" alt="" id="BLOGGER_PHOTO_ID_5449812718408795762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Hace un tiempo encontré este video muy bueno que habla sobre el camino de aprendizaje de una persona de PM a agile coach: &lt;a href="http://www.youtube.com/watch?v=TvYqhYEaqMs"&gt;http://www.youtube.com/watch?v=TvYqhYEaqMs&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Si bien la autora Lyssa Adkins, expone este tema desde la perspectiva de un PM, creo que sus ideas encierran &lt;a href="http://blog.kudewe.com/2010/01/el-espiritu-de-scrum.html"&gt;el espíritu de scrum&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esta es una traducción de la primera parte del video. En algunas partes no llegué a comprender bien el inglés, así que las completé con lo que entendí.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Separate de los resultados&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Dar al equipo todo el espacio del mundo, para que vengan con las mejores ideas y el mejor producto.&lt;/li&gt;&lt;li&gt;Como su coach, solo sos una persona cuando ellos resuelven temas específicos. No te enfoques en esto, tenés un rol más grande que jugar.&lt;/li&gt;&lt;li&gt;Enfocate en cómo el equipo trabaja en conjunto, entonces los podés ayudar a mejorar la calidad total del trabajo.&lt;/li&gt;&lt;li&gt;Si estás en el cómo, lejos de los detalles del qué, podes conseguir estar separado de los resultados. Siendo independiente, dejás que ellos sean independientes también y que sean los dueños de su propio resultado.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Dejáselo al equipo&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Lo creas o no, no sos la mejor persona para resolver los problemas del equipo cuando hay un problema con la manera que el equipo está trabajando o un problema con el producto que el equipos está construyendo.&lt;/li&gt;&lt;li&gt;Cada vez que pienses que necesitás resolver algo y empezás a crear planes y estrategias de implementación en tu cabeza, PARA!. En lugar de hacer eso, hacé la observación de lo que estás viendo al equipo.&lt;/li&gt;&lt;li&gt;Dejálos a ellos y fijate qué pasa, aún si es nada.&lt;/li&gt;&lt;li&gt;Si diagnosticas el problema e implementás una solución, corrés el riesgo de alejarte de estas ideas.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Se un espejo&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Reflejá al equipo, sin tu juicio, los comportamientos o síntomas que ves.&lt;/li&gt;&lt;li&gt;Dejálos ser ellos a través de tu observación.&lt;/li&gt;&lt;li&gt;Simplemente empezá con una pregunta, esperá y escuchá.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Dominá tu cara&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Para hacer esto bien hay que practicar comunicación sin jucio y sin violencia.&lt;/li&gt;&lt;li&gt;No solo tu vos y lo que decís, sino también tu cara.&lt;/li&gt;&lt;li&gt;Si juzgás, todo se verá en tu cara.&lt;/li&gt;&lt;li&gt;Asi que abrí tu cabeza y dominá tu cara.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Dejá que haya silencio&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Sentite confortable con el silencio incómodo.&lt;/li&gt;&lt;li&gt;No lo llenes con tus palabras.&lt;/li&gt;&lt;li&gt;Dejá que alguien más del equipo tenga lugar para hablar y lo hará.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Date lugar a no ser siempre razonable&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Son asombrosas las cosas que están escondidas en un equipo.&lt;/li&gt;&lt;li&gt;Las creencias sobre qué es o no algo típico, escuchar cosas cómo "es la típica manera, tarda 5 días en suceder", cuando vos sabés que eso lleva 5 minutos.&lt;/li&gt;&lt;li&gt;Cuando escuches estas limitaciones, exponelas preguntando "es un impedimento para terminar tu trabajo?" o "si no tuvierás limitación, que harías ahora?".&lt;/li&gt;&lt;li&gt;Tirá algunas ideas locas al equipo, dejalos que no sean razonables para vos, así ellos se pueden cuestionar sus asumciones y limitaciones.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Dejá que el equipo se equivoque&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;No estamos hablando de fallas catastróficas.&lt;/li&gt;&lt;li&gt;Pero un equipo que falla junto y se recupera, es más fuerte que un equipo protegido.&lt;/li&gt;&lt;li&gt;El equipo puede sorprenderte.&lt;/li&gt;&lt;li&gt;Asi que limpia, esperá y confía.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Se su fan más grande&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Pero con cuidado, no elogies el trabajo que ellos hacen.&lt;/li&gt;&lt;li&gt;El trabajo fluye al equipo, va y viene.&lt;/li&gt;&lt;li&gt;El trabajo que hacen no es lo que los hace grandes, lo que los hace grandes es convertirse en mejores individuos y en un equipo saludable, asi que destacá estas cosas.&lt;/li&gt;&lt;li&gt;Se su fan más grande de eso, decíselos y todos sabrán que tanto mejoraron cómo equipo.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Para mi la idea que más me gustó es la de ser un espejo para el equipo, preguntar y dejar que el silencio despierte en otros las ganas de hablar. También la aclaración sobre alentar su crecimiento en lugar de su trabajo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-1821545871253409465?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=1821545871253409465' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1821545871253409465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1821545871253409465'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/03/ideas-de-lisa-adkins-para-fomentar-el.html' title='Ideas de Lyssa Adkins para fomentar el espíritu de scrum'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_HTsF5nAznt0/S6GfywUphnI/AAAAAAAABpI/Rd4UdVnBeHA/s72-c/ideas.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-1067399733950974407</id><published>2010-02-07T13:17:00.000-08:00</published><updated>2010-09-03T10:58:51.126-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Cómo empezamos a estimar usando Story Points</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_KJxP8stBacs/S50p54JC0OI/AAAAAAAAADM/j6-MttrttkU/s1600-h/CrispPlanningPokerDeck.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 263px;" src="http://1.bp.blogspot.com/_KJxP8stBacs/S50p54JC0OI/AAAAAAAAADM/j6-MttrttkU/s400/CrispPlanningPokerDeck.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5448557198487769314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;Quisiera comenzar a escribir sobre las cosas que fuimos aprendiendo junto con mis compañeros de trabajo en uno de los proyectos que estoy trabajando. Me gustaría comentar sobre las cosas que nos costaron , los errores que fuimos cometiendo y los pequeños ajustes que fuimos haciendo para ir mejorando.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cuando empezamos a trabajar en este proyecto, estimábamos las historias en horas. Nos pasaba frecuentemente en el sprint planning que nos era difícil ponernos de acuerdo en las estimaciones. Esto se debía a varias razones:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Como equipo era la primera vez que hacíamos este tipo de tareas.&lt;/li&gt;&lt;li&gt;Es difícil estimar con precisión y diferenciar si una tarea lleva 5hs o 6hs.&lt;/li&gt;&lt;li&gt;Por otro lado, al tener perfiles y experiencias distintas, es perfectamente natural que para Jose Senior lleve 2hs y para Juan Junior lleve 6hs.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lo que nos pasaba, era que perdíamos tiempo en consensuar las estimaciones, éramos poco efectivos. Tampoco era muy repetible lo que hacíamos, ej: en un sprint planning decíamos que una tarea nos llevaba 3 hs y luego en otro para una tarea similar decíamos 6 hs.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Aprovechando la época de las fiestas, que nos rompió la duración del sprint, dijimos “porque no usamos este sprint, en el cual no vamos a comprometernos con un backlog de cosas, para estimar con story points y vemos que sale?”&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bueno, la verdad es que nos salió mal. Comenzamos usando la siguiente escala, que tomamos del libro Scrum &amp;amp; XP from trenches:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;0, ½, 1, 2, 3, 5, 8, 13, 20, 40, 100&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Y definimos que 3 era una página simple que mostraba un listado sin paginar filtro. Nos costó mucho con esta escala decidir que es un 5, un 2, un 13, etc?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Luego, para el siguiente sprint (que fue un sprint de verdad), decidimos ajustar la escala:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1, 2, 4, 8, 16, 32, 64&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Gracias a un twitt de &lt;a href="http://twitter.com/jorgegamba"&gt;Jorge Gamba&lt;/a&gt; conocí el libro &lt;a href="http://www.mountaingoatsoftware.com/books/2-user-stories-applied-for-agile-software-development"&gt;User Stories Applied&lt;/a&gt; y aprendí una técnica muy simple llamada triangulación, que consiste es armar un cuadro con user stories de pesos similares (esto ayuda a estimar por comparación):&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;td&gt;64&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;story 1&lt;/td&gt;&lt;td&gt;story 2&lt;/td&gt;&lt;td&gt;story 3&lt;/td&gt;&lt;td&gt;listado sin paginar c/filtro&lt;/td&gt;&lt;td&gt;story 5&lt;/td&gt;&lt;td&gt;story 6&lt;/td&gt;&lt;td&gt;story 7&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Imprimimos una hoja para cada uno y la llevamos al sprint planning, para ver que salía. Nos llamó la atención cómo empezamos a coincidir en la estimaciones. De a poco empezamos a conversar sobre tamaño, incertidumbre y complejidad para comparar user stories.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Algo positivo de la experiencia fue que nos animamos a introducir un cambio que suponíamos iba a tener un impacto importante si nos salía mal, y que encontramos el momento para hacerlo (las fiestas, donde la expectiva es baja). Otra cosa positiva fue el encare empírico, es decir, hagámoslo, vemos que sale y ajustemos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-1067399733950974407?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=1067399733950974407' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1067399733950974407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1067399733950974407'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/02/como-empezamos-estimar-usando-sp.html' title='Cómo empezamos a estimar usando Story Points'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KJxP8stBacs/S50p54JC0OI/AAAAAAAAADM/j6-MttrttkU/s72-c/CrispPlanningPokerDeck.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-3766887497646154070</id><published>2010-01-31T12:59:00.000-08:00</published><updated>2011-11-11T11:43:52.431-08:00</updated><title type='text'>Guerrero de la Basura</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_KJxP8stBacs/S2Xzy0JfUQI/AAAAAAAAADE/Mta8bZcHYnE/s1600-h/arts-graphics-2008_1186168a.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 296px;" src="http://2.bp.blogspot.com/_KJxP8stBacs/S2Xzy0JfUQI/AAAAAAAAADE/Mta8bZcHYnE/s400/arts-graphics-2008_1186168a.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5433016579809825026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Gracias a &lt;a href="http://blog.kudewe.com/2009/12/difusion-otra-manera-de-minimizar-el.html"&gt;mi amigo Andres&lt;/a&gt;, ayer vi esta película que trata sobre la historia de un hombre construyendo casas de basura durante casi 30 años:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.garbagewarrior.com/"&gt;http://www.garbagewarrior.com/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Algo que me llamó la atención, fue el espíritu colaborativo de su equipo, que más que un equipo parecía una familia. Es hasta contagiosa la pasión que esta gente siente por lo que hace.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Me pareció muy bueno cómo ayudaron a las personas víctimas del &lt;a href="http://es.wikipedia.org/wiki/Terremoto_del_oc%C3%A9ano_%C3%8Dndico_de_2004"&gt;tsunami en India&lt;/a&gt; y del &lt;a href="http://es.wikipedia.org/wiki/Hurac%C3%A1n_Rita"&gt;huracán Rita&lt;/a&gt; a construir lugares sanos donde puedan refugiarse. Creo que lo más emocionante fue ver como despertaron un nueva esperanza en una comunidad que perdió todo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sus ideas me parecieron muy ingeniosas, creativas y simples. Es admirable ver como luchó con un sistema tan lento y pesado cómo el jurídico para impulsar sus ideas y el enorme contraste que encontró en lugares que pasaron por crisis terribles. Como él mismo dice, después de una crisis, las personas están más abiertas a nuevas ideas.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Por otro lado, su filosofía y esencia se alinean muy bien con las metodologías ágiles. Cuando dice: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;acá en 14 días pudimos hacer los que en Nuevo Mexico no conseguimos en años. En menos 5 minutos puedo explicar a ingenieros indios el principio de sus casas, sin escribir kilos de documentación que nadie va a leer. &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esto es favorecer un producto funcionando sobre documentación llevado al extremo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La verdad que me inspiró a pensar en hacer cosas por los demás, algo grande, importante. Algo que ayude a personas con poco recursos a mejorar su calidad de vida.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Otra cosa que tomo de la película es la buena predisposición de la gente que tiene una necesidad. Parecería que en estos casos hay mas “si, entonces”, “si, y”, que “si, pero”, “no”. Me hace pensar que estos son buenos escenarios para usar un enfoque ágil, basado en la colaboración, el ritmo, empirismo, auto organización, es decir, creatividad orgánica.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-3766887497646154070?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=3766887497646154070' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3766887497646154070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3766887497646154070'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/01/guerrero-de-la-basura.html' title='Guerrero de la Basura'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_KJxP8stBacs/S2Xzy0JfUQI/AAAAAAAAADE/Mta8bZcHYnE/s72-c/arts-graphics-2008_1186168a.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-5782332103429874365</id><published>2010-01-29T06:35:00.000-08:00</published><updated>2010-09-03T10:58:51.127-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Improvisación para Equipos</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6fSRhVYmKCQ/SzlREsIY0fI/AAAAAAAADQs/0tMU2D3VufI/s400/Improvisaci%C3%B3n+Teatral.gif"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 284px;" src="http://2.bp.blogspot.com/_6fSRhVYmKCQ/SzlREsIY0fI/AAAAAAAADQs/0tMU2D3VufI/s400/Improvisaci%C3%B3n+Teatral.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Al igual que el &lt;a href="http://blog.kudewe.com/2010/01/el-espiritu-de-scrum.html"&gt;post anterior&lt;/a&gt;, no quiero detallar qué fue lo que hicimos en el taller, para no sesgar o influir de alguna manera a quienes lo quieran hacer. Creo que es mejor ir a este tipo de actividades sin conocer mucho de antemano, así se disfrutan más. Lo que si me gustaría comentar, son las cosas que me llevé y sobre las que me quedé pensando.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En palabras de Alan, la improvisación se trata de:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;Aprender a escuchar lo que pasa a mí alrededor, a los otros actores y a escucharme a mí mismo. Improvisar es aceptar lo que me proponen. Cuando me proponen algo y lo acepto, desarrollo mi capacidad de escuchar a los demás. Cuando propongo, aprendo a escucharme a mí mismo y a ver que tengo para ofrecer.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A partir de pequeños movimientos, pequeñas acciones que surgen de lo espontaneo, otra acción igual de pequeña surge, seguida de otra y otra más, creando un efecto de continuidad y fluidez. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La colaboración permite crear formas más ricas de las que puede crear una sola persona, incluso inimaginables, imposibles.  Pero, que trabajen 2 personas juntas no quiere decir que estén colaborando. Hicimos varios ejercicios donde notamos que bajo ciertas combinaciones la cosa se vuelve lenta, torpe.  Me llevo el desafío tomar otras situaciones y pensar en cómo combinar de distinta manera para crear colaborativamente.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Me pareció muy bueno cómo se generaron distintas experiencias desde lo físico. A partir de algunas actividades, entendí claramente lo que significa la visión, tener un objetivo y que sea claro, que no es lo mismo que tener un plan. Un plan me hace rígido, poco flexible y puede resultar frustrante si por algún motivo no se puede realizar. En cambio, un objetivo claro me permite adaptarme al entorno, entender mejor cómo me afecta y proponer un nuevo cambio.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Creo que el primer taller me sirvió para entender y reforzar la importancia de los valores de scrum y su porqué. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El segundo todavía me dejó pensando. Me di cuenta que con hacer daily meetings,  restrospectivas y usar story points no es suficiente para generar auto organización, colaboración, ritmo. Son herramientas que ayudan un poco a conseguirlo, pero lo realmente valioso es dominar esa magia que genera movimiento orgánico en el equipo, para pasar a explotar un potencial mayor del que podemos entender.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-5782332103429874365?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=5782332103429874365' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/5782332103429874365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/5782332103429874365'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/01/improvisacion-para-equipos.html' title='Improvisación para Equipos'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6fSRhVYmKCQ/SzlREsIY0fI/AAAAAAAADQs/0tMU2D3VufI/s72-c/Improvisaci%C3%B3n+Teatral.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-7848499622998523122</id><published>2010-01-29T06:25:00.000-08:00</published><updated>2010-09-03T10:58:51.128-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>El Espíritu de Scrum</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.bioteams.com/images/ibm_research_en.jpg"&gt;&lt;img style="margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 440px; height: 391px;" src="http://www.bioteams.com/images/ibm_research_en.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div&gt;El miércoles pasado se dio este taller, guiado por &lt;a href="http://twitter.com/tobiasmayer"&gt;Tobías&lt;/a&gt; y facilitado por &lt;a href="http://twitter.com/acyment"&gt;Alan&lt;/a&gt;,  que trató sobre los principios de scrum. La dinámica consistió en experimentar y explorar mediante juegos y actividades los significados de:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Empirismo&lt;/li&gt;&lt;li&gt;Auto-organización&lt;/li&gt;&lt;li&gt;Ritmo&lt;/li&gt;&lt;li&gt;Colaboración&lt;/li&gt;&lt;li&gt;Priorización&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Salí del taller con mucha información para digerir, nuevas ideas, sensaciones, experiencias. Mientras volvía a mi casa en colectivo y con un calor aplastante, me quedé pensando en varias cosas:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sobre lo orgánico de un equipo auto organizado. Es cómo que hay una fuerza invisible que va ordenando y dando sentido al caos. Desde afuera es sutil es imperceptible. Pero desde adentro, cuando se vive en carne propia mediante este tipo de actividades, te deja una buena sensación, como un gusto agradable.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En las posibilidades. Si alguien le dice al equipo cómo hacer las cosas, me pierdo de un montón de posibilidades. Lo mismo si alguien no participa. Nadie mejor que el mismo equipo para encontrar el mejor camino.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En el movimiento como una manera de generar valor constantemente. Genero valor porque hago, porque me equivoco, porque aprendo, porque se me ocurre una idea y vuelvo a probar. Moviéndonos sin pensar ni planificar de antemano pudimos hacer cosas que al principio nos resultaban imposibles o muy difíciles. Realmente llegué a sorprenderme por las cosas que conseguimos hacer teniendo al movimiento como principal estrategia.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En la importancia de la colaboración. Es como un círculo virtuoso, la colaboración genera más colaboración.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En el ritmo. Nos fue fácil mantener un ritmo y nos fue costoso cambiarlo y adaptarnos a uno nuevo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En los valores. Sin valores nada de esto es posible ni sustentable en el tiempo. Los valores lo transforman en algo con sentido y energizante.&lt;/div&gt;&lt;div&gt;En tener clara una visión / objetivo trascendente, que sea más grande que yo, como motor y aliciente frente a las dificultados.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Siempre es un gusto asistir a estos eventos para conocer otras personas y encontrarme con otros colegas. Está muy bueno compartir este tipo de actividades con gente con gran motivación y pasión por lo que hacen.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-7848499622998523122?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=7848499622998523122' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/7848499622998523122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/7848499622998523122'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/01/el-espiritu-de-scrum.html' title='El Espíritu de Scrum'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-4876356674036770317</id><published>2010-01-16T14:36:00.000-08:00</published><updated>2010-09-03T10:58:51.129-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emprender'/><title type='text'>Una herramienta simple para expresar ideas</title><content type='html'>Hoy me enteré por un RT de &lt;a href="http://twitter.com/emaraschio"&gt;@emaraschio&lt;/a&gt;, sobre &lt;a href="http://www.simplediagrams.com/"&gt;SimpleDiagrams&lt;/a&gt;, una herramienta para expresar ideas de manera visual y simple.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tiene una versión free, que puede bajarse y usarla para empezar a crear diagramas. La verdad me pareció una muy buena manera de comunicar ideas, de hecho, la usé para explicar &lt;a href="http://www.kudewe.com/reports"&gt;Kudewe Reports&lt;/a&gt; a un cliente:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_KJxP8stBacs/S1JAtSvrVbI/AAAAAAAAAC8/2L96OT5j_Vc/s1600-h/happyClient.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 378px; height: 400px;" src="http://1.bp.blogspot.com/_KJxP8stBacs/S1JAtSvrVbI/AAAAAAAAAC8/2L96OT5j_Vc/s400/happyClient.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5427471647804970418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;No hay como la simplicidad...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-4876356674036770317?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=4876356674036770317' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/4876356674036770317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/4876356674036770317'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/01/una-herramienta-simple-para-expresar.html' title='Una herramienta simple para expresar ideas'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KJxP8stBacs/S1JAtSvrVbI/AAAAAAAAAC8/2L96OT5j_Vc/s72-c/happyClient.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-6596577908604198122</id><published>2010-01-06T16:18:00.000-08:00</published><updated>2011-11-11T11:43:52.432-08:00</updated><title type='text'>Home, una película sobre la importancia de cambiar</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_HTsF5nAznt0/S0oe9ZPvK0I/AAAAAAAABbE/_RpXDvPm25M/s1600-h/home-movie-poster.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 210px;" src="http://1.bp.blogspot.com/_HTsF5nAznt0/S0oe9ZPvK0I/AAAAAAAABbE/_RpXDvPm25M/s320/home-movie-poster.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5425182741218929474" /&gt;&lt;/a&gt;Gracias a &lt;a href="http://dondevuelaelcondor.blogspot.com/2009/12/un-nuevo-amigo-en-el-desafio-del-cambio.html"&gt;Andrés Navarro&lt;/a&gt;, me enteré de la película Home, la cual se puede ver por youtube:&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=SWRHxh6XepM"&gt;http://www.youtube.com/watch?v=SWRHxh6XepM&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esta trata sobre cómo se desarrolló la vida en la tierra, desde sus inicios, hasta la llegada del ser humano. La película tiene imágenes y escenas de la tierra que son realmente impactantes. Pero lo más impactante es la retrospectiva que hace sobre nuestro impacto en el planeta.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Algunas frases de la película que me parecieron geniales:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;El motor de la vida es el vínculo.&lt;/li&gt;&lt;li&gt;Nuestra tierra reposa en un equilibrio en el cual cada uno tiene su lugar y solo existe gracias a la existencia del otro.&lt;/li&gt;&lt;li&gt;En la gran aventura de a tierra, cada especie tiene un papel, cada especie tiene su lugar, ninguna es inútil o dañina, todas se equilibran.&lt;/li&gt;&lt;li&gt;No hemos tomado conciencia de que estamos agotando lo que la naturaleza nos ofrece.&lt;/li&gt;&lt;li&gt;Lo orgánico es el vínculo entre el agua, el aire, la tierra y el sol.&lt;/li&gt;&lt;li&gt;Estemos donde estemos, nuestras acciones tienen repercusiones en el resto del planeta.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Ver las imágenes de terrenos modelados para aprovechar mejor la agricultura, me hizo acordar cuando caminé por los valles de Nepal con mi amigo Rober. Ya pasaron muchos años de ese viaje, pero no me olvido de las personas simples y alegres que habitaban esas tierras.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esta película me hizo ver que el humano es la única especie que rompe equilibrios.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Me resulta interesante la sabiduría que esconde la naturaleza detrás de su simplicidad. En la película pude notar algunos defectos de nuestra manera de organizarnos:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Reemplazar la diversidad por la estandarización.&lt;/li&gt;&lt;li&gt;La desigualdad provoca desplazamientos de personas, de los cuales no hemos tomado realmente conciencia.&lt;/li&gt;&lt;li&gt;Cerrar los ojos, no ser adaptativo y ágil&lt;/li&gt;&lt;li&gt;No somos capaces de hacer un balance y ver todo aquello de lo que somos responsables&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Pero se estan haciendo algunas cosas. Comienza una nueva aventura humana, basada en la moderación la inteligencia y el reparto. A nosotros nos queda escribir el resto de esta historia...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-6596577908604198122?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=6596577908604198122' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/6596577908604198122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/6596577908604198122'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/01/home-una-pelicula-sobre-la-importancia.html' title='Home, una película sobre la importancia de cambiar'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_HTsF5nAznt0/S0oe9ZPvK0I/AAAAAAAABbE/_RpXDvPm25M/s72-c/home-movie-poster.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-2903450828809091629</id><published>2010-01-06T16:04:00.001-08:00</published><updated>2011-11-11T11:43:52.432-08:00</updated><title type='text'>150 x 300 Por una escuela</title><content type='html'>Otra de las &lt;a href="http://blog.kudewe.com/search/label/impacto%20social"&gt;iniciativas con impacto social&lt;/a&gt; que apoyamos, es la de Rodolfo Llanos (&lt;a href="http://twitter.com/soloenglish"&gt;@soloenglish&lt;/a&gt;). Su proyecto consiste en construir una escuela en el Barrio Congreso Nacional, Cerrillos, Salta. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para eso, Rodolfo corrío una carrera muy dura en patagonia (150km) y le propuso a la gente comprar cada kilómetro recorrido. Si ganaba, los vendía. El proyecto es interesante a nivel social y deportivo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para quienes estén interesados, todavía es posible comprar kilómetros para colaborar con la causa.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a target="_blank" href="http://www.xn--150300-rra.com.ar/" mce_href="http://www.150×300.com.ar"&gt;&lt;img src="http://www.150x300.com.ar/wp-content/uploads/2009/10/150x300banner1.png" alt="150×300" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-2903450828809091629?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=2903450828809091629' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/2903450828809091629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/2903450828809091629'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/01/150-x-300-por-una-escuela.html' title='150 x 300 Por una escuela'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-1845633626561946195</id><published>2010-01-06T15:36:00.000-08:00</published><updated>2011-11-11T11:42:49.131-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='proposito'/><title type='text'>Un viaje en bicicleta por America retratando pueblos</title><content type='html'>Como parte de esta &lt;a href="http://dondevuelaelcondor.blogspot.com/2009/08/ideas-para-un-mundo-mejor.html"&gt;idea loca de hacer un mundo mejor&lt;/a&gt;, nos sumamos como cómplice de Juan Villarino y su viaje de &lt;a href="http://acrobatadelcamino.blogspot.com/2009/08/el-acrobata-del-camino-y-el-americiclo.html"&gt;Mar del Plata a Alaska en americiclo&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Creo que su viaje puede ser una lección importante para toda la sociedad. Me da la sensación que hay mucho para aprender de los pueblos que viven con simpleza. Como dice Juan, la hospitalidad de estas personas es asombrosa. Reatratar el lado bueno de las personas es algo que refuerza nuestros valores humanos. El espíritu de su viaje me ayuda a recordar los valores con los que impulso este emprendimiento llamado Kudewe.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Por otro lado, su proyecto cultural se basa en la diversidad, en la mezcla de culturas distintas. Sin duda será una actividad muy interesante la de mostrar a los pueblos fotos de otros pueblos visitados. Se imaginan a un esquimal viendo fotos de pescadores en el amazonas y aprendiendo sobre sus costumbres?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Además, veo a su proyecto como una exploración a pueblos desconocidos para mi, donde puedo conocer comunidades a quienes ayudar en algún futuro.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Es interesante destacar cómo hay gente que con creatividad &lt;a href="http://dondevuelaelcondor.blogspot.com/2009/09/gente-que-disena-su-vida.html"&gt;diseña su propia vida&lt;/a&gt; y encuentra su lugar en el mundo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-1845633626561946195?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=1845633626561946195' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1845633626561946195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1845633626561946195'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/01/un-viaje-en-bicicleta-por-america.html' title='Un viaje en bicicleta por America retratando pueblos'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-6921107189478090972</id><published>2010-01-05T04:11:00.000-08:00</published><updated>2010-01-05T04:51:57.191-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><title type='text'>Configurando Cruise Control .net + svn + MS Test desde 0</title><content type='html'>Hace poco incursioné en el mundo de la integración continua. Les dejo una breve guía de cómo configurar un Cruise Control .net + svn + MS Test desde 0.&lt;br /&gt;&lt;br /&gt;1. Instalar CCnet&lt;a href="download%20http://confluence.public.thoughtworks.org/display/CCNET/Download"&gt; http://confluence.public.thoughtworks.org/display/CCNET/Download&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;2. Bajar nAnt &lt;a href="http://nant.sourceforge.net/"&gt;http://nant.sourceforge.net/&lt;/a&gt; y copiar a directorio local (yo los copié en c:\archivos de programa).&lt;br /&gt;&lt;br /&gt;3. Bajar nAnt Contrib &lt;a href="http://nantcontrib.sourceforge.net/"&gt;http://nantcontrib.sourceforge.net/&lt;/a&gt; y copiar a directorio local.&lt;br /&gt;&lt;br /&gt;4. Bajar svn command line &lt;a href="http://nantcontrib.sourceforge.net/"&gt;http://nantcontrib.sourceforge.net/&lt;/a&gt; y copiar a directorio local.&lt;br /&gt;&lt;br /&gt;5. Configurar un proyecto de build en ccnet.config, ubicado en el directorio de instalacion de CCnet. Es recomendable hacer esto paso por paso, para ir probando como funciona&lt;br /&gt;&lt;br /&gt;&amp;lt;cruisecontrol cb="urn:ccnet.config.builder"&amp;gt;&lt;br /&gt;  &amp;lt;!-- This is your CruiseControl.NET Server Configuration file. Add your projects below! --&amp;gt;&lt;br /&gt;    &amp;lt;project&amp;gt;&lt;br /&gt;        &amp;lt;name&amp;gt;myProject&amp;lt;/name&amp;gt;&lt;br /&gt;       &lt;br /&gt;        &amp;lt;!-- Step1: trigger build from commit, check every 60 seconds --&amp;gt;&lt;br /&gt;        &amp;lt;triggers&amp;gt;&lt;br /&gt;            &amp;lt;!--&amp;lt;intervaltrigger seconds="60" buildcondition="ForceBuild"&amp;gt;--&amp;gt;&lt;br /&gt;            &amp;lt;intervaltrigger name="Subversion" seconds="60"&amp;gt;&lt;br /&gt;        &amp;lt;/triggers&amp;gt;&lt;br /&gt;       &lt;br /&gt;        &amp;lt;!-- configure svn repository --&amp;gt;&lt;br /&gt;        &amp;lt;sourcecontrol type="svn"&amp;gt;&lt;br /&gt;            &amp;lt;trunkurl&amp;gt;http://svn.com/myProject/trunk/src/&amp;lt;/trunkurl&amp;gt;&lt;br /&gt;            &amp;lt;workingdirectory&amp;gt;C:\Archivos de programa\CruiseControl.NET\server\myProject\WorkingDirectory\Source&amp;lt;/workingdirectory&amp;gt;&lt;br /&gt;            &amp;lt;username&amp;gt;user&amp;lt;/username&amp;gt;&lt;br /&gt;            &amp;lt;password&amp;gt;pass&amp;lt;/password&amp;gt;&lt;br /&gt;            &amp;lt;executable&amp;gt;C:\Archivos de programa\CollabNet\Subversion Client\svn.exe&amp;lt;/executable&amp;gt;&lt;br /&gt;        &amp;lt;/sourcecontrol&amp;gt;&lt;br /&gt;        &amp;lt;tasks&amp;gt;&lt;br /&gt;            &amp;lt;!-- Step 2: Build solution --&amp;gt;&lt;br /&gt;            &amp;lt;nant&amp;gt;&lt;br /&gt;                &amp;lt;executable&amp;gt;C:\Archivos de programa\nant-0.85\bin\nant.exe&amp;lt;/executable&amp;gt;&lt;br /&gt;                &amp;lt;buildfile&amp;gt;cruise.build&amp;lt;/buildfile&amp;gt;&lt;br /&gt;                &amp;lt;targetlist&amp;gt;&lt;br /&gt;                    &amp;lt;target&amp;gt;run&amp;lt;/target&amp;gt;&lt;br /&gt;                &amp;lt;/targetlist&amp;gt;&lt;br /&gt;            &amp;lt;/nant&amp;gt;&lt;br /&gt;            &amp;lt;!-- Step 3: Run tests --&amp;gt;&lt;br /&gt;            &amp;lt;exec&amp;gt;&lt;br /&gt;                &amp;lt;!--Call a batch file that contains del testResults.trx --&amp;gt;&lt;br /&gt;                &amp;lt;!--this is required as MsTest will not create the file if it exists--&amp;gt;&lt;br /&gt;                &amp;lt;!--this could be merged with the mstext action in a single batch file--&amp;gt;&lt;br /&gt;                &amp;lt;executable&amp;gt;deleteTestLog.bat&amp;lt;/executable&amp;gt;&lt;br /&gt;                &amp;lt;basedirectory&amp;gt;C:\Archivos de programa\CruiseControl.NET\server\myProject\WorkingDirectory&amp;lt;/basedirectory&amp;gt;&lt;br /&gt;                &amp;lt;buildargs&amp;gt;&amp;lt;/buildargs&amp;gt;&lt;br /&gt;                &amp;lt;buildtimeoutseconds&amp;gt;30&amp;lt;/buildtimeoutseconds&amp;gt;&lt;br /&gt;            &amp;lt;/exec&amp;gt;&lt;br /&gt;            &amp;lt;exec&amp;gt;&lt;br /&gt;                &amp;lt;!--Call mstest to run the tests contained in the TestProject --&amp;gt;&lt;br /&gt;                &amp;lt;executable&amp;gt;C:\Archivos de programa\Microsoft Visual Studio 9.0\Common7\IDE\mstest.exe&amp;lt;/executable&amp;gt;&lt;br /&gt;                &amp;lt;basedirectory&amp;gt;C:\Archivos de programa\CruiseControl.NET\server\myProject\WorkingDirectory\Source&amp;lt;/basedirectory&amp;gt;&lt;br /&gt;                &amp;lt;!--testcontainer: points to the DLL that contains the tests --&amp;gt;&lt;br /&gt;                &amp;lt;!--runconfig: points to solutions testrunconfig that is created by vs.net, list what test to run --&amp;gt;&lt;br /&gt;                &amp;lt;!--resultsfile: normally the test run log is written to the uniquely named testresults directory  --&amp;gt;&lt;br /&gt;                &amp;lt;!--                   this option causes a fixed name copy of the file to be written as well --&amp;gt;&lt;br /&gt;                &amp;lt;buildargs&amp;gt;/testcontainer:Test\bin\Debug\Test.dll /runconfig:LocalTestRun.testrunconfig /resultsfile:testResults.trx&amp;lt;/buildargs&amp;gt;&lt;br /&gt;                &amp;lt;buildtimeoutseconds&amp;gt;120&amp;lt;/buildtimeoutseconds&amp;gt;&lt;br /&gt;            &amp;lt;/exec&amp;gt;&lt;br /&gt;        &amp;lt;/tasks&amp;gt;&lt;br /&gt;        &amp;lt;publishers&amp;gt;&lt;br /&gt;            &amp;lt;!--to get the test results in the dashboard we have to merge the results XML file --&amp;gt;&lt;br /&gt;            &amp;lt;!--the project working directory is used as the base path here --&amp;gt;&lt;br /&gt;            &amp;lt;merge&amp;gt;&lt;br /&gt;                &amp;lt;files&amp;gt;&lt;br /&gt;                    &amp;lt;file&amp;gt;Source\testResults.trx&amp;lt;/file&amp;gt;&lt;br /&gt;                &amp;lt;/files&amp;gt;&lt;br /&gt;            &amp;lt;/merge&amp;gt;&lt;br /&gt;            &amp;lt;!--this is the line I missed for ages, without it you get strange missing publisher log errors --&amp;gt;&lt;br /&gt;            &amp;lt;xmllogger&amp;gt;&lt;br /&gt;        &amp;lt;/publishers&amp;gt;&lt;br /&gt;    &amp;lt;/project&amp;gt;&lt;br /&gt;&amp;lt;/cruisecontrol&amp;gt;&lt;br /&gt;&lt;br /&gt;Este es el archivo cruise.build que compila la solución VS2008 usando nNant (ubicado en C:\Archivos de programa\CruiseControl.NET\server\myProject\WorkingDirectory):&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&amp;lt;project default="run"&amp;gt;&lt;br /&gt;    &amp;lt;property name="nant.settings.currentframework" value="net-3.5"&amp;gt;&lt;br /&gt;    &amp;lt;property name="MSBuildPath" value="C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe"&amp;gt;   &lt;br /&gt;    &amp;lt;property name="SolutionFile" value="C:\Archivos de programa\CruiseControl.NET\server\myProject\WorkingDirectory\Source\myProject.sln"&amp;gt;   &lt;br /&gt;    &amp;lt;property name="SolutionConfiguration" value="Debug"&amp;gt;&lt;br /&gt;   &lt;br /&gt;    &amp;lt;target name="run" depends="build"&amp;gt;&lt;br /&gt;    &amp;lt;/target&amp;gt;&lt;br /&gt;   &lt;br /&gt;    &amp;lt;target name="build"&amp;gt;&lt;br /&gt;        &amp;lt;exec program="${MSBuildPath}"&amp;gt;&lt;br /&gt;                &amp;lt;arg line="'"&amp;gt;&lt;br /&gt;                &amp;lt;arg line="/property:Configuration=${SolutionConfiguration}"&amp;gt;&lt;br /&gt;                &amp;lt;arg value="/target:Rebuild"&amp;gt;&lt;br /&gt;                &amp;lt;arg value="/verbosity:normal"&amp;gt;&lt;br /&gt;                &amp;lt;arg value="/nologo"&amp;gt;&lt;br /&gt;                &amp;lt;arg line="'/logger:"&amp;gt;&lt;br /&gt;        &amp;lt;/exec&amp;gt;&lt;br /&gt;    &amp;lt;/target&amp;gt;&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;&lt;br /&gt;6. Configurar dashboard. Simplemente hay que crear un virtual directory en IIS y apuntarlo a C:\Archivos de programa\CruiseControl.NET\webdashboard.&lt;br /&gt;&lt;br /&gt;Luego ingresar a http://localhost/ccnet, para ver que el dashboard funciona. Debería verse el proyecto de build. Para agregar los resultados de los test hay que entrar a administer dashboard e instalar MS Test Results y modificar los plugins de dashboard.config (ubicado en C:\Archivos de programa\CruiseControl.NET\webdashboard)&lt;br /&gt;&lt;br /&gt;&amp;lt;buildplugins&amp;gt;&lt;br /&gt;      &amp;lt;buildreportbuildplugin&amp;gt;&lt;br /&gt;        &amp;lt;xslfilenames&amp;gt;&lt;br /&gt;          &amp;lt;xslfile&amp;gt;xsl\header.xsl&amp;lt;/xslfile&amp;gt;&lt;br /&gt;          &amp;lt;xslfile&amp;gt;xsl\modifications.xsl&amp;lt;/xslfile&amp;gt;&lt;br /&gt;          &amp;lt;xslfile&amp;gt;xsl\MsTestSummary2008.xsl&amp;lt;/xslfile&amp;gt;&lt;br /&gt;          &amp;lt;xslfile&amp;gt;xsl\compile.xsl&amp;lt;/xslfile&amp;gt;&lt;br /&gt;        &amp;lt;/xslfilenames&amp;gt;&lt;br /&gt;      &amp;lt;/buildreportbuildplugin&amp;gt;&lt;br /&gt;      &amp;lt;buildlogbuildplugin&amp;gt;&lt;br /&gt;      &amp;lt;xslreportbuildplugin description="MSTest Report" actionname="MSTestBuildReport" xslfilename="xsl\MsTestReport2008.xsl"&amp;gt;&amp;lt;/xslreportbuildplugin&amp;gt;&lt;br /&gt;      &amp;lt;xslreportbuildplugin description="NAnt Output" actionname="NAntOutputBuildReport" xslfilename="xsl\NAnt.xsl"&amp;gt;&amp;lt;/xslreportbuildplugin&amp;gt;&lt;br /&gt;      &amp;lt;xslreportbuildplugin description="NAnt Timings" actionname="NAntTimingsBuildReport" xslfilename="xsl\NAntTiming.xsl"&amp;gt;&amp;lt;/xslreportbuildplugin&amp;gt;&lt;br /&gt;&amp;lt;/buildplugins&amp;gt;&lt;br /&gt;&lt;br /&gt;7. Instalar CC Tray. Esta es una aplicación que corre en el system tray y que muestra mediante semáforos el estado del build. La aplicación se baja desde el dashboard. Luego se agrega el servidor de build y se selecciona el proyecto de que se quiere monitorear.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Algunos links que me fueron útiles&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tutoriales:&lt;br /&gt;&lt;a href="http://confluence.public.thoughtworks.org/display/CCNET/Resources"&gt;http://confluence.public.thoughtworks.org/display/CCNET/Resources&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/KB/dotnet/cruisecontrol_continuous.aspx"&gt;http://www.codeproject.com/KB/dotnet/cruisecontrol_continuous.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Configurar frw 3.5:&lt;br /&gt;&lt;a href="http://codebetter.com/blogs/jeffrey.palermo/archive/2007/11/28/upgrade-nant-for-use-with-vs2008-solutions-and-net-3-5.aspx"&gt;http://codebetter.com/blogs/jeffrey.palermo/archive/2007/11/28/upgrade-nant-for-use-with-vs2008-solutions-and-net-3-5.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Configurar build:&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/1195389/msbuild-task-or-msbuild-exe-with-nant"&gt;http://stackoverflow.com/questions/1195389/msbuild-task-or-msbuild-exe-with-nant&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Configurar MS Test:&lt;br /&gt;&lt;a href="http://blogs.blackmarble.co.uk/blogs/bm-bloggers/archive/2006/06/14/5255.aspx"&gt;http://blogs.blackmarble.co.uk/blogs/bm-bloggers/archive/2006/06/14/5255.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/362208/mstest-failing-in-2008-from-build-script"&gt;http://stackoverflow.com/questions/362208/mstest-failing-in-2008-from-build-script&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;saludos!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-6921107189478090972?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=6921107189478090972' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/6921107189478090972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/6921107189478090972'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2010/01/configurando-cruise-control-net-svn-ms.html' title='Configurando Cruise Control .net + svn + MS Test desde 0'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-3225402683336715676</id><published>2009-12-28T13:36:00.000-08:00</published><updated>2009-12-28T14:15:44.242-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><title type='text'>Inyectando DataContext en repositorios</title><content type='html'>Hoy tuve que hacer un refactor de una aplicación para inyectar DataContext en los repositorios por IoC y utilizar el patrón &lt;a href="http://martinfowler.com/eaaCatalog/unitOfWork.html"&gt;unit of work&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Esta es la interface de un repositorio:&lt;br /&gt;&lt;br /&gt;public interface IContactInformationRepository&lt;br /&gt;{&lt;br /&gt;    void Save(ContactInformation contactInformation);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;y su implementación (recibe por constructor el DataContext):&lt;br /&gt;&lt;br /&gt;public class ContactInformationRepository : IContactInformationRepository&lt;br /&gt;{&lt;br /&gt;    private readonly DataContext dataContext;&lt;br /&gt;    public ContactInformationRepository(DataContext dataContext)&lt;br /&gt;    {&lt;br /&gt;        this.dataContext = dataContext;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void Save(ContactInformation contactInformation)&lt;br /&gt;    {&lt;br /&gt;        dataContext.ContactInformations.InsertOnSubmit(contactInformation);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Para inyectar el data context por IoC, usando StructureMap:&lt;br /&gt;&lt;br /&gt;ForRequestedType&lt;datacontext&gt;()&lt;br /&gt;    .CacheBy(InstanceScope.HttpContext)&lt;br /&gt;    .TheDefault.Is.ConstructedBy(() =&gt;&lt;br /&gt;        new DataContext(ConfigurationManager.AppSettings["connectionString"]));&lt;br /&gt;&lt;br /&gt;Si bien debería haber usado una interface IDataContext (programar hacia interfaces, no implementaciones), elegí el camino más fácil, ya que en este caso no necesito cambiar la implementación del DataContext.&lt;br /&gt;&lt;br /&gt;Luego para implementar el patrón unit of work, me basé en este post:&lt;br /&gt;&lt;a href="http://weblogs.asp.net/rashid/archive/2009/02/26/implementing-unitofwork-pattern-in-linq-to-sql-application.aspx"&gt;http://weblogs.asp.net/rashid/archive/2009/02/26/implementing-unitofwork-pattern-in-linq-to-sql-application.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Los repositorios no hacen el commit de la unit of work. La &lt;a href="http://martinfowler.com/eaaCatalog/serviceLayer.html"&gt;service layer&lt;/a&gt; tiene la responsabilidad de hacerlo. Para eso, cada servicio que realiza cambios en la base de datos tiene una dependencia a la IUnitOfWork. El IoC es responsable que configurar correctamente los repositorios, servicios y unit of work para que todos vean la misma instancia de DataContext:&lt;br /&gt;&lt;a href="http://codepaste.net/zz6g2s"&gt;http://codepaste.net/zz6g2s&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Este es un unit test del servicio, que prubeba la unit of work usando Moq:&lt;br /&gt;&lt;a href="http://codepaste.net/hro3ob"&gt;http://codepaste.net/hro3ob&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En este caso, el servicio usa directamente el repositorio (y no un objeto mock) ya que no se impacta en base de datos, dado que la unit of work es un objeto mock.&lt;br /&gt;&lt;br /&gt;saludos!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-3225402683336715676?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=3225402683336715676' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3225402683336715676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3225402683336715676'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/12/inyectando-datacontext-en-repositorios.html' title='Inyectando DataContext en repositorios'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-1894297365283246787</id><published>2009-12-15T19:19:00.000-08:00</published><updated>2011-11-11T11:42:49.131-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='proposito'/><title type='text'>Proyecto Generador Savonious</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_HTsF5nAznt0/SyhWnMVGPnI/AAAAAAAABag/Nw1QjcvxLuE/s1600-h/modelo+savonius.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 104px; height: 320px;" src="http://1.bp.blogspot.com/_HTsF5nAznt0/SyhWnMVGPnI/AAAAAAAABag/Nw1QjcvxLuE/s320/modelo+savonius.png" alt="" id="BLOGGER_PHOTO_ID_5415673783237623410" border="0" /&gt;&lt;/a&gt;Como comenté &lt;a href="http://blog.kudewe.com/2009/12/difusion-otra-manera-de-minimizar-el.html"&gt;hace unas semanas,&lt;/a&gt; junto con Andrés Navarro vamos a estar difundiendo temas relacionados con minimizar el impacto ambiental. Esta vez, me gustaría comentar sobre el proyecto en que está trabajando Andrés.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Él junto con Nicolas Losano, un compañero de la tecnicatura superior en energía industrial (orientación energía renovable y arquitectura bioclimática), se propusieron la meta de diseñar y construir un generador eólico. A la derecha se muestra uno de los modelos usados para diseñarlo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Antes de conocer este proyecto, pensaba que los generadores eólicos eran lo típicos con hélice de rotor horizontal. Existe una variante de rotor horizontal, conocidos como &lt;a href="http://es.wikipedia.org/wiki/Rotor_Savonius"&gt;savonius&lt;/a&gt;, que tienen algunas características interesantes:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Muy bajo mantenimiento &lt;/li&gt;&lt;li&gt;Simple de instalar &lt;/li&gt;&lt;li&gt;Construcción simple y estable&lt;/li&gt;&lt;li&gt;Potencia nominal: 6 m/s de vientos &lt;/li&gt;&lt;li&gt;Soporta vientos de hasta 140 km/h (42 m/s)&lt;/li&gt;&lt;li&gt;No daña ni provoca un impacto negativo en el medio ambiente&lt;/li&gt;&lt;li&gt;Construido para durar toda la vida&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Estos generadores, a diferencia de los de rotor horizontal, son más aptos para zonas con poco viento, como Buenos Aires.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Como comenta Andrés, este es el estado del proyecto:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;Ya terminamos las aspas, estamos armando la estructura del eje y los discos que agarran las aspas, es un proceso lento, porque para cada pieza hacemos los moldes en madera y eso lleva su tiempo, por los tiempos que manejamos, y porque tan solo quedamos dos, pero aca estamos y vamos a seguir hasta el final.&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;Respecto al financiamiento del proyecto, por ahora están haciendo todo a pulmón:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;Estamos reuniendonos con personas que estan interesadas en ayudarnos a conseguir financiación, en este proceso conocemos gente interesante o personas que estan en la misma que nosotros, si conocen a alguien que nos pueda ayudar, financiar, ayudar tecnicamente, les pedimos colaboración, en lo que se les ocurra.&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;El objetivo del proyecto, según sus impulsores:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;No estamos atras de ganar dinero, pero nos gustaría dedicar nuestro 100 % del tiempo en esto para lo cual necesitaríamos un incentivo, simplemente queremos empezar a desarrollar este tipo de tecnologías simples para de a poco ir animandonos a mas. Creemos en la necesidad de encontrar formas más eficientes y limpias de generar energía que respeten el medio ambiente y puedan generar condiciones de autosustentabilidad para las personas.&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;Solo puedo agregar que me llevé una grata sensación al ver la pasión y las ganas que le ponen. Ojala puedan ser pioneros en la implementación de este tipo de tecnologías simples, eficientes y económicas en Argentina. Otro aporte que considero valioso de ellos es que además fomentan la industria nacional e innovadora.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-1894297365283246787?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=1894297365283246787' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1894297365283246787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1894297365283246787'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/12/proyecto-desarrollo-generador-savonious.html' title='Proyecto Generador Savonious'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_HTsF5nAznt0/SyhWnMVGPnI/AAAAAAAABag/Nw1QjcvxLuE/s72-c/modelo+savonius.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-1131794509809590513</id><published>2009-12-05T07:22:00.000-08:00</published><updated>2009-12-10T19:03:39.417-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Un almuerzo sobre Scrum</title><content type='html'>Ayer tuve la oportunidad de almorzar con Ingrid Astiz. Ella es miembro de la cómunidad ágil, en el último encuentro de ágiles Buenos Aires dio una charla sobre retrospectivas:&lt;div&gt;&lt;a href="http://www.agiles.org/agiles-bsas/agiles-bsas-20091110"&gt;http://www.agiles.org/agiles-bsas/agiles-bsas-20091110&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ingrid me hizo algunas observaciones interesantes respecto a implementar scrum en una empresa. Comparando scrum con las metodologías tradicionales, hay una diferencia de base sutil, pero muy importante.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Las metodologías tradicionales se basan en el control, en cambio scrum se basa en la confianza. Para alguien que quiere implementar scrum, esto es algo que no hay que dejar de ver. Controlar es más fácil que confiar, por lo que es común usar las técnicas de scrum y seguir controlando. Lo difícil es construir confianza.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ingrid tiene contacto con el mundo de las ONGs y me dio una buena idea respecto al &lt;a href="http://blog.kudewe.com/2009/12/un-proyecto-abierto-colaborativo-y-por.html"&gt;proyecto estamos empezando con Chicho para organizar grupos scouts&lt;/a&gt;, la de pensar en una herramienta para eventos auto-organizados, que pueda servir para ONGs y porque no también para la comunidad agile. Sería sin duda un proyecto muy interesante, que podría aportar valor y re alimentarse de una comunidad más grande.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Me contó sobre cómo los animales superan enfermedades como el cáncer, medicinas alternativas que estudian este comportamiento para curar personas, &lt;a href="http://es.wikipedia.org/wiki/Comercio_justo"&gt;comercio justo&lt;/a&gt;, el &lt;a href="http://www.gaia.org.ar/"&gt;permacultivo&lt;/a&gt; en Argentina, su experiencia al aplicar scrum en una ONG. Fue una conversación interesante.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Que tiene que ver todo esto con scrum? Muchas de estas ideas se basan en algo simple, auto organizado, orgánico, adaptable.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A los que les interese el tema de las retrospectivas, les recomiendo ver la película &lt;a href="http://es.wikipedia.org/wiki/12_Angry_Men"&gt;12 hombres en pugna&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-1131794509809590513?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=1131794509809590513' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1131794509809590513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1131794509809590513'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/12/un-almuerzo-sobre-scrum.html' title='Un almuerzo sobre Scrum'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-4718897554484741926</id><published>2009-12-04T21:33:00.001-08:00</published><updated>2011-11-11T11:42:49.132-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='proposito'/><category scheme='http://www.blogger.com/atom/ns#' term='creatividad'/><title type='text'>Difusión: otra manera de minimizar el impacto ambiental</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.drgen.com.ar/wp-content/uploads/2009/10/cambio-climatico.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 450px; height: 375px;" src="http://www.drgen.com.ar/wp-content/uploads/2009/10/cambio-climatico.jpg" border="0" alt="" /&gt;&lt;/a&gt;Algo interesante a la hora de resolver un problema es aprender a mirar fuera del cuadrante para descubrir nuevas posibilidades. Hoy tuve la suerte de charlar con Andrés Navarro, un especialista en energías limpias que me ayudó a abrir la cabeza. Les dejo el link de la charla:&lt;div&gt;&lt;a href="http://dondevuelaelcondor.blogspot.com/2009/12/un-nuevo-amigo-en-el-desafio-del-cambio.html"&gt;http://dondevuelaelcondor.blogspot.com/2009/12/un-nuevo-amigo-en-el-desafio-del-cambio.html&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Una manera de minimizar el impacto ambiental es por ejemplo minimizar la huella de carbono usando paneles solares. Otra manera que me resultó interesante es la de ayudar a divulgar estos temas, para que tomemos conciencia como sociedad.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La 1ra la asocio con un pensamiento lineal / lógico. La segunda con un pensamiento más lateral / creativo. Además, creo que la segunda puede tener un mayor impacto que la 1ra, lo cual la hace una alternativa interesante.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-4718897554484741926?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=4718897554484741926' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/4718897554484741926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/4718897554484741926'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/12/difusion-otra-manera-de-minimizar-el.html' title='Difusión: otra manera de minimizar el impacto ambiental'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-9085525311770174593</id><published>2009-12-02T18:05:00.000-08:00</published><updated>2011-11-11T11:43:52.433-08:00</updated><title type='text'>Un proyecto abierto, colaborativo y por una causa</title><content type='html'>&lt;div&gt;Hoy pasé una tarde de cafe con Fernando Chicho un colega que conocí en un campamento hace menos de 2 semanas. Cuando era chico iba a un grupo scout, hace ya varios años (como pasa el tiempo...). Hace poco los chicos del grupo organizaron un campamento donde invitaron a las generaciones anteriores, las raices, los viejos, los dinosaurios. Fue un encuentro muy emotivo para todos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En ese viaje, hablamos con Fernando sobre hacer un sistema para facilitar la organización del grupo. Hoy nos juntamos y surgieron ideas muy interesantes. Hablamos sobre hacer un proyecto sin fines de lucro, abierto, colaborativo y por una causa. Creo que es interesante comentar los aspectos que charlamos, para destacar que no todo es plata y el potencial que vimos detrás de la idea.&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Nos interesa que open source, para que cualquiera lo pueda usar. De hecho, si le sirve a otros grupos scout, sería mayor aún nuestra satisfacción personal, ya que estaríamos ayudando a más gente.&lt;/li&gt;&lt;li&gt;Abierto, que cualquiera se pueda sumar y colaborar.&lt;/li&gt;&lt;li&gt;Desafiante. Queremos que tenga un elevado nivel de calidad, para atraer a más personas que quieran sumarse. Incluso que sirva de aplicación de referencia sobre las tecnologías que utilice. Hablamos de usar TDD y domain driven design, .net. nhibernate, castle winsor, asp mvc, moq, etc.&lt;/li&gt;&lt;li&gt;Ágil. Queremos usar scrum para ganar experiencia en la metodología, maximizar el valor generado e incluso invitar a cualquiera que quiera aprender o dar su experiencia en scrum a colaborar. Pensamos que además, esto hace más atractivo el proyecto.&lt;/li&gt;&lt;li&gt;En algún futuro, nos gustaría enseñar sistemas a personas con menos recursos y ayudar a insertarlos laboralmente. Por lo que este proyecto puede ser un punto de partida y una buena experiencia sobre trabajar en proyectos colaborativos.&lt;/li&gt;&lt;li&gt;Nos gustaría apoyarnos en la comunidad. También nos gustaría aportar cosas a la comunidad.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Luego hablamos de scrum fuera del mundo del software, sobre la posibilidad de hacer talleres de scrum para los chicos que coordinan, con el objetivo de potenciarlos como equipo y darles herramientas que ellos a su vez puedan potenciar a sus equipos. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El simple hecho de mezclar dos mundos que tienen distintos orígenes pero que no son tan distintos fue un gran disparador de ideas. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Se imaginan un campamento donde referentes del mundo agile compartan su conocimiento con los scouts? Y que los referentes participen a su vez que actividades scout aprendan nuevas dinámicas de equipo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cada vez encuentro más apasionante trabajar con el potencial de las personas.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-9085525311770174593?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=9085525311770174593' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/9085525311770174593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/9085525311770174593'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/12/un-proyecto-abierto-colaborativo-y-por.html' title='Un proyecto abierto, colaborativo y por una causa'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-4876664987937128085</id><published>2009-11-26T15:39:00.000-08:00</published><updated>2009-12-01T16:12:26.003-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><title type='text'>Testing práctico de repositorios y servicios con xUnit</title><content type='html'>Una técnica para hacer testing unitario de repositorios y servicios es usar &lt;a href="http://en.wikipedia.org/wiki/Mock_object"&gt;mock objects&lt;/a&gt;. Si bien está técnica nos permite probar aisladamente una clase (es el objetivo de una prueba unitaria), en casos simples me parece que es más difícil construir el mock que la funcionalidad.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Supongamos que estamos trabajando con un sitio simple de contenidos. Nuestros repositorios pueden ser del tipo:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;IContentRepository {&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Content GetById(int contentId);&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;Ilist&lt;contents&gt; GetBySection(int sectionId);&lt;/contents&gt;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Y nuestro servicio:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;IContentManagementService {&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;Content GetContentById(int contentId);&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Content GetDefaultContent();&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt; &lt;/span&gt;Ilist&lt;contents&gt; GetBySection(int sectionId);&lt;/contents&gt;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A veces por cuestiones prácticas conviene no seguir algunas reglas (cómo la de usar objetos mock) y testear directamente sobre los objetos que construimos. Un simple assert, puede hacer mucho por nosotros (para repositorios y servicios):&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ilist&lt;contents&gt; contents = repository.GetBySection(1);&lt;/contents&gt;&lt;/div&gt;&lt;div&gt;Assert.IsNotNull(contents);&lt;/div&gt;&lt;div&gt;Assert.IsTrue(contents.size &gt; 0);&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Nos puede ayudar a probar varias cosas, como por ejemplo:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Que mapeamos bien los objetos en el ORM.&lt;/li&gt;&lt;li&gt;Las expresiones de las consultas (hql, linq, sql, etc.) no dan error al ejecutarse.&lt;/li&gt;&lt;li&gt;Las dependencias de IoC. Esto puede no servir de mucho, si tenemos un contexto de IoC para test y otro para la aplicación.&lt;/li&gt;&lt;li&gt;Si se hicieron cambios en la base de datos no se rompió nada.&lt;/li&gt;&lt;li&gt;Que mínimamente todo funciona, lo cual es muy bueno frente a no probar nada.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Estos tipo de test son muy rápidos y fáciles de crear. Lo único que requieren son de una base de datos especial de testing, para que los test no se vuelvan inválidos con el tiempo, ya que es muy probable que los datos en desarrollo cambien.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Incluso con una pequeña modificación se podrían probar las consultas:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Ilist&lt;contents&gt; contents = repository.GetBySection(1);&lt;/contents&gt;&lt;/div&gt;&lt;div&gt;Assert.IsNotNull(contents);&lt;/div&gt;&lt;div&gt;&lt;b&gt;Assert.AreEquals(5, contents.size);&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Es cierto que no sería una prueba unitaria 100%, pero tiene una buena relación costo / beneficio.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-4876664987937128085?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=4876664987937128085' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/4876664987937128085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/4876664987937128085'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/11/tdd-practico-de-repositorios-y.html' title='Testing práctico de repositorios y servicios con xUnit'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-724868540944915116</id><published>2009-11-21T10:07:00.000-08:00</published><updated>2009-11-21T13:17:36.024-08:00</updated><title type='text'>Integración kudewe reports con sistemas legacy</title><content type='html'>Un punto importante a resolver en una herramienta de reporting es la integración con otros point solutions. Lo primero que pensé fue en una herramienta tipo &lt;a href="http://es.wikipedia.org/wiki/ETL"&gt;ETL&lt;/a&gt; para extraer los datos de los point solutions, transformarlos y cargarlos en kudewe reports. Buscando encontré esta lista open source:&lt;div&gt;&lt;a href="http://www.manageability.org/blog/stuff/open-source-etl"&gt;http://www.manageability.org/blog/stuff/open-source-etl&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Quería algo liviano, simple y fácilmente testeable. Algunas de estas herramientas son visuales (kettle, cover etl, talend) seguramente en poco tiempo y sin conocimientos de programación se pueden construir procesos ETL simples. Pero una desventaja es que no tienen automatizados los test (al menos que yo sepa). Leyendo en la lista me encontré con &lt;a href="http://static.springsource.org/spring-batch/"&gt;spring batch&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Estás son algunas características interesantes de spring batch:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Tiene un &lt;a href="http://static.springsource.org/spring-batch/reference/html/domain.html"&gt;lenguaje de dominio&lt;/a&gt; muy claro del mundo batch.&lt;/li&gt;&lt;li&gt;No tengo que aprender una herramienta nueva, toda la aplicación está construida en java.&lt;/li&gt;&lt;li&gt;Clear separation of concerns.&lt;/li&gt;&lt;li&gt;Basado en objetos POJO =&gt; simple y fácilmente testeable.&lt;/li&gt;&lt;li&gt;Cada pieza se puede &lt;a href="http://static.springsource.org/spring-batch/reference/html/testing.html"&gt;testear unitariamente&lt;/a&gt;, como así también todo el punta a punta.&lt;/li&gt;&lt;li&gt;Es escalable, probada, sigue la filosofía de spring.&lt;/li&gt;&lt;li&gt;Se complementa con herramientas de schedule, tipo &lt;a href="http://www.quartz-scheduler.org/"&gt;quartz&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;El objetivo de este sprint es integrar kudewe reports con una aplicación web asp / ms access. Dado que es la primera vez que hago algo parecido, hay algunas cuestiones que presentan ciertos riesgos y que por lo tanto conviene encararlas tempranamente. Por eso,  lo primero a resolver es cómo conectarse a una base de datos ms access desde java. Intenté hacerlo desde ubuntu, pero no encontré como. Leí algunas cosas de un &lt;a href="http://www.easysoft.com/products/data_access/jdbc_odbc_bridge/index.html?location=Easysoft%20Data%20Access%20menu"&gt;puente odbc-jdbc&lt;/a&gt;, pero me parecieron complejas. Por lo que opté hacerlo desde windows, que es el entorno de mi cliente. Para eso encontré un ejemplo simple:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.codeproject.com/KB/database/jdbcodbc.aspx"&gt;http://www.codeproject.com/KB/database/jdbcodbc.aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;si queremos acceder a través de un dsn, este otro ejemplo explica como:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=2691&amp;amp;lngWId=2"&gt;http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=2691&amp;amp;lngWId=2&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lo siguiente es ejecutar los ejemplos de spring batch. Para eso tuve que instalar maven&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.sonatype.com/books/m2eclipse-book/reference/"&gt;http://www.sonatype.com/books/m2eclipse-book/reference/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;y agregar a eclipse.ini la ubicación de la vm (requerido por maven, importante escribir la configuración en 2 líneas):&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;-vm&lt;/div&gt;&lt;div&gt;C:\Archivos de programa\Java\jdk1.6.0_17\bin&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Luego, para abrir los ejemplos de spring batch solo que hay crear un nuevo proyecto java en eclipse y seleccionar la carpeta que contiene el ejemplo. Automáticamente se instalarán las dependencias configuradas en el archivo .pom.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ahora a revisar el ejemplo spring-batch-simple_cli para hacer la prueba de concepto...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-724868540944915116?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=724868540944915116' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/724868540944915116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/724868540944915116'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/11/integracion-kudewe-reports-con-sistemas.html' title='Integración kudewe reports con sistemas legacy'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-8813629057055493419</id><published>2009-11-15T13:42:00.000-08:00</published><updated>2009-11-27T09:13:41.870-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Equipos auto organizados: la cordada</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_KJxP8stBacs/SwB6hytjUHI/AAAAAAAAACY/hPaiv4g955Y/s1600-h/IMG_3889.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_KJxP8stBacs/SwB6hytjUHI/AAAAAAAAACY/hPaiv4g955Y/s320/IMG_3889.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5404454273811697778" /&gt;&lt;/a&gt;Algo interesante de scrum es que puede aplicarse a otras actividades, no solo al desarrollo de software. De hecho, me imagino sería muy enriquecedor usarlo en escenarios que no tengan nada que ver.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Muchas de las cosas que plante scrum no son nuevas, como por ejemplo los equipos auto organizados. Es muy interesante la dinámica de un equipo que no sigue las reglas de un líder, sino donde el liderazgo es emergente y contextual.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El primer ejemplo que se me ocurre es la cordada. Una cordada es un grupo de personas con un objetivo en común: escalar. Se le llama cordada porque generalmente van encordados (atados). El ir atados es algo muy simbólico para un equipo. Uno a uno los integrantes de van exponiendo al riesgo y los otros lo protegen a través de la cuerda.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Encontrar la mejor manera de escalar una montaña es un problema realmente difícil. Es prácticamente imposible planificarlo todo de ante mano. Generalmente antes de salir acordamos qué equipo llevar, cuanta comida, días, etc. Pero sobre la marcha el equipo se va auto organizando según el contexto. Puede ser que el clima cambie, o que uno se sienta mal o más fuerte o con más ganas. Hay miles de factores que pueden influir.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Me acuerdo de una vez que empezamos a escalar de noche y nos íbamos turnando para abrir huella en la nieve. No pasó que el líder de la expedición dijera "cada uno camina 20 minutos al frente y se va rotando". Todo lo contrario, no había líder. Simplemente acordamos ir caminando por turnos, el que va adelante controla el ritmo y cambia cuando se siente muy cansado o cuando considera que otro puede hacer mejor el trabajo. Y todo se hace en función del equipo, no del interés de un individuo. Según mi experiencia en la montaña, este tipo de dinámicas son muy integradoras y generadoras de buenas amistades.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-8813629057055493419?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=8813629057055493419' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/8813629057055493419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/8813629057055493419'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/11/equipos-auto-organizados-la-cordada.html' title='Equipos auto organizados: la cordada'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_KJxP8stBacs/SwB6hytjUHI/AAAAAAAAACY/hPaiv4g955Y/s72-c/IMG_3889.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-1452193475432078446</id><published>2009-11-11T10:07:00.000-08:00</published><updated>2009-11-17T13:47:24.484-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>2do día Curso Scrum Master</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_HTsF5nAznt0/SwMZ3mbGkvI/AAAAAAAABY0/Y-KIA9S2J_g/s1600/pajarraco.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 319px; height: 309px;" src="http://2.bp.blogspot.com/_HTsF5nAznt0/SwMZ3mbGkvI/AAAAAAAABY0/Y-KIA9S2J_g/s320/pajarraco.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5405192420772451058" /&gt;&lt;/a&gt;Durante el segundo día de scrum aprendí un poco más sobre el framework. Hicimos un juego muy bueno en donde construimos algo en 4 sprints, usando user stories, autorganizándonos como equipo haciendo pequeños plannings y retrospectivas. Fue una actividad muy dinámica en la que aprendí scrum haciendo. Ya voy a poner una foto de nuestro "producto".&lt;br /&gt;&lt;br /&gt;Otra actividad que me pareció muy buena fue un role play de una daily meeting en un proyecto que "quema". El PO participó de la reunion con un rol activo (en lugar de escuchando), de hecho fue el 1ro que habló y tiró la bomba. El equipo reaccionó hechando culpas, fue un momento tenso. La cosa estaba muy dicícil para el scrum master, tanto que terminó renunciando. Pero entre todos pudimos aprender mucho haciendo una retrospectiva en conjunto.&lt;br /&gt;&lt;br /&gt;La daily meeting es una reunión para detectar problemas, no para resolverlos. Es una reunión para el equipo, donde se crea un espacio para descubrir impedimentos. Es importante no olvidar esto, para pedir al PO que no intervenga (él tendrá su momento en la demo o en una meeting especial) y que cada miembro del equipo explique sus problemas sin buscar culpables, para que no se pierda el objetivo de la reunión.&lt;br /&gt;&lt;br /&gt;Algo que me llevo de este segundo día es que el trabajo de scrum master no es nada fácil, todo lo contrario. Pero también es desafiante, ya que se trabaja con el potencial humano y lo que éste puede conseguir. Un buen scrum master debe ser un buen facilitador, mantener discusiones abiertas y guiar el equipo por zonas de incomodidad para que al final todos mejoremos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-1452193475432078446?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=1452193475432078446' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1452193475432078446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1452193475432078446'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/11/2do-dia-curso-scrum-master.html' title='2do día Curso Scrum Master'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_HTsF5nAznt0/SwMZ3mbGkvI/AAAAAAAABY0/Y-KIA9S2J_g/s72-c/pajarraco.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-2244714480191530376</id><published>2009-11-09T16:59:00.000-08:00</published><updated>2009-11-11T10:10:25.649-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>1er día Curso Scrum Master</title><content type='html'>Hoy asistí al 1er día de entrenamiento de scrum master. Si bien solo vamos la mitad del curso, me pareció buenísimo la dinámica con que se dicta (gracias a Alan y Ariel). Esta ver no quiero comentar sobre scrum, sus roles/responsabilidades, flujos y artefactos. Sino de algo que creo que va más allá de scrum y está presente en casi toda actividad, que tiene que ver con formar equipos, buenos equipos.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Si bien scrum ayuda mucho a conseguir esto, llevarlo a la práctica encierra un desafío muy grande. Ese desafío tiene que ver con sembrar confianza, fomentar la colaboración, potenciar a las personas, generar transparencia, etc.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Algo que rescato de este enfoque es que se trata de un objetivo que trasciende a lo que hacemos todos los días. Va más allá de construir un ABM o probar una funcionalidad. Se trata de mejorar el entorno en el cual trabajamos, de que todos mejoremos profesionalmente, de construir sobre valores. Suena muy idealista, pero es la base para construir un buen equipo, en cualquier ámbito. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Podré decir alguna vez como Pinti:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;Pasan los años, pasan los gobiernos,los radicales y los peronistas, quedan los scrum masters?&lt;/blockquote&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/AvH63vCKxPw&amp;amp;hl=es&amp;amp;fs=1&amp;amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/AvH63vCKxPw&amp;amp;hl=es&amp;amp;fs=1&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-2244714480191530376?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=2244714480191530376' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/2244714480191530376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/2244714480191530376'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/11/1er-dia-curso-scrum-master.html' title='1er día Curso Scrum Master'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-5927620107057201520</id><published>2009-11-08T14:26:00.001-08:00</published><updated>2009-11-08T19:20:13.872-08:00</updated><title type='text'>Instalar SVN en Eclipse Galileo y Ubuntu 9.10</title><content type='html'>&lt;div&gt;Luego de actualizar Ubuntu 9.10 y bajar Galileo, me pasó que dejaron de andar algunos botontes en eclipse. Por suerte encontré cómo arreglarlo:&lt;/div&gt;&lt;div&gt;&lt;a href="http://ubuntulife.wordpress.com/2009/11/03/solucionar-botones-no-funcionan-de-eclipse-galileo-en-ubuntu-9-10/"&gt;http://ubuntulife.wordpress.com/2009/11/03/solucionar-botones-no-funcionan-de-eclipse-galileo-en-ubuntu-9-10/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tuve algunos problemas para instalar tigris svn (me dejó de andar el eclipse ganymede, por lo que me bajé el galileo). Asi que sobre el galileo instalé subversive svn:&lt;/div&gt;&lt;div&gt;&lt;a href="http://benjchristensen.com/2009/06/24/eclipse-galileo-3-5-and-subversion/"&gt;http://benjchristensen.com/2009/06/24/eclipse-galileo-3-5-and-subversion/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Luego de esto pude subir sin problemas el proyecto a google code:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-5927620107057201520?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=5927620107057201520' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/5927620107057201520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/5927620107057201520'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/11/instalar-svn-en-eclipse-galileo-y.html' title='Instalar SVN en Eclipse Galileo y Ubuntu 9.10'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-5744403094074772128</id><published>2009-11-07T15:46:00.000-08:00</published><updated>2009-11-08T19:47:20.252-08:00</updated><title type='text'>Publicando Kudewe Reports Web en el mundo open source</title><content type='html'>Hoy voy a publicar en google code el código del front end de Kudewe Reports, que se llama Kudewe Reports Web (me maté con el nombre). Se trata de una herramienta web de reporting que permite fácilmente construir tableros de control (dashboard) que contienen vistas (grillas y gráficos) y filtros (por ahora tipo combo).&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esta es la url del repositorio en goolge code:&lt;/div&gt;&lt;div&gt;&lt;a href="http://code.google.com/p/kudewe/source/browse/#svn/trunk/reportsWeb"&gt;http://code.google.com/p/kudewe/source/browse/#svn/trunk/reportsWeb&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El front end es una aplicación web estática html + javascript estándar, basada en el framework &lt;a href="http://www.extjs.com/"&gt;extJs&lt;/a&gt;. Me decidí por usar un front end que sea independiente de la tecnología server side, para que cualquiera lo pueda usar, ya sea .net, java, php, etc. También elegí esta alternativa para poder en el futuro agregar la posibilidad de funcionar de manera offline. En mi caso un front end independiente de la tecnología server side me resultó fácil armar y fácil de testear.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Estas son unas demos que armé:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=2Eedfu2zcuM"&gt;http://www.youtube.com/watch?v=2Eedfu2zcuM&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=Vk3RY5R7fbc"&gt;http://www.youtube.com/watch?v=Vk3RY5R7fbc&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En mi caso estoy usando como pegamento entre el client side y server side &lt;a href="http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/ch01s02.html#d0e348"&gt;spring web&lt;/a&gt; y url amigables:&lt;/div&gt;&lt;div&gt;&lt;a href="http://blog.kudewe.com/2009/08/conectando-extjs-con-el-server-side.html"&gt;http://blog.kudewe.com/2009/08/conectando-extjs-con-el-server-side.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Algo interesante, y sobre lo que tengo que escribir, es que la aplicación está construida como una composite web application. Los filtros y las vistas tienen bajo acople entre si. Pasa eso estoy usando un patrón tipo publish/subscribe implementado con &lt;a href="http://developer.tibco.com/pagebus/default.jsp"&gt;Tibco PageBus&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;También me gustaría armar algunos tests usando &lt;a href="http://seleniumhq.org/"&gt;selenium&lt;/a&gt;. Esto es algo que podría hacer fácilmente, ya que el front end no tiene dependencias a ninguna tecnología server side. Cuando este ejecuta un servicio json, el webserver devuelve un archivo ubicado en el path solicitado. Por ejemplo:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;services/menu.json: Devuelve el menú de la aplicación&lt;/div&gt;&lt;div&gt;services/sales/yearly.json: Devuelve la definición del dashboard "yearly"&lt;/div&gt;&lt;div&gt;services/sales/yearly/filter/brand: Devuelve el filtro "brand" del dashboard "yearly"&lt;/div&gt;&lt;div&gt;services/sales/yearly/view/byBrand: Devuelve las ventas por marca "byBrand" del dashboard "yearly"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-5744403094074772128?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=5744403094074772128' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/5744403094074772128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/5744403094074772128'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/11/publicando-kudewe-reports-web-en-el.html' title='Publicando Kudewe Reports Web en el mundo open source'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-2927263723324194271</id><published>2009-11-07T08:13:00.000-08:00</published><updated>2011-11-11T11:43:52.433-08:00</updated><title type='text'>Sol + sal = energía</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.ideaconnection.com/images/inventions/solar-salt-energy.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 150px; height: 120px;" src="http://www.ideaconnection.com/images/inventions/solar-salt-energy.jpg" border="0" alt="" /&gt;&lt;/a&gt;Gracias a &lt;a href="http://www.ideaconnection.com/"&gt;idea connection&lt;/a&gt;, me enteré de una manera innovadora de generar energía a partir del sol.&lt;div&gt;&lt;a href="http://www.ideaconnection.com/new-inventions/solar-salt-energy-02972.html"&gt;http://www.ideaconnection.com/new-inventions/solar-salt-energy-02972.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; Algo parecido había visto hace tiempo, donde leí que google estaba investigando en tecnologías de espejo para abaratar los costos de generación de energía (&lt;a href="http://energiasolarok.blogspot.com/2009/09/google-por-la-energia-solar.html"&gt;http://energiasolarok.blogspot.com/2009/09/google-por-la-energia-solar.html&lt;/a&gt;)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Me alegra escuchar sobre nuevas iniciativas que ayudan a que esto sea cada más fácil de implementar. En nuestro país la energía solar no es barata, un panel de 80w vale aproximadamente $2500. Todavía tenemos que trabajar en disminuir estos costos, para que este tipo de alternativas sean más accesibles y más personas se animen a utilizarlas. También me parece importante que empecemos a pensar sobre estos temas y a cambiar nuestras prioridades. Me viene a la mente una frase que me sirve para poner las cosas en perspectiva:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;No heredamos la tierra de nuestros padres, sino que la tomamos prestadas de nuestros nietos.&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-2927263723324194271?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=2927263723324194271' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/2927263723324194271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/2927263723324194271'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/11/sol-sal-energia.html' title='Sol + sal = energía'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-3895308288631750400</id><published>2009-11-01T15:40:00.001-08:00</published><updated>2010-06-21T15:59:52.648-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emprender'/><title type='text'>De la relación de dependencia al emprendimiento</title><content type='html'>Últimamente me pasa seguido de conversar con amigos respecto a trabajar en otra cosa, algo propio. Lo que compartimos en general es que después de estar algunos años en el mismo trabajo, es difícil mantener la motivación.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Una vez escuche en una charla de &lt;a href="http://twitter.com/bilinkis"&gt;@bilinkis&lt;/a&gt;, que las empresas buscan el engranaje que mejor encaje en su maquinaria. El problema con esto es que nosotros somos personas, no engranajes, tenemos particularidades que nos diferencias y es en nuestras particularidades donde se esconde nuestro potencial. Por lo que en una empresa se hace realmente difícil explotar ese potencial al máximo. Con lo años, uno se va acostumbrando a cómo hacer las cosas para que la maquinaria funcione mejor y poco a poco se va aplacando eso que nos hace distintos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Muchos me dicen que estando por tu cuenta trabajás más. Si bien esto es algo que parece cierto, ya que conozco algunas experiencias que lo confirman, creo que en mi caso prefiero trabajar 12hs motivado que 8 sin motivación.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Así que este post es para los que buscan motivación en el trabajo. En mi caso me ayudó mucho empezar a leer blogs sobre enterpreneuship. Este fue uno de los primeros que leí, que habla sobre la transformación de desarrollador de software a emprendedor de software:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.softwarebyrob.com/2009/07/24/transitioning-from-developer-to-software-entrepreneur/"&gt;http://www.softwarebyrob.com/2009/07/24/transitioning-from-developer-to-software-entrepreneur/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Este es otro muy bueno, que habla sobre cómo conseguir clientes, organizar el tiempo, etc:&lt;/div&gt;&lt;div&gt;&lt;a href="http://freelanceswitch.com/"&gt;http://freelanceswitch.com/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Uno muy bueno, para empezar a concretar algo, es el Santiago Bilinkis:&lt;/div&gt;&lt;div&gt;&lt;a href="http://spanish.bilinkis.com/"&gt;http://spanish.bilinkis.com/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Me han servido de mucha ayuda sus post para bajar una idea a algo más concreto y empezar a enfocarme:&lt;/div&gt;&lt;div&gt;&lt;a href="http://spanish.bilinkis.com/2009/04/modelos-excel/"&gt;http://spanish.bilinkis.com/2009/04/modelos-excel/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://spanish.bilinkis.com/2009/04/modelando-un-negocio/"&gt;http://spanish.bilinkis.com/2009/04/modelando-un-negocio/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://spanish.bilinkis.com/2009/04/idea-robada/"&gt;http://spanish.bilinkis.com/2009/04/idea-robada/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ahora me pasa que tengo en claro lo que quiero hacer (&lt;a href="http://blog.kudewe.com/2009/09/desarrollar-software-usando-energias.html"&gt;construir aplicaciones de software usando energias limpias&lt;/a&gt;), de hecho ya estoy trabajado en la primera: &lt;a href="http://blog.kudewe.com/2009/09/toclasaas-2da-demo.html"&gt;kudewe reports&lt;/a&gt;. Sin embargo, necesito dedicarle más tiempo a este proyecto. No estoy en condiciones de abandonar mi trabajo actual para dedicarme de lleno a esto, ya que en el super &lt;a href="http://ajlopez.zoomblog.com/archivo/2008/10/17/el-Efecto-Coto.html"&gt;no me pagan por mis aportes a la humanidad&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Pero buscando y buscando encontré una solución, conseguí un trabajo de 4 días a la semana que además es un interesante desafío profesional (.net, arquitectura, scrum). Por lo que ahora puedo dedicar más tiempo a este proyecto.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-3895308288631750400?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=3895308288631750400' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3895308288631750400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3895308288631750400'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/11/de-la-relacion-de-dependencia-al.html' title='De la relación de dependencia al emprendimiento'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-6551106435045104742</id><published>2009-10-27T16:56:00.000-07:00</published><updated>2009-10-27T17:27:33.659-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><title type='text'>Tuneando la performance de sitios web</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_HTsF5nAznt0/SueNREorBRI/AAAAAAAABXA/GyaNfmQ8jk4/s1600-h/tuning.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_HTsF5nAznt0/SueNREorBRI/AAAAAAAABXA/GyaNfmQ8jk4/s320/tuning.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5397438002868454674" /&gt;&lt;/a&gt;&lt;div&gt;Este post describe distintas técnicas de optimización de performance para sitios web. Se basa en la experiencia de una aplicación de reporting construida en asp.net con fuertes constraints de performance (tiempo de ejecución por debajo de 2 segundos para accesos locales y 8 segundos para accesos remotos), teniendo una conectividad pobre desde sitios remotos.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Sin embargo estas técnicas aplican a cualquier aplicación tipo web/html. Las implementaciones y ejemplos de código se corresponden a una aplicación asp .net 2.0, c#, IIS 6, pero pueden extenderse a otras tecnologías.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Un buen lugar para empezar a abordar este tema es el sitio de best practices de yahoo (se pueden encontrar muy buenas recomendaciones):&lt;/div&gt;&lt;div&gt;&lt;a href="http://developer.yahoo.com/performance/"&gt;http://developer.yahoo.com/performance/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Según una investigación realizada por ellos (&lt;a href="http://yuiblog.com/blog/2006/11/28/performance-research-part-1/"&gt;http://yuiblog.com/blog/2006/11/28/performance-research-part-1/&lt;/a&gt;), al acceder a una aplicación web el tiempo de download se distribuye un 20% en html y el 80% restante en otro tipo de contenido (javascript, imágenes, etc.) Por lo tanto la primera recomendación es:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;Minimizar la cantidad de gets (roundtrips)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esto puede conseguirse de distintas maneras:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Unificar archivos javascript&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En nuestro caso tenemos un archivo .js para cada funcionalidad, de manera tal de hacer el desarrollo más modular. Al armar la version release los unificamos y comprimimos en un único archivo. Lo mismo se puede hacer para las hojas de estilo. Se debe tener en cuenta que cuanto mejor formado esté el código javascript (usando llaves para todas las instrucciones aunque no sea necesario, ";" al final de cada línea, etc.) mayor será el nivel de compresión que se puede aplicar.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para unificar los archivos utilizamos una simple pagina .aspx que contiene un include a cada fuente javascript. Luego la aplicación detecta si está en modo debug o relase (usando HttpContext.Current.IsDebuggingEnabled) y en función de esto genera del lado del server las referencias a fuentes javascript necesarias. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Juntar varias imágenes en una (css sprite)&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esta ténica se conoce como css sprite. Básicamente se arma una imagen con las imágenes más utilizadas por la aplicación y se referencia con estilos a porciones de esta imagen. Ejemplo:&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Definicion de clase para icono de ayuda:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;.imgHelpIcon { background: url('/App/Cached/sprite.gif') 0 0 no-repeat; font:1pt; background-position: 10 -20px; width: 15px; height: 15px; }&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Uso del estilo:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&amp;lt;span class="imgHelpIcon"&amp;gt;&amp;lt;/span&amp;gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Utilizar cache infinito para recursos estáticos&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esta técnica tiene gran impacto en el download, sobre todo si la mayoría de los usuarios utilizan frecuentemente la aplicación. Con esto se evitan los gets a estos recursos, incluso si el cache del browser está configurado como "every visit to the page".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En nuestro caso lo implementamos de la siguiente manera. Configuramos en el webserver una carpeta cached con fecha de exipiracion en 2035. De esta manera disponemos de 2 altenativas para almacenar los recursos estáticos (con y sin cache). Por ejemplo en modo debug la aplicación utiliza los scripts de la carpeta app/scripts. En cambio, en modo release utiliza app/&lt;b&gt;cached&lt;/b&gt;/scripts.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para los recursos que pueden cambiar (como js y css) los versionamos agregando un parametro a la url. Por ejemplo:&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&amp;lt;script scr="cached/all_js.js?v=1.01"&amp;gt;&amp;lt;/script&amp;gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para recuperar este valor usamos el método &lt;b&gt;ConfigurationManager.AppSettings.Get("jsVersion")&lt;/b&gt;. Cada vez que se arma un release, incrementamos este número solo si se realiza un cambio sobre algún fuente javascript.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Aplicando esta técnica a los recursos estáticos, los gets de usuarios frecuentes se redujeron a práctiamente solo uno para obtener el html (ya que el browser recupera todos los recursos estáticos del cache). Esta técnica mejora notablemente los tiempos de acceso desde clientes remotos.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Quitar seguridad integrada a recursos estáticos&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Los recursos con seguridad integrada implican 2 o 3 roundtrips al server según el tipo de autenticación. Por lo tanto es conveniente evitarla siempre&lt;/div&gt;&lt;div&gt;que sea posible.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Quitar seguridad integrada a servicios ajax&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En algunos servicios ajax se necesita información del usuario para resolver ciertas funcionalidades. Para evitar la seguridad integrada, el usuario forma parte del estado en el server (más adelante se explica mejor cómo resolver esta cuestión). De esta manera todos los servicios ajax se ejecutan sin seguridad integrada.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Quitar seguridad integrada de aplicación.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Aplicar esta técnica nos llevó un poco más de trabajo. Básicamente solo una página (authenticate.aspx) está configurada con seguridad integrada. Cuando el usuario ingresa a la aplicación, esta intenta obtener el usuario del estado. Sino lo puede obtener, entonces asume que no está autenticado, lo redirecciona a authenticate.aspx para que obtenga las credenciales del usuario, lo guarde en el estado y lo redireccione nuevamente a la aplicación. Luego el usuario navega por la aplicación sin seguridad integrada (la aplicación verifica que el usuario esté autenticado usando una variable de sesión).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Al implementar este mecanismo nos encontramos con un problema grave. IE 6 tiene un bug donde a veces no envía los parámetros enviados por post (&lt;a href="http://blogs.msdn.com/david.wang/archive/2005/12/01/HTTP-POST-Fails-for-Anonymous-Authentication.aspx"&gt;http://blogs.msdn.com/david.wang/archive/2005/12/01/HTTP-POST-Fails-for-Anonymous-Authentication.aspx&lt;/a&gt;). Esto lo solucionamos configurando acceso anónimo y seguridad integrada a la vez.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Si reducimos todo lo posible la cantidad de pedidos al server (GETs) lo siguiente que podemos hacer es reducir el tamaño de la información intercambiada.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;Reducir el tamaño de los gets / responses&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Comprimir javascript y css&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Existen varias herramientas para hacer esto (&lt;a href="http://developer.yahoo.com/yui/compressor/"&gt;http://developer.yahoo.com/yui/compressor/&lt;/a&gt;). Estas herramientas básicamente eliminan espacios, comentarios, incluso algunas hasta ofuscan el código para reducir su tamaño.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Reducir tamaño html&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La idea es simple, cuanto menos se envíe, más rápido va a terminar la transferencia. Se pueden hacer varias cosas para reducir el html:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Eliminar espacios&lt;/li&gt;&lt;li&gt;Utilizar nombres abreviados para los nombres de estilos y objetos&lt;/li&gt;&lt;li&gt;Maximizar el uso de hojas de estilo, dejando el html mucho más limpio. Una herramienta muy útil para hacer esto son los css selector (&lt;a href="http://www.w3schools.com/Css/css_syntax.asp"&gt;http://www.w3schools.com/Css/css_syntax.asp&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Manejo de estado&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;La aplicación persiste el estado en el server. En lugar de utilizar campos hidden en el cliente (que se envían en cada postback), utiliza variables de sessión para persistir los cambios realizados sobre un reporte (filtro, paginado, drill, etc.). De esta manera el cliente solo envía al server lo que cambia, reduciendo considerablemente el tamaño de los requests. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Mantener estado en el cliente usando user behaviour&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esto se puede aplicar en los casos que solo se necesita persistir información en el cliente y esta no es requerida por el server (ejemplo: estado de apertura de un árbol). Internet explorer ofrece un behavour que permite persistir información en el cliente (incluso cuando el usuario cierra el browser):&lt;/div&gt;&lt;div&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms531424(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/ms531424(VS.85).aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Ajax + json / xml&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El los casos donde los servicios ajax devuelven datos, usamos json ya que es más liviano que xml. Solo en algunas ocaciones, cuando el servicio ajax devuelve html, usamos xml. En este caso el html se devuelve dentro de un cdata para evitar problemas de encodeo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;Otrás técnicas que no usamos, pero también son de ayuda&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Compresión gzip&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Es posible configurar IIS para que comprima gzip archivos javascript y estilos. El beneficio de la compresión gzip es notorio cuando se accede remotamente. También es posible comprimir recursos dinámicos como páginas aspx.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Usar varios dominios para el download de contenido&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Por default el browser usa 2 conexiones por dominio para hacer el download. Si el contenido cambia (como ocurre por ejemplo en los portales), es posible utilizar distintos dominios para el mismo, de manera tal de aumentar la cantidad de conexiones usadas por el browser.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En el sitio de yahoo hay otra recomendaciones:&lt;/div&gt;&lt;div&gt;&lt;a href="http://developer.yahoo.com/performance/rules.html"&gt;http://developer.yahoo.com/performance/rules.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;Herramientas&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En nuestro caso fue fudamental usar máquinas virtuales como entorno de desarrollo para poder experimentar con estas técnicas y contar con máquinas tipo desktop estandar en sitios remotos para poder evaluar el impacto de las mismas. También nos sirvió de mucho usar un debugger http como fiddler (&lt;a href="http://www.fiddlertool.com/fiddler"&gt;http://www.fiddlertool.com/fiddler&lt;/a&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Fiddler permite ver gráficamente cómo es el tiempo de download. Para ello, se debe activar el modo streaming (&lt;a href="http://www.fiddlertool.com/Fiddler/help/Streaming.asp"&gt;http://www.fiddlertool.com/Fiddler/help/Streaming.asp&lt;/a&gt;). Con esta herramienta es fácil encontrar puntos de mejora, revisar errores http 404, ver el impacto de aplicar estas técnicas, etc.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-6551106435045104742?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=6551106435045104742' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/6551106435045104742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/6551106435045104742'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/10/tuneando-la-performance-de-sitios-web.html' title='Tuneando la performance de sitios web'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_HTsF5nAznt0/SueNREorBRI/AAAAAAAABXA/GyaNfmQ8jk4/s72-c/tuning.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-841471116059278312</id><published>2009-10-22T16:21:00.000-07:00</published><updated>2011-11-11T11:43:52.433-08:00</updated><title type='text'>Cuál es la instalación de paneles solares más sustentable?</title><content type='html'>Desde hace un tiempo vengo trabajando en esta idea. Conseguí una lista de los proveedores en Argentina (&lt;a href="http://www.energiaslimpias.org/categoria/informes-energia-solar/"&gt;http://www.energiaslimpias.org/categoria/informes-energia-solar/&lt;/a&gt;) y me contacté con todos para consultar por una instalación para hacer andar una notebook (80w) durante 8hs x día.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La típica instalación está formada por los paneles solares, regulador (para no sobre cargar la batería), batería (para acumular la energía y usarla cuando no hay sol), inversor (para convertir los 12v de continua de la bateria a 220v de alterna). Encuentro algunas desventajas a este tipos de instalación:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Son costosas =&gt; difícil que otros quieran implementarlas también.&lt;/li&gt;&lt;li&gt;Podrían ser mas eficientes, ya que se pierde energía en el regulador, inversor y cargador de notebook.&lt;/li&gt;&lt;li&gt;Requiere varios paneles solares (los paneles se colocan orientados al norte, a 50 grados aproximadamente).&lt;/li&gt;&lt;li&gt;Plantean el problema de qué hacer con la batería cuando finaliza la vida útil de esta.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Por lo que se me ocurren algunas variaciones sobre este esquema básico:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Usar un único panel solar y orientarlo al sol según la hora. Tendría que buscar la manera de automatizar esto... O podría combinarlo con la técnica &lt;a href="http://www.pomodorotechnique.com/"&gt;pomodoro&lt;/a&gt; y aprovechar los breaks para subir a la terraza (me levanto de la silla) y acomodarlo a mano.&lt;/li&gt;&lt;li&gt;No usar un inversor y trabajar siempre en corriente continua. Necesitaría un cargador para la notebook que a partir de 12v genere los 19.5 que necesita (&lt;a href="http://articulo.mercadolibre.com.ar/MLA-58982241-cargador-notebook-p-auto-universal-16v-20v-plug-encendedor-_JM"&gt;encontré uno&lt;/a&gt;).&lt;/li&gt;&lt;li&gt;Si en lugar de usar batería para acumular la energía, utilizara directamente la batería de la notebook? Como podría hacer para no afectar la vida útil de esta? Luego tendría que ver que hacer con la energía que no uso. Podría volcarla a la red, como hacen en otros paises, o regalarla a mis vecinos.&lt;/li&gt;&lt;li&gt;Sirve el regulador para que los paneles generen 12 v constante?&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Algo interesante de no usar baterías, es que además de disminuir el costo y contaminar menos, abre nuevas posibilidades que requieren pensar de manera colaborativa respecto a la comunidad en donde vivimos.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-841471116059278312?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=841471116059278312' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/841471116059278312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/841471116059278312'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/10/cual-es-la-instalacion-de-paneles.html' title='Cuál es la instalación de paneles solares más sustentable?'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-8515128746431547203</id><published>2009-10-18T19:45:00.000-07:00</published><updated>2009-10-18T21:27:50.192-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='diseño'/><title type='text'>Parser para un simple DSL</title><content type='html'>&lt;div&gt;Dado que estoy empezando a usar un &lt;a href="http://www.martinfowler.com/bliki/DomainSpecificLanguage.html"&gt;DSL&lt;/a&gt;, me gustaría compartir mi experiencia, por si otros deciden incursionar en el mundo de los &lt;a href="http://www.martinfowler.com/bliki/DomainSpecificLanguage.html"&gt;DSL&lt;/a&gt;. Voy a aprovechar para contar que me lleva a usar un &lt;a href="http://www.martinfowler.com/bliki/DomainSpecificLanguage.html"&gt;DSL&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Uno de los problemas de mi dominio es resolver el binding de los filtros, pertenecientes a mi domain model, en una consulta MDX. Para eso adopté la siguiente sintaxis:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;SELECT {[Measures].[SaleAmount], [Measures].[Profit]} ON COLUMNS, &lt;/div&gt;&lt;div&gt;NON EMPTY {[Brand].[All].Children} on rows&lt;/div&gt;&lt;div&gt;FROM [Sales]&lt;/div&gt;&lt;div&gt;WHERE (${category}, ${product}, ${year})&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;donde si category=A, product=B, y year no tiene valor, la query debería valer:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;SELECT {[Measures].[SaleAmount], [Measures].[Profit]} ON COLUMNS,&lt;/div&gt;&lt;div&gt;NON EMPTY {[Brand].[All].Children} on rows&lt;/div&gt;&lt;div&gt;FROM [Sales]&lt;/div&gt;&lt;div&gt;WHERE (A, B)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.databasejournal.com/features/mssql/article.php/10894_1495511_2/MDX-at-First-Glance-Introduction-to-SQL-Server-MDX-Essentials.htm"&gt;MDX&lt;/a&gt; es un &lt;a href="http://www.martinfowler.com/bliki/DomainSpecificLanguage.html"&gt;DSL&lt;/a&gt; usado para resolver consultas multidimensionales. Lo que estoy haciendo es embebiendo mi &lt;a href="http://www.martinfowler.com/bliki/DomainSpecificLanguage.html"&gt;DSL&lt;/a&gt; adentro de otro &lt;a href="http://www.martinfowler.com/bliki/DomainSpecificLanguage.html"&gt;DSL&lt;/a&gt; (por ahora es tan simple, que no merece llamarse &lt;a href="http://www.martinfowler.com/bliki/DomainSpecificLanguage.html"&gt;DSL&lt;/a&gt;).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El primer paso para usar mi &lt;a href="http://www.martinfowler.com/bliki/DomainSpecificLanguage.html"&gt;DSL&lt;/a&gt; es parsear los ${...} para extraer la expresión del mismo. Seguramente hay muchas formas de parsear los ${...}. Yo decidí usar un tokenizer basado en palabras, que devuelve el texto hasta encontrar el token buscado. Esta es la interface de WordTokenizer:&lt;/div&gt;&lt;div&gt;&lt;a href="http://codepaste.net/x6ik9a"&gt;http://codepaste.net/x6ik9a&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;la implementación basada en la clase String:&lt;/div&gt;&lt;div&gt;&lt;a href="http://codepaste.net/22dynu"&gt;http://codepaste.net/22dynu&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;y las pruebas unitarias (aguante TDD):&lt;/div&gt;&lt;div&gt;&lt;a href="http://codepaste.net/38qivq"&gt;http://codepaste.net/38qivq&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Es simple extraer es las expresiones de mi DSL usando el word tokenizer:&lt;/div&gt;&lt;div&gt;&lt;a href="http://codepaste.net/akgv1c"&gt;http://codepaste.net/akgv1c&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Con esto extraigo mi &lt;a href="http://www.martinfowler.com/bliki/DomainSpecificLanguage.html"&gt;DSL&lt;/a&gt; de la consulta MDX. Este por ahora es simple, pero hay casos que tienen un poco más de complejidad.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Por ejemplo, si un filtro no tiene valor, tengo que aplicar el valor default:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;SELECT {[Measures].[SaleAmount], [Measures].[Profit]} ON COLUMNS,&lt;/div&gt;&lt;div&gt;NON EMPTY {[Brand].[All].Children} on rows&lt;/div&gt;&lt;div&gt;FROM [Sales]&lt;/div&gt;&lt;div&gt;WHERE  ${year.default([Time].[Year].[2009])}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;O distintos filtros que forman una jerarquia (mes, trimestre, año) y solo debe reemplazarse un valor en la consulta:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;SELECT {[Measures].[SaleAmount], [Measures].[Profit]} ON COLUMNS,&lt;/div&gt;&lt;div&gt;NON EMPTY {[Brand].[All].Children} on rows&lt;/div&gt;&lt;div&gt;FROM [Sales]&lt;/div&gt;&lt;div&gt;WHERE  ${month.parent(quater).parent(year)}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;O una combinación de jerarquías y valores default. Para resolver estos y otros casos, usé lo que se llama &lt;a href="http://www.martinfowler.com/bliki/FluentInterface.html"&gt;fluent interface&lt;/a&gt;, que permite fácilmente armar &lt;a href="http://www.martinfowler.com/bliki/DomainSpecificLanguage.html"&gt;DSL&lt;/a&gt; para un problema de dominio (es fácil de leer y simple de programar).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para parsearlo uso un simple StringTokenizer:&lt;/div&gt;&lt;div&gt;&lt;a href="http://codepaste.net/5owbn4"&gt;http://codepaste.net/5owbn4&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La implementación es bastante simple. Seguramente hay casos que no se cubren, pero sobre esta base es fácil agregar nuevos métodos al &lt;a href="http://www.martinfowler.com/bliki/DomainSpecificLanguage.html"&gt;DSL&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hay otros conceptos interesantes asociados a un &lt;a href="http://www.martinfowler.com/bliki/DomainSpecificLanguage.html"&gt;DSL&lt;/a&gt;, como:&lt;/div&gt;&lt;div&gt;&lt;a href="http://martinfowler.com/dslwip/ExpressionBuilder.html"&gt;http://martinfowler.com/dslwip/ExpressionBuilder.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://martinfowler.com/dslwip/SemanticModel.html"&gt;http://martinfowler.com/dslwip/SemanticModel.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-8515128746431547203?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=8515128746431547203' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/8515128746431547203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/8515128746431547203'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/10/parser-para-un-simple-dsl.html' title='Parser para un simple DSL'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-6343692386275561059</id><published>2009-10-06T19:42:00.000-07:00</published><updated>2011-11-11T11:42:49.133-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='proposito'/><category scheme='http://www.blogger.com/atom/ns#' term='creatividad'/><title type='text'>Problema paneles solares y mapa mental</title><content type='html'>Gracias a &lt;a href="http://www.softwarebyrob.com/2009/10/06/micropreneur-spotlight-online-mind-mapping-software-thoughtmuse/"&gt;http://www.softwarebyrob.com/2009/10/06/micropreneur-spotlight-online-mind-mapping-software-thoughtmuse/&lt;/a&gt; encontré una herramienta en la web para armar mapas mentales. Me pareció muy buena para organizar las distintas aristas de un problema. Asi que aproveché para hacer el ejercicio de alimentar una notebook con paneles solares&lt;div&gt;&lt;a href="http://thoughtmuse.com/editor/readonly/?load_map=panelesSolares&amp;amp;owner=ferclaverino"&gt;http://thoughtmuse.com/editor/readonly/?load_map=panelesSolares&amp;amp;owner=ferclaverino&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Aportes son bienvenidos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-6343692386275561059?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=6343692386275561059' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/6343692386275561059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/6343692386275561059'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/10/problema-paneles-solares-y-mapa-mental.html' title='Problema paneles solares y mapa mental'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-2715243825965855625</id><published>2009-10-04T14:20:00.000-07:00</published><updated>2009-11-01T13:52:03.270-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Expandir disco guest ubuntu, host vista (vmware player)</title><content type='html'>&lt;div&gt;Hoy me pasó que la virtual con ubuntu se quedó sin espacio en disco (la imagen original tiene 8 GB). Mi sistema operativo host es windows vista y la tengo una virtual machine con Ubuntu Desktop 9.04 (con vmware player).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Estos son los pasos para agrandar el tamaño del disco a 100 GB.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Convertir el disco a 2GB split not pre-allocated usando vmware converter. Se puede bajar de la página de vmware.&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.vmware.com/products/converter/"&gt;http://www.vmware.com/products/converter/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Crear con easyvmx una imagen ubuntu de 100GB. De paso aproveché para configurar 2 procesadores:&lt;/div&gt;&lt;a href="http://www.easyvmx.com/cgi-bin/create-easyvmx.cgi?filetime=2009-10-04-23:08:06&amp;amp;vmname=Ubuntu+9.04+Desktop&amp;amp;guestOS=ubuntu&amp;amp;memory=2048&amp;amp;numvcpus=2&amp;amp;vmdesc=UbuntuDesktop&amp;amp;vmlname=UbuntuDesktop&amp;amp;vmurl=http://www.kudewe.com/&amp;amp;hwaddr0=00:0c:29:46:9c:10&amp;amp;conntype0=nat&amp;amp;devtype0=vlance&amp;amp;hwaddr1=00:0c:29:51:cf:6c&amp;amp;conntype1=nat&amp;amp;devtype1=vlance&amp;amp;floppyfile=autodetect&amp;amp;isodev=autodetect&amp;amp;ide1_1file=.iso&amp;amp;disk0_0file=100Gb&amp;amp;disk0_1file=4800Mb&amp;amp;sound=yes&amp;amp;soundcard=es1371&amp;amp;usb=yes&amp;amp;usbconnect=FALSE&amp;amp;com1=yes&amp;amp;com1_flow=TRUE&amp;amp;com2_flow=TRUE&amp;amp;lpt1=yes&amp;amp;lpt1_bidir=TRUE"&gt;http://www.easyvmx.com/cgi-bin/create-easyvmx.cgi?filetime=2009-10-04-23:08:06&amp;amp;vmname=Ubuntu+9.04+Desktop&amp;amp;guestOS=ubuntu&amp;amp;memory=2048&amp;amp;numvcpus=2&amp;amp;vmdesc=UbuntuDesktop&amp;amp;vmlname=UbuntuDesktop&amp;amp;vmurl=http://www.kudewe.com/&amp;amp;hwaddr0=00:0c:29:46:9c:10&amp;amp;conntype0=nat&amp;amp;devtype0=vlance&amp;amp;hwaddr1=00:0c:29:51:cf:6c&amp;amp;conntype1=nat&amp;amp;devtype1=vlance&amp;amp;floppyfile=autodetect&amp;amp;isodev=autodetect&amp;amp;ide1_1file=.iso&amp;amp;disk0_0file=100Gb&amp;amp;disk0_1file=4800Mb&amp;amp;sound=yes&amp;amp;soundcard=es1371&amp;amp;usb=yes&amp;amp;usbconnect=FALSE&amp;amp;com1=yes&amp;amp;com1_flow=TRUE&amp;amp;com2_flow=TRUE&amp;amp;lpt1=yes&amp;amp;lpt1_bidir=TRUE&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Copiar de la maquina virtual original los archivos de disco Ubuntu_9_04_Desktop-s001.vmdk, Ubuntu_9_04_Desktop-s002.vmdk, Ubuntu_9_04_Desktop-s003.vmdk, Ubuntu_9_04_Desktop-s004.vmdk. No copiar el Ubuntu_9_04_Desktop-s005.vmdk (último archivo)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. Bajar gparted.iso. Configurar la vm para que vea la iso como cd rom&lt;/div&gt;&lt;div&gt;&lt;a href="http://gparted.sourceforge.net/"&gt;http://gparted.sourceforge.net/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5. Bootear desde cd, para eso presionar esc cuando bootea vmware. También se puede modificar grub de ubuntu para bootear de cd: &lt;a href="http://www.ubuntu-es.org/?q=node/65741"&gt;http://www.ubuntu-es.org/?q=node/65741&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6 Una vez que arranca gparted, es una buena oportunidad para redimensionar el tamaño de la partición swap (originalmente tiene 400 Mb).&lt;br /&gt;&lt;a href="https://help.ubuntu.com/community/SwapFaq"&gt;https://help.ubuntu.com/community/SwapFaq&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Después de estos pasos quedó todo andando sin problemas (milagro!)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-2715243825965855625?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=2715243825965855625' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/2715243825965855625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/2715243825965855625'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/10/expandir-disco-guest-ubuntu-host-vista.html' title='Expandir disco guest ubuntu, host vista (vmware player)'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-3585757586220372483</id><published>2009-09-29T18:17:00.000-07:00</published><updated>2011-11-11T11:42:49.134-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='proposito'/><category scheme='http://www.blogger.com/atom/ns#' term='creatividad'/><title type='text'>Desarrollar software usando energías limpias</title><content type='html'>Una idea que vengo trabajando desde hace un tiempo es la de hacer algo para revertir el calentamiento global. Cómo dice el dicho popular "mejor empezar por casa", asi que me propuse estos objetivos:&lt;div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Desarrollar software usando &lt;a href="http://www.greenpeace.org/argentina/cambio-climatico/revolucion-energetica/energ-as-limpias"&gt;energías limpias&lt;/a&gt;. Creo que un objetivo más genérico sería el de minimizar el impacto ambiental.&lt;/li&gt;&lt;li&gt;Crear un emprendimiento donde la responsabilidad ambiental sea tan importante como el corazón del negocio. Me gustaría llamarlo algo así como la organización sustentable ideal.&lt;/li&gt;&lt;li&gt;Servir de ejemplo / modelo a otras organizaciones y personas. Ayudar a otros a hacer lo mismo.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Si simplificara la actividad de desarrollar software actual, podría decir que consiste en usar una computadora durante 8 hs, 5 días a la semana. Un primer paso para conseguir lo anterior sería imaginar qué cosas podría hacer para que esa computadora funcione con energías limpias. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Algunas ideas:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Usar paneles solares.&lt;img src="http://1kmmas.files.wordpress.com/2006/05/hamster.jpg" style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 240px;" border="0" alt="" /&gt;&lt;/li&gt;&lt;li&gt;Mudarme a un lugar donde haya viento para usar energía eólica.&lt;/li&gt;&lt;li&gt;Idem, pero hidraúlica.&lt;/li&gt;&lt;li&gt;Usar una notebook en lugar de una pc, ya que tiene menor consumo. Y dentro de las notebooks, una con bajo consumo.&lt;/li&gt;&lt;li&gt;La rueda del hámster, pero para mi perro (un bóxer incansable).&lt;/li&gt;&lt;li&gt;Generar electricidad con bicicleta fija o cinta de correr (además entrenaría).&lt;/li&gt;&lt;li&gt;Ser más productivo, o que el software sirva a más personas y optimice recursos (lo tengo en la punta de la lengua: cloud computing + software as a service).&lt;/li&gt;&lt;li&gt;Trabajar en los horarios de mayor luz solar. Trabajar los días de la semana de mayor luz (si está nublado, trabajo menos). Trabajar más en  verano que en invierno (interesante para los que les gusta el montañismo invernal). Trabajar más cerca del sol (delirante...)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;De todas, creo que las más aplicables son la notebook, cloud computing, software as a service, mejorar la productividad (metodologías ágiles, TDD, etc.) y las relacionadas con la energía solar… Otras ideas son bienvenidas!&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-3585757586220372483?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=3585757586220372483' title='3 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3585757586220372483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3585757586220372483'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/09/desarrollar-software-usando-energias.html' title='Desarrollar software usando energías limpias'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-9047257112247074120</id><published>2009-09-27T06:46:00.000-07:00</published><updated>2009-11-01T13:52:29.144-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><title type='text'>1ros pasos con Spring Security</title><content type='html'>Spring Security es uno de los mejores framework de seguridad web del mundo java. Esta basado en Acegi, un proyecto que luego paso a formar parte de spring. Para mi, una de sus mejores caracterísitcas es que no es invasivo, es decir, no me obliga a modificar mi código o tener alguna consideración para usarlo. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;De hecho, yo empecé a construir la aplicación sin tener en cuenta ninguna cuestión de seguridad y ahora agrego este framework sin modificar el código existente. Es probable que tenga que crear código, como un provider de autenticación para que acegi pueda validar usuario y password, pero gracias al principio de diseño "programar hacia interfaces, no implementaciones" y al DI container (spring) no tengo que modificar el código ya existente, lo cual me recuerda otro principio "cerrado para modificación, abierto para extensión".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Configurar acegi era una tarea compleja, la primera vez que lo hice me llevo tiempo. Pero estos tutoriales me ayudaron mucho:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para entender como funciona acegi:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.tfo-eservices.eu/wb_tutorials/media/SpringAcegiTutorial/HTML/SpringAcegiTutorial-1_1-html.html"&gt;http://www.tfo-eservices.eu/wb_tutorials/media/SpringAcegiTutorial/HTML/SpringAcegiTutorial-1_1-html.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.ibm.com/developerworks/java/library/j-acegi1/"&gt;http://www.ibm.com/developerworks/java/library/j-acegi1/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ahora, unos años después, leo que spring security facilitó esta tarea:&lt;/div&gt;&lt;div&gt;&lt;a href="http://java.dzone.com/tips/pathway-acegi-spring-security-"&gt;http://java.dzone.com/tips/pathway-acegi-spring-security-&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://static.springsource.org/spring-security/site/petclinic-tutorial.html"&gt;http://static.springsource.org/spring-security/site/petclinic-tutorial.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Paso a paso para configurar spring security:&lt;/div&gt;&lt;div&gt;1. Bajar spring security&lt;/div&gt;&lt;div&gt;&lt;a href="http://static.springsource.org/spring-security/site/downloads.html"&gt;http://static.springsource.org/spring-security/site/downloads.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Copiar spring-security-core.jar a WEB-INF/lib&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Configurar web.xml. En este caso configuré el http filter (chain of responsability) de spring security para que verifique seguridad solamente sobre los request a /services y a *.html. El resto son recursos estáticos que no requieren seguridad:&lt;/div&gt;&lt;div&gt;&lt;a href="http://codepaste.net/xkpd8y"&gt;http://codepaste.net/xkpd8y&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. Configurar spring security context:&lt;/div&gt;&lt;div&gt;&lt;a href="http://codepaste.net/minpgd"&gt;http://codepaste.net/minpgd&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Con esto tenemos una aplicación web con seguridad básica basada en spring security. El framework provee muchas más funcionalidades:&lt;/div&gt;&lt;div&gt;&lt;a href="http://static.springsource.org/spring-security/site/docs/2.0.x/reference/ns-config.html"&gt;http://static.springsource.org/spring-security/site/docs/2.0.x/reference/ns-config.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-9047257112247074120?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=9047257112247074120' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/9047257112247074120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/9047257112247074120'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/09/de-acegi-spring-security.html' title='1ros pasos con Spring Security'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-3671365865154678085</id><published>2009-09-24T16:22:00.000-07:00</published><updated>2009-09-24T16:27:30.796-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='creatividad'/><title type='text'>Creatividad según Einstein</title><content type='html'>Hoy encontré una nota sobre uno de los creativos más grandes de la historia, Einstein. Casualmente estoy leyendo un libro llamado "Cómo pensar cómo Einstein", donde habla principalmente de romper las reglas y encontrar nuevas soluciones fuera de las restricciónes.&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;img src="http://bligoo.com/media/users/3/187674/images/public/18930/1253423052172-Crisis.jpg?v=1253423074312" style="cursor:pointer; cursor:hand;width: 470px; height: 345px;" border="0" alt="" /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Muy inspirador... Algo interesante para agregar a la &lt;a href="http://toclasaas.blogspot.com/2009/09/creatividad-y-trabajo-en-equipo.html"&gt;creatividad y trabajo en equipo&lt;/a&gt; es el de sumar un desafío al equipo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Gracias a &lt;a href="http://hacerhistoria.bligoo.com/content/view/611562/Que-verdad.html#content-top"&gt;http://hacerhistoria.bligoo.com/content/view/611562/Que-verdad.html#content-top&lt;/a&gt; por el post.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-3671365865154678085?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=3671365865154678085' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3671365865154678085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3671365865154678085'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/09/creatividad-segun-einstein.html' title='Creatividad según Einstein'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-4294134071910975039</id><published>2009-09-19T17:23:00.001-07:00</published><updated>2009-09-19T18:35:02.843-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diseño'/><title type='text'>Refactoring como estrategia de construcción</title><content type='html'>Hace unos años me encontré con un libro muy interesante: Refactoring to Patterns de Joshua Kerievsky&lt;div&gt;&lt;a href="http://www.industriallogic.com/xp/refactoring/"&gt;http://www.industriallogic.com/xp/refactoring/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Si bien este libro presenta un catálogo de escenarios o casos sobre los que es un código poco sano se refactoriza a un patrón de diseño, lo más interesante para mi es el enfoque con el que se trata el tema. Cuando construimos software muchas veces no se tiene claro cual es el alcance. Las metodologías ágiles, XP, asumen esto como una regla del juego y se organizan en función del cambio. Una frase muy conocida al respecto es "Lo único constante en el desarrollo de software es el cambio".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El libro introduce 2 ideas que dan claridad al problema de diseñar una aplicación: la sobre ingeniería, que vendría a ser como matar un mosquito con un misil tele dirigido, y la sub ingeniería, donde el problema radica en que la complejidad del código pasa a ser una limitación importante a la hora de modificar una aplicación. De alguna manera, diseñar implica encontrar un equilibrio entre estos dos caminos para lidiar con la complejidad y el cambio. Por lo que es necesario diseñar a lo largo de todo el proyecto.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Qué es refactorizar?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Refactorizar es mejorar el diseño de un código existente. Y también una estrategia de construcción muy eficaz. Podemos comenzar a construir una aplicación, de la manera más simple posible, y refactorizarla a medida que entendemos mejor su contexto y alcance. Esta idea, tomada del mundo XP, fue para mi en un proyecto pasado, una estrategía que resultó clave para llegar a buen puerto. Por lo general no se encuentra el diseño adecuado en el primer intento. De hecho, es bueno darse un tiempo para probar una idea y aprender.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Para qué Refactorizar?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Para simplificar el código y responder mejor a los cambios.&lt;/li&gt;&lt;li&gt;Para aprender a lidiar con la complejidad en un entorno cambiante.&lt;/li&gt;&lt;li&gt;Para hacer el esfuerzo justo.&lt;/li&gt;&lt;li&gt;Para potenciar al equipo, es muy didactico refactorizar de a pares, mejora los skills de programación de todos.&lt;/li&gt;&lt;li&gt;Para simplificar. Lo simple es mágico, todo es más fácil cuando es más simple.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;Cuando refactorizar?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esta es quizás la pregunta más difícil de responder, ya que depende del caso. Si se refactoriza demasiado tarde, puede ser muy costoso. Demasiado temprano, puede ser que todavía no conocemos suficiente del problema. Pero hay ciertas cosas que podemos oler, que nos dan una idea sobre piezas de la aplicación que no son sanas:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Esto es difícil de entender (complejo).&lt;/li&gt;&lt;li&gt;Siempre lleva mucho tiempo modificar esto (rígido ante cambios).&lt;/li&gt;&lt;li&gt;Cuando tocamos esto, surgen bugs que no detectamos.&lt;/li&gt;&lt;li&gt;Es difícil de testear.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Una lista de cosas que huelen mal en el código:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.industriallogic.com/papers/smellstorefactorings.pdf"&gt;http://www.industriallogic.com/papers/smellstorefactorings.pdf&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Refactorizar es como invertir en la salud de la aplicación. Tiene un efecto que mejora las condiciones de éxito. Una buena práctica es ir agregando los casos encontrados al backlog y priorizarlos junto como un ítem más en función de las necesidades del negocio.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Cómo refactorizar?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hay muchas técnicas que ayudan a hacer refactoring efectivamente, como TDD, inyección de dependencias, patrones de diseño, herramientas de refactoring (resharper, eclipse), catálogo de refactoring, etc. Además es importante entender porqué el código no es sano y cómo lo mejoraremos, invirtiendo el esfuerzo justo. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Un enfoque muy interesante del libro, es que para evaluar la solución de refactoring, propone distintos puntos de vista.&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Comunicación: De que manera el código comunica lo que hace.&lt;/li&gt;&lt;li&gt;Duplicación: La duplicación hace que sea más fácil cometer errores. El código duplicado es más difícil de mantener =&gt; evitar la duplicación.&lt;/li&gt;&lt;li&gt;Simplicidad: Cómo se puede hacer más simple? Para esto es muy importante encontrar el patrón de diseño adecuado.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Se me ocurren otros puntos de vista que se podrían agregar:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Testeabilidad: Que tan fácil es de testear?&lt;/li&gt;&lt;li&gt;Flexibilidad: Que tan fácil es de cambiar?&lt;/li&gt;&lt;li&gt;Esfuerzo: Como llevaría menos esfuerzo?&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Más links en delicious&lt;/div&gt;&lt;div&gt;&lt;a href="http://delicious.com/ferclaverino/refactoring"&gt;http://delicious.com/ferclaverino/refactoring&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-4294134071910975039?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=4294134071910975039' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/4294134071910975039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/4294134071910975039'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/09/refactoing-como-estrategia-de.html' title='Refactoring como estrategia de construcción'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-184177430127999334</id><published>2009-09-14T19:51:00.000-07:00</published><updated>2011-11-11T11:47:11.112-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diseño'/><category scheme='http://www.blogger.com/atom/ns#' term='enseñaje'/><title type='text'>Grupo Estudio Patrones Diseño</title><content type='html'>Hace unos años tuve la inquietud de compartir con otros lo que había aprendido acerca de patrones de diseño. Lo primero que pensé fue que no quería hacerlo de manera convencional, es decir, una persona expone un tema y el resto escucha pasivamente. Asi que buscando información sobre como enseñar efectivamente, encontré este link muy interesante que explica cual es la dinámica de un grupo de estudio:&lt;div&gt;&lt;a href="http://www.industriallogic.com/papers/learning.html"&gt;http://www.industriallogic.com/papers/learning.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bien cierto es que uno aprende más cuando lee, escucha, hace y habla, que cuando solo escucha.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.industriallogic.com/papers/learning.html"&gt;&lt;/a&gt;&lt;div&gt;Básicamente en un grupo de estudio se forma por gente con interés sobre un tema, de distintos niveles de conocimiento (la diversidad es un factor importante que mejora el aprendizaje del grupo). Un moderador organiza las sesiones (por ej. semanales), comparte con el grupo un material de lectura que todos deben leer previamente antes de asistir y luego durante el transcurso de cada sesión plantea al grupo preguntas abiertas. En este punto la diversidad es importante, porque permite que los que menos saben aprendan y aporten preguntas al grupo. Y los que más saben, que aprendan mientas comparte su conocimiento.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Las preguntas abiertas no son cualquier clase de pregunta. Son preguntas que nos hacen pensar y nos ayudan a tener un mejor conocimiento del tema. Por ejemplo "cuantos patrones de diseño hay?" no es una pregunta abierta. Una pregunta abierta sería algo como "qué patrones de diseño aplican el principio encapsular lo que varía?". Las preguntas abiertas invitan a la reflexión y al debate.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lo siguiente que tuve que buscar fue un buen material de lectura, que sea fácil de leer y que requiera poco tiempo. Por suerte me encontré con este libro, que tiene una muy buena pedagogía para enseñar:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.amazon.com/First-Design-Patterns-Elisabeth-Freeman/dp/0596007124"&gt;http://www.amazon.com/First-Design-Patterns-Elisabeth-Freeman/dp/0596007124&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finalmente, armar una agenta orientativa sobre los temas a tratar en cada sesión. Comparto los grupos en los que participé:&lt;/div&gt;&lt;div&gt;&lt;a href="http://groups.google.com.ar/group/grupoestudiopatronesdiseno2010"&gt;http://groups.google.com.ar/group/grupoestudiopatronesdiseno2010&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://groups.google.com.ar/group/grupoestudiopatrones2006?hl=es"&gt;http://groups.google.com.ar/group/grupoestudiopatrones2006?hl=es&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://ar.groups.yahoo.com/group/grupoEstudioPatrones/"&gt;http://ar.groups.yahoo.com/group/grupoEstudioPatrones/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Algo que creo fue valioso es usar la primera sesión para explicar la dinámica del grupo de estudio, presentar el material, los objetivos y sensar las expectativas de los participantes. Como este tipo de capacitación requiere participación activa, es muy importante aprovechar la 1ra sesión para romper el hielo. En nuestro caso hicimos un juego donde 2 equipos debían construir una casa con rastis. Luego agregar una ventana. Y finalmente explicar que patrón de diseño de casas hubieran aplicado al construir la casa para luego agregar una ventana más eficientemente. Más allá de la analogía con la construcción de software, que puede ser cuestionable, sirvió para introducir el concepto de qué es un patrón y para crear un ambiente que favorezca la participación.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;No menos importante fue la última sesión, donde como ejercicio integrador jugamos al pattern poker:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.industriallogic.com/games/pp.html"&gt;http://www.industriallogic.com/games/pp.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En está última cada participante dio su valioso feedback sobre el grupo de estudio e hicimos el cierre del grupo de estudio.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-184177430127999334?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=184177430127999334' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/184177430127999334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/184177430127999334'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/09/grupo-estudio-patrones-diseno.html' title='Grupo Estudio Patrones Diseño'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-7898264859465983126</id><published>2009-09-11T19:47:00.000-07:00</published><updated>2009-10-12T12:05:44.881-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='creatividad'/><title type='text'>Creatividad y trabajo en equipo</title><content type='html'>La creatividad es un concepto que está muy ligado al trabajo en equipo, ya que es en las personas donde reside la chispa capaz de crear la idea buscada.&lt;br /&gt;&lt;br /&gt;Si bien a nivel individual podemos encontrar personas creativas y con ingenio, el verdadero potencial creativo existe en el equipo. La idea de una persona, por más insensata o incompleta que sea, puede ser el disparador de una nueva idea en otra persona. Es en este mecanismo donde se esconde el gran potencial de trabajar en equipo para resolver problemas con creatividad.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Un aspecto clave para que el equipo funcione de manera creativa, es el de generar las condiciones de éxito necesarias. En este punto creo que lo más importante es generar el espacio de comodidad, distención y respeto, en donde cada uno pueda decir lo que sea, sin ningún tipo de miedo, verguenza o prejuicio. Esto que parece tan simple, muchas veces no es fácil de lograr. Pero hay varias maneras de conseguirlo, como ejercicios de integración, jugar juegos para romper el hielo, etc.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Generalmene conviene empezar plantenado el problema sin demasiadas restricciones y luego generar en equipo un gran abanico de posibilidades. En un primer momento evitamos las restricciones para no limitar ninguna idea tempranamente. En esta fábrica de ideas, es fundamental el respeto entre los compañeros, hablar 1 por vez y escuchar con atención lo que cada uno tiene para decir. Este simple ritual mejora las condiciones de éxito de las que hablamos anteriormente. El juego es uno de los mejores disparadores de ideas, por lo que jugar es una actividad muy recomendable en cualquier proceso creativo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Luego de generar el abanico de soluciones, es tiempo de bajar a tierra, agregar las restricciones, volver a refinar y combinar las ideas para generar nuevas soluciones. Si bien hay varias técnicas para hacer esto, la herramienta más poderosa es la pregunta. Muchas veces, resolver un problema de manera simple pasa por hacer las preguntas correctas. A esta altura, si durante el desarrollo de la actividad se generó participación, compromiso y ganas,  el equipo va contestando y generando las preguntas casi naturalmente.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Estas son algunas técnicas que pueden servir para llegar a una posible solución.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Encontrar las restricciones auto impuestas / romper las reglas&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Como personas estamos limitados por nuestra manera de ver las cosas. Nuestra educación / cultura nos dió un marco desde el cual vemos todo. Sin darnos cuenta, podemos caer en la trampa de una restricción impuesta por nosotros mismos. Quizás el ejemplo más famoso de esto sea la teoría de la relatividad de Einstein. Durante años la física clásica explicó los muchos de los fenómenos que vemos. Para nosotros es muy intuitivo pensar que el tiempo fluye siempre de la misma manera. Einstein, al romper esta regla, descubrió una nueva dimensión de soluciones que le permitió explicar fenómenos que hasta el momento eran inexplicables. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Los chicos, al tener mentes menos formadas y más libres,  son grandes mentes creativas!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Preguntar, preguntar y preguntar&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La pregunta nos permite llegar a zonas oscuras de soluciones que no podemos ver. Por lo que explorar estas zonas es un buen ejercicio para encontrar nuevas soluciones. Incluso puede llegar a ser muy divertido, si se aplica una buena dinámica.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cada integrante puede tomar un rol y preguntar desde distintos puntos de vista. Un libro que resume muy bien esta técnica es "6 sombreros para pensar".&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Otras preguntas que ayudan a encontrar nuevas ideas:&lt;/div&gt;&lt;div&gt;Que pasaría si..?&lt;/div&gt;&lt;div&gt;Y si pasara esto?&lt;/div&gt;&lt;div&gt;Y si en vez de A, pasara B?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;Jugar con las dimensiones del problema&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A veces pasa que un problema sin solución aparente, tiene solución cuando se consideran nuevos factores o dimensiones. Por ejemplo, el &lt;a href="http://www.mensa.com.ar/Juegos/enigmas.html"&gt;problema de las 3 lamparitas&lt;/a&gt; no parece tener solución. Hasta que agregamos nuevas dimensiones como la temperatura por calentamiento, la vida útil del filamento, etc. Lo mismo podemos hacer quitando dimensiones.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Pensar fuera del cuadrante / pensamiento lateral&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Otras veces la solución está fuera de nuestra área de foco o dirección de pensamiento. Por ejemplo una posible solución para el problema del tráfico en la ciudad puede ser que en lugar de crear carilles exclusivos o mejorar la sincronización de los semáforos, simplemente la gente pueda trabajar desde su casa.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;Cambiar la herramienta&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;No se si alguna vez escucharon la frase "Para el hombre que tiene sólo un martillo cualquier cosa es clavo". Sin darnos cuenta las herramientas que usamos para resolver problemas nos limitan en el abanico de posibles soluciones.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Resolver problemas con creatividad puede transformarse en una actividad muy sana y gratificante. Descubrí el encanto por este juego gracias a los profesores Juan Ramonet, Silvia Ramos y Diego Sadras que me enseñaron muchas de estas herramientas en una excelente materia que dan en la UBA. Una materia sobre la que sigo aprendiendo y practicando.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-7898264859465983126?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=7898264859465983126' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/7898264859465983126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/7898264859465983126'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/09/creatividad-y-trabajo-en-equipo.html' title='Creatividad y trabajo en equipo'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-6082497666380144823</id><published>2009-09-10T20:18:00.000-07:00</published><updated>2010-06-21T15:59:52.649-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='emprender'/><title type='text'>Fin de semana con PilasBA</title><content type='html'>Este fin de semana fue algo atípico. La semana pasada me enteré graciar a &lt;a href="http://twitter.com/juancarloslucas"&gt;@juancarloslucas&lt;/a&gt; sobre un evento Pilas BA. Lo primero que pensé fue "que bueno, van a empezar a reciclar pilas en Buenos Aires". Luego por otros tweets vi que era algo relacionado con emprendedores, asi que los busqué en google y me encontré en su sitio con 2 palabras clave para mi curiosidad: innovación y responsabilidad social. Un evento para emprendedores, con una dinámica de aprendizaje ágil y orientado a esta problemática, no me lo puedo perder. Asi que sin dudar ni preguntar mucho, me inscribí.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Uno de los compañeros del evento, escribió un buen post con todo lo que hicimos:&lt;/div&gt;&lt;div&gt;&lt;a href="http://hacerhistoria.bligoo.com/content/view/601231"&gt;http://hacerhistoria.bligoo.com/content/view/601231&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Más allá del evento, que me sirvió mucho para derribar mitos, motivarme y establecer contactos, me gustaría destacar algunas particularidades, relacionadas con el grupo de personas.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lo primero es la diversidad, tuvimos la suerte de contar con gente de distintas provincias y paises. De distintas profesiones, edades y experiencia. Con distintas habilidades. Sin embargo, en toda esa diversidad encontré, y luego otros me comentaron lo mismo, un factor común. Ganas de aprender, de conocer nuevas personas, de participar.  Algunos ya tenían un emprendimiento propio. Otros estaban creándolo, o tenían la idea, o la inquietud. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esa fue una primera impresión... Pero luego de participar en actividades y entablar conversaciones, poco a poco empezábamos a entrar en confianza. Y descubrí gente con ganas de innovar, de espíritu inquieto, interesados por la responsabilidad social en un sentido amplio. Descontentos con algo pero con la idea de que se puede hacer mejor, que hay otras muchas maneras. Y esto lo vi en varios campos (educación, software, negocios, etc.). Con muchos me sentí identificado por poder hablar libremente de ideas locas, como buscar maneras de &lt;a href="http://dondevuelaelcondor.blogspot.com/2009/08/ideas-para-un-mundo-mejor.html"&gt;mejorar el medio ambiente y la comunidad&lt;/a&gt;, o &lt;a href="http://www.ted.com/talks/lang/spa/ken_robinson_says_schools_kill_creativity.html"&gt;mejorar la educación en las escuelas&lt;/a&gt;. Cada uno trajo sus ideas, algunas &lt;a href="http://elescurridizo.blogspot.com/"&gt;nacidas desde adentro&lt;/a&gt;, otras vistas con un &lt;a href="http://anteojoscolorcobre.wordpress.com/"&gt;lente de otro color&lt;/a&gt;. Diversidad y potencial, otras palabras clave que detonan mi curiosidad.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-6082497666380144823?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=6082497666380144823' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/6082497666380144823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/6082497666380144823'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/09/fin-de-semana-con-pilasba.html' title='Fin de semana con PilasBA'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-2037823737760655976</id><published>2009-08-28T19:41:00.000-07:00</published><updated>2011-11-11T11:43:52.434-08:00</updated><title type='text'>Saas y RIAs ayudan a reducir el carbon footprint</title><content type='html'>Hoy encontré otro caso donde la tecnología ayuda a reducir el carbon footprint, es decir, la huella de carbono que dejamos en el planeta. Software as a service + RIA combinadas para minimizar el impacto ambiental:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://ajax.sys-con.com/node/600247"&gt;http://ajax.sys-con.com/node/600247&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Odio los buscadores de coincidencias, pero tocla&lt;b&gt;saas&lt;/b&gt; es una aplicación software as a service y también está construida como una rich client application.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Porqué Saas? Pues la optimización de recursos (una aplicación para todos), de conocimiento (sinergia entre los tenants), reusabilidad, etc. minimizan el consumo de energía en comparación al modelo opuesto (cada tenant con su aplicación, server, personal dedicado, etc.).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Porqué RIA? Una aplicación RIA bien diseñada ayuda a minimizar la cantidad de rountrips y el tamaño de los mensajes entre cliente y server. Esto se traduce en menor consumo de recursos, por lo tanto un server puede atender más pedidos. Aunque el aporte más grande está en la mejora de la experiencia usuario, su productividad y optimizar el uso que hace de la herramienta.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-2037823737760655976?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=2037823737760655976' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/2037823737760655976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/2037823737760655976'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/08/saas-y-rias-ayudan-reducir-el-carbon.html' title='Saas y RIAs ayudan a reducir el carbon footprint'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-5625045793944863246</id><published>2009-08-26T18:21:00.000-07:00</published><updated>2011-11-11T11:43:52.434-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='creatividad'/><title type='text'>Green IT no es solo optimizar data centers</title><content type='html'>Hoy leí en la National Geographic sobre un nuevo tipo de letra pensada para consumir menos tinta en las impresiones. Se llama ecofont y es de uso gratuito:&lt;div&gt;&lt;a href="http://www.ecofont.eu/ecofont_es.html"&gt;http://www.ecofont.eu/ecofont_es.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Una idea genial, muy simple, lo que la hace doblemente buena!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-5625045793944863246?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=5625045793944863246' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/5625045793944863246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/5625045793944863246'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/08/green-it-no-es-solo-optimizar-data.html' title='Green IT no es solo optimizar data centers'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-7491985232695148641</id><published>2009-08-22T17:32:00.000-07:00</published><updated>2009-12-02T11:45:59.619-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><title type='text'>Como hacer el unit testing mas fácil</title><content type='html'>Cuando se habla de tdd, exiten muchas herramientas y técnicas asociadas al testing unitario. Mi compañero Sergio hizo un muy resumen de ellas en su blog:&lt;div&gt;&lt;a href="http://ssalanitri.blogspot.com/2009/08/introduccion-al-tdd-i.html"&gt;http://ssalanitri.blogspot.com/2009/08/introduccion-al-tdd-i.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Además de estas técnicas, creo que hay algo fundamental para hacer una aplicación fáclmente testeable y tiene que ver con el diseño. A continuación voy a enumerar algunos aspectos que me parecen importantes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Modelo de dominio&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Resolver la lógica de la aplicación usando un modelo de dominio (o &lt;a href="http://martinfowler.com/eaaCatalog/domainModel.html"&gt;domain model pattern&lt;/a&gt;). Testear lógica desde un modelo de dominio es relativamente simple, solo hay que crear objetos, asignar propiedades, llamar a métodos y hacer asserts. Esto se debe a que un modelo de dominio no tiene depentencia a ninguna cuestión de infraestructura como persistencia, seguridad, etc. Esta separación natural hace que las pruebas sean más unitarias.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Me ha pasado de trabajar en aplicaciones donde había que modelar las entidades del dominio sin métodos. Esto es conocido como un antipatrón llamado &lt;a href="http://martinfowler.com/bliki/AnemicDomainModel.html"&gt;anemic domain model&lt;/a&gt;. Construir pruebas unitarias en este caso es una tarea dura, pues generalmente otro objeto encapsula la lógica. En mi caso, las pruebas dependian de los datos cagados en la base de datos, cuando estos cambiaban, las pruebas dejaban de andar. También pasaba que había casos donde el test modificaba los datos y al hacer esto, invalidaba otras pruebas. Estos esfuerzos adicionales dificultan las construcción y el uso de pruebas unitarias. También pasa que con el tiempo las pruebas dejan de ser válidas ya que nadie mantiene los datos en la base. Según mi experiencia, hubiese sido muy bueno en estos casos trabajar con un modelo de dominio.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para crear buenos modelos de dominio, recomiendo el libro &lt;a href="http://www.infoq.com/minibooks/domain-driven-design-quickly"&gt;domain driven design&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Programar hacia interfaces, no implementaciones&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Este es uno de los principios de diseño que más me gusta. Si cada objeto de una aplicación (excluyendo al model de dominio) fuera una estrategia intercambiable, sería muy fácil aislarlo para poder testearlo unitariamente. Esto nos lleva al siguiente punto.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Inyección de depencias&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Un framework de inyección de dependencias facilita la creación de pruebas unitarias (y de la aplicación). Algo que hago es crear un contexto especial para los casos de test que me permite modificar las dependencias según más convenga. Por ejemplo un servicio (&lt;a href="http://martinfowler.com/eaaCatalog/serviceLayer.html"&gt;service layer&lt;/a&gt;) que usa un objeto para la autorización puedo asociarlo a uno que siempre autoriza para probar determinada funcionalidad. Esto se conoce como &lt;a href="http://es.wikipedia.org/wiki/Objeto_simulado"&gt;mock objects&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Algunos trucos para construir pruebas unitarias usando spring framework&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Crear una clase TestBase que herede de AbstractJUnit4SpringContextTests. Esta clase define el application context de test a usar.&lt;/li&gt;&lt;li&gt;Usar notaciones para definir las dependencias de un test&lt;br /&gt;&lt;br /&gt;Para insertar depencias por tipo:&lt;br /&gt;@Autowired&lt;br /&gt;private CatalogService catalogService&lt;br /&gt;&lt;br /&gt;Para insertar dependencias por id del bean&lt;br /&gt;@Resource&lt;br /&gt;private Client clientMario&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Si la persistencia se realizar en base de datos, usar AbstractTransactionalJUnit4SpringContextTests. Esta clase realiza automáticamente un rollback de las operaciones realizadas. Yo la uso desde una clase test base:&lt;br /&gt;&lt;a href="http://www.codepaste.net/4poaxh"&gt;http://www.codepaste.net/4poaxh&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Marcar los casos de test que ensucian los beans cargados por spring. Esto ayuda a eliminar las dependencias entre test. Por ejemplo si en un test se agregan items al cache y en otro test es necesario que el cache esté vacío para no afectar la prueba, se puede marcar el 1er caso de test como @Dirty y spring volverá a cargar todos los beans nuevamente luego de ejecutar la prueba.&lt;br /&gt;&lt;br /&gt;@Test&lt;br /&gt;@Dirty&lt;br /&gt;public void addItemsToCache() {...&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Definir beans de las entidades del modelo con los resultados esperados en el contexto de test. Esto es algo que evita el hardcodeo de los resultados esperados. Luego se le agrega al caso de test una dependecia a este objeto.&lt;br /&gt;&lt;br /&gt;@Resource&lt;br /&gt;private Client expectedClient&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Espero sea de ayuda. Para mi hay un antes y un después de usar spring.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-7491985232695148641?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=7491985232695148641' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/7491985232695148641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/7491985232695148641'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/08/como-hacer-el-unit-test-mas-facil.html' title='Como hacer el unit testing mas fácil'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-6294723733576904871</id><published>2009-08-21T22:29:00.000-07:00</published><updated>2011-11-11T11:42:49.135-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='proposito'/><title type='text'>Ideas para un mundo mejor</title><content type='html'>&lt;div&gt;Ojalá alguien más tome la idea de plantar árboles para compenzar el CO2 emitido:&lt;/div&gt;&lt;div&gt;&lt;a href="http://dondevuelaelcondor.blogspot.com/2009/08/ideas-para-un-mundo-mejor.html"&gt;http://dondevuelaelcondor.blogspot.com/2009/08/ideas-para-un-mundo-mejor.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sería muy bueno para alcanzar el objetivo de cero CO2. Y porque no apostar a hacer crecer este número negativamente en el tiempo...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-6294723733576904871?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=6294723733576904871' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/6294723733576904871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/6294723733576904871'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/08/ideas-para-un-mundo-mejor.html' title='Ideas para un mundo mejor'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-3821488330787568666</id><published>2009-08-06T15:51:00.000-07:00</published><updated>2011-11-11T11:43:52.435-08:00</updated><title type='text'>Energía solar hogareña</title><content type='html'>Hace poco un amigo me pasó una tienda que vende equipos de energía solar. Este está muy bueno para trabajar con una notebook desde casa:&lt;div&gt;&lt;a href="http://store.sundancesolar.com/20walachkitw.html"&gt;http://store.sundancesolar.com/20walachkitw.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;También está muy bueno el do it your self&lt;/div&gt;&lt;div&gt;&lt;a href="http://store.sundancesolar.com/20wadosoenst.html"&gt;http://store.sundancesolar.com/20wadosoenst.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Algo que vale la pena analizar, es encontrar donde esta el 80/20 el consumo energético. Hace un tiempo use como herramienta &lt;a href="http://toclasaas.blogspot.com/2009/06/green-it-baseline.html"&gt;una calculadora para esto&lt;/a&gt;. Otra consideración importante es la de usar la energía solar con aparatos de corriente continua, ya que la conversión a 220 alterna es ineficiente.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Con este tipo de alternativas, estamos mas cerca de minimizar el impacto ambiental.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-3821488330787568666?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=3821488330787568666' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3821488330787568666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3821488330787568666'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/08/energia-solar-hogarena.html' title='Energía solar hogareña'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-616596580073139133</id><published>2009-08-01T15:46:00.000-07:00</published><updated>2009-08-01T19:09:41.603-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Convertir java objects a json usando json-taglib y jstlj</title><content type='html'>Dado que extjs trabaja con stores del tipo json, sería bueno poder convertir facilmente los objetos java que devuelven los servicios  (&lt;a href="http://martinfowler.com/eaaCatalog/serviceLayer.html"&gt;service layer&lt;/a&gt;). Para eso &lt;a href="http://json-taglib.sourceforge.net/"&gt;json taglib&lt;/a&gt; permite convertir java objects a json en una pagina jsp. Se combina muy bien con jstl para trabajar con objetos más complejos.&lt;br /&gt;&lt;br /&gt;1ro Instalar json taglib. Bajar del sitio &lt;a href="http://json-taglib.sourceforge.net/"&gt;oficial&lt;/a&gt; json-taglib.jar y copiar a WEB-INF/lib del proyecto.&lt;br /&gt;&lt;br /&gt;2do Bajar los archivos jsl-api.jar y jstl-impl.jar del sitio &lt;a href="https://jstl.dev.java.net/download.html"&gt;jstl&lt;/a&gt; y copiar en tomcat/lib&lt;br /&gt;&lt;br /&gt;3ro Armar un hello world &lt;a href="http://json-taglib.sourceforge.net/examples.html"&gt;json&lt;/a&gt; y &lt;a href="http://www.java2s.com/Code/Java/JSTL/Countto10ExampleusingJSTL.htm"&gt;jstl&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;y listo! Aca dejo un buen tutorial que me está siendo de mucha ayuda:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.informit.com/articles/article.aspx?p=30946"&gt;http://www.informit.com/articles/article.aspx?p=30946&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-616596580073139133?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=616596580073139133' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/616596580073139133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/616596580073139133'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/08/convertir-java-objects-json-usando-json.html' title='Convertir java objects a json usando json-taglib y jstlj'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-7945063665729079024</id><published>2009-08-01T09:14:00.000-07:00</published><updated>2009-08-01T10:31:05.206-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ext'/><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><title type='text'>Conectando extjs con el server side usando spring framewok</title><content type='html'>Una de las ventajas de extjs es que permite fácilmente poder &lt;a href="http://toclasaas.blogspot.com/2009/06/story-1-cuanto-vendi.html"&gt;prototipar&lt;/a&gt; sin tener que construir ninguna pieza server side. Con este tipo de frameworks es posbile definir como origen de datos de un combo un archivo json:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;// Armo filtros&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;var comboFilter = new Ext.form.ComboBox({&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;   &lt;/span&gt;store: new Ext.data.JsonStore({&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;    &lt;/span&gt;autoLoad: true,&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;b&gt;            url: 'services/sales/filter/brands.json',&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;            root: 'data',&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;            fields: ['id', 'name']&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;        }),&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;        valueField: 'id',&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;        displayField: 'name',&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;    triggerAction: 'all',&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;    forceSelection: true,&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;    mode: 'remote',&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;    loadingText: 'Loading...'&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;})&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para mayor claridad estoy usando url amigables. La url services/sales/filter/brand.json me dice que quiero obtener del dashboard de ventas, el filtro de marcas, en formato json.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Spring, ademas de ser un IoC/DI container, provee una buena forma de manejar friendly urls. Vamos a explicar paso a paso como usar spring como un pegamento entre client side y server side.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1ro Configurar spring web para escuchar los request en /services:&lt;/div&gt;&lt;div&gt;&lt;a href="http://codepaste.net/mf14fk"&gt;http://codepaste.net/mf14fk&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2do Configurar spring mvc para que la url services/sales/filter sea resuelta con el controller OlapServiceController:&lt;/div&gt;&lt;div&gt;&lt;a href="http://codepaste.net/xjtpqh"&gt;http://codepaste.net/xjtpqh&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3ero Implementar OlapServiceController. Este es quien realiza la ejecucion del servicio (&lt;a href="http://martinfowler.com/eaaCatalog/serviceLayer.html"&gt;service layer&lt;/a&gt;) que devuelve el filtro y selecciona la vista filter2json.jsp para renderizar el filtro en formato json:&lt;/div&gt;&lt;div&gt;&lt;a href="http://codepaste.net/5m3t6h"&gt;http://codepaste.net/5m3t6h&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Algo interesante de esta implementación es el bajo acople que hay entre el front end (extjs) y backend (jsp, spring, java, mondrian, etc.). Trabajar con simples urls permite definir un punto de entrada y abstraer totalmente su implementación. Sería posible tener fácilmente más de un server resolviendo peticiones (si los servicios son stateless) o acceder al servicio en la nube y escalar ondemand.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Otra posibilidad interesante es al tener un front end estático, es posible aplicar &lt;a href="http://developer.yahoo.com/performance/rules.html#expires"&gt;técnicas de caché&lt;/a&gt; en el browser para disminuir la cantidad de request, o distribuirlo a través de una &lt;a href="http://en.wikipedia.org/wiki/Content_delivery_network"&gt;cdn&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Y por último sería "no tan difícil" darle features offiline a la aplicación usando google gears (&lt;a href="http://gears.google.com/"&gt;http://gears.google.com/&lt;/a&gt;). Aunque sobre esto me gustaría profundizar un poco más en otro post.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-7945063665729079024?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=7945063665729079024' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/7945063665729079024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/7945063665729079024'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/08/conectando-extjs-con-el-server-side.html' title='Conectando extjs con el server side usando spring framewok'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-7714675447635810122</id><published>2009-07-31T05:57:00.000-07:00</published><updated>2011-11-11T11:43:52.435-08:00</updated><title type='text'>Cannon y su iniciativa green</title><content type='html'>Me alegra mucho enterarme que una empresa como Cannon toma iniciativas green para minimizar el impacto ambiental de sus actividades. Un ejemplo a imitar por todos.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.itbrief.co.nz/200907313528/canon-leads-by-example-with-green-initiative.php"&gt;http://www.itbrief.co.nz/200907313528/canon-leads-by-example-with-green-initiative.php&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-7714675447635810122?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=7714675447635810122' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/7714675447635810122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/7714675447635810122'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/07/cannon-y-su-iniciativa-green.html' title='Cannon y su iniciativa green'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-9021565557446977371</id><published>2009-07-26T15:22:00.000-07:00</published><updated>2009-07-26T21:08:39.911-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ext'/><title type='text'>Composite web application con extjs y Tibco pagebus</title><content type='html'>Se me ocurre que una buena manera de crear un dashboard es componiendo distintas partes, al estilo ratis / lego. Una de los desafios de crear aplicaciones compuestas es el de mantener bajo acople entre las partes. Es decir, que sean lo más idependientes posible. Agregar / quitar un nuevo mashup no debe afectar al resto. Las dependencias entre unos y otros deberían ser mínimas.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;Un patron de diseño que resuelve este problema es el observe o publish / subscribe. Y una buena implementacion en javascript es el pagebus de Tibco:&lt;br /&gt;&lt;a href="http://developer.tibco.com/pagebus/"&gt;http://developer.tibco.com/pagebus/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_KJxP8stBacs/Sm0nce2LANI/AAAAAAAAAB8/3HCRJN7Y57Y/s1600-h/dash.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 225px;" src="http://4.bp.blogspot.com/_KJxP8stBacs/Sm0nce2LANI/AAAAAAAAAB8/3HCRJN7Y57Y/s400/dash.png" alt="" id="BLOGGER_PHOTO_ID_5362986101538226386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En el prototipo se puede ver los filtros del dashboard a la derecha y 2 informes en el centro. El 1ro es una grilla y el segundo muestra los filtros seleccionados. Cuando se cambia un filtro se publica en el bus un evento. Ambos informes se suscribieron al bus y por lo tanto reciben estas notificaciones. La grilla ejecuta una llamada ajax (se puede ver en firebug), el segundo informe muesta el mensaje publicado.&lt;br /&gt;&lt;br /&gt;Este es el codigo fuente:&lt;br /&gt;&lt;a href="http://codepaste.net/2mcfzz"&gt;http://codepaste.net/2mcfzz&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Todavía hay mucho por hacer, pero la idea parece funcionar!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-9021565557446977371?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=9021565557446977371' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/9021565557446977371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/9021565557446977371'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/07/composite-web-application-con-tibco.html' title='Composite web application con extjs y Tibco pagebus'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_KJxP8stBacs/Sm0nce2LANI/AAAAAAAAAB8/3HCRJN7Y57Y/s72-c/dash.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-515809942948284495</id><published>2009-07-25T07:17:00.000-07:00</published><updated>2009-11-25T17:21:57.829-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Agilidad y equipos de trabajo: Shackleton, Kon Tiki, motivación: Messner</title><content type='html'>Algo que me entusiasma mucho es leer historias de aventura y exploración. Si hay gente que rompieron barreras mentales (paradigmas), hizo cosas que se creían imposibles y tuvo que lidiar con la incertidumbre, fueron los grandes exploradores y aventureros.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Creo que a nivel personal y profesional, conocer experiencias son un aporte invaluable. No deja de llamarme la atención cómo en algunos casos el encare de estos aventureros de alinean con las ideas de las metodologías ágiles.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Una de las historias más impresionantes es la de Shackleton y su tripulación, quienes a principio de siglo intentaron realizar la primera travesía al polo sur. Su barco quedó atrapado en el hielo, sobrevivieron a 2 inviernos polares, estuvieron  a la deriva en un mas caótico de témpanos, navegaron en balsa por uno de los mares más tempestuosos del planeta y lo más increible de todo: volvieron todos vivos!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hay varios libros que cuentan la historia, para mi el más apasionante es este:&lt;/div&gt;&lt;div&gt;&lt;a href="http://montanismo.org.mx/articulos.php?id_sec=12&amp;amp;id_art=294"&gt;http://montanismo.org.mx/articulos.php?id_sec=12&amp;amp;id_art=294&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Otro libro interesante es el que extrae las lecciones aprendidas:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.nuevoviernes-nuevolibro.es/2009/04/lecciones-de-liderezgo-las-10.html"&gt;http://www.nuevoviernes-nuevolibro.es/2009/04/lecciones-de-liderezgo-las-10.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Su similitud con las ideas de las metodologías ágiles a pesar de los 100 años de diferencia es asombrosa.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Formar equipos de trabajo efectivos es un desafío que requere un alto grado de creatividad. En una materia de la facultad donde trabajábamos la creatividad (Análisis y Resolución de Problemas) hice elegí como tema del trabajo final "Cómo Formar Equipos Efectivos" y tomé como punto de partida 2 grandes historias de expliración: la de &lt;a href="http://es.wikipedia.org/wiki/Ernest_Shackleton"&gt;Shackleton&lt;/a&gt; y &lt;a href="http://es.wikipedia.org/wiki/Kon-tiki_(expedici%C3%B3n)"&gt;Kon Tiki&lt;/a&gt;. Esta última es una expedición que cruzó en océano Pacífico en balsa. El motor era demostrar que los habitantes de la Polinesia eran antepasados de los Incas.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esta es la presentación del trabajo:&lt;/div&gt;&lt;div&gt;&lt;a href="https://docs.google.com/present/edit?id=0AUcOcFHB-mKQZGd0Z3JmN2tfNDhmc3hnY3Zjdg&amp;amp;hl=en"&gt;https://docs.google.com/present/edit?id=0AUcOcFHB-mKQZGd0Z3JmN2tfNDhmc3hnY3Zjdg&amp;amp;hl=en&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;y este es el trabajo:&lt;/div&gt;&lt;div&gt;&lt;a href="https://docs.google.com/Doc?docid=0AUcOcFHB-mKQZGd0Z3JmN2tfNDRkM210dDVmNg&amp;amp;hl=en"&gt;https://docs.google.com/Doc?docid=0AUcOcFHB-mKQZGd0Z3JmN2tfNDRkM210dDVmNg&amp;amp;hl=en&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Un tema importante y muy relacionado es la motivación. Hacer cosas imposibles requiere un alto grado de motivación. Uno de los alpinistas mas grandes de la historia, Reinhold Messner,vuelca en su libro &lt;a href="http://montanismo.org.mx/articulos.php?id_sec=12&amp;amp;id_art=614&amp;amp;id_ejemplar=142"&gt;Mover Montañas&lt;/a&gt; distintas experiencias, convicciones e ideas sobre el alpinismo. En cada capítulo se puede apreciar el trabajo de una persona que dedicó su vida a su pasión más entrañable. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;Lo más importante de las capacidades del ser humano es la de establecer un sentido. No he alcanzado el éxito por ser especialmente fuerte, resistente o valiente. Hago ante todo que mi quehacer tenga un sentido.&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En mi caso, al leer frases como esta, el efecto es de motivación contagioso.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-515809942948284495?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=515809942948284495' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/515809942948284495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/515809942948284495'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/07/agilidad-y-equipos-de-trabajo.html' title='Agilidad y equipos de trabajo: Shackleton, Kon Tiki, motivación: Messner'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-1145723268502141680</id><published>2009-07-23T10:22:00.000-07:00</published><updated>2009-11-01T13:57:39.527-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><title type='text'>Construir una UI web con solo html y javascript</title><content type='html'>Hoy en dia existen muchas alternativas para construir la UI de una aplicación web. Estas son algunas características desables (en mi caso) para construir una aplicación web tipo dashboard:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Capacidad de prototipar. Esto permite construir la UI rapidamente, obtener feedback temprano, visualizar y probar la idea más ágilmente, etc.&lt;/li&gt;&lt;li&gt; Independiente de la tecnología server side. Esto permite reutilizar el front end y sus controles en java, .net, php, etc.&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Poseer una buena libreria de controles&lt;/li&gt;&lt;li&gt; Liviano&lt;/li&gt;&lt;li&gt; Proveer una manera consistente / homogenea para construir aplicaciones web&lt;/li&gt;&lt;li&gt; Cross browser&lt;/li&gt;&lt;li&gt;Open source, con respaldo de la comunidad&lt;/li&gt;&lt;li&gt; Posibilidad de tunear y aplicar recomendaciones de sitios de alta performance&lt;/li&gt;&lt;li&gt; Facilidad para implementar mecanismos offline&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;En internet hay mucha informacion sobre distintos frameworks ajax (prototype, scriptaculos, jquery, dojo, ext, yui, general interfaces, etc). Con algunos hice pruebas, con pude experimentar directamente en una aplicación. Finalmente me decidí por extjs, ya que me gustó mucho la librería de controles.&lt;br /&gt;&lt;br /&gt;Uno de los problemas a resolver para construir una aplicacion web con capacidad de funcionar offline es el acople entre la interface de usuario y el server. Se me ocurre que html estático + ajax + google geas puede ser una buena alternativa. Pero en el fondo pienso que este no es el paradigma dominante, quizas estoy equivocado. Por suerte encontré este post que me alentó a seguir esta alternativa:&lt;br /&gt;&lt;a href="http://www.infoq.com/news/2007/11/soui-death-of-mvc2"&gt;Does the rise of Service Oriented UI (SOUI) means the death of server-assisted MVC?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Mis tags en delicious sobre el tema:&lt;br /&gt;&lt;a href="http://delicious.com/ferclaverino/ria"&gt;http://delicious.com/ferclaverino/ria&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-1145723268502141680?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=1145723268502141680' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1145723268502141680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1145723268502141680'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/07/construir-una-ui-web-con-solo-html-y.html' title='Construir una UI web con solo html y javascript'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-6681488195956477592</id><published>2009-07-22T20:12:00.000-07:00</published><updated>2009-11-08T13:43:01.457-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Instalar vmware tools - host windows, virtual machine ubuntu</title><content type='html'>Ya comenté anteriormente que esto era algo que tenía pendiente. Gracias a lo publicado aca&lt;div&gt;&lt;a href="http://sliceoflinux.com/2009/05/26/instalar-vmware-tools-sobre-vmware-player/"&gt;http://sliceoflinux.com/2009/05/26/instalar-vmware-tools-sobre-vmware-player/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;tengo una buena guía para hacerlo. El único problema es que el sistema operativo host es windows.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1ro Bajar vmware workstation para linux (.bundle)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2do Instalar .bundle en ubuntu. Esto es simple, solo hay que hacer sudo chmod +x vmware.bundle y luego sudo ./vmware.bundle&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3ro Buscar en el filesystem linux.iso&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4to Montar linux.iso. Ingresar y extraer .rpm (como lo explica el post)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5to Instalar vmware tools haciendo sudo ./vmware-install.pl&lt;/div&gt;&lt;div&gt;El instalador pide por recompilar algunos modulos que no son compatibles con el kernel ubuntu. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6to Desinstalar vmware workstation sudo ./vmware.bundle -uninstall&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;7mo Recompilar vmware:&lt;/div&gt;&lt;div&gt;#sudo /usr/bin/vmware-config-tools.pl&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;8vo Finalmente, para iniciar automaticamente vmware tools al inicio de gnome, agregar a system, preferences, startup applications el comando /usr/bin/vmware-user&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-6681488195956477592?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=6681488195956477592' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/6681488195956477592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/6681488195956477592'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/07/instalar-vmware-tools-host-windows.html' title='Instalar vmware tools - host windows, virtual machine ubuntu'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-3563379916654540045</id><published>2009-07-22T10:11:00.000-07:00</published><updated>2010-04-23T19:26:51.372-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Empezando con scrum</title><content type='html'>Estas últimas semanas me pasó de conocer nuevas personas y charlar sobre scrum. Noté un interés creciente por el tema. Para quienes les interese el tema, esta es una lista de links que me fueron de utilidad para entrar en contacto con el mundo agil.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://groups.yahoo.com/group/foro-agiles/"&gt;http://groups.yahoo.com/group/foro-agiles/&lt;/a&gt;&lt;br /&gt;Este es el grupo de la comunidad ágil de habla hispana. Participan varios profesiones reconocidos por el mercado. Las discusiones son interesantes, generalmente tratan los problemas y experiencias de llevar scrum a la práctica.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://tech.groups.yahoo.com/group/agiles-argentina/"&gt;http://tech.groups.yahoo.com/group/agiles-argentina/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Grupo agile de Argentina. Además de discusiones locales, el grupo organizar reuniones presenciales periódicamente.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://www.infoq.com/minibooks/scrum-xp-from-the-trenches"&gt;http://www.infoq.com/minibooks/scrum-xp-from-the-trenches&lt;/a&gt;&lt;br /&gt;Este es un libro sobre scrum (con ejemplos).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://agileassessments.thoughtworks.com/"&gt;http://agileassessments.thoughtworks.com/&lt;/a&gt;&lt;br /&gt;Este es un assesment para evaluar el estado actual y compararlo con el estado definido por las buenas prácticas de las metodologías ágiles.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.slideshare.net/proyectalis/090526-charla-scrum"&gt;http://www.slideshare.net/proyectalis/090526-charla-scrum&lt;/a&gt;&lt;br /&gt;Una presentación sobre scrum&lt;br /&gt;&lt;br /&gt;Mis delicious&lt;br /&gt;&lt;a href="http://delicious.com/ferclaverino/scrum"&gt;http://delicious.com/ferclaverino/scrum&lt;/a&gt;&lt;br /&gt;&lt;style title="owaParaStyle"&gt;P {  MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px } BODY {  SCROLLBAR-HIGHLIGHT-COLOR: #cecfce; SCROLLBAR-ARROW-COLOR: #3f52b8; SCROLLBAR-TRACK-COLOR: #fffbff; SCROLLBAR-DARKSHADOW-COLOR: #fafafa; SCROLLBAR-BASE-COLOR: #f7f7f7 }&lt;/style&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://delicious.com/ferclaverino/agile"&gt;http://delicious.com/ferclaverino/agile&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;saludos!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-3563379916654540045?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=3563379916654540045' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3563379916654540045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3563379916654540045'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/07/empezando-con-scrum.html' title='Empezando con scrum'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-1570079169939298113</id><published>2009-07-18T13:23:00.000-07:00</published><updated>2009-11-01T13:56:42.383-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Hello world, hello mondrian</title><content type='html'>Mondrian es un motor olap open source escrito en java.&lt;br /&gt;&lt;a href="http://mondrian.pentaho.org/"&gt;http://mondrian.pentaho.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tiene algunas caracteristicas interesantes, como por ejemplo permitir mendiante un archivo xml configurar las facts y dimensiones de un cubo, tomar como origen de datos una base de datos relaciones, distintos niveles de agregacion y cache, etc. Es compatible con varias bases de datos, entre ellas &lt;a href="http://hsqldb.org/"&gt;hsqldb&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Este es un breve paso a paso para realizar un hello world, o mejor dicho, un hello mondrian.&lt;br /&gt;&lt;br /&gt;1ro bajar el ultimo release.&lt;br /&gt;&lt;br /&gt;2do descomprimir y copiar en usr/local/mondrian.&lt;br /&gt;Todas las librerias y dependencias requeridas por mondrian se encuentran dentro de mondrian-embedded.war. Por lo tanto descomprimir mondrian-embedded.war y copiar el contenido de la carpeta WEB-INF/lib en usr/local/mondrian/lib.&lt;br /&gt;&lt;br /&gt;3ro crear proyecto java en eclipse. Agrear los siguientes external jars:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_KJxP8stBacs/SmI1u4_w25I/AAAAAAAAABk/dUVQMB17qwM/s1600-h/mondrian_ref.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 261px;" src="http://4.bp.blogspot.com/_KJxP8stBacs/SmI1u4_w25I/AAAAAAAAABk/dUVQMB17qwM/s320/mondrian_ref.png" alt="" id="BLOGGER_PHOTO_ID_5359905586214394770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4to crear xml de definicion del cubo. Este ejemplo contiene una dimension de producto y otra de tiempo.&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;Schema name="SaleStore"&amp;gt;&lt;br /&gt; &amp;lt;Cube name="Sales"&amp;gt;&lt;br /&gt;  &amp;lt;Table name="FT_SALES"/&amp;gt;&lt;br /&gt;  &amp;lt;Dimension name="Product" foreignKey="PRODUCT_ID"&amp;gt;&lt;br /&gt;   &amp;lt;Hierarchy hasAll="true" allMemberName="All Products" primaryKey="PRODUCT_ID"&amp;gt;&lt;br /&gt;    &amp;lt;Table name="LK_PRODUCT"/&amp;gt;&lt;br /&gt;    &amp;lt;Level name="Product" column="PRODUCT_ID" nameColumn="PRODUCT_NAME" uniqueMembers="true"/&amp;gt;&lt;br /&gt;   &amp;lt;/Hierarchy&amp;gt;&lt;br /&gt;  &amp;lt;/Dimension&amp;gt;&lt;br /&gt;  &amp;lt;Dimension name="Time" type="TimeDimension" foreignKey="DATE_ID"&amp;gt;&lt;br /&gt;   &amp;lt;Hierarchy hasAll="true" allMemberName="All Periods" primaryKey="DATE_ID"&amp;gt;&lt;br /&gt;    &amp;lt;Table name="LK_TIME"/&amp;gt;&lt;br /&gt;    &amp;lt;Level name="Year" column="YEAR" uniqueMembers="true" levelType="TimeYears" type="Numeric"/&amp;gt;&lt;br /&gt;    &amp;lt;Level name="Quarter" column="QUARTER" uniqueMembers="false" levelType="TimeQuarters" /&amp;gt;&lt;br /&gt;    &amp;lt;Level name="Month" column="MONTH" uniqueMembers="false" ordinalColumn="MONTH" nameColumn="MONTH_NAME" levelType="TimeMonths" type="Numeric"/&amp;gt;&lt;br /&gt;    &amp;lt;Level name="WEEK" column="WEEK_IN_MONTH" uniqueMembers="false" levelType="TimeWeeks" /&amp;gt;&lt;br /&gt;    &amp;lt;Level name="DAY" column="DAY_IN_MONTH" uniqueMembers="false" ordinalColumn="DAY_IN_MONTH" nameColumn="DAY_IN_MONTH" levelType="TimeDays" type="Numeric"/&amp;gt;&lt;br /&gt;   &amp;lt;/Hierarchy&amp;gt;&lt;br /&gt;  &amp;lt;/Dimension&amp;gt;  &lt;br /&gt;  &amp;lt;Measure name="Quantity" column="QUANTITY" aggregator="sum" formatString="#,###"/&amp;gt;&lt;br /&gt;  &amp;lt;Measure name="SalePrice" column="SALE_PESO" aggregator="sum" formatString="#,###.##"/&amp;gt;&lt;br /&gt; &amp;lt;/Cube&amp;gt;&lt;br /&gt;&amp;lt;/Schema&amp;gt;&lt;br /&gt;&lt;br /&gt;5to crear clase java de prueba&lt;br /&gt;&lt;br /&gt;import mondrian.olap.*;&lt;br /&gt;import java.io.PrintWriter;&lt;br /&gt;import java.io.StringWriter;&lt;br /&gt;&lt;br /&gt;public class TestMondrian {&lt;br /&gt;&lt;br /&gt; /**&lt;br /&gt;  * @param args&lt;br /&gt;  * @throws ClassNotFoundException &lt;br /&gt;  */&lt;br /&gt; public static void main(String[] args) throws ClassNotFoundException&lt;br /&gt; {&lt;br /&gt;  // Load the HSQL Database Engine JDBC driver&lt;br /&gt;        // hsqldb.jar should be in the class path or made part of the current jar&lt;br /&gt;        Class.forName("org.hsqldb.jdbcDriver");&lt;br /&gt;        &lt;br /&gt;  // First, set up a valid connection string&lt;br /&gt;     String connStr = "Provider=mondrian;" +&lt;br /&gt;                      "Catalog=data/cube_sales.xml;" +&lt;br /&gt;                      "JdbcDrivers=org.hsqldb.jdbcDriver;" +&lt;br /&gt;                      "Jdbc=Jdbc:hsqldb:file:/home/fer/workspace/helloworld/HelloHsqldb/data/testdb;" +&lt;br /&gt;                      "jdbcUser=sa;" +&lt;br /&gt;                      "jdbcPassword=;";&lt;br /&gt;     &lt;br /&gt;     // Second, set up a valid query string&lt;br /&gt;     String queryStr =&lt;br /&gt;      "SELECT {[Measures].[Quantity], [Measures].[SalePrice]} on columns," +&lt;br /&gt;      " {[Product].children} on rows " +&lt;br /&gt;      "FROM [Sales] ";&lt;br /&gt;      //"WHERE ([Time].[2009].[Q1]";&lt;br /&gt;&lt;br /&gt;     // Third, retrieve a connection from the DriveManager&lt;br /&gt;     Connection connection = DriverManager.getConnection(connStr, null);&lt;br /&gt;&lt;br /&gt;     // Fourth, generate a MDX Query object&lt;br /&gt;     Query query = connection.parseQuery(queryStr);&lt;br /&gt;&lt;br /&gt;     // Fifth, execute the query&lt;br /&gt;     Result result = connection.execute(query);&lt;br /&gt;&lt;br /&gt;     // Finally, print out the result&lt;br /&gt;     StringWriter sw = new StringWriter();&lt;br /&gt;     PrintWriter pw = new PrintWriter(sw);&lt;br /&gt;     result.print(pw);&lt;br /&gt;     pw.flush();&lt;br /&gt;     System.out.println(sw.toString());&lt;br /&gt;     &lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-1570079169939298113?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=1570079169939298113' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1570079169939298113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1570079169939298113'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/07/hello-world-hello-mondrian.html' title='Hello world, hello mondrian'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_KJxP8stBacs/SmI1u4_w25I/AAAAAAAAABk/dUVQMB17qwM/s72-c/mondrian_ref.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-4522862341196202606</id><published>2009-06-28T15:11:00.000-07:00</published><updated>2009-11-01T13:56:42.383-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Olap y hsqldb, funcionará? Empecemos por instalarl hsqldb</title><content type='html'>&lt;div&gt;Voy a probar como funcionaría una base liviana como hsqldb en una aplicación olap. Si bien no es de esperar que esta base maneje gran cantidad de información, tiene algunas ventajas:&lt;/div&gt;&lt;div&gt;- Fácil de implementar.&lt;/div&gt;&lt;div&gt;- Requiere poca cpu y memoria.&lt;/div&gt;&lt;div&gt;- Compatible con mondrian.&lt;/div&gt;&lt;div&gt;- Soporta tablas en archivos, lo cual es facilida la importación/exportación de datos. Esta característica es interesante, ya que podría simplificar la carga de archivos.&lt;/div&gt;&lt;div&gt;- Sería posible usar un mecanimo para cargar solo las bases usadas, lo cual contribuye aún más al ahorro de cpu y memoria.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Me queda la duda sobre si es fácil modificar los esquemas de las tablas. Esto es algo deseable ya que permitirá que cada tenant pueda modificar su esquema de datos fácilmente.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esto fue lo que hice paso a paso:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1ro instalar hsqldb. Para eso hay que bajar la base desde el sitio oficial, downloads (formato zip)&lt;/div&gt;&lt;div&gt;&lt;a href="http://hsqldb.org/"&gt;http://hsqldb.org/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yo la descomprimí en /home/downloads/hsqldb y luego la moví a user/local/ haciendo:&lt;/div&gt;&lt;div&gt;# sudo mv hsqldb /usr/local/&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src="http://1.bp.blogspot.com/_HTsF5nAznt0/Skf1CSW24eI/AAAAAAAABC0/UFSuIENsh1M/s320/hsql+database+manager.png" style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 181px;" alt="" id="BLOGGER_PHOTO_ID_5352516101789376994" border="0" /&gt;&lt;div&gt;Luego, para ver si funciona ejecuté /demos/runmanager.exe&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;creé una tabla:&lt;/div&gt;&lt;div&gt;create memory table customers (id integer, name varchar)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;inserté un registro:&lt;/div&gt;&lt;div&gt;insert into customers (id, name) values (1, 'Fernando');&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;e hice un select * from customers&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para integrar la hsqldb con eclipse, encontré un plugin, pero no lo pude hacer funcionar:&lt;/div&gt;&lt;div&gt;&lt;a href="http://hsqldb-plugin.sourceforge.net/"&gt;http://hsqldb-plugin.sourceforge.net/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.ibm.com/developerworks/opensource/library/os-echsql/" style="text-decoration: none;"&gt;http://www.ibm.com/developerworks/opensource/library/os-echsql/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-4522862341196202606?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=4522862341196202606' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/4522862341196202606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/4522862341196202606'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/06/instalar-hsqldb.html' title='Olap y hsqldb, funcionará? Empecemos por instalarl hsqldb'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02636282729003668831</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='29' src='http://1.bp.blogspot.com/_HTsF5nAznt0/TFQiWkkY8MI/AAAAAAAACAA/_31GPFNJVak/S220/avatar.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_HTsF5nAznt0/Skf1CSW24eI/AAAAAAAABC0/UFSuIENsh1M/s72-c/hsql+database+manager.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-3755467718801015263</id><published>2009-06-27T17:55:00.000-07:00</published><updated>2011-11-11T11:42:49.136-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='proposito'/><title type='text'>Green IT Baseline</title><content type='html'>Uno de los motivadores de este proyecto es el de minimizar el impacto ambiental. Para entender mejor cómo conseguir este objetivo voy a empezar por estimar cual es la base de consumo energético. Encontré en Forrester una calculadora para hacer esto que permite calcular el consumo energético, emisión de CO2 y su costo:&lt;div&gt;&lt;a href="http://blogs.forrester.com/it_infrastructure/2009/02/whats-your-gree.html"&gt;http://blogs.forrester.com/it_infrastructure/2009/02/whats-your-gree.html&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Este es el consumo estimado de los aparatos eléctricos usados:&lt;/div&gt;&lt;div&gt;- notebook: 25w&lt;/div&gt;&lt;div&gt;- pc server: 100w&lt;/div&gt;&lt;div&gt;- telefonos: 4.5w&lt;/div&gt;&lt;div&gt;- router: 11w&lt;/div&gt;&lt;div&gt;- luz: 40w&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para estimar el tiempo se uso, asumí:&lt;/div&gt;&lt;div&gt;- Jornada de trabajo semanal de 80 horas.&lt;/div&gt;&lt;div&gt;- Telefonos, router y server están siempre encendidos.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Según la caluladora, estos son los resultados:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="0"&gt; &lt;tbody&gt; &lt;tr&gt;   &lt;td rowspan="2"&gt;&lt;/td&gt;   &lt;td&gt;Annual Emissions&lt;/td&gt;   &lt;td&gt;Annual Dollar Costs&lt;/td&gt;   &lt;td&gt;Annual Energy Draw&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;(lbs. of CO2)*&lt;/td&gt;   &lt;td&gt;($)**&lt;/td&gt;   &lt;td&gt;(kWh)&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;Green IT baseline, outside of the data center:&lt;/td&gt;   &lt;td&gt;182&lt;/td&gt;   &lt;td&gt;13&lt;/td&gt;   &lt;td&gt;136&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;Total of Data center IT equipment:&lt;/td&gt;   &lt;td&gt;1303&lt;/td&gt;   &lt;td&gt;92&lt;/td&gt;   &lt;td&gt;972&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;Total of data center facilities equipment:&lt;/td&gt;   &lt;td&gt;103&lt;/td&gt;   &lt;td&gt;7&lt;/td&gt;   &lt;td&gt;77&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;Green IT baseline, inside of the data center:&lt;/td&gt;   &lt;td&gt;1406&lt;/td&gt;   &lt;td&gt;99&lt;/td&gt;   &lt;td&gt;1049&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td&gt;Total Green IT baseline:&lt;/td&gt;   &lt;td&gt;1588&lt;/td&gt;   &lt;td&gt;112&lt;/td&gt;   &lt;td&gt;1185&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td colspan="4"&gt;*Annual Emmissions calculations based on 1.34 pounds (lbs) of CO2 emissions per kWh.&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td colspan="4"&gt;**Annual Dollar Costs calculations based on $0.0946 per kWh.&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td colspan="4"&gt;Data center power usage effectiveness (PUE) ratio: 1.079&lt;/td&gt;  &lt;/tr&gt;  &lt;tr&gt;   &lt;td colspan="4"&gt;Data center infrastructure efficiency (DCiE) ratio: 0.073&lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src="http://3.bp.blogspot.com/_KJxP8stBacs/Skbg2MpKqSI/AAAAAAAAABU/CG-dvoWVBjs/s400/detailGraph" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 146px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5352212428887861538" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Este simple ejercicio me ayuda a entender un poco mejor el problema y cómo mejorarlo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El server es un estimado de tener una pc encendida 24hs. En la práctica esto será un servicio provisto por un datacenter. En este punto se me ocurren algunas cosas, como por ejemplo utilizar maquinas virtuales, el servicio &lt;a href="http://aws.amazon.com/ec2/"&gt;EC2&lt;/a&gt; de amazon, elegir datacenters con responsabilidad ambiental como el caso de &lt;a href="http://www.google.com/corporate/green/datacenters/"&gt;google&lt;/a&gt;, etc.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;En mi casa, el mayor consumo lo tengo en los aparatos que están encedidos 24hs, como router y teléfonos. Estos aparatos son de corriente continua, por lo que es fácil y óptimo alimentarlos con paneles solares. Le siguen la iluminación y la notebook (figura como pc). Por suerte la notebook ya tiene un consumo de energía optimizado.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-3755467718801015263?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=3755467718801015263' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3755467718801015263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/3755467718801015263'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/06/green-it-baseline.html' title='Green IT Baseline'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_KJxP8stBacs/Skbg2MpKqSI/AAAAAAAAABU/CG-dvoWVBjs/s72-c/detailGraph' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-1806395970044041338</id><published>2009-06-14T12:57:00.000-07:00</published><updated>2009-06-20T14:26:19.006-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>De 0 a un desktop java desarrollo en un fin de semana</title><content type='html'>Si bien la distribución ubuntu tiene features muy buenos que facilitan muchas tareas, para alguien del mundo windows se hace un poco dificil comenzar. Asi que aca comparto una lista de pasos para crear un desktop desarrollo vmware con ubuntu 9.04,  java6, eclipse for Java EE, tomcat6 y mysql.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1ro bajar una imagen vmware de ubuntu desktop 9.04 (esta versión es de 32bits).&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.vmware.com/appliances/directory/147773"&gt;http://www.vmware.com/appliances/directory/147773&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La imagen baja en un formato que se puede descomprimir con winrar. Descomprimir y ejecutar. Ingresar con el usuario vmplanet y pass wmplanet.net. Al iniciar ubuntu se instalarán varias actualizaciones.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2do crear un nuevo usuario (&lt;a href="http://www.cyberciti.biz/faq/howto-linux-add-user-to-group/"&gt;http://www.cyberciti.biz/faq/howto-linux-add-user-to-group/&lt;/a&gt;). Esto no es necesario, solo lo hago para usar mi usuario en lugar del creado por quienes crearon la virtual. Para crear el usuario (desde application, accesories, terminal):&lt;/div&gt;&lt;div&gt;# sudo adduser fer&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Luego de crear el usuario, veo que no puedo ejecutar sudo. Si tipeo visudo veo que sólo el grupo admin puede ejecutar este comando. Para agregar el usuario al grupo: &lt;/div&gt;&lt;div&gt;# usermod -a -G admin fer&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;La virtual viene con el usuario vmplanet. Para ver a que grupos pertenece el ussuario (yo asigne mi usuario a todos estos grupos):&lt;/div&gt;&lt;div&gt;# id vmplanet&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3ro instalar vmware tools, aún no lo hice, pero aca lo explican muy bien&lt;/div&gt;&lt;div&gt;&lt;a href="http://sliceoflinux.wordpress.com/2009/05/26/instalar-vmware-tools-sobre-vmware-player/"&gt;http://sliceoflinux.wordpress.com/2009/05/26/instalar-vmware-tools-sobre-vmware-player/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4to Instalar la ultima version de java:&lt;/div&gt;&lt;div&gt;# sudo apt-get install sun-java6-jdk&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;luego hay que setear la variable JAVA_HOME haciendo:&lt;/div&gt;&lt;div&gt;# sudo gedit /etc/environment&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;y agregando:&lt;/div&gt;&lt;div&gt;JAVA_HOME="/usr/lib/jvm/java-6-sun"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5to Instalar eclipse. Primero lo hice de los repositorios de ubuntu, pero después me di cuenta que no está displonible la última versión. Asi que lo mejor es instalarlo a mano. Primero lo baje del sitio de eclipse en /home/fer/downloads. Luego lo descomprimi en /home/fer/downloads/eclipse.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Algo que me costó un poco entender es la estructura de carpetas de linux. En este link lo explican bien: &lt;a href="http://www.pathname.com/fhs/pub/fhs-2.3.html"&gt;http://www.pathname.com/fhs/pub/fhs-2.3.html&lt;/a&gt;. Asi que moví eclipse a /usr/local/eclipse haciendo:&lt;br /&gt;&lt;/div&gt;&lt;div&gt;# sudo mv /home/fer/downloads/eclipse/ /usr/local/&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para agregar el item Applications, Programming, Eclipse solo hay que hacer boton derecho sobre el menú. El ícono se puede descargar de &lt;a href="http://www.gnome-look.org/content/download.php?content=87185&amp;amp;id=1&amp;amp;tan=22085695&amp;amp;PHPSESSID=f489f7fb7b47f9313a92f7c68d795054"&gt;http://www.gnome-look.org/content/download.php?content=87185&amp;amp;id=1&amp;amp;tan=22085695&amp;amp;PHPSESSID=f489f7fb7b47f9313a92f7c68d795054&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6to Instalar tomcat 6. Primero lo hice usando los paquetes apt-get. Pero me di cuenta que luego no funciona con el eclipse. Asi que los desintalé y lo instalé manualmente (en /usr/local/apache-tomcat-6.0.20):&lt;/div&gt;&lt;br /&gt;&lt;div&gt;para crear un usuario manager y poder acceder a manager webapp (http://localhost:8080/manager/html), editar tomcat-users.xml&lt;/div&gt;&lt;div&gt;# sudo gedit /usr/local/apache-tomcat6-6.0.20/conf/tomcat-users.xml&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;y agregar:&lt;/div&gt;&lt;div&gt;&amp;lt;role rolename="manager"/&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;user username="tomcat" password="tomcat" roles="manager"/&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para acceder a host-manager webapp (http://localhost:8080/host-manager/html) se debe crear un usuario con el rol admin:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&amp;lt;role rolename="admin"/&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;user username="tomcat" password="tomcat" roles="manager,admin"/&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;luego iniciar tomcat con /bin/startup.sh&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;7mo instalar mysql. Desde applications, add/remove se pueden instalar mysql administrator y mysql query browser.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para instalar mysql server:&lt;/div&gt;&lt;div&gt;# sudo apt-get install mysql-server mysql-client&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-1806395970044041338?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=1806395970044041338' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1806395970044041338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1806395970044041338'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/06/de-0-un-ambiente-de-desarrollo-en-un.html' title='De 0 a un desktop java desarrollo en un fin de semana'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-7706192684469188354</id><published>2009-06-12T19:22:00.000-07:00</published><updated>2011-11-11T11:42:49.137-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='proposito'/><title type='text'>Energía Solar</title><content type='html'>Una de las ideas que me está dando vueltas en la cabeza es la de instalar en casa paneles solares y usarlos para alimentar la máquina con la que voy a desarrollar este proyecto. Buscando en internet encontré este video que explica muy claramente como es una instalación de energia solar.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=ioILVy2Q8OQ&amp;amp;feature=channel"&gt;http://www.youtube.com/watch?v=ioILVy2Q8OQ&amp;amp;feature=channel&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Y de ahi llegué a Bill Mollinson, un australiano con una visión muy clara del problema ambiental.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=zZMr9oCLG3Y&amp;amp;feature=channel"&gt;http://www.youtube.com/watch?v=zZMr9oCLG3Y&amp;amp;feature=channel&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Habla de cosas como adaptación, agilidad, estabilidad dinámica, cambio permanente (temas comunes al mundo de software). Su idea se basa en algo simple, auto organizado (cualquier similaridad con las metodologías ágiles es pura coincidencia). Plantea que la agricultura está pensada para ganar dinero, no para generar comida. Por lo tanto, no cuida ni hace un uso responsable de los recursos naturales. Primera idea a copiar: hacer una aplicación para minimizar el impacto ambiental, no para ganar dinero!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Otra idea interesante tomada de la industria de los pollos es que la energia usada para producir el producto tiene que ser menor a la ahorrada (para producir un huevo se requiere la energía de 9). Sino, no hay beneficio energético.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Es algo probado en la práctica que las ideas simples son las que mejor funcionan. La naturaleza es sabia, está llena de ejemplos donde se aplican conceptos como simplicidad y armonía. Qué habría que copiar de la naturaleza para conseguir una aplicación que minimice el impacto ambiental?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Que pasaría si casi no utilizara energía electrica para llevar adelante este proyecto? Podría minimizarla a cero? Sería interesante hacer una prueba, compartirla y fomentar este tipo de ideas para que más personas la puedan poner en práctica.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;img src="http://3.bp.blogspot.com/_KJxP8stBacs/SjVQPvUB0vI/AAAAAAAAAAM/iefUCJEARmo/s320/rincon_bici.jpg" style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 240px; height: 320px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5347268363901063922" /&gt;&lt;div&gt;Hay mucho trabajo por hacer, asi que lo mejor es empezar de a poco y con algo simple. Tengo un patio en casa donde podría armar un "rincón ecológico". En ese rincón por ahora está colgada la bicicleta con la que voy todos los días a trabajar. Voy a ver como agregar los paneles solares al rincón...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lo de la huerta en el balcón es una idea muy buena también, por el ahorro energético que implica tener los alimentos en el lugar de consumo (otra idea para sumar al rincón ecológico). Lo que como también cuenta como energía requerida por este proyecto.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=DwW2YE2JIN0&amp;amp;feature=channel" style="text-decoration: none;"&gt;http://www.youtube.com/watch?v=DwW2YE2JIN0&amp;amp;feature=channel&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Creo que se pueden hacer muchas cosas que están al alcance de un ciudadano común.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-7706192684469188354?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=7706192684469188354' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/7706192684469188354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/7706192684469188354'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/06/energia-solar.html' title='Energía Solar'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_KJxP8stBacs/SjVQPvUB0vI/AAAAAAAAAAM/iefUCJEARmo/s72-c/rincon_bici.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-824115470953035175</id><published>2009-05-23T19:38:00.000-07:00</published><updated>2009-06-17T08:50:03.782-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>1ros pasos con ubuntu y vmware</title><content type='html'>Elegí como sistema operativo linux por ser open source y estar más alineado a la idea de la aplicacion. Minimizar el impacto ambiental requiere creatividad, un componente clave del modelo de software libre. Por otro lado la virtualización permite hacer un mejor uso de los recursos de hardware (green it). Este post explica mejor porque linux ayuda a ir por el camino verde: &lt;a href="http://www.damianfossi.com/?p=329"&gt;http://www.damianfossi.com/?p=329&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;VMware ofrece un catalogo de aplicaciones virtuales, entre las que incluye ubuntu server 9.04&lt;br /&gt;&lt;a href="http://www.vmware.com/appliances/directory/145373"&gt;http://www.vmware.com/appliances/directory/145373&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Luego de iniciar el server desde vmware player, no pude acceder a internet desde el server. El problema se debe a vmware cambia la mac address de la maquina virtual (lo pregunta al abrirla la 1ra vez).&lt;br /&gt;&lt;br /&gt;En este link explican como solucionar el problema:&lt;br /&gt;&lt;a href="http://communities.vmware.com/thread/86370"&gt;http://communities.vmware.com/thread/86370&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Luego de modificar /etc/udev/rules.d/70-persistent-net.rules, como dice el link, la red funciona perfectamente.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-824115470953035175?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=824115470953035175' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/824115470953035175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/824115470953035175'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/05/1ros-pasos-con-ubuntu-y-vmware.html' title='1ros pasos con ubuntu y vmware'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8700470556582436056.post-1066657262977838</id><published>2009-05-23T19:37:00.001-07:00</published><updated>2009-09-03T19:30:10.742-07:00</updated><title type='text'>Bienvenida</title><content type='html'>La idea de este blog es compartir la experiencia de desarrollar una aplicación de gestión para organizaciones con tecnologia open source y con una visión de IT que minimize el impacto ambiental.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Esta es la materialización de una manera idea de empresa sostenible, con innovación y creatividad como las principales herramientas.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8700470556582436056-1066657262977838?l=blog.kudewe.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8700470556582436056&amp;postID=1066657262977838' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1066657262977838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8700470556582436056/posts/default/1066657262977838'/><link rel='alternate' type='text/html' href='http://blog.kudewe.com/2009/05/bienvenida.html' title='Bienvenida'/><author><name>Fernando Claverino</name><uri>http://www.blogger.com/profile/02423979170718490562</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
