<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>Picando Código</title> <atom:link href="http://picandocodigo.net/feed/" rel="self" type="application/rss+xml" /><link>http://picandocodigo.net</link> <description>Blog personal sobre programación, tecnología, web, software libre, videojuegos y más</description> <lastBuildDate>Sun, 20 May 2012 18:10:59 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.2</generator> <item><title>En Montevideo Cómics 2012</title><link>http://picandocodigo.net/2012/en-montevideo-comics-2012/</link> <comments>http://picandocodigo.net/2012/en-montevideo-comics-2012/#comments</comments> <pubDate>Sun, 20 May 2012 18:10:59 +0000</pubDate> <dc:creator>Fernando</dc:creator> <category><![CDATA[Cómics]]></category> <category><![CDATA[Montevideo Cómics 2012]]></category> <guid
isPermaLink="false">http://picandocodigo.net/?p=6688</guid> <description><![CDATA[Este fin de semana ando recorriendo el Montevideo Cómics. Ayer [...]]]></description> <content:encoded><![CDATA[<p>Este fin de semana ando recorriendo el <strong>Montevideo Cómics</strong>. Ayer sábado estuvo muy bueno:</p><p>Tuve la oportunidad de asistir a una chara de Andrés Accorsi y conversar un rato con él. Por si no lo conocen, este tipo es una máquina de escribir reseñas de cómics. Tiene un blog <a
title="365 cómics por año" href="http://365comicsxyear.blogspot.com/">365 cómics por año</a>, donde publica una reseña por día. Y no son reseñas pedorras &#8220;para cumplir&#8221; con el post del día, son serias y completas. Incluso fueron compiladas en papel, publicó dos libros con el título del blog, que se pueden conseguir durante la convención por la módica suma de $ 200, muy recomendables.</p><div
id="attachment_6689" class="wp-caption aligncenter" style="width: 310px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/05/andres-accorsi-mvdcomics2012.jpg"><img
class="size-medium wp-image-6689" title="Andrés Accorsi Montevideo Comics 2012" src="http://picandocodigo.net/wp-content/uploads/2012/05/andres-accorsi-mvdcomics2012-300x225.jpg" alt="Andrés Accorsi Montevideo Comics 2012" width="300" height="225" /></a><p
class="wp-caption-text">Andrés Accorsi Montevideo Comics 2012</p></div><p>También estuve en una charla <strong>Robert Lence</strong>, profesional de la animación, a cargo de historias y animación en Disney y Pixar. Fue presentado por el conocido diseñador de videojuegos Gonzalo Frasca, quien no pudo ocultar su entusiasmo ante la presencia de tan importante personalidad. Ha pasado prácticamente por todos los estudios de animación de Hollywood: Pixar, Dreamworks, Disney y más. Su charla comenzó con la muestra de su primer corto animado: Simon. Hecho en 1988, fue el trabajo que hizo que lo contrataran en Disney.</p><div
id="attachment_6690" class="wp-caption aligncenter" style="width: 310px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/05/robert-lence-simon-mvdcomics2012.jpg"><img
class="size-medium wp-image-6690" title="Simon - corto de Robert Lence" src="http://picandocodigo.net/wp-content/uploads/2012/05/robert-lence-simon-mvdcomics2012-300x225.jpg" alt="Simon - corto de Robert Lence" width="300" height="225" /></a><p
class="wp-caption-text">Simon - corto de Robert Lence</p></div><p>Nos confirmó varias veces algo que muchos sabemos: En Hollywood <strong>NADIE SABE NADA</strong>. Contó la historia de cómo empezó a trabajar en animación, parte de su carrera en Disney y más. Un comentario interesante que surgió también en otra charla más adelante: Para dedicarse a dibujar, la práctica es un elemento más fundamental de lo que se cree, mas allá del talento.</p><div
id="attachment_6691" class="wp-caption aligncenter" style="width: 310px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/05/robert-lence-mvdcomics2012.jpg"><img
class="size-medium wp-image-6691" title="Robert Lence junto a Gonzalo Frasca" src="http://picandocodigo.net/wp-content/uploads/2012/05/robert-lence-mvdcomics2012-300x225.jpg" alt="Robert Lence junto a Gonzalo Frasca" width="300" height="225" /></a><p
class="wp-caption-text">Robert Lence junto a Gonzalo Frasca</p></div><p>La siguiente charla a la que asistimos fue la presentación de los cómics de <a
href="http://grupobelerofonte.blogspot.com/">Belerofonte</a>. Esta editorial presentó cuatro títulos este año, que prometo reseñar en el blog en algún momento.</p><div
id="attachment_6692" class="wp-caption aligncenter" style="width: 310px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/05/belerofonte-01.jpg"><img
class="size-medium wp-image-6692" title="Cómics de Grupo Belerofonte" src="http://picandocodigo.net/wp-content/uploads/2012/05/belerofonte-01-300x225.jpg" alt="Cómics de Grupo Belerofonte" width="300" height="225" /></a><p
class="wp-caption-text">Cómics de Grupo Belerofonte</p></div><p>El dúo (¿debería decir &#8220;dinámico&#8221; para hacer el post más comiquero?)  <strong>Rodolfo Santullo</strong> (guión) y <strong>Matías Bergara</strong> (ilustraciones) presentó <strong>Dengue</strong>, la obra que personalmente venía esperando con más anticipación. Estos dos autores ya habían trabajado juntos en <em>Los últimos días del Graf Spee</em> y <em>Acto de Guerra</em>, dos obras del género histórico. En esta ocasión se aventuran en la ciencia ficción y policial, lo cual puede traer resultados muy interesantes.</p><div
id="attachment_6693" class="wp-caption aligncenter" style="width: 310px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/05/belerofonte-02.jpg"><img
class="size-medium wp-image-6693" title="Grupo Belerofonte" src="http://picandocodigo.net/wp-content/uploads/2012/05/belerofonte-02-300x225.jpg" alt="Grupo Belerofonte" width="300" height="225" /></a><p
class="wp-caption-text">Grupo Belerofonte</p></div><p>Otras dos obras presentadas fueron <strong>Cardal</strong> (Bentancor y Ginevra) y <strong>Bernardina hacia la tormenta</strong> (Matías Castro y Daniel González), de caracter histórico, un género bastante popular en la novela gráfica nacional (por eso lo del interés con Dengue, ¿se ve?). Y por último <strong>Los canillitas</strong>, publicación de las tiras &#8220;la parrilla está caliente&#8221;, publicada originalmente en el diario Tiempo Argentino.</p><div
id="attachment_6694" class="wp-caption aligncenter" style="width: 310px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/05/belerofonte-04.jpg"><img
class="size-medium wp-image-6694" title="Rodolfo Santullo y Matías Bergara" src="http://picandocodigo.net/wp-content/uploads/2012/05/belerofonte-04-300x225.jpg" alt="Rodolfo Santullo y Matías Bergara" width="300" height="225" /></a><p
class="wp-caption-text">Rodolfo Santullo y Matías Bergara</p></div><p>Los autores comentaron sobre la producción de cada obra, detallesde las ediciones y más. Pueden encontrar el stand de Belorofonte si andan por el evento, y conseguir los tomos comentados y más.</p><div
id="attachment_6695" class="wp-caption alignright" style="width: 210px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/05/gas-3k.jpg"><img
class="size-full wp-image-6695" title="GAS3K.3" src="http://picandocodigo.net/wp-content/uploads/2012/05/gas-3k.jpg" alt="GAS3K.3" width="200" height="265" /></a><p
class="wp-caption-text">GAS3K.3</p></div><p>Importante comentar que en esta edición de Montevideo Cómics, está disponible mi primer aparición como personaje de una historieta.</p><p>GAS3K es un compilado de historias cortas de distintos escritores y artistas. El año pasado les comenté de GAS3K.1 y 2, y este año la publicación volvió con el doble de tamaño.</p><p>Entre las historias de la revista, pueden encontrar el cómic de <strong>Chori Rider</strong> (cualquier similitud con un motorista fantasma es pura coincidencia&#8230; o no), con guión de MaGnUs y arte de Carla Rodrigues. Aparezco en la última viñeta (no cuento más nada para no spoilear)&#8230;</p><p>Dense una vuelta por el stand de <strong>GAS3K</strong>, y llévense una copia de cada número, que seguro encuentran alguna historia de su gusto. Gracias MaGnUs por darme la oportunidad de aparecer en un cómic <img
src='http://picandocodigo.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /></p><p>También estuve en la charla de <strong>Alfonzo Azpiri</strong>, quien luego me firmó un ejemplar de CIMOC con su Lorna en la tapa. Azpiri fue otra personalidad que hizo hincapié en el tema de que para dibujar bien, se necesita mas práctica que talento, así que si (como yo) se sienten dibujantes frustrados, sepan que la práctica hace al maestro (y si lo dice este maestro, yo me lo creo&#8230;).</p><div
id="attachment_6697" class="wp-caption aligncenter" style="width: 310px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/05/azpiri-picandocodigo.jpg"><img
class="size-medium wp-image-6697" title="picandocodigo y Alfonso Azpiri" src="http://picandocodigo.net/wp-content/uploads/2012/05/azpiri-picandocodigo-300x225.jpg" alt="picandocodigo y Alfonso Azpiri" width="300" height="225" /></a><p
class="wp-caption-text">picandocodigo y Alfonso Azpiri</p></div><p>Bueno, lo dejo por acá porque en un rato arranco para el Complejo Plaza nuevamente a ver las charlas de hoy y adquirir los cómics que no compré ayer. Ya comentaré más en próximos posts&#8230;</p><p>&nbsp;</p> ]]></content:encoded> <wfw:commentRss>http://picandocodigo.net/2012/en-montevideo-comics-2012/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Agenda de eventos Mayo &#8211; Montevideo</title><link>http://picandocodigo.net/2012/agenda-de-eventos-mayo-montevideo/</link> <comments>http://picandocodigo.net/2012/agenda-de-eventos-mayo-montevideo/#comments</comments> <pubDate>Mon, 07 May 2012 11:00:23 +0000</pubDate> <dc:creator>Fernando</dc:creator> <category><![CDATA[Eventos]]></category> <category><![CDATA[montevideo]]></category> <guid
isPermaLink="false">http://picandocodigo.net/?p=6669</guid> <description><![CDATA[El mes de mayo viene lleno de eventos interesantes en [...]]]></description> <content:encoded><![CDATA[<div
id="attachment_6670" class="wp-caption alignright" style="width: 138px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/05/korganizer.png"><img
class="size-full wp-image-6670" title="Agenda" src="http://picandocodigo.net/wp-content/uploads/2012/05/korganizer.png" alt="Agenda" width="128" height="128" /></a><p
class="wp-caption-text">Agenda</p></div><p>El mes de mayo viene lleno de eventos interesantes en Montevideo, así que la agenda está bastante completita:</p><h3>Meetups</h3><p>En primer lugar tenemos esta semana el <a
href="http://picandocodigo.net/2012/invitacion-ruby-meetup-montevideo-2012/">meetup de Ruby</a>, el martes 8. Enseguida, el jueves 10 de mayo el <a
href="www.meetup.com/The-Montevideo-MySQL-Meetup-Group/events/51232452/">reunión mensual del grupo MySQL</a>. Ambos meetups se vienen con todo, con una buena concurrencia y excelentes presentaciones hasta ahora, además de buenas oportunidades para conocer gente del medio y tomar cerveza.</p><h3>Conferencia Internacional de Software Libre y Código Abierto</h3><p>Antel organiza una <a
href="http://www.avanza2012.com.uy/cisl/">conferencia internacional de Software Libre</a> con expositores interesantes. De destacar la presencia del famoso Jon &#8220;maddog&#8221; Hall.</p><h3>EduJAM!</h3><p>El viernes 11 y sábado 12 en el Complejo de las Telecomunicaciones <a
href="http://picandocodigo.net/2012/edujam-2012-montevideo-uruguay/">se realiza el eduJAM</a>. Sigan el enlace por más información, pero básicamente: El principal objetivo del encuentro es fortalecer la comunidad de desarrolladores de software educativo libre, especialmente en América del Sur pero también con el objetivo de incrementar los esfuerzos de colaboración con el resto del mundo.</p><h3>Montevideo Comics</h3><p>El fin de semana del 19 y 20 de mayo se realiza la edición del décimo aniversario de <a
href="http://www.montevideocomics.com.uy/">Montevideo Comics</a> en el Complejo Cultural Plaza. En breve publico la agenda completa. Al igual que otros años, la oportunidad perfecta para ver qué está pasando en materia de cómics a nivel nacional y regional, entre otras frikadas.</p><p>Espero no haberme olvidado de nada&#8230; Mes movido Mayo <img
src='http://picandocodigo.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://picandocodigo.net/2012/agenda-de-eventos-mayo-montevideo/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Invitación: Segundo Ruby Meetup Montevideo 2012</title><link>http://picandocodigo.net/2012/invitacion-ruby-meetup-montevideo-2012/</link> <comments>http://picandocodigo.net/2012/invitacion-ruby-meetup-montevideo-2012/#comments</comments> <pubDate>Sat, 05 May 2012 17:57:29 +0000</pubDate> <dc:creator>Fernando</dc:creator> <category><![CDATA[Blog]]></category> <category><![CDATA[Eventos]]></category> <category><![CDATA[Ruby]]></category> <category><![CDATA[Ruby Meetup]]></category> <guid
isPermaLink="false">http://picandocodigo.net/?p=6662</guid> <description><![CDATA[Se acerca el segundo martes de Mayo, día de Ruby [...]]]></description> <content:encoded><![CDATA[<div
id="attachment_6538" class="wp-caption alignright" style="width: 310px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/04/ruby-meetup.jpg"><img
class="size-full wp-image-6538" title="Ruby Meetup" src="http://picandocodigo.net/wp-content/uploads/2012/04/ruby-meetup.jpg" alt="Ruby Meetup" width="300" height="225" /></a><p
class="wp-caption-text">Ruby Meetup</p></div><p>Se acerca el segundo martes de Mayo, día de <strong>Ruby Meetup</strong> en Montevideo. Vale la pena recordar que <strong>NO ES NECESARIO SABER RUBY</strong> para acercarse:</p><blockquote><p>La excusa es que entre todos nos pongamos un poco al día sobre distintas técnicas, herramientas, metodologías y lo que se nos ocurra. Aprender. Enseñar. Pero primordialmente: conocernos entre todos.</p></blockquote><p>Para este martes ya somos 18 anotados. Si están interesados en ir, <a
href="http://www.meetup.com/rubymvd/events/59310672/">anótense en la página del meetup</a>, así los contamos para la pizza y cerveza <img
src='http://picandocodigo.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>La vez pasada <a
title="Primer Ruby Meetup Montevideo 2012" href="http://picandocodigo.net/2012/primer-ruby-meetup-montevideo-2012/">estuvo muy buena</a>, hubo bastante gente. Esta vez parece que Marcos Albe (conocido también por ser co-organizador de los <a
href="http://www.meetup.com/The-Montevideo-MySQL-Meetup-Group/">MySQL Meetups</a>) va a dar una charla sobre optimización para ORMs en Ruby On Rails <img
src='http://picandocodigo.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /></p><p><strong>Fecha:</strong><br
/> Martes 8 de Mayo – 19:30 horas</p><p><strong>Lugar:</strong><br
/> CoworkingMVD (via <a
href="http://www.cuboxlabs.com">Cubox</a>)<br
/> Bulevar España 2529, esquina Libertad (<a
href="http://maps.google.com/maps?q=Bulevar+Espa%C3%B1a+2529+Esq.+Libertad.%2C+Montevideo">mapa</a>)</p> ]]></content:encoded> <wfw:commentRss>http://picandocodigo.net/2012/invitacion-ruby-meetup-montevideo-2012/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Reseña del Mozilla Developer Network Hack Day Montevideo 2012</title><link>http://picandocodigo.net/2012/mozilla-developer-network-hack-day-montevideo-2012-2/</link> <comments>http://picandocodigo.net/2012/mozilla-developer-network-hack-day-montevideo-2012-2/#comments</comments> <pubDate>Fri, 04 May 2012 12:00:11 +0000</pubDate> <dc:creator>Fernando</dc:creator> <category><![CDATA[Programación Web]]></category> <category><![CDATA[Eventos]]></category> <category><![CDATA[MDN Hack Day]]></category> <category><![CDATA[montevideo]]></category> <category><![CDATA[mozilla]]></category> <guid
isPermaLink="false">http://picandocodigo.net/?p=6619</guid> <description><![CDATA[El martes 24 se realizó el MDN Hack Day Montevideo [...]]]></description> <content:encoded><![CDATA[<div
id="attachment_6586" class="wp-caption alignleft" style="width: 222px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/04/afiche-mozilla.jpg"><img
class="size-medium wp-image-6586" title="Mozilla Developer Network Hack Day Montevideo 2012" src="http://picandocodigo.net/wp-content/uploads/2012/04/afiche-mozilla-212x300.jpg" alt="Mozilla Developer Network Hack Day Montevideo 2012" width="212" height="300" /></a><p
class="wp-caption-text">Mozilla Developer Network Hack Day Montevideo 2012</p></div><p>El martes 24 se realizó el <strong>MDN Hack Day Montevideo 2012</strong> en Café la diaria. El evento fue auspiciado por <a
href="http://www.mozilla.org">Mozilla</a>, <a
href="http://www.cuboxlabs.com">Cubox</a>, <a
title="la diaria" href="http://ladiaria.com.uy/">la diaria</a> y <a
title="BlueVia" href="https://bluevia.com/">BlueVia</a>.</p><p>Antes que nada, quiero aclarar que me reconozco fanboy de Mozilla, Firefox, y todo lo que hacen por la web. Podrán imaginar mi entusiasmo ante la visita de los Mozillianos y la realización de este evento. Pido disculpas si el post desborda en subjetividad <img
src='http://picandocodigo.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>Llegué con Diego (&#8220;el jefe&#8221;) a café la diaria bastante temprano. Cubox participó de la organización, así que estuvimos a eso de las 17:00 para llevar algunas cosas y ver en qué ayudar.</p><p>Ahí estaba <a
href="http://twitter.com/freshelectrons">Havi Hoffman</a>, a quien habíamos tenido el gusto de conocer más temprano en nuestro Coworking. Havi trabaja en <a
href="http://mozillalabs.com/">Mozilla Labs</a> y <a
href="https://webfwd.org/">WebFWD</a>, y mantiente la cuenta <a
href="http://twitter.com/mozlabs">@mozlabs</a>.</p><p>También estaba Shezmeen Prasad, Developer Events Manager de Mozilla. Ambas armando el registro y preparando todo para recibir a los asistentes. Pasados pocos minutos ya empezó a caer gente, a quienes se les recibía con stickers de Mozilla MDN y Firefox Aurora.</p><p><a
href="http://twitter.com/thunder">Dan Mills</a> fue el primer orador y dió su charla en español. El título de su charla fue <em>How to make passwords on your site a thing of the past</em>. En ella presentó una nueva iniciativa de Mozilla para la identidad de los usuarios en la web: <a
href="http://www.mozilla.org/en-US/persona/">Mozilla Persona</a>.</p><p>Este sistema se conocía anteriormente como <a
href="https://browserid.org/">BrowserID</a>, que pasó a ser ahora el nombre del protocolo de cara a los desarrolladores.</p><div
id="attachment_6639" class="wp-caption aligncenter" style="width: 310px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/05/mozilla-persona.png"><img
class="size-medium wp-image-6639" title="Mozilla Persona" src="http://picandocodigo.net/wp-content/uploads/2012/05/mozilla-persona-300x184.png" alt="Mozilla Persona" width="300" height="184" /></a><p
class="wp-caption-text">Mozilla Persona</p></div><p>Es un sistema muy interesante que pretende resolver varios problemas. Desde el punto de vista de los desarrolladores, evitarles reimplementar un sistema de autenticación en sus aplicaciones. Desde el punto de vista del usuario, evitarles tener que recordar nuevos nombres de usuario, así como no depender de servicios de terceros (Twitter, Facebook Connect, Google Accounts, etc.) para iniciar sesiones en distintos sitios. Lo único que se necesita es una dirección de correo electrónico válida.</p><p>El sistema vendría implementado nativo en Firefox, y la idea es que los navegadores que quieran lo implementen. Por el momento, si no se encuentra la característica en el navegador, usa un modal por JavaScript compatible con cualquier navegador para iniciar la sesión.</p><p>Desde el punto de vista de la privacidad, no tendremos que andar pasando más nuestra información desde un servicio a otro, sin saber con qué fin se usa.</p><p>Voy a seguir con atención Mozilla Persona. Resulta muy interesante, y espero se vaya implementando en cuantas plataformas y sitios sea posible. En estos momentos pueden probar esta nueva funcionalidad en los comentarios de este blog. Instalé el plugin <a
href="http://wordpress.org/extend/plugins/browserid/">Mozilla BrowserID</a> para que se puedan dejar comentarios con Persona <img
src='http://picandocodigo.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>Pueden leer más al respecto en los siguientes enlaces:</p><ul><li><a
href="http://identity.mozilla.com/">Blog de identidad en Mozilla</a></li><li><a
href="https://github.com/mozilla/id-specs">La especificación de BrowserID en GitHub</a></li><li><a
href="https://wiki.mozilla.org/Persona">Persona en la Wiki de Mozilla</a></li></ul><p>La siguiente charla la dió <a
href="http://twitter.com/mixedpuppy">Shane Caraveo</a> sobre <strong>Mozilla Marketplace</strong>, un mercado de aplicaciones web. La idea es crear un ecosistema abierto para desarrolladores y consumidores, incluyendo un mercado operado por Mozilla. Está basado en estándares web como HTML5, CSS y JavaScript junto a APIs diseñados por Mozilla.</p><div
id="attachment_6644" class="wp-caption aligncenter" style="width: 225px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/05/mozilla-marketplace.png"><img
class="size-full wp-image-6644" title="Mozilla Marketplace" src="http://picandocodigo.net/wp-content/uploads/2012/05/mozilla-marketplace.png" alt="Mozilla Marketplace" width="215" height="52" /></a><p
class="wp-caption-text">Mozilla Marketplace</p></div><p>Se busca evitar el desarrollo nativo para las plataformas propietarias (privativas) como son Android, iOS o Windows.  Aplicaciones HTML5 aseguran la libertad de los desarrolladores y usuarios así como la compatibilidad a lo largo de las distintas plataformas. Mozilla comparte la idea de que la web es algo universal, abierta y estándar, competitiva y mayor que cualquier proveedor.</p><p>En la presentación, Shane hizo una demostración donde ejecutaba aplicaciones web de un borrador funcional del mercado. Incluso mostró como una aplicación se instalaba desde el mercado web, y se ejecutaba como una aplicación más del sistema.</p><p>También espero que prospere esta gran iniciativa. Si bien ya existen varios mercados del estilo, cada uno es cerrado en su plataforma. Es importante ser conciente de los objetivos de cada uno, creado por empresas con fines comerciales y no por una fundación sin fines de lucro como Mozilla. Ojalá de acá a un tiempo las Apps de tecnologías estándar de Mozilla ocupen una parte importante del mercado, permitiendo el crecimiento de opciones más sanas para los desarrolladores y consumidores.</p><ul><li>En <a
href="https://wiki.mozilla.org/MozCampLATAM2012/ProposedTalks/apps">este enlace</a> de la Wiki de Mozilla pueden encontrar más información.</li><li>La presentación que dió Shane <a
href="http://dl.dropbox.com/u/9799133/mozcamp-apps-v2-es.pdf">en español</a> y <a
href="http://dl.dropbox.com/u/9799133/mozcamp-apps-v2-en.pdf">en inglés</a>.</li><li><a
href="https://www.mozilla.org/en-US/apps/">Sitio web de Mozilla Marketplace</a></li><li><a
href="https://developer.mozilla.org/en-US/apps">MDN: Mozilla Apps para desarrolladores</a></li></ul><p>La siguiente presentación estuvo a cargo de <a
href="http://twitter.com/davilagrau">Andres Leonardo Martinez Ortiz</a>. Representante de BlueVia, comentó sobre el programa para desarrolladores de BlueVia: platforma e iniciativas. BlueVia provee una serie de APIs implementadas para interactuar por ejemplo con el envío de SMS aunque no está orientado exclusivamente al mercado de móviles.</p><div
id="attachment_6648" class="wp-caption alignright" style="width: 235px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/05/support-all.jpg"><img
class="size-medium wp-image-6648" title="SUPPORT ALL THE RESOLUTIONS!!1!" src="http://picandocodigo.net/wp-content/uploads/2012/05/support-all-225x300.jpg" alt="SUPPORT ALL THE RESOLUTIONS!!1!" width="225" height="300" /></a><p
class="wp-caption-text">SUPPORT ALL THE RESOLUTIONS!!1!</p></div><p>La cuarta charla de la noche estuvo a cargo de <a
href="http://mcdlr.com">Nicolás Barrera</a>, colega cuboxer conocido en Internet como <a
href="http://twitter.com/DrummerHead">DrummerHead</a>. Drummer es diseñador de aplicaciones y desarrollador front-end en Cubox, y nos habló sobre <em>Diseño Web Responsivo</em>.</p><p>El DWR (como lo voy a llamar en lo que queda de este post) se adapta a la pantalla del usuario, sin importar el tamaño o dispositivo, permitiendo una navegación y accesibilidad coherente a lo largo de las distintas formas de acceder a él (espero haberme expresado bien, no he dormido mucho&#8230;).</p><p>En la presentación explicó y demostró cómo implementar un diseño así de cero. Comentó el tag meta viewport para decirle a los navegadores móviles cómo comportarse, explica layout fluído, porcentajes a ems, y Media Queries.</p><ul><li><a
href="http://mcdlr.com/rwd/">Presentación de DWR</a></li><li><a
href="http://mcdlr.com/responsive-web-design-presentation/">Video de la presentación en Wroclaw, Polonia en Marzo de 2012.</a></li><li>Foto de DrummerHead <a
href="http://www.flickr.com/photos/freshelectrons/7140212777/">por Havi Hoffman</a>.</li></ul><p>Después de esto, fuimos invitados con unas pizzas, y hubo un breve intervalo para aprovechar a conversar, alimentarse y tomar algo en la barra del café la diaria.</p><p>A la vuelta de la comida, se dió lugar a las <strong>Lightning Talks</strong>. Las Lightning talks son charlas de unos poco minutos. Hubo un pizarrón durante todo el evento para anotar charlas que los asistentes quisieran dar.</p><div
id="attachment_6658" class="wp-caption aligncenter" style="width: 310px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/05/mozilla-derby.jpg"><img
class="size-full wp-image-6658" title="Mozilla Dev Derby" src="http://picandocodigo.net/wp-content/uploads/2012/05/mozilla-derby.jpg" alt="Mozilla Dev Derby" width="300" height="198" /></a><p
class="wp-caption-text">Mozilla Dev Derby</p></div><p><a
href="https://twitter.com/tuxie_">Álvaro Mouriño</a> fue el primero en presentar, y nos habló del <a
href="https://developer.mozilla.org/en-US/demos/devderby">Mozilla Dev Derby</a>. Se trata de un concurso de Mozilla para crear demos de lo que se puede hacer con tecnologías web abiertas. Cada mes se decide un nuevo tema (actualmente hay uno de Websockets) y se eligen 3 ganadores. Los premios son un teléfono Android, un bolso para laptop y una camiseta de MDN. Álvaro ya ha participado de esta iniciativa, y <a
href="http://hacks.mozilla.org/2011/11/congrats-to-our-october-dev-derby-winners/">ganó el segundo premio</a> en el mes de Octubre de 2011.</p><p>Después pasó a hablar Evan Henshaw-Plath (&#8220;el otro jefe&#8221;), que habló sobre Software Libre. De como todo lo usamos y es muy fácil desarrollarlo y colaborar en el desarrollo de software libre. También comentó como en Cubox desarrollamos mucho software libre <img
src='http://picandocodigo.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /></p><p>El siguiente orador fui yo&#8230;</p><p>Mi charla se titula <em>La web como herramienta social</em>. Hacía mucho tiempo que no hablaba en público así que estaba un poco nervioso, pero creo que fue bastante bien. El objetivo de la charla fue intentar generar conciencia en los programadores hacia la web como herramienta de cambio social. Los 3 frentes que considero importante en esto son el Software Libre, la Web Abierta y los Datos Abiertos.</p><p>Así expliqué qué significa cada uno de estos 3 conceptos y las ventajas que trae desarrollar teniéndolos como objetivo y pilares. Me explayé más en la parte de Datos Abiertos, que es con la que vengo más involucrado desde <a
title="Qué nos dejó Desarrollando América Latina 2011" href="http://picandocodigo.net/2011/que-nos-dejo-desarrollando-america-latina-2011/">Desarrollando América Latina</a>, en parte buscando más adeptos para desarrollar en base a datos abiertos.</p><p>Para armar la presentación usé <a
href="https://github.com/schacon/showoff">ShowOff</a>, que no conocía hasta el día antes de tener que dar la charla <img
src='http://picandocodigo.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> Es algo así como un motor de presentaciones armado en una aplicación web sobre Sinatra. Está muy bueno y práctico.</p><ul><li><a
href="http://mdn-2012.heroku.com">Ver la presentación</a></li><li><a
href="https://github.com/picandocodigo/charla-mdn-2012-mvd/">Código fuente de la presentación</a></li></ul><div
id="attachment_6650" class="wp-caption alignright" style="width: 260px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/05/b2g.jpg"><img
class="size-full wp-image-6650" title="Boot to Gecko" src="http://picandocodigo.net/wp-content/uploads/2012/05/b2g.jpg" alt="Boot to Gecko" width="250" height="355" /></a><p
class="wp-caption-text">Boot to Gecko</p></div><p>Para cerrar el evento, pasó a presentar <a
href="https://twitter.com/#!/robertnyman">Robert Nyman</a> con <em>JavaScript APIs &#8211; The Web is the Platform</em>. La charla arrancó bastante divertida, Robert se presentó como Sueco y comentó algunas particularidades de la gente de Suecia.</p><p>Mostró bastante código y comentó sobre nuevas tecnologías web en las que se está trabajando en Mozilla: <a
href="https://wiki.mozilla.org/Gecko:FullScreenAPI">Fullscreen API</a> (pantalla completa desde JavaScript), acceso a cámaras, <a
href="https://wiki.mozilla.org/Platform/Features/WebRTC">WebRTC</a> (capacidad de comunicación en tiempo real a través de APIs JavaScript), <a
href="https://developer.mozilla.org/en/API/Pointer_Lock_API">Pointer Lock API</a>, <a
href="https://developer.mozilla.org/en/IndexedDB">IndexedDB</a>, <a
href="http://www.w3.org/TR/battery-status/">Battery API</a>.</p><p>Otro proyecto bien interesante en el que se viene trabajando es <a
href="http://www.mozilla.org/en-US/b2g/">Boot To Gecko</a> (B2G). Es un sistema operativo completo e independiente para la web abierta.</p><p>Está formado por <em>Gaia</em> &#8211; la interfaz de usuario escrita completamente en HTML, CSS y JavaScript. Su interacción con el sistema operativo se realiza a través de Open Web APIs implementados por <em>Gecko</em>. Gecko es el runtime de aplicación, implementando los estándares abiertos para HTML, CSS y JS. El sistema operativo a mas bajo nivel se denomina <em>Gonk</em>, un kernel linux con una capa de abstracción HAL y varias bibliotecas open source.</p><p>Gonk es como una mini-distribución de linux, y es un port más al que apunta Gecko, así como hay un Gecko para OS X, y uno para Android. Al tener control sobre Gonk, B2G expone interfaces a Gecko que no son accesibles en otros sistemas. Por ejemplo el acceso a la pila de telefonía y pantalla.</p><p>También entre otras cosas hizo mención a <a
href="http://affiliates.mozilla.org/link/banner/15322"><strong>Firefox Aurora</strong></a>.</p><div
id="attachment_6655" class="wp-caption alignleft" style="width: 142px"><a
href="http://affiliates.mozilla.org/link/banner/15322"><img
class="size-full wp-image-6655 " title="Firefox Aurora" src="http://picandocodigo.net/wp-content/uploads/2012/05/firefox-aurora.png" alt="Firefox Aurora" width="132" height="143" /></a><p
class="wp-caption-text">Firefox Aurora</p></div><p>Aurora es la versión pre-beta de Firefox. En estos momentos corresponde a lo que eventualmente será Firefox 14. Desde el evento instalé Aurora en mi computadora con ArchLinux y la verdad que funciona muy bien. Noté una mejora en la reproducción de videos HTML 5, además de no haber sufrido ninguna explosión del navegador hasta ahora y en general lo siento mas rápido en todo.</p><p>También comentar que los plugins siguen funcionando de lo mas bien. Solo tuve que instalar una versión alfa de Firebug (1.10a7) porque la 1.9 no funcionaba bien.</p><p>El objetivo de este build de Firefox es tener un primer vistazo a las nuevas herramientas de desarrollo, características de seguridad y nuevas tecnologías HTML5 y web en general.</p><ul><li><a
href="http://www.slideshare.net/robnyman/javascript-apis-the-web-is-the-platform-mdn-hack-day-montevideo">Presentación de Robert en Slideshare</a></li></ul><p>Y así terminó un excelente evento de la mano de Mozilla y demás organizadores. Para mi fue un honor ser parte del evento tanto dando una charla junto a gente tan genial (que está haciendo cosas tan increíbles por el progreso de la web), como ayudando con la organización y difusión.</p><p>Quedamos todos muy contentos y agradecidos de haber tenido a los Mozillianos por estos lados, y los esperamos para una próxima visita <img
src='http://picandocodigo.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><ul><li><a
href="http://www.flickr.com/photos/freshelectrons/sets/72157629959712419/with/7140352351/">Algunas fotos de la gira por Havi</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://picandocodigo.net/2012/mozilla-developer-network-hack-day-montevideo-2012-2/feed/</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>Actualizado UserAgent-Spy después de 2 años&#8230;</title><link>http://picandocodigo.net/2012/actualizado-useragent-spy/</link> <comments>http://picandocodigo.net/2012/actualizado-useragent-spy/#comments</comments> <pubDate>Wed, 02 May 2012 12:00:55 +0000</pubDate> <dc:creator>Fernando</dc:creator> <category><![CDATA[WordPress]]></category> <category><![CDATA[plugins wordpress]]></category> <category><![CDATA[useragent-spy]]></category> <category><![CDATA[wordpress]]></category> <guid
isPermaLink="false">http://picandocodigo.net/?p=6624</guid> <description><![CDATA[Además de List Category Posts, también desarrollé el plugin para [...]]]></description> <content:encoded><![CDATA[<div
id="attachment_1298" class="wp-caption alignright" style="width: 224px"><a
href="http://picandocodigo.net/wp-content/uploads/2008/08/gnu-wordpress.png"><img
class="size-full wp-image-1298" title="WordPress" src="http://picandocodigo.net/wp-content/uploads/2008/08/gnu-wordpress.png" alt="" width="214" height="64" /></a><p
class="wp-caption-text">WordPress</p></div><p>Además de <a
href="http://picod.net/lcp"><strong>List Category Posts</strong></a>, también desarrollé el plugin para WordPress <a
href="http://wordpress.org/extend/plugins/useragent-spy/"><strong>UserAgent-Spy</strong></a>. Es el plugin que uso para mostrar los navegadores, sistemas operativos y dispositivos de los usuarios en los comentarios.</p><p>Hacía tiempo que quería retomar su desarrollo, pero siempre lo iba dejando de lado por otras cosas. Finalmente me decidí y volví a él. Tengo que admitir que me costó bastante.</p><p>En primer lugar, al igual que List Category Posts, este plugin empezó de un script super básico a crecer poco a poco. El modelo de crecimiento fue al estilo &#8220;monstruo de Frankestein&#8221;, donde iba metiéndole código por un lado y por otro para alcanzar distintas funcionalidades. El resultado final fue obviamente el esperado: <strong>¡UN MONSTRUO!</strong></p><div
id="attachment_6629" class="wp-caption alignright" style="width: 281px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/05/wordpress-monster.png"><img
class="size-full wp-image-6629" title="Frankenstein WordPress" src="http://picandocodigo.net/wp-content/uploads/2012/05/wordpress-monster.png" alt="Frankenstein WordPress" width="271" height="250" /></a><p
class="wp-caption-text">Frankenstein WordPress</p></div><p>Mirar el código de hace un buen tiempo me hizo pensar que o bien he aprendido mucho en este tiempo, o era un programador horrible en ese momento. En verdad no son mutuamente excluyentes, así que puedo aceptar que ambas afirmaciones son ciertas. Si bien ahora sigo pensando que hay miles de mejoras para hacerle al código, aprolijé bastante por todos lados.</p><p>También intenté documentar un poco más. No entendía mi propio código, y tenía ganas de agarrar la máquina del tiempo, buscarme en el momento en que  escribí esas cosas, y pegarme una patada voladora atrás de la oreja.</p><p>En fin, después de un buen rato de pelea, salió a la luz <a
href="http://wordpress.org/extend/plugins/useragent-spy/changelog/"><strong>UserAgent-Spy 1.2</strong></a>. Para el usuario final hay pocos cambios:</p><ul><li>Ahora detecta dispositivos Apple, Blackberry y HTC. Al haber retomado, espero poder agregar más dispositivos e información en breve.</li><li>Detecta PCLinuxOS. Solo porque quería agregar al menos un sistema operativo más. PCLinuxOS está mencionado en los comentarios de la <a
href="http://picandocodigo.net/programacion/wordpress/useragent-spy-wordpress-plugin-espanol/#comment-16789">página del plugin</a>, así que lo agregué.</li></ul><p>Los cambios más importantes están a nivel de código, ahora se entiende un poco más. Por otro lado, voy a hacer lo mismo que hice con List Category Posts: continuar el desarrollo <a
href="https://github.com/picandocodigo/useragent-spy">en GitHub</a>.</p><p>Como plataforma para desarrollo colaborativo de software open source, GitHub es la solución ideal. Ya he recibido Pull Requests de otros usuarios en LCP, y el sistema de tickets para bugs, pedidos de nuevas características, etc. es muy bueno. Así que de ahora en más voy a llevar el desarrollo desde ahí, exportando versiones nuevas al repositorio SVN de WordPress.</p><p><strong>Comentario aparte:</strong> <em>que viejo se siente Subversion</em>.</p><p>Se sintió bastante raro ver que la última modificación al código había sido en enero del 2010. No parece haber pasado tanto tiempo. El plugin ya tiene 4 años de desarrollado, y desde entonces siempre estuvo instalado acá en Picando Código y otros de mis blogs. Por eso no me hubiera imaginado que pasaría tanto tiempo sin actualizarlo, y más importante, que volvería a meterle mano. Pero ahora que &#8220;volví a la programacíon&#8221; mi idea es no dejarlo tan abandonado nuevamente.</p><p>Si quieren ayudarme con el desarrollo del plugin, pueden usarlo, probar navegadores, sistemas operativos y dispositivos distintos que no sean detectados, e informarme. Cualquier aporte de código también es bienvenido, y esto resulta mucho mas fácil teniéndolo en GitHub. Espero tener nuevas versiones más seguido, y no que la próxima actualizarlo sea en 2014 <img
src='http://picandocodigo.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://picandocodigo.net/2012/actualizado-useragent-spy/feed/</wfw:commentRss> <slash:comments>11</slash:comments> </item> <item><title>eduJAM! 2012 &#8211; Montevideo, Uruguay</title><link>http://picandocodigo.net/2012/edujam-2012-montevideo-uruguay/</link> <comments>http://picandocodigo.net/2012/edujam-2012-montevideo-uruguay/#comments</comments> <pubDate>Thu, 26 Apr 2012 12:00:05 +0000</pubDate> <dc:creator>Fernando</dc:creator> <category><![CDATA[Eventos]]></category> <category><![CDATA[eduJAM!]]></category> <category><![CDATA[montevideo]]></category> <category><![CDATA[OLPC - Plan Ceibal]]></category> <guid
isPermaLink="false">http://picandocodigo.net/?p=6605</guid> <description><![CDATA[Difundo información del eduJAM! 2012, un evento bastante interesante enfocado a [...]]]></description> <content:encoded><![CDATA[<p>Difundo información del <a
href="http://edujam2012.blogspot.com/"><strong>eduJAM! 2012</strong></a>, un evento bastante interesante enfocado a desarrolladores:</p><div
id="attachment_6608" class="wp-caption aligncenter" style="width: 610px"><a
href="http://edujam2012.blogspot.com/"><img
class="size-full wp-image-6608 " title="eduJAM! 2012" src="http://picandocodigo.net/wp-content/uploads/2012/04/edujam-2012.jpg" alt="eduJAM! 2012" width="600" height="149" /></a><p
class="wp-caption-text">eduJAM! 2012</p></div><p><strong>Será los días Viernes 11 y Sábado 12 de Mayo en Montevideo en el Complejo de las Telecomunicaciones de ANTEL</strong></p><p>El principal objetivo del encuentro es fortalecer la comunidad de desarrolladores de software educativo libre, especialmente en América del Sur pero también con el objetivo de incrementar los esfuerzos de colaboración con el resto del mundo. El encuentro pretende juntar desarrolladores relacionados con la plataforma Sugar y despliegues basados en el modelo OLPC, pero también otras plataformas y despliegues que usen software educativo libre, para intercambiar conocimientos, discutir estrategias, planificar proyectos y &#8220;hacking&#8221; generalizado.</p><p><strong>Objetivos Principales</strong></p><ul><li>Foco en desarrolladores: No nos desentendemos de los aspectos educacionales, pero como desarrolladores enfrentamos grandes desafíos específicos y este summit será una instancia de trabajo y de reflexión.</li><li>Trascender OLPC y Sugar: La comunidad de desarrolladores va más alla de OLPC y Sugar, y esta podría ser una oportunidad de acercarnos con &#8220;organizaciones no-olpc&#8221;.</li><li>Foco en America del Sur: comunicarnos con desarrolladores de todo el mundo que puedan asistir al evento y en conjunto podamos generar soluciones de manera colaborativa.</li></ul><p><strong>A quién está dirigido</strong></p><ul><li>Programadores de Sugar</li><li>Programadores de SW libre educativo en general</li><li>Equipos técnicos de deployments</li><li>Todos los que hacen posible el proceso de desarrollo: project managers, artistas y productores de iconografías para software o comunidad, testers, traductores</li><li>Docentes interesados en promover nexos entre los aspectos educativos y la comunidad de desarrolladores.</li><li>Estudiantes y todo aquel que quiera participar activamente de esta comunidad abierta.</li></ul><p><strong>Lugar del Encuentro: </strong><strong>Complejo de las Telecomunicaciones de ANTEL</strong></p><p><strong>Paraguay y Panamá, Montevideo, Uruguay.</strong></p><p>También es importante agregar que este año estará enmarcado en la Semana del 1 a 1, la cual tendrá también las siguientes actividades:</p><blockquote
dir="ltr"><p>a)   <a
href="http://1.edu.flordeceibo.edu.uy/"><strong>Apropiación y Desarrollo: Modelos 1 a 1</strong></a> &#8211; Organizado <a
href="http://flordeceibo.edu.uy/">Flor de Ceibo</a> - Lunes 7 y Martes 8 de mayo: EL evento se propone discutir la experiencia de Uruguay en torno al uso de TIC a partir de la implementación del modelo 1 a 1 en la educación y en ámbitos comunitarios. Reunirá diversos actores nacionales e internacionales vinculando investigación y experiencias innovadoras en la temática.</p><p>b)   <a
href="http://cutour.blogspot.com/"><strong>CONOZCO URUGUAY</strong></a> _ organizado por <a
href="http://rapceibal.ning.com/">RAP CEIBAL</a> &#8211; Miércoles 9 y Jueves 10 de mayo: Los asistentes también tendrán la oportunidad de conocer un conjunto de actividades adicionales en diferentes partes del país para conocer de cerca la experiencia CEIBAL en las escuelas públicas. El evento será del tipo visita a algunas escuelas que nos abrirán las puertas para mostrarnos experiencias de trabajo e interacutarán con los visitantes para poder compartir unas horas juntos.</p><p>c)   <a
href="http://edujam2012.blogspot.com/p/premios-terron-2012.html"><strong>Entrega de Premios &#8220;Terrón 2012&#8243;</strong></a> &#8211; el Sábado 12 de Mayo: Premio de estímulo y reconocimiento a programadores y comunidad en general que han aportado al crecimiento de la plataforma Sugar.</p></blockquote><p>De este modo, estamos promoviendo un espacio de cohesión para la comunidad de desarrolladores de software libre educativo, con especial énfasis en la plataforma Sugar y sus derivados, como también en otros ámbitos.</p><p>Por último pero no menos importante, los días después del encuentro, desde el 13 y 14 de Mayo, se llevará a cabo el <a
href="http://edujam2012.blogspot.com/p/code-sprint.html">&#8220;Sugar Code Sprint&#8221;</a>, un encuentro de desarrolladores donde se trabajará en la programación de algunas de las necesidades técnicas más importantes y urgentes que se planteen en el encuentro.</p><p>Ante cualquier inquietud, no dude en escribirnos a: <a
href="mailto:edujam@googlegroups.com">edujam@googlegroups.com</a>en donde la comisión de organización del evento le responderá a la brevedad.</p><p>Mas información e inscripciones, en nuestro sitio web <a
href="http://edujam2012.ceibaljam.org/">http://edujam2012.ceibaljam.org/</a></p><p>Contactos:</p><p>E-Mail:   <a
href="mailto:edujam@googlegroups.com">edujam@googlegroups.com</a><br
/> Facebook:   <a
href="http://www.facebook.com/Edujam2012/">http://www.facebook.com/Edujam2012/</a><br
/> Twitter:   <a
href="https://twitter.com/#%21/EduJam2012/">https://twitter.com/#!/EduJam2012/</a></p> ]]></content:encoded> <wfw:commentRss>http://picandocodigo.net/2012/edujam-2012-montevideo-uruguay/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Nyan Cat RSpec Formatter</title><link>http://picandocodigo.net/2012/nyan-cat-rspec-formatter/</link> <comments>http://picandocodigo.net/2012/nyan-cat-rspec-formatter/#comments</comments> <pubDate>Wed, 25 Apr 2012 12:00:28 +0000</pubDate> <dc:creator>Fernando</dc:creator> <category><![CDATA[Ruby]]></category> <category><![CDATA[Nyan Ca]]></category> <category><![CDATA[Rails]]></category> <category><![CDATA[Rspec]]></category> <guid
isPermaLink="false">http://picandocodigo.net/?p=6549</guid> <description><![CDATA[RSpec permite ver la salida en la línea de comando [...]]]></description> <content:encoded><![CDATA[<p><strong>RSpec</strong> permite ver la salida en la línea de comando con formateadores personalizados. Éstos reciben mensajes en eventos como example_group_started, example_passed, y example_failed.</p><p>Cuando puedo uso <a
title="Nyan Cat RSpec Formatter" href="https://github.com/mattsears/nyan-cat-formatter">Nyan Cat Formatter</a>, un formateador con Nyan Cat que va dejando un camino de arcoiris a medida que se ejecutan los tests. Señala con asteriscos rojos los ejemplos que fallan y con signos de + los specs pendientes.</p><p>Funciona con RSpec 1.3 y RSpec 2.</p><div
id="attachment_6550" class="wp-caption aligncenter" style="width: 610px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/04/nyancat.gif"><img
class="size-full wp-image-6550" title="Nyan  Cat Formatter" src="http://picandocodigo.net/wp-content/uploads/2012/04/nyancat.gif" alt="Nyan  Cat Formatter" width="600" height="330" /></a><p
class="wp-caption-text">Nyan Cat Formatter</p></div><p>Es mucho más divertido mirar al Nyan Cat y todos estos colores que los asteriscos verdes que deja por defecto RSpec.</p><p>Para usarlo por defecto en mi proyecto Rails, agregué la gema &#8220;nyan-cat-formatter&#8221; a mi ambiente de test y creé el archivo .rspec con esta información:</p><div
class="codigo"><pre>--colour
--format NyanCatFormatter</pre></div> ]]></content:encoded> <wfw:commentRss>http://picandocodigo.net/2012/nyan-cat-rspec-formatter/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>The Humble Botanicula Debut &#8211; Juegos sin DRM multiplataforma :)</title><link>http://picandocodigo.net/2012/the-humble-botanicula-debut-juegos-sin-drm-multiplataforma/</link> <comments>http://picandocodigo.net/2012/the-humble-botanicula-debut-juegos-sin-drm-multiplataforma/#comments</comments> <pubDate>Fri, 20 Apr 2012 13:41:55 +0000</pubDate> <dc:creator>Fernando</dc:creator> <category><![CDATA[Videojuegos/Nintendo]]></category> <category><![CDATA[Humble Bundle]]></category> <category><![CDATA[juegos]]></category> <category><![CDATA[Juegos GNU/Linux]]></category> <guid
isPermaLink="false">http://picandocodigo.net/?p=6589</guid> <description><![CDATA[Humble Bundle presenta un nuevo paquete de videojuegos para PC [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://www.humblebundle.com/">Humble Bundle</a> presenta un nuevo <strong>paquete de videojuegos</strong> para PC con <strong>Mac OS X</strong>, <strong>GNU/Linux</strong> y <strong>Windows</strong> al precio que elijas. En esta ocasión se trata del debut mundial de la aventura gráfica &#8220;point and click&#8221; <strong>Botanicula</strong> del estudio Amanita Design.</p><div
id="attachment_6595" class="wp-caption aligncenter" style="width: 613px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/04/humble-botanicula-debut1.png"><img
class="size-full wp-image-6595" title="Humble Botanicula Debut" src="http://picandocodigo.net/wp-content/uploads/2012/04/humble-botanicula-debut1.png" alt="Humble Botanicula Debut" width="603" height="249" /></a><p
class="wp-caption-text">Humble Botanicula Debut</p></div><p>Otros dos juegos de aventura gráfica de <strong>Amanita Design</strong> se incluyen en el paquete: <strong>Samorost 2</strong>, presente en el primer <a
title="Paquete independiente humilde: Juegos multiplataforma al precio que elijas" href="http://picandocodigo.net/2010/paquete-independiente-humilde-juegos-multiplataforma-precio-elegido/">Humble Indie Bundle</a> y <strong>Machinarium</strong>, que también estuvo en el <a
title="Vuelve el Humble Indie Bundle: Videojuegos independientes al precio que elijas" href="http://picandocodigo.net/2010/vuelve-el-humble-indie-bundle-videojuegos-independientes-al-precio-que-elijas/">Humble Indie Bundle 2</a>. Pagando un precio mayor al promedio, también recibimos la película <strong>Kooky -</strong>con dirección de arte de <em>Jakob Dvorský</em>, fundador del estudio Amanita- y <strong>Windosill!</strong>, un juego de puzzles y arte de <strong>Vectorpark</strong>.</p><p>Las <strong>condiciones</strong>:</p><ul><li><strong>Paga lo que quieras.</strong></li><li><strong>Los juegos son multiplataforma:</strong> funcionan en Mac, Windows y Linux.</li><li><strong>Puedes donar a la caridad:</strong> Uno elige cómo dividir el pago entre los desarrolladores, Humble Bundle y World Land Trust, una caridad de conservación del hábitat.</li><li><strong>Los juegos NO TIENEN DRM.</strong></li></ul><div
id="attachment_6596" class="wp-caption aligncenter" style="width: 310px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/04/humble-botanicula-debut.jpg"><img
class="size-medium wp-image-6596" title="Humble Botanicula Debut" src="http://picandocodigo.net/wp-content/uploads/2012/04/humble-botanicula-debut-300x246.jpg" alt="Humble Botanicula Debut" width="300" height="246" /></a><p
class="wp-caption-text">Humble Botanicula Debut</p></div><p>Les dejo el video presentación, con un poco de gameplay. ¡Visiten <a
href="https://www.humblebundle.com/">Humble Bundle</a> para comprar su paquete!</p><p><iframe
width="500" height="281" src="http://www.youtube.com/embed/6_0s65bYZmM?fs=1&#038;feature=oembed" frameborder="0" allowfullscreen></iframe></p> ]]></content:encoded> <wfw:commentRss>http://picandocodigo.net/2012/the-humble-botanicula-debut-juegos-sin-drm-multiplataforma/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Mozilla Developer Network Hack Day Montevideo 2012</title><link>http://picandocodigo.net/2012/mozilla-developer-network-hack-day-montevideo-2012/</link> <comments>http://picandocodigo.net/2012/mozilla-developer-network-hack-day-montevideo-2012/#comments</comments> <pubDate>Thu, 19 Apr 2012 18:40:09 +0000</pubDate> <dc:creator>Fernando</dc:creator> <category><![CDATA[Eventos]]></category> <category><![CDATA[MDN Hack Day]]></category> <category><![CDATA[mozilla]]></category> <guid
isPermaLink="false">http://picandocodigo.net/?p=6585</guid> <description><![CDATA[Ya está disponible la agenda del evento de Mozilla Developer [...]]]></description> <content:encoded><![CDATA[<p>Ya está disponible la agenda del evento de <strong>Mozilla Developer Network en Montevideo</strong>. Voy a estar participando con una charla titulada <em>&#8220;Cambio social a través de la web&#8221;</em>.</p><div
id="attachment_6586" class="wp-caption aligncenter" style="width: 606px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/04/afiche-mozilla.jpg"><img
class="size-full wp-image-6586" title="Mozilla Developer Network Hack Day Montevideo 2012" src="http://picandocodigo.net/wp-content/uploads/2012/04/afiche-mozilla.jpg" alt="Mozilla Developer Network Hack Day Montevideo 2012" width="596" height="843" /></a><p
class="wp-caption-text">Mozilla Developer Network Hack Day Montevideo 2012</p></div><p><strong>Información:</strong><br
/> <strong>Fecha:</strong> 24 de abril de 2012<br
/> <strong>Ubicación:</strong> Cafe la Diaria, Soriano 770 ( <a
href="http://g.co/maps/h9gnj">http://g.co/maps/h9gnj</a> )</p><p><strong>Agenda:</strong></p><p>17:30: Apertura de puertas, inscripciones para lightning talks<br
/> 18:15: Introducción<br
/> 18:30: How to make passwords on your site a thing of the past &#8211; Dan Mills <a
href="http://twitter.com/@thunder">@thunder</a><br
/> 19:00: Going Social &#8211; new Social APIs in the browser Shane Caraveo <a
href="http://twitter.com/mixedpuppy">@mixedpuppy</a><br
/> 19:30: BlueVia developers program: platform and initiatives &#8211; Andres Leonardo Martinez Ortiz <a
href="http://twitter.com/davilagrau">@davilagrau</a><br
/> 20:00: Responsive Web Design &#8211; Nicolas Barrera <a
href="http://twitter.com/DrummerHead">@DrummerHead</a> (Cubox)<br
/> 20:30: break<br
/> 20:45: lightning talks<br
/> 21:00: Social Change through the web &#8211; Fernando Briano <a
href="http://twitter.com/picandocodigo">@picandocodigo</a><br
/> 21:30: JavaScript APIs &#8211; The web is the platform &#8211; Robert Nyman <a
href="http://twitter.com/robertnyman">@robertnyman</a><br
/> 22:00: Cierre, premios y cerveza</p><p>Pueden inscribirse al evento en <a
href="https://eventioz.com/events/mdn-hack-day-montevideo-developer-evening">eventioz</a>. ¡Nos vemos ahí!</p> ]]></content:encoded> <wfw:commentRss>http://picandocodigo.net/2012/mozilla-developer-network-hack-day-montevideo-2012/feed/</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>Primer Ruby Meetup Montevideo 2012</title><link>http://picandocodigo.net/2012/primer-ruby-meetup-montevideo-2012/</link> <comments>http://picandocodigo.net/2012/primer-ruby-meetup-montevideo-2012/#comments</comments> <pubDate>Fri, 13 Apr 2012 12:00:30 +0000</pubDate> <dc:creator>Fernando</dc:creator> <category><![CDATA[Eventos]]></category> <category><![CDATA[Ruby]]></category> <category><![CDATA[Ruby Meetup]]></category> <guid
isPermaLink="false">http://picandocodigo.net/?p=6537</guid> <description><![CDATA[El martes pasado se realizó el Ruby Meetup Montevideo. Organizado [...]]]></description> <content:encoded><![CDATA[<div
id="attachment_6538" class="wp-caption alignright" style="width: 310px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/04/ruby-meetup.jpg"><img
class="size-full wp-image-6538" title="Ruby Meetup" src="http://picandocodigo.net/wp-content/uploads/2012/04/ruby-meetup.jpg" alt="Ruby Meetup" width="300" height="225" /></a><p
class="wp-caption-text">Ruby Meetup</p></div><p>El martes pasado se realizó <a
title="Reunión Grupo Usuarios Ruby" href="http://picandocodigo.net/2012/invitacion-reunion-grupo-usuarios-ruby/">el Ruby Meetup Montevideo</a>. Organizado por <a
href="http://cuboxlabs.com">Cubox</a>, la invitación estaba abierta para desarrolladores de cualquier tecnología, sin importar el conocimiento que tuvieran de <strong>Ruby</strong>.</p><p>Pueden ver algunas fotos y leer al respecto en el post que escribí en el blog de Cubox: <a
href="http://blog.cuboxlabs.com/blog/2012/04/11/cubox-brings-back-ruby-meetups-to-montevideo/">Cubox brings back Ruby meetups to Montevideo</a>.</p><p>Hubo muy buena asistencia, de 29 inscriptos creo que fueron todos. Había gente que conocía Ruby desde hace muy poco, lo que no impidió (asumo) que se llevaran algo de la reunión.</p><p>El evento arrancó en la sala de reuniones del Coworking con <a
title="Bruno Aguirre" href="http://elcuervo.co/">elCuervo</a> haciendo una presentación de <a
title="Cuba" href="http://soveran.github.com/cuba/">Cuba</a>, un microframework para desarrollo web en Ruby. Es un framework bien minimalista, podemos probarlo haciendo algo tan básico como esto:</p><p><strong>index.rb</strong></p><div
class="wp_syntax"><div
class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'cuba'</span>
&nbsp;
Cuba.<span style="color:#9900CC;">define</span> <span style="color:#9966CC; font-weight:bold;">do</span>
  on root <span style="color:#9966CC; font-weight:bold;">do</span>
    res.<span style="color:#9900CC;">write</span> <span style="color:#996600;">&quot;Hola mundo&quot;</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div><p><strong>config.ru</strong></p><div
class="wp_syntax"><div
class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">&quot;./index&quot;</span>
&nbsp;
run Cuba</pre></div></div><p>Paso siguiente ejecutar <code>rackup</code> y ver el resultado en <a
href="http://localhost:9292">localhost:9292</a>.</p><p>Cuervo mostró algunos ejemplos más, y se comentó que se puede usar sistema de templates, seguridad, etc. También compartió <a
title="cuba-sugar" href="https://github.com/elcuervo/cuba-sugar">cuba-sugar</a>, una gema que desarrolló para proveer de azúcar sintáctico a Cuba.</p><p>Terminada la charla técnica, mudamos el evento al garage y el patio. Había cerveza y refrescos, y al rato llegaron las pizzas. Una excelente oportunidad para conocer gente del ambiente, aprender algo, compartir conocimientos y saber en qué andan los demás.</p><p>La reunión se va a realizar los segundos martes de cada mes. Los invito a visitar el sitio de <a
href="http://www.meetup.com/rubymvd/">Ruby Meetup</a> y registrarse para futuros eventos de la comunidad.</p> ]]></content:encoded> <wfw:commentRss>http://picandocodigo.net/2012/primer-ruby-meetup-montevideo-2012/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Apuntes Rails: Controladores</title><link>http://picandocodigo.net/2012/apuntes-rails-controladores/</link> <comments>http://picandocodigo.net/2012/apuntes-rails-controladores/#comments</comments> <pubDate>Mon, 09 Apr 2012 11:00:25 +0000</pubDate> <dc:creator>Fernando</dc:creator> <category><![CDATA[Ruby]]></category> <category><![CDATA[Controladores]]></category> <category><![CDATA[HTTP]]></category> <category><![CDATA[Rails]]></category> <guid
isPermaLink="false">http://picandocodigo.net/?p=6491</guid> <description><![CDATA[Los controladores son el pegamento entre la lógica de negocios [...]]]></description> <content:encoded><![CDATA[<div
id="attachment_6492" class="wp-caption alignright" style="width: 310px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/04/controllers.jpg"><img
class="size-full wp-image-6492" title="Controladores - La C en MVC" src="http://picandocodigo.net/wp-content/uploads/2012/04/controllers.jpg" alt="Controladores - La C en MVC" width="300" height="400" /></a><p
class="wp-caption-text">Controladores - La C en MVC</p></div><p>Los controladores son el pegamento entre la lógica de negocios y las vistas en el patrón de diseño <strong>MVC &#8211; Model, View, Controller</strong>.</p><p>Cuando el ruteo de <strong>Rails</strong> determiná qué controlador va a usar para un pedido, nuestro controlador se va a encargar de darle sentido a este pedido y devolver una salida correspondiente.</p><p>Cada controlador es una clase <strong>Ruby</strong> que hereda de la clase de Rails <code>ApplicationController</code>.</p><h3>Métodos y Acciones</h3><p>El ruteo determina qué controlador y acción debe ejecutar. Rails crea una instancia del controlador y ejecuta el método con el mismo nombre de la acción correspondiente.</p><div
class="obvio"><strong>Capitán Obvio dice:</strong> Solo los métodos públicos de un Controlador son ejecutables como acción.</div><div
class="buena-idea"><strong>Buena práctica:</strong> Bajar la visibilidad de los métodos que no son creados con la intención de ser acciones como métodos auxiliares o filtros.</div><h3>Parámetros</h3><p>Desde el controlador podemos acceder a todos los parámetros enviados en el pedido HTTP. Los dos tipos de parámetros son:</p><ul><li><strong> Query String Parameters</strong> &#8211; Los enviados a través de la URL (lo que está en la URL después del signo &#8220;?&#8221;).</li><li><strong>Post Data</strong> &#8211; Información de un pedido POST HTTP, generalmente enviado desde un form html.</li></ul><p>Ambos tipos de parámetros están disponibles a través del hash <code>params</code>.</p><p>El hash params puede contener Arrays y Hashes:</p><div
class="codigo"><strong>Array</strong><br
/> GET /clients?ids[]=1&#038;ids[]=2&#038;ids[]=3<br
/> > params[:id] = ["1", "2", "3"]</div><div
class="codigo"><strong>Hash</strong></p><div
class="wp_syntax"><div
class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">form</span> <span style="color: #000066;">method</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;post&quot;</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;client[name]&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Acme&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;client[phone]&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;8881234&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">form</span>&gt;</span></pre></div></div><pre>> params[:client] {
    "name" => "Acme",
    "phone" => "8881234"
  }</pre></div><p>El objeto params es de la clase <code>HashWithIndifferentAccess</code> de Active Support, una clase totalmente imprescindible cuya función es permitir escribit <code>params[:key]</code> y <code>params['key']</code> y obtener el mismo valor por ambas claves&#8230;</p><h3>Parámetros JSON y XML</h3><p>Rails convierte automáticamente los parámetros JSON y XML al hash <code>params</code>.<br
/> Ejemplo JSON:</p><div
class="wp_syntax"><div
class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #009900;">&#123;</span> <span style="color: #3366CC;">&quot;company&quot;</span><span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span> <span style="color: #3366CC;">&quot;name&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;acme&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;address&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Lo que sea&quot;</span> <span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#125;</span>
<span style="color: #339933;">&gt;</span>params<span style="color: #009900;">&#91;</span><span style="color: #339933;">:</span>company<span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#123;</span> <span style="color: #339933;">:</span><span style="color: #000066;">name</span> <span style="color: #339933;">=&gt;</span> “acme”<span style="color: #339933;">,</span> “address” <span style="color: #339933;">=&gt;</span> “Lo que sea” <span style="color: #009900;">&#125;</span></pre></div></div><p>Omitir elemento raíz de JSON/XML:<br
/> En initializers &#8211; <code>config.wrap.parameters = on</code><br
/> En controlador &#8211; <code>wrap_parameters</code></p><h3>Ruteando parámetros</h3><p>En el hash params siempre encontramos las llaves :controller y :action pero deberíamos acceder a ellos con :controller_name y :action_name.</p><div
class="codigo"><div
class="wp_syntax"><div
class="code"><pre class="ruby" style="font-family:monospace;">match <span style="color:#996600;">'clients/:status'</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'cliens#index'</span>, <span style="color:#ff3333; font-weight:bold;">:foo</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;bar&quot;</span></pre></div></div><pre>GET /clients/active
> params[:status] = "active"
  params[:foo] = "bar"</pre></div><h3>Sesiones</h3><p>Las aplicaciones web tienen una sesión por cada usuario en la que se pueden guardar pequeñas cantidades de información que será persistida entre pedidos.</p><p>La sesión está disponible únicamente en el Controlador y la Vista. Se puede usar uno de varios mecanismos:</p><ul><li>ActionDispatch::Session::cookieStore &#8211; Guarda todo del lado del cliente</li><li>ActiveRecord::SessionStore &#8211; Guarda la información en la base de datos usando ActiveRecord</li><li>ActionDispatch::Session::CacheStore &#8211; Guarda la información en la cache de Rails</li><li>ActionDispatch::Session::MemCacheStore &#8211; Guarda la información en un clúster memcache (implementación legacy, usar CacheStore en su lugar)</li></ul><p>Todos los mecanismos de guardado de sesión usan una cookie para guardar un ID único para cada sesión (obligatorio usar una cookie, Rails no permite pasar el id de sesión a través de la URL).</p><p><strong>Cookie Store</strong><br
/> Guarda el id y la información en la cookie. Todos los otros mecanismos guardan el id y la información se obtiene con ese id buscando en el servidor. Es muy lviano, no requiere configuración. La información de la cookie está firmada pero no encriptada, Rails no la aceptará si ha sido editada.</p><p>Permite 4Kb de información. No debería guardar objetos complejos (como instancias de modelos).</p><p><strong>ActionDispatch::Session::CacheStore</strong><br
/> Para casos en los que la sesión de usuario no necesita guardar información crítica o no se necesita por períodos largos de tiempo. Usa la implementación de caché de tu aplicación para guardar sesiones.<br
/> Ventaja: Usar estructura actual de caché.<br
/> Desventaja: las sesiones serán efímeras, podrían desaparecer.</p><p><strong>Archivo:</strong><br
/> <code>config/initializers/session_store.rb</code><br
/> - Cambiar el mecanismo de almacenamiento de sesión.<br
/> - Establecer la llave de sesión (nombre de la cookie)<br
/> - Pasar una llave de dominio para especificar el nombre de dominio para la cookie</p><p>Establecer una clave secreta para el firmado de la información de sesión &#8211; <code>config/initializers/secret_token.rb</code></p><h3>Accediendo a la sesión</h3><p>En los Controladores se puede acceder a la sesión a través de metódos de instancia de sesión.</p><div
class="buena-idea">Las sesiones se cargan de manera &#8220;lazy&#8221;, no serán cargadas a menos que accedamos a ellas.</div><p>Los valores de la sesión se guardan usando pares clave valor como en un hash.<br
/> En el controlador:</p><div
class="wp_syntax"><div
class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">def</span> current_user
  <span style="color:#0066ff; font-weight:bold;">@current_user</span> <span style="color:#006600; font-weight:bold;">||</span>= session<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:current_user_id</span><span style="color:#006600; font-weight:bold;">&#93;</span> <span style="color:#006600; font-weight:bold;">&amp;&amp;</span>
    User.<span style="color:#9900CC;">find_by_id</span><span style="color:#006600; font-weight:bold;">&#40;</span>session<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:current_user_id</span><span style="color:#006600; font-weight:bold;">&#93;</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div><p>Guardando valores:</p><div
class="wp_syntax"><div
class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">def</span> create
  <span style="color:#9966CC; font-weight:bold;">if</span> user = User.<span style="color:#9900CC;">authenticate</span><span style="color:#006600; font-weight:bold;">&#40;</span>params<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:username</span><span style="color:#006600; font-weight:bold;">&#93;</span>, params<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:password</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    session<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:current_user_id</span><span style="color:#006600; font-weight:bold;">&#93;</span> = user.<span style="color:#9900CC;">id</span>
    redirect_to root_url
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div><p>Para eliminar algo de la sesión, simplemente asignamos el valor nil a la clave. Para reiniciar toda la sesión, usamos el método <code>reset_session</code>.</p><h3>Flash</h3><p>El flash es una parte especial de la sesión que desaparece con cada request. Ejemplo:</p><div
class="wp_syntax"><div
class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">def</span> destroy
  session<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:user_id</span><span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#0000FF; font-weight:bold;">nil</span>
  flash<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:notice</span><span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#996600;">&quot;Has cerrado sesión&quot;</span>
  redirect...</pre></div></div><p>También es posible asignar mensajes flash en redirecciones:</p><div
class="wp_syntax"><div
class="code"><pre class="ruby" style="font-family:monospace;">redirect_to root_url, <span style="color:#ff3333; font-weight:bold;">:notice</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;Has cerrado sesión correctamente&quot;</span></pre></div></div><p><code>flash.keep</code> mantiene el valor para otro request.<br
/> <code>flash.now</code> Accede a los valores en el mismo request.</p><h3>Cookies</h3><div
id="attachment_6526" class="wp-caption alignright" style="width: 610px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/04/cookies.jpg"><img
src="http://picandocodigo.net/wp-content/uploads/2012/04/cookies.jpg" alt="Cookies" title="Cookies" width="600" height="408" class="size-full wp-image-6526" /></a><p
class="wp-caption-text">Cookies</p></div><p>Las cookies (o galletitas) son pequeñas cantidades de información del lado del cliente que es persistida a través de pedidos y sesiones.</p><p><code>cookies</code> &#8211; Funciona como un hash:</p><div
class="wp_syntax"><div
class="code"><pre class="ruby" style="font-family:monospace;">cookies<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:commenter_name</span><span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#0066ff; font-weight:bold;">@comment</span>.<span style="color:#9900CC;">name</span>
...
<span style="color:#9900CC;">cookies</span>.<span style="color:#9900CC;">delete</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:commenter_name</span><span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div><p>Observar que para borrar el valor de una sesión, se asignaba nil a la clave. En el caso de las cookies, se debe usar cookies.delete(:llave)</p><h3>Conclusión</h3><p>Voy a dejar por acá este primer post sobre Controladores en Rails. Si les interesa ir siguiendo este tema, a esta altura deberían entender el flujo de un request en un controlador, y por qué y cómo guardar información en la sesión o con cookies.</p><p>Hay más para ver sobre los controladores: filtros, los objetos request y response y algo de seguridad básica. Pero lo dejo para la próxima entrega de &#8220;Apuntes Rails&#8221; <img
src='http://picandocodigo.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://picandocodigo.net/2012/apuntes-rails-controladores/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Gira Mozilla MDN Hack Day &#8211; Argentina, Uruguay, Brazil y Chile</title><link>http://picandocodigo.net/2012/gira-mozilla-mdn-hack-day-argentina-uruguay-brazil-y-chile/</link> <comments>http://picandocodigo.net/2012/gira-mozilla-mdn-hack-day-argentina-uruguay-brazil-y-chile/#comments</comments> <pubDate>Fri, 06 Apr 2012 17:40:28 +0000</pubDate> <dc:creator>Fernando</dc:creator> <category><![CDATA[Eventos]]></category> <category><![CDATA[mozilla]]></category> <guid
isPermaLink="false">http://picandocodigo.net/?p=6505</guid> <description><![CDATA[La gira de Mozilla Developer Network (MDN) se nos acerca [...]]]></description> <content:encoded><![CDATA[<div
id="attachment_6506" class="wp-caption alignright" style="width: 228px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/04/mozilla-hacks.png"><img
class="size-medium wp-image-6506" title="Mozilla" src="http://picandocodigo.net/wp-content/uploads/2012/04/mozilla-hacks-218x300.png" alt="Mozilla" width="218" height="300" /></a><p
class="wp-caption-text">Mozilla</p></div><p>La gira de <a
href="https://developer.mozilla.org/es/">Mozilla Developer Network</a> (MDN) se nos acerca <img
src='http://picandocodigo.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /></p><p>Estoy muy contento de poder comentar que la gente de <strong>Mozilla</strong> visitará nuestras ciudades de <strong>Buenos Aires</strong>, <strong>Montevideo</strong>, <strong>São Paulo</strong> y <strong>Santiago</strong> difundiendo su mensaje: <strong>La Web es la plataforma</strong>. Sí, Mozilla, los creadores de nuestros amados Firefox, Thunderbird y responsables de gran parte de la evolución de la web en los últimos años, se van a dar una vuelta por acá.</p><p>Les dejo una traducción del anuncio <a
title="Mozilla MDN Hack Day on Tour, Heading South" href="http://hacks.mozilla.org/2012/04/mozilla-hack-day-on-tour-heading-south/">publicado en el blog de Mozilla Hacks</a> por Havi Hoffman:</p><p>La gira MDN de primavera continua con un viaje al otoño en el <a
href="http://en.wikipedia.org/wiki/Southern_Cone">Conosur</a> &#8211; la región más sureña de Sudamérica. Nos dirigimos al sur para participar de MozCamp, una reunión de la comunidad <a
href="http://www.mozilla-hispano.org/">Mozilla Hispano</a>, y para conocer desarrolladores en Buenos Aires, Argentina; Montevideo, Uruguay; São Paulo, Brasil; y Santiago, Chile. Presentaremos algunos nuevos proyectos emocionantes de Mozilla como <a
href="http://www.mozilla.org/en-US/b2g/">Boot-to-Gecko (B2G)</a>, <a
href="http://www.mozilla.org/en-US/apps/">Apps</a>, <a
href="http://www.mozilla.org/en-US/persona/">Persona</a>, y <a
href="http://www.webfwd.org/">WebFWD</a> y mostraremos algo de nuestro trabajo en herramientas para desarrolladores, Firefox y el <a
href="https://addons.mozilla.org/en-US/developers/">SDK de Add-ons</a>. Nos gustaría pasar tiempo programando con desarrolladores web y compartiendo la vision de Mozilla de la Web abierta y centrada en el usuario.</p><p>Nuestro mensaje: <strong><em>La Web es la plataforma</em></strong> y está construída de tecnologías abiertas. Aprende cómo puedes colaborar con MDN en documentación agnóstica de navegador para la Web como un todo, o contribuir a la misión Mozilla e iniciativas Open Source a través de código y evangelización. Hay muchas, muchas formas de involucrarse.</p><p>Si eres un desarrollador, diseñador, escritor de documentación, tecnologista, emprendedor, o entusiasta del open source en Buenos Aires, Montevideo, São Paulo o Santiago, estas invitado a registrate, pasar y compartir lo que estás trabajando. Si simplemente tienes curiosidad de conocer Mozillianos o quieres aprender más sobre nuestro trabajo, nos encantaría conocerte. Nunca olvides que la Web está hecha <em>de todos, para todos</em> (original en español).</p><h3>Buenos Aires</h3><p><strong>Viernes, 20 de Abril</strong>: En Buenos Aires, nos hemos aliado con <a
href="http://www.mozilla-hispano.org/">Mozilla Hispano</a>, el <a
href="http://www.meetup.com/HacksHackersBA/">grupo de Hacks/Hackers</a> de Buenos Aires y <a
href="https://bluevia.com/en/">Blue Via</a> para un evento de un día el Viernes 20 de abril en el hotel NH City &amp; Tower en el corazón de la ciudad. Abriremos con charlas cortas sobre <a
href="https://developer.mozilla.org/en-US/learn/html5">HTML5 y amigos</a>, APIs Javascript, el SDK de Add-ons, herramientas de desarrolladores, y nuestras ofertas más nuevas: <a
href="https://developer.mozilla.org/en-US/apps">Apps</a> y <a
href="http://www.mozilla.org/en-US/persona/">Persona</a>.</p><p><a
href="https://eventos.mozilla-hispano.org/13/mozilla-mdn-hack-day-en-buenos-aires-2012/">El registro para el MDN Hack Day</a>, Bs As 2012 está abierto y todavía tenemos espacio. Por favor <a
href="https://eventos.mozilla-hispano.org/13/mozilla-mdn-hack-day-en-buenos-aires-2012/">regístrate aquí</a>.</p><h3>Montevideo, Uruguay</h3><p><strong>Martes, 24 de Abril</strong>: Damos puntapié inicial a nuestra gira torbellino de 3 ciudades del sur en 5 días, con una noche de desarrolladores en la capital de Uruguay, <a
href="http://en.wikipedia.org/wiki/Montevideo">Montevideo</a>. Estamos agradecidos por la amable hospitalidad de la gente de <a
href="http://ladiaria.com.uy/">La Diaria</a>, un periódico de noticias innovador con una fuerte presencia web y un lugar maravilloso y popular en la comunidad de tecnología y negocios de Uruguay. También un gran agradecimiento <a
href="http://cuboxlabs.com/people/">al equipo</a> de <a
href="http://cuboxlabs.com/">Cubox</a>, una tienda de desarrollo de software que mira hacia el futuro, y está &#8220;disponible para la genialidad&#8221;, y han estado definitivamente geniales y disponibles en guiarnos a los <em>Norteamericanos</em> en cómo armar una noche de desarrolladores desde la lejana Mountain View, a más de 10 mil kilómetros de distancia. Se unen al equipo de MDN para hablar en Montevideo: Dan Mills (<a
href="http://www.twitter.com/thunder">@thunder</a>), líder de producto para Persona; Shane Caraveo (<a
href="http://www.twitter.com/mixedpuppy">@mixedpuppy</a>) de Mozilla Labs; y Andrés Leonardo Martínez Ortíz de BlueVia, un sponsor del MDN Hack Day Tour en Montevideo y Santiago, así como Buenos Aires. <em>Vamanos!</em></p><p>Ya está abierto el registro para el <a
title="MDN Hack Day Developer Evening, Montevideo" href="https://eventioz.com/mvd_mdnhackday"><strong>Montevideo MDN Hack Day Developer Evening</strong></a>.</p><h3>São Paulo, Brasil</h3><p><strong>Jueves, 26 de Abril</strong>: Robert Nyman (<a
href="http://www.twitter.com/robertnyman">@robertnyman</a>), evangelista técnico de Mozilla de Suecia (¡no Suiza!) visitará <a
href="https://wiki.mozilla.org/Engagement/Developer_Engagement/MDNEvents/mdn-session-saopaul-brazil-april.26.2012">São Paulo, Brasil</a> para representar al MDN en un evento nocturno organizado por el miembro de la comunidad Mozilla, desarrollador de software de Caelum y todo terreno Paulo Silveira (<a
href="http://twitter.com/paulo_caelum">@paulo_caelum</a>) el jueves 26 de abril. La charla de Robert se titula &#8220;JavaScript APIs &#8211; The web is the platform&#8221; y describirá cómo <a
href="https://developer.mozilla.org/en/html/html5">HTML5</a>, Boot-toGecko, y otros nuevos APIs inspiran una nueva era de desarrollo innovador en la Web abierta. Muchas gracias a Paulo y el equipo de <a
href="http://www.caelum.com.br/">Caelum</a> por ser anfitriones del evento en su auditorio, y hacer que Robert se sienta bienvenido en São Paulo.</p><p>El registro está abierto para el <a
title="MDN Hack Night registration" href="http://www.caelum.com.br/evento/mozilla-mdn-hack-night/"><strong>São Paulo MDN Hack Day Developer Evening</strong></a>, organizado por Caelum.</p><h3>Santiago, Chile</h3><p>Sábado, 28 de Abril: Cerramos la la gira MDN Hack Day del Conosur el sábado de tarde con una <a
href="https://wiki.mozilla.org/Engagement/Developer_Engagement/MDNEvents/mdn-session-santiago-april.28.2012">noche de desarrolladores</a> en Santiago, Chile, alojada y organizada por Jano González (<a
href="https://twitter.com/#!/janogonzalez">@janogonzalez</a>) en la Escuela de Economía y Negocios &#8211; Universidad de Chile. Esta vez se nos unirá Hernán Colmeiro (<a
href="https://twitter.com/#!/peregrinogris">@peregrinogris</a>), interno de Firefox y evangelista de Jetpack; así como Shane Caraveo, Robert Nyman y como siempre el único <a
href="http://stormyscorner.com/2011/12/please-welcome-shezmeen-prasad-to-the-mozilla-developer-engagement-team.html">Shezmeen Prasad</a>, quien se asegura que todo esté perfecto.</p><p>El registro está abierto para la <a
title="MDN Hack Day Developer Evening, Santiago" href="https://eventioz.com/scl_mdnhackday"><strong>Santiago MDN Hack Day Developer Evening</strong></a>.</p><div
id="attachment_6509" class="wp-caption aligncenter" style="width: 310px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/04/mozillians.jpg"><img
class="size-medium wp-image-6509" title="Se vienen los Mozillianos" src="http://picandocodigo.net/wp-content/uploads/2012/04/mozillians-300x225.jpg" alt="Se vienen los Mozillianos" width="300" height="225" /></a><p
class="wp-caption-text">Se vienen los Mozillianos</p></div><p>Créditos de la foto: <em> <a
href="http://www.flickr.com/photos/nitot/7011128391/in/set-72157629285022968/">Websites and Technology Evangelism team</a> por <a
href="http://www.flickr.com/photos/nitot/">Nitot</a></em>.</p><p>Hagamos sentir bienvenidos a los Mozillianos del Norte durante su estadía por nuestro barrio, y aprovechemos esta oportunidad para aprender, conectarnos y dar a conocer el talento que tenemos por acá. ¡Nos vemos ahí!</p> ]]></content:encoded> <wfw:commentRss>http://picandocodigo.net/2012/gira-mozilla-mdn-hack-day-argentina-uruguay-brazil-y-chile/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Apuntes Rails</title><link>http://picandocodigo.net/2012/apuntes-rails-guides/</link> <comments>http://picandocodigo.net/2012/apuntes-rails-guides/#comments</comments> <pubDate>Fri, 06 Apr 2012 12:00:42 +0000</pubDate> <dc:creator>Fernando</dc:creator> <category><![CDATA[Ruby]]></category> <category><![CDATA[Rails]]></category> <category><![CDATA[Ruby On Rails]]></category> <guid
isPermaLink="false">http://picandocodigo.net/?p=6479</guid> <description><![CDATA[He estado estudiando bastante de las Rails Guides últimamente. Mi [...]]]></description> <content:encoded><![CDATA[<div
id="attachment_6480" class="wp-caption alignright" style="width: 310px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/04/rails-guides.jpg"><img
class="size-medium wp-image-6480" title="Rails Guides" src="http://picandocodigo.net/wp-content/uploads/2012/04/rails-guides-300x92.jpg" alt="Rails Guides" width="300" height="92" /></a><p
class="wp-caption-text">Rails Guides</p></div><p>He estado estudiando bastante de las <a
href="http://guides.rubyonrails.org/"><strong>Rails Guides</strong></a> últimamente. Mi kit de estudio sigue siendo tan primitivo como cuando iba al liceo: un cuaderno de papel y una lapicera, además del material de estudio (en este caso Internet).</p><p>Estoy abierto a sugerencias de métodos más modernos. Debería probar sacar apuntes en un editor de texto directamente en la computadora, pero evitando la tentación de copiar y pegar texto&#8230;</p><p>El tema es que pienso compartir mis apuntes por acá. La idea es que al tener que pasar esos apuntes a un post prolijo en el blog, no solo vuelvo a estudiar sino que quede explicado de la mejor manera posible. Así, no solo comparto el conocimiento, sino que lo afirmo en mi cabeza. También queda abierta la discusión sobre los temas estudiados en los comentarios. Por último, es un registro para cuando quiera repasar algún concepto ya adquirido.</p><p>Ya había leído varias partes de la guía Rails hace un buen tiempo, pero siempre a modo de &#8220;hobby&#8221; (lo que venía siendo Ruby para mí hasta que me puse en serio con eso). Así que arranqué de cero con el objetivo de leer toda la guía (requisito también en mi trabajo).</p><p>La guía asume un poco de conocimiento de <strong>Ruby</strong>, y algunos requisitos de software en nuestra computadora que no voy a comentar por acá. Tampoco voy a seguir un orden exacto, hay cosas que se pueden ir leyendo independientemente de otras. Pero cualquier duda la pueden dejar en los comentarios que con gusto intentaré contestar.</p><div
id="attachment_6482" class="wp-caption aligncenter" style="width: 610px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/04/apuntes-rails-01.jpg"><img
class="size-full wp-image-6482" title="Apuntes Rails" src="http://picandocodigo.net/wp-content/uploads/2012/04/apuntes-rails-01.jpg" alt="Apuntes Rails" width="600" height="141" /></a><p
class="wp-caption-text">Apuntes Rails</p></div><h3>Introducción a Rails</h3><p><em></em>La guía contempla la versión 3.2.3 de Rails. Para dejar una &#8220;definición&#8221; de lo que es Rails, tiro un apunte:</p><p><em>Rails es un framework de desarrollo de aplicaciones web.</em></p><p>En teoría sigue el patrón de diseño MVC, pero he oído fundamentos para creer que no es tan así (otro tema&#8230;). En fin, sigamos asumiendo que es así. El patrón MVC consta básicamente de:</p><p><strong>Modelo</strong> &#8211; La representación de la información, los datos. Define las reglas para manipular la información (lógica de negocios).</p><p><strong>Vista</strong> &#8211; Anoté &#8220;UI&#8221;, o interfaz de usuario. Es cómo vamos a mostrar la información</p><p><strong>Controladores</strong> &#8211; El pegamento entre los modelos y las vistas. Procesa los requests entrantes en la aplicación. Interroga a los modelos para obtener información y le pasa datos a la vista.</p><p>Es un patrón de uso bastante común en otras tecnologías y lenguajes, así que asumo que la mayoría de las personas que hayan trabajado en proyectos web lo conocen. Y si no es así, tienen un concepto para ir conociendo <img
src='http://picandocodigo.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><h3>Componentes de Rails</h3><p>Rails tiene muchos componentes internos encargados de cada aspecto de la aplicación web. Es bueno tener una idea de qué hace cada uno, aunque en su momento la guía profundiza según tema.</p><ul><li><strong>Action Pack</strong> &#8211; Gema que contiene:</li><ul><li><strong>Action Controller</strong> &#8211; Procesa los requests, extrae los parámetros, despacha a acciones. Servicios que provee: manejo de sesión, renderización de plantillas, gestión de redireccionamiento.</li><li><strong>Action View</strong> &#8211; Puede crear HTML y XML por defecto, gestiona renderización de plantillas, AJAX incluido.</li><li><strong>Action Dispatch</strong> &#8211; Maneja el ruteo de los pedidos web.</li></ul><li><strong>Action Mailer</strong> &#8211; Servicios de correo electrónico.</li><li><strong>Active Model</strong> &#8211; Interfaz entre Action Pack y el <abbr
title="Object-Relational mapping (mapeo objeto-relacional)">ORM</abbr>.</li><li><strong>Active Record</strong> &#8211; Base para los modelos en Rails. Provee:</li><ul><li>Independencia de la base de datos.</li><li>Funcionalidad <abbr
title="Crear, Obtener, Actualizar y Borrar">CRUD.</abbr></li><li>Capacidades avanzadas para buscar.</li><li>Relaciones entre modelos.</li></ul><li><strong>Active Resource</strong> &#8211; Conexión entre los objetos de negocio y servicios web que siguen los principios REST. Mapea recursos basados en web a objetos locales con semántica CRUD.</li><li><strong>Active Support</strong> &#8211; Clases utilitarias y extensiones a bibliotecas estándard Ruby.</li><li><strong>Railties</strong> &#8211; Código central de Rails que construye nuevas aplicaciones y junta todos los frameworks y plugins.</li></ul><h3>REST</h3><p>Para comprender Rails (y básicamente tener una idea de cómo se desarrolla para web actualmente), hay que tener un concepto de REST &#8211; Representational State Transfer (Transferencia de Estado Representacional). Es una forma de construir software, y pueden <a
href="http://es.wikipedia.org/wiki/Representational_State_Transfer">leer más en Wikipedia</a>.</p><p>Pero a modo de resumen, Rails nos dice esto:</p><ul><li>Usar identificadores de recursos como URL para representar recursos.</li><li>Transferir representaciones del estado de ese recurso entre componentes de sistema.</li></ul><p>Por ejemplo el siguiente request HTTP:</p><p><code>DELETE /books/14</code></p><p>Es un recurso de libro con el id 14, y la acción borrar.</p><h3>Aplicación Rails</h3><p>No voy a pasar por el proceso de crear una primera aplicación. Lo mejor para esto es abrir la <a
href="http://guides.rubyonrails.org/getting_started.html">Guía de Rails</a> y empezar a crear una aplicación por cuenta propia siguiendo los pasos y aplicando los conocimientos.</p><p>Cierro el post con un poco de música. Un tema de Rancid del discazo &#8220;And Out Come The Wolves&#8221;:</p><h3>Rancid &#8211; RUBY Soho</h3><p><iframe
width="500" height="375" src="http://www.youtube.com/embed/IsRYLnuAn_Y?fs=1&#038;feature=oembed" frameborder="0" allowfullscreen></iframe></p><p>En próximos posts seguiré digiriendo y publicando apuntes de otras partes de la guía Rails.</p> ]]></content:encoded> <wfw:commentRss>http://picandocodigo.net/2012/apuntes-rails-guides/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Trine 2 disponible para Linux</title><link>http://picandocodigo.net/2012/trine-2-disponible-para-linux/</link> <comments>http://picandocodigo.net/2012/trine-2-disponible-para-linux/#comments</comments> <pubDate>Thu, 05 Apr 2012 17:18:56 +0000</pubDate> <dc:creator>Fernando</dc:creator> <category><![CDATA[Linux]]></category> <category><![CDATA[Videojuegos/Nintendo]]></category> <category><![CDATA[Frozenbyte]]></category> <category><![CDATA[GNU/Linux]]></category> <category><![CDATA[juegos]]></category> <category><![CDATA[Juegos GNU/Linux]]></category> <category><![CDATA[Trine 2]]></category> <guid
isPermaLink="false">http://picandocodigo.net/?p=6469</guid> <description><![CDATA[Hace unos días Phoronix anunció la disponibilidad del cliente para [...]]]></description> <content:encoded><![CDATA[<p>Hace unos días Phoronix <a
href="http://www.phoronix.com/scan.php?page=news_item&amp;px=MTA4MTA">anunció</a> la disponibilidad del cliente para GNU/Linux del juego <strong>Trine 2</strong>. Sin embargo, <a
title="Frozenbyte" href="http://frozenbyte.com/blog/">Frozenbyte</a> el estudio encargado de su desarrollo no había hecho ningún anuncio. En su sitio web no encontrábamos noticias al respecto.</p><p>De todas formas, si entrábamos al sitio oficial de Trine 2 para <a
href="http://trine2.com/site/index.php?page=buy">comprarlo</a>, un widget nos mostraba la posibilidad de comprarlo con unos íconos de Apple y Tux. El widget pertenece a la Humble Store, en versión beta, un sistema de compra de juegos de <a
href="https://www.humblebundle.com/">Humble Bundle</a>. Explicado todo esto, les comento que hace un par de días pude comprar Trine 2 para GNU/Linux. Y luego <a
href="http://frozenbyte.com/blog/?p=1345">fue anunciado oficialmente</a> en el blog de la empresa.</p><div
id="attachment_6470" class="wp-caption aligncenter" style="width: 310px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/04/trine2-humblestore.jpg"><img
class="size-medium wp-image-6470" title="Trine 2 - Humble Store" src="http://picandocodigo.net/wp-content/uploads/2012/04/trine2-humblestore-300x223.jpg" alt="Trine 2 - Humble Store" width="300" height="223" /></a><p
class="wp-caption-text">Trine 2 - Humble Store</p></div><p>Comenté sobre <a
href="http://picandocodigo.net/2011/novedades-del-estudio-independiente-de-videojuegos-frozenbyte/">Trine cuando hablé de Frozenbyte</a> el año pasado. El juego se <a
href="http://picandocodigo.net/2011/trine-2-disponible-pre-compra-en-steam/">puso para pre-venta en octubre</a>, y se prometió una versión para GNU/Linux para este año.</p><h3>Sobre Trine 2</h3><p>Es un juego de plataformas, acción y puzzles. Podemos jugar con uno de tres personajes con distintas características cada uno: <strong>Amadeus el mago</strong>, con la habilidad de materializar objetos sólidos de la nada y el poder de levitar objetos. <strong>Pontius el caballero</strong>, el guerrero, equipado con un escudo capaz de manipular su entorno físico, espada y martillo. <strong>Zoya la ladrona</strong>, armada de arco y flecha y un gancho que le permite escalar y alcanzar lugares de altura.</p><p>Al tener habilidades tan distintas, los personajes nos permiten alcanzar ciertos lugares o vencer ciertos enemigos de maneras distintas. El juego cuenta con muchos puzzles basados en física, teniendo que manipular fuego, agua, magia y la gravedad para alcanzar distintos objetivos.</p><div
class="ngg-galleryoverview" id="ngg-gallery-15-6469"><div
id="ngg-image-117" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://picandocodigo.net/wp-content/gallery/trine_2_01/Trine_2_02.jpg" title=" " class="shutterset_set_15" > <img
title="Trine_2_02" alt="Trine_2_02" src="http://picandocodigo.net/wp-content/gallery/trine_2_01/thumbs/thumbs_Trine_2_02.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-121" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://picandocodigo.net/wp-content/gallery/trine_2_01/Trine_2_06.jpg" title=" " class="shutterset_set_15" > <img
title="Trine_2_06" alt="Trine_2_06" src="http://picandocodigo.net/wp-content/gallery/trine_2_01/thumbs/thumbs_Trine_2_06.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-122" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://picandocodigo.net/wp-content/gallery/trine_2_01/Trine_2_07.jpg" title=" " class="shutterset_set_15" > <img
title="Trine_2_07" alt="Trine_2_07" src="http://picandocodigo.net/wp-content/gallery/trine_2_01/thumbs/thumbs_Trine_2_07.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-123" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://picandocodigo.net/wp-content/gallery/trine_2_01/Trine_2_08.jpg" title=" " class="shutterset_set_15" > <img
title="Trine_2_08" alt="Trine_2_08" src="http://picandocodigo.net/wp-content/gallery/trine_2_01/thumbs/thumbs_Trine_2_08.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-124" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://picandocodigo.net/wp-content/gallery/trine_2_01/Trine_2_09.jpg" title=" " class="shutterset_set_15" > <img
title="Trine_2_09" alt="Trine_2_09" src="http://picandocodigo.net/wp-content/gallery/trine_2_01/thumbs/thumbs_Trine_2_09.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-125" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://picandocodigo.net/wp-content/gallery/trine_2_01/Trine_2_10.jpg" title=" " class="shutterset_set_15" > <img
title="Trine_2_10" alt="Trine_2_10" src="http://picandocodigo.net/wp-content/gallery/trine_2_01/thumbs/thumbs_Trine_2_10.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-116" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://picandocodigo.net/wp-content/gallery/trine_2_01/Trine_2_01.jpg" title=" " class="shutterset_set_15" > <img
title="Trine_2_01" alt="Trine_2_01" src="http://picandocodigo.net/wp-content/gallery/trine_2_01/thumbs/thumbs_Trine_2_01.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-118" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://picandocodigo.net/wp-content/gallery/trine_2_01/Trine_2_03.jpg" title=" " class="shutterset_set_15" > <img
title="Trine_2_03" alt="Trine_2_03" src="http://picandocodigo.net/wp-content/gallery/trine_2_01/thumbs/thumbs_Trine_2_03.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-119" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://picandocodigo.net/wp-content/gallery/trine_2_01/Trine_2_04.jpg" title=" " class="shutterset_set_15" > <img
title="Trine_2_04" alt="Trine_2_04" src="http://picandocodigo.net/wp-content/gallery/trine_2_01/thumbs/thumbs_Trine_2_04.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-120" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://picandocodigo.net/wp-content/gallery/trine_2_01/Trine_2_05.jpg" title=" " class="shutterset_set_15" > <img
title="Trine_2_05" alt="Trine_2_05" src="http://picandocodigo.net/wp-content/gallery/trine_2_01/thumbs/thumbs_Trine_2_05.jpg" width="100" height="75" /> </a></div></div><div
class="ngg-clear"></div></div><p>Esta secuela trae un nuevo modo cooperativo disponible online o local. También podemos salvar la partida en cualquier momento. También incluye muchos ítems coleccionables escondidos y los populares &#8220;Achievements&#8221; o logros para aumentar el valor de volver a jugarlo.</p><p>Los gráficos están mejorados ampliamente, y ya tuve algún encuentro con nuevos puzzles sumamente interesantes. Es accesible para todo tipo de jugadores, y está disponible en muchas plataformas: Playstation 3, Xbox 360, Mac, Linux y Windows. Su precio es de U$S 14.99 y U$S 24.99 la edición para coleccionistas que incluye el artbook y soundtrack.</p><p>El video presentación:</p><p><iframe
width="500" height="281" src="http://www.youtube.com/embed/btXW2vIQn2U?fs=1&#038;feature=oembed" frameborder="0" allowfullscreen></iframe></p><p>Les recomiendo adquirir el juego, y quedo a la espera para alguna partida cooperativa con otro(s) jugador(es) <img
src='http://picandocodigo.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><ul><li><a
title="Trine 2" href="http://trine2.com">Trine 2</a></li><li><a
title="Frozenbyte" href="http://frozenbyte.com/">Frozenbyte Games</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://picandocodigo.net/2012/trine-2-disponible-para-linux/feed/</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>Regreso al origen</title><link>http://picandocodigo.net/2012/regreso-al-origen/</link> <comments>http://picandocodigo.net/2012/regreso-al-origen/#comments</comments> <pubDate>Tue, 03 Apr 2012 12:00:02 +0000</pubDate> <dc:creator>Fernando</dc:creator> <category><![CDATA[Programación]]></category> <category><![CDATA[Aprendizaje]]></category> <category><![CDATA[cubox]]></category> <category><![CDATA[Rails]]></category> <category><![CDATA[Ruby]]></category> <guid
isPermaLink="false">http://picandocodigo.net/?p=6435</guid> <description><![CDATA[Como comentaba en Nuevo Camino, hace un mes empecé a [...]]]></description> <content:encoded><![CDATA[<div
id="attachment_6438" class="wp-caption alignright" style="width: 310px"><a
href="http://picandocodigo.net/wp-content/uploads/2012/04/picandocodigo-cubox.jpg"><img
class="size-full wp-image-6438" title="Foto por @cuerbot" src="http://picandocodigo.net/wp-content/uploads/2012/04/picandocodigo-cubox.jpg" alt="Foto por @cuerbot" width="300" height="402" /></a><p
class="wp-caption-text">Foto por @cuerbot</p></div><p>Como comentaba en <a
title="Nuevo camino" href="http://picandocodigo.net/2012/nuevo-camino/">Nuevo Camino</a>, hace un mes empecé a trabajar en <a
href="http://www.cuboxlabs.com">Cubox</a>. Esto me llevó a tener que aprender muchas cosas nuevas, encontrarme con una forma y ambiente de trabajo totalmente distinto, etc.</p><p>Por esto, podría decir que estoy aprendiendo cosas nuevas prácticamente todo el tiempo. Además, tengo mucho por estudiar y aprender todavía para acercarme al nivel del resto del equipo.</p><p>Creo que para un programador trabajar con gente que sabe mucho más que uno es ideal: tenemos de quién aprender. A su vez, estar en una situación desafiante a nivel técnico resulta inspirador (al menos en mi caso).</p><p>Hacía tiempo que no me llevaba un problema a casa en la cabeza, y lo resolvía al día siguiente tras haberlo masticado. Al no estar en la zona de confort, me siento en una mejora constante como desarrollador (inspirado en la filosofía Kanban aprendida a través de Scrum).</p><p>En fin, todo esto viene a que tengo ganas de &#8220;volver a las raíces&#8221; con el blog. En un principio el blog era un reflejo de lo que iba progresando y trabajando en programación. Cuando conocía algo nuevo (por muy básico o simple que resultara) lo dejaba publicado acá para tener como referencia en el futuro. En verdad siempre intenté seguir esa tendencia, pero a veces la rutina, y la falta de desafíos en el trabajo me volvió apático. Si bien siempre buscaba algo interesante para publicar, no era lo mismo.</p><p>A partir de ahora, voy a intentar volver a la tendencia de publicar siempre los nuevos conocimientos que vaya adquiriendo. Estoy estudiando y viendo mucho sobre Ruby y Rails particularmente. Pero también metodologías, buenas prácticas, y demás. Capaz que publico cosas bastante básicas como cosas super específicas sobre cómo resolver un problema o simplemente ideas. Esto me va a ayudar a fijar los conocimientos, compartirlos con otra gente, y de repente recibir información relevante de gente con más experiencia. Cumplir el objetivo por el que me hice un blog en primer lugar digamos <img
src='http://picandocodigo.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>Una de las primeras cosas que tengo que terminar es de estudiar por completo Rails. Ya estoy trabajando en un proyecto hecho en Rails, así que me estoy dando un poco la cabeza contra la pared. Pero cada golpe es un aprendizaje. Así que seguramente vaya publicando mis apuntes sobre lo que vaya leyendo de Rails.</p><p>No tengo pensado mantener una periodicidad específica, pero voy a intentar postear siempre que encuentre algo útil y me pueda servir para más adelante.</p> ]]></content:encoded> <wfw:commentRss>http://picandocodigo.net/2012/regreso-al-origen/feed/</wfw:commentRss> <slash:comments>12</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/23 queries in 0.094 seconds using disk: basic
Object Caching 1360/1422 objects using disk: basic

Served from: picandocodigo.net @ 2012-05-21 12:45:39 -->
