<?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"
	>

<channel>
	<title>Pablo Marambio</title>
	<atom:link href="http://pablomarambio.cl/feed/" rel="self" type="application/rss+xml" />
	<link>http://pablomarambio.cl</link>
	<description>Tecnología &#38; desarrollo</description>
	<pubDate>Mon, 14 Jun 2010 02:00:57 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Storage en Windows Azure: Colas y Blobs</title>
		<link>http://pablomarambio.cl/2010/06/storage-en-windows-azure-colas-y-blobs/</link>
		<comments>http://pablomarambio.cl/2010/06/storage-en-windows-azure-colas-y-blobs/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 00:30:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[azure]]></category>

		<category><![CDATA[Desarrollo]]></category>

		<guid isPermaLink="false">http://pablomarambio.cl/?p=47</guid>
		<description><![CDATA[Esta es una versión un poco más producida, y escrita en .NET, de lo que presentó Steve Marx en su charla &#8220;Building Java Applications with Windows Azure&#8220;. La idea es mostrar cómo se puede usar la API de almacenamiento de Azure a través de un wrapper, en este caso el que fue escrito para .NET.
El [...]]]></description>
			<content:encoded><![CDATA[<p>Esta es una versión un poco más producida, y escrita en .NET, de lo que presentó Steve Marx en su charla &#8220;<a href="http://microsoftpdc.com/Sessions/SVC50">Building Java Applications with Windows Azure</a>&#8220;. La idea es mostrar cómo se puede usar la API de almacenamiento de Azure a través de un wrapper, en este caso el que fue escrito para .NET.</p>
<p>El ejemplo es bastante simple: Una aplicación web que sirve para aumentar un contador, el que es incrementado cada vez que se hace click sobre un botón. El contador se almacena como texto en un blob.</p>
<p>La aplicación cuenta con dos vistas:</p>
<ul>
<li>La primera incrementa directamente el contador modificando el valor del blob cada vez que se hace click sobre el botón.</li>
<li>La segunda deja un mensaje en una cola para que <em>&#8220;otro&#8221;</em> se encargue de incrementar el contador en el blob. Ese<em> &#8220;otro&#8221;</em> es el<em> &#8220;back-end&#8221;</em> de la aplicación; en este caso, un proceso independiente corriendo en otra máquina virtual dentro de Windows Azure.</li>
</ul>
<p>La arquitectura de cada vista es más o menos como sigue:</p>
<ul>
<li> Para la primera vista, la acción de hacer click sobre el botón &#8220;incrementar&#8221; se traduce automáticamente en una escritura del blob.</li>
</ul>
<div id="attachment_48" class="wp-caption alignnone" style="width: 278px"><a href="http://pablomarambio.cl/wp-content/uploads/2010/06/acceso-directo.png"><img class="size-medium wp-image-48 " title="primnera-vista-acceso-directo" src="http://pablomarambio.cl/wp-content/uploads/2010/06/acceso-directo-268x300.png" alt="Incremento síncrono" width="268" height="300" /></a><p class="wp-caption-text">Incremento síncrono</p></div>
<ul>
<li>Para la segunda vista, sin embargo, el hacer click sobre el botón sólo deja un mensaje para que el back-end incremente el valor del blob, cuando lo estime conveniente.</li>
</ul>
<div id="attachment_50" class="wp-caption alignnone" style="width: 310px"><a href="http://pablomarambio.cl/wp-content/uploads/2010/06/acceso-indirecto.png"><img class="size-medium wp-image-50 " title="escritura-blob-acceso-indirecto" src="http://pablomarambio.cl/wp-content/uploads/2010/06/acceso-indirecto-300x263.png" alt="Incremento asíncrono" width="300" height="263" /></a><p class="wp-caption-text">Incremento asíncrono</p></div>
<ul>
<li>Por otra parte, cada cierto tiempo, el rol trabajador (&#8221;<em>el otro</em>&#8220;, como fue describido más arriba) se encarga de aumentar el blob por cada mensaje existente en la cola.</li>
</ul>
<div id="attachment_51" class="wp-caption alignnone" style="width: 289px"><a href="http://pablomarambio.cl/wp-content/uploads/2010/06/acceso-worker.png"><img class="size-medium wp-image-51 " title="escritura-blob-ciclo-worker" src="http://pablomarambio.cl/wp-content/uploads/2010/06/acceso-worker-279x300.png" alt="Ciclo del proceso back-end" width="279" height="300" /></a><p class="wp-caption-text">Ciclo del proceso back-end</p></div>
<p>El código de la aplicación de ejemplo es provisto como una solución de visual studio que puede ser descargado al final de este post. Cuenta con dos proyectos principales, uno para la aplicación web (&#8221;web role&#8221;) y otro para el back-end (&#8221;worker role&#8221;). Además, cuenta con un tercer proyecto que almancena los componentes y servicios comunes a ambos roles.</p>
<p>Los requisitos para poder compilar y probar esta solución son:</p>
<ul>
<li><a href="http://www.microsoft.com/express/">Visual Studio 2010</a></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=2274a0a8-5d37-4eac-b50a-e197dc340f6f&amp;displaylang=en">Cloud Service 1.1 o superior</a> (Cloud Service es el ambiente de desarrollo para Windows Azure)</li>
<li><a href="http://www.castleproject.org/castle/download.html">Castle Windsor 2.1</a> (inversor de dependencias; me resulta más fácil escribir aplicaciones web ASP.NET MVC con un componente de este tipo). Este componente <strong>está incluido</strong> como binario en la solución.</li>
<li><a href="http://mvccontrib.codeplex.com/">Mvc Contrib</a> (muchas funcionalidades, pero para este caso, permite usar Castle Windsor fácilmente). Este componente <strong>está incluido</strong> como binario en la solución.</li>
<li><a href="http://jquery.com/">jQuery 1.4.2</a> (biblioteca javascript para mostrar los mensajes en la cola). Este componente <strong>está incluido</strong> como código fuente en la solución.</li>
</ul>
<p>Si además estás interesado en probar este proyecto directamente sobre Windows Azure, te recomiendo echarle una mirada a <a href="http://www.microsoft.com/windowsazure/getstarted/">las ofertas que hace MSDN</a> al respecto.</p>
<p>Happy coding!</p>
<p><strong>Descargas:</strong> solución con código fuente y algunas dependencias en formato binario (<a href="http://cid-a4bc23c0a6a02abf.office.live.com/self.aspx/P%C3%BAblico/Ejemplo%20colas%20y%20blobs.zip">link</a>).</p>
]]></content:encoded>
			<wfw:commentRss>http://pablomarambio.cl/2010/06/storage-en-windows-azure-colas-y-blobs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Presentación sobre Windows Azure</title>
		<link>http://pablomarambio.cl/2010/06/presentacion-sobre-windows-azure/</link>
		<comments>http://pablomarambio.cl/2010/06/presentacion-sobre-windows-azure/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 14:36:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Desarrollo]]></category>

		<category><![CDATA[.NET]]></category>

		<category><![CDATA[azure]]></category>

		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://pablomarambio.cl/?p=40</guid>
		<description><![CDATA[Ayer en la tarde tuve el privilegio de dar una charla sobre Windows Azure junto a Luis Hereira (a.k.a. &#8220;Luisón&#8221;) en las oficinas de Microsoft Chile.
Entre otros, hice 3 demos:

Cómo usar la API de storage sobre .NET y Java,
Cómo subir &#8220;otros programas&#8221; a la nube (ver Apache Tomcat corriendo sobre Windows Azure), y
Qué estrategias se [...]]]></description>
			<content:encoded><![CDATA[<p>Ayer en la tarde tuve el privilegio de dar una charla sobre <a href="http://windowsazure.com">Windows Azure</a> junto a Luis Hereira (a.k.a. &#8220;Luisón&#8221;) en las oficinas de Microsoft Chile.</p>
<p>Entre otros, hice 3 demos:</p>
<ul>
<li>Cómo usar la API de storage sobre .NET y Java,</li>
<li>Cómo subir &#8220;otros programas&#8221; a la nube (ver <a href="http://tomcat-comunidadesms.cloudapp.net">Apache Tomcat corriendo sobre Windows Azure</a>), y</li>
<li>Qué estrategias se pueden seguir para desacoplar distintas partes de una aplicación</li>
</ul>
<p>Desde ya hago la promesa de subir tanto la presentación como las demos a este sitio durante el fin de semana. Lamentablemente, hoy no puedo hacerlo puesto que tengo que trabajar como loco (esto de preparar presentaciones te quita algo de tiempo&#8230;).</p>
<p>Por ahora, dejo para los fanáticos de Windows Azure la dirección al sitio web con los mejores instructores con los que cuenta la plataforma hasta ahora: los de <a href="http://channel9.msdn.com/shows/Cloud+Cover/" target="_blank">Cloud Cover</a>. Échenle una mirada a esos webcasts: son entretenidos, fáciles de seguir y, además, gratis <img src='http://pablomarambio.cl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://pablomarambio.cl/2010/06/presentacion-sobre-windows-azure/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Trucos y chorezas en C#</title>
		<link>http://pablomarambio.cl/2008/09/trucos-y-chorezas-en-c-sharp/</link>
		<comments>http://pablomarambio.cl/2008/09/trucos-y-chorezas-en-c-sharp/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 19:22:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Desarrollo]]></category>

		<category><![CDATA[.NET]]></category>

		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://pablomarambio.cl/?p=35</guid>
		<description><![CDATA[Cada programador tiene una manera personal de trabajar, de impregnar en el código que ha escrito una especie de firma personal. Y es que después de trabajar años con el mismo lenguaje, uno va formando una especie de relación con éste (&#60;nota&#62; ok, eso puede haber sonado demasiado ñoño, pero espera a que conozcas un [...]]]></description>
			<content:encoded><![CDATA[<p>Cada programador tiene una manera personal de trabajar, de impregnar en el código que ha escrito una especie de firma personal. Y es que después de trabajar años con el mismo lenguaje, uno va formando una especie de relación con éste (&lt;nota&gt; ok, eso puede haber sonado demasiado ñoño, pero espera a que conozcas un lenguaje especial&#8230; <img src='http://pablomarambio.cl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &lt;/nota&gt;). Al principio puedes no llevarte muy bien, pero al cabo de cierto tiempo, le vas tomando el gusto a trabajar con él y lo vas conociendo mejor (&lt;nota&gt; me gustaría poder referirme al lenguaje como &#8220;ella&#8221;, pero hasta que no los llamen &#8220;lengua&#8221;, tendré que aguantarme :) &lt;/nota&gt;). Lo que es yo, ya tengo elegido el lenguaje de mi preferencia: C#. </p>
<p>Ahora bien, quien se jacta de conocer íntimamente un lenguaje, debe tener dominadas, o al menos conocer, las técnicas &#8220;ocultas&#8221; del mismo. En el caso de mi lenguaje, C#, estas son muchas&#8230; más bien muchísimas. La razón es que este lenguaje ha mostrado una evolución muy acelerada en sus cortos años de vida: De hecho, los cambios que se le introdujeron en la versión 2.0 (generics, delegados anónimos, etc.) no son nada en comparación con los que se ven en la versión actual de C#, acompañando la versión 3.5 del .NET Framework. Por lo mismo, quien lleva trabajando un tiempo con él no conoce necesariamente toda su potencialidad.</p>
<p>Un lugar donde la comunidad de usuarios se ha pronunciado y ha elegido los trucos más cool de este potente lenguaje es la nueva página de conocimiento colaborativo llamada <a href="http://stackoverflow.com/questions/9033/hidden-features-of-c">StackOverflow</a>. Dicho sea de paso, esta página web está construida sobre <a href="http://www.asp.net/mvc">ASP.NET MVC</a>, un framework que un desarrollador web .NET debe conocer.</p>
]]></content:encoded>
			<wfw:commentRss>http://pablomarambio.cl/2008/09/trucos-y-chorezas-en-c-sharp/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Luchando con wp-syntax</title>
		<link>http://pablomarambio.cl/2008/08/a-ver-probemos-el-plugin/</link>
		<comments>http://pablomarambio.cl/2008/08/a-ver-probemos-el-plugin/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 19:13:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Desarrollo]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://pablomarambio.cl/?p=17</guid>
		<description><![CDATA[<br />
<b>Warning</b>:  require_once(geshi.php) [<a href='function.require-once'>function.require-once</a>]: failed to open stream: No such file or directory in <b>/home/pablomar/public_html/wp-content/plugins/codesnippet/codesnippet.php</b> on line <b>215</b><br />
<br />
<b>Fatal error</b>:  require_once() [<a href='function.require'>function.require</a>]: Failed opening required 'geshi.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in <b>/home/pablomar/public_html/wp-content/plugins/codesnippet/codesnippet.php</b> on line <b>215</b><br />
