<?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>D&#039;oh! &#187; Development</title>
	<atom:link href="http://pabloseminario.com/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://pabloseminario.com</link>
	<description>pabluk&#039;s blog</description>
	<lastBuildDate>Mon, 27 Feb 2012 06:05:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Screenkey 0.2 released!</title>
		<link>http://pabloseminario.com/2010/06/16/screenkey-0-2-released/</link>
		<comments>http://pabloseminario.com/2010/06/16/screenkey-0-2-released/#comments</comments>
		<pubDate>Wed, 16 Jun 2010 09:21:34 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[screenkey]]></category>

		<guid isPermaLink="false">http://pabloseminario.com.ar/?p=431</guid>
		<description><![CDATA[A few days ago I released the first version of Screenkey which was reviewed positively by OMG! Ubuntu!, Korben and Linux und Ich. &#160; &#160; &#160; Now, I&#8217;m happy to announce the release of Screenkey 0.2. This release includes A preferences dialog to adjust size and position Two keyboard modes (normal and raw) Command line options (see]]></description>
			<content:encoded><![CDATA[<div dir="ltr">A few days ago I released the first version of <a href="http://pabloseminario.com.ar/projects/screenkey/" target="_blank">Screenkey</a> which was reviewed positively by <a href="http://www.omgubuntu.co.uk/2010/06/screenkey-desktop-recording-tool.html" target="_blank">OMG! Ubuntu!</a>, <a href="http://www.korben.info/screenkey-le-logiciel-de-screencast-pour-ubuntu-qui-affiche-les-touches-tapees-au-clavier.html" target="_blank">Korben</a> and <a href="http://linuxundich.de/de/ubuntu/screenkey-eingaben-screencasts-visualisieren/" target="_blank">Linux und Ich</a>.</div>
<div dir="ltr">&nbsp;</div>
<div dir="ltr">&nbsp;</div>
<div dir="ltr">&nbsp;</div>
<div dir="ltr">Now, I&#8217;m happy to announce the release of Screenkey 0.2. This release includes</div>
<ul>
<li>A preferences dialog to adjust size and position</li>
<li>Two keyboard modes (normal and raw)</li>
<li>Command line options (see &#8211;help)</li>
<li>Some <a href="https://bugs.launchpad.net/screenkey/+bugs?field.status:list=FIXRELEASED" target="_blank">bug fixes</a></li>
</ul>
<p>The next release will include support for Launchpad translations, save session to file and more keyboard modes (specific vim and emacs key bindings).</p>
<p>Thanks to <a href="http://www.sparsebrain.com/" target="_blank">Ivan Makfinsky</a> for Fedora packaging and thanks to everyone who reported problems and made suggestions for improvement!</p>
]]></content:encoded>
			<wfw:commentRss>http://pabloseminario.com/2010/06/16/screenkey-0-2-released/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Another Counter&#8230; and J2ME</title>
		<link>http://pabloseminario.com/2010/04/08/another-counter-and-j2me/</link>
		<comments>http://pabloseminario.com/2010/04/08/another-counter-and-j2me/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 21:28:18 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[J2ME]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://pabloseminario.com.ar/?p=271</guid>
		<description><![CDATA[Just to try Java Wireless Toolkit, also know as J2ME, on my Samsung C3050 mobile phone I wrote a silly and simple application called Another Counter, wich as its name says is used to count things, like a tally counter, then you can count people, events, measure traffic, etc. A version of the toolkit for]]></description>
			<content:encoded><![CDATA[<p>Just to try Java Wireless Toolkit, also know as J2ME, on my Samsung C3050 mobile phone I wrote a silly and simple application called Another Counter, wich as its name says is used to count things, like a tally counter, then you can count people, events, measure traffic, etc.</p>
<p>A version of the toolkit for Linux can be downloaded from <a title="J2ME Download page" href="http://java.sun.com/products/sjwtoolkit/download.html" target="_blank">here</a>, it includes build tools, utilities, examples,  and a device emulator. With some knowledge of Java programming and reading the <a title="J2ME API" href="http://java.sun.com/javame/reference/apis/jsr118/" target="_self">API</a> is easy to write small applications like this.</p>
<p>To install and run the application on the phone you have to download these files: <a title="Another Counter JAD file" href="http://github.com/downloads/pabluk/AnotherCounter/AnotherCounter.jad">AnotherCounter.jad</a> and <a title="Another Counter JAR file" href="http://github.com/downloads/pabluk/AnotherCounter/AnotherCounter.jar">AnotherCounter.jar</a>.</p>
<p>The source code is licensed under GPL and hosted on <a title="Another Counter on Github" href="http://github.com/pabluk/AnotherCounter" target="_blank">GitHub</a>.</p>

<a href='http://pabloseminario.com/2010/04/08/another-counter-and-j2me/dscn8143/' title='Another Counter in action'><img width="150" height="150" src="http://pabloseminario.com/wp-content/uploads/2010/03/DSCN81431-150x150.jpg" class="attachment-thumbnail" alt="Another Counter in action" title="Another Counter in action" /></a>
<a href='http://pabloseminario.com/2010/04/08/another-counter-and-j2me/screenshot-6/' title='Java Wireless Toolkit for Linux'><img width="150" height="150" src="http://pabloseminario.com/wp-content/uploads/2010/03/Screenshot11-150x150.jpg" class="attachment-thumbnail" alt="Java Wireless Toolkit for Linux" title="Java Wireless Toolkit for Linux" /></a>
<a href='http://pabloseminario.com/2010/04/08/another-counter-and-j2me/dscn8135/' title='Samsung C3050'><img width="150" height="150" src="http://pabloseminario.com/wp-content/uploads/2010/03/DSCN81351-150x150.jpg" class="attachment-thumbnail" alt="Samsung C3050" title="Samsung C3050" /></a>
<a href='http://pabloseminario.com/2010/04/08/another-counter-and-j2me/dscn8136/' title='Samsung C3050 keyboard'><img width="150" height="150" src="http://pabloseminario.com/wp-content/uploads/2010/03/DSCN81361-150x150.jpg" class="attachment-thumbnail" alt="Samsung C3050 keyboard" title="Samsung C3050 keyboard" /></a>

]]></content:encoded>
			<wfw:commentRss>http://pabloseminario.com/2010/04/08/another-counter-and-j2me/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Metacity Window Buttons</title>
		<link>http://pabloseminario.com/2010/03/10/metacity-window-buttons/</link>
		<comments>http://pabloseminario.com/2010/03/10/metacity-window-buttons/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 23:24:58 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://pabloseminario.com.ar/?p=247</guid>
		<description><![CDATA[Una simple herramienta para configurar los botones de Metacity (el window manager del escritorio GNOME). Si estas usando Ubuntu Karmic Koala y querés configurar los botones para que se vean como en la nueva versión Lucid Lynx. O si usas Lucid Lynx y querés volver la configuración al estilo de Karmic Koala, lo podés hacer]]></description>
			<content:encoded><![CDATA[<p>Una simple herramienta para configurar los botones de Metacity (el window manager del escritorio GNOME).<br />
Si estas usando Ubuntu Karmic Koala y querés configurar los botones para que se vean como en la nueva versión Lucid Lynx. O si usas Lucid Lynx y querés volver la configuración al estilo de Karmic Koala, lo podés hacer sin tener que usar el editor de configuraciones de GNOME (gconf-editor).<br />
Me parece muy bueno el cambio en los botones de las ventanas para la nueva versión de Ubuntu, para hacerlo diferente, único. Costará un poco adaptarse pero es como todo, por eso yo ya cambié el estilo de los botones en mi Karmic <img src='http://pabloseminario.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> . De todas formas si a alguien no le gusta lo puede cambiar a su gusto, incluso si lo preferís, podés sacar todos los botones de las ventanas <img src='http://pabloseminario.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> <br />

<a href='http://pabloseminario.com/2010/03/10/metacity-window-buttons/pantallazo/' title='Pantallazo'><img width="150" height="150" src="http://pabloseminario.com/wp-content/uploads/2010/03/Pantallazo1-150x150.jpg" class="attachment-thumbnail" alt="Pantallazo" title="Pantallazo" /></a>
<a href='http://pabloseminario.com/2010/03/10/metacity-window-buttons/screenshot-3-2/' title='Screenshot-3'><img width="150" height="150" src="http://pabloseminario.com/wp-content/uploads/2010/03/Screenshot-31-150x150.jpg" class="attachment-thumbnail" alt="Screenshot-3" title="Screenshot-3" /></a>
<a href='http://pabloseminario.com/2010/03/10/metacity-window-buttons/screenshot-2-2/' title='Screenshot-2'><img width="150" height="150" src="http://pabloseminario.com/wp-content/uploads/2010/03/Screenshot-21-150x150.jpg" class="attachment-thumbnail" alt="Screenshot-2" title="Screenshot-2" /></a>
<a href='http://pabloseminario.com/2010/03/10/metacity-window-buttons/screenshot-1-2/' title='Screenshot-1'><img width="150" height="150" src="http://pabloseminario.com/wp-content/uploads/2010/03/Screenshot-11-150x150.jpg" class="attachment-thumbnail" alt="Screenshot-1" title="Screenshot-1" /></a>
<a href='http://pabloseminario.com/2010/03/10/metacity-window-buttons/screenshot-5/' title='Screenshot'><img width="150" height="150" src="http://pabloseminario.com/wp-content/uploads/2010/03/Screenshot2-150x150.jpg" class="attachment-thumbnail" alt="Screenshot" title="Screenshot" /></a>
<br />
Este es el enlace a la página de <a href="https://launchpad.net/mwbuttons/+download">descarga</a>.<br />
Y estos son los pasos para descargarlo y ejectuarlo desde una terminal</p>
<pre class="brush:bash; light: true; auto-links: false;">wget http://launchpad.net/mwbuttons/trunk/v0.2/+download/mwbuttons
chmod +x
./mwbuttons</pre>
<p>La aplicación esta hosteada en <a href="https://launchpad.net/mwbuttons">Launchpad</a> y la idea inicial fue solo para probar el módulo gconf de Python y el plugin de Launchpad para Bazaar.</p>
]]></content:encoded>
			<wfw:commentRss>http://pabloseminario.com/2010/03/10/metacity-window-buttons/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Compilando php-gtk2 en Ubuntu 8.10</title>
		<link>http://pabloseminario.com/2009/01/11/compilando-php-gtk2-en-ubuntu-8-10/</link>
		<comments>http://pabloseminario.com/2009/01/11/compilando-php-gtk2-en-ubuntu-8-10/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 18:14:00 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.pabloseminario.com.ar/?p=36</guid>
		<description><![CDATA[Update! you can read this post translated to English here. Escribo este post porque compilar PHP-GTK 2 en Ubuntu Intrepid no es tan obvio como debería ser, o al menos como dicen acá. Descargué la última versión estable de PHP-GTK 2, la 2.0.1 pero al intentar compilarlo tira algunos errores, en LaunchPad hay un reporte]]></description>
			<content:encoded><![CDATA[<p><em><span style="color: #ff0000;">Update!</span></em> you can read this post translated to English <a href="/howtos/php-gtk2/">here</a>.</p>
<p>Escribo este post porque compilar <a href="http://gtk.php.net" target="_blank">PHP-GTK 2</a> en Ubuntu Intrepid no es tan obvio como debería ser, o al menos como dicen <a href="http://gtk.php.net/manual/en/tutorials.installation.linux.php" target="_blank">acá</a>.<br />
Descargué la última versión estable de PHP-GTK 2, la <a href="http://gtk.php.net/download.php" target="_blank">2.0.1</a> pero al intentar compilarlo tira algunos errores, en <a href="https://bugs.launchpad.net/ubuntu/+source/php5/+bug/262251" target="_blank">LaunchPad</a> hay un reporte sobre este bug. El fix para esto es</p>
<pre class="brush:shell; light: true;">cd /usr/share/aclocal
cat lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 &gt;&gt; libtool.m4</pre>
<p>por un problema con libtool.<br />
El tema es que después de hacer esto tampoco compiló. Se me ocurrió probar la versión del CVS de PHP-GTK pero pasaba el <span style="font-family: monospace;">configure</span> pero al hacer <span style="font-family: monospace;">make</span> tiraba otros errores.<br />
La solución fue descargar la versión anterior a la estable de PHP-GTK, la 2.0.0. Este es el link para descargarla <a href="http://gtk.php.net/do_download.php?download_file=php-gtk-2.0.0.tar.gz" target="_blank">http://gtk.php.net/do_download.php?download_file=php-gtk-2.0.0.tar.gz</a><br />
Una vez descargado, solo hay que hacer</p>
<pre class="brush:shell; light: true;">./buildconf --with-phpize=/usr/bin/phpize5
./configure --with-php-config=/usr/bin/php-config5
make
sudo make install</pre>
<p>Después para poder usarlo hay que crear <span style="font-family: monospace;">/etc/php5/conf.d/php_gtk2.ini</span>, con el siguiente contenido</p>
<pre class="brush:shell; light: true;">extension=php_gtk2.so</pre>
<p>para comprobar si el módulo carga correctamente</p>
<pre class="brush:shell; light: true;">php -m|grep php-gtk</pre>
<p>y listo, ese fue todo el post dominguero <img src='http://pabloseminario.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://pabloseminario.com/2009/01/11/compilando-php-gtk2-en-ubuntu-8-10/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Another Twitter command-line client</title>
		<link>http://pabloseminario.com/2008/06/13/another-twitter-command-line-client/</link>
		<comments>http://pabloseminario.com/2008/06/13/another-twitter-command-line-client/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 23:46:00 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://blog.pabloseminario.com.ar/?p=24</guid>
		<description><![CDATA[No sé hasta cuando me va a durar, pero por ahora sigo usando Twitter. El tema o la excusa para escribir este script, es que es un embole tener un browser corriendo solo para ver los updates. Y aprovechando que la API esta por todos lados y no es nada complicado hacerse un cliente en]]></description>
			<content:encoded><![CDATA[<p>No sé hasta cuando me va a durar, pero por ahora sigo usando <a href="http://twitter.com/pabluk" target="_blank">Twitter</a>. El tema o la excusa para escribir este script, es que es un embole tener un browser corriendo solo para ver los updates. Y aprovechando que la <a href="http://groups.google.com/group/twitter-development-talk/web/api-documentation" target="_blank">API</a> esta por todos lados y no es nada complicado hacerse un cliente en cualquier lenguaje. En este caso lo hice con PHP, si si ya sé que podría haber usado hasta bash y tidy para esto. Pero esto fue lo más rápido que encontré para hacerlo, solo necesitaba PHP para parsear JSON y un poco de PEAR. <a href="http://twitter.com" target="_blank">Twitter</a> también soporta XML, RSS y ATOM.</p>
<pre class="brush:php">&lt;?php
include ("HTTP/Request.php");

$user = "pabluk";
$pass = "pass";

$timeline = new HTTP_Request("http://twitter.com/statuses/friends_timeline/" .
                             $user . ".json");
$timeline-&gt;setBasicAuth($user, $pass);
$timeline-&gt;sendRequest();

$updates = array_reverse(json_decode($timeline-&gt;getResponseBody(), TRUE));

foreach ($updates as $update) {
    if ($update['user']['screen_name'] == $user) {
        echo "\033[32m" . $update['user']['screen_name'] . ":\33[37m " .
             $update['text'] . "\n";
    } else {
        echo "\033[33m" . $update['user']['screen_name'] . ":\33[37m " .
             $update['text'] . "\n";
    }
}

?&gt;</pre>
<p>Bastante sencillo, muestra el username en color y uso <span style="font-family:monospace;">array_reverse()</span> para ordenar los updates en la terminal, así aparecen los más recientes al final.<br />
Lo ejecuto con</p>
<pre class="brush:shell; light: true;">pabluk@amidala:~$ php twitter-status.php</pre>
<p>Para tenerlo cada tanto actualizado se puede correr con</p>
<pre class="brush:shell; light: true;">pabluk@amidala:~$ while : ; do clear ; php twitter-status.php ; sleep 120 ; done</pre>
<p>Y por supuesto que también se pueden enviar updates, usando <span style="font-family:monospace;">curl</span></p>
<pre class="brush:shell">
#!/bin/bash
curl -u "pabluk:pass" -d status="$@" \
        "http://twitter.com/statuses/update.json" &amp;&gt; /dev/null</pre>
<p>y haciendo</p>
<pre class="brush:shell; light: true;">pabluk@amidala:~$ twitter-update.sh "fin del post..."</pre>
]]></content:encoded>
			<wfw:commentRss>http://pabloseminario.com/2008/06/13/another-twitter-command-line-client/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webcam shots and the Picasa Web Data API</title>
		<link>http://pabloseminario.com/2008/06/03/webcam-shots-and-the-picasa-web-data-api/</link>
		<comments>http://pabloseminario.com/2008/06/03/webcam-shots-and-the-picasa-web-data-api/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 13:20:00 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[laptop]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.pabloseminario.com.ar/?p=21</guid>
		<description><![CDATA[Hace unos días estuve probando darle algún otro uso a la webcam de mi latop. Y terminé probando esto. Capturar imágenes con la webcam y enviarlas a un webserver, en este caso como no tengo un hosting ni tengo forma de llegar al puerto 80 de mi router desde internet, se me ocurrió usar la]]></description>
			<content:encoded><![CDATA[<p><a href="http://picasaweb.google.com/pabluk/Webcam/photo#5196300634587782386" target="_blank"><img style="float: left; margin:0 10px 0 0;" src="http://lh3.ggpht.com/pabluk/SBz35V693PI/AAAAAAAAEFM/5eoiK7IuW-0/s144/Picture18.jpg" alt="" /></a><br />
Hace unos días estuve probando darle <span style="text-decoration: line-through;">algún</span> otro uso a la webcam de mi latop. Y terminé probando esto.<br />
Capturar imágenes con la webcam y enviarlas a un webserver, en este caso como no tengo un hosting ni tengo forma de llegar al puerto 80 de mi router desde internet, se me ocurrió usar la <a href="http://code.google.com/apis/picasaweb/overview.html" target="_blank">API</a> de Picasa Web para subir las fotos a un álbum desde un script.<br />
Para capturar las imágenes probé varios programas que están en los repos de Ubuntu, pero termine usando <a href="http://www.firestorm.cx/fswebcam/" target="_blank">fswebcam</a> que no está en los repos, más que nada porque soporta <span style="font-family:monospace;">v4l2</span>, que es el driver con el que funciona mi webcam.<br />
Con fswebcam tomo la foto, le seteo el tamaño, un titulo, etc. Y usando <span style="font-family:monospace;">curl</span> subo la imagen a un álbum público de Picasa Web. La <a href="http://code.google.com/apis/picasaweb/overview.html" target="_blank">API</a> de Picasa Web está bastante documentada así que no hubo muchos problemas para hacerlo.<br />
Acá están los scripts para capturar la imagen y para subirla a Picasa Web.</p>
<pre class="brush: shell;">
#!/bin/sh

fswebcam  --resolution 640x480 --timestamp "%d.%m.%Y %H:%M GMT-03:00" \
          --banner-colour "#AA000000" --line-colour "#ff000000" --skip 50 \
          --loop 30 --title "PaBLuK" \
          --font "/usr/share/fonts/truetype/freefont/FreeSans.ttf:10" \
          --exec subirFotoPicasa.sh ~/webcamshots/habitacion.jpg
</pre>
<p>Con la opción <span style="font-family:monospace;">&#8211;exec</span> ejecuta el script que sube la imagen después de capturada.</p>
<pre class="brush: shell">
#!/bin/bash

FOTO="/home/pabluk/webcamshots/habitacion.jpg"

AUTHKEY="$(curl --silent https://www.google.com/accounts/ClientLogin \
                --data Email=pabluk@gmail.com --data Passwd=eltuyo \
                --data accountType=GOOGLE --data source=Google-cURL-Example \
                --data service=lh2 | grep Auth)"

FOTOID="$(curl --silent --header "Authorization: GoogleLogin $AUTHKEY" \
      "http://picasaweb.google.com/data/feed/api/user/pabluk/album/Webcam?kind=photo" \
      | tidy -quiet -xml|grep -A 1 edit-media|grep href| cut -d "'" -f 2)"

curl --silent --request PUT --data-binary "@$FOTO" --header "Content-Type: image/jpg" \
     --header "Authorization: GoogleLogin $AUTHKEY" "$FOTOID" | tidy -quiet -xml
</pre>
<p>En estas líneas se autentifica, toma el id de la imagen dentro del albúm, en mi caso el álbum se llama Webcam, y con la última línea sube y reemplaza la imagen.</p>
<p>Lo bueno:</p>
<ul>
<li>No se necesita tener un hosting.</li>
<li>No me preocupo por el BW consumido, que no es poco.</li>
</ul>
<p>Lo malo:</p>
<ul>
<li>No se puede agregar Javascript o algo para recargar la página de la foto automáticamente desde Picasa Web.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://pabloseminario.com/2008/06/03/webcam-shots-and-the-picasa-web-data-api/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Freedesktop specs y mi patch para Conky</title>
		<link>http://pabloseminario.com/2008/05/17/freedesktop-specs-y-mi-patch-para-conky/</link>
		<comments>http://pabloseminario.com/2008/05/17/freedesktop-specs-y-mi-patch-para-conky/#comments</comments>
		<pubDate>Sat, 17 May 2008 18:59:00 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.pabloseminario.com.ar/?p=14</guid>
		<description><![CDATA[Para los que no lo conocen se podría decir que Conky es un monitor de sistema, como gkrellm, nada más que este es un fork de Torsmo. Se lo puede utilizar para monitorear casi cualquier cosa, uso de CPU, memoria, tráfico de red, sockets, disco, mpd, etc. En esta imagen lo que está a la]]></description>
			<content:encoded><![CDATA[<p>Para los que no lo conocen se podría decir que <a href="http://conky.sourceforge.net/" target="_blank">Conky</a> es un monitor de sistema, como gkrellm, nada más que este es un fork de Torsmo. Se lo puede utilizar para monitorear casi cualquier cosa, uso de CPU, memoria, tráfico de red, sockets, disco, mpd, etc. En esta <a href="http://4.bp.blogspot.com/_q0bemMki3uo/SBFpI16927I/AAAAAAAADj0/fO-KQNxc2N8/s1600-h/EmacsFirefox.jpg" target="_blank">imagen</a> lo que está a la derecha es Conky.<br />
Hasta ahí todo muy bueno pero tengo el problema que si maximizo una aplicación me lo tapa o cuando el window manager mapea una ventana nueva a veces me lo tapa. Y es un perno, al menos para mí.<br />
Para solucionarlo probé cambiando el <span style="font-style:italic;">placement mode</span> de mi window manager a <span style="font-style:italic;">Centered</span>, <span style="font-style:italic;">Random</span>, <span style="font-style:italic;">Smart</span> y nada. Cambiar el tamaño del <span style="font-style:italic;">output device</span> en Compiz tampoco, busqué si había alguna opción para que las ventanas solo se maximizaran hasta un tamaño máximo pero ni ahí. Tampoco era una solución que aparezca siempre encima de todas las ventanas, porque tapa el contenido de la ventana que queda debajo. En internet, incluida la web de Conky, no encontré nada, parece que a nadie le molesta <img src='http://pabloseminario.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> <br />
Después me dí cuenta de que el comportamiento que yo quería es como el de los panels de Gnome, así que fui a ver la fuentes de Conky y para entender un poco tuve que consultar algunas especificaciones de freedesktop.org, en especial <a href="http://standards.freedesktop.org/wm-spec/wm-spec-1.4.html" target="_blank">esta</a>.<br />
Para bajar las fuentes y poder compilar Conky en Ubuntu hay que poner</p>
<pre class="brush:bash; light: true;">
sudo apt-get install build-essential
sudo apt-get build-dep conky
apt-get source conky
</pre>
<p>Después de un rato entendí que lo que había que hacer es setear una propiedad de la ventana de Conky que se llama <span style="font-family:monospace;">_NET_WM_STRUT</span>.<br />
Y bueno con mi conocimiento básico de C hice este patch</p>
<pre class="brush:diff; light: true;">
--- conky-1.5.1.orig/src/x11.c 2008-03-31 01:56:42.000000000 -0300
+++ conky-1.5.1/src/x11.c 2008-05-17 16:03:21.000000000 -0300
@@ -535,6 +535,38 @@
  return (long) color.pixel;
 }

+/* Reserve space at the borders of the desktop */
+void set_strut(int window, int x, int y, int w, int h)
+{
+    Atom xa;
+
+    xa = ATOM(_NET_WM_STRUT);
+    if (xa != None) {
+        int left = 0;
+        int right = 0;
+        int top = 0;
+        int bottom = 0;
+
+        if (w &lt; h) {
+            if (x &lt;= display_width / 2) {
+                left = w;
+            } else {
+                right = w;
+            }
+        } else {
+            if (y &lt;= display_height / 2) {
+                top = h;
+            } else {
+                bottom = h;
+            }
+        }
+
+     CARD32 prop[4] = { left, right, top, bottom };
+     XChangeProperty(display, window, xa, XA_CARDINAL, 32,
+  PropModeAppend, (unsigned char *) prop, 4);
+    }
+}
+
 void create_gc(void)
 {
  XGCValues values;

--- conky-1.5.1.orig/src/conky.c 2008-04-01 00:52:20.000000000 -0300
+++ conky-1.5.1/src/conky.c 2008-05-17 14:45:58.000000000 -0300
@@ -7208,6 +7208,7 @@
      window.height = text_height + border_margin * 2 + 1;
      XResizeWindow(display, window.window, window.width,
       window.height);
+     set_strut(window.window, window.x, window.y, window.width, window.height);
      if (own_window) {
       set_transparent_background(window.window);
      }
</pre>
<p>Con eso funciona y queda solucionado mi problema!</p>
]]></content:encoded>
			<wfw:commentRss>http://pabloseminario.com/2008/05/17/freedesktop-specs-y-mi-patch-para-conky/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Vim para CakePHP</title>
		<link>http://pabloseminario.com/2008/04/08/vim-para-cakephp/</link>
		<comments>http://pabloseminario.com/2008/04/08/vim-para-cakephp/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 23:59:00 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.pabloseminario.com.ar/?p=10</guid>
		<description><![CDATA[Hace un tiempo que me decidí a usar algún framework para PHP, cansado de tener que usar mis libs, que por supuesto estaban lejos de ser perfectas, pero que en su momento me fueron útiles. Terminé elegiendo, por ahora, CakePHP. Es bastante fácil de entender, mucho mas que el framework de Zend y se ajusta]]></description>
			<content:encoded><![CDATA[<p>Hace un tiempo que me decidí a usar algún framework para <a href="http://www.php.net">PHP</a>, cansado de tener que usar mis libs, que por supuesto estaban lejos de ser perfectas, pero que en su momento me fueron útiles. Terminé elegiendo, por ahora, <a href="http://cakephp.org/">CakePHP</a>. Es bastante fácil de entender, mucho mas que el framework de <a href="http://framework.zend.com/">Zend</a> y se ajusta a lo que necesito&#8230; hacer mucho con poco esfuerzo <img src='http://pabloseminario.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> <br />
Lo único que me faltaba era decidirme por un <a href="http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado">IDE</a> o un editor de código, a pesar de los grandes <a href="http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado">IDE</a> como <a href="http://www.eclipse.org/">Eclipse</a> y otros. Me terminé decidiendo por Vim, ya sé que muchos me recordaran que siempre me incliné por Emacs (ping Pepe) pero a pesar de es el mejor editor de texto, creo que Vim gana por su sencillez.</p>
<p>Así que ahora a configurar Vim para hacer más fácil la vida con <a href="http://cakephp.org/">CakePHP.</a> Lo que voy a mostrar es como agregar el resaltado de sintaxis para los archivos .thtml usados en <a href="http://cakephp.org/">CakePHP.</a><br />
Sacado de <a href="http://bakery.cakephp.org">The Bakery</a>, sitio donde se cocina <a href="http://cakephp.org/">CakePHP,</a> estan estos sencillos pasos</p>
<div class="code">
<pre>mkdir ~/.vim
vi ~/.vim/filetype.vim</pre>
</div>
<p>y agregamos esto</p>
<div class="code">
<pre>" my filetype file
   if exists("did_load_filetypes")
     finish
   endif
   augroup filetypedetect
     au! BufRead,BufNewFile *.thtml     setfiletype html
   augroup END</pre>
</div>
<p>Solo queda guardar, salir y voilà!</p>
]]></content:encoded>
			<wfw:commentRss>http://pabloseminario.com/2008/04/08/vim-para-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mmm&#8230; rotar slogan con Drupal</title>
		<link>http://pabloseminario.com/2007/02/23/mmm-rotar-slogan-con-drupal/</link>
		<comments>http://pabloseminario.com/2007/02/23/mmm-rotar-slogan-con-drupal/#comments</comments>
		<pubDate>Fri, 23 Feb 2007 12:08:00 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://blog.pabloseminario.com.ar/?p=6</guid>
		<description><![CDATA[Quizás no muchos sepan que últimamente me estoy dedicando, entre otras cosas, a desarrollar módulos para un CMS llamado Drupal. La idea es que tengo ganas de hacer un módulo que eliga de una lista de slogans uno al azar para mostrar cada vez que se carga alguna página del sitio web. Puede ser que]]></description>
			<content:encoded><![CDATA[<p>Quizás no muchos sepan que últimamente me estoy dedicando, entre otras cosas, a desarrollar módulos para un <a href="http://es.wikipedia.org/wiki/Sistema_de_gesti%C3%B3n_de_contenido">CMS</a> llamado <a href="http://www.drupal.org/">Drupal</a>.<br />
La idea es que tengo ganas de hacer un módulo que eliga de una lista de slogans uno al azar para mostrar cada vez que se carga alguna página del sitio web. Puede ser que esta idea no sea muy original, es más quizás ya existe este módulo. Pero bueno si existe voy a ver en que estado está y sino lo voy a crear.<br />
De más esta decir lo bueno que esta <a href="http://www.drupal.org/">Drupal</a> para desarrollar sitios web, es increíble!!, bien documentado, diseño modular, claro, etc&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://pabloseminario.com/2007/02/23/mmm-rotar-slogan-con-drupal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como setear el número de columnas en Emacs</title>
		<link>http://pabloseminario.com/2006/12/11/como-setear-el-numero-de-columnas-en-emacs/</link>
		<comments>http://pabloseminario.com/2006/12/11/como-setear-el-numero-de-columnas-en-emacs/#comments</comments>
		<pubDate>Mon, 11 Dec 2006 14:28:00 +0000</pubDate>
		<dc:creator>Pablo</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.pabloseminario.com.ar/?p=5</guid>
		<description><![CDATA[Algo que siempre olvido, al menos por ahora que estoy comenzando a usar Emacs, es como setear la cantidad de columnas a 72. Por lo general lo uso así cuando quiero editar documentos o notas en texto plano, solo para que se vean un poco más prolijas. Buscando un poco en Google encontré la esta]]></description>
			<content:encoded><![CDATA[<p>Algo que siempre olvido, al menos por ahora que estoy comenzando a usar <span style="font-style: italic;">Emacs</span>, es como setear la cantidad de columnas a 72. Por lo general lo uso así cuando quiero editar documentos o notas en texto plano, solo para que se vean un poco más prolijas.<br />
Buscando un poco en <a href="http://www.google.com/">Google</a> encontré la  esta <a href="http://homepages.inf.ed.ac.uk/s0243221/emacs/">página</a> que mas o menos decía lo que estaba buscando.<br />
Resumiendo, las opciones son</p>
<ul>
<li>column-number-mode para ver el número de columna.</li>
<li>set-fill-column para establecer la cantidad de columnas. En este caso es necesario pasarle como argumento el número de columnas. Lo podemos hacer con &#8216;C-u 3 Alt-x&#8217; o &#8216;ESC 3 Alt-x&#8217; &#8216;Alt-3 Alt-x&#8217;.
</li>
<li>auto-fill-mode para que corte automáticamente las líneas al ancho de las columnas.</li>
</ul>
<p>Con esto me es sufiente por ahora para mejorar mi entorno <span style="font-style: italic;">Emacs</span><span>.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://pabloseminario.com/2006/12/11/como-setear-el-numero-de-columnas-en-emacs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

