<?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>alvarezp &#187; Desarrollos</title>
	<atom:link href="http://blog.alvarezp.org/categorias/desarrollos/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.alvarezp.org</link>
	<description>cat &#62;&#62; /dev/blog</description>
	<lastBuildDate>Sun, 20 Jun 2010 03:08:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Superkb 0.21 liberado</title>
		<link>http://blog.alvarezp.org/2010/03/18/superkb-0-21-liberado/</link>
		<comments>http://blog.alvarezp.org/2010/03/18/superkb-0-21-liberado/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 08:07:10 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Español]]></category>
		<category><![CDATA[Gultij]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Software libre]]></category>
		<category><![CDATA[Superkb]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=1011</guid>
		<description><![CDATA[Como se anunció hace algunos días en la lista de correos, Superkb 0.21 ha sido liberado.
Permítanme presentarlo para aquellos que no conozcan aún el proyecto.
Superkb es un lanzador de aplicaciones basado en atajos de teclado con pistas gráficas en pantalla. Está escrito en C usando Xlib con la ayuda de Cairo graphics, Pango, Imlib2, Xinerama, [...]]]></description>
			<content:encoded><![CDATA[<p>Como se anunció hace algunos días en la lista de correos, <a href="http://sourceforge.net/mailarchive/forum.php?thread_name=op.u870g8lu4oyyg1%40localhost.localdomain&#038;forum_name=superkb-devel">Superkb 0.21 ha sido liberado</a>.</p>
<p>Permítanme presentarlo para aquellos que no conozcan aún el proyecto.</p>
<div class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.alvarezp.org/imagenes/superkb/shots/0.20/0.20-msnatural.png"><img title="Teclado Microsoft Natural, pintado por Superkb." src="http://blog.alvarezp.org/imagenes/superkb/shots/0.20/0.20-msnatural-thumb.png" alt="Teclado Microsoft Natural, pintado por Superkb (Cairo, flat_key). Haz clic para ver la imagen completa." width="300" height="277" /></a><p class="wp-caption-text">Teclado Microsoft Natural, pintado por Superkb (Cairo, flat_key)</p></div>
<p><a href="http://superkb.sourceforge.net/">Superkb</a> es un lanzador de aplicaciones basado en atajos de teclado con pistas gráficas en pantalla. Está escrito en C usando Xlib con la ayuda de Cairo graphics, Pango, Imlib2, Xinerama, etc. y con su código fuente manejado con Git.</p>
<p>Algunas de las características de Superkb:</p>
<ul>
<li>Fácil de usar. Se selecciona una tecla mágica (por omisión Super) como la base de los lanzadores y basta con presionar Super+Tecla para ejecutar cualquier comando configurado o aplicación seleccionada.</li>
<li>No estorboso. Siendo basado en atajos no se necesita nada en pantalla. Al mantener presionada la tecla mágica mostrará en las pistas en pantalla y al soltarla desaparecen.</li>
<li>Soporte para diferentes geometrías del teclado según lo provea el servidor de X Window System.</li>
<li>Provee indicadores en pantalla sobre las acciones invocadas.</li>
<li>La configuración se escribe en un archivo. Instalar la misma configuración en otra computadora es tan simple como copiar el archivo.</li>
<li>La tecla mágica no se desperdicia. Se puede usar F8 como tecla mágica y al presionarla sin lanzar nada se envía a la aplicación que actualmente tiene el foco. Yo uso esto para la Thinkpad T42.</li>
</ul>
<p>Aquí hay algunos <a href="http://superkb.sourceforge.net/screenshots.shtml.es">pantallazos</a> sobre cómo se ve Superkb cuando se han invocado las pistas en pantalla.</p>
<p>Para esta versión, Superkb continuó sobre el camino de la estabilización. Desde la versión 0.20, se ha puesto mucho esfuerzo en corregir comportamientos inesperados e inamigabilidades. Esta es ua liberación que me tiene muy contento. Puedo decir que ya no está en un estado precario de &#8216;funciona para mí&#8217;. Ha sido sumamente probado con la ayuda invaluable del <a href="http://www.gultij.org/">Grupo de Usuarios de Linux de Tijuana</a>, particularmente en esta última versión.</p>
<p>¿Y qué hay de particular en esta versión? Bien, como proyecto:</p>
<ul>
<li>Hemos abierto un <a href="http://sourceforge.net/apps/mediawiki/superkb/index.php?title=Main_Page">Wiki</a> con mucha mejor documentación.</li>
<li>Se creó la lista de correos <a href="https://lists.sourceforge.net/lists/listinfo/superkb-devel">superkb-devel en lists.sourceforge.net</a> con su <a href="http://sourceforge.net/mailarchive/forum.php?forum_name=superkb-devel">archivo</a>.</li>
<li>Tuvimos nuestro <a href="http://sourceforge.net/mailarchive/forum.php?thread_name=op.u8soujqy4oyyg1%40alvarezp-ws&#038;forum_name=superkb-devel">primer día de caza de bugs</a> en Tijuana.
</li>
</ul>
<p>En el software:</p>
<ul>
<li>Un drástico incremento en la estabilidad y amigabilidad.</li>
<li>Las cadenas de retroalimentación ya no requieren de un doble entrecomillado<br />
   (mediante la nueva opción <a href="http://sourceforge.net/apps/mediawiki/superkb/index.php?title=FEEDBACK_STRINGS_AUTOQUOTE">FEEDBACK_STRINGS_AUTOQUOTE</a>).</li>
<li>Soporte inicial para estados de teclado (como Super+Shift+N contra el simple Super+N).</li>
<li>Muchos bugs corregidos.</li>
</ul>
<p>Y aún así, el proyecto cuenta con mucho espacio para mejorar. Particularmente:</p>
<ul>
<li>Empaquetamiento. Necesita ser preparado para las diferentes versiones de Debian, Fedora, openSUSE, Ubuntu, Arch Linux, Slackware, etc.</li>
<li>Inclusión en distribuciones. No hay mejor manera de instalar un programa que simplemente hacer algo como <code>apt-get install &lt;pkgname></code>. A Superkb le vendría muy bien eso.</li>
<li>Un mejor sitio web. Aunque la versión actual es mucho mejor que la original, mantenerla actualizada es difícil. Por lo tanto la documentación ha sido movida hacia el Wiki con miras a transformar el sitio web en uno más estático.</li>
<li>Traducciones. No hay código para la traducción de cadenas en Superkb. Aunque todos los mensajes que no van a stdout son traducibles por medio de configuración, los mensajes de consola deberían ser internacionalizados.</li>
<li>Pruebas de portabilidad. El proyecto ha sido probado en distribuciones basadas en Debian, Fedora y Slackware en versiones de 32 y 64 bits. Sin embargo, no se ha probado en plataformas ajenas a Linux como openSolaris, *BSD, etc. ni en arquitecturas diferentes a la PC.</li>
</ul>
<p>Espacio para mejoras de Superkb:</p>
<ul>
<li>Un GUI de configuración. Hasta ahora, Superkb debe ser configurado editando un archivo a mano, pero esto está lejos de la visión inicial del proyecto. Superkb cuenta con un espacio para hacer lo que sea cuando una tecla se mantiene presionada por más de 3 segundos. Esto es para la interfaz de configuración.</li>
<li>Soporte para Xrandr. Actualmente detecta las pantallas usando Xinerama durante el inicio, pero no puede detectar cambios sin que Superkb sea reiniciado.</li>
<li>Y mucho más.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2010/03/18/superkb-0-21-liberado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Superkb 0.21 released</title>
		<link>http://blog.alvarezp.org/2010/03/18/superkb-0-21-released/</link>
		<comments>http://blog.alvarezp.org/2010/03/18/superkb-0-21-released/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 08:02:04 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Gultij]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software libre]]></category>
		<category><![CDATA[Superkb]]></category>
		<category><![CDATA[Tijuana]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=1010</guid>
		<description><![CDATA[As announced some days ago in the mailing list, Superkb 0.21 was released.
Please let me introduce it for those that don&#8217;t know the project yet.
Superkb is a shortcut-based launcher with on-screen graphical hints. It is written in C using Xlib, with the help of Cairo graphics, Pango, Imlib2, Xinerama, etc. and the source code is [...]]]></description>
			<content:encoded><![CDATA[<p>As announced some days ago in the mailing list, <a href="http://sourceforge.net/mailarchive/forum.php?thread_name=op.u870g8lu4oyyg1%40localhost.localdomain&#038;forum_name=superkb-devel">Superkb 0.21 was released</a>.</p>
<p>Please let me introduce it for those that don&#8217;t know the project yet.</p>
<p><a href="http://superkb.sourceforge.net/">Superkb</a> is a shortcut-based launcher with on-screen graphical hints. It is written in C using Xlib, with the help of Cairo graphics, Pango, Imlib2, Xinerama, etc. and the source code is managed using Git.</p>
<p><span id="more-1010"></span><br />
<div class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.alvarezp.org/imagenes/superkb/shots/0.20/0.20-msnatural.png"><img title="Teclado Microsoft Natural, pintado por Superkb." src="http://blog.alvarezp.org/imagenes/superkb/shots/0.20/0.20-msnatural-thumb.png" alt="Teclado Microsoft Natural, pintado por Superkb (Cairo, flat_key). Haz clic para ver la imagen completa." width="300" height="277" /></a><p class="wp-caption-text">Teclado Microsoft Natural, pintado por Superkb (Cairo, flat_key)</p></div></p>
<p>Some of Superkb features:</p>
<ul>
<li>Easy to use. You select a hotkey (Super keys by default) as the base for your launchers and just hit Super+Key to execute whatever command you configured or launch whatever application you chose.</li>
<li>Non-obstructive. Being shortcut based, you don&#8217;t need anything on your screen. Holding the hotkey down will invoke the on-screen hints and releasing it will dismiss them.</li>
<li>Support for different keyboard geometries as provided by the underlying X server.</li>
<li>It provides on-screen feedback for whatever action you have launched.</li>
<li>Configuration is written on a file. You take the configuration with you to install it on your other computer as simple as copying a file.</li>
<li>The hotkey isn&#8217;t wasted. You can choose F8 as your hotkey if you please and hitting it will still send it to the currently focused window. I use this for the Thinkpad T42.</li>
</ul>
<p>Here are some <a href="http://superkb.sourceforge.net/screenshots.shtml.en">screenshots</a> about how Superkb looks like when the on-screen hints are triggered.</p>
<p>For this version, Superkb has continued walking on the stabilizing road. Since version 0.20 a lot of effort has been put in correcting unfriendliness and unexpected behaviors. This is a release I&#8217;m very happy about. I can say it is no longer in an ancient &#8216;works for me&#8217; state. It has been throughly tested with the invaluable help of the <a href="http://www.gultij.org/">Tijuana Linux User Group</a>, particularly in this last version.</p>
<p>So what&#8217;s particular for this version? Well, as a project:</p>
<ul>
<li>We have started a <a href="http://sourceforge.net/apps/mediawiki/superkb/index.php?title=Main_Page">Wiki</a> with a lot of better documentation.</li>
<li>We created the <a href="https://lists.sourceforge.net/lists/listinfo/superkb-devel">superkb-devel at lists.sourceforge.net</a> mailing list with its <a href="http://sourceforge.net/mailarchive/forum.php?forum_name=superkb-devel">archive</a>.</li>
<li>We had our <a href="http://sourceforge.net/mailarchive/forum.php?thread_name=op.u8soujqy4oyyg1%40alvarezp-ws&#038;forum_name=superkb-devel">first bug-hunting day</a> in Tijuana.</li>
</ul>
<p>In the software:</p>
<ul>
<li>Stability and friendlyness is drastically increased.</li>
<li>Feedback strings don&#8217;t need to be requoted anymore (via the new<br />
<a href="http://sourceforge.net/apps/mediawiki/superkb/index.php?title=FEEDBACK_STRINGS_AUTOQUOTE">FEEDBACK_STRINGS_AUTOQUOTE</a> option).</li>
<li>Initial support for keyboard states (like Super+Shift+N versus plain Super+N).</li>
<li>Lots of bugs have been fixed.</li>
</ul>
<p>And yet, the project has a lot of space for improvement. Particularly:</p>
<ul>
<li>Packaging. It needs to be prepared for the different versions of Debian, Fedora, openSUSE, Ubuntu, Arch Linux, Slackware, etc.</li>
<li>Distribution inclusion. There is no better way to install any program than simply doing something like <code>apt-get install &lt;pkgname></code>. Superkb could really use that.</li>
<li>A better website. Though the current website is a lot better than the original, keeping it up to date is difficult. Documentation has therefore moved to the Wiki and I&#8217;m looking forward to changing the website to be more static.</li>
<li>Translations. There is no code for string translation yet in Superkb. Even though all non-stdout messages are translatable through configuration, console messages should be internationalized.</li>
<li>Portability testing. The project has proven to work on Debian, Fedora and Slackware-based Linux distributions in 32 and 64-bit versions. However, it has not been tested on non-Linux platforms like openSolaris, *BSD, etc, or non-PC architectures.</li>
</ul>
<p>Room for improvement for Superkb:</p>
<ul>
<li>A configuration GUI. So far, Superkb must be configured by editing a file but this is far from the actual vision of using the software. Superkb actually has a placeholder to do whatever thing when a key is held down for 3 seconds. This is intended to be the configuration interface.</li>
<li>Xrandr support. It currently detects screens using Xinerama at startup, but it cannot detect changes to the screen layout without being restarted.</li>
<li>Much more.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2010/03/18/superkb-0-21-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Se libera msn-pecan 0.1.0 de felipec</title>
		<link>http://blog.alvarezp.org/2010/02/27/se-libera-msn-pecan-0-1-0-de-felipec/</link>
		<comments>http://blog.alvarezp.org/2010/02/27/se-libera-msn-pecan-0-1-0-de-felipec/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 02:30:50 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Desarrollos]]></category>
		<category><![CDATA[Español]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Software libre]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=993</guid>
		<description><![CDATA[Esa es la noticia: se ha liberado msn-pecan 0.1.0! Y me da gusto.
Para citar (traducido) del post de felipec en su blog:

Después de un poco más de dos años de desarrollo, realmente nos orgullece anunciar la primera versión estable de msn-pecan. El proyecto comenzó como un &#8220;bifurcación&#8221; del protocolo msn de libpurple (lea más abajo [...]]]></description>
			<content:encoded><![CDATA[<p>Esa es la noticia: se ha liberado <a href="http://code.google.com/p/msn-pecan/">msn-pecan</a> 0.1.0! Y me da gusto.</p>
<p>Para citar (traducido) del <a href="http://felipec.wordpress.com/2010/02/27/msn-pecan-0-1-released-the-best-option-for-pidginlibpurple/">post</a> de felipec en su <a href="http://felipec.wordpress.com/">blog</a>:</p>
<blockquote><p>
Después de un poco más de dos años de desarrollo, realmente nos orgullece anunciar la primera versión estable de msn-pecan. El proyecto comenzó como un &#8220;bifurcación&#8221; del protocolo msn de libpurple (lea más abajo por qué no es realmente un bifurcación) pero ha crecido y pronto será una librería por sí misma, también con soporte para Telepathy.
</p></blockquote>
<p>Aunque puse sólo 3 de los 1009 parches y que no entiendo nada del código en sí, debo admitir que me siento parte del projecto.</p>
<p>Hace 7 años inicié un proyecto para escribir un cliente de MSN Messenger para Linux, en modo texto, basado en ncurses. El proyecto aún está registrado en Sourceforge como <a href="http://msnclient.sourceforge.net/">msnclient</a>. Fue mi primer intento de escribir <a href="http://es.wikipedia.org/wiki/Software_libre">software libre</a>. Sin embargo, el reto fue demasiado grande y el proyecto rápidamente se murió. Nunca llegué más allá de simplemente iniciar sesión y enviar mensajes de una sola palabra a otro contacto.</p>
<p>Eventualmente aprendí a usar Pidgin y conseguí buen hardware y la necesidad de un cliente personalizado de MSN ya no existía. Aún así creo que msnclient es un buen concepto para ser realizado. Tal vez algún día sea una interfaz basada en las funciones de msn-pecan.</p>
<p>Dicho eso, a mediados de 2009, cuando comencé a aprender Git, felipec me proveyó una rama de su repositorio para probar las conexiones directas (mejor conocidas como &#8220;transferencias rápidas&#8221; o &#8220;transferencias p2p&#8221;). No funcionaron en ese entonces.</p>
<p>6 meses y muchos commits sobre su master después: 0.1.0-rc1 salió y directconn aún no funcionaba pero la rama dc-test era ya muy vieja. Había aprendido más sobre Git y creí que era lo suficientemente mejor como para intentar corregir el problema de las conexiones directas. Sin embargo no sabía nada de la funcionalidad de MSN ni del código. Al menos sabía cuál era el primer paso: fuera lo que fuere había que hacer un rebase del código. Así que intenté rebasarlo para que las correcciones de la rama dc-test funcionaran bajo la nueva base de código; al menos sería útil para los desarrolladores. Así que la guerra estaba perdida para mí, pero tal vez felipec se podría motivar lo suficiente para continuar trabajando sobre esta parte de msn-pecan (pero se supone que uno no dice eso, cierto?). Así fue como ví las cosas y obtuve la motivación de hacerlo. Además, sería mi primer git rebase en el mundo real.</p>
<p>El principal problema fue que felipec había hecho muchos cambios de reorganización, renombrado y división de código en julio (algunos bien otros mal). Con un poco de experiencia en C, logré hacer el rebase y lo envié como un par de parches.</p>
<p>De repente felipec continuó trabajando arduamente sobre directconn. No sé si fueron los parches o no; eso es lo de menos. Lo importante es que en msn-pecan 0.1.0, las conexiones directas ya funcionan y de manera estable. Aunque no en todos los casos, es un gran avance.</p>
<p>Ahora creo que fue más allá de aprender a hacer un rebase: Realmente aprendí a <em>contribuir</em> usando Git, tal cual lo hacen los niños grandes en el proyecto del <a href="http://es.wikipedia.org/wiki/Linux_(núcleo)">Kernel Linux</a>. Aún no entiendo el código ni el funcionamiento interno del proyecto, pero esos dos parches me permitieron aprender mucho sobre colaboración y revisión de software. Esto fue particularmente útil para <a href="http://sourceforge.net/apps/mediawiki/superkb/">Superkb</a> que también está hecho en <a href="http://es.wikipedia.org/wiki/Lenguaje_de_programación_C">C</a> y su código fuente está manejado en <a href="http://git-scm.com/">Git</a>.</p>
<p>Así que, gracias nuevamente, felipec, felicidades y todos deberíamos tomarnos un trago por el proyecto, aunque estemos en diferentes partes del mundo. ¡A tirar fiesta y correr la voz!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2010/02/27/se-libera-msn-pecan-0-1-0-de-felipec/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>felipec&#8217;s msn-pecan 0.1.0 released</title>
		<link>http://blog.alvarezp.org/2010/02/27/felipecs-msn-pecan-0-1-0-released/</link>
		<comments>http://blog.alvarezp.org/2010/02/27/felipecs-msn-pecan-0-1-0-released/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 01:57:37 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Desarrollos]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software libre]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=986</guid>
		<description><![CDATA[So that&#8217;s the news: msn-pecan 0.1.0 is released! And I&#8217;m glad.
To directly quote from Felipec&#8217;s post in his blog:

After a bit more than two years of development we are proud to announce the first stable release of msn-pecan. The project started as a “fork” of libpurple’s msn protocol (read below why it’s not really a [...]]]></description>
			<content:encoded><![CDATA[<p>So that&#8217;s the news: <a href="http://code.google.com/p/msn-pecan/">msn-pecan</a> 0.1.0 is released! And I&#8217;m glad.</p>
<p>To directly quote from Felipec&#8217;s <a href="http://felipec.wordpress.com/2010/02/27/msn-pecan-0-1-released-the-best-option-for-pidginlibpurple/">post</a> in his <a href="http://felipec.wordpress.com/">blog</a>:</p>
<blockquote><p>
After a bit more than two years of development we are proud to announce the first stable release of msn-pecan. The project started as a “fork” of libpurple’s msn protocol (read below why it’s not really a fork), but it has grown and soon will become a standalone library with support for Telepathy too.
</p></blockquote>
<p><span id="more-986"></span>Even though I have only 3 of the 1009 patches and although I don&#8217;t understand any of the code itself, I gotta admit I really feel like I&#8217;m part of the project.</p>
<p>7 years ago I started a project to write a text mode, ncurses-based MSN client for Linux. The project is still registered on Sourceforge as <a href="http://msnclient.sourceforge.net/">msnclient</a>. It was my first attempt at writing <a href="http://en.wikipedia.org/wiki/Free_software">free software</a>. However, the challenge was too much for me and the project quickly died. I never got further than logging in and sending a single-worded message to another contact.</p>
<p>I eventually started to learn how to use Pidgin and got my self good hardware and my need of a personalized MSN client was no more. I still think, however, that msnclient is a good concept to try to bring to life. Maybe some day it will be an interface based on the msn-pecan functions.</p>
<p>That said, in mid 2009, when I started learning Git, felipec provided me a branch from his repository to test the direct connection feature (better known as &#8220;fast file transfers&#8221; or &#8220;p2p file transfers&#8221;). It didn&#8217;t work that time.</p>
<p>6 months went by and lot of commits over his master branch were too. 0.1.0-rc1 came out and directconn was still not working but the dc-test branch was relly old now. I had learned enough about Git and I though that I was better enough to try fixing the DC code. However I really knew nothing about the MSN functionality and I really didn&#8217;t understand the code. Well, at least I knew what the first step was: I had to rebase it anyway. So I tried to bring that old branch to the new code base so it could be (at least) useful to the developers. So war was lost for me, but perhaps felipec would get encouraged enough to restart working over this part of msn-pecan (but you&#8217;re not supposed to say that, right?). That&#8217;s how I saw it and how I got my motivation to do it; also, I would be my first actual real-world git rebase.</p>
<p>The main problem was that felipec had done a lot of relevant code reorganization, renaming and splitting in July (some done good, some done badly). Using some C experience I managed to rebase it and sent it in as a couple of patches.</p>
<p>Suddenly, felipec continued work on directconn. I don&#8217;t know if it was because of the patches or not; that doesn&#8217;t matter. The important thing is that in msn-pecan 0.1.0, direct connections now work and are stable. Even if not in all cases, it is a great step.</p>
<p>Now I think it went beyond learning how to rebase: I actually learned how to <em>contribute</em> using Git, just like the big boys do in the <a href="http://www.kernel.org/">Linux Kernel</a> project. I still don&#8217;t understand the code and the inner workings of the project but those two patches allowed me to learn a lot about software collaboration and review. This was particularly helpful for <a href="http://sourceforge.net/apps/mediawiki/superkb/">Superkb</a> which is also written in <a href="http://en.wikipedia.org/wiki/C_(programming_language)">C</a> and its source code managed in <a href="http://git-scm.com/">Git</a>.</p>
<p>So, thanks again felipec, congratulations and we all should have a drink for the project, even if on different parts of the world! Let&#8217;s party and spread the word.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2010/02/27/felipecs-msn-pecan-0-1-0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Superkb estrena Wiki</title>
		<link>http://blog.alvarezp.org/2010/01/26/superkb-estrena-wiki/</link>
		<comments>http://blog.alvarezp.org/2010/01/26/superkb-estrena-wiki/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 09:40:05 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Español]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Software libre]]></category>
		<category><![CDATA[Superkb]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=964</guid>
		<description><![CDATA[Gracias a SourceForge y su implementación de MediaWiki, el proyecto Superkb cuenta con su propio Wiki.
Por el momento está sólo en inglés. Realmente tengo en la mira poner el equivalente en español.
Con esto será mucho más fácil mantener la documentación al día.
El Wiki de SourceForge no admite ediciones anónimas, así que es necesario contar con [...]]]></description>
			<content:encoded><![CDATA[<p>Gracias a <a href="http://www.sourceforge.net/">SourceForge</a> y su implementación de <a href="http://www.mediawiki.org/">MediaWiki</a>, el proyecto <a href="http://superkb.sourceforge.net/">Superkb</a> cuenta con su propio <a href="https://sourceforge.net/apps/mediawiki/superkb/">Wiki</a>.</p>
<p>Por el momento está sólo en inglés. Realmente tengo en la mira poner el equivalente en español.</p>
<p>Con esto será mucho más fácil mantener la documentación al día.</p>
<p>El Wiki de SourceForge no admite ediciones anónimas, así que es necesario contar con una cuenta de SourceForge para poder incluir a las personas en el grupo de edición.</p>
<p>Las sugerencias y contribuciones son bienvenidas.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2010/01/26/superkb-estrena-wiki/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Superkb brand new Wiki</title>
		<link>http://blog.alvarezp.org/2010/01/26/superkb-brand-new-wiki/</link>
		<comments>http://blog.alvarezp.org/2010/01/26/superkb-brand-new-wiki/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 09:38:43 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Software libre]]></category>
		<category><![CDATA[Superkb]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=965</guid>
		<description><![CDATA[Thanks to SourceForge and its MediaWiki implementation, the Superkb project now has its own Wiki.
For now, it is only in English. I&#8217;m really looking forward to adding a full Spanish equivalent.
I think this will make it a lot easier to keep the documentation up to date.
The SourceForge Wiki doesn&#8217;t allow anonymous contributions, so an SF [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to <a href="http://www.sourceforge.net/">SourceForge</a> and its <a href="http://www.mediawiki.org/">MediaWiki</a> implementation, the <a href="http://superkb.sourceforge.net/">Superkb</a> project now has its own <a href="https://sourceforge.net/apps/mediawiki/superkb/">Wiki</a>.</p>
<p>For now, it is only in English. I&#8217;m really looking forward to adding a full Spanish equivalent.</p>
<p>I think this will make it a lot easier to keep the documentation up to date.</p>
<p>The SourceForge Wiki doesn&#8217;t allow anonymous contributions, so an SF account is needed to include the people in the editors group.</p>
<p>Suggestions and contributions are welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2010/01/26/superkb-brand-new-wiki/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>De Superkb, GCC pedante y portabilidad</title>
		<link>http://blog.alvarezp.org/2009/12/29/de-superkb-gcc-pedante-y-portabilidad/</link>
		<comments>http://blog.alvarezp.org/2009/12/29/de-superkb-gcc-pedante-y-portabilidad/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 09:47:41 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Código]]></category>
		<category><![CDATA[Español]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Superkb]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=943</guid>
		<description><![CDATA[Por fin se me hizo: cambiar el Makefile de Superkb para usar gcc -std=c99 -pedantic-errors en lugar de -std=gnu99.
Lo que me impedía hacerlo era que uso algunas extensiones de GNU, BSD o POSIX que no se encuentran en el estándar C.
Yo no sabía, pero basta con añadir la línea
#define _GNU_SOURCE

o, según el caso,
#define _POSIX_C_SOURCE 2

al [...]]]></description>
			<content:encoded><![CDATA[<p>Por fin se me hizo: cambiar el Makefile de Superkb para usar <code>gcc -std=c99 -pedantic-errors</code> en lugar de <code>-std=gnu99</code>.</p>
<p>Lo que me impedía hacerlo era que uso algunas extensiones de GNU, BSD o POSIX que no se encuentran en el estándar C.</p>
<p>Yo no sabía, pero basta con añadir la línea</p>
<pre class="code">#define _GNU_SOURCE
</pre>
<p>o, según el caso,</p>
<pre class="code">#define _POSIX_C_SOURCE 2
</pre>
<p>al principio del código fuente y glibc reconoce y habilita las funciones que hagan falta.</p>
<p>Esto es un paso hacia adelante, pues ahora ya puedo usar un simple &#8220;grep&#8221; para ver en qué archivos están &#8220;solicitando extensiones&#8221;.</p>
<p>Desafortunadamente aún falta bastante para llegar al ideal, pues sigo atado a las herramientas de GNU. Por ejemplo ¿qué pasa si trato de compilar sobre OpenSolaris? La última vez que lo intenté, resultó que el Makefile usa extensiones que dependen de gmake (una de ellas es el <code>include</code> no fatal). Pero si hubiera gmake, ¿compilaría?</p>
<p>Sólo hay una manera de saberlo&#8230; ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2009/12/29/de-superkb-gcc-pedante-y-portabilidad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Superkb 0.20</title>
		<link>http://blog.alvarezp.org/2009/11/20/superkb-0-20/</link>
		<comments>http://blog.alvarezp.org/2009/11/20/superkb-0-20/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 07:44:19 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Español]]></category>
		<category><![CDATA[Gultij]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Software libre]]></category>
		<category><![CDATA[Superkb]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=844</guid>
		<description><![CDATA[Ha habido mucho trabajo en esta versión y lo más notable es el soporte para pintar el teclado usando Cairo.
Cualquier falla que encuentren, por favor levanten un bug en el sistema de seguimiento de bugs, o bug tracking system. Al levantar un caso de bug, todo queda escrito y no se nos van a olvidar [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.alvarezp.org/imagenes/superkb/shots/0.20/0.20-msnatural.png"><img title="Teclado Microsoft Natural, pintado por Superkb." src="http://blog.alvarezp.org/imagenes/superkb/shots/0.20/0.20-msnatural-thumb.png" alt="Teclado Microsoft Natural, pintado por Superkb (Cairo, flat_key). Haz clic para ver la imagen completa." width="300" height="277" /></a><p class="wp-caption-text">Teclado Microsoft Natural, pintado por Superkb (Cairo, flat_key)</p></div>
<p>Ha habido mucho trabajo en esta versión y lo más notable es el soporte para pintar el teclado usando <a href="http://es.wikipedia.org/wiki/Cairo_(biblioteca)">Cairo</a>.</p>
<p>Cualquier falla que encuentren, por favor levanten un bug en el <a href="https://bugs.launchpad.net/superkb">sistema de seguimiento de bugs</a>, o <em>bug tracking system</em>. Al levantar un caso de bug, todo queda escrito y no se nos van a olvidar las cosas. Lo más importante es que el caso o bug quedará documentado para evitar que usuarios y desarrollador(es) trabajemos doble.</p>
<p>Por supuesto, lo anterior no quita que podamos platicar y discutir en #superkb en irc.freenode.net.</p>
<p>Quiero agradecer al <a href="http://www.gultij.org/">Grupo de Usuarios de Linux de Tijuana</a> por la retroalimentación sobre Superkb, sobre todo estos últimos días, en particular a:</p>
<ul>
<li><a href="http://israel8a.blogspot.com/">IsReal</a>, por el <a href="http://israel8a.blogspot.com/2009/11/superkb-paquetes-rpm-y-srpm-para-fedora.html">post en su blog</a> y usar Superkb para aprender a hacer paquetes RPM. <span style="text-decoration: line-through;">Si tendremos uno para la 0.20 será gracias a él.</span> <strong>Update</strong>: Ya tenemos paquete para Fedora Core 12! Gracias, IsReal.</li>
<li><a href="http://www.aduarte.net/blog/">aduarte</a>, por las eternas recomendaciones.</li>
<li><a href="http://www.rugebiker.com/">biker</a>, por intentar incansablemente de instalarlo por más que le falle. Al ver los errores he podido corregirlos.</li>
<li>y me faltó juan_arandaalva, por la ayuda con Cairo (que al final resultó ser una tontería).</li>
</ul>
<p>Bien, los recursos y descargas están donde siempre: en la <a href="http://blog.alvarezp.org/superkb/">página de Superkb en este blog</a> y en el <a href="http://superkb.sourceforge.net/">sitio oficial</a>.</p>
<p>De cualquier manera, cito todo eso aquí:</p>
<ul>
<li>Versión más reciente: 0.20.</li>
<li>Licencia: GPL v2.</li>
<li>Página del proyecto: <a href="http://superkb.sourceforge.net/">http://superkb.sourceforge.net/</a></li>
<li>Proyecto en Sourceforge: <a href="http://sourceforge.net/projects/superkb">http://sourceforge.net/projects/superkb</a></li>
<li>Descarga en gz: <a href="http://prdownloads.sourceforge.net/superkb/superkb-0.20.tar.gz?download">superkb-0.20.tar.gz</a></li>
<li>Descarga en bz2: <a href="http://prdownloads.sourceforge.net/superkb/superkb-0.20.tar.bz2?download">superkb-0.20.tar.bz2</a></li>
<li>Descarga para Fedora Core 12: <a href="http://prdownloads.sourceforge.net/superkb/superkb-0.20-1.fc12.i686.rpm?download">superkb-0.20-1.fc12.i686.rpm</a></li>
<li>Seguimiento de bugs: <a href="https://bugs.launchpad.net/superkb">https://bugs.launchpad.net/superkb</a></li>
<li>Descarga desde Git: <code>git clone git://superkb.git.sourceforge.net/gitroot/superkb/superkb superkb-git</code></li>
<li>Navegación del historial en Gitweb: <a href="http://superkb.git.sourceforge.net/">http://superkb.git.sourceforge.net/</a></li>
<li>Suscripción RSS a liberaciones de archivos: <a href="http://sourceforge.net/export/rss2_projfiles.php?group_id=154661">http://sourceforge.net/export/rss2_projfiles.php?group_id=154661</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2009/11/20/superkb-0-20/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Seguimiento de bugs para Superkb</title>
		<link>http://blog.alvarezp.org/2009/09/21/seguimiento-de-bugs-para-superkb/</link>
		<comments>http://blog.alvarezp.org/2009/09/21/seguimiento-de-bugs-para-superkb/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 04:57:56 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Español]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Superkb]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=696</guid>
		<description><![CDATA[Nota rápida: Si al usar Superkb encuentras algún bug, lo mejor es reportarlo al sistema de seguimiento de casos en Launchpad.
]]></description>
			<content:encoded><![CDATA[<p>Nota rápida: Si al usar Superkb encuentras algún bug, lo mejor es reportarlo al <a href="https://bugs.launchpad.net/superkb">sistema de seguimiento de casos</a> en Launchpad.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2009/09/21/seguimiento-de-bugs-para-superkb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Superkb 0.17</title>
		<link>http://blog.alvarezp.org/2009/03/20/superkb-017/</link>
		<comments>http://blog.alvarezp.org/2009/03/20/superkb-017/#comments</comments>
		<pubDate>Sat, 21 Mar 2009 03:06:36 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Non geek]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Superkb]]></category>

		<guid isPermaLink="false">http://alvarezp.ods.org/blog/?p=193</guid>
		<description><![CDATA[Una de las metas que quería cumplir antes de sacar Superkb 0.17 fue convertir el código fuente a Git, manteniendo los historiales anteriores, tanto de CVS como de Subversion, así que, aquí está Superkb 0.17 con todos los links relevantes en la página usual.
¿Qué cambia en esta versión?

Hay soporte para Xinerama. Eso significa que si [...]]]></description>
			<content:encoded><![CDATA[<p>Una de las metas que quería cumplir antes de sacar Superkb 0.17 fue convertir el código fuente a Git, manteniendo los historiales anteriores, tanto de CVS como de Subversion, así que, aquí está Superkb 0.17 <a href="http://alvarezp.ods.org/blog/superkb/">con todos los links relevantes en la página usual</a>.</p>
<p>¿Qué cambia en esta versión?</p>
<ul>
<li>Hay <a href="http://alvarezp.ods.org/blog/2008/06/18/implementando-soporte-para-xinerama-en-superkb/">soporte para Xinerama</a>. Eso significa que si tienes dos pantallas y no manejas XRandR todavía, Superkb saldrá correctamente.</li>
<li>El código fuente fue <a href="http://superkb.git.sourceforge.net/">migrado a Git</a>.</li>
<li>Mensajes más amigables durante la compilación.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2009/03/20/superkb-017/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Qué falló durante mi plática en el SFD2008</title>
		<link>http://blog.alvarezp.org/2008/09/16/que-fallo-durante-mi-platica-en-el-sfd2008/</link>
		<comments>http://blog.alvarezp.org/2008/09/16/que-fallo-durante-mi-platica-en-el-sfd2008/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 19:27:46 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Anécdota]]></category>
		<category><![CDATA[Conferencias]]></category>
		<category><![CDATA[Código]]></category>
		<category><![CDATA[Gultij]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[SFD]]></category>
		<category><![CDATA[Tijuana]]></category>
		<category><![CDATA[audiosum]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[sfd2008]]></category>
		<category><![CDATA[Software libre]]></category>

		<guid isPermaLink="false">http://alvarezp.ods.org/blog/?p=177</guid>
		<description><![CDATA[A todas las personas que estuvieron presentes en la plática &#8220;Invitación al Desarrollo del Software Libre&#8221;:
Quiero expresar mi agradecimiento por su presencia en mi plática; en general, en el evento SFD 2008 en Tijuana.
Recordarán que al terminar la presentación realicé en vivo un cambio al código de audiosum; específicamente, al componente audiodup. Con este cambio [...]]]></description>
			<content:encoded><![CDATA[<p>A todas las personas que estuvieron presentes en la plática &#8220;Invitación al Desarrollo del Software Libre&#8221;:</p>
<p>Quiero expresar mi agradecimiento por su presencia en mi plática; en general, en el evento <a href="http://tonymoyoy.blogsome.com/2008/09/16/sfd-tijuana-08-resumen/">SFD 2008</a> en Tijuana.</p>
<p>Recordarán que al terminar la presentación realicé en vivo un cambio al código de <a href="http://alvarezp.ods.org/blog/audiosum/">audiosum</a>; específicamente, al componente <em>audiodup</em>. Con este cambio busqué mostrarles de manera práctica un ejemplo de cómo se desarrolla en el mundo del software libre mediante <a href="http://git.or.cz/">Git</a>.</p>
<p>También recordarán que el experimento no funcionó del todo:
<ol>
<li>descargamos el código desde repo.or.cz con <code>git clone http://repo.or.cz/audiosum.git</code>,</li>
<li>compilamos audiosum y lo vimos funcionando con <code>./autogen.sh &#038;&#038; ./configure &#038;&#038; make</code>,</li>
<li>realizamos un cambio en audiodup,</li>
<li>mostramos el parche resultante con <code>git diff</code>,</li>
<li>revisamos el estado del repositorio local con <code>git status</code>,</li>
<li>aplicamos el cambio en el repositorio local con <code>git commit -a</code>,</li>
<li>observamos las diferencias entre el repositorio local y el repositorio público con <code>git log origin..master</code>,</li>
<li>pero no pudimos publicar el cambio con <code>git push</code>.</li>
</ol>
<p>El motivo fue muy sencillo: no tenía autorizada la laptop para enviar cambios al repositorio. En <a href="http://repo.or.cz/">repo.or.cz</a> se deben dar de alta las claves públicas de cada persona@computadora autorizada para enviar cambios. Tengo diferentes claves públicas en cada máquina, y sólo tenía dada de alta la PC del trabajo y la PC de la casa. Mi cuenta de la laptop no estaba autorizada para enviar cambios.</p>
<p>Finalmente el cambio fue aplicado con <code>git push</code> y pueden observar en el <a href="http://repo.or.cz/w/audiosum.git">historial de cambios de audiosum</a> el cambio &#8220;<a href="http://repo.or.cz/w/audiosum.git?a=commit;h=02e1ea1a1d99f52d7c44b9f62c6f00e268999947">Added support for file pattern matching</a>&#8220;. En el segundo enlace pueden ver que la fecha es del 13 de septiembre a las 17:56, hora local, es decir, que el commit fue realizado <strong>durante</strong> la conferencia.</p>
<p>Saludos.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2008/09/16/que-fallo-durante-mi-platica-en-el-sfd2008/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Implementando soporte para Xinerama en Superkb</title>
		<link>http://blog.alvarezp.org/2008/06/18/implementando-soporte-para-xinerama-en-superkb/</link>
		<comments>http://blog.alvarezp.org/2008/06/18/implementando-soporte-para-xinerama-en-superkb/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 02:21:22 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Superkb]]></category>
		<category><![CDATA[superkb xinerama x programacion linux]]></category>

		<guid isPermaLink="false">http://alvarezp.ods.org/blog/?p=167</guid>
		<description><![CDATA[Desde hace tiempo, Alfredo observó el problema. Incluso, hay un screenshot en la sección de bloopers (al final de la sección de Pantallazos) donde se ve una pantalla doble con un teclado muy bonito. Pero, ¿por qué es eso un blooper?
Para pintar el teclado, Superkb le pregunta a X el tamaño de la pantalla, y [...]]]></description>
			<content:encoded><![CDATA[<p>Desde hace tiempo, Alfredo observó el problema. Incluso, hay un screenshot en la sección de bloopers (al final de la sección de <a href="http://superkb.sourceforge.net/screenshots.shtml">Pantallazos</a>) donde se ve una pantalla doble con un teclado muy bonito. Pero, ¿por qué es eso un blooper?</p>
<p>Para pintar el teclado, Superkb le pregunta a X el tamaño de la pantalla, y pinta el teclado aprovechando al máximo la pantalla, según el tamaño que se le reporta.</p>
<h4>El problema</h4>
<p>Para X, una tarjeta dual con dos monitores, es en realidad un solo &#8220;display&#8221;, de modo que Superkb no logra percatarse de la existencia de dos monitores, y aunque <a href="http://superkb.sourceforge.net/shots/bloopers/xinerama-0.10-960-384.png">el screenshot</a> se ve perfecto, <a href="http://alvarezp.ods.org/blog/imagenes/superkb-xinerama/superkb-no-xinerama-screen-640-480.png">la realidad</a> es muy distinta. (Disculpen ustedes mi falta de pulso.)</p>
<p style="text-align: center"><a href="http://superkb.sourceforge.net/shots/bloopers/xinerama-0.10-960-384.png"><img style="margin: 10px" src="http://superkb.sourceforge.net/shots/bloopers/xinerama-0.10-320-128.png"/></a><a href="http://alvarezp.ods.org/blog/imagenes/superkb-xinerama/superkb-no-xinerama-screen-640-480.png"><img style="margin: 10px" src="http://alvarezp.ods.org/blog/imagenes/superkb-xinerama/superkb-no-xinerama-screen-320-240.png"/></a><br />(Superkb sin soporte para Xinerama: A la izquierda, el screenshot, a la derecha, las pantallas reales)</p>
<p>Nótese que en este caso, el problema se agrava debido a que cada monitor tiene una resolución distinta, de modo que no sólo el teclado se ve partido, sino que además una parte se pierde.</p>
<p>¿Cómo se podría resolver el problema? El problema dejaría de existir si Superkb tuviera la capacidad de conocer la cantidad de monitores existentes y la resolución de cada uno, y pintar varios teclados a la vez, uno por monitor.</p>
<h4>XINERAMA</h4>
<p>En una configuración de doble monitor, para X.org, se sigue tratando de un único &#8220;display&#8221;, es sólo que un conjunto de pixeles se asignan al primer monitor y otro conjunto de pixeles se asignan al segundo monitor.</p>
<p>Xinerama es una librería que, en esencia, cuenta con sólo una función, llamada <a href="http://linux.die.net/man/3/xineramaqueryscreens">XineramaQueryScreens</a>. Aunque en realidad son 4 funciones, las tres restantes sólo se usan para consultar la versión, disponibilidad y compatibilidad de Xinerama como extensión de X.</p>
<p>Con esta función le pregunto a X.org cuántos monitores hay y qué pixeles se mapean a cada uno de los monitores, y me contesta en un arreglo de estructuras <a href="http://gitweb.freedesktop.org/?p=xorg/lib/libXinerama.git;a=blob;h=666f52a78d294d349b75508e50b06c218133bc9b;hb=8123c94eba27d1a3eb3f509a79c229ddfa1f881a;f=include/X11/extensions/Xinerama.h#l32">XineramaScreenInfo</a>.</p>
<p>Por ejemplo, en la PC que se usó para el screenshot, esta es la información que regresa:</p>
<pre class="code">screen_number = 0
x_org = 0
y_org = 0
width = 1024
height = 768

screen_number = 1
x_org = 1024
y_org = 0
width = 1280
height = 1024</pre>
<p>Con esta información, Superkb sólo se limita a pintar los teclados en sus correspondientes coordenadas: un teclado entre 0-1023 x 0-767 y otro en 1024-2303 x 0-1023. El <a href="http://alvarezp.ods.org/blog/imagenes/superkb-xinerama/superkb-xinerama-shot-960-427.png">screenshot</a> queda un poco diferente, y tal vez no se vea del todo bien. Pero ya <a href="http://alvarezp.ods.org/blog/imagenes/superkb-xinerama/superkb-xinerama-screen-640-480.png">en pantalla</a> se ve como se espera.</p>
<p style="text-align: center"><a href="http://alvarezp.ods.org/blog/imagenes/superkb-xinerama/superkb-xinerama-shot-960-427.png"><img style="margin: 10px" src="http://alvarezp.ods.org/blog/imagenes/superkb-xinerama/superkb-xinerama-shot-320-142.png"/></a><a href="http://alvarezp.ods.org/blog/imagenes/superkb-xinerama/superkb-xinerama-screen-640-480.png"><img style="margin: 10px" src="http://alvarezp.ods.org/blog/imagenes/superkb-xinerama/superkb-xinerama-screen-320-240.png"/></a><br />(Superkb con soporte para Xinerama: A la izquierda, el screenshot, a la derecha, las pantallas reales)</p>
<p>Debido esto, hubo que convertir el pixmap y la ventana de Superkb, en un arreglo de pixmaps y ventanas. (No, no puedo usar un mismo pixmap para todas las ventanas, porque pueden ser monitores de diferente resolución).</p>
<p>En conclusión: para el tiempo que duré con conocimiento del bug y sin arreglarlo (desde la versión 0.10), creo que hice una tormenta con un vaso de agua. El cambio fue relativamente fácil de implementar.</p>
<p>&#8230; y todo para Xinerama se desprecie en favor de Xrandr. ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2008/06/18/implementando-soporte-para-xinerama-en-superkb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Superkb 0.16</title>
		<link>http://blog.alvarezp.org/2008/04/05/superkb-016/</link>
		<comments>http://blog.alvarezp.org/2008/04/05/superkb-016/#comments</comments>
		<pubDate>Sat, 05 Apr 2008 08:11:30 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Superkb]]></category>
		<category><![CDATA[Código]]></category>
		<category><![CDATA[Software libre]]></category>
		<category><![CDATA[xft]]></category>

		<guid isPermaLink="false">http://alvarezp.ods.org/blog/?p=161</guid>
		<description><![CDATA[Una nota rápida para anunciar Superkb 0.16.
La bitácora de cambios:

Algunos bichos corregidos, reportados por gcc -Wextra.
Reescrito el código de dibujado de textos mediante Xft.
Corregida una condición de carrera en el procesamiento de los eventos de X.

Sobre Xft, la migración se realizó para aprovechar la funcionalidad de antialias que provee Xft, en comparación con Xlib. En [...]]]></description>
			<content:encoded><![CDATA[<p>Una nota rápida para anunciar Superkb 0.16.</p>
<p>La bitácora de cambios:</p>
<ul>
<li>Algunos bichos corregidos, reportados por gcc -Wextra.</li>
<li>Reescrito el código de dibujado de textos mediante Xft.</li>
<li>Corregida una condición de carrera en el procesamiento de los eventos de X.</li>
</ul>
<p>Sobre Xft, la migración se realizó para aprovechar la funcionalidad de antialias que provee Xft, en comparación con Xlib. En Debian Sid, por algún motivo renderea igual la versión 0.15 que la 0.16, pero en Ubuntu Feisty se nota la diferencia en la calidad del texto.</p>
<p>Sobre la condición de carrera, se trata de un bug espantoso que podía volver inutilizable Superkb. Significa que el mismo código en la misma distribución en diferentes PC, podría funcionar para una persona y para otra no.</p>
<p>No hay pantallazos por el momento.</p>
<p>Para los diversos recursos del proyecto (descargas y demás), visita <a href="http://alvarezp.ods.org/blog/superkb/">la página de Superkb</a> en este mismo blog.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2008/04/05/superkb-016/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>audiosum 0.2</title>
		<link>http://blog.alvarezp.org/2008/03/26/audiosum-02/</link>
		<comments>http://blog.alvarezp.org/2008/03/26/audiosum-02/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 06:59:39 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[audiosum]]></category>
		<category><![CDATA[Código]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[Software libre]]></category>

		<guid isPermaLink="false">http://alvarezp.ods.org/blog/?p=156</guid>
		<description><![CDATA[Ok, audiosum ha sido un excelente conejillo de indias para aprender Git, GNU Autoconf y GNU Automake. Los dos últimos me parecen demasiado confusos todavía, pero ahí la llevo.
Y se han hecho varios cambios, principalmente:

Se corrigió un horrible bug donde los archivos que se abrían no se cerraban, tipo memory leak, pero de descriptores.
Se añadió [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, audiosum ha sido un excelente conejillo de indias para aprender Git, GNU Autoconf y GNU Automake. Los dos últimos me parecen demasiado confusos todavía, pero ahí la llevo.</p>
<p>Y se han hecho varios cambios, principalmente:</p>
<ul>
<li>Se corrigió un horrible bug donde los archivos que se abrían no se cerraban, tipo memory leak, pero de descriptores.</li>
<li>Se añadió una opción, -b, para indicar que sólo se desea la firma de una parte del archivo (dado en porcentaje). Si se usa -b sin un valor, imprime sólo el tamaño del audio del archivo.</li>
<li>Se añadió una opción, -a, para indicar qué algoritmo de hash usar, como md5, sha1, etc.</li>
<li>Mejores mensajes de ayuda.</li>
<li>Se incluye audiodup, un script para encontrar duplicados más cómodamente.</li>
</ul>
<p>El script audiodup trabaja de manera eficiente:</p>
<ol>
<li>Genera una lista de archivos a analizar, según las rutas indicadas.</li>
<li>(Primera etapa) Descarta los archivos no duplicados según su tamaño.</li>
<li>(Segunda etapa) Descarta los archivos no duplicados según el primer 2% del contenido.</li>
<li>(Tercera etapa) Descarta los archivos no duplicados según el contenido completo.</li>
<li>Los archivos restantes son duplicados. Se agrupan y se presentan.</li>
</ol>
<p>Ejemplo de uso de audiodup, para buscar mp3 duplicados en $HOME y /mnt/music:</p>
<pre class="code"><code>audiodup $HOME /mnt/music
</code></pre>
<p>Ejemplo de uso de audiodup, usando sha1 y que revise el 5% en la segunda etapa:</p>
<pre class="code"><code>audiodup -a sha1 -b 5 $HOME /mnt/music
</code></pre>
<p>Descarga en .tar.gz: <a href="http://alvarezp.ods.org/blog/files/audiosum-0.2.tar.gz">audiosum-0.2.tar.gz</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2008/03/26/audiosum-02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>audiosum 0.1</title>
		<link>http://blog.alvarezp.org/2008/03/10/audiosum-01/</link>
		<comments>http://blog.alvarezp.org/2008/03/10/audiosum-01/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 10:39:53 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[audiosum]]></category>

		<guid isPermaLink="false">http://alvarezp.ods.org/blog/2008/03/10/audiosum-01/</guid>
		<description><![CDATA[Me complace anunciar formalmente la liberación de audiosum 0.1.
Audiosum es una herramienta que permite calcular la firma MD5 para un archivo MP3, pero ignorando la metainformación (etiquetas ID3v1, ID3v2, Lyrics3v1 y Lyrics3v2). En este momento no existe soporte para OGG.
Audiosum surge de la idea de buscar duplicados de audio cuando los archivos difieren únicamente en [...]]]></description>
			<content:encoded><![CDATA[<p>Me complace anunciar formalmente la liberación de <strong>audiosum 0.1</strong>.</p>
<p>Audiosum es una herramienta que permite calcular la firma MD5 para un archivo MP3, pero ignorando la metainformación (etiquetas ID3v1, ID3v2, Lyrics3v1 y Lyrics3v2). En este momento no existe soporte para OGG.</p>
<p>Audiosum surge de la idea de buscar duplicados de audio cuando los archivos difieren únicamente en sus etiquetas. Por ejemplo, en el siguiente ejemplo, existen cuatro archivos cuya firma MD5 es diferente, por lo que son diferentes. Sin embargo, su parte de audio es idéntica. Cuando audiosum muestra la firma MD5 del audio, uniq los detecta por lo que tranquilamente podemos borrar una de las copias de estos archivos.</p>
<pre class="code" style="font-size: 60%; line-height: 120%"><code>alvarezp@alvarezp-laptop:~$ md5sum (algunos archivos)
d662def56360c1ba71975fe0858651df  other/music/ALEX UBAGO - QUE PIDES TU.mp3
4e91970580b0355b3aa7e711416d50ba  other/music/Alex Ubago.- Vuelve.mp3
07894b351ae9df4a3c8ca487169e1524  DCIM/iPod_Control/Music/F00/ASFP.mp3
82db5ed3ffe951aba19cdd2d38cbea01  other/music/no doubt - bath water.mp3

alvarezp@alvarezp-laptop:~$ find -iname "*.mp3" | audiosum | sort | uniq -D -w 41
003c6b41 36d2a24f44413f4a4ab3282e7cea1649 [I3v1] [I3v2] [----] [----] ./other/music/ALEX UBAGO - QUE PIDES TU.mp3
003c6b41 36d2a24f44413f4a4ab3282e7cea1649 [I3v1] [----] [----] [----] ./other/music/Alex Ubago.- Vuelve.mp3
0058f7a4 17df577141ae1db6384309e2e3cbe2c6 [I3v1] [I3v2] [----] [----] ./DCIM/iPod_Control/Music/F00/ASFP.mp3
0058f7a4 17df577141ae1db6384309e2e3cbe2c6 [I3v1] [----] [----] [----] ./other/music/no doubt - bath water.mp3</code></pre>
<p>El primer valor que se imprime es el tamaño del audio procesado. El segundo valor es la firma MD5.</p>
<p>Obsérvese cómo a audiosum no se le proveen los archivos por la línea de comando sino por la entrada estándar. Se puede incluir <code>tee audiosum.out</code> antes de sort para que las firmas se almacenen en un archivo de texto antes de ser ordenadas. El comando <code>uniq -D -w 41</code> es el que se encarga de dejar únicamente los duplicados, considerando los primeros 41 caracteres.</p>
<p>Descarga en .tar.gz: <a href="http://alvarezp.ods.org/blog/files/audiosum-0.1.tar.gz">audiosum-0.1.tar.gz</a></p>
<p>Para compilar:</p>
<pre class="code"><code>#Instalar la librería mhash.
apt-get install libmhash-dev #para Ubuntu

#Descargar el archivo audiosum-0.1.tar.gz.
wget http://alvarezp.ods.org/blog/files/audiosum-0.1.tar.gz

#Descomprimir el paquete.
tar xvzf audiosum-0.1.tar.gz
cd audiosum-0.1

#Configurar y crear
./configure &#038;&#038; make

#Instalar
sudo make install
</code></pre>
<p>Ejemplos de uso de audiosum:</p>
<pre class="code"><code>find -iname "*.mp3" | audiosum
find -iname "*.mp3" | audiosum > audiosum.out
find -iname "*.mp3" | audiosum | tee audiosum.out
find -iname "*.mp3" | audiosum | sort | uniq -D -w 41
</code></pre>
<p>Saludos.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2008/03/10/audiosum-01/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Superkb 0.15</title>
		<link>http://blog.alvarezp.org/2008/02/20/superkb-015/</link>
		<comments>http://blog.alvarezp.org/2008/02/20/superkb-015/#comments</comments>
		<pubDate>Wed, 20 Feb 2008 17:02:42 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Superkb]]></category>

		<guid isPermaLink="false">http://alvarezp.ods.org/blog/2008/02/20/superkb-015/</guid>
		<description><![CDATA[En Superkb 0.15 se realizaron dos cambios mayores y varias correcciones. El primer cambio se explica mejor con unos pantallazos:
  DRAWKB_PAINTING_MODE: FULL SHAPE, FLAT_KEY o BASE_OUTLINE_ONLY.
Se han añadido dos modos nuevos para dibujar las teclas: FULL_SHAPE, donde se hace uso de toda la geometría de las teclas, proveída por el X Window System para [...]]]></description>
			<content:encoded><![CDATA[<p>En Superkb 0.15 se realizaron dos cambios mayores y varias correcciones. El primer cambio se explica mejor con unos pantallazos:</p>
<p style="text-align: center"><a href="http://alvarezp.ods.org/blog/imagenes/superkb/shots/0.15/full-shape.png"><img src="http://alvarezp.ods.org/blog/imagenes/superkb/shots/0.15/full-shape-thumb.png" /></a> <a href="http://alvarezp.ods.org/blog/imagenes/superkb/shots/0.15/flat-key.png"><img src="http://alvarezp.ods.org/blog/imagenes/superkb/shots/0.15/flat-key-thumb.png" /></a> <a href="http://alvarezp.ods.org/blog/imagenes/superkb/shots/0.15/base-outline.png"><img src="http://alvarezp.ods.org/blog/imagenes/superkb/shots/0.15/base-outline-thumb.png" /></a><br />DRAWKB_PAINTING_MODE: FULL SHAPE, FLAT_KEY o BASE_OUTLINE_ONLY.</p>
<p>Se han añadido dos modos nuevos para dibujar las teclas: FULL_SHAPE, donde se hace uso de toda la geometría de las teclas, proveída por el X Window System para simular la tecla completa; y FLAT_KEY, similar al modo original pero donde la tecla se dibuja plana, sólo su espacio base, lo que permite dibujar iconos y letras más grandes que en los demás modos, pero con menor detalle de las teclas.</p>
<p>El segundo cambio se alcanza a ver en los pantallazos: el código para dibujar los nombres de las teclas fue reestructurado en su totalidad, con el objetivo de que se maneje un tamaño diferente para cada renglón. Por ejemplo, en las Thinkpad, las teclas de función son más pequeñas, lo que sacrificaba el espacio de los iconos. El programa ahora es mucho tiene mejores criterios para escoger los tamaños de letra.</p>
<p>Los cambios menores fueron:</p>
<ul>
<li>SUPERKEY_REPLAY queda habilitado por defecto.</li>
<li>SUPERKEY_RELEASE_CANCELS queda deshabilitado por defecto.</li>
<li>Los colores por defecto quedaron como en los screenshots.</li>
<li>Opción de depuración (superkb -d).</li>
<li>Otras correcciones.</li>
</ul>
<p>Los enlaces:</p>
<ul>
<li>Página del proyecto: <a href="http://superkb.sourceforge.net/">http://superkb.sourceforge.net/</a></li>
<li>Proyecto en Sourceforge: <a href="http://sourceforge.net/projects/superkb">http://sourceforge.net/projects/superkb</a></li>
<li>Descarga en gz: <a href="http://prdownloads.sourceforge.net/superkb/superkb-0.15.tar.gz?download">superkb-0.15.tar.gz</a></li>
<li>Descarga en bz2: <a href="http://prdownloads.sourceforge.net/superkb/superkb-0.15.tar.bz2?download">superkb-0.15.tar.bz2</a></li>
<li>Descarga para Ubuntu: <a href="http://prdownloads.sourceforge.net/superkb/superkb_0.15_i386.deb?download">superkb_0.15_i386.deb</a></li>
<li>Descarga desde SVN: <code>svn co https://superkb.svn.sourceforge.net/svnroot/superkb/trunk superkb-svn</code></li>
<li>Suscripción RSS a liberaciones de archivos: <a href="http://sourceforge.net/export/rss2_projfiles.php?group_id=154661">http://sourceforge.net/export/rss2_projfiles.php?group_id=154661</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2008/02/20/superkb-015/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Superkb 0.14</title>
		<link>http://blog.alvarezp.org/2008/02/06/superkb-014/</link>
		<comments>http://blog.alvarezp.org/2008/02/06/superkb-014/#comments</comments>
		<pubDate>Thu, 07 Feb 2008 04:17:49 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Superkb]]></category>

		<guid isPermaLink="false">http://alvarezp.ods.org/blog/2008/02/06/superkb-014/</guid>
		<description><![CDATA[Después de mucho trabajo, quedó liberada la versión 0.14 de Superkb.
Las dos noticias son:

SUPERKEY_RELEASE_CANCELS: Si se configura en 0, los atajos se ejecutan aunque se suelte la tecla Super. Esto permite una mejor interacción. Yo mismo estaba harto del otro mecanismo.
Paquete para Ubuntu: Este paquete viene precompilado y teóricamente bastaría con dpkg -i superkb_0.14_i386.deb para [...]]]></description>
			<content:encoded><![CDATA[<p>Después de mucho trabajo, quedó liberada la versión 0.14 de Superkb.</p>
<p>Las dos noticias son:</p>
<ul>
<li>SUPERKEY_RELEASE_CANCELS: Si se configura en 0, los atajos se ejecutan aunque se suelte la tecla Super. Esto permite una mejor interacción. Yo mismo estaba harto del otro mecanismo.</li>
<li>Paquete para Ubuntu: Este paquete viene precompilado y teóricamente bastaría con <code>dpkg -i superkb_0.14_i386.deb</code> para ser instalado.</li>
</ul>
<p><span id="more-144"></span><br />
Sobre el paquete .deb, en teoría debe funcionar, pues es la primera vez que preparo un paquete .deb y no tengo idea de qué probar. Al menos yo lo intenté instalar con <code>dpkg -i superkb_0.14_i386.deb</code> y funcionó&#8230;</p>
<p>&#8230; a la segunda. Si se han fijado, no hay Superkb 0.13, y eso es porque me falló el paquete por no aplicar una variable, así que lo corregí y nos brincamos a la 0.14.</p>
<p>Si las dependencias les dan problemas, hagan <code>apt-get install libx11-6 libimlib2</code>.</p>
<p>¡OJO! El paquete AÚN NO INCLUYE CONFIGURACIÓN. Les dejo una copia de mi $HOME/.superkbrc para que se basen en ella y puedan probar el paquete.</p>
<pre class="code" style="font-size: 40%; line-height: 1.2;">
FEEDBACK_HANDLER "notify-send --urgency normal -t 2000 --icon='gtk-info' Superkb Launching\"

SUPERKEY_REPLAY 1
SUPERKEY_RELEASE_CANCELS 0
IMAGELIB imlib2
FONT "-*-bitstream vera sans-bold-r-*-*-*-*-*-*-*-*-*-*"

#Background verde
BACKGROUND 23 110 38
#Foreground blanco
FOREGROUND 255 255 255

KEY COMMAND "c" 0 /usr/bin/gcalctool /usr/share/icons/gnome/32x32/apps/accessories-calculator.png Calculator
KEY COMMAND "n" 0 /usr/bin/gedit /usr/share/icons/gnome/32x32/apps/text-editor.png gedit
KEY COMMAND "F9" 0 /usr/bin/opera /usr/share/opera/images/opera.xpm Opera
KEY COMMAND "F10" 0 "/usr/bin/xchat" /usr/share/pixmaps/xchat.png XChat
KEY COMMAND "F12" 0 /usr/bin/gnome-terminal /usr/share/pixmaps/gnome-terminal.png "'Terminal Emulator'"
KEY COMMAND "Home" 0 "/usr/bin/nautilus /home/alvarezp" /usr/share/pixmaps/gnome-home.png "'Home Folder'"
KEY COMMAND "Print" 0 "/usr/bin/gnome-screenshot" /usr/share/icons/gnome/48x48/apps/applets-screenshooter.png "Screenshooter"
KEY COMMAND "g" 0 /usr/bin/gimp /usr/share/pixmaps/gnome-gimp.png "'The Gimp'"
KEY COMMAND "q" 0 /usr/bin/pidgin /usr/share/icons/hicolor/48x48/apps/pidgin.png "Pidgin"
KEY COMMAND "x" 0 /usr/bin/audacious /usr/share/pixmaps/audacious.png "Audacious"
KEY COMMAND "Insert" 0 /usr/bin/gmrun /usr/share/icons/gnome/32x32/actions/gnome-run.png "'Application Launcher'"
KEY COMMAND "Delete" 0 /usr/bin/gnome-system-monitor /usr/share/icons/gnome/32x32/apps/gnome-monitor.png "'System Monitor'"
KEY COMMAND "Pause" 0 /usr/bin/hal-device-manager /usr/share/icons/gnome/48x48/apps/hwbrowser.png "'Hardware Browser"
KEY COMMAND "l" 0 "/usr/bin/gnome-screensaver-command --lock" /usr/share/icons/gnome/32x32/actions/gnome-lockscreen.png "'Screen Locker'"
KEY COMMAND "e" 0 "/usr/bin/evolution" /usr/share/icons/hicolor/32x32/apps/evolution.png "Evolution"
KEY COMMAND "F5" 0 "/usr/bin/soffice -writer" /usr/share/icons/hicolor/32x32/apps/openofficeorg23-writer.png "'OpenOffice.org Writer'"
KEY COMMAND "F6" 0 "/usr/bin/soffice -calc" /usr/share/icons/hicolor/32x32/apps/openofficeorg23-calc.png "'OpenOffice.org Calc'"
KEY COMMAND "F7" 0 "/usr/bin/soffice -impress" /usr/share/icons/hicolor/32x32/apps/openofficeorg23-impress.png "'OpenOffice.org Impress'"
KEY COMMAND "f" 0 "/usr/bin/dia" /usr/share/pixmaps/dia.xpm "Dia"
KEY COMMAND "F8" 0 "/usr/bin/firefox" /usr/share/pixmaps/firefox.png "Firefox"
KEY COMMAND "v" 0 VirtualBox /usr/share/pixmaps/VBox.png
</pre>
<p><strong>Actualización</strong>: Los enlaces del proyecto:</p>
<ul>
<li>Página del proyecto: <a href="http://superkb.sourceforge.net/">http://superkb.sourceforge.net/</a></li>
<li>Proyecto en Sourceforge: <a href="http://sourceforge.net/projects/superkb">http://sourceforge.net/projects/superkb</a></li>
<li>Descarga en gz: <a href="http://prdownloads.sourceforge.net/superkb/superkb-0.14.tar.gz?download">superkb-0.14.tar.gz</a></li>
<li>Descarga en bz2: <a href="http://prdownloads.sourceforge.net/superkb/superkb-0.14.tar.bz2?download">superkb-0.14.tar.bz2</a></li>
<li>Descarga para Ubuntu: <a href="http://prdownloads.sourceforge.net/superkb/superkb_0.14_i386.deb?download">superkb_0.14_i386.deb</a></li>
<li>Descarga desde SVN: <code>svn co https://superkb.svn.sourceforge.net/svnroot/superkb/trunk superkb-svn</code></li>
<li>Suscripción RSS a liberaciones de archivos: <a href="http://sourceforge.net/export/rss2_projfiles.php?group_id=154661">http://sourceforge.net/export/rss2_projfiles.php?group_id=154661</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2008/02/06/superkb-014/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Superkb&#8230; ¿para Windows? (qliner hotkeys)</title>
		<link>http://blog.alvarezp.org/2008/01/12/superkb-para-windows-qliner-hotkeys/</link>
		<comments>http://blog.alvarezp.org/2008/01/12/superkb-para-windows-qliner-hotkeys/#comments</comments>
		<pubDate>Sat, 12 Jan 2008 11:00:17 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Superkb]]></category>

		<guid isPermaLink="false">http://alvarezp.ods.org/blog/2008/01/12/superkb-para-windows-qliner-hotkeys/</guid>
		<description><![CDATA[Creo que el 2008 comenzó con el pie derecho para Superkb. Trataré de no ponerme sentimental mientras explico.
Hace unos meses, jmedina se tomó un tiempo para instalar Superkb. Me dio algunas ideas para mejorar el programa y creí que ahí había quedado todo. Sin embargo, me acaba de enviar un enlace que encontró:

http://www.qliner.com/hotkeys/

Se trata de [...]]]></description>
			<content:encoded><![CDATA[<p>Creo que el 2008 comenzó con el pie derecho para Superkb. Trataré de no ponerme sentimental mientras explico.</p>
<p>Hace unos meses, jmedina se tomó un tiempo para instalar Superkb. Me dio algunas ideas para mejorar el programa y creí que ahí había quedado todo. Sin embargo, me acaba de enviar un enlace que encontró:</p>
<p style="text-align: center"><a href="http://www.qliner.com/hotkeys/"><br />
http://www.qliner.com/hotkeys/</a><br /><a href="http://www.qliner.com/hotkeys/"><img style="width: 80%; max-width: 840 px" src="http://alvarezp.ods.org/blog/imagenes/hotkeys.png" alt="Pantallazo de qliner hotkeys" /></a></p>
<p><span id="more-139"></span><br />
Se trata de un proyecto de software que fue creado en momentos similares, con objetivos similares, con una filosofía similar y una licencia similar.</p>
<p>El proyecto se llama &#8220;qliner hotkeys&#8221;, y es para Windows. Para ser sincero, &#8220;qliner hotkeys&#8221; se ve mucho mejor y está mucho más desarrollado. Me parece fenomenal que alguien haya tenido la misma idea que yo y me sorprende que haya sido en tiempos similares.</p>
<p>A diferencia de Superkb, &#8220;qliner hotkeys&#8221; está escrito en C#, desarrollado para Windows, liberado bajo la licencia de MIT, y tiene mejor apariencia.</p>
<p>Esto representa un impulso para Superkb, puesto que la idea es la misma y los objetivos son sumamente parecidos.</p>
<p>Espero que esto represente el inicio de mucho desarrollo en Superkb para este año.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2008/01/12/superkb-para-windows-qliner-hotkeys/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Pantallazos de Superkb 0.12</title>
		<link>http://blog.alvarezp.org/2007/12/07/pantallazos-de-superkb-012/</link>
		<comments>http://blog.alvarezp.org/2007/12/07/pantallazos-de-superkb-012/#comments</comments>
		<pubDate>Sat, 08 Dec 2007 04:26:46 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Superkb]]></category>

		<guid isPermaLink="false">http://alvarezp.ods.org/blog/2007/12/07/pantallazos-de-superkb-012/</guid>
		<description><![CDATA[Superkb 0.12 con algunos &#8220;feedback handlers&#8221; configurados (con agradecimientos a Alfredo por el de Mumbles).
   
]]></description>
			<content:encoded><![CDATA[<p>Superkb 0.12 con algunos &#8220;feedback handlers&#8221; configurados (con agradecimientos a Alfredo por el de Mumbles).</p>
<p style="text-align: center"><a href="http://alvarezp.ods.org/blog/imagenes/superkb/shots/0.12/0.12-feedback-xmessage.png"><img src="http://alvarezp.ods.org/blog/imagenes/superkb/shots/0.12/0.12-feedback-xmessage-100-75.png" alt="Superkb con xmessage"/></a> <a href="http://alvarezp.ods.org/blog/imagenes/superkb/shots/0.12/0.12-feedback-osd.png"><img src="http://alvarezp.ods.org/blog/imagenes/superkb/shots/0.12/0.12-feedback-osd-100-75.png" alt="Superkb con OSD"/></a> <a href="http://alvarezp.ods.org/blog/imagenes/superkb/shots/0.12/0.12-feedback-notify-send.png"><img src="http://alvarezp.ods.org/blog/imagenes/superkb/shots/0.12/0.12-feedback-notify-send-100-75.png" alt="Superkb con notify-send de libnotify (paquete libnotify-bin de Ubuntu)"/></a> <a href="http://alvarezp.ods.org/blog/imagenes/superkb/shots/0.12/0.12-feedback-mumbles-aduarte-loading.png"><img src="http://alvarezp.ods.org/blog/imagenes/superkb/shots/0.12/0.12-feedback-mumbles-aduarte-loading-100-63.png" alt="Superkb con Mumbles"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2007/12/07/pantallazos-de-superkb-012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>En búsqueda del complemento perfecto</title>
		<link>http://blog.alvarezp.org/2007/11/19/en-busqueda-del-complemento-perfecto/</link>
		<comments>http://blog.alvarezp.org/2007/11/19/en-busqueda-del-complemento-perfecto/#comments</comments>
		<pubDate>Tue, 20 Nov 2007 01:54:11 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Superkb]]></category>

		<guid isPermaLink="false">http://alvarezp.ods.org/blog/2007/11/19/en-busqueda-del-complemento-perfecto/</guid>
		<description><![CDATA[Estoy buscando un cambiador de tareas (&#8221;task switcher&#8221;) sencillo y basado en X11 para complementar a Superkb. Hasta el momento sólo he visto Skippy. Me ha parecido interesante, aunque en mi máquina todavía no funciona del todo bien. ¿Alguien conoce alguno más?
Una de las ideas detrás de Superkb es ser algo innovador, y durante el [...]]]></description>
			<content:encoded><![CDATA[<p>Estoy buscando un cambiador de tareas (&#8221;task switcher&#8221;) sencillo y basado en X11 para complementar a <a href="http://superkb.sourceforge.net/">Superkb</a>. Hasta el momento sólo he visto <a href="http://thegraveyard.org/skippy.php">Skippy</a>. Me ha parecido interesante, aunque en mi máquina todavía no funciona del todo bien. ¿Alguien conoce alguno más?</p>
<p>Una de las ideas detrás de Superkb es ser algo innovador, y durante el desarrollo es algo que tengo muy en mente, pero al mismo tiempo lo cuestiono todo el tiempo. No puedo evitar preguntarme, por ejemplo, &#8220;¿cuándo algo es innovador?&#8221;.</p>
<p>¿Son GNOME y KDE innvoadores, en comparación con Windows? No. La idea detrás de estos entornos es proveer una interfaz familiar para el usuario nuevo. Sin embargo, se han olvidado del usuario no-tan-nuevo. Volvemos a la parodia de los carros Microsoft: para sentarse en el asiento del carro, todos los dueños deberían tener el trasero del mismo tamaño.</p>
<p>Hoy he caído en cuenta que la pregunta sobre si algo es innovador requiere de un acotamiento. Un carro puede traer un nuevo tipo de foco que tal vez es más estético y además alumbra mejor. El carro &#8220;innovó en el área de luces&#8221;. ¿Es un carro innovador? Sí lo es, en el sentido de que contiene una innovación; mas no lo es en el sentido de que trae el mismo motor que su predecesor, el mismo sistema de suspensión, etc. Además, tampoco lo es, en el sentido de que podría ser algo trivial de imaginar y hacer para otras personas.</p>
<p>¿Conoces el proyecto &#8220;<a href="http://udeproject.sourceforge.net/">Unix Desktop Environment</a>&#8220;? Este proyecto, UDE, es un manejador de ventanas que tiene como objetivo la simplicidad extrema: no tiene panel de tareas, ni menú de inicio, ni panel (de hecho no tiene nada). Todo eso corre por parte del usuario. Yo tenía una terminal cargada automáticamente al inicio. Además, no hay mucho interés en él ni mucho desarrollo desde hace algunos años. Un tiempo lo usé, cuando mi tarjeta de video era la más chafa de toda la ciudad y TWM parecía de juguete. Me sacó de apuros porque me permitió usar GNU de la manera más decente posible en ese entonces, hasta que encontré Xfce.</p>
<p>Cuando pensé en Superkb, inmediatamente pensé en ese manejador de ventanas. Pero falta una pieza importante: el cambiador de tareas, o &#8220;task switcher&#8221;, que corresponde en KDE, Windows y GNOME a la barra de tareas. Es decir, si en UDE hubiera contado con Superkb y ese incógnito cambiador de tareas, tal vez no hubiera necesitado migrar a Xfce.</p>
<p>Superkb tiene su propia idea de intercambiador de tareas, que espero que sea una sorpresa agradable para todos, pero no será una solución general. Superkb necesitará, además, un intercambiador de tareas auxiliar que abarque los casos que Superkb no abarcará, y aquí es donde Skippy y similares podrán ayudar mucho.</p>
<p>Entonces, ¿alguien conoce un Task Switcher para Linux?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2007/11/19/en-busqueda-del-complemento-perfecto/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
