<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>A cuadros</title>
	<atom:link href="http://blog.rastersoft.com/?feed=rss2&#038;p=668" rel="self" type="application/rss+xml" />
	<link>http://blog.rastersoft.com</link>
	<description>El único blog con camisa de leñador</description>
	<lastBuildDate>Sun, 28 Apr 2013 19:32:51 +0000</lastBuildDate>
	<language>es-ES</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Autovala y Gedit (y Gnome 3.8)</title>
		<link>http://blog.rastersoft.com/?p=1165</link>
		<comments>http://blog.rastersoft.com/?p=1165#comments</comments>
		<pubDate>Sun, 28 Apr 2013 19:31:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Nueva versión]]></category>

		<guid isPermaLink="false">http://blog.rastersoft.com/?p=1165</guid>
		<description><![CDATA[Acabo de subir la versión 0.16 de Autovala. La gran novedad es la inclusión de un plugin para Gedit, que permite trabajar fácilmente con proyectos en Autovala. Esta versión se puede considerar definitiva, así que a partir de ahora, en principio, y salvo que me envíen alguna idea loca y maravillosa que añadir, Autovala pasa [...]]]></description>
				<content:encoded><![CDATA[<p>Acabo de subir la versión 0.16 de Autovala. La gran novedad es la inclusión de un plugin para Gedit, que permite trabajar fácilmente con proyectos en Autovala.</p>
<p>Esta versión se puede considerar definitiva, así que a partir de ahora, en principio, y salvo que me envíen alguna idea loca y maravillosa que añadir, Autovala pasa a modo &#8220;mantenimiento&#8221;, subiendo sólo parches.</p>
<p>También actualicé mis extensiones de Gnome Shell para que funcionen con la versión 3.8, con lo que me considero libre para nuevos proyectos.</p>
<div id="fcbk_share"><div class="fcbk_like">
										<div id="fb-root"></div>
										<script src="http://connect.facebook.net/es_ES/all.js#appId=224313110927811&amp;xfbml=1"></script>
										<fb:like href="http://blog.rastersoft.com/?p=1165" send="false" layout="button_count" width="450" show_faces="false" font=""></fb:like>
									</div></div>]]></content:encoded>
			<wfw:commentRss>http://blog.rastersoft.com/?feed=rss2&#038;p=1165</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hito en Autovala</title>
		<link>http://blog.rastersoft.com/?p=1162</link>
		<comments>http://blog.rastersoft.com/?p=1162#comments</comments>
		<pubDate>Sun, 07 Apr 2013 10:00:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Nueva versión]]></category>

		<guid isPermaLink="false">http://blog.rastersoft.com/?p=1162</guid>
		<description><![CDATA[Acabo de subir al repositorio la versión 0.10.0 de Autovala  y creo que supone un hito importante, porque con ella he cubierto todas las ideas iniciales que tenía. La principal, y más difícil, es la de incluir en un mismo proyecto un ejecutable y una biblioteca, y que ese ejecutable se enlace con dicha biblioteca, [...]]]></description>
				<content:encoded><![CDATA[<p>Acabo de subir al repositorio la versión 0.10.0 de <a href="http://www.rastersoft.com/programas/autovala_es.html" target="_blank">Autovala</a>  y creo que supone un hito importante, porque con ella he cubierto todas las ideas iniciales que tenía. La principal, y más difícil, es la de incluir en un mismo proyecto un ejecutable y una biblioteca, y que ese ejecutable se enlace con dicha biblioteca, todo de manera automática y sencilla.</p>
<p>Ahora me queda descubrir como trabaja <a href="http://www.linuxfromscratch.org/blfs/view/svn/general/intltool.html" target="_blank">intltool-extract e intltool-merge</a> con las entradas <a href="http://standards.freedesktop.org/desktop-entry-spec/latest/" target="_blank">.desktop</a>, para permitir la traducción sencilla en estos casos, y ver como mezclar ficheros .c con .vala. También la idea de integrarlo en Gedit, pero eso con mucha más calma.</p>
<div id="fcbk_share"><div class="fcbk_like">
										<div id="fb-root"></div>
										<script src="http://connect.facebook.net/es_ES/all.js#appId=224313110927811&amp;xfbml=1"></script>
										<fb:like href="http://blog.rastersoft.com/?p=1162" send="false" layout="button_count" width="450" show_faces="false" font=""></fb:like>
									</div></div>]]></content:encoded>
			<wfw:commentRss>http://blog.rastersoft.com/?feed=rss2&#038;p=1162</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simplificando Vala y CMake</title>
		<link>http://blog.rastersoft.com/?p=1156</link>
		<comments>http://blog.rastersoft.com/?p=1156#comments</comments>
		<pubDate>Fri, 05 Apr 2013 18:08:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Nueva versión]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://blog.rastersoft.com/?p=1156</guid>
		<description><![CDATA[He estado tres semanas currando sin parar en mi trabajo-que-paga-las-facturas, y aunque no pude disfrutar ni findes ni vacaciones (¡Gracias, gracias, ministros que pusieron la fecha de entrega de los innterconecta para justo después de semana santa! ¡Así os salga un cardo en el sobaco!), sí pude aprovechar algunos ratos muertos en casita para hacer [...]]]></description>
				<content:encoded><![CDATA[<p>He estado tres semanas currando sin parar en mi <em>trabajo-que-paga-las-facturas</em>, y aunque no pude disfrutar ni findes ni vacaciones (<em>¡Gracias, gracias, ministros que pusieron la fecha de entrega de los<a href="http://www.cdti.es/index.asp?MP=7&amp;MS=577&amp;MN=3" target="_blank"> innterconecta</a> para justo después de semana santa! ¡Así os salga un cardo en el sobaco!</em>), sí pude aprovechar algunos ratos muertos en casita para hacer un proyectillo personal: <a href="http://www.rastersoft.com/programas/autovala_es.html" target="_blank">Autovala</a>.</p>
<p>La idea detrás de Autovala surgió de casualidad de una lista de correo: un usuario se quejaba de que trabajar con <a href="http://www.cmake.org/" target="_blank">CMake</a> era muy pesado, y que obligar a usarlo para los proyectos de la lista sólo conseguía reducir la cantidad de desarrolladores que estarían dispuestos a colaborar. Y la verdad es que tiene algo de razón: empezar un proyecto nuevo con CMake es una tarea realmente aburrida, por la sencilla razón de que es muy repetitiva.</p>
<p>Pero cuando una tarea es repetitiva&#8230; es ideal para que la haga una máquina. Así que mi idea fue: ¿por qué no dejar que sea el propio ordenador quien genere de manera automática los ficheros CMake?</p>
<p>Y esa es, precisamente, la idea detrás de Autovala: generar de manera automática todos los ficheros para CMake, en base a una serie de heurísticos. Así, por defecto, todos los ficheros <em>.vala</em> que haya en el directorio <em>src</em> (o subdirectorios dentro de él) se compilarán juntos para hacer un único binario. Además, añadirá automáticamente los paquetes necesarios para cada fichero, para lo que echa un vistazo a las directivas <em>using</em> del propio código. Lo mismo para otros elementos: por ejemplo, para los iconos comprobará qué tamaño tienen y, en base a ello, decidirá automáticamente en qué carpeta deben ir. Y más, mucho más.</p>
<p>Por supuesto, es posible añadir excepciones <em>a mano</em> para ajustar aquellas cosas en las que las reglas no funcionen bien; por ejemplo, si lo que queremos es generar una biblioteca, o si nuestro proyecto está compuesto de varios ejecutables. La ventaja en estos casos es que sólo hay que hacer eso: indicarle que queremos que sean dos, tres, o los que sean, ejecutables y donde buscar las fuentes; autovala seguirá haciendo el resto automáticamente (buscar paquetes necesarios, etc). Además, los cambios que haga el usuario se recuerdan, por lo que si se añaden o eliminan ficheros, basta con recrear el fichero de proyecto, y se tendrán en cuenta todas las excepciones hechas antes.</p>
<p>Obviamente Autovala no sirve para todos los proyectos, pero sí para la gran mayoría, que es lo interesante.</p>
<div id="fcbk_share"><div class="fcbk_like">
										<div id="fb-root"></div>
										<script src="http://connect.facebook.net/es_ES/all.js#appId=224313110927811&amp;xfbml=1"></script>
										<fb:like href="http://blog.rastersoft.com/?p=1156" send="false" layout="button_count" width="450" show_faces="false" font=""></fb:like>
									</div></div>]]></content:encoded>
			<wfw:commentRss>http://blog.rastersoft.com/?feed=rss2&#038;p=1156</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clonando Elementary OS en Gnome Shell</title>
		<link>http://blog.rastersoft.com/?p=1149</link>
		<comments>http://blog.rastersoft.com/?p=1149#comments</comments>
		<pubDate>Sun, 24 Feb 2013 17:14:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Nueva versión]]></category>

		<guid isPermaLink="false">http://blog.rastersoft.com/?p=1149</guid>
		<description><![CDATA[Pues eso es lo que he estado haciendo fundamentalmente este mes, porque poquito a poquito, slingshot_app_launcher para Gnome Shell ya funciona exactamente igual que la versión original de Elementary OS: no sólo permite escoger entre mostrar por categorías o todo junto, sino también buscar aplicaciones tecleando su nombre. Además, he corregido algunos bugs en el [...]]]></description>
				<content:encoded><![CDATA[<p>Pues eso es lo que he estado haciendo fundamentalmente este mes, porque poquito a poquito,<a href="http://www.rastersoft.com/programas/slingshot_es.html" target="_blank"> slingshot_app_launcher para Gnome Shell</a> ya funciona exactamente igual que la <a href="http://www.webupd8.org/2011/02/slingshot-app-launcher-new-dock-created.html" target="_blank">versión original de Elementary OS</a>: no sólo permite escoger entre mostrar por categorías o todo junto, sino también buscar aplicaciones tecleando su nombre. Además, he corregido algunos bugs en el tamaño de la ventana (también funciona en monitores pequeños), y lo he hecho mucho más compatible con los CSS de Gnome Shell, de manera que si cambias el estilo (o tema), el menú se ajustará a éste.</p>
<p>Por otro lado, aproveché también para subir la última versión de <a href="http://www.rastersoft.com/programas/btwebtv_es.html" target="_blank">Transmission para WebTV</a>, donde únicamente actualicé la versión de transmission a la última, la 2.77.</p>
<div id="fcbk_share"><div class="fcbk_like">
										<div id="fb-root"></div>
										<script src="http://connect.facebook.net/es_ES/all.js#appId=224313110927811&amp;xfbml=1"></script>
										<fb:like href="http://blog.rastersoft.com/?p=1149" send="false" layout="button_count" width="450" show_faces="false" font=""></fb:like>
									</div></div>]]></content:encoded>
			<wfw:commentRss>http://blog.rastersoft.com/?feed=rss2&#038;p=1149</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gnome-shell a mi gusto</title>
		<link>http://blog.rastersoft.com/?p=1146</link>
		<comments>http://blog.rastersoft.com/?p=1146#comments</comments>
		<pubDate>Wed, 23 Jan 2013 19:50:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://blog.rastersoft.com/?p=1146</guid>
		<description><![CDATA[Acabo de encontrar la última extensión que me faltaba: TopIcons. Con ella, los iconos de aplicaciones aparecen en la barra superior, como en el resto de escritorios. Ahora sí puedo decir que tengo Gnome Shell como yo quiero.]]></description>
				<content:encoded><![CDATA[<p>Acabo de encontrar la última extensión que me faltaba: <a href="https://extensions.gnome.org/extension/495/topicons/" target="_blank">TopIcons</a>. Con ella, los iconos de aplicaciones aparecen en la barra superior, como en el resto de escritorios.</p>
<p>Ahora sí puedo decir que tengo Gnome Shell como yo quiero.</p>
<div id="fcbk_share"><div class="fcbk_like">
										<div id="fb-root"></div>
										<script src="http://connect.facebook.net/es_ES/all.js#appId=224313110927811&amp;xfbml=1"></script>
										<fb:like href="http://blog.rastersoft.com/?p=1146" send="false" layout="button_count" width="450" show_faces="false" font=""></fb:like>
									</div></div>]]></content:encoded>
			<wfw:commentRss>http://blog.rastersoft.com/?feed=rss2&#038;p=1146</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cronopete, WebTV y Gnome Shell</title>
		<link>http://blog.rastersoft.com/?p=1134</link>
		<comments>http://blog.rastersoft.com/?p=1134#comments</comments>
		<pubDate>Sun, 20 Jan 2013 21:24:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Nueva versión]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://blog.rastersoft.com/?p=1134</guid>
		<description><![CDATA[Desde mi última entrada hasta hoy he hecho unas cuantas cositas, pero no las comenté por aquí por falta de tiempo. Y dado que al final no se ha acabado el mundo, vamos a retomar las buenas costumbres. En primer lugar, lancé una nueva versión de Cronopete, la 3.6.0, que justo hoy actualicé a la [...]]]></description>
				<content:encoded><![CDATA[<p>Desde mi última entrada hasta hoy he hecho unas cuantas cositas, pero no las comenté por aquí por falta de tiempo. Y dado que al final no se ha acabado el mundo, vamos a retomar las buenas costumbres.</p>
<p>En primer lugar, lancé una nueva versión de Cronopete, la 3.6.0, que justo hoy actualicé a la 3.8.1. El principal cambio ha sido un lifting de la interfaz de restauración de ficheros, además de incluir paquetes .deb con las versiones GTK2 y GTK3.</p>
<p>Por otro lado, lancé una nueva versión de Transmission para WebTV, la 5.0. En ella, además de incluir la última versión de Transmission, he recompilado todas las bibliotecas desde cero para tener las más recientes y he sustituido el viejo periscope por mi versión modificada de <a href="https://github.com/blazt/submarine" target="_blank">submarine</a>. Ahora, por fin, vuelven a funcionar los subtítulos. Por desgracia, el autor aún no ha mezclado mis cambios con su rama, así que le he escrito y estoy esperando su respuesta.</p>
<p>Por último, he vuelto a Gnome Shell desde Elementary. El motivo es que necesito tener iconos en el escritorio, y de la forma que trabaja Gala (el gestor de ventanas de Elementary) no es nada cómodo hacerlo: cada vez que un escritorio virtual se queda sin ventanas abiertas, se mueve al anterior automáticamente. Aunque en Gnome Shell ocurre algo parecido (cambia a modo <em>Actividades</em> u <em>Overview</em>) tiene la ventaja de que se pueden añadir extensiones de manera relativamente sencilla. Pero a la vez echaba de menos algunas características de Elementary, así que me lié la manta a la cabeza y escribí dos:</p>
<ul>
<li><a href="http://www.rastersoft.com/programas/slingshot_es.html" target="_blank">Slingshot</a>: se trata de un clon para Gnome Shell del menú lanzador de aplicaciones de Elementary.</li>
<li><a href="http://www.rastersoft.com/programas/avoidoverview_es.html" target="_blank">AvoidOverview</a>: elimina, precisamente, el molesto cambio de modo cuando se cierran todas las ventanas de un escritorio, pero permitiendo que se siga accediendo mediante los <em>hotspots</em>, el botón de <em>Actividades</em>, o la tecla <em>windows</em>.</li>
</ul>
<p>Reconozco que la elección de JavaScript para crear Gnome Shell me resultaba curiosa al principio, pero ahora que he escrito estas dos extensiones puedo entender los motivos: gracias a la técnica de <a href="http://en.wikipedia.org/wiki/Monkey_patch" target="_blank">Monkey Patch</a>, es posible cambiar el funcionamiento de cualquier parte del escritorio sin necesidad de modificar los fuentes originales, porque JavaScript permite modificar <em>en caliente</em> los métodos de un objeto. Esto no es necesario cuando simplemente se quiere hacer un módulo sencillo que incluya un menú, un icono, un botón, etc. pues para ello existe una API muy bien definida. Este es el caso de <strong>Slingshot</strong>, que no necesita ninguna de estas técnicas.</p>
<p>Sin embargo, para cambiar la forma en que responde el escritorio en funciones muy internas, como hace <strong>AvoidOverview</strong>, no queda más remedio que usarlas. Y aunque reconozco la potencia y versatilidad que ofrecen, tengo que decir que no me gustan demasiado, porque no puedo evitar ver el resultado como <em>sucio</em>. La apariencia no es la de un módulo que se enchufa en un punto específico mediante una interfaz bien definida, sino la de un parche aplicado con cinta aislante, cortando pistas del circuito impreso, y sujetando todo con una brida.</p>
<p>Pese a todo, en conjunto creo que el resultado ha sido acertado, porque de limitarnos exclusivamente a una API para módulos, probablemente no se podría jamás incorporar un cambio en algo tan profundo como esto. No olvidemos la postura de Gnome de reducir al mínimo las opciones de configuración del escritorio: no creo que aceptasen ni cambiar en la rama oficial el funcionamiento del modo <em>Overview</em>, ni incluir la opción de configurarlo.</p>
<p>Esto le da un nuevo sentido a un comentario que leí sobre <em>Gala</em>, el gestor de ventanas de <em>Elementary OS</em>, que también está basado en la tecnología de Gnome 3 (y que, por desgracia, no recuerdo <em>donde</em> la leí). Venía a decir que lo importante no es tanto el escritorio en sí, sino la tecnología que hay debajo, con mutter y demás, porque con ella se pueden hacer nuevos escritorios con facilidad, como es el caso de <em>Gala</em> o <em>Cinnamon</em>. Y así es: no hace falta que en la rama principal se añadan todas las opciones imaginables, porque es perfectamente posible modificar el funcionamiento interno con bastante facilidad, y simplemente añadiendo unas cuantas extensiones se puede cambiar de arriba a abajo la forma de trabajar del sistema.</p>
<p>Para aquellos que quieran saber cual ha sido mi elección, comentar que, además de <em>Avoid</em><em>Overview</em> y <em>Slingshot</em>, tengo las siguientes extensiones:</p>
<ul>
<li><a href="https://extensions.gnome.org/extension/97/coverflow-alt-tab/" target="_blank">Coverflow Alt-tab</a>: cambia el funcionamiento de las teclas Alt+Tab por un cambiador al estilo <em>cover-flow</em>, además de mostrar sólo las ventanas del escritorio actual.</li>
<li><a href="https://extensions.gnome.org/extension/79/hide-dash/" target="_blank">Hide Dash</a>: elimina el dash (barra de aplicaciones situada a la izquierda). Lo tengo porque prefiero tener <a href="http://wiki.go-docky.com/index.php?title=Plank:Introduction" target="_blank">plank</a> en la parte baja de la pantalla.</li>
<li><a href="https://extensions.gnome.org/extension/118/no-topleft-hot-corner/" target="_blank">No top-left hot corner</a>: desactiva el <em>hotspot</em> de arriba a la izquierda, que permite entrar en el modo <em>Overview</em>. Necesario porque, si no, es muy fácil que se active cuando se intenta lanzar una aplicación desde <em>Slingshot</em>.</li>
<li><a href="https://extensions.gnome.org/extension/112/remove-accesibility/" target="_blank">Remove Accesibility</a>: elimina el icono de configuración de la accesibilidad. Cabe señalar que es la extensión más descargada para Gnome Shell&#8230; por algo será <img src='http://blog.rastersoft.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ul>
<p>A mayores también tengo <a href="https://extensions.gnome.org/extension/120/system-monitor/" target="_blank">System-Monitor </a>y <a href="https://extensions.gnome.org/extension/29/workspace-navigator/" target="_blank">Workspace navigator</a>, pero esas ya son por gusto propio. Con estas extensiones, y activando <em>Nautilus</em> para que gestione los iconos del escritorio, he podido darle la vuelta por completo a la forma de trabajar de Gnome Shell, ajustándolo exactamente a como yo lo quiero.</p>
<div id="fcbk_share"><div class="fcbk_like">
										<div id="fb-root"></div>
										<script src="http://connect.facebook.net/es_ES/all.js#appId=224313110927811&amp;xfbml=1"></script>
										<fb:like href="http://blog.rastersoft.com/?p=1134" send="false" layout="button_count" width="450" show_faces="false" font=""></fb:like>
									</div></div>]]></content:encoded>
			<wfw:commentRss>http://blog.rastersoft.com/?feed=rss2&#038;p=1134</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subtitulando</title>
		<link>http://blog.rastersoft.com/?p=1126</link>
		<comments>http://blog.rastersoft.com/?p=1126#comments</comments>
		<pubDate>Thu, 15 Nov 2012 22:21:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Nueva versión]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://blog.rastersoft.com/?p=1126</guid>
		<description><![CDATA[Estos días estoy liado buscando alternativas a periscope para bajar subtítulos de manera automática. El motivo es que no es un proyecto que esté siendo mantenido de manera razonable. De casualidad encontré subliminal, un programa similar pero con más fuentes de subtítulos, y decidí echarle un ojo. La verdad es que funciona muy bien, pero [...]]]></description>
				<content:encoded><![CDATA[<p>Estos días estoy liado buscando alternativas a <a href="http://code.google.com/p/periscope/" target="_blank">periscope</a> para bajar subtítulos de manera automática. El motivo es que no es un proyecto que esté siendo mantenido de manera razonable.</p>
<p>De casualidad encontré <a href="http://subliminal.readthedocs.org/en/latest/" target="_blank">subliminal</a>, un programa similar pero con más fuentes de subtítulos, y decidí echarle un ojo. La verdad es que funciona muy bien, pero tiene el inconveniente de que, al igual que periscope, está escrito en python, lo que significa que hay que meter una máquina virtual completa en mi WebTV.</p>
<p>Pero de casualidad encontré <a href="https://github.com/blazt/submarine" target="_blank">submarine</a>, otro programa similar pero escrito en Vala, lo que significa que puedo compilarlo en un ejecutable y ahorrarme todo el interprete de python. Por desgracia, este sólo soporta búsquedas en <a href="http://www.opensubtitles.org" target="_blank">OpenSubtitles.org</a> y en <a href="http://www.podnapisi.net" target="_blank">Podnapisi.net</a>. Sin embargo, su modelo interno es tan sumamente sencillo que he conseguido añadir soporte para <a href="http://thesubdb.com/" target="_blank">SubDB</a> (el cual <a href="https://github.com/rastersoft/submarine" target="_blank">ya está subido a mi repositorio GIT personal</a> y solicitado un commit al oficial).</p>
<p>Extraoficialmente también he conseguido implementar soporte para <a href="http://www.bierdopje.com/" target="_blank">BierDopje</a>, pero ese código todavía no lo puedo subir porque sigo a la espera de que me concedan una clave específica para la API (en estos momentos estoy usando <em>prestada</em> la de <strong>subliminal</strong>, pero cada aplicación tiene que usar la suya propia).</p>
<p>El uso de este portal tiene su complicación, en buena medida porque mientras que SubDB utiliza un hash del archivo para buscar subtítulos, BierDopje pide el nombre de la serie, la temporada y el capítulo. En <strong>subliminal</strong> se utiliza la impresionante biblioteca <a href="http://guessit.readthedocs.org/en/latest/" target="_blank">guessit</a>, que, a partir del nombre del fichero, y mediante <a href="http://guessit.readthedocs.org/en/latest/dev/internals.html" target="_blank">una serie de heurísticos</a>, extrae toda la información posible sobre un fichero. Obviamente dicha biblioteca está escrita en python, así que tuve que hacer una versión de andar por casa en Vala. El concepto básico es el mismo (de hecho, fusilé todo lo que pude), pero, al estar hecha en una noche, no es tan precisa. Obviamente acepto parches para mejorarla.</p>
<div id="fcbk_share"><div class="fcbk_like">
										<div id="fb-root"></div>
										<script src="http://connect.facebook.net/es_ES/all.js#appId=224313110927811&amp;xfbml=1"></script>
										<fb:like href="http://blog.rastersoft.com/?p=1126" send="false" layout="button_count" width="450" show_faces="false" font=""></fb:like>
									</div></div>]]></content:encoded>
			<wfw:commentRss>http://blog.rastersoft.com/?feed=rss2&#038;p=1126</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Para jugar bien</title>
		<link>http://blog.rastersoft.com/?p=1120</link>
		<comments>http://blog.rastersoft.com/?p=1120#comments</comments>
		<pubDate>Sat, 10 Nov 2012 22:49:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Nueva versión]]></category>
		<category><![CDATA[Trucos]]></category>

		<guid isPermaLink="false">http://blog.rastersoft.com/?p=1120</guid>
		<description><![CDATA[En la entrada anterior explicaba el problema que supone jugar cuando se utiliza un gestor de ventanas por composición. Este problema se describe con más detalle en los artículos The Cost Of Running Compiz y Mutter Can Cause A Gaming/OpenGL Performance Hit Too. El principal motivo es que los programas no pintan directamente sobre la pantalla, [...]]]></description>
				<content:encoded><![CDATA[<p>En la <a href="http://blog.rastersoft.com/?p=1114" target="_blank">entrada anterior</a> explicaba el <a href="http://phoronix.com/forums/showthread.php?23899-Is-Arch-Linux-Really-Faster-Than-Ubuntu" target="_blank">problema que supone jugar cuando se utiliza un gestor de ventanas por composición</a>. Este problema se describe con más detalle en los artículos <a href="http://www.phoronix.com/scan.php?page=article&amp;item=compiz_speed_test" target="_blank">The Cost Of Running Compiz</a> y <a href="http://www.phoronix.com/scan.php?page=article&amp;item=mutter_composite_hit" target="_blank">Mutter Can Cause A Gaming/OpenGL Performance Hit Too</a>. El principal motivo es que los programas no pintan directamente sobre la pantalla, sino sobre un buffer oculto, y es el gestor de ventanas el que, de manera periódica, copia dicho buffer a la zona visible.</p>
<p>La solución que proponía era aumentar la prioridad del gestor de ventanas y del servidor X, pero dado que es una operación algo liosa para alguien que no tenga unos mínimos conocimientos, decidí hacer un pequeño programa que lo automatizase. Ese programa se llama <a href="http://www.rastersoft.com/programas/gamed_es.html" target="_blank">GAMEd</a>. La esencia es muy sencilla: tenemos una lista de ejecutables almacenada en <em>/etc/gamed.conf</em>. Cada vez que se lanza el gestor de ventanas y el entorno de escritorio, se llama mediante DBus al demonio GAMEd (y si no estaba lanzado, el propio DBus lo lanza como root). Este demonio recorre la lista de procesos actuales, y cambia su prioridad a cada uno que coincida con alguno de la lista. De esta manera es posible asignar prioridades altas desde el espacio de usuario sin abrir un agujero de seguridad, porque sólo se cambiarán aquellos programas autorizados.</p>
<p>El sistema está diseñado para ser completamente transparente: por defecto asigna prioridad -15, pero se puede utilizar el comando <em>renice_gamed</em> para escoger cualquier otra (podría llegarse hasta -20, pero en el código de un programa similar, <a href="http://and.sourceforge.net/highpriostart.c" target="_blank">AutoNICEd, recomienda no hacerlo</a>, así que GAMEd simplemente redondea a -15 si se pone una prioridad mayor). Dicha prioridad se almacena y se utiliza todas las veces que se llame al demonio, hasta que el usuario la vuelva a cambiar si quiere.</p>
<p>Por otro lado se añade un pequeño script en el arranque del escritorio, que llama al demonio. Esto hace que cada vez que se arranque el ordenador y se entre en la sesión, se ajustará de nuevo automáticamente la prioridad de las X y del gestor de ventanas.</p>
<p>Yo lo he probado en <a href="http://elementaryos.org/journal/meet-gala-window-manager" target="_blank">Gala</a> y en <a href="http://www.compiz.org/" target="_blank">Compiz</a> y se nota la diferencia, pero no he podido probarlo en <a href="http://www.gnome.org/gnome-3/" target="_blank">Gnome-Shell</a> por ciertos problemas de compatibilidad de paquetes entre éste y <a href="http://www.elementaryos.org/" target="_blank">Elementary OS</a>.</p>
<p>Así pues, si jugáis regularmente en vuestro equipo Linux y notáis pérdida de rendimiento y de FPS en vuestros juegos, probad a instalar GAMEd y contadme qué tal os ha ido.</p>
<div id="fcbk_share"><div class="fcbk_like">
										<div id="fb-root"></div>
										<script src="http://connect.facebook.net/es_ES/all.js#appId=224313110927811&amp;xfbml=1"></script>
										<fb:like href="http://blog.rastersoft.com/?p=1120" send="false" layout="button_count" width="450" show_faces="false" font=""></fb:like>
									</div></div>]]></content:encoded>
			<wfw:commentRss>http://blog.rastersoft.com/?feed=rss2&#038;p=1120</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Juego elemental</title>
		<link>http://blog.rastersoft.com/?p=1114</link>
		<comments>http://blog.rastersoft.com/?p=1114#comments</comments>
		<pubDate>Mon, 05 Nov 2012 00:28:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Trucos]]></category>

		<guid isPermaLink="false">http://blog.rastersoft.com/?p=1114</guid>
		<description><![CDATA[Llevo una temporadita probando Elementary OS, y tengo que decir que me encanta. Es un concepto de escritorio y sistema operativo que, salvo un par de detalles, encaja como un guante en lo que busco. Tanto es así que estoy asegurándome de que Cronopete esté perfectamente integrado en él. Por otro lado, hace poco descubrí [...]]]></description>
				<content:encoded><![CDATA[<p>Llevo una temporadita probando <a href="http://elementaryos.org/" target="_blank">Elementary OS</a>, y tengo que decir que me encanta. Es un concepto de escritorio y sistema operativo que, salvo un par de detalles, encaja como un guante en lo que busco. Tanto es así que estoy asegurándome de que Cronopete esté perfectamente integrado en él.</p>
<p>Por otro lado, hace poco descubrí <a href="http://limbogame.org/" target="_blank">Limbo</a>, un juego con una ambientación sencillamente impresionante.</p>
<p>Sin embargo, me encontré con que la mezcla de ambos no funcionaba muy bien: había &#8220;saltos&#8221; entre fotogramas, se conseguían muy pocos FPS y había un retardo brutal (casi un segundo) entre la pulsación de una tecla y que el personaje ejecutase la acción correspondiente. Al principio lo achaqué a <a href="http://en.wikipedia.org/wiki/Wine_%28software%29" target="_blank">Wine</a> (es un juego para windows), pero buscando información encontré que al resto de gente le funcionaba perfectamente.</p>
<p>Lo primero que hice fue cambiar del driver privativo de AMD/ATI (<a href="http://en.wikipedia.org/wiki/AMD_Catalyst#Linux" target="_blank">FGLRX</a>) al libre (<a href="http://www.x.org/wiki/radeon" target="_blank">Radeon</a>), y los saltos desaparecieron, pero los bajos FPS y el retardo seguían allí.</p>
<p>Recordé que había una crítica general contra los <a href="http://en.wikipedia.org/wiki/Compositing_window_manager" target="_blank">gestores de ventanas por composición</a> como Compiz, Mutter y KWin, porque tienen que renderizar el contenido de cada ventana cada vez que la aplicación lo cambia. Ante esto, probé a arrancar una sesión de gnome-fallback-session, y allí funcionaba perfectamente, lo que confirmó que el problema estaba en <a href="http://elementaryos.org/journal/meet-gala-window-manager" target="_blank">Gala</a> (el gestor de ventanas de Elementary).</p>
<p>Sin embargo, pensando, llegué a la conclusión de que perfectamente podía deberse al retardo en la conmutación entre tareas, así que decidí probar a asignarle máxima prioridad (-19) tanto al servidor X como a Gala. Para ello usé el comando <em>renice</em> (como root, porque si no, no permite asignar valores negativos, correspondientes a la máxima prioridad). Con eso el problema se resolvió, y el juego funcionó con una suavidad total, igual que si no estuviese utilizando un gestor de ventanas por composición.</p>
<div id="fcbk_share"><div class="fcbk_like">
										<div id="fb-root"></div>
										<script src="http://connect.facebook.net/es_ES/all.js#appId=224313110927811&amp;xfbml=1"></script>
										<fb:like href="http://blog.rastersoft.com/?p=1114" send="false" layout="button_count" width="450" show_faces="false" font=""></fb:like>
									</div></div>]]></content:encoded>
			<wfw:commentRss>http://blog.rastersoft.com/?feed=rss2&#038;p=1114</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Politica-ficcion</title>
		<link>http://blog.rastersoft.com/?p=1090</link>
		<comments>http://blog.rastersoft.com/?p=1090#comments</comments>
		<pubDate>Fri, 19 Oct 2012 20:50:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://blog.rastersoft.com/?p=1090</guid>
		<description><![CDATA[Esta semana he estado haciendo un pequeño experimento de política-ficción. ¿Qué hubiera pasado si, en las elecciones de 2009 a la Xunta, la gente que no votó (o votó en blanco) hubiese dado su voto, de manera aleatoria, a cualquiera de los partidos que no obtuvo ningún escaño? (Nota: el motivo de repartirlos entre los [...]]]></description>
				<content:encoded><![CDATA[<p>Esta semana he estado haciendo un pequeño experimento de política-ficción. ¿Qué hubiera pasado si, en las elecciones de 2009 a la Xunta, la gente que no votó (o votó en blanco) hubiese dado su voto, de manera aleatoria, a cualquiera de los partidos que no obtuvo ningún escaño? (<strong>Nota:</strong> el motivo de repartirlos entre los que no han obtenido escaños, y dejando de lado a los tres grandes -PP, PSdG/PSOE y BNG- es porque asumo que la gente que vota en blanco o no vota lo hace por estar desencantada con los grandes partidos).</p>
<p>Para ello, partí de los resultados publicados en <a href="http://www.lavozdegalicia.es/especiales2009/eleccionesgallegas/2009/02/27/00161235735235346153468.htm" target="_blank">La voz de Galicia del 2 de marzo de 2009</a> y de la <a href="http://es.wikipedia.org/wiki/Elecciones_al_Parlamento_de_Galicia_de_2009" target="_blank">lista de partidos que se presentaron en cada provincia</a>, sacada de la Wikipedia. El proceso consistió en calcular el número de votantes que se abstuvieron a partir de los porcentajes de abstención de cada provincia, sumarle los votos en blanco y los de &#8220;Otros&#8221; partidos, dividir la cantidad entre los partidos que se presentaron en cada provincia, y aplicar D&#8217;Hondt para obtener el número de escaños en cada provincia mediante <a href="http://www.rastersoft.com/blogpic/newhondt.py" target="_blank">un programita en python</a>.</p>
<p>Los resultados globales son éstos: a la izquierda están los resultados reales de 2009, a la derecha, los resultados en caso de que no hubiese habido abstención:</p>
<p><a href="http://blog.rastersoft.com/wp-content/uploads/2012/10/resultados2009.png"><img class="aligncenter size-full wp-image-1091" title="resultados2009" src="http://blog.rastersoft.com/wp-content/uploads/2012/10/resultados2009.png" alt="" width="1015" height="416" /></a></p>
<p>El resultado es, en mi opinión, muy interesante: el PP perdería la mayoría absoluta, y los partidos pequeños (que suelen ser mucho menos corruptos porque los que quieren chupar se van a los grandes, que es donde tienen posibilidad de pillar cacho) se vuelven decisivos.</p>
<p>A continuación, los resultados desglosados por provincias. En Lugo y Ourense sólo hay un gráfico porque los resultados son los mismos, pero en A Coruña y Pontevedra hay una diferencia abismal (pincha sobre cada imágen para ampliarlas):</p>
<p><a href="http://blog.rastersoft.com/wp-content/uploads/2012/10/graficas-elecciones-2009-2.png"><img class="aligncenter size-medium wp-image-1093" title="graficas elecciones 2009 2" src="http://blog.rastersoft.com/wp-content/uploads/2012/10/graficas-elecciones-2009-2-212x300.png" alt="" width="212" height="300" /></a><a href="http://blog.rastersoft.com/wp-content/uploads/2012/10/graficas-elecciones-2009-3.png"><img class="aligncenter size-medium wp-image-1095" title="graficas elecciones 2009 3" src="http://blog.rastersoft.com/wp-content/uploads/2012/10/graficas-elecciones-2009-3-212x300.png" alt="" width="212" height="300" /></a><a href="http://blog.rastersoft.com/wp-content/uploads/2012/10/graficas-elecciones-2009-4.png"><img class="aligncenter size-medium wp-image-1096" title="graficas elecciones 2009 4" src="http://blog.rastersoft.com/wp-content/uploads/2012/10/graficas-elecciones-2009-4-212x300.png" alt="" width="212" height="300" /></a></p>
<p>Aquí está una tabla con los datos originales en los que me basé, obtenidos de La Voz:</p>
<p><a href="http://blog.rastersoft.com/wp-content/uploads/2012/10/tabla_resultados2009.png"><img class="aligncenter size-full wp-image-1098" title="tabla_resultados2009" src="http://blog.rastersoft.com/wp-content/uploads/2012/10/tabla_resultados2009.png" alt="" width="956" height="450" /></a></p>
<p>Y los mismos datos, una vez repartidos los votos en blanco, abstención, y &#8220;otros&#8221;, y el correspondiente cálculo de escaños:</p>
<p><a href="http://blog.rastersoft.com/wp-content/uploads/2012/10/resultados_2009_no_abstencion.png"><img class="aligncenter size-full wp-image-1099" title="resultados_2009_no_abstencion" src="http://blog.rastersoft.com/wp-content/uploads/2012/10/resultados_2009_no_abstencion.png" alt="" width="956" height="290" /></a></p>
<div id="fcbk_share"><div class="fcbk_like">
										<div id="fb-root"></div>
										<script src="http://connect.facebook.net/es_ES/all.js#appId=224313110927811&amp;xfbml=1"></script>
										<fb:like href="http://blog.rastersoft.com/?p=1090" send="false" layout="button_count" width="450" show_faces="false" font=""></fb:like>
									</div></div>]]></content:encoded>
			<wfw:commentRss>http://blog.rastersoft.com/?feed=rss2&#038;p=1090</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
