<?xml version="1.0" encoding="iso-8859-1" ?>
<rss version="0.92">
<channel>
	<docs>http://backend.userland.com/rss092</docs>
	<title>PenguinPower</title>
	<link>http://www.penguinpower.com.ar/foro/</link>
	<description>La comunidad con Buena Onda</description>
	<managingEditor>kaos_Engine@penguinpower.com.ar</managingEditor>
	<webMaster>kaos_Engine@penguinpower.com.ar</webMaster>
	<lastBuildDate>Mon, 06 Feb 2012 14:14:07 GMT</lastBuildDate>
<item>
	<title>Videos :: The Girl: RPG</title>
	<link>http://www.penguinpower.com.ar/foro/viewtopic.php?p=30192#30192</link>
	<description>Autor: &lt;a href=&quot;http://www.penguinpower.com.ar/foro/profile.php?mode=viewprofile&amp;u=91&quot; target=&quot;_blank&quot;&gt;Nachitous&lt;/a&gt;&lt;br /&gt;
Titulo: The Girl: RPG&lt;br /&gt;
Publicado: Thu Jan 12, 2012 10:13 pm (GMT -3)&lt;br /&gt;
&lt;br /&gt;
&lt;span class="postbody"&gt;&lt;object width=&quot;560&quot; height=&quot;315&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/DovVrOTkJjo?version=3&amp;amp;amp;hl=es_ES&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/DovVrOTkJjo?version=3&amp;amp;amp;hl=es_ES&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;560&quot; height=&quot;315&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/span&gt;&lt;br /&gt;
</description>
</item>
<item>
	<title>Pwitter :: RE: Alto gif gato!</title>
	<link>http://www.penguinpower.com.ar/foro/viewtopic.php?p=30191#30191</link>
	<description>Autor: &lt;a href=&quot;http://www.penguinpower.com.ar/foro/profile.php?mode=viewprofile&amp;u=24&quot; target=&quot;_blank&quot;&gt;Salitou&lt;/a&gt;&lt;br /&gt;

Publicado: Wed Dec 28, 2011 6:15 pm (GMT -3)&lt;br /&gt;
&lt;br /&gt;
&lt;span class="postbody"&gt;&lt;img onload=&quot;setImageDimensions(this)&quot; style=&quot;cursor:pointer;cursor:hand;&quot; onclick=&quot;changeImageDimensions(this)&quot; src=&quot;http://icanhascheezburger.files.wordpress.com/2011/12/1239aa35-1cd9-4099-be97-7442671fa49d.gif&quot; border=&quot;0&quot; /&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;img onload=&quot;setImageDimensions(this)&quot; style=&quot;cursor:pointer;cursor:hand;&quot; onclick=&quot;changeImageDimensions(this)&quot; src=&quot;http://icanhascheezburger.files.wordpress.com/2011/12/f8c1318d-4bb1-416b-869f-065c5801fc5e.gif&quot; border=&quot;0&quot; /&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;img onload=&quot;setImageDimensions(this)&quot; style=&quot;cursor:pointer;cursor:hand;&quot; onclick=&quot;changeImageDimensions(this)&quot; src=&quot;http://chzgifs.files.wordpress.com/2011/09/funny-gifs-bully-cat-stuffs-cat-in-box.gif&quot; border=&quot;0&quot; /&gt;
&lt;/span&gt;&lt;br /&gt;
</description>
</item>
<item>
	<title>Pwitter :: RE: Alto gif gato!</title>
	<link>http://www.penguinpower.com.ar/foro/viewtopic.php?p=30190#30190</link>
	<description>Autor: &lt;a href=&quot;http://www.penguinpower.com.ar/foro/profile.php?mode=viewprofile&amp;u=443&quot; target=&quot;_blank&quot;&gt;Neon_Knight&lt;/a&gt;&lt;br /&gt;

Publicado: Tue Dec 27, 2011 5:58 pm (GMT -3)&lt;br /&gt;
&lt;br /&gt;
&lt;span class="postbody"&gt;&lt;a href=&quot;http://imgur.com/Co9LO&quot; target=&quot;_blank&quot; class=&quot;postlink&quot;&gt;&lt;img onload=&quot;setImageDimensions(this)&quot; style=&quot;cursor:pointer;cursor:hand;&quot; onclick=&quot;changeImageDimensions(this)&quot; src=&quot;http://i.imgur.com/Co9LO.gif&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;/span&gt;&lt;br /&gt;
</description>
</item>
<item>
	<title>Pwitter :: RE: Alto gif gato!</title>
	<link>http://www.penguinpower.com.ar/foro/viewtopic.php?p=30189#30189</link>
	<description>Autor: &lt;a href=&quot;http://www.penguinpower.com.ar/foro/profile.php?mode=viewprofile&amp;u=24&quot; target=&quot;_blank&quot;&gt;Salitou&lt;/a&gt;&lt;br /&gt;

Publicado: Fri Nov 04, 2011 3:39 pm (GMT -3)&lt;br /&gt;
&lt;br /&gt;
&lt;span class="postbody"&gt;&lt;img onload=&quot;setImageDimensions(this)&quot; style=&quot;cursor:pointer;cursor:hand;&quot; onclick=&quot;changeImageDimensions(this)&quot; src=&quot;http://icanhascheezburger.files.wordpress.com/2011/10/bed617a0-d535-428b-a189-d5e80e83a1ea.gif&quot; border=&quot;0&quot; /&gt;
&lt;/span&gt;&lt;br /&gt;
</description>
</item>
<item>
	<title>Automovilismo :: RE: Freno y correa de accesorios.</title>
	<link>http://www.penguinpower.com.ar/foro/viewtopic.php?p=30188#30188</link>
	<description>Autor: &lt;a href=&quot;http://www.penguinpower.com.ar/foro/profile.php?mode=viewprofile&amp;u=338&quot; target=&quot;_blank&quot;&gt;ezeaguerre&lt;/a&gt;&lt;br /&gt;

Publicado: Wed Oct 05, 2011 5:06 pm (GMT -3)&lt;br /&gt;
&lt;br /&gt;
&lt;span class="postbody"&gt;Una pregunta, cuando colocás la correa del alternador, ¿cómo sabés cuánto tensarla? lo mismo para la de la dirección &lt;img src=&quot;http://www.penguinpower.com.ar/foro/images/smiles/OOP.png&quot; alt=&quot;Razz&quot; border=&quot;0&quot; /&gt;
&lt;/span&gt;&lt;br /&gt;
</description>
</item>
<item>
	<title>Programación y Bases de Datos :: RE: Porn Specific Proxy</title>
	<link>http://www.penguinpower.com.ar/foro/viewtopic.php?p=30187#30187</link>
	<description>Autor: &lt;a href=&quot;http://www.penguinpower.com.ar/foro/profile.php?mode=viewprofile&amp;u=338&quot; target=&quot;_blank&quot;&gt;ezeaguerre&lt;/a&gt;&lt;br /&gt;

Publicado: Wed Oct 05, 2011 10:26 am (GMT -3)&lt;br /&gt;
&lt;br /&gt;
&lt;span class="postbody"&gt;P.D: Para usar el programa:
&lt;br /&gt;

&lt;br /&gt;
$ ./main.rb directorioCache
&lt;br /&gt;

&lt;br /&gt;
Luego le decimos al navegador que use el proxy localhost:8080
&lt;br /&gt;

&lt;br /&gt;
directorioCache debe existir con anterioridad &lt;img src=&quot;http://www.penguinpower.com.ar/foro/images/smiles/OOP.png&quot; alt=&quot;Razz&quot; border=&quot;0&quot; /&gt;
&lt;/span&gt;&lt;br /&gt;
</description>
</item>
<item>
	<title>Programación y Bases de Datos :: RE: Porn Specific Proxy</title>
	<link>http://www.penguinpower.com.ar/foro/viewtopic.php?p=30186#30186</link>
	<description>Autor: &lt;a href=&quot;http://www.penguinpower.com.ar/foro/profile.php?mode=viewprofile&amp;u=338&quot; target=&quot;_blank&quot;&gt;ezeaguerre&lt;/a&gt;&lt;br /&gt;

Publicado: Wed Oct 05, 2011 10:24 am (GMT -3)&lt;br /&gt;
&lt;br /&gt;
&lt;span class="postbody"&gt;&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;gnemmi dijo:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;quote&quot;&gt;
&lt;br /&gt;
le encontraste algo que no hayas visto en python o perl ( aunque nada que ver el uno con el otro .. pero básicamente, en python vas a encontrar que todo es un objeto al igual que en ruby ... y python &amp;quot;comes with batteries&amp;quot; ... y en perl el manejo de regexp es impecable ... sin mencionar CPAN y que una vez que le agarras la mano al lenguaje es terriblemente expresivo y flexible )? 
&lt;br /&gt;
&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;
&lt;br /&gt;

&lt;br /&gt;
* Claro, todo es un objeto, hasta las clases son objetos.
&lt;br /&gt;
* Ruby me parece que también &amp;quot;comes with batteries&amp;quot;: &lt;a href=&quot;http://www.ruby-doc.org/stdlib/&quot; target=&quot;_blank&quot;&gt;http://www.ruby-doc.org/stdlib/&lt;/a&gt;
&lt;br /&gt;
* Ruby tiene manejo de regexp similar al de Perl, ej:
&lt;br /&gt;

&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Codigo:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;
&lt;br /&gt;
while gets.chomp!
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;puts $_ if /^&amp;#91;A-Z&amp;#93;.*$/
&lt;br /&gt;
end
&lt;br /&gt;
&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Codigo:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;
&lt;br /&gt;
while gets.chomp!
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;case $_
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; when 'quit' then break
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; when /^\s*&amp;#40;\S*&amp;#41;.*$/ then puts &amp;quot;La primer palabra es&amp;#58; #$1&amp;quot;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;end
&lt;br /&gt;
end
&lt;br /&gt;
&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;
&lt;br /&gt;

&lt;br /&gt;
Y nunca vi nada tan expresivo como:
&lt;br /&gt;

&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Codigo:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;
&lt;br /&gt;
3.times &amp;#123; puts &amp;quot;Hola 3 veces!&amp;quot; &amp;#125;
&lt;br /&gt;
&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;
&lt;br /&gt;

&lt;br /&gt;
Me encanta el uso que hace de los bloques de código, por ej:
&lt;br /&gt;

&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Codigo:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;
&lt;br /&gt;
open &amp;#40; 'MiArchivo.txt', 'r' &amp;#41; &amp;#123; |a|
&lt;br /&gt;
&amp;nbsp; &amp;nbsp;a.each &amp;#123; |l| puts &amp;quot;Línea #$.&amp;#58; #&amp;#123;l&amp;#125;&amp;quot; &amp;#125;
&lt;br /&gt;
&amp;#125;
&lt;br /&gt;
&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;
&lt;br /&gt;

&lt;br /&gt;
o:
&lt;br /&gt;

&lt;br /&gt;
&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Codigo:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;code&quot;&gt;
&lt;br /&gt;
&amp;#91; 1, 2, 3, 4, 5 &amp;#93;.each &amp;#123; |x| puts &amp;quot;MiValor&amp;#58; #&amp;#123;x&amp;#125;&amp;quot; &amp;#125;
&lt;br /&gt;
&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;
&lt;br /&gt;

&lt;br /&gt;
Desde luego se pueden usar iteradores más comunachos, pero lo de los bloques asociados a los métodos es genial :-)
&lt;br /&gt;

&lt;br /&gt;
Python también tiene lo suyo, pero Ruby me parece muy simple y elegante... y definitivamente me gusta la sintaxis &lt;img src=&quot;http://www.penguinpower.com.ar/foro/images/smiles/OOP.png&quot; alt=&quot;Razz&quot; border=&quot;0&quot; /&gt;
&lt;br /&gt;

&lt;br /&gt;
A Ruby desde Python: &lt;a href=&quot;http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/to-ruby-from-python/&quot; target=&quot;_blank&quot;&gt;http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/to-ruby-from-python/&lt;/a&gt;
&lt;br /&gt;
A Ruby desde Perl: &lt;a href=&quot;http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/to-ruby-from-perl/&quot; target=&quot;_blank&quot;&gt;http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/to-ruby-from-perl/&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
Y acá está el libro que leí: &lt;a href=&quot;http://www.ruby-doc.org/docs/ProgrammingRuby/&quot; target=&quot;_blank&quot;&gt;http://www.ruby-doc.org/docs/ProgrammingRuby/&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
Es una primera edición, o sea que es algo viejito, pero casi todo es válido aún :-)
&lt;/span&gt;&lt;br /&gt;
</description>
</item>
<item>
	<title>Programación y Bases de Datos :: RE: Porn Specific Proxy</title>
	<link>http://www.penguinpower.com.ar/foro/viewtopic.php?p=30185#30185</link>
	<description>Autor: &lt;a href=&quot;http://www.penguinpower.com.ar/foro/profile.php?mode=viewprofile&amp;u=323&quot; target=&quot;_blank&quot;&gt;gnemmi&lt;/a&gt;&lt;br /&gt;

Publicado: Wed Oct 05, 2011 2:50 am (GMT -3)&lt;br /&gt;
&lt;br /&gt;
&lt;span class="postbody"&gt;lo bajé, en cuanto pueda lo pruebo.
&lt;br /&gt;
que te gustó tanto de ruby?
&lt;br /&gt;
le encontraste algo que no hayas visto en python o perl ( aunque nada que ver el uno con el otro .. pero básicamente, en python vas a encontrar que todo es un objeto al igual que en ruby ... y python &amp;quot;comes with batteries&amp;quot; ... y en perl el manejo de regexp es impecable ... sin mencionar CPAN y que una vez que le agarras la mano al lenguaje es terriblemente expresivo y flexible )?
&lt;br /&gt;

&lt;br /&gt;
te pregunto en serio porque acá en casa tengo el libro de ruby de Users ( una basura como casi todos los users menos el de C++ ) y la verdad es que nunca llegué a pasar del capítulo 4 porque no encontraba nada que me motivara ... nada que no encontrara en otros lenguajes ... no sé .. nada que me llamara la atención en realidad ... por eso me gustaría saber que fue lo que vos viste en ruby que yo no pude ver &lt;img src=&quot;http://www.penguinpower.com.ar/foro/images/smiles/OOP.png&quot; alt=&quot;Razz&quot; border=&quot;0&quot; /&gt;
&lt;br /&gt;

&lt;br /&gt;
PD:
&lt;br /&gt;
1) Felicitaciones ... como siempre, estás al menos 4 escalones por arriba del resto ... 
&lt;br /&gt;
2) GPL v3?? nah ... v2 o BSD ... la v3 va para atrás ...
&lt;/span&gt;&lt;br /&gt;
</description>
</item>
<item>
	<title>Programación y Bases de Datos :: Porn Specific Proxy</title>
	<link>http://www.penguinpower.com.ar/foro/viewtopic.php?p=30184#30184</link>
	<description>Autor: &lt;a href=&quot;http://www.penguinpower.com.ar/foro/profile.php?mode=viewprofile&amp;u=338&quot; target=&quot;_blank&quot;&gt;ezeaguerre&lt;/a&gt;&lt;br /&gt;
Titulo: Porn Specific Proxy&lt;br /&gt;
Publicado: Tue Oct 04, 2011 4:36 pm (GMT -3)&lt;br /&gt;
&lt;br /&gt;
&lt;span class="postbody"&gt;Nah, no es el nombre que le di... lo bauticé como MIME-based Caching Proxy (MCP).
&lt;br /&gt;

&lt;br /&gt;
Esta semana me leí un librito on-line de Ruby y la verdad que me encantó el lenguaje, y la pasada me había hecho un Proxy en C (muy así nomás, probablemente lleno de errores &lt;img src=&quot;http://www.penguinpower.com.ar/foro/images/smiles/OOP.png&quot; alt=&quot;Razz&quot; border=&quot;0&quot; /&gt;, aunque funcionaba)... ayer decidí mezclar mi idea del Proxy con mi incursión en Ruby... y esto fue lo que salió.
&lt;br /&gt;

&lt;br /&gt;
Es basicamente un proxy HTTP que no realiza cacheo de contenido en el sentido estándar de la palabra (como Squid), sino que a medida que exploramos realiza dos comparaciones por cada conexión HTTP:
&lt;br /&gt;

&lt;br /&gt;
1. Comprueba si el path de la URL concuerda con alguna expresión regular. En particular lo uso para comprobar por determinadas extensiones, ej:
&lt;br /&gt;
   * \.flv$
&lt;br /&gt;
   * \.wmv$
&lt;br /&gt;
   * \.avi$
&lt;br /&gt;
   * etc...
&lt;br /&gt;

&lt;br /&gt;
2. Comprueba si el Content-Type (MIME type) de la respuesta concuerda con alguna expresión regular, ej:
&lt;br /&gt;
   * video/x-flv
&lt;br /&gt;
   * video/.*
&lt;br /&gt;

&lt;br /&gt;
Si alguna de las expresiones regulares concuerda, entonces genera un hash a partir de la URL y guarda todo el contenido transmitido en el directorio de caché con la extensión que se le indique.
&lt;br /&gt;

&lt;br /&gt;
De esta manera es capaz de guardar los videos de youtube. ¡Pero para eso uso Clive! Bueno, la idea del Proxy no es ser &amp;quot;Yet Another Ultimate Video Downloader For a Bunch of Sites&amp;quot; &lt;img src=&quot;http://www.penguinpower.com.ar/foro/images/smiles/OOP.png&quot; alt=&quot;Razz&quot; border=&quot;0&quot; /&gt; ¡Es mucho más simple! No se esfuerza en parsear la URL de Youtube y buscar información sobre el video y ofrecerte el mejor formato para la descarga, no, nada de eso... simplemente descarga lo que le llega a tu navegador. ¿Qué quiere decir? Que si tu programa de descargas no soporta descargas de... no sé... redtube... ahí entra este Proxy, para él no hay diferencia entre redtube o youtube o vimeo o lo que sea... todos ellos terminan transfiriendo tarde o temprano contenido con el mime-type: video/ALGO. Y es eso lo que el Proxy captura.
&lt;br /&gt;

&lt;br /&gt;
Además genera un log para que sepas que URL descarga con que nombre, de esa manera podés empezar a ver un video parar la descarga, ir al log y continuarla con wget. Basicamente es una técnica que he usado, nada más que sniffeaba el tráfico con Wireshark hasta llegar a donde yo quería, ahora es mucho más fácil :-)
&lt;br /&gt;

&lt;br /&gt;
Entonces, el Proxy te ofrece dos opciones:
&lt;br /&gt;
 * Descarga el contenido a medida que lo mirás.
&lt;br /&gt;
 * Te da la URL y lo descargás cuando se te canta.
&lt;br /&gt;

&lt;br /&gt;
== NOTAS ==
&lt;br /&gt;
 * No soporte transferencias &amp;quot;Chunked&amp;quot;, hasta ahora no conozco ningún server que haga eso. ¿Qué pasa si alguno lo hace? Va a descargar el contenido, nada más que nos quedará un archivo inservible, tendríamos que fabricar una herramienta de post-procesamiento para arreglarlo (pero el contenido está!!! es cuestión de reformatearlo!), pero si llegara a ser una necesidad para mi, probablemente lo implemente en el Proxy antes que hacer una herramienta de post-procesamiento.
&lt;br /&gt;

&lt;br /&gt;
* No soporta Keep-Alive, lo cual quiere decir que no va a reusar una conexión TCP ya abierta para transmitir más datos... esto lo hace un poco más lento ¿Cuánto? No sé... agrega latencia (NO disminuye la tasa de transferencia, sólo aumenta la latencia, pues tiene que reconectar por cada elemento de una página HTML), pero no es la idea del Proxy ser usado todo el tiempo, es sólo para cuando queremos ponernos a descargar cosas. Así que de momento no es que me importe mucho.
&lt;br /&gt;

&lt;br /&gt;
* No soporta contenido comprimido, y aquí otra vez... si un server no respeta el pedido del proxy y manda contenido comprimido... el contenido se va a guardar, sólo que vamos a tener que descomprimirlo a mano (NOTA: Otra razón por la cual no conviene usarlo para TODO).
&lt;br /&gt;

&lt;br /&gt;
* Iba a implementar soporte para guardar contenido parcial (y completarlo a medida que se vayan pidiendo otros rangos del archivo), pero me di cuenta que es una porquería, porque en lugar de usar el estándar HTTP para pedir contenido parcial, los reproductores de videos flash simplemente realizan un pedido común y corriente y pasan un parámetro en el query string, ej:
&lt;br /&gt;

&lt;br /&gt;
&lt;a href=&quot;http://mihost/mivideo.flv&quot; target=&quot;_blank&quot;&gt;http://mihost/mivideo.flv&lt;/a&gt; &amp;lt;-- Contenido entero, de principio a fin
&lt;br /&gt;
&lt;a href=&quot;http://mihost/mivideo.flv?start=1234&quot; target=&quot;_blank&quot;&gt;http://mihost/mivideo.flv?start=1234&lt;/a&gt; &amp;lt;-- Contenido a partir del byte 1234
&lt;br /&gt;

&lt;br /&gt;
Si usara el path de la URL (sin incluír el query string) para el hash podría respetar esta forma de pedido de contenido parcial, pero por ej. youtube usa el mismo path para todos los videos: /videoplayback, pasando el id del video como parte del query string.
&lt;br /&gt;

&lt;br /&gt;
Además, es tan pero tan choto flash que por alguna razón siempre se agrega el header del FLV... ¡es ridículo! ni siquiera incluye información sobre el video, es sólo una estúpida cadena de caracteres constante! Así que además de soportar esta tontería del start tendría que agregar soporte para remover el header FLV!!
&lt;br /&gt;

&lt;br /&gt;
Simplemente me parece ridículo gastar fuerzas en implementar soporte para todo esto, que está sencillamente mal diseñado, el estándar HTTP soporta pedidos y respuestas de contenido parcial!! por qué carajo no usaron el estándar?? y lo que es peor... por qué carajo retransmiten el estúpido header?
&lt;br /&gt;

&lt;br /&gt;
En fin, aún así el proxy tiene la opción (y, por defecto, lo hace) de convertir un pedido parcial en un pedido completo, aunque no probé si funciona, puesto que todos los videos flv usan el esquema de arriba en lugar de usar el estándar HTTP.
&lt;br /&gt;

&lt;br /&gt;
* NO entrega contenido desde la caché, ¿por qué? en primer lugar porque no se me cantó, y en segundo lugar porque varios sitios usan distintas direcciones para el mismo video. El primer paso en el balanceo de carga es proveer varias URLs distintas para el mismo contenido:
&lt;br /&gt;

&lt;br /&gt;
&lt;a href=&quot;http://cdn1.mihost/mivideo.flv&quot; target=&quot;_blank&quot;&gt;http://cdn1.mihost/mivideo.flv&lt;/a&gt;
&lt;br /&gt;
&lt;a href=&quot;http://cdn2.mihost/mivideo.flv&quot; target=&quot;_blank&quot;&gt;http://cdn2.mihost/mivideo.flv&lt;/a&gt;
&lt;br /&gt;
&lt;a href=&quot;http://cdn3.mihost/mivideo.flv&quot; target=&quot;_blank&quot;&gt;http://cdn3.mihost/mivideo.flv&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
Todas esas URLs devuelven el mismo video, pero todas generan un hash diferente. Es decir, que si quisieran usar el proxy como caché de videos probablemente terminen con el mismo video en la caché más de una vez. No hay una manera estándar de resolver este problema, Squid lo resuelve con store-rewrites, que permiten modificar esas URLs en algo como:
&lt;br /&gt;

&lt;br /&gt;
&lt;a href=&quot;http://mihost.sincdn.internal/mivideo.flv&quot; target=&quot;_blank&quot;&gt;http://mihost.sincdn.internal/mivideo.flv&lt;/a&gt; (por decir algo)
&lt;br /&gt;

&lt;br /&gt;
entonces el contenido de las distintas URLs terminan generando el mismo hash para ir a buscar en la caché. Pero esto requiere de conocimiento específico de los distintos sitios (YouTube, etc), y por ende se va de lo que yo quiero hacer.
&lt;br /&gt;

&lt;br /&gt;
* Por defecto elimina todas las cabeceras del tipo If-xxxx, para lograr que el server SIEMPRE nos entregue el contenido, y nunca nos diga algo como &amp;quot;El contenido no fue modificado desde su última visita&amp;quot;... nosotros queremos que el contenido circule, no lo queremos estancado en la caché en ram/disco del navegador.
&lt;br /&gt;

&lt;br /&gt;
* Pese a todo lo anterior, el contenido NO es transferido 2 veces, el proxy lo copia a medida que circula entre el servidor y el navegador.
&lt;br /&gt;

&lt;br /&gt;
* _PUEDE_ tener bugs, hasta ahora no me topé con ninguno... baja todos los videos &lt;img src=&quot;http://www.penguinpower.com.ar/foro/images/smiles/17.png&quot; alt=&quot;rock&quot; border=&quot;0&quot; /&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
Por último, el link: &lt;a href=&quot;http://www.mediafire.com/?j06rdjyg250253f&quot; target=&quot;_blank&quot;&gt;http://www.mediafire.com/?j06rdjyg250253f&lt;/a&gt; 
&lt;br /&gt;

&lt;br /&gt;
Sólo necesita de Ruby (si ya sé, es mucho más que pedir sólo la librería estándar de C), no usa ninguna librería externa (sólo la estándar de Ruby).
&lt;/span&gt;&lt;br /&gt;
</description>
</item>
<item>
	<title>Redes y Telecomunicaciones :: Benchmark servidores HTTP.</title>
	<link>http://www.penguinpower.com.ar/foro/viewtopic.php?p=30183#30183</link>
	<description>Autor: &lt;a href=&quot;http://www.penguinpower.com.ar/foro/profile.php?mode=viewprofile&amp;u=338&quot; target=&quot;_blank&quot;&gt;ezeaguerre&lt;/a&gt;&lt;br /&gt;
Titulo: Benchmark servidores HTTP.&lt;br /&gt;
Publicado: Mon Aug 15, 2011 6:49 am (GMT -3)&lt;br /&gt;
&lt;br /&gt;
&lt;span class="postbody"&gt;Hoy estuve compilando algunos servidores para hacer unos benchmarks, recién hice unas corridas preliminares para ir teniendo una idea... tengo que configurar bien algunas cosas y ver bien cómo voy a hacer los benchmarks, pero para que vayan teniendo una idea (al que le interese) dejo unos gráficos pedorros que acabo de hacer...
&lt;br /&gt;

&lt;br /&gt;
&lt;a href=&quot;http://imageshack.us/photo/my-images/805/conexionesporsegundo.png/&quot; target=&quot;_blank&quot; class=&quot;postlink&quot;&gt;&lt;img onload=&quot;setImageDimensions(this)&quot; style=&quot;cursor:pointer;cursor:hand;&quot; onclick=&quot;changeImageDimensions(this)&quot; src=&quot;http://img805.imageshack.us/img805/997/conexionesporsegundo.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;a href=&quot;http://imageshack.us/photo/my-images/24/tasadetransferencia.png/&quot; target=&quot;_blank&quot; class=&quot;postlink&quot;&gt;&lt;img onload=&quot;setImageDimensions(this)&quot; style=&quot;cursor:pointer;cursor:hand;&quot; onclick=&quot;changeImageDimensions(this)&quot; src=&quot;http://img24.imageshack.us/img24/3760/tasadetransferencia.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;a href=&quot;http://imageshack.us/photo/my-images/713/tiempoderespuesta.png/&quot; target=&quot;_blank&quot; class=&quot;postlink&quot;&gt;&lt;img onload=&quot;setImageDimensions(this)&quot; style=&quot;cursor:pointer;cursor:hand;&quot; onclick=&quot;changeImageDimensions(this)&quot; src=&quot;http://img713.imageshack.us/img713/6731/tiempoderespuesta.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;
Basicamente:
&lt;br /&gt;
 1ro: nginx 1.1.0
&lt;br /&gt;
 2do: Cherokee 1.2.98
&lt;br /&gt;
 3ro: Apache 2.3.14-beta (2.4 beta) mpm-event
&lt;br /&gt;
 4to: Apache 2.3.14-beta (2.4 beta) mpm-worker
&lt;br /&gt;
 5to: Apache 2.3.14-beta (2.4 beta) mpm-prefork
&lt;br /&gt;

&lt;br /&gt;
El benchmark consisten en bajar un archivito (hola.txt &lt;img src=&quot;http://www.penguinpower.com.ar/foro/images/smiles/OOP.png&quot; alt=&quot;Razz&quot; border=&quot;0&quot; /&gt;) que pesa 100 bytes, osea que es un benchmark donde se baja constantemente el mismo pequeño archivo, lo cual quiere decir que:
&lt;br /&gt;

&lt;br /&gt;
 * El archivo está en cache.
&lt;br /&gt;
 * Basicamente se está midiendo el &amp;quot;overhead&amp;quot; del servidor.
&lt;br /&gt;
 * Seguro que no es representativo de un caso de uso real.
&lt;br /&gt;
 * La aplicación de benchmarking y el servidor corrían en la misma máquina compitiendo por los mismos recursos: RAM, CPU, sockets!!! etc &lt;img src=&quot;http://www.penguinpower.com.ar/foro/images/smiles/OOP.png&quot; alt=&quot;Razz&quot; border=&quot;0&quot; /&gt;
&lt;br /&gt;

&lt;br /&gt;
Tengo que pulir todos esos detalles, y me gustaría ver cómo se comportan ante una aplicación un poco más realista (un phpBB, un Wordpress, un Drupal, o algo de eso) pero por hoy me conformo con haber compilado los distintos paquetes y haber hecho esta corrida provisoria &lt;img src=&quot;http://www.penguinpower.com.ar/foro/images/smiles/OOP.png&quot; alt=&quot;Razz&quot; border=&quot;0&quot; /&gt;
&lt;br /&gt;

&lt;br /&gt;
¡Saludos!
&lt;/span&gt;&lt;br /&gt;
</description>
</item>
<item>
	<title>Programación y Bases de Datos :: C++0x is unanimously approved!!</title>
	<link>http://www.penguinpower.com.ar/foro/viewtopic.php?p=30182#30182</link>
	<description>Autor: &lt;a href=&quot;http://www.penguinpower.com.ar/foro/profile.php?mode=viewprofile&amp;u=323&quot; target=&quot;_blank&quot;&gt;gnemmi&lt;/a&gt;&lt;br /&gt;
Titulo: C++0x is unanimously approved!!&lt;br /&gt;
Publicado: Sun Aug 14, 2011 11:21 pm (GMT -3)&lt;br /&gt;
&lt;br /&gt;
&lt;span class="postbody"&gt;&lt;/span&gt;&lt;table width=&quot;90%&quot; cellspacing=&quot;1&quot; cellpadding=&quot;3&quot; border=&quot;0&quot; align=&quot;center&quot;&gt;&lt;tr&gt; 	  &lt;td&gt;&lt;span class=&quot;genmed&quot;&gt;&lt;b&gt;Cita:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;	&lt;/tr&gt;	&lt;tr&gt;	  &lt;td class=&quot;quote&quot;&gt;
&lt;br /&gt;
The final ISO ballot on C++0x closed on Wednesday, and we just received the results: Unanimous approval.
&lt;br /&gt;

&lt;br /&gt;
The next revision of C++ that we’ve been calling “C++0x” is now an International Standard! Geneva will take several months to publish it, but we hope it will be published well within the year, and then we’ll be able to call it “C++11.”
&lt;br /&gt;

&lt;br /&gt;
I want to extend my thanks again to Bjarne Stroustrup for sharing his work with the world and continuing to help move it forward, and to all of the participants whose hard work went into achieving this important milestone in the history of a great language. Thanks!
&lt;br /&gt;
&lt;/td&gt;	&lt;/tr&gt;&lt;/table&gt;&lt;span class=&quot;postbody&quot;&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;a href=&quot;http://herbsutter.com/2011/08/12/we-have-an-international-standard-c0x-is-unanimously-approved/&quot; target=&quot;_blank&quot; class=&quot;postlink&quot;&gt;Link&lt;/a&gt;
&lt;/span&gt;&lt;br /&gt;
</description>
</item>
<item>
	<title>Salidas y Encuentros :: RE: Almuerzo / After office</title>
	<link>http://www.penguinpower.com.ar/foro/viewtopic.php?p=30181#30181</link>
	<description>Autor: &lt;a href=&quot;http://www.penguinpower.com.ar/foro/profile.php?mode=viewprofile&amp;u=24&quot; target=&quot;_blank&quot;&gt;Salitou&lt;/a&gt;&lt;br /&gt;

Publicado: Tue Aug 09, 2011 3:44 pm (GMT -3)&lt;br /&gt;
&lt;br /&gt;
&lt;span class="postbody"&gt;Excelente!!!!!!!
&lt;br /&gt;

&lt;br /&gt;
12:30 quedamos con le Marsòn
&lt;/span&gt;&lt;br /&gt;
</description>
</item>
<item>
	<title>Salidas y Encuentros :: RE: Almuerzo / After office</title>
	<link>http://www.penguinpower.com.ar/foro/viewtopic.php?p=30180#30180</link>
	<description>Autor: &lt;a href=&quot;http://www.penguinpower.com.ar/foro/profile.php?mode=viewprofile&amp;u=2&quot; target=&quot;_blank&quot;&gt;Kaos_Engine&lt;/a&gt;&lt;br /&gt;

Publicado: Tue Aug 09, 2011 3:31 pm (GMT -3)&lt;br /&gt;
&lt;br /&gt;
&lt;span class="postbody"&gt;Voy!
&lt;/span&gt;&lt;br /&gt;
</description>
</item>
<item>
	<title>Salidas y Encuentros :: RE: Almuerzo / After office</title>
	<link>http://www.penguinpower.com.ar/foro/viewtopic.php?p=30179#30179</link>
	<description>Autor: &lt;a href=&quot;http://www.penguinpower.com.ar/foro/profile.php?mode=viewprofile&amp;u=24&quot; target=&quot;_blank&quot;&gt;Salitou&lt;/a&gt;&lt;br /&gt;

Publicado: Mon Aug 01, 2011 3:24 pm (GMT -3)&lt;br /&gt;
&lt;br /&gt;
&lt;span class="postbody"&gt;Miércoles 10/8/11, a las 13 más o menos, el Marson y la que les tipea se juntan a almorfar, el q se quiera prender, bueno, ya saben &lt;img src=&quot;http://www.penguinpower.com.ar/foro/images/smiles/OOP.png&quot; alt=&quot;Razz&quot; border=&quot;0&quot; /&gt;
&lt;br /&gt;

&lt;br /&gt;
El Marson no me deja mentir, es más, él me dijo si si , yo lo vi &lt;img src=&quot;http://www.penguinpower.com.ar/foro/images/smiles/OOP.png&quot; alt=&quot;Razz&quot; border=&quot;0&quot; /&gt;
&lt;/span&gt;&lt;br /&gt;
</description>
</item>
<item>
	<title>Compras - Ventas - Alquileres :: Vendo Teclado Casio CTK-4000 Sentisitivo + Soporte Tijera +</title>
	<link>http://www.penguinpower.com.ar/foro/viewtopic.php?p=30178#30178</link>
	<description>Autor: &lt;a href=&quot;http://www.penguinpower.com.ar/foro/profile.php?mode=viewprofile&amp;u=34&quot; target=&quot;_blank&quot;&gt;MaRsOn&lt;/a&gt;&lt;br /&gt;
Titulo: Vendo Teclado Casio CTK-4000 Sentisitivo + Soporte Tijera +&lt;br /&gt;
Publicado: Thu Jul 28, 2011 5:16 pm (GMT -3)&lt;br /&gt;
&lt;br /&gt;
&lt;span class="postbody"&gt;El teclado se entrega con su Atril original, Fuente de 9V, Cable USB para conectarlo a la PC, Manuales originales, Pedal de Sustain y Soporte Tijera!
&lt;br /&gt;

&lt;br /&gt;
Teclado Ideal para comenzar a tocar. 5 Octavas, Sensitivo, con conexion MIDI.
&lt;br /&gt;
Tiene 4 meses de uso. Esta como nuevo.
&lt;br /&gt;

&lt;br /&gt;
Imagenes del producto:
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&lt;img onload=&quot;setImageDimensions(this)&quot; style=&quot;cursor:pointer;cursor:hand;&quot; onclick=&quot;changeImageDimensions(this)&quot; src=&quot;http://img1.mlstatic.com/s_MLA_v_O_f_121199570_3205.jpg&quot; border=&quot;0&quot; /&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;img onload=&quot;setImageDimensions(this)&quot; style=&quot;cursor:pointer;cursor:hand;&quot; onclick=&quot;changeImageDimensions(this)&quot; src=&quot;http://img1.mlstatic.com/s_MLA_v_O_f_121199570_4474.jpg&quot; border=&quot;0&quot; /&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;img onload=&quot;setImageDimensions(this)&quot; style=&quot;cursor:pointer;cursor:hand;&quot; onclick=&quot;changeImageDimensions(this)&quot; src=&quot;http://img1.mlstatic.com/s_MLA_v_O_f_121199570_4441.jpg&quot; border=&quot;0&quot; /&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
&lt;a href=&quot;http://img.buntulug.com.ar/?v=ctk400bub.jpg&quot; target=&quot;_blank&quot; class=&quot;postlink&quot;&gt;&lt;img onload=&quot;setImageDimensions(this)&quot; style=&quot;cursor:pointer;cursor:hand;&quot; onclick=&quot;changeImageDimensions(this)&quot; src=&quot;http://img.buntulug.com.ar/thumbs/ctk400bub.jpg&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;a href=&quot;http://img.buntulug.com.ar/?v=ctk400qvq.jpg&quot; target=&quot;_blank&quot; class=&quot;postlink&quot;&gt;&lt;img onload=&quot;setImageDimensions(this)&quot; style=&quot;cursor:pointer;cursor:hand;&quot; onclick=&quot;changeImageDimensions(this)&quot; src=&quot;http://img.buntulug.com.ar/thumbs/ctk400qvq.jpg&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
Su pregunta no molesta &lt;img src=&quot;http://www.penguinpower.com.ar/foro/images/smiles/^^D.gif&quot; alt=&quot;Very Happy&quot; border=&quot;0&quot; /&gt;
&lt;br /&gt;

&lt;br /&gt;
Saludos
&lt;/span&gt;&lt;br /&gt;
</description>
</item>
</channel>
</rss>


