<?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>Andrés SmerkinDesarrollo Web &#187; Andrés Smerkin</title>
	<atom:link href="http://www.andressmerkin.com.ar/category/desarrollo-web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.andressmerkin.com.ar</link>
	<description>Tecnología, desarrollo web, software libre y algo más</description>
	<lastBuildDate>Sat, 28 May 2011 04:11:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Un Plugin de Foursquare para CakePHP</title>
		<link>http://www.andressmerkin.com.ar/2011/05/un-plugin-de-foursquare-para-cakephp/</link>
		<comments>http://www.andressmerkin.com.ar/2011/05/un-plugin-de-foursquare-para-cakephp/#comments</comments>
		<pubDate>Sat, 28 May 2011 04:10:34 +0000</pubDate>
		<dc:creator>Andrés</dc:creator>
				<category><![CDATA[Herramientas y Recursos]]></category>

		<guid isPermaLink="false">http://www.andressmerkin.com.ar/?p=222</guid>
		<description><![CDATA[CakePHP es un framework enorme con un montón de cosas fantásticas, y como sabrás, la mejor manera de aprender los conceptos de la herramienta es sumergirse en ella. Recientemente he estado aprendiendo sobre las APIs de las redes sociales y &#8230;<p class="read-more"><a href="http://www.andressmerkin.com.ar/2011/05/un-plugin-de-foursquare-para-cakephp/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.andressmerkin.com.ar/wp-content/uploads/2011/05/FourSquare-Logo-Image.png"><img class="alignright size-full wp-image-220" title="Foursquare Logo" src="http://www.andressmerkin.com.ar/wp-content/uploads/2011/05/FourSquare-Logo-Image.png" alt="Foursquare Logo" width="200" height="200" /></a>CakePHP es un framework enorme con un montón de cosas fantásticas, y como sabrás, la mejor manera de aprender los conceptos de la herramienta es sumergirse en ella.</p>
<p>Recientemente he estado aprendiendo sobre las APIs de las redes sociales y como manejan los sistemas de autenticación de usuarios. La mayoría de ellas utiliza el nuevo <a title="Sitio Web del Estandar OAuth" rel="nofollow" href="http://oauth.net/">Estandar OAuth</a>, el cual permite a los sitios publicar a través de sus APIs información de los usuarios con un alto nivel de seguridad y protección.</p>
<p>Por otro lado, he estado jugando un poco con los DataSources de CakePHP para obtener la información desde las APIs y hacer un montón de cosas divertidas. Es increíble lo que uno puede aprender cuando enfrenta un desafío en el cual no se conoce nada sobre una tecnología y debe investigarse desde el principio.</p>
<p>Si juntamos las APIs y los datasources, el desafío es crear un plugin que permita conectar a alguna red social e interactuar con ella. La red social elegida es Foursquare, debido a que cumple con todos los requisitos y no pude encontrar ningún buen plugin para ella (Hay algunos datasources que interactuan con la vieja API).</p>
<p>Como último punto, también estoy aprendiendo a usar GIT, así que alojé el plugin en Github. Tal vez quieras descargarlo y probarlo. Cualquier tipo de ayuda es bienvenida.</p>
<p>URL del Plugin: <a href="https://github.com/asmerkin/CakePHP-Foursquare-Plugin">https://github.com/asmerkin/CakePHP-Foursquare-Plugin</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.andressmerkin.com.ar/2011/05/un-plugin-de-foursquare-para-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rebinding con JQuery &#8211; Arreglando nuestro javascript luego de llamadas en AJAX</title>
		<link>http://www.andressmerkin.com.ar/2011/05/rebinding-con-jquery-arreglando-nuestro-js-luego-de-llamadas-en-ajax/</link>
		<comments>http://www.andressmerkin.com.ar/2011/05/rebinding-con-jquery-arreglando-nuestro-js-luego-de-llamadas-en-ajax/#comments</comments>
		<pubDate>Fri, 06 May 2011 03:19:11 +0000</pubDate>
		<dc:creator>Andrés</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Herramientas y Recursos]]></category>

		<guid isPermaLink="false">http://www.andressmerkin.com.ar/?p=212</guid>
		<description><![CDATA[El Problema A veces puede surgirnos el problema de que luego de una llamada a AJAX con JQuery, mediante funciones como $.ajax o $.load, algunos de nuestros eventos dejen de funcionar. También puede suceder que a veces mediante Ajax o &#8230;<p class="read-more"><a href="http://www.andressmerkin.com.ar/2011/05/rebinding-con-jquery-arreglando-nuestro-js-luego-de-llamadas-en-ajax/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<h2>El Problema</h2>
<p>A veces puede surgirnos el problema de que luego de una llamada a AJAX con JQuery, mediante funciones como $.ajax o $.load, algunos de nuestros eventos dejen de funcionar. También puede suceder que a veces mediante Ajax o javascript generemos elementos del DOM a los que queremos asignarles un evento en particular. Pués posiblemente los eventos para estos elementos nuevos no funcionen.</p>
<h3>¿Por qué ocurre esto?</h3>
<p>Cuando realizamos la llamada a $(&#8216;document&#8217;).ready(fn) esta se encarga de inicializar todos nuestros binds para que estén disponibles en nuestras páginas. Entiendase un bind como la funcion .bind(&#8216;event&#8217;, fn), la cual tiene shortcuts como .click, .mouseover, etc.</p>
<p>Cuando realizamos una llamada a AJAX, nuestro DOM sufre modificaciones, haciendo que los binds anteriores queden obsoletos. Lo que tenemos que hacer es volver a ejecutar esos binds de los elementos para que vuelvan a estar disponibles después de la llamada AJAX.</p>
<p>Para ser un poco más claros, cuando JQuery carga su método ready(), a los elementos del DOM seleccionados les aplica algo similar a lo que muestra el siguiente ejemplo:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p212code3'); return false;">Ver código</a> HTML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2123"><td class="code" id="p212code3"><pre class="html" style="font-family:monospace;">&lt;li onmouseenter=&quot;function()...&quot; onmouseleave=&quot;...&quot;&gt;...&lt;/li&gt;</pre></td></tr></table></div>

<p>Cuando ocurren las llamadas AJAX esas modificaciones se pierden. Lo que nosotros tenemos que hacer es lograr que JQuery vuelva a cargar los eventos asignados a los elementos del DOM.</p>
<h2>Solución</h2>
<p>Vamos a ver un pequeño segmento de código:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p212code4'); return false;">Ver código</a> JAVASCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p2124"><td class="code" id="p212code4"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'document'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    iniciarBinds<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    $.<span style="color: #660066;">ajax</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
          url<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;test.html&quot;</span><span style="color: #339933;">,</span>
          context<span style="color: #339933;">:</span> document.<span style="color: #660066;">body</span><span style="color: #339933;">,</span>
          success<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
               $<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;done&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
               iniciarBinds<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
          <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #003366; font-weight: bold;">function</span> iniciarBinds<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#target'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
               <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Handler for .click() called.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>En el ejemplo anterior vemos como realizar el rebind mencionado. En la función iniciarBinds() colocamos todos aquellos binds que puedan llegar a sufrir debido a la llamada AJAX. Luego, al principio de la llamada a $(document).ready() llamamos a la funcion iniciarBinds(). El rebinding surge después de la llamada en AJAX, en el caso de &#8220;success&#8221;. Como podemos ver, nuevamente estamos llamando a la funcion iniciarBinds(). Si no hicieramos esto, los binds creados se perderían a causa de modificaciones de la estructura del DOM, pero con el rebinding los eventos se refrescan para todos los elementos, incluyendo las modificaciones.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andressmerkin.com.ar/2011/05/rebinding-con-jquery-arreglando-nuestro-js-luego-de-llamadas-en-ajax/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Modernizr y Selectivizr &#8211; Dos librerías Javascript para potenciar nuestros desarrollos web</title>
		<link>http://www.andressmerkin.com.ar/2011/02/modernizr-y-selectivizr-dos-librerias-javascript-para-potenciar-nuestros-desarrollos-web/</link>
		<comments>http://www.andressmerkin.com.ar/2011/02/modernizr-y-selectivizr-dos-librerias-javascript-para-potenciar-nuestros-desarrollos-web/#comments</comments>
		<pubDate>Thu, 10 Feb 2011 02:07:20 +0000</pubDate>
		<dc:creator>Andrés</dc:creator>
				<category><![CDATA[Herramientas y Recursos]]></category>

		<guid isPermaLink="false">http://www.andressmerkin.com.ar/?p=178</guid>
		<description><![CDATA[Buscando algunas herramientas Javascript y leyendo algunos libros, como Hardboiled Web Design, de Andy Clarke, me he cruzado con estas dos excelentes herramientas para poder potenciar nuestros diseños y desarrollos web y utilizar las últimas tecnologías disponibles, pudiendo controlar mejor &#8230;<p class="read-more"><a href="http://www.andressmerkin.com.ar/2011/02/modernizr-y-selectivizr-dos-librerias-javascript-para-potenciar-nuestros-desarrollos-web/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Buscando algunas herramientas Javascript y leyendo algunos libros, como <a title="Hardboiled Web Design" href="http://www.andressmerkin.com.ar/2011/01/hardboiled-web-design-por-andy-clarke/" target="_self">Hardboiled Web Design</a>, de Andy Clarke, me he cruzado con estas dos excelentes herramientas para poder potenciar nuestros diseños y desarrollos web y utilizar las últimas tecnologías disponibles, pudiendo controlar mejor el renderizado de nuestros sitios web en navegadores que no soporten dichas tecnologías.</p>
<h3>Modernizr</h3>
<p><a href="http://www.andressmerkin.com.ar/wp-content/uploads/2011/02/modernizr.png"><img class="alignright size-medium wp-image-179" title="modernizr" src="http://www.andressmerkin.com.ar/wp-content/uploads/2011/02/modernizr-300x124.png" alt="" width="300" height="124" /></a>Modernizr es una librería Javascript que nos permite tener un mayor control sobre la aplicación de CSS3 y HTML5. Esta librería detecta las capacidades el navegador web del usuario y en base a eso añade clases al tag &lt;html&gt; de nuestros documentos web. De esta forma, podemos referenciar cualquier elemento interno del documento y alterarlo mediante estilos para que se muestre correctamente en navegadores que no tengan soporte para dichas nuevas tecnologías</p>
<p>Por ejemplo, al momento de escribir este artículo, el navegador que estoy utilizando es Firefox 3.6.13. Gracias a Modernizr, la etiqueta &lt;html&gt; queda de la siguiente forma:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p178code7'); return false;">Ver código</a> HTML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p1787"><td class="code" id="p178code7"><pre class="html" style="font-family:monospace;">&nbsp;
&lt;html lang=&quot;en&quot; dir=&quot;ltr&quot; id=&quot;modernizr-com&quot; class=&quot; js flexbox canvas canvastext 
no-webgl no-touch geolocation postmessage no-websqldatabase no-indexeddb 
hashchange no-history draganddrop no-websockets rgba hsla multiplebgs 
backgroundsize borderimage borderradius boxshadow textshadow opacity 
no-cssanimations csscolumns cssgradients no-cssreflections csstransforms 
no-csstransforms3d no-csstransitions fontface video audio localstorage 
sessionstorage webworkers applicationcache svg no-inlinesvg no-smil svgclippaths&quot;&gt;</pre></td></tr></table></div>

<p>De esta forma, podremos referenciar mediante estilos CSS, cualquier elemento del documento que no soporte alguna tecnología específica. En mi caso particular, podemos ver que Firefox 3.6.13 soporta columnas CSS3 (csscolums), pero no soporta reflexiones (no-cssreflections). </p>
<p>Entonces, supongamos que diseñamos un sitio con gradientes CSS, pero queremos que para el caso en que el navegador no soporte gradientes CSS3 se muestre un color específico, podríamos utilizar el siguiente código:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p178code8'); return false;">Ver código</a> CSS</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p1788"><td class="code" id="p178code8"><pre class="css" style="font-family:monospace;">&nbsp;
<span style="color: #6666ff;">.no-cssgradients</span> <span style="color: #cc00cc;">#elemento</span> <span style="color: #00AA00;">&#123;</span>
     <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>De esta forma, si el navegador no soporta gradientes CSS, Modernizr añadirá la clase .no-cssgradients al tag <html> y el selector se validará, aplicando el color de fondo definido. </p>
<p><strong>Sitio oficial</strong>: <a title="Modernizr" href="http://www.modernizr.com/" target="_blank">http://www.modernizr.org</a></p>
<h3>Selectivizr</h3>
<p><a href="http://www.andressmerkin.com.ar/wp-content/uploads/2011/02/selectivizr.png"><img class="alignright size-medium wp-image-180" title="selectivizr" src="http://www.andressmerkin.com.ar/wp-content/uploads/2011/02/selectivizr-300x124.png" alt="" width="300" height="124" /></a>Algunos navegadores, como Internet Explorer, en sus versiones 6 &#8211; 8, no tienen un soporte completo de selectores CSS, pero gracias a esta librería podremos aplicar dichos selectores sin problemas.</p>
<p>De esta forma podemos dar estilos a nuestros sitios web aprovechando toda la potencia que nos brindan todos los selectores y pseudoselectores disponibles.</p>
<p>Selectivizr aprovecha los frameworks de Javascript disponibles, como Jquery, Mootools o Prototype para brindar el soporte extendido de selectores. Dependiendo del framework del que dispongamos será la cantidad de selectores admitidos por Selectivizr. En su sitio web podemos encontrar una tabla comparativa al respecto.</p>
<p><strong>Sitio oficial</strong>: <a title="Selectivizr" href="http://selectivizr.com/" target="_blank">http://selectivizr.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.andressmerkin.com.ar/2011/02/modernizr-y-selectivizr-dos-librerias-javascript-para-potenciar-nuestros-desarrollos-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hardboiled Web Design &#8211; Por Andy Clarke</title>
		<link>http://www.andressmerkin.com.ar/2011/01/hardboiled-web-design-por-andy-clarke/</link>
		<comments>http://www.andressmerkin.com.ar/2011/01/hardboiled-web-design-por-andy-clarke/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 01:50:50 +0000</pubDate>
		<dc:creator>Andrés</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Estándares]]></category>
		<category><![CDATA[Libros]]></category>

		<guid isPermaLink="false">http://www.andressmerkin.com.ar/?p=167</guid>
		<description><![CDATA[Si sos desarrollador o diseñador web, este es un libro que no podés dejar de leer. Hardboiled Web Design explica como traer las últimas tecnologías de la W3c (HTML5 y CSS3) a tus sitios web sin tener que preocuparte por &#8230;<p class="read-more"><a href="http://www.andressmerkin.com.ar/2011/01/hardboiled-web-design-por-andy-clarke/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.andressmerkin.com.ar/wp-content/uploads/2011/01/hardboiled-452x594.jpg"><img class="alignleft size-medium wp-image-168" title="hardboiled-452x594" src="http://www.andressmerkin.com.ar/wp-content/uploads/2011/01/hardboiled-452x594-228x300.jpg" alt="" width="228" height="300" /></a>Si sos desarrollador o diseñador web, este es un libro que no podés dejar de leer. <a title="Hardboiled Web Design" rel="nofollow" href="http://hardboiledwebdesign.com/" target="_blank">Hardboiled Web Design</a> explica como traer las últimas tecnologías de la W3c (HTML5 y CSS3) a tus sitios web sin tener que preocuparte por los navegadores anteriores.</p>
<p>Generalmente se aplica el concepto de &#8220;lograr que se vea igual en todos los navegadores&#8221;. Por otro lado, Andy Clarke presenta la idea de &#8220;dar más beneficios a aquella gente que tenga navegadores que puedan soportarlos&#8221;. Dichos beneficios se refieren tanto al aspecto visual como a la usabilidad y a la accesibilidad. Esto significa que aquellas personas que utilicen navegadores como Google Chrome, Opera 11, Safari 5, Firefox 3.+ o IE9 podrán gozar de las últimas tecnologías en lo que se refiere al desarrollo de interfaces web, mientras que los que utilicen navegadores más antiguos podrán seguir disfrutando de un sitio funcional, que muestre correctamente (pero no igual) el contenido.</p>
<p>Esto permite que apliquemos todo el poder de las nuevas tecnologías a partir de este momento, que es cuando son novedad, en vez de esperar a que se estandaricen, lo que puede suceder dentro de varios años.</p>
<p>El autor ha explicado perfectamente la utilización de HTML5 y CSS3, mediante ejemplos prácticos de fácil entendimiento. Además, nos provee de enlaces a herramientas de código abierto que nos facilitan la aplicación de los últimos borradores de la W3C  y aún así mantener sitios usables y accesibles para navegadores que no los soportan.</p>
<p>El libro está en inglés y no se si pueda haber una traducción al español, pero si tenés la posibilidad, te recomiendo que lo leas de principio a fin.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andressmerkin.com.ar/2011/01/hardboiled-web-design-por-andy-clarke/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Assembla y PBworks &#8211; Recursos gratuitos y de calidad para proyectos de desarrollo en equipo.</title>
		<link>http://www.andressmerkin.com.ar/2010/08/assembla-y-pbworks-recursos-gratuitos-y-de-calidad-para-proyectos-de-desarrollo-en-equipo/</link>
		<comments>http://www.andressmerkin.com.ar/2010/08/assembla-y-pbworks-recursos-gratuitos-y-de-calidad-para-proyectos-de-desarrollo-en-equipo/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 15:00:55 +0000</pubDate>
		<dc:creator>Andrés</dc:creator>
				<category><![CDATA[Herramientas y Recursos]]></category>
		<category><![CDATA[assembla]]></category>
		<category><![CDATA[calidad]]></category>
		<category><![CDATA[gratis]]></category>
		<category><![CDATA[pbworks]]></category>
		<category><![CDATA[recursos]]></category>
		<category><![CDATA[repositorios]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[wikis]]></category>

		<guid isPermaLink="false">http://www.andressmerkin.com.ar/?p=92</guid>
		<description><![CDATA[Assembla y PBworks son dos herramientas que brindan un servicio gratuito de excelente calidad para el desarrollo colaborativo de nuestros proyectos privados. Assembla ofrece servicios de repositorios de código fuente y gran calidad, mientras que PBWorks ofrece servicios para la creación de wikis multiusuario gratuitas y poderosas.<p class="read-more"><a href="http://www.andressmerkin.com.ar/2010/08/assembla-y-pbworks-recursos-gratuitos-y-de-calidad-para-proyectos-de-desarrollo-en-equipo/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Cuando nos embarcamos en un proyecto de código abierto, existen muchas empresas que brindan soluciones de manera gratuita (como <a title="Google Code" href="http://code.google.com/hosting/" target="_blank" rel="nofollow">Google Code</a>), pero cuando deseamos desarrollar algún pequeño proyecto privado la calidad de las soluciones sin costo disminuye considerablemente.</p>
<p>Después de una búsqueda sobre recursos útiles para desarrollo de proyectos privados me encontré con dos soluciones que realmente me parecieron interesantes y muy cómodas. Hablo de un servicio para creación de repositorios de control de versiones y un servicio de  wikis muy sencillas de editar y muy poderosas.</p>
<p><strong>Assembla.com</strong></p>
<p><strong><a href="http://gator1024.hostgator.com/~asmerkin/wp-content/uploads/2010/08/assembla.com-2010-8-8-21-45.png"><img class="aligncenter size-full wp-image-94" title="assembla.com 2010-8-8 21-45" src="http://gator1024.hostgator.com/~asmerkin/wp-content/uploads/2010/08/assembla.com-2010-8-8-21-45.png" alt="" width="500" height="230" /></a></strong></p>
<p>Este sitio nos brinda repositorios gratuitos de SVN y GIT para que utilicemos en nuestros proyectos. La capacidad de los mismos en su versión no paga es de 2gb de espacio en disco, proyectos y usuarios ilimitados. Es una excelentisima opción de calidad para ser un servicio no pago. Obviamente existen restricciones, como la imposibilidad de utilizar un sistema de tickets y algunas otras herramientas, pero podemos suplir dichas falencias gracias a otros servicios.</p>
<p>URL: <a title="Assembla" href="http://offers.assembla.com/free/" target="_blank" rel="nofollow">http://www.assembla.com</a></p>
<p><strong>PBworks</strong></p>
<p><a href="http://gator1024.hostgator.com/~asmerkin/wp-content/uploads/2010/08/assembla.com-2010-8-8-21-45.png"></a><a href="http://gator1024.hostgator.com/~asmerkin/wp-content/uploads/2010/08/pbworks.com-2010-8-8-21-53.png"><img class="aligncenter size-full wp-image-96" title="pbworks.com 2010-8-8 21-53" src="http://gator1024.hostgator.com/~asmerkin/wp-content/uploads/2010/08/pbworks.com-2010-8-8-21-53.png" alt="" width="500" height="230" /></a><br />
Este servicio nos provee de Wikis para nuestros proyectos. Las wikis gratuitas tienen licencia de uso no comercial y cuentan con algunas restricciones de personalización y de exportación de contenidos, pero si lo que buscamos es un conjunto de herramientas para resolver problemas de índole privada esto no debería ser impedimento de nada. Además nuestra wiki se encuentra alojada en los servidores de PBWorks, pudiendo ser esta accedida de forma pública o privada desde cualquier lugar.</p>
<p>La interfaz de edición de las páginas de la wiki es excelente. Brinda un editor de textos WYSIWYG con la posibilidad de usar atajos del teclado para casi todo. Esto es un punto muy a favor, sobre todo si hay que introducir a personas no habituadas a la edición de wikis.</p>
<p>Las wikis gratuitas soportan múltiples usuarios y diferentes permisos para cada uno de ellos. Lo único que necesita un usuario para utilizar una wiki es tener una cuenta en el sitio.</p>
<p>URL: <a title="PBworks" href="http://pbworks.com" target="_blank" rel="nofollow">http://pbworks.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.andressmerkin.com.ar/2010/08/assembla-y-pbworks-recursos-gratuitos-y-de-calidad-para-proyectos-de-desarrollo-en-equipo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>¿Por qué utilizar estándares en el desarrollo de sitios y aplicaciones web?</title>
		<link>http://www.andressmerkin.com.ar/2010/08/%c2%bfpor-que-utilizar-estandares-en-el-desarrollo-de-sitios-y-aplicaciones-web/</link>
		<comments>http://www.andressmerkin.com.ar/2010/08/%c2%bfpor-que-utilizar-estandares-en-el-desarrollo-de-sitios-y-aplicaciones-web/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 21:48:10 +0000</pubDate>
		<dc:creator>Andrés</dc:creator>
				<category><![CDATA[Estándares]]></category>
		<category><![CDATA[client-side]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[Estándares Web]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.andressmerkin.com.ar/?p=82</guid>
		<description><![CDATA[Algunos puntos a tener en cuenta por los profesionales de la web sobre por qué usar estándares web<p class="read-more"><a href="http://www.andressmerkin.com.ar/2010/08/%c2%bfpor-que-utilizar-estandares-en-el-desarrollo-de-sitios-y-aplicaciones-web/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://gator1024.hostgator.com/~asmerkin/wp-content/uploads/2010/08/w3c.png"><img class="alignright size-medium wp-image-84" title="w3c" src="http://www.andressmerkin.com.ar/wp-content/uploads/2010/08/w3c-300x157.png" alt="" width="300" height="157" /></a>A pesar de que los años pasan y la tecnología avanza a pasos agigantados, todavía se ven muchos sitios web y aplicaciones que desarrollan sus interfaces para que &#8220;se vean bonitas&#8221; en vez de pensar en cosas como la usabilidad y la accesibilidad.</p>
<p>Un desarrollo de una aplicación no solo debe hacerse de forma que cumpla con los requisitos solicitados, sino que además debe brindar una experiencia agradable al usuario. Una aplicación puede triunfar o fracasar totalmente gracias a esto.</p>
<p>Para el caso particular de las aplicaciones con interfaces web, podemos dividirlas en dos partes muy marcadas: el lado del servidor, donde se realiza la programación dura (en lenguajes como PHP, Java, Python, etc) y el lado del cliente, en donde se utilizan (X)HTML, CSS Javascript para brindar los contenidos a los usuarios. Este último lado es el que se interpreta en los navegadores web y se muestra a los usuarios. También es este último lado el que parsean los motores de búsqueda para indexar nuevos contenidos y mostrarlos en los resultados de las búsquedas.<strong> </strong><em>Aquí es donde entran en juego los estándares web de la W3C.</em></p>
<p>Podemos desarrollar páginas web con tablas y se van a ver realmente bien, o podemos llenar de código sucio una página que los visitantes en su mayoría no se van a dar cuenta. Pero no solo debemos desarrollar para obtener algo bonito, sino además algo funcional, accesible, fácil de mantener, rápido de cargar y profesional.</p>
<p><strong>Estructura</strong></p>
<p>Los estándares web nos permiten crear documentos con una estructura válida, coherente y significativa. No es lo mismo crear un texto en negrita y grande, que un encabezado h1, aunque sean iguales visualmente. Un ser humano puede interpretarlos de la misma manera, pero no así los motores de búsqueda o los lectores de pantalla que utilizan los no videntes. Además, al estructurar los documentos correctamente, estamos creando un <a href="http://es.wikipedia.org/wiki/Document_Object_Model" target="_blank">modelado de objetos de documento (DOM)</a> correcto, que luego nos permitirá mejorar la presentación mediante hojas de estilo y el comportamiento con Javascript.</p>
<p>Crear buenas estructuras genera un marcado mucho más limpio que luego facilita la implementación de lenguajes de servidor, generando un código final mucho más prolijo y liviano del que podría generarse con un marcado sucio (por ejemplo, el uso de tablas para crear layouts).</p>
<p><strong>Compatiblidad</strong></p>
<p>Los navegadores web son creados en base a los estándares web. Estos le brindan al navegador un conjunto de etiquetas conocidas y la forma de que estas son utilizadas. Si utilizamos estándares logramos que los navegadores digieran correctamente los documentos generados y muestren lo que realmente queremos que muestren. La falta de uso de estándares hace que los navegadores interpreten los documentos web de modo &#8220;<a href="http://es.wikipedia.org/wiki/Quirks_Mode" target="_blank">no estricto</a>&#8220;, generando en la mayoría de los casos comportamientos indeseados.</p>
<p>Además, los motores de búsqueda se encuentran preparados para digerir correctamente código bien marcado, por lo que un buen uso de estándares permite una mejor recepción del contenido por parte de los buscadores y esto genera una mejor interpretación. En definitiva, esto hace que Google o Yahoo interpreten mejor nuestro sitio y luego obtendremos<em> mejor posicionamiento en las búsquedas</em> y más visitas.</p>
<p><strong>Documentos más livianos</strong></p>
<p>El buen uso de estándares fomenta en mayor medida la reutilización y el código limpio y simple. Esto permite obtener documentos más livianos, lo cual singifica que consumirán menos ancho de banda y transferencia desde el servidor. Si pagamos algún servicio de alojamiento, estos generalmente nos limitan estos recursos, por lo cual un buen uso de estándares sería muy beneficioso para nosotros.</p>
<p>Un documento más liviano, es más facil de descargar y se carga más rápido en los navegadores web. Este es un punto muy importante a favor del uso de estándares para el desarrollo y diseño web.</p>
<p><strong>Accesibilidad</strong></p>
<p>La web hoy en día es un medio de comunicación de libre acceso y todos deberíamos ser capaces de obtener la información que brinda. Si utilizamos estándares, estamos permitiendo que personas con alguna incapacidad puedan recibir el contenido que brindamos de manera aceptable. Esto significa que el software para dichas personas puede interpretar correctamente los documentos web que desarrollamos.</p>
<p>En algunos paises, la falta de accesibilidad en un sitio web es considerada como un caso de discriminación y es totalmente punible.</p>
<p><strong>Facilidad de mantenimiento</strong></p>
<p>Hemos dicho que al usar estándares se crea un código más limpio. Esto permite una mayor facilidad para localizar problemas y repararlos, así como extender nuestras aplicaciones con pequeñas modificaciones en puntos localizados. Un buen uso de estándares conjuntamente con buenas prácticas puede permitirnos mantener grandes aplicaciones con unos pocos retoques.</p>
<p><strong>Visión de futuro</strong></p>
<p>Los estándares nos aseguran que nuestros desarrollos actuales seguirán funcionando correctamente en un futuro. Esto se dá gracias a que los navegadores se verán obligados en algún punto a interpretar correctamente las marcas generadas por los estándares y van a tener que responder correctamente ante estas.</p>
<p><strong>Profesionalismo</strong></p>
<p><em>Personalmente, lo primero que hago para convencerme si un desarrollo es bueno o malo es dar click derecho de mouse en el navegador y mirar el código fuente de la página que estoy visualizando. De esta forma puedo reconocer fácilmente un buen o un mal diseño. </em></p>
<p>Cuando desarrollamos para la web, tenemos que hacerlo teniendo en cuenta nuestro prestigio y calidad como profesionales. Si hacemos que las cosas simplemente se vean bonitas no vamos a llegar muy lejos. El uso de estándares nos da prestigio porque al utilizarlos estamos generando código con una máxima calidad y de nivel internacional.</p>
<p><em>Un desarrollador o diseñador web que utiliza estándares da la impresión de que está al tanto de las últimas tendencias y conoce sobre las últimas tecnologías en uso. Es importante dar esta imágen para conseguir mejores trabajos.</em></p>
<p>Además, al usar estándares web combinados con buenas prácticas de usabilidad y accesibilidad <em>podemos hacer quedar realmente bien a nuestros clientes</em>, permitiendoles brindar aplicaciones sencillas de usar y poderosas. <em>Como dije anteriormente: una aplicación puede triunfar o fracasar por sus interfaces (en este caso son via web).</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.andressmerkin.com.ar/2010/08/%c2%bfpor-que-utilizar-estandares-en-el-desarrollo-de-sitios-y-aplicaciones-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox potenciado para desarrollo web</title>
		<link>http://www.andressmerkin.com.ar/2010/08/firefox-potenciado-para-desarrollo-web/</link>
		<comments>http://www.andressmerkin.com.ar/2010/08/firefox-potenciado-para-desarrollo-web/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 01:51:28 +0000</pubDate>
		<dc:creator>Andrés</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[depuración]]></category>
		<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[extensiones]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.andressmerkin.com.ar/?p=77</guid>
		<description><![CDATA[Firefox puede convertirse en una herramienta primordial para los desarrolladores web si lo potenciamos con ciertos complementos muy útiles. En este post doy una rápida revisión a las mejores extensiones además de proveer enlaces para que puedas encontrarlas rápidamente.<p class="read-more"><a href="http://www.andressmerkin.com.ar/2010/08/firefox-potenciado-para-desarrollo-web/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Como todos sabemos, <a rel="nofollow" href="http://www.mozilla-europe.org/es/firefox/">Mozilla Firefox</a> incorpora la excelente característica de poder ser extendido mediante complementos. Esto hace que el navegador pueda ser personalizado y adaptado a las necesidades de diferentes usuarios. En este caso quiero comentar algunos complementos que hacen que el zorrito de fuego sea una excelente herramienta para desarrolladores web.</p>
<p><strong>1 &#8211; Firebug</strong></p>
<p>Herramienta imprescindible para cualquier desarrollador web que esté trabajando del lado del cliente. Esta fantástica herramienta nos permite modificar el código fuente de la página renderizada, modificando estructura, estilos y comportamientos de la misma (obviamente estas modificaciones no son permanentes). Además, nos permite seleccionar los distintos elementos del DOM y de esta forma ver por qué reglas de CSS se encuentran afectados.</p>
<p>Una excelente funcionalidad que también nos provee Firebug es la posibilidad de medir el tiempo de carga de una página web y poder analizar los tiempos de carga de los diferentes elementos, como el código html, las hojas de estilo, las imágenes y los scripts. Una utilidad realmente necesaria si buscamos optimizar nuestro sitio.</p>
<p><a rel="nofollow" href="https://addons.mozilla.org/es-ES/firefox/addon/1843/">https://addons.mozilla.org/es-ES/firefox/addon/1843/</a></p>
<p><strong>2 &#8211; FirePHP</strong></p>
<p>Un complemento que trabaja conjuntamente con Firebug (se necesita de este instalado) que nos permite hacer debugging de aplicaciones web construidas con PHP como lenguaje de servidor. Simplemente añadiendo una clase a nuestra programación y haciendo una llamada a un método podemos utilizar esta completa herramienta para analizar valores de variables y todas aquellas cosas que hagan a la depuración de código. Este complemento resulta muy útil cuando no se cuenta con algún sistema de depuración como el provisto por Netbeans u otros.</p>
<p><a rel="nofollow" href="https://addons.mozilla.org/es-ES/firefox/addon/6149/">https://addons.mozilla.org/es-ES/firefox/addon/6149/</a></p>
<p><strong>3 &#8211; Web Developer</strong></p>
<p>Imprescindible herramienta que nos permite modificar y analizar nuestro sitio. Esta herramienta permite hacer validaciones de las páginas contra los estándares de la W3C, ver el sitio en diferentes resoluciones, ver el sitio con o sin CSS o javascript, etc. La utilidad nos permite analizar comportamientos bajo diferentes situaciones. Herramienta que no puede faltar.</p>
<p><a rel="nofollow" href="https://addons.mozilla.org/es-ES/firefox/addon/60/">https://addons.mozilla.org/es-ES/firefox/addon/60/</a></p>
<p><strong>4 &#8211; Measure It</strong></p>
<p>Una simple utilidad que nos permite medir el tamaño en píxeles de cualquier elemento de una página web. Es una simple herramienta que nos genera una capa sobre el sitio que estamos visitando y en base a esta nos permite establecer un recuadro sobre un elemento que posteriormente nos indicará las dimensiones de este. No es escencial pero si muy cómodo.</p>
<p><a rel="nofollow" href="https://addons.mozilla.org/es-ES/firefox/addon/539/">https://addons.mozilla.org/es-ES/firefox/addon/539/</a></p>
<p><strong>5 &#8211; Google Analytics? </strong></p>
<p>Si trabajamos con el popular sistema de métricas web de Google, esta herramienta puede sernos muy útil. Simplemente nos indica con un ícono en la barra de estado si la página que estamos visitando tiene el Google Analytics Tracking Code instalado. Ideal para realizar una correcta implementación de las estadísticas.</p>
<p><a rel="nofollow" href="https://addons.mozilla.org/es-ES/firefox/addon/5631/">https://addons.mozilla.org/es-ES/firefox/addon/5631/</a></p>
<p><strong>6 &#8211; No Do Follow</strong></p>
<p>Esta pequeña utilidad nos permite conocer si los enlaces de una página contienen o no el atributo nofollow. Una buena idea si estamos linkeando a sitios cuyo contenido no podemos controlar o no podemos hacernos responsables. Además es útil si deseamos evitar la fuga de pagerank.</p>
<p><a rel="nofollow" href="https://addons.mozilla.org/es-ES/firefox/addon/5687/">https://addons.mozilla.org/es-ES/firefox/addon/5687/</a></p>
<p><strong>Conclusión</strong></p>
<p>Con estas herramientas podemos hacer que nuestro navegador favorito se convierta en un verdadero centro de depuración, optimización y análisis de nuestro sitio o aplicación web. Estas son las cosas que hacen de Firefox el monstruo que es hoy en día.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andressmerkin.com.ar/2010/08/firefox-potenciado-para-desarrollo-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parseando feeds RSS con PHP y Simplepie</title>
		<link>http://www.andressmerkin.com.ar/2010/08/parseando-feeds-rss-con-php-y-simplepie/</link>
		<comments>http://www.andressmerkin.com.ar/2010/08/parseando-feeds-rss-con-php-y-simplepie/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 02:01:50 +0000</pubDate>
		<dc:creator>Andrés</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[atom]]></category>
		<category><![CDATA[feeds]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[simplepie]]></category>

		<guid isPermaLink="false">http://www.andressmerkin.com.ar/?p=44</guid>
		<description><![CDATA[Por cuestiones de trabajo me tuve que embarcar en la misión de obtener información de cientos de feeds RSS en un proyecto desarrollado con PHP (más precisamente con el framework CakePHP). Evidentemente parsear todo un feed RSS o atom no &#8230;<p class="read-more"><a href="http://www.andressmerkin.com.ar/2010/08/parseando-feeds-rss-con-php-y-simplepie/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p><a rel="nofollow" href="http://www.simplepie.org"><img class="alignright" title="SimplePie" src="http://simplepie.org/images/logo_simplepie_horizontal.png" alt="Simplepie" width="180" height="45" /></a>Por cuestiones de trabajo me tuve que embarcar en la misión de obtener información de cientos de feeds RSS en un proyecto desarrollado con PHP (más precisamente con el framework CakePHP). Evidentemente parsear todo un feed RSS o atom no es tarea facil y requiere de varias horas/días de programación con expresiones regulares y algunas que otras mañas para solucionarlo.</p>
<p>Afortunadamente existe <a rel="nofollow" href="http://simplepie.org/" target="_blank">Simplepie</a>, un elegante framework orientado a objetos que nos ayuda a obtener información de los feeds RSS y atom que necesitemos, con una api muy sencilla de utilizar y resultados asombrosos. En el sitio web oficial pueden acceder a la wiki que contiene muchisima documentación.</p>
<p>El único problema que me surgió después de esto es que desgraciadamente algunos feeds están mal hechos y el framework no parsea bien los resultados, pero con cualquier feed de plataformas populares no deberían existir problemas.</p>
<p>Una excelente opción para ahorrar mucho tiempo y obtener soluciones elegantes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andressmerkin.com.ar/2010/08/parseando-feeds-rss-con-php-y-simplepie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduciendome en las métricas web</title>
		<link>http://www.andressmerkin.com.ar/2010/07/introduciendome-en-las-metricas-web/</link>
		<comments>http://www.andressmerkin.com.ar/2010/07/introduciendome-en-las-metricas-web/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 01:44:10 +0000</pubDate>
		<dc:creator>Andrés</dc:creator>
				<category><![CDATA[SEO y Métricas Web]]></category>
		<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[métricas web]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://www.andressmerkin.com.ar/?p=37</guid>
		<description><![CDATA[Mucho código, mucha optimización. XHTML, CSS, estandares web, buenas prácticas, patrones, etc. Todas estas cosas aplicadas correctamente resultan en algo maravilloso, pero uno puede desarrollar una aplicación web espectacular y quedarse sentado esperando meses a que los usuarios de la &#8230;<p class="read-more"><a href="http://www.andressmerkin.com.ar/2010/07/introduciendome-en-las-metricas-web/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://gator1024.hostgator.com/~asmerkin/wp-content/uploads/2010/08/estadisticas.gif"><img class="alignleft size-thumbnail wp-image-74" title="estadisticas" src="http://www.andressmerkin.com.ar/wp-content/uploads/2010/07/estadisticas-150x150.gif" alt="" width="150" height="150" /></a>Mucho código, mucha optimización. XHTML, CSS, estandares web, buenas prácticas, patrones, etc. Todas estas cosas aplicadas correctamente resultan en algo maravilloso, pero uno puede desarrollar una aplicación web espectacular y quedarse sentado esperando meses a que los usuarios de la red la utilicen. Podemos publicitarla por todos lados pero aún así necesitamos feedback para saber como lo estamos haciendo y en donde tenemos que corregir.</p>
<p>Existen muchas herramientas para de alguna forma poder ver que hacen los visitantes con nuestra web, pero debido a cuestiones laborales es que me tuve que acercar a <a href="http://www.google.com/analytics/">Google Analytics</a>. Debo decir que realmente me ha sorprendido porque además de ser gratuita (a no ser que nuestro sitio sea un pequeño monstruito) brinda muchisimas perspectivas para poder analizar nuestro sitio.</p>
<p>El tema es que es tan grande que no resulta tan intuitiva para usarla. Podemos toquetear un poco y llegar a conseguir algo de información útil al respecto, pero la herramienta brinda demasiada información como para perdersela toda por no ir a la ayuda que brinda. Google pone a nuestra disposición un conjunto de presentaciones (en inglés) que nos enseñan todos y cada uno de los rincones de Google Analytics. Dicho material se encuentra en la <a href="http://www.google.com/support/conversionuniversity/bin/static.py?hl=en&amp;page=iq_learning_center.cs">Convension University</a> de Google. Además proveen de certificaciones oficiales para probar el conocimiento adquirido (por un precio de 50 u$s al momento de escribir este artículo).</p>
<p>Personalmente, debo decir que a partir de esto he encontrado una rama del desarrollo web que me ha interesado mucho y que realmente me gusta la idea de perfeccionarme en esto, así que no va a ser nada raro que encuentren más artículos sobre métricas web y <a href="http://es.wikipedia.org/wiki/Search_engine_optimization">SEO</a> en este blog.</p>
<p>Para los que tengan un interés adicional en sumergirse un poco en este asunto, además del enlace a la documentación provista por Google pueden ir <a href="http://www.taringa.net/posts/ebooks-tutoriales/6311446/Advanced-Web-Metrics-with-Google-Analytics---2nd-Edition.html">aquí</a> a buscar un librito en pdf.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andressmerkin.com.ar/2010/07/introduciendome-en-las-metricas-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP – Separando las vistas de la lógica con Savant 3</title>
		<link>http://www.andressmerkin.com.ar/2010/07/php-separando-las-vistas-de-la-logica-con-savant-3/</link>
		<comments>http://www.andressmerkin.com.ar/2010/07/php-separando-las-vistas-de-la-logica-con-savant-3/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 21:51:00 +0000</pubDate>
		<dc:creator>Andrés</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=15</guid>
		<description><![CDATA[Recientemente he estado haciendo reparaciones a un sitio web heredado de otro desarrollador. La empresa parece haberse enfocado principalmente en el diseño, pero el desarrollo de la lógica en PHP es simplemente desastrozo porque acoplaron demasiado la codificación del negocio &#8230;<p class="read-more"><a href="http://www.andressmerkin.com.ar/2010/07/php-separando-las-vistas-de-la-logica-con-savant-3/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.phpsavant.com/images/savant_logo.gif" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 465px; height: 85px;" src="http://www.phpsavant.com/images/savant_logo.gif" border="0" alt="" /></a><br />
Recientemente he estado haciendo reparaciones a un sitio web heredado de otro desarrollador. La empresa parece haberse enfocado principalmente en el diseño, pero el desarrollo de la lógica en PHP es simplemente desastrozo porque acoplaron demasiado la codificación del negocio con las vistas, lo cual complica mucho la edición del sitio (sumado a que todo el layout está desarrollado con tablas, pero este ya es otro tema).</p>
<p>Desgraciadamente no tengo todo el tiempo que quisiera como para pasar todo el desarrollo a alguna solución orientada a objetos utilizando algún framework como <a href="http://www.cakephp.org/">CakePHP</a>, pero buscando un poco en internet encontré una elegante solución para separar la vista de la lógica: <a href="http://www.phpsavant.com/">Savant 3</a>.</p>
<p>Este framework  tiene por objetivo separar las vistas de la lógica, mediante el uso de plantillas (templates). Lo bueno es que es muy simple y no se necesita aprender marcas especiales como <a href="http://www.smarty.net/">Smarty</a> por ejemplo , sino que las etiquetas son prácticamente &#8220;echoes&#8221; de PHP, lo que disminuye la curva de aprendizaje a prácticamente 0.</p>
<p>No es una solución &#8220;a fondo&#8221; pero es el principio para algo mejor.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andressmerkin.com.ar/2010/07/php-separando-las-vistas-de-la-logica-con-savant-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

