<?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>Developers Dominicanos</title>
	<atom:link href="http://developers.do/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://developers.do</link>
	<description>Developers Dominicanos</description>
	<lastBuildDate>Tue, 14 May 2013 15:14:19 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>¿Deseas emprender con éxito?</title>
		<link>http://developers.do/index.php/deseas-emprender-con-exito/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=deseas-emprender-con-exito</link>
		<comments>http://developers.do/index.php/deseas-emprender-con-exito/#comments</comments>
		<pubDate>Tue, 14 May 2013 15:14:19 +0000</pubDate>
		<dc:creator>Hector Minaya</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[StartUps]]></category>

		<guid isPermaLink="false">http://developers.do/?p=1774</guid>
		<description><![CDATA[¿Deseas emprender con éxito? El Viceministerio de fomento a las PYMES del Ministerio de Industria y Comercio de la República Dominicana (MIC) junto al Centro Regional de Promoción de la MIPYME (CENPROMYPE) convoca a personas o grupos que cumplan con los siguientes requerimientos: Que posea una idea de negocios innovadora o una empresa de reciente ]]></description>
				<content:encoded><![CDATA[<div class="fb-like" data-href="http://developers.do/index.php/deseas-emprender-con-exito/" style="" data-send="true" data-layout="button_count" data-width="260" data-show-faces="true" data-action="like" data-colorscheme="light"></div>
<p><strong>¿Deseas emprender con éxito?</strong></p>
<p>El <a href="http://www.retoemprendedor.com/" target="_blank">Viceministerio de fomento a las PYMES</a> del Ministerio de Industria y Comercio de la República Dominicana (MIC) junto al Centro Regional de Promoción de la MIPYME (CENPROMYPE) convoca a personas o grupos que cumplan con los siguientes requerimientos:</p>
<ul>
<li>Que posea una idea de negocios innovadora o una empresa de reciente creación.</li>
<li>Que tenga deseos de desarrollar su iniciativa y hacer crecer su mercado con el apoyo de especialistas nacionales e internacionales.</li>
<li>Que esté interesada en acceder a capital semilla no reembolsable de hasta <strong>US$7,000.00</strong> para llevar a cabo su proyecto.</li>
</ul>
<p><strong>¿Quiénes pueden participar?</strong></p>
<ol>
<li>Emprendedores(as) potenciales: Personas y equipos que cuenten con ideas de negocios y con la motivación por emprender a tiempo completo, pero que aún no han avanzado hacia la fase de comercialización de su producto o solución.</li>
<li>Empresas de origen reciente: Con no más de 36 meses o 3 años de existencia (a partir de la primera venta).</li>
</ol>
<p>Tanto para emprendedores potenciales, como para empresas, se buscan equipos mixtos, es decir, que cuenten con al menos una integrante mujer. Esto se realiza siguiendo los lineamientos sugeridos por el BID como forma de aumentar la inclusión social de las mujeres.<br />
Todos los miembros del equipo emprendedor debe tener 18 o más años de edad. Se aceptan ideas de todos los sectores económicos con excepción de: comercio (tiendas, ferreterías, farmacias, etc.) y siembra o venta de productos agrícolas.</p>
<p>Se evaluará favorablemente:</p>
<ul>
<li>Aquellos proyectos que tengan al menos una mujer dentro de su equipo.</li>
<li>Las iniciativas que hayan identificado una oportunidad y se basan en necesidades de los clientes.</li>
<li>Iniciativas que aprovechen las capacidades y experiencia de uno o más miembros del equipo emprendedor.</li>
<li>Iniciativas que proporcionen acceso a la solución a mercados tradicionalmente desatendidos.</li>
<li>Proyectos que presenten evidencia de que la solución es acogida por sus clientes potenciales. No se exigen planes de negocios.</li>
</ul>
<p>Para participar en este programa debe registrarse en el Formulario de Inscripción en el siguiente link: <a href="https://docs.google.com/forms/d/1kczSozxTVXRtDL6jx3QMLnlDQEddNIJ1fKksTJY24jQ/viewform">Reto Emprendedor 2013</a></p>
<p>Para recibir mayor información, incríbanse y se la estaremos enviando próximamente.</p>
]]></content:encoded>
			<wfw:commentRss>http://developers.do/index.php/deseas-emprender-con-exito/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Resumen &#8211; #PythonDominicana &#8211; Proyecto WebFrameworks intermedio</title>
		<link>http://developers.do/index.php/resumen-pythondominicana-proyecto-webframeworks-intermedio/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=resumen-pythondominicana-proyecto-webframeworks-intermedio</link>
		<comments>http://developers.do/index.php/resumen-pythondominicana-proyecto-webframeworks-intermedio/#comments</comments>
		<pubDate>Tue, 14 May 2013 13:10:03 +0000</pubDate>
		<dc:creator>Heine Morantin</dc:creator>
				<category><![CDATA[Comunidad]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Reunión]]></category>

		<guid isPermaLink="false">http://developers.do/?p=1766</guid>
		<description><![CDATA[El pasado martes 7 de mayo, Python Dominicana tuvo su 16ta. reunión. Para esta ocasión el punto central fue el planteamiento de realizar un proyecto que sirva como plataforma para que la comunidad de desarrolladores dominicanos para darse a conocer. Dicha propuesta se trata de elaborar un proyecto web similar a AngelList y que este ]]></description>
				<content:encoded><![CDATA[<div class="fb-like" data-href="http://developers.do/index.php/resumen-pythondominicana-proyecto-webframeworks-intermedio/" style="" data-send="true" data-layout="button_count" data-width="260" data-show-faces="true" data-action="like" data-colorscheme="light"></div>
<p style="text-align: justify">El pasado martes 7 de mayo, Python Dominicana tuvo su 16ta. reunión. Para esta ocasión el punto central fue el planteamiento de realizar un proyecto que sirva como plataforma para que la comunidad de desarrolladores dominicanos para darse a conocer.</p>
<p style="text-align: justify">Dicha propuesta se trata de elaborar un proyecto web similar a <a href="http://www.angel.co" target="_blank">AngelList</a> y que este sea realizado en los diferentes web frameworks que existen para python. Para esto se crearan grupos de trabajos y cada uno seleccionaran un web framework distinto. Esto servirá para compartir en diferentes charlas las experiencias de trabajos con los mismos, planteamientos de ventajas y desventajas de cada web framework y los resultados del desarrollo.</p>
<p style="text-align: justify">Pronto se estará publicando en <a href="http://www.python.do">Python Dominicana</a> los detalles para el inicio del desarrollo del proyecto.</p>
<p style="text-align: justify">Para mayores detalles:</p>
<ul>
<li>Fotos: Las fotografias de la reunion las pueden ver <a href="https://plus.google.com/events/cmh12ths00fqglda0p1rvk6o82c/110061704513048052029/5875414220996833202" target="_blank">aquí</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://developers.do/index.php/resumen-pythondominicana-proyecto-webframeworks-intermedio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>#Ruby.do – Introducción a Ruby on Rails &#8211; II</title>
		<link>http://developers.do/index.php/ruby-do-introduccion-a-ruby-on-rails-ii/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ruby-do-introduccion-a-ruby-on-rails-ii</link>
		<comments>http://developers.do/index.php/ruby-do-introduccion-a-ruby-on-rails-ii/#comments</comments>
		<pubDate>Tue, 07 May 2013 18:54:09 +0000</pubDate>
		<dc:creator>Hector Minaya</dc:creator>
				<category><![CDATA[Comunidad]]></category>
		<category><![CDATA[Reunión]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://developers.do/?p=1755</guid>
		<description><![CDATA[En la 5ta charla de Ruby.do continuamos con lo visto en la charla anterior y nos fajamos con la introducción a Ruby on Rails parte II. En esta ocasión contamos con la presencia de Josue Abreu de Pixel Perfect Tree para impartir la charla. Demo: Los demos de la charla lo pueden encontrar en github ]]></description>
				<content:encoded><![CDATA[<div class="fb-like" data-href="http://developers.do/index.php/ruby-do-introduccion-a-ruby-on-rails-ii/" style="" data-send="true" data-layout="button_count" data-width="260" data-show-faces="true" data-action="like" data-colorscheme="light"></div>
<p>En la 5ta charla de <a href="http://www.ruby.do">Ruby.do</a> continuamos con lo visto en la <a href="http://developers.do/index.php/resumen-ruby-do-introduccion-a-ruby-on-rails/">charla anterior</a> y nos fajamos con la introducción a Ruby on Rails parte II. En esta ocasión contamos con la presencia de <a href="http://twitter.com/gotjosh" target="_blank">Josue Abreu</a> de <a href="https://twitter.com/pixelperfectree" target="_blank">Pixel Perfect Tree</a> para impartir la charla.</p>
<ul>
<li><strong>Demo:</strong> Los demos de la charla lo pueden encontrar en github <a href="https://github.com/ruby-do/charla-05" target="_blank">en el repositorio de ruby.do</a></li>
<li><strong>Fotos:</strong> Las fotos del evento estan publicadas <a href="https://plus.google.com/photos/101641192417460888818/albums/5874965890739669697" target="_blank">en G+ en este album</a>.</li>
</ul>
<p>En nuestra próxima charla estaremos tratando dos temas:</p>
<ul>
<li><span style="line-height: 13px;">Debugging Ruby on Rails by <a href="https://github.com/gotjosh" target="_blank">Josue Abreu</a></span></li>
<li>Hacking Haml by <a href="https://github.com/TrueniTo" target="_blank">Gabriel González Mañaná</a></li>
</ul>
<p>Ya la invitación esta creada, puedes <a href="https://plus.google.com/b/101641192417460888818/events/c72thch7ak0rrklfb9pdaf1fq00" target="_blank">inscribirte en este link</a>.</p>
<p><a href="http://developers.do/wp-content/uploads/2013/05/IMG_1521.jpg"><img class="alignnone size-full wp-image-1757" alt="IMG_1521" src="http://developers.do/wp-content/uploads/2013/05/IMG_1521.jpg" width="542" height="406" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://developers.do/index.php/ruby-do-introduccion-a-ruby-on-rails-ii/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Resumen &#8211; #PythonDominicana – Creación de API’s</title>
		<link>http://developers.do/index.php/resumen-pythondominicana-creacion-de-apis/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=resumen-pythondominicana-creacion-de-apis</link>
		<comments>http://developers.do/index.php/resumen-pythondominicana-creacion-de-apis/#comments</comments>
		<pubDate>Fri, 03 May 2013 14:32:32 +0000</pubDate>
		<dc:creator>Heine Morantin</dc:creator>
				<category><![CDATA[Comunidad]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Reunión]]></category>

		<guid isPermaLink="false">http://developers.do/?p=1734</guid>
		<description><![CDATA[El pasado martes 23 de Abril, Python Dominicana tuvo su decimo quinta reunión.  Para esta ocasión el tema tratado fue API’s. La charla sirvió de introducción al API’s cubriendo sus características principales, se hablo un poco de Pyramid para aquellos que no lo conocían, esto sumando a varios ejemplos de API. Para mayores detalles: Código: ]]></description>
				<content:encoded><![CDATA[<div class="fb-like" data-href="http://developers.do/index.php/resumen-pythondominicana-creacion-de-apis/" style="" data-send="true" data-layout="button_count" data-width="260" data-show-faces="true" data-action="like" data-colorscheme="light"></div>
<p style="text-align: justify">El pasado martes 23 de Abril, Python Dominicana tuvo su decimo quinta reunión.  Para esta ocasión el tema tratado fue API’s. La charla sirvió de introducción al API’s cubriendo sus características principales, se hablo un poco de Pyramid para aquellos que no lo conocían, esto sumando a varios ejemplos de API.</p>
<p style="text-align: justify">Para mayores detalles:</p>
<ul style="text-align: justify">
<li>Código: Para visualizar parte del código empleado usado en la presentación lo pueden ver <a href="https://gist.github.com/warchiefx/455084421744d7b116de" target="_blank">aquí</a>.</li>
</ul>
<ul>
<li style="text-align: justify">Fotos: Las fotografías de la reunión las pueden ver <a href="https://plus.google.com/u/0/events/cumsc1tb1r7sfte1d502ptkd2t8/109744993210315614944/5870405489901568018?authkey=CKjUl-Hm_9W5wwE" target="_blank">aquí</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://developers.do/index.php/resumen-pythondominicana-creacion-de-apis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Quieres una entrada para el BlackBerry Jam?</title>
		<link>http://developers.do/index.php/quieres-una-entrada-para-el-blackberry-jam/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=quieres-una-entrada-para-el-blackberry-jam</link>
		<comments>http://developers.do/index.php/quieres-una-entrada-para-el-blackberry-jam/#comments</comments>
		<pubDate>Thu, 02 May 2013 19:54:27 +0000</pubDate>
		<dc:creator>Hector Minaya</dc:creator>
				<category><![CDATA[Blackberry]]></category>

		<guid isPermaLink="false">http://developers.do/?p=1742</guid>
		<description><![CDATA[Noe Branagan tiene dos entradas para el BlackBerry Jam que esta obsequiando.El evento será llevado a cabo del 14 al 16 de mayo en Orlando. Cada entrada tiene un valor aproximado de US$599.00 Nota: es solamente la entrada, usted es responsable por sus gastos de transporte, hospedaje y demás. Veremos si el año que viene ]]></description>
				<content:encoded><![CDATA[<div class="fb-like" data-href="http://developers.do/index.php/quieres-una-entrada-para-el-blackberry-jam/" style="" data-send="true" data-layout="button_count" data-width="260" data-show-faces="true" data-action="like" data-colorscheme="light"></div>
<p><a href="https://twitter.com/noeBranagan" target="_blank">Noe Branagan</a> tiene dos entradas para el BlackBerry Jam que esta obsequiando.El evento será llevado a cabo del 14 al 16 de mayo <a href="http://www.blackberryjamconference.com/americas" target="_blank">en Orlando</a>. Cada entrada tiene un <a href="http://www.blackberryjamconference.com/americas/registration/pricing" target="_blank">valor aproximado</a> de US$599.00</p>
<ul>
<li>Nota: es solamente la entrada, usted es responsable por sus gastos de transporte, hospedaje y demás.</li>
</ul>
<p>Veremos si el año que viene podemos conseguir un paquete completo que lo cubra todo, pero por el momento es una buena oportunidad para un developer que se encuentre en esa área para la fecha.</p>
<p>Si esta interesado debe enviarle un email a noe.branagan@gmail.com con sus datos y el le contactara.</p>
]]></content:encoded>
			<wfw:commentRss>http://developers.do/index.php/quieres-una-entrada-para-el-blackberry-jam/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>¿Utilizar el mejor lenguaje o el algoritmo correcto? – #JavaScript #nodejs</title>
		<link>http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-javascript-nodejs/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-javascript-nodejs</link>
		<comments>http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-javascript-nodejs/#comments</comments>
		<pubDate>Mon, 29 Apr 2013 18:14:56 +0000</pubDate>
		<dc:creator>Hector Minaya</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[node.js]]></category>

		<guid isPermaLink="false">http://developers.do/?p=1710</guid>
		<description><![CDATA[Esta es la cuarta entrega en esta serie, para los que no lo han hecho o llegaron a este link directamente tienen que leer el primer post para que entiendan el contexto y luego echenle un vistazo al segundo y tercero para que se entienda bien. Task: Dado un archivo de ejemplo que contiene rango de numeros. Debe determinar cuantos ]]></description>
				<content:encoded><![CDATA[<div class="fb-like" data-href="http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-javascript-nodejs/" style="" data-send="true" data-layout="button_count" data-width="260" data-show-faces="true" data-action="like" data-colorscheme="light"></div>
<p>Esta es la cuarta entrega en esta serie, para los que no lo han hecho o llegaron a este link directamente tienen que <a href="http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-python/" target="_blank">leer el primer post</a> para que entiendan el contexto y luego echenle un vistazo al <a href="http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-php/" target="_blank">segundo</a> y <a href="http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-ruby/" target="_blank">tercero</a> para que se entienda bien.</p>
<p><strong>Task:</strong></p>
<ul>
<li>Dado <a href="https://gist.github.com/hminaya/5435673">un archivo</a> de ejemplo que contiene rango de numeros.</li>
<li>Debe determinar cuantos numeros dentro de cada rango son palindromos</li>
<li>Mostrar el total</li>
</ul>
<p>Para hacer las comparaciones entre los diferentes lenguajes estoy usando una Macbook Pro con las siguientes specs:</p>
<ul>
<li>2.4 Ghz Intel Core 2 Duo</li>
<li>8 GB 1067 MHz DDR3</li>
<li>OS X 10.8.3</li>
</ul>
<p>Le toca el turno a JavaScript. Para eso vamos a tomar un ejemplo en <a href="http://developers.do/index.php/tag/node-js/" target="_blank">nodejs</a>.</p>
<p><strong>nodejs 0.10.4 </strong>by <a href="https://gist.github.com/reneolivo" target="_blank">Rene Olivo</a><br />
<script src="https://gist.github.com/5437740.js"></script><br />
<noscript>
<pre><code class="language-javascript javascript">var tiempoInicio	= new Date().getTime();


function esPalindromo(cadena) {
	cadena = cadena.toString();
	
	return cadena == cadena.split('').reverse().join('');
}


var fs = require('fs');


fs.readFile('seed.txt', function(error, archivo) {
	var contador	= 0;

	var lineas	= archivo.toString().split(&quot;\n&quot;);
	
	for (var num in lineas) {
		var rango	= lineas[num].split(' ');
		
		rango[0]	= parseInt(rango[0]);
		rango[1]	= parseInt(rango[1]);
		
		for(var i = rango[0]; i &lt;= rango[1]; i++)
			if (esPalindromo(i))
				contador++;
	}
	
	var tiempoFin		= new Date().getTime();
	var tiempoTotal		= (tiempoFin - tiempoInicio) / 1000;
		
	console.log( 'Encontradas    : ' + contador );
	console.log( 'Inicio         : ' + tiempoInicio );
	console.log( 'Fin            : ' + tiempoFin );
	console.log( 'Tiempo Total   : ' + tiempoTotal );		
});</code></pre>
</noscript>
<ul>
<li>Total: 106,814</li>
<li>Tiempo: <strong>51.894 segundos</strong></li>
</ul>
<p>El tiempo de corrida no esta mal para ser un lenguaje interpretado y el algoritmo que se esta utilizando, yo esperaba que fuera mas lento. Tengo otra versión que mandaron en <a href="https://gist.github.com/juanj032/5446260">JS puro</a>, pero aun la estoy depurando, cuando la termine la voy a incluir tambien.</p>
]]></content:encoded>
			<wfw:commentRss>http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-javascript-nodejs/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>¿Utilizar el mejor lenguaje o el algoritmo correcto? – #ruby</title>
		<link>http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-ruby/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-ruby</link>
		<comments>http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-ruby/#comments</comments>
		<pubDate>Mon, 29 Apr 2013 16:07:17 +0000</pubDate>
		<dc:creator>Hector Minaya</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[jRuby]]></category>

		<guid isPermaLink="false">http://developers.do/?p=1695</guid>
		<description><![CDATA[Aqui vamos con el tercer post en esta serie, para los que no lo han hecho o llegaron a este link directamente tienen que leer el primer post para que entiendan el contexto y el segundo para que tengan una mejor referencia. Task: Dado un archivo de ejemplo que contiene rango de numeros. Debe determinar cuantos numeros ]]></description>
				<content:encoded><![CDATA[<div class="fb-like" data-href="http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-ruby/" style="" data-send="true" data-layout="button_count" data-width="260" data-show-faces="true" data-action="like" data-colorscheme="light"></div>
<p>Aqui vamos con el tercer post en esta serie, para los que no lo han hecho o llegaron a este link directamente tienen que <a href="http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-python/" target="_blank">leer el primer post</a> para que entiendan el contexto <a href="http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-php/" target="_blank">y el segundo</a> para que tengan una mejor referencia.</p>
<p><strong>Task:</strong></p>
<ul>
<li>Dado <a href="https://gist.github.com/hminaya/5435673">un archivo</a> de ejemplo que contiene rango de numeros.</li>
<li>Debe determinar cuantos numeros dentro de cada rango son palindromos</li>
<li>Mostrar el total</li>
</ul>
<p>Para hacer las comparaciones entre los diferentes lenguajes estoy usando una Macbook Pro con las siguientes specs:</p>
<ul>
<li>2.4 Ghz Intel Core 2 Duo</li>
<li>8 GB 1067 MHz DDR3</li>
<li>OS X 10.8.3</li>
</ul>
<p>Ahora voy con <a href="http://developers.do/index.php/tag/ruby/">Ruby</a>, para los que aun no lo saben tenemos un <a href="http://www.ruby.do" target="_blank">user group de Ruby</a> que se reune cada dos jueves en Pulso Colectivo donde pueden aprender mas sobre este lenguaje y todo el ecosistema que lo rodea.</p>
<p><strong>Ruby 2.0.0 </strong>by <a href="https://gist.github.com/hminaya" target="_blank">Hector Minaya</a><br />
<script src="https://gist.github.com/5435691.js"></script><br />
<noscript>
<pre><code class="language-ruby ruby">def is_palindrome?(num)
  	s = num.to_s
	s == s.reverse
end

count = 0
File.open(&quot;seed.txt&quot;) do |f|
	while line = f.gets
		one = line.split[0]
		two = line.split[1]

		(one..two).each do |x|
			if is_palindrome?(x)
				count += 1
			end
		end

	end
end

puts &quot;\nFound: #{count}&quot;</code></pre>
</noscript>
<ul>
<li>Total: 106,814</li>
<li>Tiempo: <strong>2 minutos 19 segundos</strong></li>
</ul>
<p>Vamos por parte. Para mi, esta es una de las soluciones mas sencillas de todos los ejemplos que vi en los diferentes lenguajes. El problema esta en que es de las mas lentas. ¿Porque es lenta? ¿Ruby es lento?, la respuesta es no a ambas preguntas. Yo diria mas bien que mientras mas *chuleria* tu utilices del lenguaje, mientras mas comodidad tengas al escribir tu codigo, generalmente mas lento va a ser. Paso casi lo mismo con el ejemplo de python donde la primera solución era mucho mas entendible, pero tambien era la mas lenta.</p>
<p><strong>jRuby 1.7.3 </strong>by <a href="https://gist.github.com/hminaya" target="_blank">Hector Minaya</a><br />
<script src="https://gist.github.com/5435691.js"></script><br />
<noscript>
<pre><code class="language-ruby ruby">def is_palindrome?(num)
  	s = num.to_s
	s == s.reverse
end

count = 0
File.open(&quot;seed.txt&quot;) do |f|
	while line = f.gets
		one = line.split[0]
		two = line.split[1]

		(one..two).each do |x|
			if is_palindrome?(x)
				count += 1
			end
		end

	end
end

puts &quot;\nFound: #{count}&quot;</code></pre>
</noscript>
<ul>
<li>Total: 106,814</li>
<li>Tiempo: <strong>1 minuto 27 segundos</strong></li>
</ul>
<p>Bien, aqui vamos progresando. En ruby existen diferentes implementaciones para cubrir necesidades especificas. Probe el mismo codigo pero utilizando jRuby y el tiempo bajo considerablemente.</p>
<p><strong>Ruby 2.0.0 </strong>by <a href="https://gist.github.com/hminaya" target="_blank">Hector Minaya</a><br />
<script src="https://gist.github.com/5482289.js"></script><br />
<noscript>
<pre><code class="language-ruby ruby">count = 0

File.open(&quot;seed.txt&quot;) do |f|
	while line = f.gets
		one, two = line.split(&quot; &quot;).map(&amp;:to_i)

		while (one &lt;= two) do
			one += 1

			muestra = one.to_s
			
			if muestra == muestra.reverse
				count += 1
			end

		end
	end
end

puts &quot;\nFound: #{count}&quot;</code></pre>
</noscript>
<ul>
<li>Total: 106,814</li>
<li>Tiempo: <strong>50 segundos</strong></li>
</ul>
<p>Este fue la segunda vuelta, luego de secarme las lagrimas por lo lento que corrio el primer intento aqui lo baje a menos de la mitad. Si se fijan estoy haciendo varias optimizaciones, pero aun el codigo se mantiene legible, lo cual es muy importante.</p>
<p><strong>jRuby 1.7.3 </strong>by <a href="https://gist.github.com/hminaya" target="_blank">Hector Minaya</a><br />
<script src="https://gist.github.com/5482289.js"></script><br />
<noscript>
<pre><code class="language-ruby ruby">count = 0

File.open(&quot;seed.txt&quot;) do |f|
	while line = f.gets
		one, two = line.split(&quot; &quot;).map(&amp;:to_i)

		while (one &lt;= two) do
			one += 1

			muestra = one.to_s
			
			if muestra == muestra.reverse
				count += 1
			end

		end
	end
end

puts &quot;\nFound: #{count}&quot;</code></pre>
</noscript>
<ul>
<li>Total: 106,814</li>
<li>Tiempo: <strong>38 segundos</strong></li>
</ul>
<p>Este es el segundo ejemplo, pero con jRuby. Ahora corre en 38 segundos. Todavia le falta para correr igual que lo implementado por <a href="http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-python/" target="_blank">Ivan Miric en Python</a>, pero el algoritmo que el utilizo fue mucho mejor. <del>Estoy seguro que si se sigue optimizando podemos llevarlo a correr igual de rapido que python, pero ya le dejare esa tarea a los demás miembros del <a href="http://www.ruby.do" target="_blank">user group de ruby.do</a></del></p>
<p><strong>Ruby 2.0.0 </strong>by <a href="https://gist.github.com/orodriguez">Omar Rodriguez</a><br />
<script src="https://gist.github.com/92661f23482ed8daa28b.js"></script><br />
<noscript>
<pre><code class="language-ruby ruby">class Fixnum
  def palindrome?
    to_s == to_s.reverse
  end
end

def parse_range line
  Range.new *line.split.map(&amp;:to_i)
end

def count_palindromes file
  file.reduce(0) do |total, line|
    total + parse_range(line).count(&amp;:palindrome?)
  end
end

p &quot;Found #{count_palindromes File.open(&quot;seed.txt&quot;, &quot;r&quot;)}&quot;

# ruby-1.9.3

# $ time ruby palindrome.rb 
# &quot;Found 106814&quot;

# real  1m6.513s
# user  1m6.452s
# sys 0m0.020s</code></pre>
</noscript>
<ul>
<li>Total: 106,814</li>
<li>Tiempo: 1 minuto <strong>48 segundos</strong></li>
</ul>
<p>Este ejemplo es interesante, esta escrito de forma elegante.</p>
<p><strong>Ruby 2.0.0 </strong>by <a href="https://gist.github.com/cored">Rafael George</a><br />
<script src="https://gist.github.com/5488416.js"></script><br />
<noscript>
<pre><code class="language-ruby ruby">def reverse number
  inverse = 0
  while number &gt; 0
    inverse = inverse * 10 + (number % 10)
    number = number / 10
  end
  inverse
end

pals = [] 
count = 0
25192.upto(2000000) { |n| pals &lt;&lt; n if reverse(n) == n }
File.open('seed.txt').each_line do |line|
  start, finish = line.split(/\s+/,2).map(&amp;:to_i)
  pals.each { |n| count += 1 if (start..finish).include? n }
end

puts count</code></pre>
</noscript>
<ul>
<li>Total: 106,814</li>
<li>Tiempo: <strong>2.117 segundos</strong></li>
</ul>
<p>Con este ya <a href="http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-python/">#python</a> se puede cuidar, aqui tenemos una muestra que lo importante no es el lenguaje, es el algoritmo. Y eso es sin utilizar un compilador como el PyPy.</p>
]]></content:encoded>
			<wfw:commentRss>http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-ruby/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>¿Utilizar el mejor lenguaje o el algoritmo correcto? – #php</title>
		<link>http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-php/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-php</link>
		<comments>http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-php/#comments</comments>
		<pubDate>Mon, 29 Apr 2013 14:30:13 +0000</pubDate>
		<dc:creator>Hector Minaya</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://developers.do/?p=1687</guid>
		<description><![CDATA[Este es el segundo post en una serie donde comparamos varios lenguajes realizando la misma tarea. Para que entiendan mejor el contexto los invito que lean el primero. Task: Dado un archivo de ejemplo que contiene rango de numeros. Debe determinar cuantos numeros dentro de cada rango son palindromos Mostrar el total Para hacer las comparaciones entre ]]></description>
				<content:encoded><![CDATA[<div class="fb-like" data-href="http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-php/" style="" data-send="true" data-layout="button_count" data-width="260" data-show-faces="true" data-action="like" data-colorscheme="light"></div>
<p>Este es el segundo post en una serie donde comparamos varios lenguajes realizando la misma tarea. Para que entiendan mejor el contexto los invito <a href="http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-python/">que lean el primero</a>.</p>
<p><strong>Task:</strong></p>
<ul>
<li>Dado <a href="https://gist.github.com/hminaya/5435673">un archivo</a> de ejemplo que contiene rango de numeros.</li>
<li>Debe determinar cuantos numeros dentro de cada rango son palindromos</li>
<li>Mostrar el total</li>
</ul>
<p>Para hacer las comparaciones entre los diferentes lenguajes estoy usando una Macbook Pro con las siguientes specs:</p>
<ul>
<li>2.4 Ghz Intel Core 2 Duo</li>
<li>8 GB 1067 MHz DDR3</li>
<li>OS X 10.8.3</li>
</ul>
<p>En esta oportunidad voy con PHP, vamos a ver si PHP se saca esa mala fama que tiene arriba o si sigue siendo la oveja negra.</p>
<p><strong>PHP 5.3.15 </strong>by <a href="https://gist.github.com/reneolivo">Rene Olivo</a><br />
<script src="https://gist.github.com/5437727.js"></script><br />
<noscript>
<pre><code class="language-php php">&lt;?php
	function esPalindromo($cadena) {
		return $cadena == strrev($cadena);
	}
	
	
	$contador		= 0;
	
	$tiempoInicio		= microtime(TRUE);
	
	
	$urlArchivo		= 'seed.txt';
	$puntero		= fopen($urlArchivo, 'r');
	
	while(!feof($puntero)):
		$linea		= fgets($puntero);
		
		$rango		= explode(' ', $linea);
		
		$rango[0]	= (int) $rango[0];
		$rango[1]	= (int) $rango[1];
		
		for($i = $rango[0]; $i &lt;= $rango[1]; $i++)
			if (esPalindromo($i))
				$contador++;
		
	endwhile;
	
	$tiempoFin		= microtime(TRUE);
	$tiempoTotal		= $tiempoFin - $tiempoInicio;
	
	echo &quot;&lt;pre&gt;
	
Encontradas    : {$contador}
Inicio         : {$tiempoInicio}
Fin            : {$tiempoFin}
Tiempo Total   : {$tiempoTotal}
		
	&lt;/pre&gt;&quot;;
?&gt;</code></pre>
</noscript>
<ul>
<li>Total: 106,815 (ehhh, si dio un numero de mas)</li>
<li>Tiempo: <strong>1 minuto 40 segundos</strong></li>
</ul>
<p>Yo no soy programador de <a href="http://developers.do/index.php/tag/php/">PHP</a>, asi que mejor no voy a opinar mucho, pero esto tiene que poderse correr mas rapido de ahi.</p>
<p><strong>PHP 5.3.15 by <a href="https://gist.github.com/jblandino" target="_blank">Joel J. Blandino</a></strong></p>
<p><script src="https://gist.github.com/5483633.js"></script><br />
<noscript>
<pre><code class="language-php php">&lt;?php
class Palindromo{
  public static function empezar(){
    $archivo  	=	fopen(&quot;file.txt&quot;,&quot;r&quot;);
    $encontrados	=	0;
    while(!feof($archivo)){
      $registro	=	fgets($archivo);
      $rango	 	= 	explode(&quot; &quot;, $registro);
      for($for = (int)$rango[0]; $for &lt;= (int)$rango[1]; $for++){
        if($for == strrev($for)){
          $encontrados++;
        }
      }
    }
    echo &quot;Encontradas: &quot;.number_format($encontrados).&quot;&lt;br/&gt;&quot;;
  }
}
Palindromo::empezar();
?&gt;</code></pre>
</noscript>
<ul>
<li>Total: 106,815 (tambien da un numero de mas, el correcto es 106,814)</li>
<li>Tiempo: <strong>1 minuto 18 segundos</strong></li>
</ul>
<p>En este segundo intento de Joel el tiempo bajo alrededor de 22 segundos, pero aun le falta. <del>Si alguno de ustedes cree que puede mejorar el performance de este script y llevarlo a un nivel parecido a lo obtenido con <a href="http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-python/">python en el post anterior </a>sientase en la libertad de contactarme y con mucho gusto actualizo el post.</del></p>
<p><strong>PHP 5.3.15 by <a href="https://gist.github.com/juanmboehme">Juan Manuel Boehme</a></strong></p>
<p><script src="https://gist.github.com/5489792.js"></script><br />
<noscript>
<pre><code class="language-php php">&lt;?php
$time=time();
class Palindromo{
    public static function empezar(){
        $archivo    =  fopen(&quot;file2.txt&quot;,&quot;r&quot;);
        $primero=array();
        $segundo=array();
        $final=array();
        $total=0;
        while(!feof($archivo)){
            $registro    =	fgets($archivo);
            $rango	 	= 	explode(&quot; &quot;, $registro);
            array_push($final, $rango);
            array_push($primero, trim($rango[0]));
            array_push($segundo, trim($rango[1]));
        }
        sort($primero);
        sort($segundo);
        $Primer_numero=(int)$primero[0];
        $Segundo_numero=(int)$segundo[count($segundo)-1];
        for($x=$Primer_numero;$x&lt;$Segundo_numero;$x++)

        {
            if($x==strrev($x))
            {

                $cantArray=count($final);
                for($z=0;$z&lt;$cantArray;$z++)
                {

                    /*Validate When Range is from x to x like 2002 2002*/
                    if($final[$z][1]&gt;=$x)
                    {

                        if($final[$z][0]&lt;=$x)
                        {
                            $total++;
                        }
                    }
                }
            }
        }
        echo $total.'&lt;br&gt;';

    }
}

Palindromo::empezar();
echo time()-$time;
?&gt;</code></pre>
</noscript>
<ul>
<li>Total: 106,815 (tambien da un numero de mas, el correcto es 106,814)</li>
<li>Tiempo: <strong>1.383 segundos</strong></li>
</ul>
<p>Ahora si estamos hablando, ya tenemos un programador PHP que puso el lenguaje a valer. Corre mucho mas rapido, pero es mucho menos legible para un <a href="http://developers.do/index.php/niveles-de-developers/">Programador Junior</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-php/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>¿Utilizar el mejor lenguaje o el algoritmo correcto? &#8211; #python</title>
		<link>http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-python/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-python</link>
		<comments>http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-python/#comments</comments>
		<pubDate>Mon, 29 Apr 2013 13:48:34 +0000</pubDate>
		<dc:creator>Hector Minaya</dc:creator>
				<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://developers.do/?p=1662</guid>
		<description><![CDATA[Inicialmente este post era una comparación simple entre diferentes lenguajes, algo parecido al anterior donde leiamos un JSON desde un API via HTTP. Pero luego me fui dando cuenta que debia tratar los lenguajes por separado en diferentes posts para mostrar diferentes versiones dentro de un mismo lenguaje. El objetivo de estos ejercicios es mostrar las fortalezas ]]></description>
				<content:encoded><![CDATA[<div class="fb-like" data-href="http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-python/" style="" data-send="true" data-layout="button_count" data-width="260" data-show-faces="true" data-action="like" data-colorscheme="light"></div>
<p>Inicialmente este post era una comparación simple entre diferentes lenguajes, algo parecido al anterior donde leiamos un <a href="http://developers.do/index.php/leer-un-json-desde-un-api-en-varios-lenguajes/">JSON desde un API via HTTP</a>. Pero luego me fui dando cuenta que debia tratar los lenguajes por separado en diferentes posts para mostrar diferentes versiones dentro de un mismo lenguaje. El objetivo de estos ejercicios es mostrar las fortalezas y debilidades de diferentes lenguajes con ejemplos practicos y dejar que cada quien luego saque sus conclusiones sobre cual lenguaje le conviene realizar en cada escenario.</p>
<p><strong>Para entrar en detalle el task de hoy incluye:</strong></p>
<ul>
<li><span style="line-height: 13px;">Dado <a href="https://gist.github.com/hminaya/5435673">un archivo</a> de ejemplo que contiene rango de numeros. Contiene 100 rangos, mucho mas que el archivo de ejemplo que puse en <a href="https://www.facebook.com/groups/devdominicanos/permalink/640169979333184/" target="_blank">el post de FB</a>.</span></li>
<li>Debe determinar cuantos numeros dentro de cada rango son palindromos</li>
<li>Mostrar el total</li>
</ul>
<p>Para hacer las comparaciones entre los diferentes lenguajes estoy usando una Macbook Pro con las siguientes specs:</p>
<ul>
<li><span style="line-height: 13px;">2.4 Ghz Intel Core 2 Duo</span></li>
<li>8 GB 1067 MHz DDR3</li>
<li>OS X 10.8.3</li>
</ul>
<p>Si usted lo esta corriendo en una maquina con mejores specs es obvio que sus pruebas le van a dar mas rapido, de igual forma si lo hace en una con menos poder le va a resultar mas lento. Ahora vamos con los ejemplos, ejecute cada uno multiple veces y tome la corrida mas rapida. Generalmente la variación era muy poca, 1 o 1.5 segundos. Voy a comenzar con python</p>
<p><strong>Python 2.7.2 </strong>by <a href="https://gist.github.com/danielgpm">danielgpm</a><br />
<script src="https://gist.github.com/5439674.js"></script><br />
<noscript>
<pre><code class="language-python python">import time
start = time.time()
total_count = 0
with open (r'seed.txt') as file:
  rangos = ((int(rango) for rango in line.split()) for line in file)
  for rango_ini, rango_final in rangos:
    nums = (str(num) for num in xrange(rango_ini, rango_final + 1))
    total_count += sum(1 for num in nums if num == num[::-1])
  end = time.time()
  print (&quot;Total de palimdromes: {0}&quot;.format(total_count))
  print (&quot;Duracion: {0:.3f} secs&quot;.format(end-start))</code></pre>
</noscript>
<ul>
<li>Total: 106,814</li>
<li>Tiempo: <strong>79.526 segundos</strong></li>
</ul>
<p><span style="line-height: 13px;">Esta versión la trabajo </span><a style="line-height: 13px;" href="https://gist.github.com/danielgpm">Daniel Paniagua</a>. Esta mucho mejor que lo que yo hubiese hecho en python, asi que la mia supongo que hubiese durado como media hora en correr.</p>
<p><strong>Python 2.7.3 con PyPy 2.0.0-beta2 </strong>by <a href="https://gist.github.com/danielgpm">danielgpm</a><br />
<script src="https://gist.github.com/5439674.js"></script><br />
<noscript>
<pre><code class="language-python python">import time
start = time.time()
total_count = 0
with open (r'seed.txt') as file:
  rangos = ((int(rango) for rango in line.split()) for line in file)
  for rango_ini, rango_final in rangos:
    nums = (str(num) for num in xrange(rango_ini, rango_final + 1))
    total_count += sum(1 for num in nums if num == num[::-1])
  end = time.time()
  print (&quot;Total de palimdromes: {0}&quot;.format(total_count))
  print (&quot;Duracion: {0:.3f} secs&quot;.format(end-start))</code></pre>
</noscript>
<ul>
<li>Total: 106,814</li>
<li>Tiempo: <strong>21.399 segundos</strong></li>
</ul>
<p>Ok, ahora si estamos hablando. Sin hacerle cambio al codigo fuente, solo usando PyPy el tiempo bajo en alrededor de un 70%.</p>
<p><strong>Python 2.7.2 </strong>by <a href="https://gist.github.com/imiric">imiric</a><br />
<script src="https://gist.github.com/5481553.js"></script><br />
<noscript>
<pre><code class="language-python python">#!/usr/bin/env python

def is_palindrome(num):
    return str(num) == str(num)[::-1]

def closest_higher(target, collection) :
    &quot;&quot;&quot;Return the closest number to `target` in `collection`
    that is higher than `target`&quot;&quot;&quot;
    return max((target - i, i) for i in collection if (target - i) &lt; 0)[1]

def main():
    palindromes = []
    ranges = [[int(i) for i in line.split()] for line in open('seed.txt')]
    ranges_flat = [i for r in ranges for i in r]
    lo, hi = min(ranges_flat), max(ranges_flat)
    while hi &gt;= lo:
        if is_palindrome(lo):
            palindromes.append(lo)
        lo += 1

    total = 0
    for lo, hi in ranges:
        x = palindromes.index(closest_higher(lo, palindromes))
        if hi &gt; palindromes[-1]:
            y = len(palindromes)
        else:
            y = palindromes.index(closest_higher(hi, palindromes))
        p = palindromes[x:y]
        c = len(p)
        total += c
        print '%6d =&gt; %7d : %d' % (lo, hi, c)
    print 'TOTAL: %d' % total

if  __name__ =='__main__':
    main()</code></pre>
<pre><code class="language-shell shell">.</code></pre>
</noscript>
<ul>
<li>Total: 106,814</li>
<li>Tiempo: <strong>2.611 segundos</strong></li>
</ul>
<p>Esta versión la trabajo <a href="https://gist.github.com/imiric">Ivan Mirić</a>, su gist <a href="https://gist.github.com/imiric/5448696">original es este</a>, tuve que hacerle un fork por razones de formato. Es una muestra de como un lenguaje dinamico (python/ruby/etc) puede llegar a ser tan eficiente como un lenguaje estatico. La desventaja es que mientras mas optimización le aplicamos mediantes algoritmos &#8220;<em>empipados con moringa</em>&#8220;, mas enredado se vuelve para nosotros los mortales y llega a un punto donde un <a href="http://developers.do/index.php/niveles-de-developers/">developer Senior</a> facilmente se pierde.</p>
<p><strong><strong>Python 2.7.3 con PyPy 2.0.0-beta2</strong> </strong>by <a href="https://gist.github.com/imiric">imiric</a><br />
<script src="https://gist.github.com/5481553.js"></script><br />
<noscript>
<pre><code class="language-python python">#!/usr/bin/env python

def is_palindrome(num):
    return str(num) == str(num)[::-1]

def closest_higher(target, collection) :
    &quot;&quot;&quot;Return the closest number to `target` in `collection`
    that is higher than `target`&quot;&quot;&quot;
    return max((target - i, i) for i in collection if (target - i) &lt; 0)[1]

def main():
    palindromes = []
    ranges = [[int(i) for i in line.split()] for line in open('seed.txt')]
    ranges_flat = [i for r in ranges for i in r]
    lo, hi = min(ranges_flat), max(ranges_flat)
    while hi &gt;= lo:
        if is_palindrome(lo):
            palindromes.append(lo)
        lo += 1

    total = 0
    for lo, hi in ranges:
        x = palindromes.index(closest_higher(lo, palindromes))
        if hi &gt; palindromes[-1]:
            y = len(palindromes)
        else:
            y = palindromes.index(closest_higher(hi, palindromes))
        p = palindromes[x:y]
        c = len(p)
        total += c
        print '%6d =&gt; %7d : %d' % (lo, hi, c)
    print 'TOTAL: %d' % total

if  __name__ =='__main__':
    main()</code></pre>
<pre><code class="language-shell shell">.</code></pre>
</noscript>
<ul>
<li>Total: 106,814</li>
<li>Tiempo: <strong>0.787 segundos</strong></li>
</ul>
<p>Wow!. En menos de un segundo. Esta es una combinación muy buena, tenemos un algoritmo eficiente combinado con una implementación alternativa de <a href="http://developers.do/index.php/tag/python/">python</a> hecha especificamente para aumentar el rendimiento. Va a ser una tarea muy dificil para los demas lenguajes/plataformas mejorar este tiempo.</p>
<p>Les recuerdo que este es solo el primer post en esta serie voy a continuar con:</p>
<ul>
<li><a href="http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-php/">PHP</a></li>
<li><a href="http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-ruby/" target="_blank"><span style="line-height: 13px;">Ruby</span></a></li>
<li>Java</li>
<li><a href="http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-javascript-nodejs/">JavaScript</a></li>
<li>Scala</li>
<li>C#</li>
<li>C++</li>
</ul>
<p>Al final cuando esten todos publicados voy a publicar un resumen con una tabla de resultado para que puedan hacer las comparaciones de forma directa.</p>
]]></content:encoded>
			<wfw:commentRss>http://developers.do/index.php/utilizar-el-mejor-lenguaje-o-el-algoritmo-correcto-python/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Resumen – #Ruby.do – Introducción a Ruby on Rails</title>
		<link>http://developers.do/index.php/resumen-ruby-do-introduccion-a-ruby-on-rails/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=resumen-ruby-do-introduccion-a-ruby-on-rails</link>
		<comments>http://developers.do/index.php/resumen-ruby-do-introduccion-a-ruby-on-rails/#comments</comments>
		<pubDate>Sat, 20 Apr 2013 23:44:46 +0000</pubDate>
		<dc:creator>Hector Minaya</dc:creator>
				<category><![CDATA[Comunidad]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Reunión]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://developers.do/?p=1653</guid>
		<description><![CDATA[En la 4ta charla de Ruby.do tuvimos una introducción a Ruby on Rails impartida por Jose Gregorio Taveras. Demo: Los demos de la charla lo pueden encontrar en github en el repositorio de ruby.do Fotos: Las fotos del evento se publicaron en G+ en este album. Si aun no has tenido la oportunidad de asistir ]]></description>
				<content:encoded><![CDATA[<div class="fb-like" data-href="http://developers.do/index.php/resumen-ruby-do-introduccion-a-ruby-on-rails/" style="" data-send="true" data-layout="button_count" data-width="260" data-show-faces="true" data-action="like" data-colorscheme="light"></div>
<p>En la 4ta charla de <a href="http://www.ruby.do" target="_blank">Ruby.do</a> tuvimos una <a href="https://plus.google.com/u/0/b/101641192417460888818/events/ckgaj38vii893g4o9nbhhqhho0g?opp&amp;alid=5868563835510105681" target="_blank">introducción a Ruby on Rails</a> impartida por <a href="https://twitter.com/jgtaveras" target="_blank">Jose Gregorio Taveras</a>.</p>
<ul>
<li><strong>Demo</strong>: Los demos de la charla lo pueden encontrar en github en el <a href="https://github.com/ruby-do/charla-04" target="_blank">repositorio de ruby.do</a></li>
<li><strong>Fotos</strong>: Las fotos del evento se publicaron en <a href="https://plus.google.com/photos/101641192417460888818/albums/5868563835510105681" target="_blank">G+ en este album</a>.</li>
</ul>
<p>Si aun no has tenido la oportunidad de asistir a una de las charlas de este user group te invitamos a que compartas con nosotros en nuestra próxima charla el 2 de Mayo a las 6:30 en Pulso Colectivo. Nuestra proxima charla sera impartida por <a href="https://twitter.com/gotjosh" target="_blank">Josue Abreu</a>, CEO de <a href="https://twitter.com/pixelperfectree" target="_blank">Pixel Perfect Tree</a>, y será la 2da parte nuestra Intro a Ruby on Rails. Para registrarte lo puedes <a href="https://plus.google.com/b/101641192417460888818/events/cf4cgbr0u1o5qmtvjnfgvnk0uok">hacer por via este link</a>.</p>
<p><a href="http://developers.do/wp-content/uploads/2013/04/IMG_1421.jpg"><img class="alignnone  wp-image-1655" alt="IMG_1421" src="http://developers.do/wp-content/uploads/2013/04/IMG_1421.jpg" width="614" height="353" /></a></p>
<p><a href="http://developers.do/wp-content/uploads/2013/04/IMG_1415.jpg"><img class="alignnone  wp-image-1656" alt="IMG_1415" src="http://developers.do/wp-content/uploads/2013/04/IMG_1415.jpg" width="625" height="419" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://developers.do/index.php/resumen-ruby-do-introduccion-a-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
