<?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>mga/blog &#187; programación</title>
	<atom:link href="http://www.mauriciogiraldo.com/blog/category/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mauriciogiraldo.com/blog</link>
	<description>ISSN 2011-0146</description>
	<lastBuildDate>Sat, 10 Jul 2010 07:41:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>The Thought Factory</title>
		<link>http://www.mauriciogiraldo.com/blog/2010/03/28/the-thought-factory/</link>
		<comments>http://www.mauriciogiraldo.com/blog/2010/03/28/the-thought-factory/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 22:13:59 +0000</pubDate>
		<dc:creator>mga</dc:creator>
				<category><![CDATA[arte]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[interacción]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[visualización]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.mauriciogiraldo.com/blog/?p=713</guid>
		<description><![CDATA[I was invited by my colleagues Hernando Barragán and Annelie Franke to collaborate with the Thought Factory, a project that started in their Design Studio 6 course for the second semester 2009. The project was commisioned by the XII Iberoamerican Theatre Festival in Bogotá, one of the most important festivals of its type in the [...]]]></description>
			<content:encoded><![CDATA[<p>I was invited by my colleagues Hernando Barragán and Annelie Franke to collaborate with the <em><a href="http://loquesefabrica.com">Thought Factory</a></em>, a project that started in their <a href="http://designblog.uniandes.edu.co/blogs/dise3135/">Design Studio 6</a> course for the second semester 2009. The project was commisioned by the XII Iberoamerican Theatre Festival in Bogotá, one of the most important festivals of its type in the world. The idea was to create a collaborative work that would allow people to interact with the festival.</p>
<p>With this in mind, the <em>Thought Factory</em> was created and its main purpose was to save and classify the thoughts of festival visitors. Thoughts are abstract and intangible notions (we can&#8217;t read minds&#8230; yet). The Factory was made to make those thoughts somewhat tangible, &#8220;saving&#8221; them in bottles that can later be opened and their contents made visible as the genius in the lamp.</p>
<p><object classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" width="450" height="288" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"><param name="autoplay" value="false" /><param name="loop" value="false" /><param name="controller" value="true" /><param name="src" value="/blog/wp-content/uploads/2010/03/visualizador.m4v" /><embed type="video/quicktime" width="450" height="288" src="/blog/wp-content/uploads/2010/03/visualizador.m4v"  controller="true" loop="false" autoplay="false"></embed></object></p>
<p>Each bottle represents an inquiry made by festival organizers. Every hour and a half a new bottle is placed in the filling station:</p>
<div id="attachment_705" class="wp-caption alignnone" style="width: 460px"><img src="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2010/03/fill.jpg" alt="" title="A bottle being filled" width="450" height="236" class="size-full wp-image-705" /><p class="wp-caption-text">A bottle being filled</p></div>
<p>From that moment, and during the next ninety minutes, that bottle will be filled with thoughts from people who type them in the input stations:</p>
<div id="attachment_703" class="wp-caption alignnone" style="width: 460px"><img src="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2010/03/input.jpg" alt="" title="Thought input machine" width="450" height="276" class="size-full wp-image-703" /><p class="wp-caption-text">Thought input machine</p></div>
<p>Thoughts can also be sent as an SMS message via mobile phone.</p>
<p>Since the Festival as for all ages it was necessary to curate these thoughts (basically removing obscene ones&#8230; let&#8217;s be honest, there&#8217;s plenty of obscenities in our thoughts :P).</p>
<div id="attachment_710" class="wp-caption alignnone" style="width: 460px"><img src="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2010/03/curaduria.jpg" alt="" title="Curating machine" width="450" height="224" class="size-full wp-image-710" /><p class="wp-caption-text">Curating machine</p></div>
<p>Once approved, the message enters the bottle in the filling station:</p>
<p><object classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" width="450" height="288" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"><param name="autoplay" value="false" /><param name="loop" value="false" /><param name="controller" value="true" /><param name="src" value="/blog/wp-content/uploads/2010/03/llenado.m4v" /><embed type="video/quicktime" width="450" height="288" src="/blog/wp-content/uploads/2010/03/llenado.m4v" controller="true" loop="false" autoplay="false"></embed></object></p>
<p>When removed from the filling station, the bottle is labelled and placed with the rest of the full bottles so its thoughts can be read in the viewing station.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="450" height="253" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="data" value="http://www.flickr.com/apps/video/stewart.swf?v=71377" /><param name="flashvars" value="intl_lang=en-us&amp;photo_secret=721f3e0226&amp;photo_id=4470994212" /><param name="bgcolor" value="#000000" /><param name="allowFullScreen" value="true" /><param name="src" value="http://www.flickr.com/apps/video/stewart.swf?v=71377" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="450" height="253" src="http://www.flickr.com/apps/video/stewart.swf?v=71377" allowfullscreen="true" bgcolor="#000000" flashvars="intl_lang=en-us&amp;photo_secret=721f3e0226&amp;photo_id=4470994212" data="http://www.flickr.com/apps/video/stewart.swf?v=71377"></embed></object></p>
<p>At the end of the Festival (in april 4, 2010) there will be sixty bottles full of thoughts that can be read in the <a href="http://loquesefabrica.com">project website</a>.</p>
<p>My main tasks were developing the visual interfaces (thought input, thought curating, filling station, bottle visualization), the database that manages thoughts and inquiries and all communication happening between these and the bottles. SMS message service was kindly provided by <a href="http://www.contactosms.com.co">Contacto SMS</a>.</p>
<p>If you are curious about the tech side of the project: interfaces are made with Adobe Flash which communicate with a MySQL database via PHP and AMFPHP. Filling and viewing stations communicate with the bottles via <a href="http://wiring.org.co/">Wiring</a> using sockets and an RFID tag. ActionScript programming was made in <a href="http://www.fdt.powerflasher.com/">FDT</a>.</p>
<p><a href="http://www.mauriciogiraldo.com/blog/2010/03/28/the-thought-factory/" rel="bookmark">The Thought Factory</a> originalmente escrito en <a href="http://www.mauriciogiraldo.com/blog">mga/blog</a> en March 28, 2010.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mauriciogiraldo.com/blog/2010/03/28/the-thought-factory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La Fábrica de Pensamientos</title>
		<link>http://www.mauriciogiraldo.com/blog/2010/03/28/fabrica-de-pensamientos/</link>
		<comments>http://www.mauriciogiraldo.com/blog/2010/03/28/fabrica-de-pensamientos/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 20:30:37 +0000</pubDate>
		<dc:creator>mga</dc:creator>
				<category><![CDATA[arte]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[interacción]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[visualización]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.mauriciogiraldo.com/blog/?p=676</guid>
		<description><![CDATA[Fui invitado por mis colegas Hernando Barragán y Annelie Franke a participar en la Fábrica de Pensamientos, un proyecto que se deprendió de su curso Estudio 6 del segundo semestre de 2009. El proyecto fue comisionado por el XII Festival Iberoamericano de Teatro de Bogotá, uno de los festivales de este tipo más importantes del [...]]]></description>
			<content:encoded><![CDATA[<p>Fui invitado por mis colegas Hernando Barragán y Annelie Franke a  participar en la <em><a href="http://loquesefabrica.com">Fábrica de Pensamientos</a></em>, un  proyecto que se deprendió de su <a href="http://designblog.uniandes.edu.co/blogs/dise3135/">curso  Estudio 6</a> del segundo semestre de 2009. El proyecto fue comisionado por el XII  Festival Iberoamericano de Teatro de Bogotá, uno de los festivales de este tipo más importantes del mundo. La idea era hacer una obra  colaborativa que permitiera a la gente interactuar con el festival.</p>
<p>A partir de esa premisa, se realizó la <em>Fábrica de Pensamientos</em> cuya  idea principal es guardar y clasificar los pensamientos de los  visitantes al festival. Los pensamientos son nociones abstractas e  intangibles (aún no podemos leer la mente). Con la Fábrica se busca  hacer esos pensamientos tangibles de alguna forma, &#8220;guardándolos&#8221; en  botellas que luego pueden ser abiertas y su contenido se hace visible  como el genio de la lámpara.</p>
<p><object classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" width="450" height="288" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"><param name="autoplay" value="false" /><param name="loop" value="false" /><param name="controller" value="true" /><param name="src" value="/blog/wp-content/uploads/2010/03/visualizador.m4v" /><embed type="video/quicktime" width="450" height="288" src="/blog/wp-content/uploads/2010/03/visualizador.m4v"  controller="true" loop="false" autoplay="false"></embed></object></p>
<p>Cada botella representa una inquietud planteada por el festival. Cada  hora y media se pone una nueva botella en la base de llenado:</p>
<div id="attachment_705" class="wp-caption alignnone" style="width: 460px"><img src="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2010/03/fill.jpg" alt="" title="Una botella en proceso de ser llenada" width="450" height="236" class="size-full wp-image-705" /><p class="wp-caption-text">Una botella en proceso de ser llenada</p></div>
<p>A partir de ese momento, y durante los siguientes noventa minutos, se  llenará esa botella con los pensamientos que la gente escribe en las  máquinas de entrada:</p>
<div id="attachment_703" class="wp-caption alignnone" style="width: 460px"><img src="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2010/03/input.jpg" alt="" title="Máquina de entrada de pensamiento" width="450" height="276" class="size-full wp-image-703" /><p class="wp-caption-text">Máquina de entrada de pensamiento</p></div>
<p>Pensamientos también pueden entrar en la botella vía mensaje de texto  de teléfono celular.</p>
<p>Dado que el Festival es un evento para toda la familia es necesario  hacer una curaduría de los pensamientos (básicamente prevenir el ingreso  de obscenidades&#8230; seamos honestos, hay <em>mucho</em> pensamiento  obsceno sucediendo en nuestras cabezas :P ).</p>
<div id="attachment_710" class="wp-caption alignnone" style="width: 460px"><img src="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2010/03/curaduria.jpg" alt="" title="Máquina de curaduría" width="450" height="224" class="size-full wp-image-710" /><p class="wp-caption-text">Máquina de curaduría</p></div>
<p>Una vez aprobado, el mensaje entra a la botella que se encuentra en  la base de llenado:</p>
<p><object classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" width="450" height="288" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"><param name="autoplay" value="false" /><param name="loop" value="false" /><param name="controller" value="true" /><param name="src" value="/blog/wp-content/uploads/2010/03/llenado.m4v" /><embed type="video/quicktime" width="450" height="288" src="/blog/wp-content/uploads/2010/03/llenado.m4v" controller="true" loop="false" autoplay="false"></embed></object></p>
<p>Cuando se retira la botella de la base, se etiqueta y se guarda para  luego ser consultada por los visitantes en cualquier momento en la estación de visualización.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="450" height="253" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="data" value="http://www.flickr.com/apps/video/stewart.swf?v=71377" /><param name="flashvars" value="intl_lang=en-us&amp;photo_secret=721f3e0226&amp;photo_id=4470994212" /><param name="bgcolor" value="#000000" /><param name="allowFullScreen" value="true" /><param name="src" value="http://www.flickr.com/apps/video/stewart.swf?v=71377" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="450" height="253" src="http://www.flickr.com/apps/video/stewart.swf?v=71377" allowfullscreen="true" bgcolor="#000000" flashvars="intl_lang=en-us&amp;photo_secret=721f3e0226&amp;photo_id=4470994212" data="http://www.flickr.com/apps/video/stewart.swf?v=71377"></embed></object></p>
<p>Al finalizar el Festival en abril 4 de 2010 habrá sesenta botellas llenas de pensamientos que podrán ser visualizadas en el <a href="http://loquesefabrica.com">sitio web del proyecto</a>.</p>
<p>Mi labor principal fue desarrollar la parte visual (interfaz de  entrada de pensamientos, interfaz de moderación, interfaz de llenado,  interfaz de visualización, sitio web), la base de datos que soporta el sistema de pensamientos e inquietudes y toda la comunicación que sucede entre estas y  las botellas. El sistema de mensajes de texto fue amablemente provisto  por <a href="http://www.contactosms.com.co">Contacto SMS</a>.</p>
<p>Si tiene curiosidad de saber qué tecnologías están involucradas: las  interfases están hechas en Adobe Flash y se comunican con la base de  datos MySQL usando PHP y AMFPHP. Las interfases de llenado y  visualización de botellas se comunican vía <em>sockets</em> con <a href="http://wiring.org.co/">Wiring</a> usando un  tag RFID.</p>
<p><a href="http://www.mauriciogiraldo.com/blog/2010/03/28/fabrica-de-pensamientos/" rel="bookmark">La Fábrica de Pensamientos</a> originalmente escrito en <a href="http://www.mauriciogiraldo.com/blog">mga/blog</a> en March 28, 2010.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mauriciogiraldo.com/blog/2010/03/28/fabrica-de-pensamientos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>pop goes the weasel</title>
		<link>http://www.mauriciogiraldo.com/blog/2009/10/20/pop-goes-the-weasel/</link>
		<comments>http://www.mauriciogiraldo.com/blog/2009/10/20/pop-goes-the-weasel/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 01:31:38 +0000</pubDate>
		<dc:creator>mga</dc:creator>
				<category><![CDATA[ciencia]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[visualización]]></category>

		<guid isPermaLink="false">http://www.mauriciogiraldo.com/blog/?p=479</guid>
		<description><![CDATA[Inventando el agua que moja Para hacer funcionar el código, cree un nuevo documento de Flash ActionScript 3 y meta tres textfields con nombre de instancia status_txt, link_txt, y weasel_txt. Puede cambiar el texto objetivo (variable target) por cualquier otro que tenga letras de la A a la Z (mayúsculas), espacio, punto y signo de [...]]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="150" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2009/10/weasel.swf" /><embed type="application/x-shockwave-flash" width="500" height="150" src="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2009/10/weasel.swf"></embed></object></p>
<p><a href="http://en.wikipedia.org/wiki/Weasel_program">Inventando el agua que moja</a></p>
<p>Para hacer funcionar el código, cree un nuevo documento de Flash ActionScript 3 y meta tres textfields con nombre de instancia <code>status_txt</code>, <code>link_txt</code>, y <code>weasel_txt</code>. Puede cambiar el texto objetivo (variable <code>target</code>) por cualquier otro que tenga letras de la A a la Z (mayúsculas), espacio, punto y signo de exclamación. Si quiere más letras tiene que modificar la funcion <code>randomLetter()</code>.</p>
<p>El máximo número de generaciones que me ha generado para este texto es de 1452.</p>
<p>El código (AS3):</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;color: #000; font-family:Inconsolata,"Andale Mono","Courier New",Courier,Mono"><span style="color: #6699cc; font-weight: bold;color: #060;">var</span> <span style="color: #004993;">target</span><span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">String</span> = <span style="color: #990000;color: #f00;">&quot;O TRUE APOTHECARY! THY DRUGS ARE QUICK. THUS WITH A KISS I DIE.&quot;</span>;
<span style="color: #6699cc; font-weight: bold;color: #060;">var</span> current<span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">String</span> = <span style="color: #990000;color: #f00;">&quot;&quot;</span>;
<span style="color: #6699cc; font-weight: bold;color: #060;">var</span> numSiblings<span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">Number</span> = <span style="color: #000000; font-weight:bold;color: #f00;">100</span>;
<span style="color: #6699cc; font-weight: bold;color: #060;">var</span> variation<span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">Number</span> = <span style="color: #000000; font-weight:bold;color: #f00;">5</span>;
<span style="color: #6699cc; font-weight: bold;color: #060;">var</span> stepsNeeded<span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">Number</span> = <span style="color: #000000; font-weight:bold;color: #f00;">0</span>;
<span style="color: #6699cc; font-weight: bold;color: #060;">var</span> generation<span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">Array</span> = <span style="color: #000000;color: #000;">&#91;</span><span style="color: #000000;color: #000;">&#93;</span>;
<span style="color: #6699cc; font-weight: bold;color: #060;">var</span> <span style="color: #004993;">timer</span><span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">Timer</span> = <span style="color: #0033ff; font-weight: bold;color: #00f;">new</span> <span style="color: #004993;">Timer</span><span style="color: #000000;color: #000;">&#40;</span><span style="color: #000000; font-weight:bold;color: #f00;">10</span><span style="color: #000000;color: #000;">&#41;</span>;
&nbsp;
<span style="color: #339966; font-weight: bold;color: #00f;">function</span> newGeneration<span style="color: #000000;color: #000;">&#40;</span><span style="color: #000000;color: #000;">&#41;</span><span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">Array</span> <span style="color: #000000;color: #000;">&#123;</span>
	<span style="color: #6699cc; font-weight: bold;color: #060;">var</span> i<span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">Number</span>;
	<span style="color: #6699cc; font-weight: bold;color: #060;">var</span> thisGeneration<span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">Array</span> = <span style="color: #000000;color: #000;">&#91;</span><span style="color: #000000;color: #000;">&#93;</span>;
	<span style="color: #0033ff; font-weight: bold;color: #00f;">for</span> <span style="color: #000000;color: #000;">&#40;</span>i=<span style="color: #000000; font-weight:bold;color: #f00;">0</span>;i <span style="color: #000000; font-weight: bold;color: #000;">&lt;</span> numSiblings;<span style="color: #000000; font-weight: bold;color: #000;">++</span>i<span style="color: #000000;color: #000;">&#41;</span> <span style="color: #000000;color: #000;">&#123;</span>
		thisGeneration.<span style="color: #004993;">push</span><span style="color: #000000;color: #000;">&#40;</span>createSibling<span style="color: #000000;color: #000;">&#40;</span>current<span style="color: #000000;color: #000;">&#41;</span><span style="color: #000000;color: #000;">&#41;</span>;
	<span style="color: #000000;color: #000;">&#125;</span>
	<span style="color: #0033ff; font-weight: bold;color: #00f;">return</span> thisGeneration;
<span style="color: #000000;color: #000;">&#125;</span>
&nbsp;
<span style="color: #339966; font-weight: bold;color: #00f;">function</span> newParent<span style="color: #000000;color: #000;">&#40;</span><span style="color: #000000;color: #000;">&#41;</span><span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">String</span> <span style="color: #000000;color: #000;">&#123;</span>
	<span style="color: #6699cc; font-weight: bold;color: #060;">var</span> i<span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">Number</span>, r<span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">String</span> = <span style="color: #990000;color: #f00;">&quot;&quot;</span>;
	<span style="color: #0033ff; font-weight: bold;color: #00f;">for</span> <span style="color: #000000;color: #000;">&#40;</span>i=<span style="color: #000000; font-weight:bold;color: #f00;">0</span>;i <span style="color: #000000; font-weight: bold;color: #000;">&lt;</span> <span style="color: #004993;">target</span>.<span style="color: #004993;">length</span>;<span style="color: #000000; font-weight: bold;color: #000;">++</span>i<span style="color: #000000;color: #000;">&#41;</span> <span style="color: #000000;color: #000;">&#123;</span>
		r <span style="color: #000000; font-weight: bold;color: #000;">+</span>= randomLetter<span style="color: #000000;color: #000;">&#40;</span><span style="color: #000000;color: #000;">&#41;</span>;
	<span style="color: #000000;color: #000;">&#125;</span>
	<span style="color: #0033ff; font-weight: bold;color: #00f;">return</span> r;
<span style="color: #000000;color: #000;">&#125;</span>
&nbsp;
<span style="color: #339966; font-weight: bold;color: #00f;">function</span> createSibling<span style="color: #000000;color: #000;">&#40;</span>dad<span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">String</span><span style="color: #000000;color: #000;">&#41;</span><span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">String</span> <span style="color: #000000;color: #000;">&#123;</span>
	<span style="color: #6699cc; font-weight: bold;color: #060;">var</span> i<span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">Number</span>;
	<span style="color: #6699cc; font-weight: bold;color: #060;">var</span> sibling<span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">String</span> = <span style="color: #990000;color: #f00;">&quot;&quot;</span>;
	<span style="color: #0033ff; font-weight: bold;color: #00f;">for</span> <span style="color: #000000;color: #000;">&#40;</span>i=<span style="color: #000000; font-weight:bold;color: #f00;">0</span>;i <span style="color: #000000; font-weight: bold;color: #000;">&lt;</span> dad.<span style="color: #004993;">length</span>;<span style="color: #000000; font-weight: bold;color: #000;">++</span>i<span style="color: #000000;color: #000;">&#41;</span> <span style="color: #000000;color: #000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;color: #00f;">if</span> <span style="color: #000000;color: #000;">&#40;</span><span style="color: #004993;">Math</span>.<span style="color: #004993;">random</span><span style="color: #000000;color: #000;">&#40;</span><span style="color: #000000;color: #000;">&#41;</span><span style="color: #000000; font-weight: bold;color: #000;">*</span><span style="color: #000000; font-weight:bold;color: #f00;">100</span><span style="color: #000000; font-weight: bold;color: #000;">&lt;</span>variation<span style="color: #000000;color: #000;">&#41;</span> <span style="color: #000000;color: #000;">&#123;</span>
			sibling <span style="color: #000000; font-weight: bold;color: #000;">+</span>= randomLetter<span style="color: #000000;color: #000;">&#40;</span><span style="color: #000000;color: #000;">&#41;</span>;
		<span style="color: #000000;color: #000;">&#125;</span> <span style="color: #0033ff; font-weight: bold;color: #00f;">else</span> <span style="color: #000000;color: #000;">&#123;</span>
			sibling <span style="color: #000000; font-weight: bold;color: #000;">+</span>= dad.<span style="color: #004993;">charAt</span><span style="color: #000000;color: #000;">&#40;</span>i<span style="color: #000000;color: #000;">&#41;</span>;
		<span style="color: #000000;color: #000;">&#125;</span>
	<span style="color: #000000;color: #000;">&#125;</span>
	<span style="color: #0033ff; font-weight: bold;color: #00f;">return</span> sibling;
<span style="color: #000000;color: #000;">&#125;</span>
&nbsp;
<span style="color: #339966; font-weight: bold;color: #00f;">function</span> randomLetter<span style="color: #000000;color: #000;">&#40;</span><span style="color: #000000;color: #000;">&#41;</span><span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">String</span> <span style="color: #000000;color: #000;">&#123;</span>
	<span style="color: #6699cc; font-weight: bold;color: #060;">var</span> r<span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">String</span>;
	<span style="color: #6699cc; font-weight: bold;color: #060;">var</span> n<span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">Number</span> = <span style="color: #004993;">Math</span>.<span style="color: #004993;">floor</span><span style="color: #000000;color: #000;">&#40;</span><span style="color: #004993;">Math</span>.<span style="color: #004993;">random</span><span style="color: #000000;color: #000;">&#40;</span><span style="color: #000000;color: #000;">&#41;</span><span style="color: #000000; font-weight: bold;color: #000;">*</span><span style="color: #000000; font-weight:bold;color: #f00;">28</span><span style="color: #000000;color: #000;">&#41;</span><span style="color: #000000; font-weight: bold;color: #000;">+</span><span style="color: #000000; font-weight:bold;color: #f00;">62</span>;
	<span style="color: #0033ff; font-weight: bold;color: #00f;">if</span> <span style="color: #000000;color: #000;">&#40;</span>n==<span style="color: #000000; font-weight:bold;color: #f00;">62</span><span style="color: #000000;color: #000;">&#41;</span> <span style="color: #000000;color: #000;">&#123;</span>
		r = <span style="color: #990000;color: #f00;">&quot; &quot;</span>;
	<span style="color: #000000;color: #000;">&#125;</span> <span style="color: #0033ff; font-weight: bold;color: #00f;">else</span> <span style="color: #0033ff; font-weight: bold;color: #00f;">if</span> <span style="color: #000000;color: #000;">&#40;</span>n==<span style="color: #000000; font-weight:bold;color: #f00;">63</span><span style="color: #000000;color: #000;">&#41;</span> <span style="color: #000000;color: #000;">&#123;</span>
		r = <span style="color: #990000;color: #f00;">&quot;.&quot;</span>;
	<span style="color: #000000;color: #000;">&#125;</span> <span style="color: #0033ff; font-weight: bold;color: #00f;">else</span> <span style="color: #0033ff; font-weight: bold;color: #00f;">if</span> <span style="color: #000000;color: #000;">&#40;</span>n==<span style="color: #000000; font-weight:bold;color: #f00;">64</span><span style="color: #000000;color: #000;">&#41;</span> <span style="color: #000000;color: #000;">&#123;</span>
		r = <span style="color: #990000;color: #f00;">&quot;!&quot;</span>;
	<span style="color: #000000;color: #000;">&#125;</span> <span style="color: #0033ff; font-weight: bold;color: #00f;">else</span> <span style="color: #000000;color: #000;">&#123;</span>
		r = <span style="color: #004993;">String</span>.<span style="color: #004993;">fromCharCode</span><span style="color: #000000;color: #000;">&#40;</span>n<span style="color: #000000;color: #000;">&#41;</span>;
	<span style="color: #000000;color: #000;">&#125;</span>
	<span style="color: #0033ff; font-weight: bold;color: #00f;">return</span> r;
<span style="color: #000000;color: #000;">&#125;</span>
&nbsp;
<span style="color: #339966; font-weight: bold;color: #00f;">function</span> qualifyGeneration<span style="color: #000000;color: #000;">&#40;</span><span style="color: #000000;color: #000;">&#41;</span><span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">Number</span> <span style="color: #000000;color: #000;">&#123;</span>
	<span style="color: #6699cc; font-weight: bold;color: #060;">var</span> i<span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">Number</span>, j<span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">Number</span>;
	<span style="color: #6699cc; font-weight: bold;color: #060;">var</span> qualification<span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">Array</span> = <span style="color: #000000;color: #000;">&#91;</span><span style="color: #000000;color: #000;">&#93;</span>;
	<span style="color: #6699cc; font-weight: bold;color: #060;">var</span> tempQ<span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">Number</span> = <span style="color: #000000; font-weight:bold;color: #f00;">0</span>;
	<span style="color: #0033ff; font-weight: bold;color: #00f;">for</span> <span style="color: #000000;color: #000;">&#40;</span>i=<span style="color: #000000; font-weight:bold;color: #f00;">0</span>;i <span style="color: #000000; font-weight: bold;color: #000;">&lt;</span> generation.<span style="color: #004993;">length</span>;<span style="color: #000000; font-weight: bold;color: #000;">++</span>i<span style="color: #000000;color: #000;">&#41;</span> <span style="color: #000000;color: #000;">&#123;</span>
		tempQ = <span style="color: #000000; font-weight:bold;color: #f00;">0</span>;
		<span style="color: #0033ff; font-weight: bold;color: #00f;">for</span> <span style="color: #000000;color: #000;">&#40;</span>j=<span style="color: #000000; font-weight:bold;color: #f00;">0</span>;j<span style="color: #000000; font-weight: bold;color: #000;">&lt;</span>generation<span style="color: #000000;color: #000;">&#91;</span>i<span style="color: #000000;color: #000;">&#93;</span>.<span style="color: #004993;">length</span>;<span style="color: #000000; font-weight: bold;color: #000;">++</span>j<span style="color: #000000;color: #000;">&#41;</span> <span style="color: #000000;color: #000;">&#123;</span>
			<span style="color: #0033ff; font-weight: bold;color: #00f;">if</span> <span style="color: #000000;color: #000;">&#40;</span>generation<span style="color: #000000;color: #000;">&#91;</span>i<span style="color: #000000;color: #000;">&#93;</span>.<span style="color: #004993;">charAt</span><span style="color: #000000;color: #000;">&#40;</span>j<span style="color: #000000;color: #000;">&#41;</span>==<span style="color: #004993;">target</span>.<span style="color: #004993;">charAt</span><span style="color: #000000;color: #000;">&#40;</span>j<span style="color: #000000;color: #000;">&#41;</span><span style="color: #000000;color: #000;">&#41;</span> <span style="color: #000000;color: #000;">&#123;</span>
				tempQ <span style="color: #000000; font-weight: bold;color: #000;">+</span>= <span style="color: #000000; font-weight:bold;color: #f00;">1</span>;
			<span style="color: #000000;color: #000;">&#125;</span>
		<span style="color: #000000;color: #000;">&#125;</span>
		qualification.<span style="color: #004993;">push</span><span style="color: #000000;color: #000;">&#40;</span>tempQ<span style="color: #000000;color: #000;">&#41;</span>;
	<span style="color: #000000;color: #000;">&#125;</span>
	<span style="color: #6699cc; font-weight: bold;color: #060;">var</span> maxQIndex = <span style="color: #000000; font-weight:bold;color: #f00;">0</span>;
	<span style="color: #6699cc; font-weight: bold;color: #060;">var</span> maxQ = <span style="color: #000000; font-weight:bold;color: #f00;">0</span>;
	<span style="color: #0033ff; font-weight: bold;color: #00f;">for</span> <span style="color: #000000;color: #000;">&#40;</span>i=<span style="color: #000000; font-weight:bold;color: #f00;">0</span>;i <span style="color: #000000; font-weight: bold;color: #000;">&lt;</span> qualification.<span style="color: #004993;">length</span>;<span style="color: #000000; font-weight: bold;color: #000;">++</span>i<span style="color: #000000;color: #000;">&#41;</span> <span style="color: #000000;color: #000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;color: #00f;">if</span> <span style="color: #000000;color: #000;">&#40;</span>qualification<span style="color: #000000;color: #000;">&#91;</span>i<span style="color: #000000;color: #000;">&#93;</span><span style="color: #000000; font-weight: bold;color: #000;">&gt;</span>maxQ<span style="color: #000000;color: #000;">&#41;</span> <span style="color: #000000;color: #000;">&#123;</span>
			maxQ = qualification<span style="color: #000000;color: #000;">&#91;</span>i<span style="color: #000000;color: #000;">&#93;</span>;
			maxQIndex = i;
		<span style="color: #000000;color: #000;">&#125;</span>
	<span style="color: #000000;color: #000;">&#125;</span>
	<span style="color: #0033ff; font-weight: bold;color: #00f;">return</span> maxQIndex;
<span style="color: #000000;color: #000;">&#125;</span>
&nbsp;
<span style="color: #339966; font-weight: bold;color: #00f;">function</span> parseGeneration<span style="color: #000000;color: #000;">&#40;</span>event<span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">TimerEvent</span><span style="color: #000000;color: #000;">&#41;</span> <span style="color: #000000;color: #000;">&#123;</span>
	status_txt.<span style="color: #004993;">htmlText</span> = <span style="color: #990000;color: #f00;">&quot;GENERACIONES: &quot;</span> <span style="color: #000000; font-weight: bold;color: #000;">+</span> stepsNeeded;
	generation = newGeneration<span style="color: #000000;color: #000;">&#40;</span><span style="color: #000000;color: #000;">&#41;</span>;
	current = generation<span style="color: #000000;color: #000;">&#91;</span>qualifyGeneration<span style="color: #000000;color: #000;">&#40;</span><span style="color: #000000;color: #000;">&#41;</span><span style="color: #000000;color: #000;">&#93;</span>;
	weasel_txt.<span style="color: #004993;">text</span> = current;
	<span style="color: #0033ff; font-weight: bold;color: #00f;">if</span> <span style="color: #000000;color: #000;">&#40;</span>current == <span style="color: #004993;">target</span><span style="color: #000000;color: #000;">&#41;</span> <span style="color: #000000;color: #000;">&#123;</span>
		<span style="color: #004993;">timer</span>.<span style="color: #004993;">stop</span><span style="color: #000000;color: #000;">&#40;</span><span style="color: #000000;color: #000;">&#41;</span>;
		status_txt.<span style="color: #004993;">htmlText</span> = <span style="color: #990000;color: #f00;">&quot;COMPLETADO LUEGO DE &quot;</span> <span style="color: #000000; font-weight: bold;color: #000;">+</span> stepsNeeded <span style="color: #000000; font-weight: bold;color: #000;">+</span> <span style="color: #990000;color: #f00;">&quot; GENERACIONES&quot;</span>;
		link_txt.<span style="color: #004993;">htmlText</span> = <span style="color: #990000;color: #f00;">&quot;&lt;a href=<span style="">\&quot;</span>event:restart<span style="">\&quot;</span>&gt;OTRA VEZ&lt;/a&gt;&quot;</span>;
	<span style="color: #000000;color: #000;">&#125;</span> <span style="color: #0033ff; font-weight: bold;color: #00f;">else</span> <span style="color: #000000;color: #000;">&#123;</span>
		stepsNeeded<span style="color: #000000; font-weight: bold;color: #000;">++</span>;
	<span style="color: #000000;color: #000;">&#125;</span>
<span style="color: #000000;color: #000;">&#125;</span>
&nbsp;
<span style="color: #339966; font-weight: bold;color: #00f;">function</span> doClick <span style="color: #000000;color: #000;">&#40;</span>e<span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">TextEvent</span><span style="color: #000000;color: #000;">&#41;</span> <span style="color: #000000;color: #000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;color: #00f;">if</span> <span style="color: #000000;color: #000;">&#40;</span>e.<span style="color: #004993;">text</span>==<span style="color: #990000;color: #f00;">&quot;stop&quot;</span><span style="color: #000000;color: #000;">&#41;</span> <span style="color: #000000;color: #000;">&#123;</span>
		link_txt.<span style="color: #004993;">htmlText</span> = <span style="color: #990000;color: #f00;">&quot;&lt;a href=<span style="">\&quot;</span>event:continue<span style="">\&quot;</span>&gt;CONTINUAR&lt;/a&gt;&quot;</span>;
		<span style="color: #004993;">timer</span>.<span style="color: #004993;">stop</span><span style="color: #000000;color: #000;">&#40;</span><span style="color: #000000;color: #000;">&#41;</span>;
	<span style="color: #000000;color: #000;">&#125;</span> <span style="color: #0033ff; font-weight: bold;color: #00f;">else</span> <span style="color: #0033ff; font-weight: bold;color: #00f;">if</span> <span style="color: #000000;color: #000;">&#40;</span>e.<span style="color: #004993;">text</span>==<span style="color: #990000;color: #f00;">&quot;continue&quot;</span><span style="color: #000000;color: #000;">&#41;</span> <span style="color: #000000;color: #000;">&#123;</span>
		link_txt.<span style="color: #004993;">htmlText</span> = <span style="color: #990000;color: #f00;">&quot;&lt;a href=<span style="">\&quot;</span>event:stop<span style="">\&quot;</span>&gt;DETENER&lt;/a&gt;&quot;</span>;
		<span style="color: #004993;">timer</span>.<span style="color: #004993;">start</span><span style="color: #000000;color: #000;">&#40;</span><span style="color: #000000;color: #000;">&#41;</span>;
	<span style="color: #000000;color: #000;">&#125;</span> <span style="color: #0033ff; font-weight: bold;color: #00f;">else</span> <span style="color: #0033ff; font-weight: bold;color: #00f;">if</span> <span style="color: #000000;color: #000;">&#40;</span>e.<span style="color: #004993;">text</span>==<span style="color: #990000;color: #f00;">&quot;restart&quot;</span><span style="color: #000000;color: #000;">&#41;</span> <span style="color: #000000;color: #000;">&#123;</span>
		<span style="color: #004993;">init</span><span style="color: #000000;color: #000;">&#40;</span><span style="color: #000000;color: #000;">&#41;</span>;
	<span style="color: #000000;color: #000;">&#125;</span>
<span style="color: #000000;color: #000;">&#125;</span>
&nbsp;
<span style="color: #339966; font-weight: bold;color: #00f;">function</span> <span style="color: #004993;">init</span> <span style="color: #000000;color: #000;">&#40;</span><span style="color: #000000;color: #000;">&#41;</span> <span style="color: #000000;color: #000;">&#123;</span>
	stepsNeeded = <span style="color: #000000; font-weight:bold;color: #f00;">0</span>;
	current = newParent<span style="color: #000000;color: #000;">&#40;</span><span style="color: #000000;color: #000;">&#41;</span>;
	<span style="color: #004993;">timer</span>.<span style="color: #004993;">start</span><span style="color: #000000;color: #000;">&#40;</span><span style="color: #000000;color: #000;">&#41;</span>;
&nbsp;
	<span style="color: #6699cc; font-weight: bold;color: #060;">var</span> style<span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">StyleSheet</span> = <span style="color: #0033ff; font-weight: bold;color: #00f;">new</span> <span style="color: #004993;">StyleSheet</span><span style="color: #000000;color: #000;">&#40;</span><span style="color: #000000;color: #000;">&#41;</span>;
	<span style="color: #6699cc; font-weight: bold;color: #060;">var</span> <span style="color: #004993;">link</span><span style="color: #000000; font-weight: bold;color: #000;">:</span><span style="color: #004993;">Object</span> = <span style="color: #0033ff; font-weight: bold;color: #00f;">new</span> <span style="color: #004993;">Object</span><span style="color: #000000;color: #000;">&#40;</span><span style="color: #000000;color: #000;">&#41;</span>;
	<span style="color: #004993;">link</span>.textDecoration = <span style="color: #990000;color: #f00;">&quot;underline&quot;</span>;
	style.<span style="color: #004993;">setStyle</span><span style="color: #000000;color: #000;">&#40;</span><span style="color: #990000;color: #f00;">&quot;a:hover&quot;</span>, <span style="color: #004993;">link</span><span style="color: #000000;color: #000;">&#41;</span>;
	link_txt.<span style="color: #004993;">styleSheet</span> = style;
	link_txt.<span style="color: #004993;">htmlText</span> = <span style="color: #990000;color: #f00;">&quot;&lt;a href=<span style="">\&quot;</span>event:stop<span style="">\&quot;</span>&gt;DETENER&lt;/a&gt;&quot;</span>;
<span style="color: #000000;color: #000;">&#125;</span>
&nbsp;
link_txt.<span style="color: #004993;">addEventListener</span><span style="color: #000000;color: #000;">&#40;</span><span style="color: #004993;">TextEvent</span>.<span style="color: #004993;">LINK</span>, doClick<span style="color: #000000;color: #000;">&#41;</span>;
<span style="color: #004993;">timer</span>.<span style="color: #004993;">addEventListener</span><span style="color: #000000;color: #000;">&#40;</span><span style="color: #990000;color: #f00;">&quot;timer&quot;</span>,parseGeneration<span style="color: #000000;color: #000;">&#41;</span>;
&nbsp;
<span style="color: #004993;">init</span><span style="color: #000000;color: #000;">&#40;</span><span style="color: #000000;color: #000;">&#41;</span>;</pre></div></div>

<p><a href="http://www.mauriciogiraldo.com/blog/2009/10/20/pop-goes-the-weasel/" rel="bookmark">pop goes the weasel</a> originalmente escrito en <a href="http://www.mauriciogiraldo.com/blog">mga/blog</a> en October 20, 2009.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mauriciogiraldo.com/blog/2009/10/20/pop-goes-the-weasel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Múltiples views no-jerárquicas en iPhone</title>
		<link>http://www.mauriciogiraldo.com/blog/2009/10/09/multiples-views-no-jerarquicas-en-iphone/</link>
		<comments>http://www.mauriciogiraldo.com/blog/2009/10/09/multiples-views-no-jerarquicas-en-iphone/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 08:25:29 +0000</pubDate>
		<dc:creator>mga</dc:creator>
				<category><![CDATA[iphone]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.mauriciogiraldo.com/blog/?p=446</guid>
		<description><![CDATA[(English version at the bottom of this post) Recientemente he estado trabajando en XCode y Cocoa Touch para un proyecto que estoy haciendo para el iPhone. Objective-C (el lenguaje de programación usado) tiene sus mañas (como todo lenguaje), pero he encontrado bastante ayuda en la web, gracias especialmente a Stanford, Google y a Stackoverflow. Creo [...]]]></description>
			<content:encoded><![CDATA[<p><object style="width: 192px; height: 380px;" classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" width="192" height="380" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"><param name="src" value="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2009/10/InfiniteViews1.mov" /><param name="align" value="right" /><embed style="width: 192px; height: 380px;" type="video/quicktime" width="192" height="380" src="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2009/10/InfiniteViews1.mov" align="right"></embed></object></p>
<p><em>(English version at the bottom of this post)</em></p>
<p>Recientemente he estado trabajando en <a href="http://developer.apple.com/TOOLS/Xcode/">XCode</a> y <a href="http://developer.apple.com/technology/cocoa.html">Cocoa Touch</a> para un proyecto que estoy haciendo para el iPhone. Objective-C (el lenguaje de programación usado) tiene sus mañas (como todo lenguaje), pero he encontrado bastante ayuda en la web, gracias especialmente a <a href="http://itunes.stanford.edu/">Stanford</a>, Google y a <a href="http://stackoverflow.com/users/160933/mga">Stackoverflow</a>.</p>
<p>Creo que es pertinente devolver algo a la comunidad, en particular a los hispanoparlantes, en este caso en forma de un mini <em>framework</em> para desarrollo de aplicaciones con múltiples pantallas no-jerárquicas ni lineales (simplemente que uno pueda saltar de una pantalla a otra sin ningún orden en particular, cuando el UITabBarController no es una opción). En realidad es <a title=" Framework for having Multiple Views in an iPhone app" href="http://www.pushplay.net/blog_detail.php?id=27">basado en este otro de Jeffrey Berthiaume</a>, pero con la adición de NIBs (Berthiaume hace las pantallas a punta de código).</p>
<p>Algo importante a tener en cuenta al usar NIBs es que para que el iPhone efectivamente libere la memoria usada por NIBs con imágenes, lo mejor es cargarlas con código (pero ese es otro <em>post</em>). De pronto luego pongo un <em>tip</em> acá pero por ahora mejor visite <a title="iphone app with multiple views/subviews: memory is not being deallocated" href="http://stackoverflow.com/questions/1482934/iphone-app-with-multiple-views-subviews-memory-is-not-being-deallocated">mi pregunta al respecto de esto en Stackoverflow</a>.</p>
<p>Si lo que acabo de escribir suena un poco a chino avanzado (para aquellos no familiarizados con Obj-C), en parte es porque lo es (para mi Obj-C ha sido como un camino zen&#8230; el camino del ninja o algo así). Inauguro, entonces, el <em>tag</em> &#8220;iphone&#8221; en mi blog con este ZIP que pueden bajar y usar libremente (y si se le tira el proyecto que está haciendo no me eche la culpa):</p>
<p><a href="http://www.mauriciogiraldo.com/wp-content/uploads/2009/10/InfiniteViews.zip">Descargar InfiniteViews</a></p>
<p>Para que los angloparlantes puedan llegar a este post, a continuación la versión en inglés:</p>
<p><strong>English version</strong></p>
<p>This is a a framework based on <a title=" Framework for having Multiple Views in an iPhone app" href="http://www.pushplay.net/blog_detail.php?id=27">the work of Jeffrey Berthiaume</a> for developing NIB-based iPhone applications with non-linear, non-hierarchichal UIViewControllers, when the UITabBarController is not an option (games with multiple NIBs come to mind). Keep in mind that, in order for Obj-C to free NIBs with UIImageViews from memory, you need to load the images via code <strong>without</strong> using imageNamed. More info regarding this can be seen in <a title="iphone app with multiple views/subviews: memory is not being deallocated" href="http://stackoverflow.com/questions/1482934/iphone-app-with-multiple-views-subviews-memory-is-not-being-deallocated">this question in Stackoverflow</a>:</p>
<p><a href="http://www.mauriciogiraldo.com/wp-content/uploads/2009/10/InfiniteViews.zip">Download InfiniteViews</a></p>
<p><a href="http://www.mauriciogiraldo.com/blog/2009/10/09/multiples-views-no-jerarquicas-en-iphone/" rel="bookmark">Múltiples views no-jerárquicas en iPhone</a> originalmente escrito en <a href="http://www.mauriciogiraldo.com/blog">mga/blog</a> en October 9, 2009.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mauriciogiraldo.com/blog/2009/10/09/multiples-views-no-jerarquicas-en-iphone/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
<enclosure url="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2009/10/InfiniteViews1.mov" length="255554" type="video/quicktime" />
		</item>
		<item>
		<title>El chef recomienda: Johnny Lee y el Wii</title>
		<link>http://www.mauriciogiraldo.com/blog/2008/01/17/el-chef-recomienda-johnny-lee-y-el-wii/</link>
		<comments>http://www.mauriciogiraldo.com/blog/2008/01/17/el-chef-recomienda-johnny-lee-y-el-wii/#comments</comments>
		<pubDate>Thu, 17 Jan 2008 23:42:10 +0000</pubDate>
		<dc:creator>mga</dc:creator>
				<category><![CDATA[arte]]></category>
		<category><![CDATA[ciencia]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[interacción]]></category>
		<category><![CDATA[juegos]]></category>
		<category><![CDATA[música]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[visualización]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.mauriciogiraldo.com/blog/2008/01/17/el-chef-recomienda-johnny-lee-y-el-wii/</guid>
		<description><![CDATA[Varios meses sin publicar acá (un poco distraído en general) pero regreso con unos buenos links. Sin más rodeos: Johnny Wii Johnny Lee es un estudiante de doctorado del Human-Computer Interaction Institute de la Carnegie Mellon University. Lee posee varias patentes y trabaja desarrollando versiones simples y económicas de tecnologías usualmente costosas. Como él mismo [...]]]></description>
			<content:encoded><![CDATA[<p>Varios meses sin publicar acá (un poco distraído en general) pero regreso con unos buenos links. Sin más rodeos:</p>
<p><strong>Johnny Wii</strong></p>
<p><strong><a href="http://www.johnnylee.net">Johnny Lee</a></strong> es un estudiante de doctorado del <a href="http://www.hcii.cmu.edu/">Human-Computer Interaction Institute</a> de la Carnegie Mellon University. Lee posee varias patentes y trabaja desarrollando versiones simples y económicas de tecnologías usualmente costosas. Como él mismo menciona en su <a href="http://www.cs.cmu.edu/~johnny/academic/Research%20Statement.pdf">enunciado de investigación</a>:</p>
<blockquote><p>My work solves real world problems of applying research concepts by simplifying implementation and reducing system cost. This does two things: first, it enables more researchers to explore the domain advancing the state of research; second, it results in a more practical commercialization increasing distribution, adoption, and overall impact.</p></blockquote>
<p>Entre los proyectos de Lee se destaca el trabajo que hace con el <strong>Nintendo Wii</strong>. Usando la tecnología presente en el control del Wii, Lee ha creado desde interfases similares a las que se vieron en la película Minority Report, hasta ambientes inmersivos tridimensionales. Lee <a href="http://www.cs.cmu.edu/~johnny/projects/wii/">documenta sus proyectos Wii en su sitio web</a>. El software requerido para uno implementar esas interfases, si es que tiene un Wii, yo tengo el mío :), está <strong>disponible para descarga</strong>. Sin embargo lo que más descresta es la simplicidad como explica y presenta los proyectos, como se puede ver en el siguiente video:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="373" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent" /><param name="src" value="http://www.youtube.com/v/Jd3-eiid-Uw&amp;rel=1&amp;border=1" /><embed type="application/x-shockwave-flash" width="425" height="373" src="http://www.youtube.com/v/Jd3-eiid-Uw&amp;rel=1&amp;border=1" wmode="transparent"></embed></object><br />
vía <a href="http://gizmodo.com/337068/wii-headtracking-creates-3d-window-display">Gizmodo</a></p>
<p>Hay otro <a href="http://youtube.com/watch?v=0awjPUkBXOU">video de la interfaz tipo Minority Report</a>, un <a href="http://youtube.com/watch?v=5s5EvhHy7eQ">video de un pizarrón electrónico</a> y <a href="http://youtube.com/watch?v=nhSR_6-Y5Kg">un impresionante video de pantallas plegables</a>, todos muy recomendados.</p>
<p><strong>Recomendaciones del chef</strong></p>
<p>Nos gustan las recomendaciones. A pesar de tener una amplia selección en un menú, algunos restaurantes tienen &#8220;menú del día&#8221; o &#8220;el chef recomienda&#8221;. ¿Por qué destacan un producto sobre otro? ¿Acaso no todos los platos son igual de buenos? <strong><a href="http://www.swarthmore.edu/SocSci/bschwar1/">Barry Schwartz</a></strong>, psicólogo y profesor en Swarthmore College plantea en su libro <a href="http://www.amazon.com/dp/0060005688/maurigiral-20">The Paradox of Choice: Why More Is Less</a> que la multiplicidad de opciones no necesariamente nos beneficia:</p>
<blockquote><p>Infinite choice is paralyzing, Schwartz argues, and exhausting to the human psyche. It leads us to set unreasonably high expectations, question our choices before we even make them and blame our failures entirely on ourselves.</p></blockquote>
<p>En <a href="http://www.ted.com/index.php/talks/view/id/93">su charla en TED Talks</a> Schwarz menciona ejemplos que aclaran su idea que <strong>muchas opciones en realidad perjudican nuestro bienestar generándonos un estrés innecesario</strong>. En un restaurante contamos con un mesero que, esperamos, nos va a dar una buena recomendación basada en la información que proveamos: &#8220;no puedo comer pescado y no me gustan los pepinillos&#8221;. En internet, sitios web como Amazon se basan en <strong>millones de clics</strong> que hacen los compradores para encontrar <strong>patrones</strong> que sivan como punto de partida para recomendaciones: de los que compraron la última película de Harry Potter una gran cantidad compró Piratas del Caribe. Entre más compras se hagan (y más compras haga usted) más precisa es la recomendación&#8230; o por lo menos eso creemos; si compra un regalo para alguien con gustos muy diferentes a usted estará &#8220;dañando&#8221; futuras recomendaciones.</p>
<p><img src="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2008/01/lastfm.gif" alt="Last.fm" /></p>
<p><strong>¿Qué me recomienda?</strong></p>
<p>¿Cómo generar un sistema de recomendación más preciso? <strong>Entre más acertada sea la recomendación, más valioso será el sistema.</strong> Precisamente fue esta la razón por la que Google prevaleció sobre Altavista, AskJeeves y otros buscadores que estuvieron primero: daba mejores resultados a las búsquedas (hoy día algunos pueden debatir eso pero ya Google está en una posición ultra dominante que ha sabido explotar). En el mundo musical la cosa es más complicada: ¿si me gusta &#8220;Let It Be&#8221; me van a gustar todas las canciones de los Beatles? ¿solamente las escritas por Paul McCartney? ¿sólo las baladas? ¿sólo las que son dedicadas a alguien cercano al autor? ¿las que tienen determinado patrón compositivo? Todos quisiéramos tener una emisora personalizada que pusiera los <em>hits</em> que más nos gustan pero que también nos sugiera nueva música: que no suene un reguetón después de &#8220;Hey&#8221; de Pixies&#8230; de hecho que no suene <em>nunca</em> un reguetón. Hasta el momento la mayoría de sistemas de recomendación, como los de Amazon y Google, se basan en modelos matemáticos. <a href="http://www.techcrunch.com/2007/08/01/meemix-a-new-breed-of-music-personalization-is-born/">Este artículo</a> cubre (superficialmente) tres aproximaciones a este problema que se reflejan en tres sitios web: MeeMix, Pandora y Last.fm. Para los últimos dos sitios hay <a href="http://www.stevekrause.org/steve_krause_blog/2006/01/pandora_and_las.html">mayor detalle en este otro artículo</a>:</p>
<blockquote><p>Algorithmically, Pandora versus Last.fm is something like the <strong>nature versus nurture</strong> debate. Taking the <strong>nature side</strong>, Pandora&#8217;s recommendations are based on the inherent qualities of the music. Give Pandora an artist or song, and it will find similar music in terms of melody, harmony, lyrics, orchestration, vocal character and so on. Pandora likes to call these musical attributes &#8220;genes&#8221; and its database of songs, classified against hundreds of such attributes, the &#8220;Music Genome Project.&#8221;</p>
<p>On the <strong>nurture side</strong> (as in, it&#8217;s all about the people around you), Last.fm is a social recommender. It knows little about songs&#8217; inherent qualities. It just assumes that if you and a group of other people enjoy many of the same artists, you will probably enjoy other artists popular with that group.</p></blockquote>
<p>Otros están experimentando con la aplicación de algoritmos matemáticos ya no a la recomendación sino a la creación. Dichos algoritmos se inspiran en la evolución biológica (<a href="http://en.wikipedia.org/wiki/Evolutionary_algorithm">reproducción, mutación, recombinación y selección</a>):</p>
<blockquote><p>EAs take two parent designs &#8211; for a boat hull, say &#8211; and blend components of each, perhaps taking the surface area of one and the curvature of another, to produce multiple hull offspring that combine the features of the parents in different ways. Then the algorithm selects those offspring it considers are worth re-breeding &#8211; in this case those with the right combination of parameters to make a better hull. The EA then repeats the process. Although many offspring will be discarded, after thousands of generations or more, useful features accumulate in the same design, and get combined in ways that likely would not have occurred to a human designer.</p>
<p>[...]</p>
<p>To encourage more of this kind of work, SIGEVO runs the annual <a href="http://www.genetic-programming.org/hc2007/cfe2007.html" target="nsarticle">Human Competitiveness Awards</a>, dubbed the &#8220;Humies&#8221;. The idea is to reward designs produced by EAs that are &#8220;competitive with the work of creative and inventive humans&#8221;.</p>
<p>[...]</p>
<p>Celebrated UK innovator James Dyson, inventor of the bagless vacuum cleaner, has a more emotional objection. &#8220;Evolutionary algorithms will mean the end of those exciting stories about how people made great inventions by accident,&#8221; he says. &#8220;Human ingenuity and intuition should remain crucial in making a success of any product.&#8221;</p></blockquote>
<p>El chef recomienda estos otros posts anteriores relacionados:</p>
<ul>
<li><a href="http://www.mauriciogiraldo.com/blog/2007/01/30/wii-rule/">Wii rule</a></li>
<li><a href="http://www.mauriciogiraldo.com/blog/2007/01/25/soundflavor-las-obras-completas-de-charles-darwin/">Soundflavor, las obras completas de Charles Darwin…</a></li>
<li><a href="http://www.mauriciogiraldo.com/blog/2007/04/27/en-busca-de-una-vida-programable/">En busca de una vida programable</a></li>
</ul>
<p><strong>Actualización 2/6/2009:</strong></p>
<p>Desde su salto a la fama, Johnny Lee ha <a href="http://www.ted.com/talks/johnny_lee_demos_wii_remote_hacks.html">hablado en las TED Talks</a> y consiguió trabajo en Microsoft donde está trabajando en Natal, un proyecto que pueden <a href="http://procrastineering.blogspot.com/2009/06/project-natal.html">ver mejor en su blog</a> y en este video:</p>
<p><a href="http://www.mauriciogiraldo.com/blog/2008/01/17/el-chef-recomienda-johnny-lee-y-el-wii/"><em>Click here to view the embedded video.</em></a></p>
<p>Pueden ver una demostración de las diferentes tecnologías disponibles en Natal en la <a href="http://e3.gamespot.com/press-conference/microsoft-e3/">rueda de prensa de Microsoft en E3</a> (fijarse en la parte final del video).</p>
<p><a href="http://www.mauriciogiraldo.com/blog/2008/01/17/el-chef-recomienda-johnny-lee-y-el-wii/" rel="bookmark">El chef recomienda: Johnny Lee y el Wii</a> originalmente escrito en <a href="http://www.mauriciogiraldo.com/blog">mga/blog</a> en January 17, 2008.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mauriciogiraldo.com/blog/2008/01/17/el-chef-recomienda-johnny-lee-y-el-wii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Para que brilles con luz propia</title>
		<link>http://www.mauriciogiraldo.com/blog/2007/05/22/para-que-brilles-con-luz-propia/</link>
		<comments>http://www.mauriciogiraldo.com/blog/2007/05/22/para-que-brilles-con-luz-propia/#comments</comments>
		<pubDate>Tue, 22 May 2007 20:48:45 +0000</pubDate>
		<dc:creator>mga</dc:creator>
				<category><![CDATA[arte]]></category>
		<category><![CDATA[ciencia]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[interacción]]></category>
		<category><![CDATA[programación]]></category>

		<guid isPermaLink="false">http://www.mauriciogiraldo.com/blog/2007/05/22/para-que-brilles-con-luz-propia/</guid>
		<description><![CDATA[Leah Buechley es investigadora en el Departamento de Computer Science de la Universidad de Colorado en Boulder. Investiga con tejidos y joyas buscando una intersección entre los textiles y la tecnologí­a. Un problema común al tratar unir circuitos con textiles son las restricciones que presenta el característico rectángulo rígido de una tarjeta electrónica. Con esto [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.cs.colorado.edu/~buechley/engineering/fabric_PCB.html"><img src="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2007/05/iron-on-circuit.jpg" alt="iron-on circuits" /></a></p>
<p><font class="H2"><a href="http://www.cs.colorado.edu/~buechley/about_me.html">Leah Buechley</a> es investigadora en el </font><font class="P">Departamento de Computer Science     de la Universidad de Colorado en Boulder. Investiga con tejidos y joyas buscando una <strong>intersección entre los textiles y la tecnologí­a</strong>. Un problema común al tratar unir circuitos con textiles son las restricciones que presenta el característico rectángulo rígido de una tarjeta electrónica. Con esto en mente, Buecheley ha desarrollado una <a href="http://www.cs.colorado.edu/~buechley/engineering/fabric_PCB.html" title="fabric PCBs or iron-on circuits">técnica de fijación de circuitos a telas a base de calor</a> (algo como esos estampados que uno puede <a href="http://science.howstuffworks.com/question322.htm" title="How does silk-screening work?">imprimir en casa y pegar con una plancha</a>). Sin las limitaciones de tamaño y rigidez se pueden crear <strong>prendas cómodas, interactivas, programables</strong>. Uno de sus proyectos es el <a href="http://www.cs.colorado.edu/~buechley/projects/e-textile_kit/e-textile_kit2.html" title="e-textile construction kit version 2.0">e-textile construction kit</a>, que explora nuevas posibilidades estéticas para la electrónica y consiste en una serie de &#8220;parches&#8221; como este:  </font></p>
<p><a href="http://www.cs.colorado.edu/~buechley/projects/e-textile_kit/e-textile_kit2.html"><img src="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2007/05/e-textile-kit.jpg" alt="e-textile construction kit 2.0" /></a></p>
<p>&#8230; que se utilizan para crear prendas como esta:</p>
<p><a href="http://www.cs.colorado.edu/~buechley/projects/wearable/tank.html" title="Camiseta de LEDs por Leah Buechley"><img src="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2007/05/wearable.jpg" alt="Camiseta de LEDs" /></a></p>
<p><font class="H2">&#8230; donde los <strong>LEDs en la prenda son controlados desde el parche</strong>. Hay un <a href="http://www.cs.colorado.edu/~buechley/movies/Buechley_ETextiles.mov">video que muestra la prenda en acción</a>. [<a href="http://www.we-make-money-not-art.com/archives/009509.php" title="we make money not art">ví­a</a>]</font></p>
<p><a href="http://www.mauriciogiraldo.com/blog/2007/05/22/para-que-brilles-con-luz-propia/" rel="bookmark">Para que brilles con luz propia</a> originalmente escrito en <a href="http://www.mauriciogiraldo.com/blog">mga/blog</a> en May 22, 2007.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mauriciogiraldo.com/blog/2007/05/22/para-que-brilles-con-luz-propia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.cs.colorado.edu/~buechley/movies/Buechley_ETextiles.mov" length="13741241" type="video/quicktime" />
		</item>
		<item>
		<title>En busca de una vida programable</title>
		<link>http://www.mauriciogiraldo.com/blog/2007/04/27/en-busca-de-una-vida-programable/</link>
		<comments>http://www.mauriciogiraldo.com/blog/2007/04/27/en-busca-de-una-vida-programable/#comments</comments>
		<pubDate>Fri, 27 Apr 2007 23:59:54 +0000</pubDate>
		<dc:creator>mga</dc:creator>
				<category><![CDATA[arte]]></category>
		<category><![CDATA[ciencia]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.mauriciogiraldo.com/blog/2007/04/27/en-busca-de-una-vida-programable/</guid>
		<description><![CDATA[Todas las actividades que hacemos se pueden descomponer en una serie de pasos. Si repetimos dichos pasos, bajo condiciones similares a las originales, los resultados tenderán a ser los mismos de la original. Frecuentemente nos enfrentamos a listados de pasos para lograr objetivos (recetas, manuales, direcciones) que luego memorizamos y modificamos según nos convenga. Los [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.instructables.com/id/ERK1ZODLCBEP286KBZ/" title="Electro-Graf en Instructables"><img src="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2007/04/instructable1.jpg" alt="Instructables 1" /></a></p>
<p>Todas las actividades que hacemos se pueden descomponer en una serie de pasos. Si repetimos dichos pasos, bajo condiciones similares a las originales, los resultados tenderán a ser los mismos de la original. Frecuentemente nos enfrentamos a listados de pasos para lograr objetivos (recetas, manuales, direcciones) que luego memorizamos y modificamos según nos convenga. Los lingüistas llaman a estas <em>recetas</em> <a href="http://es.wikipedia.org/wiki/Algoritmo" title="Algoritmo en Wikipedia">algoritmos</a>: una lista finita de instrucciones para lograr una tarea que, dado un estado inicial, terminará en una estado final determinado.</p>
<p><a href="http://www.instructables.com/id/ERK1ZODLCBEP286KBZ/" title="Electro-Graf en Instructables"><img src="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2007/04/instructable2.jpg" alt="Instructables 2" /></a></p>
<p>Los algoritmos fueron inicialmente definidos y utilizados por los matemáticos para lograr cálculos complejos (como <a href="http://mathworld.wolfram.com/ArchimedesAlgorithm.html" title="Algoritmo de Arquímedes">encontrar aproximaciones a Pi</a>, <a href="http://mathworld.wolfram.com/EuclideanAlgorithm.html" title="Algoritmo de Euclides">encontrar el máximo común denominador</a> y <a href="http://mathworld.wolfram.com/NewtonsMethod.html" title="Método de Newton">encontrar raí­ces de números</a>). Los algoritmos también son usados por programadores para desarrollar software como el que ahora les permite leer este artí­culo. Inspirados por esto y por <a href="http://www.theatlantic.com/doc/194507/bush" title="artículo en The Atlantic"><em>As We May Think</em></a>, un legendario artí­culo publicado en 1945 por <a href="http://en.wikipedia.org/wiki/Vannevar_Bush" title="Vannevar Bush en Wikipedia">Vannevar Bush</a> (y el cual vale la pena <a href="http://www.theatlantic.com/doc/194507/bush" title="As We May Think">leer</a>), la gente de <a href="http://www.squid-labs.com/">Squid-Labs</a> creó <a href="http://www.instructables.com/">Instructables</a>:</p>
<blockquote><p>We like to think about the physical world as something that is programmable. We like to think of objects or stuff you make as &#8216;code&#8217;. In other words, we are approaching the physical world as something that is describable and replicable. CAD files are obviously part of this. The CAD file I use to design and cut out my bicycle parts is the same file that you can use to cut similar bicycle parts. However this is not everything, CAD descriptions alone don&#8217;t fully describe heating schedules, or filing methods&#8230; the art involved in certain processes of making things. [...] We are trying to think about the &#8216;art&#8217; or &#8216;skills&#8217; required to actually build things as defineable, sequential sub-routines that can be well illustrated with words and pictures. Cooking is an excellent example, processes like sauteeing, frying, filleting, and mashing are generic subroutines that have specific instances which require other detail for different meats. If you are writing a recipe, why not call upon the generic sauteeing subroutine and just add the unique details specific to your recipe. [<a href="http://www.instructables.com/about/fullstory.jsp" title="About Instructables">texto completo</a>]</p></blockquote>
<p><a href="http://www.instructables.com/id/ERK1ZODLCBEP286KBZ/" title="Electro-Graf en Instructables"><img src="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2007/04/instructable3.jpg" alt="Instructables 3" /></a></p>
<p>En Instructables se pueden encontrar instrucciones para hacer cualquier cosa en diferentes categorí­as como <a href="http://www.instructables.com/tag/type:instructable/category:art/">arte</a>, <a href="http://www.instructables.com/tag/type:instructable/category:tech/">tecnologí­a</a> y <a href="http://www.instructables.com/tag/type:instructable/category:food/">comida</a>. Si no encuentra lo que quiere construir puede contribuir sus propias instrucciones. Contribuciones notables incluyen <a href="http://www.instructables.com/id/E897F4SS6AEP28750F/">instrucciones para hacer cerveza</a>, <a href="http://www.instructables.com/id/EP4I4EWF05IO1YO/">para hacer un <em>bananófono</em>?</a> y <a href="http://www.instructables.com/ex/i/95C0F26AF25910288451001143E7E506/">para crear <em>graffitis</em> electrónicos</a>, o Electro-Grafs (las imágenes de este artí­culo son de este último). Los Electro-Grafs son una idea original de <a href="http://a.parsons.edu/~roth/thesis/TEMP_graf_analysis/index.html">Evan Roth</a> y <a href="http://a.parsons.edu/~jk/thesis/">Joshua Kinberg</a> desarrollada durante sus estudios en el Parsons School of Design. El <a href="http://graffitiresearchlab.com/">Graffiti Research Lab</a>, un grupo de diseñadores/artistas/<em>geeks</em> que forma parte del <a href="http://research.eyebeam.org/">Eyebeam OpenLab</a> y que experimentan e investigan con diversas tecnologías, adoptó los Electro-Grafs:</p>
<blockquote><p>The Graffiti Research Lab is dedicated to outfitting graffiti writers, artists and protesters with open source tools for urban communication. The goal of the G.R.L. is to technologically empower individuals to creatively alter and reclaim their surroundings from commercial and corporate culture.</p></blockquote>
<p>Hay un <a href="http://graffitiresearchlab.com/?page_id=13#video">video</a> del proceso (algoritmo :) ) de elaboración de un Electro-Graf:</p>
<p><a href="http://graffitiresearchlab.com/?page_id=13#video" title="Electro-Graf en Instructables"><img src="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2007/04/electrograf.jpg" alt="Electro-Graf" /></a></p>
<p>Gracias a <a href="http://www.fritolandia.com">Leonardo Parra</a> por sus aclaraciones sobre los Electro-Grafs.</p>
<p><a href="http://www.mauriciogiraldo.com/blog/2007/04/27/en-busca-de-una-vida-programable/" rel="bookmark">En busca de una vida programable</a> originalmente escrito en <a href="http://www.mauriciogiraldo.com/blog">mga/blog</a> en April 27, 2007.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mauriciogiraldo.com/blog/2007/04/27/en-busca-de-una-vida-programable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Complejidad y visualización</title>
		<link>http://www.mauriciogiraldo.com/blog/2007/04/24/complejidad-y-visualizacion/</link>
		<comments>http://www.mauriciogiraldo.com/blog/2007/04/24/complejidad-y-visualizacion/#comments</comments>
		<pubDate>Wed, 25 Apr 2007 04:28:23 +0000</pubDate>
		<dc:creator>mga</dc:creator>
				<category><![CDATA[ciencia]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[información]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[visualización]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.mauriciogiraldo.com/blog/2007/04/24/complejidad-y-visualizacion/</guid>
		<description><![CDATA[El clima, el tráfico terrestre y aéreo, las interacciones sociales, son todos ejemplos de sistemas complejos. La complejidad hace parte de nuestra cotidianidad y la mayorí­a de la veces no somos conscientes de ello. Un ejemplo reciente de visualización de información compleja (y el debate asociado que puede llegar a generarse por discrepancia de opiniones) [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.visualcomplexity.com/"><img src="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2007/04/visualcomplexitycom.jpg" alt="visualcomplexity.com" /></a></p>
<p>El clima, el tráfico terrestre y aéreo, las interacciones sociales, son todos ejemplos de <a href="http://es.wikipedia.org/wiki/Sistema_complejo" title="sistemas complejos en Wikipedia">sistemas complejos</a>. La <a href="http://en.wikipedia.org/wiki/Complexity" title="complejidad en Wikipedia (inglÃ©s)">complejidad</a> hace parte de nuestra cotidianidad y la mayorí­a de la veces no somos conscientes de ello. Un ejemplo reciente de visualización de información compleja (y el debate asociado que puede llegar a generarse por discrepancia de opiniones) es el documental ganador del Oscar <a href="http://www.climatecrisis.net/" title="sitio web oficial">An Inconvenient Truth</a>. El documental busca encender una alarma a nivel mundial respecto al problema del calentamiento global. Al margen de la controversia como tal está la <strong>eficacia del uso de gráficos e imágenes al comunicar un mensaje</strong>. Sobre este tema hay <a href="http://www.adobe.com/designcenter/thinktank/womack.html" title="Seeing is believing: Information visualization and the debate over global warming">un interesante artí­culo en Adobe.com</a>:</p>
<blockquote><p>Information visualization is able to communicate the intricacies of global warming in a way no other discipline can. Its messages can be immediate and powerful, without sacrificing the level of detail necessary to represent the complex subject accurately.</p></blockquote>
<p><a href="http://www.visualcomplexity.com/">VisualComplexity.com</a> es un sitio web que recopila y clasifica numerosos ejemplos de visualización de información compleja. <a href="http://www.visualcomplexity.com/vc/index.cfm?domain=Art">Arte</a>, <a href="http://www.visualcomplexity.com/vc/index.cfm?domain=Biology">biologí­a</a>, <a href="http://www.visualcomplexity.com/vc/index.cfm?domain=Social%20Networks">redes sociales</a> y <a href="http://www.visualcomplexity.com/vc/index.cfm?domain=Music">música</a> son algunas de sus categorí­as:</p>
<blockquote><p>VisualComplexity.com intends to be a unified resource space for anyone interested in the visualization of complex networks. The project&#8217;s main goal is to leverage a critical understanding of different visualization methods, across a series of disciplines, as diverse as Biology, Social Networks or the World Wide Web. [<a href="http://www.visualcomplexity.com/vc/about.cfm" title="About VC">texto completo</a>]</p></blockquote>
<p><a href="http://www.mauriciogiraldo.com/blog/2007/04/24/complejidad-y-visualizacion/" rel="bookmark">Complejidad y visualización</a> originalmente escrito en <a href="http://www.mauriciogiraldo.com/blog">mga/blog</a> en April 24, 2007.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mauriciogiraldo.com/blog/2007/04/24/complejidad-y-visualizacion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ze Frank, carátulas, juegos de video</title>
		<link>http://www.mauriciogiraldo.com/blog/2007/04/03/ze-frank-caratulas-juegos-de-video/</link>
		<comments>http://www.mauriciogiraldo.com/blog/2007/04/03/ze-frank-caratulas-juegos-de-video/#comments</comments>
		<pubDate>Wed, 04 Apr 2007 04:04:17 +0000</pubDate>
		<dc:creator>mga</dc:creator>
				<category><![CDATA[arte]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[juegos]]></category>
		<category><![CDATA[música]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.mauriciogiraldo.com/blog/2007/04/03/ze-frank-caratulas-juegos-de-video/</guid>
		<description><![CDATA[Hosea Jan Frank, mejor conocido como Ze Frank, es un diseñador/humorista que se dio a conocer a nivel mundial en 2001 con una curiosa postal de cumpleaños que hizo en su tiempo libre. How to dance properly serí­a reenviada hasta la saciedad por quienes la vieron convirtiendo a Ze Frank en una celebridad de la [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.zefrank.com/theshow/archives/2006/03/031706.html" title="primer episodio de The Show"><img src="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2007/04/zefrank.jpg" alt="Ze Frank" /></a></p>
<p>Hosea Jan Frank, mejor conocido como <a href="http://www.zefrank.com/" title="sitio web personal">Ze Frank</a>, es un diseñador/humorista que se dio a conocer a nivel mundial en 2001 con una <a href="http://www.zefrank.com/invite/swfs/index2.html" title="How to dance properly">curiosa postal de cumpleaños</a> que hizo en su tiempo libre. <a href="http://www.zefrank.com/invite/swfs/index2.html">How to dance properly</a> serí­a reenviada hasta la saciedad por quienes la vieron convirtiendo a Ze Frank en una celebridad de la noche a la mañana. <a href="http://www.zefrank.com/">Otros proyectos</a> seguirí­an al inicial. El 17 de abril de 2006 Ze Frank da inicio a <a href="http://www.zefrank.com/theshow">The Show</a>, su video blog (<em>vlog</em>), un proyecto que actualizará durante los dí­as hábiles y que culminó exactamente un año después. Ze Frank usó su <em>vlog </em>para expresar sus ideas socio-polí­ticas, contar chistes y hasta para organizar el <a href="http://www.zefrank.com/theshow/archives/2006/07/071406.html">concurso a la página más fea de MySpace</a> (vale la pena <a href="http://www.zefrank.com/theshow/archives/2006/07/071406.html">ver ese episodio</a>). Los seguidores del show se tomaron el trabajo de crear un <a href="http://www.zefrank.com/thewiki/Main_Page">sitio web paralelo</a> que contiene transcripciones de los programas, <a href="http://www.zefrank.com/theshow/popular.html">listado de los programas más populares</a>, trivia y no sé cuantas cosas más (vaya grupo de <em>fans</em>).</p>
<p>Terminado The Show, Ze Frank da inicio a <a href="http://www.zefrank.org/">The ORG</a> un sitio web que busca agrupar a las personas que han simpatizado con sus proyectos y que tiene herramientas de colaboración interesantes, como un visualizador geográfico de los registrados (al momento hay tres personas de Colombia en tres ciudades diferentes). The ORG hace uso de interfaces de programación disponibles en sitios como Flickr para integrar contenidos externos. Para ver el sitio web es necesario registrarse.</p>
<p><img src="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2007/04/joydivision.jpg" alt="Joy Division - Unknown Pleasures" /></p>
<p>Esta es la carátula de <a href="http://www.amazon.com/gp/product/B000002LGL/102-4171447-4860126?ie=UTF8&#038;tag=maurigiral-20&#038;linkCode=xm2&#038;camp=1789&#038;creativeASIN=B000002LGL" title="el disco en amazon">Unknown Pleasures</a>, álbum debut de <a href="http://www.allmusic.com/cg/amg.dll?p=amg&amp;sql=11:gbfuxql5ldje~T1" title="perfil de la banda en All Music Guide">Joy Division</a>, banda originaria de Manchester, Reino Unido (una de mis favoritas&#8230; carátulas y bandas). Joy Division es considerada por muchos como una de las bandas más influyentes del rock y la carátula de Unkown Pleasures uno de los clásicos en el diseño (que de hecho se ha convertido en una camiseta muy vendida). Diseñada por <a href="http://www.btinternet.com/~comme6/saville/index222.htm" title="sitio web personal">Peter Saville</a> (desconozco si está recibiendo regalías por la camiseta), está basada en la gráfica de cien pulsos consecutivos del <a href="http://en.wikipedia.org/wiki/PSR_B1919%2B21" title="qué diablos es el pulsar CP 1919 según Wikipedia">pulsar CP 1919</a>. No obstante, con el surgimiento de las descargas digitales, algunos se preocupan por la extinción de un arte que se considera parte integral de la imagen de una banda. Eliot Van Buskirk, de la revista Wired, escribe <a href="http://www.wired.com/entertainment/music/commentary/listeningpost/2007/03/listeningpost_0402" title="Designers Work to Rescue a Dying Art Form: the Album Cover">un artí­culo interesante</a> sobre el futuro (si es que lo hay) de esta área del diseño que a muchos todaví­a nos genera nostalgia:</p>
<blockquote><p>Because of all the players involved, the future of album art depends on which digital packaging formats emerge as standards for computers, portable devices and televisions. White thinks that when it comes to deploying new digital album packages, there&#8217;s no time like the present, and that an open standard will emerge on its own.</p></blockquote>
<p><a href="http://www.wired.com/entertainment/music/commentary/listeningpost/2007/03/listeningpost_0402" title="Designers Work to Rescue a Dying Art Form: the Album Cover">Leer artí­culo completo</a>. Hablando de descargas digitales, Apple <a href="http://www.apple.com/pr/library/2007/04/02itunes.html">acaba de anunciar un acuerdo con EMI</a> en el cual venderán música de mayor calidad (256 kbps) y sin protección anti-copia (la música que uno compra por iTunes no se puede copiar de un iPod/computador a otro, esto se conoce mejor como <a href="http://en.wikipedia.org/wiki/Digital_Rights_Management" title="DRM en Wikipedia">DRM</a>). Esperemos esto sea el inicio del fin del absurdo control que las disqueras quieren tener sobre la música que uno compra. Todo esto está relacionado con <a href="http://www.apple.com/hotnews/thoughtsonmusic" title="Steve Jobs - Thoughts on music">una carta</a> que recientemente publicó Steve Jobs (presidente de Apple) haciendo un llamado personal a las disqueras a poner fin a los DRM. Hay un <a href="http://www.wired.com/entertainment/music/news/2007/04/cultofmac_0403">artí­culo relacionado en Wired</a> y al parecer este acuerdo <a href="http://techdirt.com/articles/20070403/095209.shtml" title="Steve Jobs Not Quite So Enthusiastic About DRM-Free Video">todaví­a no implica</a> el fin de las mismas restricciones en descargas de video.</p>
<p>[There is a video that cannot be displayed in this feed. <a href="http://www.mauriciogiraldo.com/blog/2007/04/03/ze-frank-caratulas-juegos-de-video/">Visit the blog entry to see the video.]</a></p>
<p>Para los que hemos crecido con los juegos de video (desde el &#8220;<a href="http://en.wikipedia.org/wiki/Pong" title="Pong en Wikipedia">telebolito</a>&#8221; hasta el <a href="http://www.mauriciogiraldo.com/blog/2007/01/30/wii-rule/">Nintendo Wii</a>) no es de sorprenderse cuando vemos que hay personas que se toman el trabajo de <strong>personificar</strong> dichos juegos. El video anterior muestra los primeros minutos y combates de <a href="http://en.wikipedia.org/wiki/Punchout" title="el juego en Wikipedia">Mike Tyson&#8217;s Punch-Out!!</a>, un juego de Nintendo de 1984. A continuación una obra que montaron unos japoneses (tení­an que ser japoneses, ¿no?) en honor al juego:</p>
<p>[There is a video that cannot be displayed in this feed. <a href="http://www.mauriciogiraldo.com/blog/2007/04/03/ze-frank-caratulas-juegos-de-video/">Visit the blog entry to see the video.]</a></p>
<p>Al parecer los suizos también tienen tiempo de sobra; este es un montaje dirigido por un suizo inspirado en el &#8220;telebolito&#8221;:</p>
[There is a video that cannot be displayed in this feed. <a href="http://www.mauriciogiraldo.com/blog/2007/04/03/ze-frank-caratulas-juegos-de-video/">Visit the blog entry to see the video.]</a>
<p>Del mismo grupo ahora un video basado en <a href="http://en.wikipedia.org/wiki/Space_invaders" title="Space Invaders en Wikipedia">Space Invaders</a>:</p>
[There is a video that cannot be displayed in this feed. <a href="http://www.mauriciogiraldo.com/blog/2007/04/03/ze-frank-caratulas-juegos-de-video/">Visit the blog entry to see the video.]</a>
<p>¡Hay más! Uno de Pole Position:</p>
[There is a video that cannot be displayed in this feed. <a href="http://www.mauriciogiraldo.com/blog/2007/04/03/ze-frank-caratulas-juegos-de-video/">Visit the blog entry to see the video.]</a>
<p>Los juegos de video han permeado la cultura. Hay <a href="http://www.8bitmovie.com/" title="sitio web oficial">un documental</a>, del cual <a href="http://www.mauriciogiraldo.com/blog/2007/01/25/arquitecturas-de-control-diseno-iterativo/" title="post anterior en mga/blog">ya se habí­a hecho mención antes acá</a>, que explora la influencia de los juegos de video en la cultura contemporánea. Para terminar, el <em>trailer</em>:</p>
[There is a video that cannot be displayed in this feed. <a href="http://www.mauriciogiraldo.com/blog/2007/04/03/ze-frank-caratulas-juegos-de-video/">Visit the blog entry to see the video.]</a>
<p><strong>Actualización:</strong> encontré <a href="http://www.designobserver.com/archives/024171.html" title="Are JPEGs the New Album Covers?">otro artí­culo relacionado con el diseño de carátulas en Design Observer</a>.</p>
<p><a href="http://www.mauriciogiraldo.com/blog/2007/04/03/ze-frank-caratulas-juegos-de-video/" rel="bookmark">Ze Frank, carátulas, juegos de video</a> originalmente escrito en <a href="http://www.mauriciogiraldo.com/blog">mga/blog</a> en April 3, 2007.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mauriciogiraldo.com/blog/2007/04/03/ze-frank-caratulas-juegos-de-video/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Visualización de información, diseño de interfaces, naturaleza y código</title>
		<link>http://www.mauriciogiraldo.com/blog/2007/04/03/visualizacion-de-informacion-diseno-de-interfaces-naturaleza-y-codigo/</link>
		<comments>http://www.mauriciogiraldo.com/blog/2007/04/03/visualizacion-de-informacion-diseno-de-interfaces-naturaleza-y-codigo/#comments</comments>
		<pubDate>Tue, 03 Apr 2007 18:14:54 +0000</pubDate>
		<dc:creator>mga</dc:creator>
				<category><![CDATA[arte]]></category>
		<category><![CDATA[ciencia]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[información]]></category>
		<category><![CDATA[interacción]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[visualización]]></category>

		<guid isPermaLink="false">http://www.mauriciogiraldo.com/blog/2007/04/03/visualizacion-de-informacion-diseno-de-interfaces-naturaleza-y-codigo/</guid>
		<description><![CDATA[Visualizar información de manera clara y acertada es una tarea delicada: datos mal representados pueden costar vidas (como en el caso del transbordador espacial Challenger). Edward Tufte, profesor de estadística, diseño gráfico y economía en la universidad de Yale, es reconocido por su habilidad para crear gráficos informativos (infographics o infografía) y por sus constantes [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Visualizar información</strong> de manera clara y acertada es una tarea delicada: datos mal representados pueden costar vidas (<a href="http://www.asktog.com/books/challengerExerpt.html" title="The Challenger: An Information Disaster">como en el caso del transbordador espacial Challenger</a>). <a href="http://www.edwardtufte.com/" title="sitio web personal">Edward Tufte</a>, profesor de estadística, diseño gráfico y economía en la universidad de Yale, es reconocido por su habilidad para crear gráficos informativos (<em>infographics</em> o infografía) y por sus constantes crí­ticas al mal uso de herramientas de presentación (como Microsoft PowerPoint) por parte de presentadores y diseñadores. <a href="http://www.amazon.com/gp/product/0961392142/102-4171447-4860126?ie=UTF8&amp;tag=maurigiral-20&amp;linkCode=xm2&amp;camp=1789&amp;creativeASIN=0961392142">The Visual Display of Quantitative Information</a> es uno de sus libros, el cual tuvo que publicar personalmente ya que no consiguió editorial que se ajustara a sus exigencias:</p>
<blockquote><p>No publisher would print it to his exacting standards. Tufte wanted the book to exemplify the design principles he articulated. It had to have lavish, abundant, high-resolution images and footnotes alongside the text so a reader wouldn&#8217;t have to flip pages to find a reference. The book had to be printed on thick, creamy paper and sell for a reasonable price, about $30. &#8220;Publishers seemed appalled at the prospect that an author might govern design,&#8221; he later wrote. So he took out a second mortgage at nearly 18 percent interest and produced the book himself.<br />
<em>The Visual Display of Quantitative Information</em> was instantly hailed as a classic.</p></blockquote>
<p>La cita forma parte de un <a href="http://www.stanfordalumni.org/news/magazine/2007/marapr/features/tufte.html">artí­culo</a> de la Universidad de Stanford dedicado a Tufte.</p>
<p><a href="http://www.amazon.com/gp/product/0961392126/102-4171447-4860126?ie=UTF8&amp;tag=maurigiral-20&amp;linkCode=xm2&amp;camp=1789&amp;creativeASIN=0961392126">Visual Explanations: Images and Quantities, Evidence and Narrative</a>, <a href="http://www.amazon.com/gp/product/0961392118/102-4171447-4860126?ie=UTF8&amp;tag=maurigiral-20&amp;linkCode=xm2&amp;camp=1789&amp;creativeASIN=0961392118">Envisioning Information</a> y <a href="http://www.amazon.com/gp/product/0961392169/102-4171447-4860126?ie=UTF8&amp;tag=maurigiral-20&amp;linkCode=xm2&amp;camp=1789&amp;creativeASIN=0961392169">The Cognitive Style of PowerPoint: Pitching Out Corrupts Within</a> (su crí­tica personal a PowerPoint) son otros tres libros dedicados al mismo tema con aproximaciones y ejemplos diferentes. Uno de los ejemplos más interesantes que utiliza Tufte es el <a href="http://www.edwardtufte.com/tufte/minard">diagrama de la incursión y posterior retirada de Napoleón a Rusia</a> elaborado por Charles Joseph Minard en 1869&#8230; se recomienda <a href="http://www.edwardtufte.com/tufte/minard">ver el diagrama</a>.</p>
<p>El <strong>diseño de interfaces humano-computador</strong> es otro tema relevante: por medio del <em>software</em>, los usuarios (diseñadores, escritores, economistas) quieren <em>hacer</em> algo (dibujar un boceto, escribir un guión, realizar cálculos). Depende de la interfaz que se diseña el facilitar esa tarea. <a href="http://www.joelonsoftware.com/" title="sitio web personal">Joel Spolsky</a>, quien formó parte del primer grupo de desarrolladores de Microsoft Excel® antes de trabajar por su cuenta, dice al respecto:</p>
<blockquote><p>It has been said that design is the art of <em>making choices</em>. When you design a trash can for the corner, you have to make choices between conflicting requirements. It needs to be heavy so it won&#8217;t blow away. It needs to be light so the trash collector can dump it out. It needs to be large so it can hold a lot of trash. It needs to be small so it doesn&#8217;t get in peoples&#8217; way on the sidewalk. When you are designing, and you try to abdicate your responsibility by forcing the user to decide something, you&#8217;re probably not doing your job.</p></blockquote>
<p>Lo anterior forma parte de <a href="http://www.joelonsoftware.com/uibook/chapters/fog0000000059.html" title="User Interface Design for Programmers">una serie de artí­culos</a> que escribió y que vale la pena leer.</p>
<p><a href="http://portfolio.barbariangroup.com/nextfest/video.html"><img src="http://www.mauriciogiraldo.com/blog/wp-content/uploads/2007/04/grass.jpg" alt="Grass" /></a></p>
<p><a href="http://www.nextfest.net/">WIRED NextFest</a> es una feria anual promovida por la <a href="http://www.wired.com/" title="sitio web Wired">revista WIRED</a> que busca hacer reminiscencia de <a href="http://en.wikipedia.org/wiki/Centennial_Exposition" title="1876 Philadelphia">las</a> <a href="http://en.wikipedia.org/wiki/World%27s_Columbian_Exposition" title="1893 Chicago">grandes</a> <a href="http://en.wikipedia.org/wiki/Exposition_Universelle_%281900%29" title="1900 Paris">ferias</a> <a href="http://www.e-architect.co.uk/barcelona/barcelona_pavilion_photos.htm" title="1929 Barcelona">mundiales</a> de los siglos 19 y 20. <a href="http://portfolio.barbariangroup.com/nextfest/index.html">Grass</a> es una instalación interactiva desarrollada por The Barbarian Group que fue presentada en el NextFest 2006. En ella habí­a una pantalla gigante generada por cuatro proyectores. La imagen proyectada se ve afectada por el movimiento de las personas cerca a la pantalla. Se recomienda <a href="http://portfolio.barbariangroup.com/nextfest/video.html">ver el video</a>. El movimiento del pasto<strong> se modela a partir de un proceso matemático</strong> llamado <a href="http://en.wikipedia.org/wiki/Perlin_noise" title="Ruido Perlin en Wikipedia (inglés)">Ruido Perlin</a> que también se utiliza en <em>software</em> 3D para generar texturas, humo y otros efectos que necesiten de una apariencia natural. <a href="http://www.shiffman.net/" title="sitio web personal">Daniel Shiffman</a>, profesor en el Interactive Telecommunications Program del Tisch School of the Arts de NYU, tiene <a href="http://www.shiffman.net/teaching/" title="cursos de Daniel Shiffman en ITP">una serie de cursos</a> que abordan esa temática del <a href="http://www.shiffman.net/teaching/nature" title="The Nature of Code">modelado de la naturaleza a partir de la programación</a>. Shiffman tiene unos <a href="http://www.shiffman.net/teaching/nature/week-1/" title="ejemplos de números aleatorios, probabilidad y ruido Perlin">ejemplos y explicaciones de Ruido Perlin</a> desarrollados usando <a href="http://www.processing.org/" title="sitio web Processing">Processing</a>.</p>
<p>A continuación un discurso de Steve Jobs (con subtí­tulos) en una ceremonia de grado de la Universidad de Stanford:</p>
<p>[There is a video that cannot be displayed in this feed. <a href="http://www.mauriciogiraldo.com/blog/2007/04/03/visualizacion-de-informacion-diseno-de-interfaces-naturaleza-y-codigo/">Visit the blog entry to see the video.]</a></p>
<p><a href="http://www.mauriciogiraldo.com/blog/2007/04/03/visualizacion-de-informacion-diseno-de-interfaces-naturaleza-y-codigo/" rel="bookmark">Visualización de información, diseño de interfaces, naturaleza y código</a> originalmente escrito en <a href="http://www.mauriciogiraldo.com/blog">mga/blog</a> en April 3, 2007.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mauriciogiraldo.com/blog/2007/04/03/visualizacion-de-informacion-diseno-de-interfaces-naturaleza-y-codigo/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
