<?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>Gabriel Rodriguez Plancarte &#187; Desarrollo Web</title>
	<atom:link href="http://gabrielrodriguez.net/category/desarrollo-web/feed/" rel="self" type="application/rss+xml" />
	<link>http://gabrielrodriguez.net</link>
	<description>Tecnologia, Diseño, Negocios y Desarrollo</description>
	<lastBuildDate>Mon, 29 Mar 2010 07:58:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Como poner imagenes en correos o paginas sin usar etiquetas de img o attachments</title>
		<link>http://gabrielrodriguez.net/como-poner-imagenes-en-correos-o-paginas-sin-usar-etiquetas-de-img-o-attachments/</link>
		<comments>http://gabrielrodriguez.net/como-poner-imagenes-en-correos-o-paginas-sin-usar-etiquetas-de-img-o-attachments/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 07:58:45 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Diseño Web]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=741</guid>
		<description><![CDATA[Habrá veces que queremos desplegar una imagen en un correo o en una página web sin utilizar una etiqueta (tag) de &#60;img&#62;. O también que en una hoja de estilos (CSS) queramos especificar literalmente el contenido de la imagen en lugar de hacer referencia a ella en algún path.
Utilizando Data URI Schemes, podemos especificar el [...]]]></description>
			<content:encoded><![CDATA[<p>Habrá veces que queremos <strong>desplegar una imagen en un correo o en una página web sin utilizar una etiqueta (tag) de &lt;img&gt;</strong>. O también que en una hoja de estilos (CSS) queramos especificar literalmente el contenido de la imagen en lugar de hacer referencia a ella en algún path.</p>
<p>Utilizando <a title="Data URI Schemes" href="http://en.wikipedia.org/wiki/Data_URI_scheme">Data URI Schemes</a>, podemos <strong>especificar el &#8220;string&#8221; de Base64 que equivale a una imagen gráfica</strong>. Es decir, estamos <strong>especificando &#8220;in-line&#8221; la imagen, en formato de datos</strong>, en lugar de utilizar una etiqueta img que implica la localización de la imagen como un recurso externo.</p>
<p>Es decir..es lo mismo poner esto:</p>
<pre class="brush: xml;">
&lt;img src=&quot;images/dotnet.gif alt=&quot;dotnet&quot; /&gt;
</pre>
<p>que esto:</p>
<pre class="brush: xml;">

&lt;img alt=&quot;dotnet&quot; src=&quot;data:image/gif;base64,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&quot; /&gt;
</pre>
<p>Ahora, cómo saber el <strong>Base64 string </strong>de una imagen? Podemos utilizar la herramienta online llamada &#8220;<a title="Image to Base64 Converter" href="http://webcodertools.com/imagetobase64converter"><strong>Image to Base64 converter</strong></a>&#8220;, hecha por <a title="Mads Kristensen" href="http://madskristensen.net/">Mads Kristensen</a>, un excelente desarrollador de .NET. Mads trabaja en ZYB.</p>
<p><a title="Data URIs - CSS Tricks" href="http://css-tricks.com/data-uris/">Chris Coyier, de CSS Tricks, también escribió recientemente sobre Data URIs</a> y los comentarios en su blog post son interesantes. Chris también hace referencia a otra herramienta, similar a la de Mads, llamada <a title="Image to Data URI Convertor" href="http://websemantics.co.uk/online_tools/image_to_data_uri_convertor/">Image to Data URI convertor</a>.</p>
<p>Esto es sólamente una técnica, una manera más de lograr las cosas, que podría ser la más correcta o no, dependiendo de los escenarios. Los Data URIs también tienen algunas limitantes:</p>
<ul>
<li>En Internet Explorer, solo funcionan en la version 8 en adelante.</li>
<li>En IE8, los Data URIs estan limitados a 32k, por lo que solo podrían servir para imagenes meramente decorativas, no fotos de alta resolución, etc.</li>
<li>Las imágenes no son cacheadas por separado, así que si el HTML o CSS se vuelve a descargar, las imágenes obviamente también.</li>
</ul>
<p>Evalúen sus opciones, y espero les sirva.</p>
]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/como-poner-imagenes-en-correos-o-paginas-sin-usar-etiquetas-de-img-o-attachments/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MIX10 &#8211; excelentes conferencias y recursos de desarrollo</title>
		<link>http://gabrielrodriguez.net/mix10-excelentes-conferencias-y-recursos-de-desarrollo/</link>
		<comments>http://gabrielrodriguez.net/mix10-excelentes-conferencias-y-recursos-de-desarrollo/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 22:19:31 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Diseño Web]]></category>
		<category><![CDATA[MIX]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=734</guid>
		<description><![CDATA[
Del pasado 15 al 17 de Marzo se llevó a cabo la conferencia MIX10, que es una serie de conferencias de diseño y desarrollo web organizada por Microsoft, con platicas impartidas por la gente que está causando más impacto en la comunidad de desarrollo online (las sesiones son escogidas en base a votos, durante meses [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-735" title="MIX10 Logo" src="http://gabrielrodriguez.net/wp-content/uploads/2010/03/mix10-logo.png" alt="MIX10" width="218" height="62" /></p>
<p>Del pasado 15 al 17 de Marzo se llevó a cabo la conferencia <strong>MIX10</strong>, que es una <strong>serie de conferencias de diseño y desarrollo web </strong>organizada por Microsoft, con platicas impartidas por la gente que está causando más impacto en la comunidad de desarrollo online (las sesiones son escogidas en base a votos, durante meses anteriores al evento).</p>
<p>Las platicas de este año se ve que estuvieron muy interesantes&#8230;así que aquí les dejo las ligas a los videos de las pláticas y también a una muy buena sección de recursos que armaron en el site de <strong>MIX10</strong>, con ligas a <strong>guías de desarrollo</strong> para <strong>Windows 7 Phone Series, Silverlight 4, WCF RIA</strong> y otros tantos temas que son lo relevante de hoy en día.</p>
<p>Algunas de las pláticas fueron:</p>
<ul>
<li>Overview of the Windows Phone 7 Series Application Platform</li>
<li>10 Ways to Attack a Design Problem and Come Out Winning</li>
<li>Stepping Outside the Browser with Microsoft Silverlight 4</li>
<li>Total Experience Design</li>
<li>Understanding the Model-View-ViewModel Pattern</li>
<li>Beyond File | New Company: From Cheesy Sample to Social Platform</li>
<li>The Microsoft Silverlight Analytics Framework</li>
</ul>
<p>Ligas:</p>
<p><a title="MIX10 - The Next Web Now Homepage" href="http://live.visitmix.com/">MIX10 &#8211; The Next Web Now</a></p>
<p><a title="MIX10 - Resources Page (Windows 7 Phone Series, Silverlight 4, etc)" href="http://live.visitmix.com/Resources">MIX10 &#8211; Resources Page (Windows 7 Phone Series, Silverlight 4, etc)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/mix10-excelentes-conferencias-y-recursos-de-desarrollo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como hacer funcionar los Server Side Includes (SSI) en IIS 7 para archivos HTML</title>
		<link>http://gabrielrodriguez.net/como-hacer-funcionar-los-server-side-includes-ssi-en-iis-7-para-archivos-html/</link>
		<comments>http://gabrielrodriguez.net/como-hacer-funcionar-los-server-side-includes-ssi-en-iis-7-para-archivos-html/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 19:10:17 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Problemas y Soluciones]]></category>
		<category><![CDATA[Windows 7]]></category>
		<category><![CDATA[Configuracion]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Server Side Includes]]></category>
		<category><![CDATA[SSI]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=592</guid>
		<description><![CDATA[Por lo general, IIS trae preconfigurados los SSI (Server Side Includes) para los archivos de tipo .shtml. Sin embargo, puede haber ocasiones en que estemos agregando funcionalidad de SSI a un sitio ya existente, y cuyos archivos tenian extensiones .html.
Para estos casos, lo que tenemos que hacer es agregar un Module Mapping en IIS para [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_595" class="wp-caption alignnone" style="width: 310px"><img class="size-full wp-image-595" title="IIS 7 Logo" src="http://gabrielrodriguez.net/wp-content/uploads/2009/12/iis-7-logo.jpg" alt="IIS 7 Logo" width="300" height="215" /><p class="wp-caption-text">IIS 7 Logo</p></div>
<p>Por lo general, <strong>IIS </strong>trae preconfigurados los <strong>SSI (Server Side Includes) para los archivos de tipo .shtml</strong>. Sin embargo, puede haber ocasiones en que estemos agregando funcionalidad de SSI a un sitio ya existente, y cuyos archivos tenian extensiones <strong>.html</strong>.</p>
<p>Para estos casos, lo que tenemos que hacer es agregar un <strong>Module Mapping </strong>en <strong>IIS </strong>para que los <strong>archivos con extension .html sean manejados por el modulo correcto</strong>. Como todo, hay algunos detalles que si no se hacen de cierta manera, las cosas no van a funcionar. Batallé como 2 horas para hacer funcionar esto, así que lo escribo por si a alguien le ahorra tiempo.</p>
<p><strong>Pasos para hacer funcionar SSI para archivos HTML en IIS 7</strong></p>
<p><strong>1. </strong>Start -&gt; Run -&gt; <strong>inetmgr </strong>-&gt; enter.<br />
<strong>2. </strong>En el arbol/menu de la izquierda, <strong>seleccionar la aplicacion especifica que queremos configurar</strong>. Si no se selecciona una aplicación en especifico, estaríamos modificando los mappings para todo IIS, y puede que no sea esto lo que queramos.<br />
<strong>3. </strong>Doble click en <strong>Handler Mappings</strong></p>
<p><strong> </strong></p>
<div id="attachment_599" class="wp-caption alignnone" style="width: 651px"><a href="http://gabrielrodriguez.net/wp-content/uploads/2009/12/iis-7-handler-mappings.png"><strong><strong><img class="size-full wp-image-599  " title="IIS 7 Handler Mappings" src="http://gabrielrodriguez.net/wp-content/uploads/2009/12/iis-7-handler-mappings.png" alt="IIS 7 Handler Mappings" width="641" height="379" /></strong></strong></a><p class="wp-caption-text">IIS 7 Handler Mappings</p></div>
<p><strong> </strong></p>
<p><strong>4.</strong> Podemos notar que ya existen 3 Mappings con el prefijo <strong>SSINC</strong>, para los archivos de tipo <strong>.shtml, .stm y .shtm</strong><br />
<strong>5.</strong> Hacemos click derecho en cualquier mapping, y seleccionamos la opción <strong>Add Module Mapping.</strong></p>
<div id="attachment_600" class="wp-caption alignnone" style="width: 489px"><img class="size-full wp-image-600" title="Module Mappings de SSI en IIS 7" src="http://gabrielrodriguez.net/wp-content/uploads/2009/12/iis-7-ssi-module-mappings.png" alt="Module Mappings de SSI en IIS 7" width="479" height="444" /><p class="wp-caption-text">Module Mappings de SSI en IIS 7</p></div>
<p><strong>6.</strong> Llenamos el campo <strong>Request Path</strong> con el valor <strong>*.html</strong>, para que aplique para todos los archivos .html.</p>
<div id="attachment_601" class="wp-caption alignnone" style="width: 481px"><img class="size-full wp-image-601" title="Nuevo Module Mapping para SSI en IIS 7" src="http://gabrielrodriguez.net/wp-content/uploads/2009/12/SSINC-html-module-mapping.png" alt="Nuevo Module Mapping para SSI en IIS 7" width="471" height="407" /><p class="wp-caption-text">Nuevo Module Mapping para SSI en IIS 7</p></div>
<p><strong>7.</strong> En el campo <strong>Module</strong>, seleccionamos la opción de <strong>ServerSideIncludeModule</strong>.<br />
<strong>8. </strong>Y en el campo de <strong>Name</strong>, para ser consistentes con las otras extensiones, podemos usar el valor <strong>SSINC-html</strong>.<br />
<strong>9.</strong> Hacemos click en el botón de <strong>Request Restrictions</strong>.<br />
<strong>10. Activar</strong> el checkbox de &#8220;<strong>Activate Handler only if request is mapped to</strong>&#8220;, y seleccionar la opción de <strong>File</strong>.</p>
<div id="attachment_602" class="wp-caption alignnone" style="width: 481px"><img class="size-full wp-image-602" title="Request Restrictions para el Module Mapping de SSI" src="http://gabrielrodriguez.net/wp-content/uploads/2009/12/iis-7-module-mapping-request-restrictions.png" alt="Request Restrictions para el Module Mapping de SSI" width="471" height="384" /><p class="wp-caption-text">Request Restrictions para el Module Mapping de SSI</p></div>
<p>Ahora, IIS ya está configurado. Pero hay un par de detalles más que hay que tomar en cuenta.</p>
<p>Se pueden llegar a topar con el error &#8220;<strong>Error processing SSI file</strong>&#8221; de IIS.</p>
<p>Para solucionar esto yo tuve que hacer 2 cosas:</p>
<p>1.Asegurarse que el usuario <strong>IIS_IUSRS tenga acceso total</strong> al folder donde esta físicamente el sitio.</p>
<div id="attachment_596" class="wp-caption alignnone" style="width: 388px"><img class="size-full wp-image-596" title="IIS 7 SSI Correct File Permissions" src="http://gabrielrodriguez.net/wp-content/uploads/2009/12/iis-7-ssi-correct-file-permissions.png" alt="IIS 7 SSI Correct File Permissions" width="378" height="487" /><p class="wp-caption-text">IIS 7 SSI Correct File Permissions</p></div>
<p>2. En el archivo HTML, al hacer el include, <strong>usar la opción file en lugar de virtual</strong>.</p>
<div id="attachment_597" class="wp-caption alignnone" style="width: 440px"><img class="size-full wp-image-597" title="Usar file en lugar de virtual al hacer un include de SSI en IIS" src="http://gabrielrodriguez.net/wp-content/uploads/2009/12/ssi-in-html-iis.png" alt="Usar file en lugar de virtual al hacer un include de SSI en IIS" width="430" height="127" /><p class="wp-caption-text">Usar file en lugar de virtual al hacer un include de SSI en IIS</p></div>
<p>[Update] Se me olvidó mencionar que obviamente, como este Mapping hace que todos los archivos .html sean interpretados por el modulo de Server Side Include, <strong>estamos haciendo que IIS ya no trate los archivos .html como si fueran estaticos</strong>, lo cual implica <strong>una mínima perdida de performance de compresión,</strong> y un <strong>mínimo overhead de procesamiento</strong> para los archivos HTML solamente. Para mas información, pueden leer el cuarto comentario de este link, hecho por un MVP de IIS: <a title="Enable SSI to include an HTML File" href="http://www.issociate.de/board/goto/1039169/Enable_SSI_to_include_an_HTML_file.html">Enable SSI to include an HTML File</a>.</p>
<p>Y eso es todo&#8230;espero les sirva. Si tienen dudas o problemas, dejen un comentario.</p>
]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/como-hacer-funcionar-los-server-side-includes-ssi-en-iis-7-para-archivos-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tip: Problema con multiples etiquetas de FORM en una WebForm de ASP.NET</title>
		<link>http://gabrielrodriguez.net/tip-problema-con-multiples-etiquetas-de-form-en-una-webform-de-asp-net/</link>
		<comments>http://gabrielrodriguez.net/tip-problema-con-multiples-etiquetas-de-form-en-una-webform-de-asp-net/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 20:53:59 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Webforms]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=586</guid>
		<description><![CDATA[Estoy trabajando en adaptar un diseño HTML/CSS a una aplicación existente de ASP.NET, en Webforms.
Ya estando casi todo lo visual adaptado, y viendose bien, me faltaba transformar una forma de log-in a mark-up de XML, para poder hacer el código de Login.
Como el usuario debía poder loggearse desde cualquier ASPX de la parte pública, decidi [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_381" class="wp-caption alignnone" style="width: 250px"><img class="size-full wp-image-381" title=".NET Logo" src="http://gabrielrodriguez.net/wp-content/uploads/2009/07/net-logo.png" alt=".NET Logo" width="240" height="74" /><p class="wp-caption-text">.NET Logo</p></div>
<p>Estoy trabajando en <strong>adaptar un diseño HTML/CSS</strong> a una aplicación existente de <strong>ASP.NET</strong>, en <strong>Webforms</strong>.</p>
<p>Ya estando casi todo lo visual adaptado, y viendose bien, me faltaba transformar una forma de log-in a mark-up de XML, para poder hacer el código de Login.</p>
<p>Como el usuario debía poder loggearse desde cualquier ASPX de la parte pública, decidi transformar los controles de log-in originales en un <strong>ASP.NET User Control (ASCX)</strong>, para poder tener la logica de todo el log-in en un solo lugar, y poder <strong>reutilizar el User Control en todas las paginas publicas</strong>.</p>
<p>Cree el puro ASCX con el Markup, y abri la pagina en IE. Todo bien.</p>
<p>Convertí el <em>&lt;input type=&#8221;button&#8221;&gt;</em> a un <em>&lt;asp:ImageButton&gt;</em>.  <strong>Error</strong>, tengo que agregar la etiqueta de <strong>&lt;form runat=server&gt;</strong>.</p>
<p>Agregué la etiqueta, View in Browser, no mas error, pero todo el contenido del panel derecho se desplazó hacia abajo.</p>
<p>Despues de batallar como 1 hora con el problema, e intentar googlear, me topé con un artículo que tenía como título &#8220;<a title="Multiple forms causing strange CSS problem - ASP.NET Forums" href="http://forums.asp.net/p/1467879/3391989.aspx">Multiple forms causing strange CSS problem</a>&#8220;. Pero yo no tengo multiples formas (eso creí), así que lo ignoré.</p>
<p>Despues de media hora de moverle&#8230;recordé que <strong>todo el problema empezó cuando agregué la etiqueta de &lt;form runat=server&gt; al ASPX</strong>. Regreso al mark-up del <strong>User Control (ASCX) </strong>y ahi estaba&#8230;no había borrado la etiqueta de &lt;form&gt; original al momento de pasar el HTML de la forma de log-in.</p>
<p>Borre la etiqueta de &lt;form&gt; del User Control, y listo&#8230;el diseño se ve bien otra vez.</p>
<p>Así que como moraleja&#8230;.<strong>Tener mas de una etiqueta &lt;form&gt; en una ASP.NET Webform te genera problemas raros de CSS</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/tip-problema-con-multiples-etiquetas-de-form-en-una-webform-de-asp-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>7 Diferencias de Javascript entre Internet Explorer y Firefox</title>
		<link>http://gabrielrodriguez.net/7-diferencias-de-javascript-entre-internet-explorer-y-firefox/</link>
		<comments>http://gabrielrodriguez.net/7-diferencias-de-javascript-entre-internet-explorer-y-firefox/#comments</comments>
		<pubDate>Sat, 02 May 2009 00:28:31 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=300</guid>
		<description><![CDATA[Hace poco estaba pensando en posibles preguntas para usar en entrevistas de trabajo que me toca hacer de vez en cuando a desarrolladores orientados a aplicaciones web.
Ésta fue una de las que se me ocurrió, y me dio risa la coincidencia de ver un post escrito sobre esto practicamente al mismo tiempo que pensé en [...]]]></description>
			<content:encoded><![CDATA[<p>Hace poco estaba pensando en posibles<strong> preguntas para usar en entrevistas de trabajo </strong>que me toca hacer de vez en cuando a <strong>desarrolladores orientados a aplicaciones web</strong>.</p>
<p>Ésta fue una de las que se me ocurrió, y me dio risa la coincidencia de ver un post escrito sobre esto practicamente al mismo tiempo que pensé en la pregunta.</p>
<p>Alguien que <strong>realmente ha desarrollado aplicaciones web</strong> tiene que <strong>conocer </strong>las<strong> principales diferencias</strong> a la hora de programar Javascript para los navegadores principales, los <strong>work-arounds, hacks</strong>, etc.</p>
<p><a title="7 Diferencias de Javascript entre Internet Explorer (IE) y Firefox" href="http://www.impressivewebs.com/7-javascript-differences-between-firefox-ie/">ImpressiveWebs: 7 JavaScript Differences Between Firefox &amp; IE</a></p>
]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/7-diferencias-de-javascript-entre-internet-explorer-y-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
