<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="http://feedproxy.google.com/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feedproxy.google.com/~d/styles/itemcontent.css"?><rss 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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Ceritium.net</title>
	
	<link>http://ceritium.net</link>
	<description>José Galisteo</description>
	<pubDate>Fri, 17 Oct 2008 22:40:31 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by/3.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /><meta xmlns="http://pipes.yahoo.com" name="pipes" content="noprocess" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feedproxy.google.com/ceritiumNet" type="application/rss+xml" /><item>
		<title>Velocidad de la CPU en Linux</title>
		<link>http://feedproxy.google.com/~r/ceritiumNet/~3/3sCWBDIQlus/</link>
		<comments>http://ceritium.net/439/software-libre/linux/velocidad-de-la-cpu-en-linux/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 22:40:31 +0000</pubDate>
		<dc:creator>Ceritium</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[linux frecuencia ubuntu servidor]]></category>

		<guid isPermaLink="false">http://ceritium.net/?p=439</guid>
		<description><![CDATA[Ahora mismo tengo montado un servidor para que tanto yo como mis compañeros de piso podamos descargar contenidos a través de Bittorrent, almacenar estos mismos archivos en un disco duro Lacíe de 500 gigas y por supuesto para yo poder cacharrear con Linux.
La máquina es un portátil con poco tiempo al que prácticamente se le [...]]]></description>
			<content:encoded><![CDATA[<p>Ahora mismo tengo montado un servidor para que tanto yo como mis compañeros de piso podamos descargar contenidos a través de <strong>Bittorrent</strong>, almacenar estos mismos archivos en un disco duro Lacíe de 500 gigas y por supuesto para yo poder cacharrear con Linux.</p>
<p>La máquina es un portátil con poco tiempo al que prácticamente se le destrozó la pantalla, así que en vez de tirarlo decidí reciclarlo. Al ver la info del sistema me sorprendió ver que tenia dos Cores a 800Mhz cuando yo recordaba que la maquina iba a 1600.</p>
<p>Por lo visto Ubuntu ponía la máquina a 800Mhz, como en modo de ahorro de energía, entonces solo tenía que buscar el comando apropiado para esto.</p>
<p>Con <strong>cpufreq-selector</strong> podremos hacerlo, yo lo solucioné concrétamente con:</p>
<pre lng="bash">
cpufreq-selector -g performance
</pre>
<p>Otras opciones son:</p>
<pre lng="bash">
cpufreq-selector -g ondemand
cpufreq-selector -g conservative
cpufreq-selector -g powersave
</pre>
<p>Aunque lo mejor es que leas más con <strong>&#8220;man cpufreq-selector&#8221;</strong>.</p>
<p>Además para ejecutar este comando cada vez que se arranque el sistema será necesario añadirlo al archivo <strong>&#8220;/etc/rc.local&#8221;</strong>.</p>

<p><a href="http://feeds.feedburner.com/~a/ceritium?a=05EGhs"><img src="http://feeds.feedburner.com/~a/ceritium?i=05EGhs" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/ceritium?a=vev9M"><img src="http://feeds.feedburner.com/~f/ceritium?i=vev9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ceritium?a=t43OM"><img src="http://feeds.feedburner.com/~f/ceritium?i=t43OM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ceritium?a=F6ycm"><img src="http://feeds.feedburner.com/~f/ceritium?i=F6ycm" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ceritium/~4/424112332" height="1" width="1"/>
<p><a href="http://feedads.googleadservices.com/~a/xO9CX5SCFfXYcHcaYPXE3DZ2f0k/a"><img src="http://feedads.googleadservices.com/~a/xO9CX5SCFfXYcHcaYPXE3DZ2f0k/i" border="0" ismap="true"></img></a></p><img src="http://feedproxy.google.com/~r/ceritiumNet/~4/3sCWBDIQlus" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ceritium.net/439/software-libre/linux/velocidad-de-la-cpu-en-linux/feed/</wfw:commentRss>
		<feedburner:origLink>http://ceritium.net/439/software-libre/linux/velocidad-de-la-cpu-en-linux/</feedburner:origLink><feedburner:origLink>http://feeds.feedburner.com/~r/ceritium/~3/424112332/</feedburner:origLink></item>
		<item>
		<title>Migraciones y CSV con FasterCSV</title>
		<link>http://feedproxy.google.com/~r/ceritiumNet/~3/u5cyNll9FvE/</link>
		<comments>http://ceritium.net/435/programacion/rails/migraciones-y-csv-con-fastercsv/#comments</comments>
		<pubDate>Fri, 05 Sep 2008 23:05:24 +0000</pubDate>
		<dc:creator>Ceritium</dc:creator>
		
		<category><![CDATA[Rails]]></category>

		<category><![CDATA[CSV]]></category>

		<category><![CDATA[FasterCSV]]></category>

		<category><![CDATA[gemas]]></category>

		<category><![CDATA[gems]]></category>

		<category><![CDATA[migraciones]]></category>

		<category><![CDATA[migrate]]></category>

		<category><![CDATA[migration]]></category>

		<category><![CDATA[raills]]></category>

		<category><![CDATA[ror]]></category>

		<category><![CDATA[ruby]]></category>

		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://ceritium.net/?p=435</guid>
		<description><![CDATA[En nuestras aplicaciones a veces es necesario cargar en la base de datos gran cantidad de registros que deben estar ahí siempre.
Un buen ejemplo de esto podría ser una lista de países con sus respectivas provincias y ciudades, algo con lo que seguro os encontraréis algún día si no lo habéis hecho ya.
Normalmente, antes de [...]]]></description>
			<content:encoded><![CDATA[<p>En nuestras aplicaciones a veces es necesario cargar en la base de datos gran cantidad de registros que deben estar ahí siempre.</p>
<p>Un buen ejemplo de esto podría ser una lista de países con sus respectivas provincias y ciudades, algo con lo que seguro os encontraréis algún día si no lo habéis hecho ya.</p>
<p>Normalmente, antes de conocer <strong>Rails</strong> y su filosofía, si me hubiese encontrado esto lo habría importado a la base de datos de forma manual.</p>
<p>Ante esto, he visto que algunos optan por cargar todos esos datos en la misma migración para que esta se ejecute cuando sea necesaria, pero para ello deben jugar con la consola hasta conseguir la cadena de texto con los datos que les interesa y la pegan en la migración para posteriormente procesarlas con por ejemplo un Model.create(:mi => &#8220;hash&#8221;).</p>
<p>Si necesitas volcar en la DB 1000 registros el resultado del archivo que se encargue de la migración puede ser enorme, no quiero ni imaginarme una maquina modestilla intentando abrir un fichero con miles de registros y encima queriéndolos colorear&#8230;</p>
<p><span id="more-435"></span></p>
<p>Con las cantidades de registros que estoy andando ahora para mi MacBook no es ningún problema (es la maquina más potente de la oficina :P), pero el sistema anterior me parece feo y si los datos cambian durante el desarrollo debes re-escribir la migración. Para este tipo de cosas creo que lo ideal es tener todos esos datos en un archivo aparte y leerlos poco a poco desde la migración, así evitamos que nuestra computadora lo pase mal tanto al abrir el archivo para editarlo como para cargarlo en la base de datos.</p>
<p>En esta ocasión los archivos los tenía en <strong>CSV</strong> así que decidí seguir con ese mismo formato, busqué un poco y gracias a <a href="http://dotanything.wordpress.com/2007/10/10/import-csv-using-rails-migration/">dotanything</a> encontré <strong>FastCSV</strong>, una estupenda <strong>gema</strong> que nos facilitará el trabajo en general con archivos <strong>CSV</strong>, desde leerlos, procesarlos y hasta crearlos.</p>
<p>En la web de <strong>dotanything</strong> este ejemplo:</p>
<div class="geshi no ruby">
<ol>
<li class="li1">
<div class="de1">FasterCSV.<span class="me1">foreach</span><span class="br0">&#40;</span><span class="st0">&quot;#{RAILS_ROOT}/lib/symbols_database/security_list.csv&quot;</span>, <span class="re3">:row_sep</span> <span class="sy0">=&gt;</span> <span class="st0">&quot;<span class="es0">\r</span>&quot;</span><span class="br0">&#41;</span> <span class="kw1">do</span> <span class="sy0">|</span>row<span class="sy0">|</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; field1,field2,field3 = row</div>
</li>
<li class="li1">
<div class="de1">&nbsp; Foo.<span class="me1">create</span><span class="br0">&#40;</span><span class="re3">:field1</span> <span class="sy0">=&gt;</span> field1, <span class="re3">:field2</span> <span class="sy0">=&gt;</span> field2, <span class="re3">:field3</span> <span class="sy0">=&gt;</span> field3<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">end</span></div>
</li>
</ol>
</div>
<p>Sin embargo el método foreach que FastCSV ofrece no conseguí hacerlo funcionar, sin embargo se puede hacer algo similar con el metodo read y un bucle de toda la vida en ruby:</p>
<div class="geshi no ruby">
<ol>
<li class="li1">
<div class="de1">FasterCSV.<span class="me1">read</span><span class="br0">&#40;</span><span class="st0">&quot;#{RAILS_ROOT}/lib/symbols_database/security_list.csv&quot;</span><span class="br0">&#41;</span>.<span class="me1">each</span> <span class="kw1">do</span> <span class="sy0">|</span>row<span class="sy0">|</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; field1,field2,field3 = row</div>
</li>
<li class="li1">
<div class="de1">&nbsp; Foo.<span class="me1">create</span><span class="br0">&#40;</span><span class="re3">:field1</span> <span class="sy0">=&gt;</span> field1, <span class="re3">:field2</span> <span class="sy0">=&gt;</span> field2, <span class="re3">:field3</span> <span class="sy0">=&gt;</span> field3<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">end</span></div>
</li>
</ol>
</div>
<p>Y creo que con esto tengo poco más que decir, para más información pasaros por la <a href="http://fastercsv.rubyforge.org/">documentación</a> de <strong>FasterCSV</strong>, para descargarlo podéis hacerlo desde <a href="http://rubyforge.org/projects/fastercsv/">RubyForge</a>.</p>
<p>No se si es el mejor sistema o si es el más rápido pero a mi me parece mucho más cómodo y limpio.</p>

<p><a href="http://feeds.feedburner.com/~a/ceritium?a=B4s7ff"><img src="http://feeds.feedburner.com/~a/ceritium?i=B4s7ff" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/ceritium?a=Tu8gL"><img src="http://feeds.feedburner.com/~f/ceritium?i=Tu8gL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ceritium?a=NhmlL"><img src="http://feeds.feedburner.com/~f/ceritium?i=NhmlL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ceritium?a=bGwLl"><img src="http://feeds.feedburner.com/~f/ceritium?i=bGwLl" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ceritium/~4/384580346" height="1" width="1"/>
<p><a href="http://feedads.googleadservices.com/~a/HHcrL_s6H9w62YVtejgKpgzapPc/a"><img src="http://feedads.googleadservices.com/~a/HHcrL_s6H9w62YVtejgKpgzapPc/i" border="0" ismap="true"></img></a></p><img src="http://feedproxy.google.com/~r/ceritiumNet/~4/u5cyNll9FvE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ceritium.net/435/programacion/rails/migraciones-y-csv-con-fastercsv/feed/</wfw:commentRss>
		<feedburner:origLink>http://ceritium.net/435/programacion/rails/migraciones-y-csv-con-fastercsv/</feedburner:origLink><feedburner:origLink>http://feeds.feedburner.com/~r/ceritium/~3/384580346/</feedburner:origLink></item>
		<item>
		<title>Youtube-g con Geodata</title>
		<link>http://feedproxy.google.com/~r/ceritiumNet/~3/8k0n_afdRoU/</link>
		<comments>http://ceritium.net/431/programacion/youtube-g-con-geodata/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 22:31:40 +0000</pubDate>
		<dc:creator>Ceritium</dc:creator>
		
		<category><![CDATA[Programación]]></category>

		<category><![CDATA[Software libre]]></category>

		<category><![CDATA[git]]></category>

		<category><![CDATA[github]]></category>

		<category><![CDATA[youtube]]></category>

		<category><![CDATA[youtube-g api]]></category>

		<guid isPermaLink="false">http://ceritium.net/?p=431</guid>
		<description><![CDATA[Youtube-g es una gema de Ruby que permite acceder de forma bastante cómoda a los datos proporcionados por la Api de YouTube.
Aunque esta gema en sí es genial aún le faltan bastantes métodos en comparación con lo que permite la API de YouTube. Pero como software libre que es los demás podemos además de usarla [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Youtube-g</strong> es una gema de <strong>Ruby</strong> que permite acceder de forma bastante cómoda a los datos proporcionados por la <a href="http://code.google.com/intl/es/apis/youtube/developers_guide_protocol.html">Api de YouTube</a>.</p>
<p>Aunque esta gema en sí es genial aún le faltan bastantes métodos en comparación con lo que permite la <strong>API de YouTube</strong>. Pero como software libre que es los demás podemos además de usarla y distribuirla, podemos mejorarla.</p>
<p>Esto siempre se ha podido hacer, pero la verdad es que <a href="https://github.com/">GitHub</a> casi que anima más a hacerlo, así que yo como otros tantos hice un <a href="http://github.com/ceritium/youtube-g/tree/master">fork</a> de <a href="http://github.com/tmm1/youtube-g/tree/master">Youtube-g</a>, le añadí una pequeña funcionalidad, avisé al autor desde el propio <strong>GitHub</strong> y ya están disponibles los <a href="http://github.com/tmm1/youtube-g/commit/d424400ac1142344543bdbc1fe9860dd0dc4f0cd">cambios</a> en el proyecto principal.</p>
<p>Los métodos añadidos son sencillos, pero supongo que a alguien le será útil, ahora desde la gema puedes saber si un vídeo de <strong>YouTube</strong> tiene <strong>geodatos</strong> y en caso afirmativo permite sacarlos.</p>
<p>Si estáis interesados en la gema recordad bajaros la <a href="http://github.com/tmm1/youtube-g/tree/master">original</a>, y no los forks a menos que estéis interesados en algo que no se haya implementado aún.</p>
<p><strong>PD:</strong> A pesar de lo que dice la Wikipedia de los <a href="http://es.wikipedia.org/wiki/Bifurcaci%C3%B3n_(desarrollo_de_software)">forks</a>, en GitHub un fork no tiene porque nacer para seguir creciendo por un camino distinto, si no que las mejoras pueden añadirse al proyecto original, supongo que como en todos lados.<br />
<strong><br />
PPD:</strong> <a href="http://es.wikipedia.org/wiki/Git">Git</a> Powa!</p>

<p><a href="http://feeds.feedburner.com/~a/ceritium?a=XBy6Ue"><img src="http://feeds.feedburner.com/~a/ceritium?i=XBy6Ue" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/ceritium?a=S4lbuL"><img src="http://feeds.feedburner.com/~f/ceritium?i=S4lbuL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ceritium?a=rxsHNL"><img src="http://feeds.feedburner.com/~f/ceritium?i=rxsHNL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ceritium?a=UovlFl"><img src="http://feeds.feedburner.com/~f/ceritium?i=UovlFl" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ceritium/~4/381761603" height="1" width="1"/>
<p><a href="http://feedads.googleadservices.com/~a/GjYwmbvO-LFZIVmTM3CRrnLhbk4/a"><img src="http://feedads.googleadservices.com/~a/GjYwmbvO-LFZIVmTM3CRrnLhbk4/i" border="0" ismap="true"></img></a></p><img src="http://feedproxy.google.com/~r/ceritiumNet/~4/8k0n_afdRoU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ceritium.net/431/programacion/youtube-g-con-geodata/feed/</wfw:commentRss>
		<feedburner:origLink>http://ceritium.net/431/programacion/youtube-g-con-geodata/</feedburner:origLink><feedburner:origLink>http://feeds.feedburner.com/~r/ceritium/~3/381761603/</feedburner:origLink></item>
		<item>
		<title>Rating con act_as_rateable plugin</title>
		<link>http://feedproxy.google.com/~r/ceritiumNet/~3/llZqsxjYYdc/</link>
		<comments>http://ceritium.net/421/programacion/rails/rating-con-act_as_rateable-plugin/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 22:44:58 +0000</pubDate>
		<dc:creator>Ceritium</dc:creator>
		
		<category><![CDATA[Rails]]></category>

		<category><![CDATA[acts_as_rating]]></category>

		<category><![CDATA[ajax]]></category>

		<category><![CDATA[howto]]></category>

		<category><![CDATA[rating]]></category>

		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://ceritium.net/?p=421</guid>
		<description><![CDATA[Desde luego una de las mayores ventajas de Rails es la existencia de los plugins y gemas que nos permiten no comernos la cabeza con cosas repetitivas, pesadas o simplemente no tener que reinventar la rueda.
En esta caso tenia que hacer un sistema para puntuar cosas con las típicas estrellítas que podemos ver en YouTube [...]]]></description>
			<content:encoded><![CDATA[<p>Desde luego una de las mayores ventajas de <strong>Rails</strong> es la existencia de los <strong>plugins</strong> y <strong>gemas</strong> que nos permiten no comernos la cabeza con cosas repetitivas, pesadas o simplemente no tener que reinventar la rueda.</p>
<p>En esta caso tenia que hacer un sistema para puntuar cosas con las típicas estrellítas que podemos ver en YouTube o en otras tantas webs de hoy en día. Finalmente lo conseguí, eso si gracias al plugin <a href="http://rubyforge.org/projects/rateableplugin/">act_as_rateable</a>, los gráficos de <a href="http://www.komodomedia.com/blog/2006/01/css-star-rating-part-deux/">Komodomedia</a> y la pequeña guía de <a href="http://www.naffis.com/blog/articles/2006/08/31/rails-ajax-star-rating-system">Naffis</a>.</p>
<p>La mayor diferencia entre la guía de Naffis y los pasos que yo pondré aquí es que aquí te enseñaré a sacarle toda la potencia pudiendo hacer el sistema polimórfico.</p>
<p>Advierto que a menos que estés interesado no sigas leyendo porque es un autentico ladrillo, eso si, el resultado es muy bonito <img src='http://ceritium.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><span id="more-421"></span></p>
<p>Lo primero es instalar el <strong>plugin act_as_rateable</strong> con:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">script<span class="sy0">/</span>plugin <span class="kw2">install</span> http:<span class="sy0">//</span>juixe.com<span class="sy0">/</span>svn<span class="sy0">/</span>acts_as_rateable</div>
</li>
</ol>
</div>
<p>Hecho esto tendremos que crear una migración con los campos necesarios para nuestro sistema de rating, en un archivo como &#8220;db/migrate/xxx_create_ratings.rb&#8221; escribimos:</p>
<div class="geshi no ruby">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">class</span> CreateRatings<span class="sy0">&lt;</span> <span class="re2">ActiveRecord::Migration</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">def</span> <span class="kw2">self</span>.<span class="me1">up</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; create_table <span class="re3">:ratings</span>, <span class="re3">:force</span> <span class="sy0">=&gt;</span> <span class="kw2">true</span> <span class="kw1">do</span> <span class="sy0">|</span>t<span class="sy0">|</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; t.<span class="me1">column</span> <span class="re3">:rating</span>, <span class="re3">:integer</span>, <span class="re3">:default</span> <span class="sy0">=&gt;</span> <span class="nu0">0</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; t.<span class="me1">column</span> <span class="re3">:created_at</span>, <span class="re3">:datetime</span>, <span class="re3">:null</span> <span class="sy0">=&gt;</span> <span class="kw2">false</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; t.<span class="me1">column</span> <span class="re3">:rateable_type</span>, <span class="re3">:string</span>, <span class="re3">:limit</span> <span class="sy0">=&gt;</span> <span class="nu0">15</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="re3">:default</span> <span class="sy0">=&gt;</span> <span class="st0">&quot;&quot;</span>, <span class="re3">:null</span> <span class="sy0">=&gt;</span> <span class="kw2">false</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; t.<span class="me1">column</span> <span class="re3">:rateable_id</span>, <span class="re3">:integer</span>, <span class="re3">:default</span> <span class="sy0">=&gt;</span> <span class="nu0">0</span>, <span class="re3">:null</span> <span class="sy0">=&gt;</span> <span class="kw2">false</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; t.<span class="me1">column</span> <span class="re3">:user_id</span>, <span class="re3">:integer</span>, <span class="re3">:default</span> <span class="sy0">=&gt;</span> <span class="nu0">0</span>, <span class="re3">:null</span> <span class="sy0">=&gt;</span> <span class="kw2">false</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">end</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; add_index <span class="re3">:ratings</span>, <span class="br0">&#91;</span><span class="st0">&quot;user_id&quot;</span><span class="br0">&#93;</span>, <span class="re3">:name</span> <span class="sy0">=&gt;</span> <span class="st0">&quot;fk_ratings_user&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">end</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">def</span> <span class="kw2">self</span>.<span class="me1">down</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; drop_table <span class="re3">:ratings</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">end</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">end</span></div>
</li>
</ol>
</div>
<p>Realizamos la migración:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">rake migrate</div>
</li>
</ol>
</div>
<p>Creamos el controlador que se encargue nuestros ratings en &#8220;rating_controller.rb&#8221; por ejemplo:</p>
<div class="geshi no rails">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">class</span> RatingController <span class="sy0">&lt;</span> ApplicationController</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">def</span> rate</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; rateable_type = params<span class="br0">&#91;</span><span class="re3">:rateable_type</span><span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">@asset</span> = <span class="kw3">eval</span><span class="br0">&#40;</span>rateable_type<span class="br0">&#41;</span>.<span class="me1">find</span><span class="br0">&#40;</span>params<span class="br0">&#91;</span><span class="re3">:id</span><span class="br0">&#93;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Rating.<span class="me1">delete_all</span><span class="br0">&#40;</span><span class="br0">&#91;</span><span class="st0">&quot;rateable_type = ? AND rateable_id = ? AND user_id = ?&quot;</span>, rateable_type, <span class="re1">@asset</span>.<span class="me1">id</span>, current_user.<span class="me1">id</span><span class="br0">&#93;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">@asset</span>.<span class="me1">add_rating</span> Rating.<span class="kw5">new</span><span class="br0">&#40;</span><span class="re3">:rating</span> <span class="sy0">=&gt;</span> params<span class="br0">&#91;</span><span class="re3">:rating</span><span class="br0">&#93;</span>, <span class="re3">:user_id</span> <span class="sy0">=&gt;</span> current_user.<span class="me1">id</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">end</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">end</span></div>
</li>
</ol>
</div>
<p>Ya falta menos, ahora debemos generar las vistas de nuestro rating, creamos la carpeta &#8220;rating&#8221; en &#8220;views&#8221; y dentro de el creamos dos archivos:</p>
<p>_rating.html.erb</p>
<div class="geshi no css">
<ol>
<li class="li1">
<div class="de1"><span class="re1">.star-rating</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">list-style</span><span class="sy0">:</span> <span class="kw2">none</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">margin</span><span class="sy0">:</span> <span class="re3">0px</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">padding</span><span class="sy0">:</span> <span class="re3">0px</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">width</span><span class="sy0">:</span> <span class="re3">125px</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">height</span><span class="sy0">:</span> <span class="re3">25px</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">position</span><span class="sy0">:</span> <span class="kw2">relative</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="re4">/images/star<span class="re1">.gif</span></span><span class="br0">&#41;</span> <span class="kw1">top</span> <span class="kw1">left</span> <span class="kw2">repeat-x</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">.star-rating</span> li <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">padding</span><span class="sy0">:</span> <span class="re3">0px</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">margin</span><span class="sy0">:</span> <span class="re3">0px</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">float</span><span class="sy0">:</span> <span class="kw1">left</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">.star-rating</span> li a <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">block</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span> <span class="re3">25px</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span> <span class="re3">25px</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">text-decoration</span><span class="sy0">:</span> <span class="kw2">none</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">text-indent</span><span class="sy0">:</span> -<span class="re3">9000px</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">z-index</span><span class="sy0">:</span> <span class="nu0">20</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">position</span><span class="sy0">:</span> <span class="kw2">absolute</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">padding</span><span class="sy0">:</span> <span class="re3">0px</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="re1">.star-rating</span> li a<span class="re2">:hover</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="re4">/images/star<span class="re1">.gif</span></span><span class="br0">&#41;</span> <span class="kw1">left</span> <span class="kw2">center</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">z-index</span><span class="sy0">:</span> <span class="nu0">2</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">left</span><span class="sy0">:</span> <span class="re3">0px</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">border</span><span class="sy0">:</span> <span class="kw2">none</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">.star-rating</span> li<span class="re1">.current-rating</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">background</span><span class="sy0">:</span> <span class="kw2">url</span><span class="br0">&#40;</span><span class="re4">/images/star<span class="re1">.gif</span></span><span class="br0">&#41;</span> <span class="kw1">left</span> <span class="kw1">bottom</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">position</span><span class="sy0">:</span> <span class="kw2">absolute</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">height</span><span class="sy0">:</span> <span class="re3">25px</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">block</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">text-indent</span><span class="sy0">:</span> -<span class="re3">9000px</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">z-index</span><span class="sy0">:</span> <span class="nu0">1</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">.star-rating</span> a<span class="re1">.one-star</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">left</span><span class="sy0">:</span> <span class="re3">0px</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">.star-rating</span> a<span class="re1">.one-star</span><span class="re2">:hover</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span> <span class="re3">25px</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">.star-rating</span> a<span class="re1">.two-stars</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">left</span><span class="sy0">:</span> <span class="re3">25px</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">.star-rating</span> a<span class="re1">.two-stars</span><span class="re2">:hover</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span> <span class="re3">50px</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">.star-rating</span> a<span class="re1">.three-stars</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">left</span><span class="sy0">:</span> <span class="re3">50px</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">.star-rating</span> a<span class="re1">.three-stars</span><span class="re2">:hover</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span> <span class="re3">75px</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">.star-rating</span> a<span class="re1">.four-stars</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">left</span><span class="sy0">:</span> <span class="re3">75px</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">.star-rating</span> a<span class="re1">.four-stars</span><span class="re2">:hover</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span> <span class="re3">100px</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">.star-rating</span> a<span class="re1">.five-stars</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">left</span><span class="sy0">:</span> <span class="re3">100px</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re1">.star-rating</span> a<span class="re1">.five-stars</span><span class="re2">:hover</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span> <span class="re3">125px</span><span class="sy0">;</span> <span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>rate.rjs<br />
<lang pre="rails"><br />
page.replace_html &#8220;star-ratings-block&#8221;, :partial => &#8216;rating/rating&#8217;, :locals => { :asset => @asset }
</pre>
<p>Y para terminar con las vistas nos faltan los estilos y las imágenes necesarias, que podremos sacar de <a href="http://www.komodomedia.com/blog/2006/01/css-star-rating-part-deux/">Komodomedia</a>, en este caso tendremos que añadir a nuestro archivos .css las siguientes lineas de código:</p>
<div class="geshi no rails">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">class</span> Image <span class="sy0">&lt;</span> <span class="re2">ActiveRecord::Base</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &#8230;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="me1">acts_as_rateable</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &#8230;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">end</span></div>
</li>
</ol>
</div>
<p>Y para que valla como la seda tendréis que guardar en vuestra carpeta  &#8220;images&#8221; en &#8220;public&#8221; la imagen <a href="http://ceritium.net/wp-content/uploads/2008/08/star.gif">star.gif</a></p>
<p>Ya con esto lo tenemos todo casi listo, ahora solo nos falta decidir que queremos que sea &#8220;rateable&#8221;, por ejemplo si tememos el controlador &#8220;image.rb&#8221; haremos:</p>
<div class="geshi no rails">
<ol>
<li class="li1">
<div class="de1"><span class="sy0">&lt;%</span>= <span class="kw5">render</span> <span class="re3">:partial</span> <span class="sy0">=&gt;</span> <span class="st0">&quot;rating/rating&quot;</span>, <span class="re3">:locals</span> <span class="sy0">=&gt;</span> <span class="br0">&#123;</span> <span class="re3">:asset</span> <span class="sy0">=&gt;</span> <span class="re1">@image</span> <span class="br0">&#125;</span> <span class="sy0">%&gt;</span></div>
</li>
</ol>
</div>
<p>En este caso vemos que el modelo controla unas imágenes, lo más habitual para esto sería poder &#8220;ratearlas&#8221; en el show. Pues en el show.html.erb pegamos:</p>
<div class="geshi no rails">
<ol>
<li class="li1">
<div class="de1"><span class="re1">@image</span> = Image.<span class="me1">find</span> <span class="re3">:first</span> <span class="co1">#por ejemplo</span></div>
</li>
</ol>
</div>
<p>@image sería el objeto generado en tu controlador por:</p>
<div class="geshi no ">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p>Estos dos últimos pasos son los únicos que tendremos que repetir para añadirlos a otros modelos como Videos, Posts, etc.</p>
<p>Seguro que tu puedes mejorarlo, refactorizarlo, incluso tener tantas estrellas máximas como puedas.</p>
<p>¿Encontráis fallos?</p>

<p><a href="http://feeds.feedburner.com/~a/ceritium?a=ujQGeM"><img src="http://feeds.feedburner.com/~a/ceritium?i=ujQGeM" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/ceritium?a=xNmfxK"><img src="http://feeds.feedburner.com/~f/ceritium?i=xNmfxK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ceritium?a=OATN7K"><img src="http://feeds.feedburner.com/~f/ceritium?i=OATN7K" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ceritium?a=8WhjNk"><img src="http://feeds.feedburner.com/~f/ceritium?i=8WhjNk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ceritium/~4/377542690" height="1" width="1"/>
<p><a href="http://feedads.googleadservices.com/~a/j52gr78hkf0_HIdfb4o-ENXb69c/a"><img src="http://feedads.googleadservices.com/~a/j52gr78hkf0_HIdfb4o-ENXb69c/i" border="0" ismap="true"></img></a></p><img src="http://feedproxy.google.com/~r/ceritiumNet/~4/llZqsxjYYdc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ceritium.net/421/programacion/rails/rating-con-act_as_rateable-plugin/feed/</wfw:commentRss>
		<feedburner:origLink>http://ceritium.net/421/programacion/rails/rating-con-act_as_rateable-plugin/</feedburner:origLink><feedburner:origLink>http://feeds.feedburner.com/~r/ceritium/~3/377542690/</feedburner:origLink></item>
		<item>
		<title>bin2iso</title>
		<link>http://feedproxy.google.com/~r/ceritiumNet/~3/A8ovAHhRaqc/</link>
		<comments>http://ceritium.net/417/software-libre/linux/bin2iso/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 19:13:25 +0000</pubDate>
		<dc:creator>Ceritium</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[bin2iso linux bin]]></category>

		<guid isPermaLink="false">http://ceritium.net/?p=417</guid>
		<description><![CDATA[Por fin Microsoft después de varios años enseñándonos su Photosynth en cada sarao lo saca para que todos lo podamos usar, si usas Windows claro (allá ellos).
Pero la intención del post no es hablar de los productos de Microsoft si no de bin2iso, un pequeño programita en C que me ha permitido convertir una imagen [...]]]></description>
			<content:encoded><![CDATA[<p>Por fin Microsoft después de varios años enseñándonos su <a href="http://livelabs.com/photosynth/">Photosynth</a> en cada sarao lo saca para que todos lo podamos usar, si usas Windows claro (allá ellos).</p>
<p>Pero la intención del post no es hablar de los productos de Microsoft si no de <strong>bin2iso</strong>, un pequeño programita en C que me ha permitido convertir una imagen de disco .bin a .iso de un Windows XP que necesitaba solo para probar Photosynth en <a href="http://www.virtualbox.org/">VirtualBox</a>.</p>
<p>Los .bin suelen estar acompañados de un .toc o .cue, estos pares de archivos son imágenes creadas por otros programas pero a veces necesitamos el .iso como yo para correrlo en VirtualBox.</p>
<p><a href="http://mange.dynalias.org/linux/bin2iso/">bin2iso</a> es un pequeño archivo en C que debe ser compilado como te imaginarás para ejecutarlo.</p>
<p>Yo lo compilé con <a href="http://es.wikipedia.org/wiki/Colecci%C3%B3n_de_compiladores_GNU">gcc</a> así:<br />
<code>gcc archivo.c -o archivo_final</code></p>
<p>Y ejecutarlo es tan sencillo como:<br />
<code>bin2iso archivo.bin</code> </p>
<p>Tardará un ratillo <img src='http://ceritium.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /></p>

<p><a href="http://feeds.feedburner.com/~a/ceritium?a=amQKd9"><img src="http://feeds.feedburner.com/~a/ceritium?i=amQKd9" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/ceritium?a=Lp1obK"><img src="http://feeds.feedburner.com/~f/ceritium?i=Lp1obK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ceritium?a=QNHneK"><img src="http://feeds.feedburner.com/~f/ceritium?i=QNHneK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ceritium?a=ArbMBk"><img src="http://feeds.feedburner.com/~f/ceritium?i=ArbMBk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ceritium/~4/372114820" height="1" width="1"/>
<p><a href="http://feedads.googleadservices.com/~a/wbtlNrcLN5XG8H7puyfnmGpXrAs/a"><img src="http://feedads.googleadservices.com/~a/wbtlNrcLN5XG8H7puyfnmGpXrAs/i" border="0" ismap="true"></img></a></p><img src="http://feedproxy.google.com/~r/ceritiumNet/~4/A8ovAHhRaqc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ceritium.net/417/software-libre/linux/bin2iso/feed/</wfw:commentRss>
		<feedburner:origLink>http://ceritium.net/417/software-libre/linux/bin2iso/</feedburner:origLink><feedburner:origLink>http://feeds.feedburner.com/~r/ceritium/~3/372114820/</feedburner:origLink></item>
		<item>
		<title>Webstar Scientific Atlanta, Ono y Wifi gratis</title>
		<link>http://feedproxy.google.com/~r/ceritiumNet/~3/Z4Wnp5oSBns/</link>
		<comments>http://ceritium.net/413/analisis/webstar-scientific-atlanta-ono-y-wifi-gratis/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 17:24:02 +0000</pubDate>
		<dc:creator>Ceritium</dc:creator>
		
		<category><![CDATA[Analisis]]></category>

		<category><![CDATA[dd-wrt]]></category>

		<category><![CDATA[ono]]></category>

		<category><![CDATA[webstar]]></category>

		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://ceritium.net/?p=413</guid>
		<description><![CDATA[En menos de dos días desde que lo solicité Ono me ha instalado Internet y la televisión y todo sin problemas.
Lo que no tiene perdón es el triste cable-modem-wifi Webstar Scientific Atlanta que Ono te instala, triste sobre todo por su firmware y más triste por la configuración que trae por defecto.
Hasta la fecha pensaba [...]]]></description>
			<content:encoded><![CDATA[<p>En menos de dos días desde que lo solicité Ono me ha instalado Internet y la televisión y todo sin problemas.</p>
<p>Lo que no tiene perdón es el triste cable-modem-wifi <strong>Webstar Scientific Atlanta</strong> que <strong>Ono</strong> te instala, triste sobre todo por su firmware y más triste por la configuración que trae por defecto.</p>
<p>Hasta la fecha pensaba que las wifis abierta que me encontraba con el nombre de <strong>WebStar</strong> eran algún movimiento de los ayuntamientos, alguna organización o algo parecido, pero no, son redes abiertas por defecto.</p>
<p>Lo peor de todo es que además acceder al modem como administrador es sencillísimo al tener la wifi abierta. Cuando te pida usuario y contraseña puedes acceder dejando los campos en blanco y si intentas cambiar la clave por defecto te pillará como usuario <strong>&#8220;admin&#8221;</strong> y como password <strong>&#8220;W2402&#8243;</strong>.</p>
<p>Estos datos los puedes encontrar en cualquier foro y son datos públicos así que no revelo nada nuevo, de todas formas puedes imaginarte la morcilla que le puede dar un lamercillo a un pobre vecino despistado.</p>
<p>Yo he pasado del <strong>Webstar Scientific Atlanta</strong>, he cerrado la Wifi y le he conectado un router <strong>Linksys54G</strong> con el firmware <a href="http://www.dd-wrt.com/dd-wrtv3/index.php">DD-WRT</a> que cada día me sorprende más.</p>

<p><a href="http://feeds.feedburner.com/~a/ceritium?a=peWRNb"><img src="http://feeds.feedburner.com/~a/ceritium?i=peWRNb" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/ceritium?a=hF52yK"><img src="http://feeds.feedburner.com/~f/ceritium?i=hF52yK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ceritium?a=cZWILK"><img src="http://feeds.feedburner.com/~f/ceritium?i=cZWILK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ceritium?a=N2S4bk"><img src="http://feeds.feedburner.com/~f/ceritium?i=N2S4bk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ceritium/~4/372037108" height="1" width="1"/>
<p><a href="http://feedads.googleadservices.com/~a/_Yg0cZZ_Yx99Zjiccl0NxTDxBxc/a"><img src="http://feedads.googleadservices.com/~a/_Yg0cZZ_Yx99Zjiccl0NxTDxBxc/i" border="0" ismap="true"></img></a></p><img src="http://feedproxy.google.com/~r/ceritiumNet/~4/Z4Wnp5oSBns" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ceritium.net/413/analisis/webstar-scientific-atlanta-ono-y-wifi-gratis/feed/</wfw:commentRss>
		<feedburner:origLink>http://ceritium.net/413/analisis/webstar-scientific-atlanta-ono-y-wifi-gratis/</feedburner:origLink><feedburner:origLink>http://feeds.feedburner.com/~r/ceritium/~3/372037108/</feedburner:origLink></item>
		<item>
		<title>Servicio de atención al cliente de Yoigo</title>
		<link>http://feedproxy.google.com/~r/ceritiumNet/~3/3zsYyRNTxq8/</link>
		<comments>http://ceritium.net/410/yo-y-el-mundo/servicio-de-atencion-al-cliente-de-yoigo/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 17:05:22 +0000</pubDate>
		<dc:creator>Ceritium</dc:creator>
		
		<category><![CDATA[Móviles]]></category>

		<category><![CDATA[Yo y el Mundo]]></category>

		<category><![CDATA[simyo]]></category>

		<category><![CDATA[telefonia]]></category>

		<category><![CDATA[yoigo]]></category>

		<guid isPermaLink="false">http://ceritium.net/?p=410</guid>
		<description><![CDATA[Hace ya unos meses que perdí mi móvil pero he podido sobrevivir bastante bien sin él, eso si, mis colegas, familia y compañeros de oficina no piensan lo mismo.
Eso me ha echo tener que comprarme otro móvil, pero en vez de pillarme uno de Yoigo en donde tengo un contrato de permanencia por un par [...]]]></description>
			<content:encoded><![CDATA[<p>Hace ya unos meses que perdí mi móvil pero he podido sobrevivir bastante bien sin él, eso si, mis colegas, familia y compañeros de oficina no piensan lo mismo.</p>
<p>Eso me ha echo tener que comprarme otro móvil, pero en vez de pillarme uno de <strong>Yoigo</strong> en donde tengo un contrato de permanencia por un par de meses más he decidido sacármelo con <a href="http://simyo.es">Simyo</a> porque me ha convencido su política de servicios (esperemos que no cambien), poder administrarlo todo desde la web (tengo ganas de ver el trabajo de los chicos de <a href="http://www.the-cocktail.com/">The Cocktail</a>, es que aun estoy esperando el móvil) y sobre todo que los móviles que venden son libres.</p>
<p>Pero de lo que quería hablar era del servicio de atención al cliente de <strong>Yoigo</strong>, como siempre llamé y me salio una maquinita, pero eso si muy agradable, en tres pasos creo que ya estaba hablando con un comercial y en menos de 3 minutos.</p>
<p>Luego al decir que quería darme de baja no me dio ninguna pega, me específico que por los meses que me quedaban de contrato de permanencia tendría que pagar 10 euros, le dije que si y listo.</p>
<p>En resumen, estupendo. No solo vamos a escribir cuando nos quejamos de las tele-operadoras <img src='http://ceritium.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /></p>

<p><a href="http://feeds.feedburner.com/~a/ceritium?a=5CwAAS"><img src="http://feeds.feedburner.com/~a/ceritium?i=5CwAAS" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/ceritium?a=dDPHDK"><img src="http://feeds.feedburner.com/~f/ceritium?i=dDPHDK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ceritium?a=yMwQyK"><img src="http://feeds.feedburner.com/~f/ceritium?i=yMwQyK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ceritium?a=d3552k"><img src="http://feeds.feedburner.com/~f/ceritium?i=d3552k" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ceritium/~4/370135014" height="1" width="1"/>
<p><a href="http://feedads.googleadservices.com/~a/ItnZW4reSOA4DkSyeWgLuy8KyUA/a"><img src="http://feedads.googleadservices.com/~a/ItnZW4reSOA4DkSyeWgLuy8KyUA/i" border="0" ismap="true"></img></a></p><img src="http://feedproxy.google.com/~r/ceritiumNet/~4/3zsYyRNTxq8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ceritium.net/410/yo-y-el-mundo/servicio-de-atencion-al-cliente-de-yoigo/feed/</wfw:commentRss>
		<feedburner:origLink>http://ceritium.net/410/yo-y-el-mundo/servicio-de-atencion-al-cliente-de-yoigo/</feedburner:origLink><feedburner:origLink>http://feeds.feedburner.com/~r/ceritium/~3/370135014/</feedburner:origLink></item>
		<item>
		<title>MicroDC 2, direct Connect para consola</title>
		<link>http://feedproxy.google.com/~r/ceritiumNet/~3/BRChbRnC09o/</link>
		<comments>http://ceritium.net/405/software-libre/linux/microdc-2-direct-connect-para-consola/#comments</comments>
		<pubDate>Sat, 09 Aug 2008 17:33:18 +0000</pubDate>
		<dc:creator>Ceritium</dc:creator>
		
		<category><![CDATA[Campus Party 2008]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Programas]]></category>

		<category><![CDATA[campus party]]></category>

		<category><![CDATA[microdc]]></category>

		<category><![CDATA[microdc 2]]></category>

		<category><![CDATA[p2p]]></category>

		<guid isPermaLink="false">http://ceritium.net/?p=405</guid>
		<description><![CDATA[Como ya conté me fui a la Campus Party gracias a las invitaciones que Clara Rivera repartía en Programa con Google junto con tres compañeros más de Flowers In Space.
Además aprovechando de que me estaba montando un pequeño servidor para trastear decidí llevármelo para poder tenerlo descargando a su ritmo y sin tener de que [...]]]></description>
			<content:encoded><![CDATA[<p>Como ya conté me fui a la <a href="http://ceritium.net/category/campus-party-2008/">Campus Party</a> gracias a las invitaciones que <strong>Clara Rivera</strong> repartía en <a href="http://programa-con-google.blogspot.com/2008/07/google-en-la-campus-party.html">Programa con Google</a> junto con tres compañeros más de <a href="http://flowersinspace.com/">Flowers In Space</a>.</p>
<p>Además aprovechando de que me estaba montando un pequeño servidor para trastear decidí llevármelo para poder tenerlo descargando a su ritmo y sin tener de que se nos &#8220;despisten&#8221; los portátiles.</p>
<p>Para ello encontré el cliente de <a href="http://es.wikipedia.org/wiki/Direct_Connect">Direct Connect</a> para consola <a href="http://corsair626.no-ip.org/microdc/">MicroDC 2</a> que aunque al final me dio todo lo que buscaba no estuvo a punto la cosa hasta el jueves&#8230;</p>
<p>Uno de los problemas era que cuando cerrabas el programa tenías que volver a introducir todos los datos, para ello existe el archivo de configuración en el que puedes meter los datos manualmente y al arrancar el los leerá. Pero el mayor problema era que al cortar la conexión SSH el cliente se cerraba&#8230; por lo que perdía la gracia del servidor.</p>
<p>Por esto buscamos otras alternativas que corrieran como demonios como <a href="http://es.wikipedia.org/wiki/MLDonkey">Mlnet</a> pero la documentación existente sobre el plugin de Direct Connect para Mlnet es casi inexistente, es más, la documentación oficial es el extracto de una charla en el IRC.</p>
<p>Afortunadamente al final encontré <a href="http://www.polinux.upv.es/drupal/node/796">Screen</a> que resolvió todos mis problemas evitando que se cerrara microDC 2 cuando se cortaba la conexión SSH.</p>
<p>Con todo esto una pega final es la falta de usabilidad del cliente que quizás podría mejorarse con scripts que lean el fichero de log. Yo me apañe con un simple &#8220;tail -f&#8221;.</p>
<p><strong>Nota:</strong> Al final bajé unos 120 gigas en películas y series. Para el año que viene ya lo tengo todo listo desde el primer día.</p>

<p><a href="http://feeds.feedburner.com/~a/ceritium?a=JYXn2E"><img src="http://feeds.feedburner.com/~a/ceritium?i=JYXn2E" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/ceritium?a=1dRhFK"><img src="http://feeds.feedburner.com/~f/ceritium?i=1dRhFK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ceritium?a=XzOw3K"><img src="http://feeds.feedburner.com/~f/ceritium?i=XzOw3K" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ceritium?a=lJvqyk"><img src="http://feeds.feedburner.com/~f/ceritium?i=lJvqyk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ceritium/~4/360456774" height="1" width="1"/>
<p><a href="http://feedads.googleadservices.com/~a/26RdYdYVzwx0kXkXgSzW2sVrdDg/a"><img src="http://feedads.googleadservices.com/~a/26RdYdYVzwx0kXkXgSzW2sVrdDg/i" border="0" ismap="true"></img></a></p><img src="http://feedproxy.google.com/~r/ceritiumNet/~4/BRChbRnC09o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ceritium.net/405/software-libre/linux/microdc-2-direct-connect-para-consola/feed/</wfw:commentRss>
		<feedburner:origLink>http://ceritium.net/405/software-libre/linux/microdc-2-direct-connect-para-consola/</feedburner:origLink><feedburner:origLink>http://feeds.feedburner.com/~r/ceritium/~3/360456774/</feedburner:origLink></item>
		<item>
		<title>Servidor Linux Ubuntu Server</title>
		<link>http://feedproxy.google.com/~r/ceritiumNet/~3/DvHt3Ob1SdU/</link>
		<comments>http://ceritium.net/401/software-libre/linux/servidor-linux-ubuntu-server/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 22:45:37 +0000</pubDate>
		<dc:creator>Ceritium</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<category><![CDATA[forat]]></category>

		<category><![CDATA[ftp]]></category>

		<category><![CDATA[lamp]]></category>

		<category><![CDATA[ubuntu server]]></category>

		<category><![CDATA[ubuntu servidor]]></category>

		<guid isPermaLink="false">http://ceritium.net/?p=401</guid>
		<description><![CDATA[
Si esperabas que te preparara una guía completa para montar un servidor con Linux Ubuntu Server estabas equivocado, más que nada porque nunca he montado uno exceptuando los típicos servidores que montamos para el desarrollo de las aplicaciones web.
Pero tranquilo que gracias a Forat podrás aprender a montar desde cero un servidor Linux Ubuntu Server [...]]]></description>
			<content:encoded><![CDATA[<div align="center"><a href="http://www.flickr.com/photos/jsgotangco/126410755/"><img src="http://ceritium.net/wp-content/uploads/2008/07/ubuntu-server.jpg" alt="" title="ubuntu-server" width="500" height="375" class="alignnone size-full wp-image-402" /></a></div>
<p>Si esperabas que te preparara una <strong>guía completa</strong> para montar un <strong>servidor con Linux Ubuntu Server</strong> estabas equivocado, más que nada porque nunca he montado uno exceptuando los típicos servidores que montamos para el desarrollo de las aplicaciones web.</p>
<p>Pero tranquilo que gracias a <a href="http://www.forat.info">Forat</a> podrás aprender a montar desde cero un servidor <a href="http://www.ubuntu.com/products/whatisubuntu/serveredition">Linux Ubuntu Server</a> en alguna máquina que tengas tirada por casa. Por supuesto estos conocimientos seguro que te podrán servir para montar cosas más serias en el futuro con esta u otra distro.</p>
<p>Personalmente en cuanto me establezca en el nuevo piso en Sevilla seguiré la guía, que aunque no creo que desvele grandes secretos nos ayuda a cumplir nuestros objetivos de forma sencilla. Llevo todo el verano desde que estoy en <a href="http://ceritium.net/category/viajes/inglaterra-08/">Brighton</a> pensando en montarme una máquina para trastear con el tema de servidores, sobre todo pensando en <a href="http://ceritium.net/category/programacion/rails/">Ruby on Rails</a>, que cada día parece que salen nuevas cosas.</p>
<p>Hasta le fecha podemos encontrar 7 volúmenes publicados en <strong>Forat</strong> para montar nuestro <a href="http://www.forat.info/2008/06/30/te-gustaria-tener-un-servidor-en-linux-ubuntu-server/">servidor Linux Ubuntu Server</a>:</p>
<ul>
<li><a href="http://www.forat.info/2008/07/04/servidor-en-linux-ubuntu-server-vol-1-hardware/">Hardware</a></li>
<li><a href="http://www.forat.info/2008/07/07/servidor-en-linux-ubuntu-server-vol-2-sistema-operativo/">Sistema Operativo</a></li>
<li><a href="http://www.forat.info/2008/07/10/servidor-en-linux-ubuntu-server-vol-3-configuracion-de-red/">Configuración de Red</a>, a destacar</li>
<li><a href="http://www.forat.info/2008/07/13/servidor-en-linux-ubuntu-server-vol-4-web-server-lamp/">Servidor Web LAMP</a>, el complemento perfecto sería prepararlo también para Rails</li>
<li><a href="http://www.forat.info/2008/07/16/servidor-en-linux-ubuntu-server-vol-5-ftp-server/">Servidor FTP</a></li>
<li><a href="http://www.forat.info/2008/07/19/servidor-en-linux-ubuntu-server-vol-6-dominios/">Dominios para IP´s dinámicas</a>, usando NO-IP</li>
<li><a href="http://www.forat.info/2008/07/22/servidor-en-linux-ubuntu-server-vol-7-estadisticas-hardware/">Estadísticas</a></li>
</ul>

<p><a href="http://feeds.feedburner.com/~a/ceritium?a=MKZeFf"><img src="http://feeds.feedburner.com/~a/ceritium?i=MKZeFf" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/ceritium?a=Nxk3ZJ"><img src="http://feeds.feedburner.com/~f/ceritium?i=Nxk3ZJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ceritium?a=tx5mVJ"><img src="http://feeds.feedburner.com/~f/ceritium?i=tx5mVJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ceritium?a=EGangj"><img src="http://feeds.feedburner.com/~f/ceritium?i=EGangj" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ceritium/~4/343996585" height="1" width="1"/>
<p><a href="http://feedads.googleadservices.com/~a/c6gWseepczHfW3ZDSW172O6YZ6s/a"><img src="http://feedads.googleadservices.com/~a/c6gWseepczHfW3ZDSW172O6YZ6s/i" border="0" ismap="true"></img></a></p><img src="http://feedproxy.google.com/~r/ceritiumNet/~4/DvHt3Ob1SdU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ceritium.net/401/software-libre/linux/servidor-linux-ubuntu-server/feed/</wfw:commentRss>
		<feedburner:origLink>http://ceritium.net/401/software-libre/linux/servidor-linux-ubuntu-server/</feedburner:origLink><feedburner:origLink>http://feeds.feedburner.com/~r/ceritium/~3/343996585/</feedburner:origLink></item>
		<item>
		<title>Qué llevar a la Campus Party</title>
		<link>http://feedproxy.google.com/~r/ceritiumNet/~3/wedYaMcPOYs/</link>
		<comments>http://ceritium.net/395/campus-party-2008/que-llevar-a-la-campus-party/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 22:36:20 +0000</pubDate>
		<dc:creator>Ceritium</dc:creator>
		
		<category><![CDATA[Campus Party 2008]]></category>

		<category><![CDATA[campus party]]></category>

		<category><![CDATA[consejos]]></category>

		<category><![CDATA[equipaje]]></category>

		<guid isPermaLink="false">http://ceritium.net/?p=395</guid>
		<description><![CDATA[


Tras mi experiencia el del año pasado en la Campus Party puedo hacer un pequeño resumen de las cosas que deberías llevar a la Campus Party, aunque claro está todo dependerá de lo que pienses hacer allí:

Un ordenador, en mi caso mi MacBook me va de sobra, pero se eres jugón y vas a la [...]]]></description>
			<content:encoded><![CDATA[<div align="center">
<img src="http://ceritium.net/wp-content/uploads/2008/07/campus-party.gif" alt="" title="campus-party" width="154" height="74" class="alignnone size-full wp-image-396" />
</div>
<p>Tras mi experiencia el del año pasado en la <a href="http://ceritium.net/category/campus-party-2007/">Campus Party</a> puedo hacer un pequeño resumen de las cosas que deberías llevar a la <strong>Campus Party</strong>, aunque claro está todo dependerá de lo que pienses hacer allí:</p>
<ul>
<li>Un ordenador, en mi caso mi MacBook me va de sobra, pero se eres jugón y vas a la <a href="http://www.campus-party.org/">Campus Party</a> lo más seguro es que tengas una super maquina preparada, por descontado está que se que te lo llevarás.</li>
<li>Un buen disco duro, aunque tu objetivo no sea dedicarte a descargar toda la semana seguro que hay algo que quieras bajarte, para conectarte al servidor de <a href="http://es.wikipedia.org/wiki/Direct_Connect">Direct Connect </a>el año pasado era necesario compartir como mínimo 30GB, así que los que vamos con portátiles normalmente la mejor opción es llevarse un disco duro USB externo, que aunque son más lentos hacen el apaño.</li>
<li>Unos buenos cascos, parece una tontería pero llevarse una semana sin poder oír tu propio ordenador puedes ser pesado, desde no poder oír tu música favorita, escuchar juegos o películas o comprobar y si está bien lo que te has bajado. Recuerda que en la <strong>Campus Party</strong> está prohibido poner los altavoces.</li>
<li>A menos que Google te de una de sus tiendas tendrás que llevarte la tuya propia, pero por encima de eso lo mas importante es tener un buen colchón donde dormir, los hinchables gigantes pueden ser una buena solución.</li>
<li>No olvides tu cámara ya sea de foto o vídeo.</li>
<li>Y sobre todo lo más importante, ¡¡¡lleva todos tus cables!!!</li>
</ul>
<p>¿Sé me olvida algo?  Bueno si, algo de ropa warretes, toallas, etc&#8230;<br />
Para eso dejad que vuestra madre os haga la maleta, luego sacad todo lo necesario para que os quepa mi lista anterior y tras esto ya podéis sacar dos prendas más de cada tipo.</p>
<p><strong><br />
Nota:</strong> No puedo asegurar cuanto fue el año pasado, pero este año todo indica que serán 15GB a compartir.</p>

<p><a href="http://feeds.feedburner.com/~a/ceritium?a=K8UhnL"><img src="http://feeds.feedburner.com/~a/ceritium?i=K8UhnL" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/ceritium?a=G4rKrJ"><img src="http://feeds.feedburner.com/~f/ceritium?i=G4rKrJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ceritium?a=MhlkAJ"><img src="http://feeds.feedburner.com/~f/ceritium?i=MhlkAJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ceritium?a=A477sj"><img src="http://feeds.feedburner.com/~f/ceritium?i=A477sj" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ceritium/~4/342966984" height="1" width="1"/>
<p><a href="http://feedads.googleadservices.com/~a/S5w3kDP6XSDaz6BibyJnD_PfAf0/a"><img src="http://feedads.googleadservices.com/~a/S5w3kDP6XSDaz6BibyJnD_PfAf0/i" border="0" ismap="true"></img></a></p><img src="http://feedproxy.google.com/~r/ceritiumNet/~4/wedYaMcPOYs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ceritium.net/395/campus-party-2008/que-llevar-a-la-campus-party/feed/</wfw:commentRss>
		<feedburner:origLink>http://ceritium.net/395/campus-party-2008/que-llevar-a-la-campus-party/</feedburner:origLink><feedburner:origLink>http://feeds.feedburner.com/~r/ceritium/~3/342966984/</feedburner:origLink></item>
	</channel>
</rss>
