<?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>Desarrollando Ideas &#187; Desarrollo Web</title>
	<atom:link href="http://desarrollandoideas.com.ar/category/desarrollo-web/feed/" rel="self" type="application/rss+xml" />
	<link>http://desarrollandoideas.com.ar</link>
	<description>Abandon all hope, ye who enter here...</description>
	<lastBuildDate>Tue, 28 Feb 2012 18:48:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>SlimStats, estadísticas web open source</title>
		<link>http://desarrollandoideas.com.ar/2010/03/09/slimstats-estadisticas-web-open-source/</link>
		<comments>http://desarrollandoideas.com.ar/2010/03/09/slimstats-estadisticas-web-open-source/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 19:18:33 +0000</pubDate>
		<dc:creator>Paul M Dorr</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Diseño Web]]></category>
		<category><![CDATA[herramientas]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[soluciones]]></category>

		<guid isPermaLink="false">http://desarrollandoideas.com.ar/?p=716</guid>
		<description><![CDATA[SlimStat es una aplicación open source de análisis y estadísticas para páginas web. Está creada con PHP y MySQL, así que se puede integrar fácilmente en nuestros sitios mediante JavaScript (como Google Analytics) o PHP. Para un determinado período, la aplicación muestra: La cantidad de &#8220;hits&#8221;, visitas y páginas vistas. Las URLs y dominios de [...]]]></description>
			<content:encoded><![CDATA[<div>
<p><a href="http://slimstat.net/" target="_blank"><strong>SlimStat</strong></a> es una aplicación <strong>open source</strong> de <strong>análisis y estadísticas para páginas web</strong>.</p>
<p>Está creada con <strong>PHP </strong>y<strong> MySQL</strong>, así que se puede integrar fácilmente en nuestros sitios mediante <strong>JavaScript </strong>(como <strong>Google Analytics</strong>) o <strong>PHP</strong>.</p>
<p style="text-align: center;"><a href="http://slimstat.net/" target="_blank"></a><a href="http://desarrollandoideas.com.ar/wp-content/uploads/2010/03/slimstat.gif"><img class="aligncenter size-full wp-image-717" title="slimstat" src="http://desarrollandoideas.com.ar/wp-content/uploads/2010/03/slimstat.gif" alt="" width="480" height="261" /></a></p>
<p>Para un determinado período, la aplicación muestra:</p>
<ul>
<li>La cantidad de &#8220;hits&#8221;, visitas y páginas vistas.</li>
<li>Las URLs y dominios de origen de los links.</li>
<li>Términos de búsqueda.</li>
<li>Navegadores, sistemas operativos, países, resoluciones de pantalla.</li>
</ul>
<p>También hay una opción llamada &#8220;paths&#8221;, que muestra el camino recorrido por un usuario desde su navegador, <strong>página por página</strong>.</p>
<p>La gran ventaja de <strong>Slimstat </strong>ante <strong>Google Analitycs</strong> es que muestra las <strong>estadísticas en vivo</strong>, con tan sólo presionar F5.</p>
<p>Hace unos minutos lo he instalado en <a href="www.shooteando.com.ar">www.shooteando.com.ar</a>, mediante un proceso <a href="http://slimstat.net/install">extremadamente sencillo</a> que lo dejó funcionando en el acto. Para probarlo &#8220;<strong>en vivo</strong>&#8220;, entré varias veces desde esta misma pc y desde una con otra ip [ gracias <a href="http://twitter.com/rulski">@rulski</a> =P ] mientras actualizaba con F5 para ver los cambios. Los resultados fueron <strong>más que satisfactorios</strong>; me mostró la cantidad de &#8220;hits&#8221; [ 5 en total, 4 desde mi pc ] y las visitas &#8220;reales&#8221; [ que eran 2 ]. Lo único que le faltaría es permitir que el <strong>gráfico se muestre por visitas</strong> y no por hits/día, aunque los números en la parte superior sobran para hacerse una idea correcta de la cantidad de visitas &#8220;reales&#8221;.</p>
<p>Espero que les sea útil y no dejen de <strong>comentar </strong>si lo probaron o tienen dudas.</p>
<p>Vía <a href="http://www.webresourcesdepot.com/open-source-and-live-web-analytics-slimstat/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+webresourcesdepot+%28WebResourcesDepot%29&amp;utm_content=Google+Reader">WebResourcesDepot</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://desarrollandoideas.com.ar/2010/03/09/slimstats-estadisticas-web-open-source/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>GHRML en Django [ Haml ]</title>
		<link>http://desarrollandoideas.com.ar/2009/11/24/ghrml-en-django-haml/</link>
		<comments>http://desarrollandoideas.com.ar/2009/11/24/ghrml-en-django-haml/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 13:47:06 +0000</pubDate>
		<dc:creator>Paul M Dorr</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[GHRML]]></category>
		<category><![CDATA[Haml]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://desarrollandoideas.com.ar/?p=685</guid>
		<description><![CDATA[Como mencioné en el anterior post, me encantó la simpleza de Haml, así que decidí probar GHRML, el cual tiene una sintaxis muy similar y puede ser utilizado con Django. Si bien fue un vistazo rápido, pude sacar algunas conclusiones interesantes. Instalación Instalar GHRML es tan fácil como hacerlo con casi cualquier otra aplicación de [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-689 alignright" title="django-logo" src="http://desarrollandoideas.com.ar/wp-content/uploads/2009/11/django-logo.jpg" alt="django-logo" width="150" height="84" />Como mencioné en el <a href="http://desarrollandoideas.com.ar/2009/11/16/adios-html-bienvenido-haml/">anterior post</a>, me encantó la simpleza de <strong>Haml</strong>, así que decidí probar <strong>GHRML</strong>, el cual tiene una sintaxis muy similar y puede ser utilizado con <strong>Django</strong>. Si bien fue un vistazo rápido, pude sacar algunas conclusiones interesantes.</p>
<p><strong>Instalación</strong></p>
<p>Instalar <strong>GHRML </strong>es tan fácil como hacerlo con casi cualquier otra aplicación de <strong>Python</strong>, vía setuptools (ejemplo en <strong>linux</strong>):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">easy_install GHRML</pre></div></div>

<p>Y listo! Ya tenemos <strong>GHRML </strong>instalado en nuestro directorio de paquetes de <strong>Python</strong>. Ahora sólo resta indicarle a nuestra app de <strong>Django </strong>dónde buscar los templates cuando los representemos con este lenguaje de markup. En mi caso, como se trataba de una prueba, simplemente le indiqué el mismo directorio donde se encuentran usualmente los <em>templates </em>del sistema de templates de <strong>Django</strong>. Esto lo hice agregando al archivo <em>settings.py</em> lo siguiente:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">GENSHI_TEMPLATE_DIRS = <span style="color: black;">&#40;</span>
    <span style="color: #dc143c;">os</span>.<span style="color: black;">path</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">os</span>.<span style="color: black;">path</span>.<span style="color: black;">basename</span><span style="color: black;">&#40;</span>__file__<span style="color: black;">&#41;</span>, <span style="color: #483d8b;">'templates'</span><span style="color: black;">&#41;</span>,
<span style="color: black;">&#41;</span></pre></div></div>

<p>Con esto nos aseguramos de que al llamar al <em>render_to_response</em> de <strong>GHRML</strong>, encuentre los templates. De otra forma lanzaría un error.</p>
<p><strong>Usando GHRML</strong></p>
<p>Para poder escribir <em>templates </em>mediante este lenguaje, simplemente importamos lo que necesitemos de <em>ghrml.ghrml_django</em>, por ejemplo, la antes mencionada <em>render_to_response</em>:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> ghrml.<span style="color: black;">ghrml_django</span> <span style="color: #ff7700;font-weight:bold;">import</span> render_to_response <span style="color: #ff7700;font-weight:bold;">as</span> render_ghrml</pre></div></div>

<p>En mi caso particular le puse un alias a <em>render_to_response</em>, ya que seguía usando su versión original para algunas pruebas.</p>
<p>Una vez importado, simplemente reemplazamos los <em>render_to_response</em> que queramos, por los correspondientes <em>render_ghrml</em>, siempre teniendo en cuenta que el template al que apuntamos esté escrito en este lenguaje.</p>
<p>Ventajas y desventajas</p>
<p>Una ventaja obvia de utilizar <strong>GHRML </strong>es que se simplifica enormemente la tarea y el tiempo de escribir nuestros templates, ya que no sólo &#8220;ahorramos&#8221; código, sino que <em><strong>Haml </strong>resulta muchísimo más fáciles de leer</em>. A esto tenemos que sumar la <em>facilidad de instalación</em> y el hecho de que podemos usar <em>Haml </em>con otros lenguajes (como <strong>Ruby </strong>o <strong>PHP</strong>), de forma que no necesitaremos acostumbrarnos a un sistema de templates diferentes para cada framework o lenguaje.</p>
<p>Por otro lado, <strong>GHRML </strong>tiene algunas &#8220;fallas&#8221;; por ejemplo, al querer utilizar el &#8220;tag&#8221; <em>%ul</em> (y <em>%li</em>), sin haber puesto <em>%html</em> y <em>%body</em> en el template que estamos editando, la lista no se renderizará como debe. Además de esto, me he encontrado con un problema muy grave, para el cual &#8211; de momento &#8211; no tengo solución: <em>los forms no se generan automáticamente</em>. Por ejemplo, cuando quiero hacer <em>form.as_p</em>, como esto renderiza un form en el lenguaje de templates de <strong>Django</strong>, <strong>GHRML </strong>no lo reconoce y pone otra cosa en la página (si no me equivoco, renderiza la representación del objeto). Imagino que existirá alguna solución (que no sea armar los forms a &#8220;mano&#8221;), sino ya me iré acostumbrando a hacerlos un poco más <em>&#8220;artesanales&#8221;</em>. Otra falencia grave de este lenguaje es la <em>ausencia casi total de documentación</em>, aunque la sintaxis es casi igual a la de <strong>Haml</strong>, por lo cual se puede aprender a usarlo en la <a href="http://haml-lang.com/docs.html">página de documentación de éste</a>.</p>
<p><em>Una última aclaración</em>: en la <a href="http://www.ghrml.org/">página del <strong>Trac </strong>de </a><strong><a href="http://www.ghrml.org/">GHRML</a> </strong>dicen que tiene dependencia con <strong>Genshi</strong>, por lo cual supongo que las <em>setuptools </em>se encargaron de instalarlo por mí.</p>
<p>¿Alguno de ustedes ha probado <strong>GHRML</strong>? ¿Han tenido los mismos problemas que yo? Si alguien encontró cómo hacer funcionar lo de los forms, ¡avise!</p>
]]></content:encoded>
			<wfw:commentRss>http://desarrollandoideas.com.ar/2009/11/24/ghrml-en-django-haml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adiós HTML, bienvenido Haml</title>
		<link>http://desarrollandoideas.com.ar/2009/11/16/adios-html-bienvenido-haml/</link>
		<comments>http://desarrollandoideas.com.ar/2009/11/16/adios-html-bienvenido-haml/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 18:53:56 +0000</pubDate>
		<dc:creator>Paul M Dorr</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Diseño Web]]></category>
		<category><![CDATA[ERB]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[Haml]]></category>
		<category><![CDATA[herramientas]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[soluciones]]></category>
		<category><![CDATA[templates]]></category>

		<guid isPermaLink="false">http://desarrollandoideas.com.ar/?p=677</guid>
		<description><![CDATA[Actualmente me encuentro comenzando varios proyectos pequeños basados en diferentes plataformas y/o frameworks (Django, Ruby on Rails, PHP), con lo cual se me &#8220;armó&#8221; un lío interesante a la hora de recordar las sintaxis que utiliza cada framework/lenguaje para generar el HTML final. RoR usa por defecto ERB, Django tiene su lenguaje para templates y [...]]]></description>
			<content:encoded><![CDATA[<p>Actualmente me encuentro comenzando varios <strong>proyectos </strong>pequeños basados en diferentes plataformas y/o frameworks (<strong>Django</strong>, <strong>Ruby on Rails</strong>, <strong>PHP</strong>), con lo cual se me &#8220;armó&#8221; un lío interesante a la hora de recordar las sintaxis que utiliza cada framework/lenguaje para generar el <strong>HTML </strong>final. <strong>RoR </strong>usa por defecto <a href="http://www.ruby-doc.org/stdlib/libdoc/erb/rdoc/index.html">ERB</a>, <strong>Django </strong>tiene su<em> lenguaje para templates</em> y con <strong>PHP </strong>me alcanzaba con la forma básica de <em>embeberlo </em>en <strong>HTML</strong>. Con la escasa memoria que tengo, se podrán imaginar que iba a terminar escribiendo cualquier cosa.</p>
<p>Por suerte, y gracias al <em>dios de los lenguajes de programación </em>(?), <a href="http://twitter.com/eljuanchosf">@eljuanchosf</a> llegó para salvarme con <a title="Haml" href="http://haml-lang.com/">Haml</a> en la mano.</p>
<p><strong>Haml </strong>fue ideado para<em> acelerar los tiempos de desarrollo </em>y a la vez lograr un lenguaje de markup <em>agradable a la vista</em>. No por nada de su idea principal es:</p>
<blockquote><p><em>Markup should be beautiful</em>.</p></blockquote>
<p>Luego de ver un ejemplo, se puede comprobar la<em> sencillez y &#8220;limpieza&#8221; </em>que este lenguaje le puede dar a nuestros <em>templates</em>. El ejemplo siguiente está extraído del <a title="Tutorial de Haml" href="http://haml-lang.com/tutorial.html"><strong>tutorial </strong>que se puede ver</a> en la página principal de <strong>Haml</strong>.</p>
<div style="float: left; width: 48%; margin-bottom: 20px">
<h4>ERB</h4>
<pre>&lt;div id='content'&gt;
  &lt;div class='left column'&gt;
    &lt;h2&gt;Welcome to our site!&lt;/h2&gt;
    &lt;p&gt;&lt;%= print_information %&gt;&lt;/p&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;%= render :partial =&gt; "sidebar" %&gt;
  &lt;/div&gt;
&lt;/div&gt;</pre>
</div>
<div style="float: left; width: 48%">
<h4>Haml</h4>
<pre>#content
  .left.column
    %h2 Welcome to our site!
    %p= print_information
  .right.column
    = render :partial =&gt; "sidebar"</pre>
</div>
<div style="clear: left;">
Si bien en principio (y sobre todo para aquellos que no conozcan <strong>ERB</strong>) el código pueda parecer un tanto extraño, una mirada más detenida nos demuestra que el increíble<em> ahorro de código y tiempo</em> que este<strong> lenguaje de markup</strong> nos puede brindar. Además, una vez que nos acostumbramos, el código de <strong>Haml </strong>es<em> mucho más agradable y legible</em> que el <strong>HTML </strong>puro, y ni hablar cuando se trata de <strong>HTML </strong>+ algún-lenguaje-de-template.
</div>
<p>Pero el hecho de que me gustara tanto <strong>Haml </strong>traía consigo un nuevo <strong>problema</strong>; empecé a &#8220;odiar&#8221; el lenguaje de templates de <strong>Django </strong>y <strong>PHP</strong> embebido en <strong>HTML </strong>(en realidad a éste último ya lo odiaba). Así que puse manos al teclado y busqué <strong><em>implementaciones </em>de </strong><strong>Haml </strong>para estos lenguajes, encontrando resultados mucho más<em> rápido y fácil </em>de lo que esperaba.</p>
<p>Para poder tener un lenguaje similar a <strong>Haml </strong>en <strong>Django</strong>, <a title="GHRML, Haml-like para Django" href="http://www.ghrml.org/">podemos utilizar GHRML</a>, el cual está basado en <strong>Genshi Markup Templates</strong>. En el caso de <strong>PHP</strong>, existe un <a title="Parser Haml para PHP" href="http://phphaml.sourceforge.net/">parser llamado phphaml</a>, el cual nos permite escribir los templates casi de la misma forma que lo hacemos en el <strong>Haml </strong>original. Pueden ver ejemplos de estos en sus respectivas páginas.</p>
<p>¿Conocen otras implementaciones de <strong>Haml </strong>para <strong>Django </strong>o <strong>PHP</strong>? ¿Son mejores que las encontradas por mi? ¡No duden en dejar sus comentarios recomendándolas!</p>
]]></content:encoded>
			<wfw:commentRss>http://desarrollandoideas.com.ar/2009/11/16/adios-html-bienvenido-haml/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Librería JavaScript para crear gráficos</title>
		<link>http://desarrollandoideas.com.ar/2009/10/09/libreria-javascript-para-crear-graficos/</link>
		<comments>http://desarrollandoideas.com.ar/2009/10/09/libreria-javascript-para-crear-graficos/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 15:27:52 +0000</pubDate>
		<dc:creator>Paul M Dorr</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[gráficos]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[soluciones]]></category>

		<guid isPermaLink="false">http://desarrollandoideas.com.ar/?p=656</guid>
		<description><![CDATA[Vía Web Resources Depot me enteré de la existencia de gRaphaël, una librería para la creación de gráficos, escrita en JavaScript y totalmente open source, basada en la librería gráfica Raphaël. gRaphaël es capaz de crear gráficos de torta, barra, líneas y puntos, tanto estáticos como interactivos. Estos gráficos son generados mediante VML y soporta [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-660" title="dot" src="http://desarrollandoideas.com.ar/wp-content/uploads/2009/10/dot.png" alt="dot" width="265" height="164" />Vía <a href="http://www.webresourcesdepot.com/javascript-charting-library-graphael/"><strong>Web Resources Depot</strong></a> me enteré de la existencia de <a href="http://g.raphaeljs.com/" target="_blank">gRaphaël</a>, una librería para la <em>creación de <strong>gráficos</strong></em>, escrita en<strong> JavaScript </strong>y totalmente <strong>open source</strong>, basada en la librería gráfica  <a href="http://raphaeljs.com/" target="_blank">Raphaël</a>.</p>
<p><strong>gRaphaël </strong>es capaz de crear<strong> gráficos de torta, barra, líneas y puntos</strong>, tanto estáticos como interactivos. Estos gráficos son generados mediante <a title="VML" href="http://www.w3.org/TR/NOTE-VML"><strong>VML</strong></a> y soporta los browsers más populares, como <strong>Firefox </strong>3.0+, <strong>Safari </strong>3.0+, <strong>Opera </strong>9.5+ e <strong>Internet Explorer</strong> 6.0+.</p>
<p>Como pueden ver en el siguiente código (extraído de la página de gRaphaël), es extremadamente sencillo de usar:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// Creates canvas 640 × 480 at 10, 50</span>
<span style="color: #003366; font-weight: bold;">var</span> paper <span style="color: #339933;">=</span> Raphael<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">10</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">50</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">640</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">480</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">// Creates pie chart at with center at 320, 200, radius 100</span>
<span style="color: #006600; font-style: italic;">// and data: [55, 20, 13, 32, 5, 1, 2, 10]</span>
r.<span style="color: #660066;">g</span>.<span style="color: #660066;">piechart</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">320</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">240</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">100</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#91;</span><span style="color: #CC0000;">55</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">20</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">13</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">32</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">5</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">10</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Pueden ver excelentes demos, como el <a href="http://g.raphaeljs.com/piechart2.html" target="_blank">gráfico de torta interactivo</a> y <a href="http://g.raphaeljs.com/dotchart.html" target="_blank">el de puntos</a> en la misma página de <strong>gRaphaël</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://desarrollandoideas.com.ar/2009/10/09/libreria-javascript-para-crear-graficos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Django vs Ruby on Rails</title>
		<link>http://desarrollandoideas.com.ar/2009/10/05/django-vs-ruby-on-rails/</link>
		<comments>http://desarrollandoideas.com.ar/2009/10/05/django-vs-ruby-on-rails/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 17:10:04 +0000</pubDate>
		<dc:creator>Paul M Dorr</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[frameworks]]></category>

		<guid isPermaLink="false">http://desarrollandoideas.com.ar/?p=620</guid>
		<description><![CDATA[Leo en Barrapunto un pedido de opiniones acerca de frameworks web, por parte de un usuario. En él solicita que le recomienden cuál de estos dos frameworks es mejor, y agrega que también le interesaría saber cuáles son las ventajas de cualquiera de estos sobre los más &#8220;tradicionales&#8221;, como son los basados en tecnologías J2EE [...]]]></description>
			<content:encoded><![CDATA[<p>Leo en <em>Barrapunto </em>un pedido de <a title="Django vs Ruby on Rails" href="http://preguntas.barrapunto.com/article.pl?sid=09/10/05/1211242&amp;from=rss">opiniones acerca de frameworks web</a>, por parte de un usuario. En él solicita que le recomienden <em>cuál de estos dos frameworks es mejor</em>, y agrega que también le interesaría saber cuáles son las <em>ventajas</em> de cualquiera de estos sobre los más &#8220;tradicionales&#8221;, como son los basados en tecnologías <strong>J2EE </strong>(barf.)</p>
<p>De las respuestas que se fueron dando en forma de comentarios, se pueden sacar algunas <em>conclusiones </em>(basadas sólo en opiniones de los lectores):</p>
<ul>
<li><strong>Django </strong>y <strong>RoR </strong>son más rápidos (en general) que cualquier <em>framework basado en PHP</em></li>
<li>Tanto <strong>Django </strong>como <strong>RoR </strong>tienen una <em>curva de aprendizaje rápida</em>, más aún comparándolos con frameworks como <strong>Struts</strong>, <strong>JSF</strong>, etc.</li>
<li><em>Django es más rápido que RoR</em> (yo no lo dije!!! =P)</li>
<li>Ambos tienen la ventaja de tener muchísimas <em>herramientas y aplicaciones &#8220;pluggables&#8221;</em> ya desarrolladas (<em>blogs</em>,  <em>foros</em>,  <em>redes sociales</em>,  etc.)</li>
<li><strong>Django </strong>tiene una <em>documentación excelente</em> (adhiero!)</li>
<li><em>Faltan IDEs</em> que se integren mejor con estos frameworks</li>
<li>Muchos desarrolladores no tienen la más pálida idea de lo que hablan</li>
<li>Algunos comparan la complejidad de <strong>RoR </strong>con <strong>J2EE</strong>+<strong>Spring</strong>+etc. (vamos rubyonrailistas <em>¡a desmentir esto!</em>), por lo que recomiendan otros frameworks basados en Ruby, como <a title="Sinatra" href="http://www.sinatrarb.com/">Sinatra</a>, <a title="Rack" href="http://rack.rubyforge.org/">Rack</a>, <a title="Ramaze" href="http://ramaze.net/">Ramaze </a>o <a title="Camping" href="http://camping.rubyforge.org/files/README.html">Camping</a>.</li>
<li><em>Odio el sistema de comentarios de <strong>Barrapunto </strong>¬¬</em></li>
</ul>
<p>Si bien se puede apreciar que las opiniones son varias y algunas bastante polémicas, creo que un usuario dio en el clavo al decir algo como lo siguiente, con lo que estoy completamente de acuerdo:</p>
<blockquote><p>Creo que hay que mirarlo de otra manera&#8230; no hay una solución definitiva, ni porque una sea mejor el resto pasan a ser malas.</p></blockquote>
<p>Luego agregó que se debería trabajar con lo que ya se sabe (si sabes <strong>Java</strong>, entonces algo como <strong>JSF</strong>; si sabes <strong>PHP</strong>, quizás <strong>Symfony</strong>&#8230;), y llegado este punto ya<em> dejamos de concordar</em>.</p>
<p>Siempre es bueno <em>aprovechar la oportunidad de aprender</em>, de expandir nuestros horizontes, de generar un poco de movimiento en las neuronas para que no nos queden atrofiadas en un sólo lenguaje, en una sola tecnología, en una forma de pensar cerrada y sin posibilidad de cambio. Nuestro ambiente es algo que <em>evoluciona constantemente</em>; nuevos lenguajes, nuevas tecnologías, nuevas formas de enfrentar y solucionar los problemas. Tenemos que estar <em>siempre atentos y listos para adaptarnos</em> a lo que sea que se nos cruce en el camino. Si allá por los <em>50&#8242;s/60&#8242;s</em>, los programadores se hubieran cerrado a su lenguaje sin aceptar nada de lo nuevo que vendría, hoy sólo programaríamos en <strong>FORTRAN</strong>.</p>
<p><em>¿Qué piensan ustedes? ¿Qué framework prefieren? ¿Cómo encaran los cambios en el ambiente de desarrollo de sistemas?</em></p>
]]></content:encoded>
			<wfw:commentRss>http://desarrollandoideas.com.ar/2009/10/05/django-vs-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Más de 160 tutoriales de diseño web</title>
		<link>http://desarrollandoideas.com.ar/2009/08/03/mas-de-160-tutoriales-de-diseno-web/</link>
		<comments>http://desarrollandoideas.com.ar/2009/08/03/mas-de-160-tutoriales-de-diseno-web/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 16:06:45 +0000</pubDate>
		<dc:creator>Paul M Dorr</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Diseño Web]]></category>

		<guid isPermaLink="false">http://desarrollandoideas.com.ar/?p=306</guid>
		<description><![CDATA[Un post cortito, ya que mucha descripción no hace falta. Les dejo un link con más de 160 excelentes tutoriales para diseñar páginas web. Estuve viendo algunos y están muy buenos; más allá de que muchos quizás ya los hayan visto, lo importante es el gran número recopilado en esta entrada: 160+ Mega Web Design [...]]]></description>
			<content:encoded><![CDATA[<p>Un post cortito, ya que mucha descripción no hace falta. Les dejo un link con más de <strong><em>160 excelentes tutoriales</em></strong> para diseñar <em>páginas web</em>. Estuve viendo algunos y están muy buenos; más allá de que muchos quizás ya los hayan visto, lo importante es el gran número recopilado en esta entrada:</p>
<p><strong><a title="Permanent Link to 160+ Mega Web Design Tutorial Roundup" href="http://www.tripwiremagazine.com/tutorials/css-techniques/160-mega-web-design-tutorial-roundup.html">160+ Mega Web Design Tutorial Roundup</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://desarrollandoideas.com.ar/2009/08/03/mas-de-160-tutoriales-de-diseno-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Organizando proyectos con PHP</title>
		<link>http://desarrollandoideas.com.ar/2009/07/27/organizando-proyectos-con-php/</link>
		<comments>http://desarrollandoideas.com.ar/2009/07/27/organizando-proyectos-con-php/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 19:24:09 +0000</pubDate>
		<dc:creator>Paul M Dorr</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[soluciones]]></category>

		<guid isPermaLink="false">http://desarrollandoideas.com.ar/?p=258</guid>
		<description><![CDATA[Si bien cada uno ordena sus proyectos como le parece más cómodo, siempre es útil encontrar documentación en este aspecto, al menos para tomarla como orientación. Con respecto a esto, hace ya algún tiempo que tenía ganas de escribir algún tutorial explicando la forma en la que ordeno mis proyectos de PHP, pero en nettuts [...]]]></description>
			<content:encoded><![CDATA[<p>Si bien cada uno ordena sus proyectos como le parece más cómodo, siempre es útil encontrar <em>documentación </em>en este aspecto, al menos para tomarla como orientación. Con respecto a esto, hace ya algún tiempo que tenía ganas de escribir algún <em>tutorial </em>explicando la forma en la que ordeno mis <em><strong>proyectos de PHP</strong></em>, pero en <em><strong>nettuts </strong></em>me ganaron de mano, utilizando una estructura muy similar a la que yo empleo.</p>
<p>En resumidas cuentas, me han ahorrado el trabajo, quedandome sólo publicar el siguiente link:</p>
<p><a title="Organize Your Next PHP Project the Right Way" href="http://net.tutsplus.com/tutorials/php/organize-your-next-php-project-the-right-way/"><strong><em>Organize Your Next PHP Project the Right Way</em></strong></a></p>
<p>Que lo disfruten! =)</p>
]]></content:encoded>
			<wfw:commentRss>http://desarrollandoideas.com.ar/2009/07/27/organizando-proyectos-con-php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Extensiones para Google Chrome</title>
		<link>http://desarrollandoideas.com.ar/2009/05/29/extensiones-para-google-chrome/</link>
		<comments>http://desarrollandoideas.com.ar/2009/05/29/extensiones-para-google-chrome/#comments</comments>
		<pubDate>Fri, 29 May 2009 17:11:18 +0000</pubDate>
		<dc:creator>Paul M Dorr</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Diseño Web]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[extensiones]]></category>
		<category><![CDATA[Google Chrome]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://desarrollandoideas.com.ar/?p=177</guid>
		<description><![CDATA[Hasta ahora no me había llamado mucho la atención este navegador, pero de a poco está mejorando y creo que es muy posible que sobrepase a Firefox si la versión 3.5 de éste no sale pronto (o si no es lo que esperamos). Al leer sobre las extensiones, me entero de que van a estar [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><img class="aligncenter size-full wp-image-181" style="float: none;" title="Chrome 3" src="http://desarrollandoideas.com.ar/wp-content/uploads/2009/05/chrome31.jpg" alt="Chrome 3" width="510" height="212" /></p>
<p>Hasta ahora no me había llamado mucho la atención este navegador, pero de a poco está mejorando y creo que es muy posible que sobrepase a Firefox si la versión 3.5 de éste no sale pronto (o si no es lo que esperamos).</p>
<p>Al <a title="Extending Google Chrome" href="http://googlesystem.blogspot.com/2009/05/extending-google-chrome.html">leer sobre las extensiones</a>, me entero de que van a estar hechas sobre HTML, JS y CSS, una idea que me parece excelente y que Firefox también está intentando adoptar con <a title="JetPack" href="https://jetpack.mozillalabs.com/">JetPack</a>. Esta forma de hacer las extensiones ampliaría la cantidad de desarrolladores que las crean, ya que el proceso es igual al que seguimos cuando hacemos una página web. Otra cosa interesante de este sistema, es que no es necesario reiniciar el browser para que funcionen.</p>
<p>Para ponerme a ver <a title="Google Chrome Extensions Howto" href="http://dev.chromium.org/developers/design-documents/extensions/howto"><strong>como crear estas extensiones</strong></a>, me he descargado la <a href="http://www.google.com/chrome/eula.html?extra=devchannel">versión de desarrollo de Google Chrome</a>, que según el &#8220;Acerca de&#8230;&#8221; es la 3.0.182.3 (OMG), y he visto muchas mejoras interesantes, pero sobre todo en la Consola JavaScript, la cual pinta mucho mejor que FireBug.</p>
<p>Si cuando todo esto funcione, también sale para Linux, quizás me termino cambiando de browser.</p>
]]></content:encoded>
			<wfw:commentRss>http://desarrollandoideas.com.ar/2009/05/29/extensiones-para-google-chrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Más de 27 técnicas en JavaScript</title>
		<link>http://desarrollandoideas.com.ar/2009/05/11/mas-de-27-tecnicas-en-javascript/</link>
		<comments>http://desarrollandoideas.com.ar/2009/05/11/mas-de-27-tecnicas-en-javascript/#comments</comments>
		<pubDate>Mon, 11 May 2009 15:06:16 +0000</pubDate>
		<dc:creator>Paul M Dorr</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Diseño Web]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Recursos]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[trucos]]></category>
		<category><![CDATA[Tutoriales]]></category>

		<guid isPermaLink="false">http://desarrollandoideas.com.ar/?p=150</guid>
		<description><![CDATA[La gente de Desizn Tech ha reunido una excelente lista de más de 27 técnicas basadas en JavaScript, con las cuales podemos darle más &#8220;vida&#8221; e interactividad a nuestros sitios. Es una opción muy útil para aquellos que (como yo) no quieren depender de frameworks como jQuery o Mootools. También pueden ser una muy buena [...]]]></description>
			<content:encoded><![CDATA[<p>La gente de <a title="Desizn Tech" href="http://desizntech.info">Desizn Tech</a> ha reunido una excelente lista de <a title="Más de 27 técnicas de JavaScript" href="http://desizntech.info/2009/05/27-handy-javascript-techniques-for-web-designer/">más de 27 técnicas basadas en JavaScript</a>, con las cuales podemos darle más &#8220;vida&#8221; e interactividad a nuestros sitios. Es una opción muy útil para aquellos que (como yo) no quieren depender de frameworks como jQuery o Mootools. También pueden ser una muy buena fuente para obtener ideas o ejemplos de cómo implementar estas soluciones en nuestros propios frameworks (como también espero poder hacer yo).</p>
]]></content:encoded>
			<wfw:commentRss>http://desarrollandoideas.com.ar/2009/05/11/mas-de-27-tecnicas-en-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Komodo Edit: IDE multilenguaje open source</title>
		<link>http://desarrollandoideas.com.ar/2009/05/08/komodo-edit-ide-multilenguaje-open-source/</link>
		<comments>http://desarrollandoideas.com.ar/2009/05/08/komodo-edit-ide-multilenguaje-open-source/#comments</comments>
		<pubDate>Fri, 08 May 2009 18:22:52 +0000</pubDate>
		<dc:creator>Paul M Dorr</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Editores]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Komodo Edit]]></category>

		<guid isPermaLink="false">http://desarrollandoideas.com.ar/?p=114</guid>
		<description><![CDATA[Quienes desarrollamos en diversos lenguajes nos vemos en la necesidad de conseguir un IDE que reconozca cualquiera de ellos y a la vez cumpla nuestras expectativas en cuanto a características e interfaz. A la hora de elegir un editor siempre contamos con muchas opciones, de entre las cuales yo me quedo (por ahora) con Komodo [...]]]></description>
			<content:encoded><![CDATA[<p>Quienes desarrollamos en diversos lenguajes nos vemos en la necesidad de conseguir un IDE que reconozca cualquiera de ellos y a la vez cumpla nuestras expectativas en cuanto a características e interfaz. A la hora de elegir un editor siempre contamos con muchas opciones, de entre las cuales yo me quedo (por ahora) con <a title="Komodo Edit Features" href="http://www.activestate.com/komodo_edit/features/">Komodo Edit</a>. Las principales características de este IDE son:</p>
<ul>
<li>Soporte multilenguaje.</li>
<li>Soporte avanzado para: CSS, HTML, JavaScript, XML, Perl, PHP, Python, Ruby, Tcl, RHTML, Template-Toolkit, HTML-Smarty and Django.</li>
<li>Autocompleción y tips para: CSS, HTML, JavaScript, Perl, PHP, Python, Ruby, Tcl, XML and XSLT.</li>
<li>Soporte de archivos multi lenguaje (Ej: CSS y JavaScript embebidos en HTML).</li>
<li>Soporte para librerías de terceros.</li>
<li>Características básicas como: Auto indentación y &#8220;desindentación&#8221;, selección de bloques, búsqueda incremental, reflujo de código, y más.</li>
<li>Chequeo y coloreo de sintaxis.</li>
<li>Mapeo de atajos del teclado de Vi y Emacs.</li>
<li>Previsualización de HTML/CSS/XML/JS.</li>
<li>&#8220;Code Snipets&#8221;: trozos de código reusables personalizados.</li>
<li>Edición multi documento con pestañas.</li>
<li>Administrador de proyectos con carpetas reales y virtuales.</li>
<li>Toolbox que permite guardar virtualmente &#8220;todo&#8221;: code snipets, macros, menúes, templates, etc.</li>
<li>Soporta agregados XPI (como Firefox y Thunderbird)</li>
</ul>
<p>Tomando todo lo anterior como ventajas, paso ahora a nombrar las que creo que podrían ser algunas de sus desventajas:</p>
<ul>
<li>Dado que está basado en XUL (el sdk de Mozilla con el que está hecho Firefox), puede llegar a volverse un poco lento de a ratos si la pc no es muy potente. Si bien el uso de memoria es bastante intensivo, no llega a ocupar tanta memoria como otros IDEs.</li>
<li>No posee explorador de archivos locales ni remotos, sino que sólo se maneja mediante los proyectos. De cualquier forma esto es fácilmente solucionable mediante un agregado.</li>
<li>No posee debugger, el que sí está incorporado en la versión <a title="Komodo IDE" href="http://www.activestate.com/komodo_edit/comparison/">Komodo IDE</a>, la cual es paga.</li>
</ul>
<p><strong>Agregados recomendados</strong></p>
<p>Para completar las herramientas de Komodo Edit, le recomendaré tres agregados muy útiles:</p>
<ul>
<li><strong><a title="JSTreeDrive" href="http://community.activestate.com/xpi/jstreedrive">JSTReeDrive</a></strong>: Agrega un explorador de archivos tanto locales como remotos en la barra de la izquierda. Permite administrar los archivos, guardar favoritos y visualizar imágenes. La versión local funciona perfecto. La remota (vía FTP) no la he probado, pero me han comentado que no funciona muy bien, esperemos que mejore en las próximas versiones.</li>
<li><strong>HTML ToolKit</strong>: Muy buena colección de herramientas que facilita el desarrollo de páginas wev. Lean sus <a href="http://community.activestate.com/xpi/html-toolkit">características</a> en la página del agregado.</li>
<li><a href="http://community.activestate.com/xpi/source-tree"><strong>Source Tree</strong></a>: Permite explorar las funciones y métodos de nuestro código mediante un árbol (muy similar al outline de eclipse). Si bien la idea es muy buena, luego de probarlo un par de días no parece funcionar del todo bien.</li>
</ul>
<p>Resumiendo, Komodo Edit es un entorno ideal para desarrollo web utilizando HTML, PHP, CSS y JavaScript, a la vez que puede servir igual de bien para trabajar con Python y Django. Si bien no posee un debugger para este lenguaje, siempre hay otras formas de lograr la misma funcionalidad (por ej: combinándolo con <a title="IPython" href="http://ipython.scipy.org/moin/Documentation">IPython</a>).</p>
<p>Más allá del hecho de tener un par de contras, creo que las ventajas son más que suficientes como para darle una oportunidad. De momento es el que mejor me ha respondido. ¿Tienen algún mejor IDE para recomendar? ¡Espero sus propuestas!</p>
<p>Vía: <a title="Komodo Edit Features" href="http://www.activestate.com/komodo_edit/features/">Página oficial de Komodo Edit</a></p>
]]></content:encoded>
			<wfw:commentRss>http://desarrollandoideas.com.ar/2009/05/08/komodo-edit-ide-multilenguaje-open-source/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

