<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>SIGQUIT</title>
	<atom:link href="http://sigquit.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://sigquit.wordpress.com</link>
	<description>... and core dumped</description>
	<lastBuildDate>Wed, 25 Jan 2012 14:21:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='sigquit.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>SIGQUIT</title>
		<link>http://sigquit.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://sigquit.wordpress.com/osd.xml" title="SIGQUIT" />
	<atom:link rel='hub' href='http://sigquit.wordpress.com/?pushpress=hub'/>
		<item>
		<title>FSCONS 2011 and GNU get-together</title>
		<link>http://sigquit.wordpress.com/2011/11/04/fscons-2011-and-gnu-get-together/</link>
		<comments>http://sigquit.wordpress.com/2011/11/04/fscons-2011-and-gnu-get-together/#comments</comments>
		<pubDate>Fri, 04 Nov 2011 13:08:30 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[GNU Planet]]></category>
		<category><![CDATA[Lanedo Planet]]></category>
		<category><![CDATA[Meetings]]></category>
		<category><![CDATA[Planets]]></category>
		<category><![CDATA[fscons]]></category>
		<category><![CDATA[ghm]]></category>
		<category><![CDATA[gnu]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=402</guid>
		<description><![CDATA[I&#8217;ll be attending FSCONS 2011 in Göteborg (Sweden) next week (11/11/11), which also holds a GNU get-together, with lots of usual suspects. Carlos Garnacho, another Lanedian, will be giving a talk about Theming GTK+ applications with CSS, which you shouldn&#8217;t miss. So, if you are interested in developing custom GTK+, LibreOffice, NetworkManager, ModemManager or Tracker [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=402&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be attending <a href="http://fscons.org/" title="FSCONS website" target="_blank"><strong>FSCONS 2011</strong></a> in Göteborg (Sweden) next week (11/11/11), which also holds a <a href="http://www.gnu.org/ghm/2011/fscons/GHM.html" title="GNU get-together" target="_blank">GNU get-together</a>, with lots of usual suspects.</p>
<p><a href="http://blogs.gnome.org/carlosg" target="_blank">Carlos Garnacho</a>, another Lanedian, will be giving a talk about <a href="http://my.fscons.org/schedule/session/67" target="_blank">Theming GTK+ applications with CSS</a>, which you shouldn&#8217;t miss.</p>
<p>So, if you are interested in developing custom <a href="http://www.gtk.org" target="_blank">GTK+</a>, <a href="http://www.libreoffice.org" target="_blank">LibreOffice</a>, <a href="http://projects.gnome.org/NetworkManager" target="_blank">NetworkManager, ModemManager</a> or <a href="http://projects.gnome.org/tracker" target="_blank">Tracker</a> features; or any <a href="http://www.lanedo.com/services.html" target="_blank">other services</a> provided by <a href="http://www.lanedo.com/" target="_blank"><strong>Lanedo GmbH</strong></a>, just email me and we&#8217;ll be able to talk in Göteborg.</p>
<p>See you there!</p>
<br />Filed under: <a href='http://sigquit.wordpress.com/category/planets/gnu-planet/'>GNU Planet</a>, <a href='http://sigquit.wordpress.com/category/planets/lanedo-planet/'>Lanedo Planet</a>, <a href='http://sigquit.wordpress.com/category/meetings/'>Meetings</a>, <a href='http://sigquit.wordpress.com/category/planets/'>Planets</a> Tagged: <a href='http://sigquit.wordpress.com/tag/fscons/'>fscons</a>, <a href='http://sigquit.wordpress.com/tag/ghm/'>ghm</a>, <a href='http://sigquit.wordpress.com/tag/gnu/'>gnu</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/402/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=402&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2011/11/04/fscons-2011-and-gnu-get-together/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Your custom kernel in MeeGo</title>
		<link>http://sigquit.wordpress.com/2011/09/02/your-custom-kernel-in-meego/</link>
		<comments>http://sigquit.wordpress.com/2011/09/02/your-custom-kernel-in-meego/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 09:20:58 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Lanedo Planet]]></category>
		<category><![CDATA[MeeGo]]></category>
		<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Planets]]></category>
		<category><![CDATA[kernel]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=387</guid>
		<description><![CDATA[In my last post I covered the steps needed to create custom MeeGo images and play with them. One of the things you may also want to do is to try new or modified kernels in your MeeGo images. You can do this either installing RPMs or directly compiling the kernel yourself. The following steps [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=387&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In my last post I covered the <a href="http://sigquit.wordpress.com/2011/09/01/your-custom-meego-builds/">steps needed to create custom MeeGo images</a> and play with them.</p>
<p>One of the things you may also want to do is to try new or modified kernels in your MeeGo images. You can do this either installing RPMs or directly compiling the kernel yourself. The following steps will cover this last case.</p>
<h4>1. Where to compile the kernel</h4>
<p>No, do not try to compile the kernel directly in a raw image launched within KVM/QEMU.</p>
<p>The easiest way to compile your own kernel is to <strong>prepare a loop image and chroot into it</strong> (See section <em>&#8220;6. Create a loop image and chroot into it&#8221;</em> in <a href="http://sigquit.wordpress.com/2011/09/01/your-custom-meego-builds/">Your custom MeeGo builds</a>).</p>
<p><em>Note: In order to completely compile the kernel, you will need quite a lot of empty space in the chroot. In order to easily get this, just use a big enough root partition size (given in MBytes) in the Kickstart file used to create the loop image.</em></p>
<h4>2. Get into the chroot</h4>
<p>Assuming <code>meego-core-ia32.img</code> is a loop image created, just:<br />
<code><br />
$&gt; sudo mic-chroot meego-core-ia32.img<br />
</code></p>
<h4>3. Ensure only one kernel is available</h4>
<p>The MeeGo Image Creation tools will expect to have exactly only one kernel available. Therefore, if you just created the loop image, you will need to remove the default kernel RPM installed.<br />
<code><br />
# rpm -e kernel<br />
</code></p>
<h4>4. Install the MeeGo kernel source and build dependencies</h4>
<p>You will need to enable the source repositories in zypper first:<br />
First, list the available repositories in zypper:<br />
<code><br />
#  zypper lr -u<br />
</code></p>
<p><em>Note that these repositories were initially configured in the Kickstart file used to create the loop image.</em></p>
<p>Then, enable the source repositories if not already done.<br />
<code><br />
# zypper mr -e 1.2.0-non-oss-source<br />
# zypper mr -e 1.2.0-oss-source<br />
# zypper mr -e 1.2.0-updates-non-oss-source<br />
# zypper mr -e 1.2.0-updates-oss-source<br />
</code></p>
<p>Once you have these enabled, you can install the kernel source, and all the build dependencies will also get installed:<br />
<code><br />
# zypper si kernel<br />
</code></p>
<p>Install additional required packages which were not listed in the build dependencies (not sure why not listed).<br />
<code><br />
# zypper in gcc<br />
</code></p>
<h4>5. Get your new kernel, configure, compile and install</h4>
<p>First, download the tarball and decompress it:<br />
<code><br />
# cd /root<br />
# wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.4.tar.bz2<br />
# tar -jxvf linux-3.0.4.tar.bz2 -C /usr/src<br />
</code></p>
<p>Prepare the kernel <strong>configuration file</strong>, based on the one from the MeeGo kernel packaging. In this case we&#8217;re using a newer kernel version, so you will be prompted for the values of the new configuration parameters. You can just try use the default ones if you don&#8217;t know what they mean.<br />
<code><br />
# cd /usr/src/linux-3.0.4<br />
# cat /root/rpmbuild/SOURCES/config-generic /root/rpmbuild/SOURCES/config-x86 &gt; .config<br />
# make oldconfig<br />
</code></p>
<p><em>Note: Of course, you can fully skip using the MeeGo kernel configuration file and fully configure it yourself with, for example, <code>make menuconfig</code>.</em></p>
<p>Then, compile the new kernel and the kernel modules, and install them.<br />
<code><br />
# make -j8<br />
# make -j8 modules<br />
# make modules_install<br />
# make install<br />
</code></p>
<p><em>Note: In addition to the specific kernel configuration, MeeGo packaging also provides several kernel <strong>patches</strong>. In this case, we are not including them.</em></p>
<h4>6. Make the kernel bootable</h4>
<p>In order to make the kernel bootable in the image, you will need to create an <a href="http://en.wikipedia.org/wiki/Initrd" target="_blank">initial ramdisk</a> under <code>/boot</code>. But you shouldn&#8217;t use <code><em>mkinitrd</em></code> for that, <strong>use the provided <code>mkliveinitrd</code> instead</strong>:<br />
<code><br />
# /usr/libexec/mkliveinitrd -f /boot/initrd.img-3.0.4 3.0.4<br />
</code></p>
<p>Once done, just exit the chroot:<br />
<code><br />
# exit<br />
</code></p>
<h4>7. Create a LiveUSB image to test the new kernel</h4>
<p>The steps to convert a loop image to a LiveUSB image and write it into an external USB disk are explained in my previous post about <a href="http://sigquit.wordpress.com/2011/09/01/your-custom-meego-builds/">Your custom MeeGo builds</a>, so I won&#8217;t explain much more about it.</p>
<p>Just a warning: always make sure that you have <strong>ONLY ONE</strong> <code>kernel</code> available under <code>/boot</code>. If you happen to have more than one, for example when <code>make install</code>-ing twice (old ones get renamed with a <em>.old</em> extension), <code>mic-image-convertor</code> won&#8217;t like it and will exit with an error message like this one:<br />
<code><br />
Error: Unable to copy valid kernels or initrds, please check the repo<br />
</code></p>
<br />Filed under: <a href='http://sigquit.wordpress.com/category/planets/lanedo-planet/'>Lanedo Planet</a>, <a href='http://sigquit.wordpress.com/category/operating-systems/meego-operating-systems/'>MeeGo</a>, <a href='http://sigquit.wordpress.com/category/operating-systems/'>Operating Systems</a>, <a href='http://sigquit.wordpress.com/category/planets/'>Planets</a> Tagged: <a href='http://sigquit.wordpress.com/tag/kernel/'>kernel</a>, <a href='http://sigquit.wordpress.com/tag/meego/'>MeeGo</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/387/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=387&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2011/09/02/your-custom-kernel-in-meego/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Your custom MeeGo builds</title>
		<link>http://sigquit.wordpress.com/2011/09/01/your-custom-meego-builds/</link>
		<comments>http://sigquit.wordpress.com/2011/09/01/your-custom-meego-builds/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 16:27:04 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Lanedo Planet]]></category>
		<category><![CDATA[MeeGo]]></category>
		<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Planets]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=381</guid>
		<description><![CDATA[NOTE! For the long and detailed explanation on how to create custom MeeGo images, just jump to the MeeGo wiki: http://wiki.meego.com/Image_Creation These steps shown here are the minimum set required in an Ubuntu 11.04 host to be able to create MeeGo images easily. They do not try to be extensive, or very explanatory, these are [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=381&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>NOTE! </strong>For the long and detailed explanation on how to create custom MeeGo images, just jump to the MeeGo wiki: <a href="http://wiki.meego.com/Image_Creation" title="MeeGo Image Creation" target="_blank">http://wiki.meego.com/Image_Creation</a></p>
<p>These steps shown here are the minimum set required in an <strong>Ubuntu 11.04 host</strong> to be able to create MeeGo images easily. They do not try to be extensive, or very explanatory, these are just my personal notes on how to do it <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h4>1. Install MeeGo Image Creator</h4>
<p>Include the MeeGo tools and SDK repositories to your APT configuration, by adding the following lines to your /etc/apt/sources.list:<br />
<code><br />
deb http://repo.meego.com/MeeGo/tools/repos/ubuntu/10.10/ /<br />
deb http://repo.meego.com/MeeGo/sdk/host/repos/ubuntu/10.10/ /<br />
</code></p>
<p>Add the MeeGo repository key:<br />
<code><br />
$&gt; gpg --keyserver subkeys.pgp.net --recv 0BC7BEC479FC1F8A<br />
$&gt; gpg --export --armor 0BC7BEC479FC1F8A | sudo apt-key add -<br />
</code></p>
<p>Update the APT cache:<br />
<code><br />
$&gt; sudo apt-get update<br />
</code></p>
<p>Install the mic2 package:<br />
<code><br />
$&gt; sudo apt-get install mic2<br />
</code></p>
<p><em>Note: &#8216;mic2&#8242; is also in natty/universe, just not the latest version.</em></p>
<h4>2. Prepare a MIC bootstrap</h4>
<p>In order to be able to create images from within your Ubuntu 11.04, <strong>you will need</strong> to use a MIC bootstrap. If you&#8217;re using one of the supported platforms (Ubuntu 10.10 for example), you can possibly skip using it. The generated bootstrap will be a chroot-able location which contains MIC and all its exact dependencies.<br />
<code><br />
$&gt; sudo mic-create-bootstrap \<br />
-n trunk \<br />
-k /opt/meego/repo-cache \<br />
-r http://repo.meego.com/MeeGo/builds/trunk/latest/repos/oss/ia32/packages \<br />
-o /opt/meego/ia32-bootstrap<br />
</code><br />
This previous command will create a <em>trunk</em> named bootstrap in <code>/opt/meego/ia32-bootstrap</code> using <code>/opt/meego/repo-cache</code> as path to store cached packages. </p>
<h4>3. Prepare a kickstart file</h4>
<p>Kickstart files are the ones defining the contents of the image to be built. Not only what packages will be installed, but also which default users will be created, the default root password, the default locale settings, the default keyboard layout&#8230;</p>
<p>Preparing a new kickstart file is best done by taking an officially used one, and modifying it as you like (a.k.a. <em>the autotools way</em>):<br />
<a href="http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/" title="MeeGo Kickstart files" target="_blank">http://repo.meego.com/MeeGo/releases/1.2.0/builddata/image-configs/</a></p>
<p>The kickstart files I&#8217;ve been using are based on the upstream official ones, but with updated repo URLs and bigger root partition sizes. You can find them here:</p>
<ul>
<li><a href="http://www.lanedo.com/~aleksander/meego/meego-core-ia32-1.2.0.ks" target="_blank">http://www.lanedo.com/~aleksander/meego/meego-core-ia32-1.2.0.ks</a> <strong>(Core)</strong></li>
<li><a href="http://www.lanedo.com/~aleksander/meego/meego-netbook-ia32-1.2.0.ks" target="_blank">http://www.lanedo.com/~aleksander/meego/meego-netbook-ia32-1.2.0.ks</a> <strong>(Netbook)</strong></li>
</ul>
<p><em>Note: If you want to know more about the format of kickstart files, what they do and such, just <a href="http://fedoraproject.org/wiki/Anaconda/Kickstart" target="_blank">check the Fedora wiki</a>.</em></p>
<h4>4. Create a raw image and launch it under KVM</h4>
<p>The MeeGo Image Creator can build &#8216;raw&#8217; images which can be then launched under QEMU/KVM. The following command will build one of such &#8216;raw&#8217; images, using the previously created bootstrap and one of the kickstart files we prepared. Note that the command also defines a <em>cache path</em>, where the RPMs downloaded from the MeeGo online repos will be stored (and therefore available for new images created afterwards).<br />
<code><br />
$&gt; sudo mic-image-creator \<br />
--bootstrap=/opt/meego/ia32-bootstrap \<br />
--format=raw \<br />
--config=meego-core-ia32-1.2.0.ks \<br />
--cache=/opt/meego/repo-cache<br />
</code></p>
<p>You can then use <code>mic-vm-launcher</code> as follows to launch the image under QEMU/KVM:<br />
<code><br />
$&gt; sudo mic-vm-launcher meego-core-ia32-raw/meego-core-ia32-sda.raw<br />
</code></p>
<p>Or call kvm directly and tweak the parameters used to launch the image:<br />
<code><br />
$&gt; sudo kvm \<br />
-s \<br />
-m 1024 \<br />
-hda meego-core-ia32-raw/meego-core-ia32-sda.raw \<br />
-vga std<br />
</code></p>
<p><em>Note: Ensure that virtualization is enabled in your BIOS, or KVM won&#8217;t be able to work properly. You can use &#8216;<code>$&gt; sudo kvm-ok</code>&#8216; to check whether it is enabled or not.</em></p>
<h4>5. Create a LiveUSB image and write it to a USB dongle</h4>
<p>You will probably want to test your MeeGo build in the real hardware, and for that using LiveUSB images is one of the best options. The MeeGo Image Creator also allows building LiveCD and LiveUSB images directly from kickstart files; again, just changing the &#8216;<em>format</em>&#8216; argument:<br />
<code><br />
$&gt; sudo mic-image-creator \<br />
--bootstrap=/opt/meego/ia32-bootstrap \<br />
--format=liveusb \<br />
--config=meego-core-ia32-1.2.0.ks \<br />
--cache=/opt/meego/repo-cache<br />
</code></p>
<p>Once you get the image, you can use &#8216;<code>mic-image-writer</code>&#8216; to directly copy it to a connected USB disk. This tool will scan all available external disks, and prompt a menu to select the one where you want to write the image to. The &#8216;<code>-c</code>&#8216; switch (<code>--console</code>) just tells the tool to avoid launching any GUI, and present the menu directly in the console. During this step, the USB disk is also prepared with sysconfig/isolinux to boot the newly written image.<br />
<code><br />
$&gt; sudo mic-image-writer -c meego-core-ia32.usbimg<br />
</code></p>
<p>Now you&#8217;re ready to boot your hardware with the LiveUSB image.</p>
<h4>6. Create a loop image and chroot into it</h4>
<p>With the MeeGo Image Creator, you can also build loop images, just changing the &#8216;<em>format</em>&#8216; parameter in the call to <code>mic-image-creator</code>:<br />
<code><br />
$&gt; sudo mic-image-creator \<br />
--bootstrap=/opt/meego/ia32-bootstrap \<br />
--format=loop \<br />
--config=meego-core-ia32-1.2.0.ks \<br />
--cache=/opt/meego/repo-cache<br />
</code></p>
<p>Once you have the loop image built, you can chroot into it:<br />
<code><br />
$&gt; sudo mic-chroot meego-core-ia32.img<br />
</code></p>
<p>While in the chroot, you can remove or update existing packages, and even add new ones. When you are done, just type <code>$&gt; exit</code> to leave the chroot.</p>
<p><em>Note: If you want to use zypper inside the chroot, ensure that you included &#8216;@MeeGo Base Development&#8217; group of packages in your kickstart file.</em></p>
<h4>7. Convert loop images to LiveUSB images</h4>
<p>Once you have your loop image modified as you wanted, you can then convert it to a LiveUSB image so that it can be written to an external USB disk, as in the previous step. Converting between image types is done with the &#8216;<code>mic-image-convertor</code>&#8216; tool:<br />
<code><br />
$&gt; sudo mic-image-convertor \<br />
--source-image=meego-core-ia32.img \<br />
--target-format=liveusb<br />
</code></p>
<h4>Additional notes</h4>
<ul>
<li>Be careful with <code>mic-chroot</code>.</li>
<li>The Meego Image Creation set of tools make a hard use of disk space under <code>/var/tmp</code>. If you (like me) usually don&#8217;t have much space left in your root partition, you&#8217;d better symlink that path to a partition without disk space worries.</li>
<li>I&#8217;ve found several times that when I try to build new images, the tools tell me that the packages downloaded in the cache are corrupted, and need to be re-downloaded. Just make sure you have a good connection <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
<li>Again, visit <a href="http://wiki.meego.com/Image_Creation" title="MeeGo Image Creation" target="_blank">http://wiki.meego.com/Image_Creation</a> if you want to have further details on these tools.</li>
<ul>
<br />Filed under: <a href='http://sigquit.wordpress.com/category/planets/lanedo-planet/'>Lanedo Planet</a>, <a href='http://sigquit.wordpress.com/category/operating-systems/meego-operating-systems/'>MeeGo</a>, <a href='http://sigquit.wordpress.com/category/operating-systems/'>Operating Systems</a>, <a href='http://sigquit.wordpress.com/category/planets/'>Planets</a> Tagged: <a href='http://sigquit.wordpress.com/tag/meego/'>MeeGo</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/381/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=381&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2011/09/01/your-custom-meego-builds/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Unaccenting words, or at least trying to&#8230;</title>
		<link>http://sigquit.wordpress.com/2011/07/21/unaccenting-words-or-at-least-trying-to/</link>
		<comments>http://sigquit.wordpress.com/2011/07/21/unaccenting-words-or-at-least-trying-to/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 14:57:50 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[GNU Planet]]></category>
		<category><![CDATA[Lanedo Planet]]></category>
		<category><![CDATA[Planets]]></category>
		<category><![CDATA[diacritics]]></category>
		<category><![CDATA[normalization]]></category>
		<category><![CDATA[tracker]]></category>
		<category><![CDATA[unaccenting]]></category>
		<category><![CDATA[unicode]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=376</guid>
		<description><![CDATA[So today I found that Tracker in MeeGo packaging was still depending on libunac, while it shouldn&#8217;t. And that has reminded me that I had a blog post still unfinished about why and how we removed the libunac dependency in Tracker&#8230; so here it goes One of the features supported in Tracker is doing FTS [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=376&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So today I found that Tracker in MeeGo packaging was still depending on libunac, while it shouldn&#8217;t. And that has reminded me that I had a blog post still unfinished about why and how we removed the libunac dependency in Tracker&#8230; so here it goes <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>One of the features supported in <a href="http://projects.gnome.org/tracker" target="_blank">Tracker</a> is doing <a href="https://live.gnome.org/Tracker/Documentation/Examples/SPARQL/FTS" target="_blank">FTS</a> searches for words without considering &#8216;accents&#8217;. Of course, we&#8217;re not talking about accent as in the <a href="http://en.wikipedia.org/wiki/Accent_%28linguistics%29" target="_blank">specific pronunciation of words</a> relative to a location or nation. Our &#8216;unaccenting&#8217; mechanism, as we call it, refers to the process of removing combining <a href="http://en.wikipedia.org/wiki/Diacritic" target="_blank">diacritical</a> marks from characters, so that users can look for words with or without these marks. Therefore, this &#8216;unaccenting&#8217; applies not only to diacritics in Latin alphabets, but also to other alphabets like Arabic, Greek, Hebrew or Korean which also have special combining diacritical marks.</p>
<p>In the previous 0.8 stable series of Tracker, the unaccenting mechanism was completely done by the <a href="http://www.nongnu.org/unac/unac-man3.en.html" target="_blank">&#8216;unac&#8217; library</a>. We were not really convinced that unac was a good option in our case, as it involved extra conversions from UTF-8 to UTF-16 and back, and measurements showed that it was one of the most time consuming steps during FTS parsing. In order to improve the situation, and as we already did ourselves some Unicode normalization work before passing the work to unac, we ended up writing <a href="https://mail.gnome.org/archives/commits-list/2010-June/msg04595.html" target="_blank">our own unaccenting mechanism in Tracker</a> for 0.10.</p>
<p>The method is applied to all our three Unicode-support backends (GNU libunistring, ICU and GLib), and roughly involves just two steps:</p>
<ul>
<li>Apply a compatibility decomposition to the word (<a href="http://unicode.org/reports/tr15" target="_blank">NFKD normalization</a>).</li>
<li>Remove all combining diacritical marks, this is, all Unicode points within the following ranges:
<ul>
<li>Basic range: [U+0300,U+036F]</li>
<li>Supplement: [U+1DC0,U+1DFF]</li>
<li>For Symbols: [U+20D0,U+20FF]</li>
<li>Half marks: [U+FE20,U+FE2F]</li>
</ul>
</li>
</ul>
<p>Instead of NFKD, NFD decomposition can also be used in the method, but as the main purpose of the unaccenting is a Full Text Search in Tracker, compatibility of Unicode points is also a desired feature which we could get in the same step.</p>
<p>Looking at an example may explain it easier. Consider the French word &#8220;école&#8221;, which has a diacritic on top of the first &#8216;e&#8217; character. This accented &#8216;e&#8217; character can be encoded in UTF-8 in either a composed or decomposed way:</p>
<ul>
<li>(NFC, composed) <strong>[0xC3 0xA9]</strong> 0&#215;63 0x6F 0x6C 0&#215;65</li>
<li>(NFD, decomposed) <strong>0&#215;65 [0xCC 0x81]</strong> 0&#215;63 0x6F 0x6C 0&#215;65</li>
</ul>
<p>The UTF-8 encoding of the composed way (NFC or NFKC) will (probably) always need less bytes than the decomposed (NFD or NFKD) counterpart. This is because the accented &#8216;e&#8217; character will be represented in composed way as a single Unicode point: <strong>&#8216;é&#8217; U+00E9</strong> (UTF-8: [0xC3 0xA9]). In the decomposed way, the same accented &#8216;e&#8217; character is represented as a base character <strong>&#8216;e&#8217; U+0065</strong> (UTF-8: 0&#215;65) plus a combining mark <strong>&#8216; ́ &#8216; U+0301</strong> (UTF-8: [0xCC 0x81]).</p>
<p>For either of the previous two representations of &#8216;école&#8217;, the removal of combining diacritical marks is as we have already described:</p>
<ul>
<li>First, get the word NFKD-normalized (or NFD if point compatibility is not needed):
<ul>
<li>(NFC) <span style="color:#ff0000;">[0xC3 0xA9]</span> 0&#215;63 0x6F 0x6C 0&#215;65 &#8212;&gt; <br />
(NFKD) <span style="color:#0000ff;">0&#215;65 [0xCC 0x81]</span> 0&#215;63 0x6F 0x6C 0&#215;65</li>
<li>(NFD) <span style="color:#ff0000;">0&#215;65 [0xCC 0x81]</span> 0&#215;63 0x6F 0x6C 0&#215;65 &#8212;&gt; <br />
(NFKD) <span style="color:#0000ff;">0&#215;65 [0xCC 0x81]</span> 0&#215;63 0x6F 0x6C 0&#215;65</li>
</ul>
</li>
<li>Once we have the word decomposed, we can now just walk each unicode point found in the string, and remove those which end up falling into one of the ranges applicable to diacritics. In this case, only the accent on top of the &#8216;e&#8217; character is found and removed: U+0301 (UTF-8: [0xCC 0x81]):
<ul>
<li>(NFKD) 0&#215;65 <span style="color:#ff0000;">[0xCC 0x81]</span> 0&#215;63 0x6F 0x6C 0&#215;65 &#8212;&gt; <br />
            (unaccented) <span style="color:#0000ff;">0&#215;65 0&#215;63 0x6F 0x6C 0&#215;65</span></li>
</ul>
</li>
</ul>
<p>This new method not only worked perfectly in all the test cases we could think of, it was even <a href="https://mail.gnome.org/archives/tracker-list/2010-May/msg00165.html" target="_blank">much faster than using the unac library</a> (up to 73% faster in the best case, and same speed in more complex cases).</p>
<br />Filed under: <a href='http://sigquit.wordpress.com/category/development/'>Development</a>, <a href='http://sigquit.wordpress.com/category/planets/gnu-planet/'>GNU Planet</a>, <a href='http://sigquit.wordpress.com/category/planets/lanedo-planet/'>Lanedo Planet</a>, <a href='http://sigquit.wordpress.com/category/planets/'>Planets</a> Tagged: <a href='http://sigquit.wordpress.com/tag/diacritics/'>diacritics</a>, <a href='http://sigquit.wordpress.com/tag/normalization/'>normalization</a>, <a href='http://sigquit.wordpress.com/tag/tracker/'>tracker</a>, <a href='http://sigquit.wordpress.com/tag/unaccenting/'>unaccenting</a>, <a href='http://sigquit.wordpress.com/tag/unicode/'>unicode</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/376/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/376/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/376/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/376/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/376/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/376/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/376/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/376/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/376/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/376/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/376/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/376/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/376/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/376/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=376&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2011/07/21/unaccenting-words-or-at-least-trying-to/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>ModemManager, now with Iridium satellite network support</title>
		<link>http://sigquit.wordpress.com/2011/07/14/modemmanager-now-with-iridium-satellite-network-support/</link>
		<comments>http://sigquit.wordpress.com/2011/07/14/modemmanager-now-with-iridium-satellite-network-support/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 11:01:47 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[GNU Planet]]></category>
		<category><![CDATA[Lanedo Planet]]></category>
		<category><![CDATA[Planets]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[iridium]]></category>
		<category><![CDATA[ModemManager]]></category>
		<category><![CDATA[network config]]></category>
		<category><![CDATA[NetworkManager]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=370</guid>
		<description><![CDATA[ModemManager and the Iridium satellite network I recently sent a new &#8216;iridium&#8217; plugin for review upstream, this time for Iridium modems. The plugin was developed using a Iridium 9522B Satellite Transceiver modem connected through RS232, properly handled by ModemManager&#8217;s plugin system thanks to the extended RS232 support available in git master. The &#8216;iridium&#8217; plugin handles [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=370&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>ModemManager and the Iridium satellite network</strong></p>
<p>I recently sent a <a href="https://mail.gnome.org/archives/networkmanager-list/2011-June/msg00158.html" target="_blank"><strong>new &#8216;iridium&#8217; plugin</strong></a> for review upstream, this time for Iridium modems. The plugin was developed using a Iridium 9522B Satellite Transceiver modem connected through RS232, properly handled by ModemManager&#8217;s plugin system thanks to the extended RS232 support available in git master. The &#8216;iridium&#8217; plugin handles these modems as any other GSM modem, even if it has nothing to do with GSM technologies.</p>
<p>Iridium is a constellation of 66 active (plus spares) LEO satellites orbiting at an altitude of 781 km, which gives phone and network coverage to every point in Earth. It was initially thought to be a constellation of 77 satellites, therefore named &#8216;Iridium&#8217; after <a href="http://en.wikipedia.org/wiki/Iridium" target="_blank">the chemical element with atomic number 77</a>. The name didn&#8217;t change to &#8216;<a href="http://en.wikipedia.org/wiki/Dysprosium" target="_blank">Dysprosium</a>&#8216; when it was redesigned to maintain only 66 active satellites, no wonder why.</p>
<p>Even if the Iridium modems expose a GSM-modem like AT command set, several special things needed to be considered. For example, IP address setup via PPP needed more than the 20s hardcoded in NetworkManager, due to the extreme latency of the satellite network. Therefore, <a href="https://gitorious.org/lanedo/networkmanager/commit/4e2d10816d0cfbbbebd3502718664e1116385dae" target="_blank">NM was also updated</a> to allow ModemManager plugins to specify a specific &#8216;IpTimeout&#8217; value.</p>
<p>See <a href="https://mail.gnome.org/archives/networkmanager-list/2011-June/msg00158.html" target="_blank">my email to the NM mailing list</a> for further information on how to use ModemManager with Iridium support.</p>
<p><strong>Ammonit Measurement GmbH sponsoring some hardware for ModemManager development</strong></p>
<p>In <a href="http://www.lanedo.com/networkmanager.html" target="_blank"><strong>Lanedo</strong></a> we have worked with <a href="http://www.ammonit.com" target="_blank"><strong>Ammonit Measurement GmbH</strong></a> to help them with the improvement of ModemManager to handle Wavecom, Cinterion and Iridium modems. The guys at Ammonit were kind enough to sponsor some modems, so that I can spend my free time in developing and improving ModemManager, as well as in testing the modems before stable releases (<a href="http://blogs.gnome.org/dcbw" target="_blank">Dan</a> will probably be happy for that):</p>
<ul>
<li>Sierra Wireless Fastrack Xtend FXT009 (GPRS modem, USB, handled by the &#8216;wavecom&#8217; plugin)</li>
<li>Cinterion TC63i (GPRS modem, RS232, handled by the &#8216;cinterion&#8217; plugin)</li>
</ul>
<p>So, thanks Ammonit!</p>
<br />Filed under: <a href='http://sigquit.wordpress.com/category/development/'>Development</a>, <a href='http://sigquit.wordpress.com/category/planets/gnu-planet/'>GNU Planet</a>, <a href='http://sigquit.wordpress.com/category/planets/lanedo-planet/'>Lanedo Planet</a>, <a href='http://sigquit.wordpress.com/category/planets/'>Planets</a> Tagged: <a href='http://sigquit.wordpress.com/tag/gnulinux/'>gnu/linux</a>, <a href='http://sigquit.wordpress.com/tag/iridium/'>iridium</a>, <a href='http://sigquit.wordpress.com/tag/modemmanager/'>ModemManager</a>, <a href='http://sigquit.wordpress.com/tag/network-config/'>network config</a>, <a href='http://sigquit.wordpress.com/tag/networkmanager/'>NetworkManager</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/370/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/370/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/370/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/370/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/370/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/370/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/370/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/370/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/370/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/370/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/370/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/370/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/370/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/370/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=370&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2011/07/14/modemmanager-now-with-iridium-satellite-network-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>GNU PDF, MeeGo conference in San Francisco, new Cinterion plugin for ModemManager&#8230;</title>
		<link>http://sigquit.wordpress.com/2011/06/02/gnu-pdf-meego-conference-in-san-francisco-new-cinterion-plugin-for-modemmanager/</link>
		<comments>http://sigquit.wordpress.com/2011/06/02/gnu-pdf-meego-conference-in-san-francisco-new-cinterion-plugin-for-modemmanager/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 14:09:55 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[GNU Planet]]></category>
		<category><![CDATA[Lanedo Planet]]></category>
		<category><![CDATA[Meetings]]></category>
		<category><![CDATA[Planets]]></category>
		<category><![CDATA[gnu pdf]]></category>
		<category><![CDATA[MeeGo]]></category>
		<category><![CDATA[ModemManager]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=360</guid>
		<description><![CDATA[So, May has ended up being a very very busy month. GNU PDF After more than 2 months and tons of hours spent in trying not to break the thing (and fixing it when I did break it), I finally finished refactoring the API of the Streams module in GNU PDF in order to use [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=360&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So, May has ended up being a very very busy month.</p>
<p><strong>GNU PDF</strong><br />
After more than 2 months and tons of hours spent in trying not to break the thing (and fixing it when I did break it), I finally finished refactoring the API of the Streams module in GNU PDF in order to use the new error reporting methods. <a href="http://www.jemarch.net">Jose</a> is still reviewing the branch with the changes, so meanwhile I started refactoring the API of the Filesystem module. The Filesystem module is supposed to be just a small layer of abstraction on top of different filesystem backends, but not even the disk backend is fully implemented yet, with some basic pieces still missing. So as part of the API rework, I&#8217;ll try to include all missing bits in both the disk and http filesystem backends. Luckily, we got quite a lot of new people coming around the mailing list and providing <a href="http://lists.gnu.org/archive/html/pdf-devel/2011-04/msg00010.html">patches</a> and <a href="http://lists.gnu.org/archive/html/pdf-devel/2011-04/msg00013.html">useful comments</a> for these tasks, so it should be just a matter of time.</p>
<p><strong>ModemManager</strong><br />
Another month hacking ModemManager, working on <a href="https://mail.gnome.org/archives/networkmanager-list/2011-May/msg00127.html">a new Cinterion plugin</a>. After several changes in the generic code base of the daemon, plugins can now also implement specific features for RS232 modems. The new Cinterion plugin is not available in git master yet, so if you want to give it a try with Cinterion/Siemens USB or RS232 modems, get the following git repo: <a href="https://gitorious.org/lanedo/modemmanager">git://gitorious.org/lanedo/modemmanager.git</a> and checkout the &#8216;plugin-cinterion&#8217; branch from there.</p>
<p><strong>MeeGo Conference 2011</strong><br />
<a href="http://www.lanedo.com">Lanedo GmbH</a> was one of the sponsors of the <a href="http://sf2011.meego.com">MeeGo Conference 2011 in San Francisco</a>, so I had the opportunity to visit the US(of)A again. And I was not the only Spanish guy around: <a href="http://luisbg.blogalia.com/">Luis de Bethencourt</a> (Collabora), <a href="http://blogs.igalia.com/itoral/">Iago del Toral</a> (Igalia) and <a href="http://flors.wordpress.com/">Quim Gil</a> (Nokia) where also in the conference. With Nokia focusing on &#8220;that Harmattan thing&#8221; as some call it, Intel seems to be the one pushing MeeGo forward (even if not <a href="http://lists.meego.com/pipermail/meego-dev/2011-March/481890.html">all decisions taken</a> are shared by everyone). It is nice to see that the world didn&#8217;t end neither on February 11th (<a href="http://bethesignal.org/wp-content/uploads/2011/02/steve-ballmer.jpg">Elopocalypse</a>) nor on May 21st (The Judgment Day, which now seems <a href="http://judgementday2011.com">postponed until October</a>) <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Oh, I also turned 30 this past month&#8230; I keep on trying to forget it.</p>
<br />Filed under: <a href='http://sigquit.wordpress.com/category/development/'>Development</a>, <a href='http://sigquit.wordpress.com/category/planets/gnu-planet/'>GNU Planet</a>, <a href='http://sigquit.wordpress.com/category/planets/lanedo-planet/'>Lanedo Planet</a>, <a href='http://sigquit.wordpress.com/category/meetings/'>Meetings</a>, <a href='http://sigquit.wordpress.com/category/planets/'>Planets</a> Tagged: <a href='http://sigquit.wordpress.com/tag/gnu-pdf/'>gnu pdf</a>, <a href='http://sigquit.wordpress.com/tag/meego/'>MeeGo</a>, <a href='http://sigquit.wordpress.com/tag/modemmanager/'>ModemManager</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/360/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=360&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2011/06/02/gnu-pdf-meego-conference-in-san-francisco-new-cinterion-plugin-for-modemmanager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>ModemManager is fun</title>
		<link>http://sigquit.wordpress.com/2011/05/05/modemmanager-is-fun/</link>
		<comments>http://sigquit.wordpress.com/2011/05/05/modemmanager-is-fun/#comments</comments>
		<pubDate>Thu, 05 May 2011 15:56:39 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[GNU Planet]]></category>
		<category><![CDATA[Lanedo Planet]]></category>
		<category><![CDATA[Planets]]></category>
		<category><![CDATA[freedesktop]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[ModemManager]]></category>
		<category><![CDATA[NetworkManager]]></category>
		<category><![CDATA[sierra-wireless]]></category>
		<category><![CDATA[wavecom]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=355</guid>
		<description><![CDATA[These last weeks I&#8217;ve been out of my usual Tracker work, and have been hacking on NetworkManager/ModemManager so that they can work properly with Sierra Wireless Airlink Fastrack Xtend modems. Ended up writing a new wavecom plugin for this purpose (Wavecom was bought by Sierra Wireless in 2009), which Dan already merged in the master [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=355&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>These last weeks I&#8217;ve been out of my usual <a href="http://www.tracker-project.org" title="Tracker" target="_blank">Tracker</a> work, and have been hacking on <a href="http://projects.gnome.org/NetworkManager" title="NetworkManager website" target="_blank"><strong>NetworkManager/ModemManager</strong></a> so that they can work properly with <a href="http://www.sierrawireless.com/productsandservices/AirLink/Programmable_Modems/Fastrack_Xtend_EDGE.aspx" target="_blank">Sierra Wireless Airlink Fastrack Xtend</a> modems.</p>
<p>Ended up writing a new <strong><em>wavecom</em></strong> plugin for this purpose (<a href="http://en.wikipedia.org/wiki/Wavecom" target="_blank">Wavecom</a> was bought by Sierra Wireless in 2009), which <a href="http://blogs.gnome.org/dcbw" target="_blank">Dan</a> already <a href="http://cgit.freedesktop.org/ModemManager/ModemManager/commit/?id=5dadfa4c214be79e704eb61c135893f93a705d3a" target="_blank">merged in the master branch of ModemManager</a>.</p>
<p>The changes in the new <em>wavecom</em> plugin with respect to the generic GSM plugin are:</p>
<ol>
<li><strong>AT+CPIN?</strong> replies are not ended with OK. A custom regex match was added to support CPIN? replies without OK (also had to hack the generic MM code to handle plugin-provided regular expressions).</li>
<li>Disabled default power-up comand, <strong>AT+CFUN=1</strong>. This command does a full software reset in the device, including the USB stack, so the connection is closed. No additional command seems to be needed, as the modem wakes up by default in CFUN=1 (full functionality) mode. Anyway, an additional check was added during initialization so that this mode is ensured.</li>
<li>Enabled <strong>RTS/CTS</strong> instead of XOFF/XON flow control.</li>
<li>Implemented access technology retrieval using <strong>AT+WGPRS=9,2</strong> to query network capabilities</li>
<li>Ensure the modem uses the highest possible mobile class. These modems can be configured to use different mobile classes. For each kind of modem, the best mobile class is the highest one available, in the following order:
<ul>
<li>Class A  (3G only mode)</li>
<li>Class B  (PS or CS, GPRS/EDGE or GSM)</li>
<li>Class CG (PS only, GPRS/EDGE)</li>
<li>Class CC (CS only, GSM)</li>
</ul>
</li>
<li>Implemented setting and getting allowed mode, for both 2G and 3G based modems (using <strong>AT+WWSM</strong> command in the 3G case).</li>
<li>Implemented setting and getting frequency bands for 2G modems (with <strong>AT+WMBS</strong>) and 3G modems (with <strong>AT+WUBS</strong>).</li>
</ol>
<p>Still, the plugin could be improved even more. For example, there is no secondary port handling in the current plugin implementation, which means that signal strength value will not be updated while the modem is in connected state. This kind of modems support setting up virtual ports by multiplexing the serial channel (<strong>CMUX</strong>), but ModemManager doesn&#8217;t handle this yet.</p>
<p>If anyone has one of this Wavecom/SierraWireless modems at home, please test it with latest ModemManager and report any errors found.</p>
<br />Filed under: <a href='http://sigquit.wordpress.com/category/development/'>Development</a>, <a href='http://sigquit.wordpress.com/category/planets/gnu-planet/'>GNU Planet</a>, <a href='http://sigquit.wordpress.com/category/planets/lanedo-planet/'>Lanedo Planet</a>, <a href='http://sigquit.wordpress.com/category/planets/'>Planets</a> Tagged: <a href='http://sigquit.wordpress.com/tag/freedesktop/'>freedesktop</a>, <a href='http://sigquit.wordpress.com/tag/gnome/'>gnome</a>, <a href='http://sigquit.wordpress.com/tag/modemmanager/'>ModemManager</a>, <a href='http://sigquit.wordpress.com/tag/networkmanager/'>NetworkManager</a>, <a href='http://sigquit.wordpress.com/tag/sierra-wireless/'>sierra-wireless</a>, <a href='http://sigquit.wordpress.com/tag/wavecom/'>wavecom</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/355/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/355/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/355/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=355&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2011/05/05/modemmanager-is-fun/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Why &#8211;&#8211;as&#8211;needed doesn&#8217;t work as expected for your libraries on your autotools project</title>
		<link>http://sigquit.wordpress.com/2011/02/16/why-asneeded-doesnt-work-as-expected-for-your-libraries-on-your-autotools-project/</link>
		<comments>http://sigquit.wordpress.com/2011/02/16/why-asneeded-doesnt-work-as-expected-for-your-libraries-on-your-autotools-project/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 15:10:21 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Lanedo Planet]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[gnu ld]]></category>
		<category><![CDATA[gnu libtool]]></category>
		<category><![CDATA[gnu linker]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=334</guid>
		<description><![CDATA[Introduction to &#8211;&#8211;as&#8211;needed Quoting from the Gentoo Linux documentation for &#8211;&#8211;as&#8211;needed [1]: The &#8211;as-needed flag is passed to the GNU linker (GNU ld). The flag tells the linker to link in the produced binary only the libraries containing symbols actually used by the binary itself. This binary can be either a final executable or another [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=334&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Introduction to &ndash;&ndash;as&ndash;needed</strong><br />
Quoting from the Gentoo Linux documentation for &ndash;&ndash;as&ndash;needed [1]:</p>
<blockquote><p>The &#8211;as-needed flag is passed to the GNU linker (GNU ld). The flag tells the linker to link in the produced binary only the libraries containing symbols actually used by the binary itself. This binary can be either a final executable or another library.</p></blockquote>
<p>In a brief, this means that if you pass unneeded libraries to link to when linking your program, the linker will skip those dependencies when that flag is used.<br />
&nbsp;<br />
<strong>Example, without &ndash;&ndash;as&ndash;needed</strong><br />
Imagine an example where you want to have a &#8220;libb.so&#8221; shared library, which needs glib-2.0. You&#8217;re lazy, and you don&#8217;t want to check whether that library will need gthread-2.0, gio-2.0 or gmodule-2.0, so you just compile and link assuming they are used:<br />
<code><br />
$&gt; gcc `pkg-config --cflags glib-2.0 gthread-2.0 gio-2.0 gmodule-2.0` -c src/libb/b.c -fPIC -DPIC -o b.o<br />
&nbsp;<br />
$&gt; gcc -shared b.o `pkg-config --libs glib-2.0 gthread-2.0 gio-2.0 gmodule-2.0` -o libb.so<br />
</code></p>
<p>Where &#8220;b.c&#8221; just contains:<br />
<code><br />
#include "glib.h"<br />
int<br />
test_b (int number)<br />
{<br />
&nbsp;&nbsp;g_debug ("Hello world from libb: %d", number);<br />
}<br />
</code></p>
<p>If you now show all unused direct dependencies of libb.so, with ldd, you get all unneeded ones:<br />
<code><br />
$&gt; ldd -u -r libb.so<br />
Unused direct dependencies:<br />
&nbsp;&nbsp;/usr/lib/libgio-2.0.so.0<br />
&nbsp;&nbsp;/usr/lib/libgobject-2.0.so.0<br />
&nbsp;&nbsp;/usr/lib/libgthread-2.0.so.0<br />
&nbsp;&nbsp;/usr/lib/libgmodule-2.0.so.0<br />
&nbsp;&nbsp;/lib/librt.so.1<br />
&nbsp;&nbsp;/lib/libpthread.so.0<br />
</code><br />
&nbsp;<br />
<strong>Example, with &ndash;&ndash;as&ndash;needed</strong><br />
Lets compile and link now with the &ndash;&ndash;as&ndash;needed linker flag (note that you need to tell gcc to pass the option to the linker, so you&#8217;ll need to use &#8220;<strong>&ndash;Wl,&ndash;&ndash;as&ndash;needed</strong>&#8220;):<br />
<code><br />
$&gt; gcc `pkg-config --cflags glib-2.0 gthread-2.0 gio-2.0 gmodule-2.0` -c src/libb/b.c -fPIC -DPIC -o b.o<br />
$&gt; gcc -shared <strong>-Wl,--as-needed</strong> b.o `pkg-config --libs glib-2.0 gthread-2.0 gio-2.0 gmodule-2.0` -o libb.so<br />
</code></p>
<p>And check the list of unused dependencies:<br />
<code><br />
$&gt; ldd -u -r libb.so<br />
Unused direct dependencies:<br />
&nbsp;&nbsp;/lib/libpthread.so.0<br />
</code></p>
<p>So it really seems that the &ndash;&ndash;as&ndash;needed linker option worked here and cleaned up all unneeded dependencies, nice!</p>
<p>But wait! Be careful with this statement in the GNU Linker manpage [2]:</p>
<blockquote><p>
This option affects ELF DT_NEEDED tags for dynamic libraries mentioned on the command line <strong>after</strong> the &ndash;&ndash;as&ndash;needed option.
</p></blockquote>
<p>You should thus, consider &ndash;&ndash;as&ndash;needed not as a global option to the GNU Linker, but as a specific option for specific dependencies. You could for example apply the option only to some of the libraries you&#8217;re linking to:<br />
<code><br />
$&gt; gcc -shared b.o -pthread -Wl,--export-dynamic -lgio-2.0 -lgobject-2.0 <strong>-Wl,--as-needed </strong>-lgthread-2.0 -lgmodule-2.0 -lrt -lglib-2.0 -o libb.so<br />
&nbsp;<br />
$&gt; ldd -u -r libb.so<br />
Unused direct dependencies:<br />
&nbsp;&nbsp;/usr/lib/libgio-2.0.so.0<br />
&nbsp;&nbsp;/usr/lib/libgobject-2.0.so.0<br />
&nbsp;&nbsp;/lib/libpthread.so.0<br />
</code><br />
&nbsp;<br />
<strong>Example, with autotools</strong><br />
You probably don&#8217;t compile and link your libraries using plain gcc, and instead use some GNU automagic (<a href="http://www.gnu.org/software/autoconf">autoconf</a>, <a href="http://www.gnu.org/software/automake">automake</a>, <a href="http://www.gnu.org/software/libtool">libtool</a>&#8230;). If that is the case, and following the previous example, you would probably use PKG_CHECK_MODULES in your <a href="http://www.es.gnu.org/~aleksander/as-needed/configure.ac">configure.ac</a>:<br />
<code><br />
[configure.ac]<br />
...<br />
PKG_CHECK_MODULES(GLIB,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[glib-2.0 gthread-2.0 gmodule-2.0 gio-2.0])<br />
</code></p>
<p>And you&#8217;ll probably create your shared library using libtool, so in your <a href="http://www.es.gnu.org/~aleksander/as-needed/Makefile.am">Makefile.am</a> you will have:<br />
<code><br />
[Makefile.am]<br />
lib_LTLIBRARIES = lib/libb.la<br />
&nbsp;<br />
lib_libb_la_SOURCES = src/libb/b.c<br />
lib_libb_la_CFLAGS = $(GLIB_CFLAGS)<br />
lib_libb_la_LIBADD = $(GLIB_LIBS)<br />
</code></p>
<p>If you compile this autotools project without any additional option, you will end up having &#8220;ldd -u -r&#8221; report the same unused dependencies as before (gio, gobject, gthread&#8230;)</p>
<p>&nbsp;<br />
<strong>Example, with autotools and &ndash;&ndash;as&ndash;needed</strong><br />
Once you have your autotools project ready, you can <strong>try to</strong> enable the &ndash;&ndash;as&ndash;needed linker flag passing it in LDFLAGS during configure:<br />
<code><br />
$&gt; ./configure LDFLAGS="-Wl,--as-needed"<br />
</code></p>
<p>This should pass LDFLAGS during the linking operation while running `make&#8217; &#8230; and it does pass it, but <em>in a way where it doesn&#8217;t have any effect</em>&#8230; libtool will call gcc like this:<br />
<code><br />
libtool: link: gcc -shared  .libs/lib_libb_la-b.o   /usr/lib/libgio-2.0.so /usr/lib/libgobject-2.0.so /usr/lib/libgmodule-2.0.so /usr/lib/libgthread-2.0.so -lrt /usr/lib/libglib-2.0.so  -pthread <strong>-Wl,--as-needed</strong> -pthread -Wl,--export-dynamic   -pthread -Wl,-soname -Wl,libb.so.0 -o lib/.libs/libb.so.0.0.0<br />
</code></p>
<p>As you can see,<strong> &ndash;&ndash;as&ndash;needed is given after all libraries to link to, which is like doing nothing</strong>. If you check for unused dependencies in the generated shared library, you will get:<br />
<code><br />
$&gt; ldd -u -r lib/.libs/libb.so<br />
Unused direct dependencies:<br />
&nbsp;&nbsp;/usr/lib/libgio-2.0.so.0<br />
&nbsp;&nbsp;/usr/lib/libgobject-2.0.so.0<br />
&nbsp;&nbsp;/usr/lib/libgmodule-2.0.so.0<br />
&nbsp;&nbsp;/usr/lib/libgthread-2.0.so.0<br />
&nbsp;&nbsp;/lib/librt.so.1<br />
&nbsp;&nbsp;/lib/libpthread.so.0<br />
</code></p>
<p>Now, what is the correct way then to enable &ndash;&ndash;as&ndash;needed in this project? Said previously that this option shouldn&#8217;t be considered global, and thus passing it in LDFLAGS when running configure doesn&#8217;t seem to be a good choice.</p>
<p><strong>This issue is an <a href="http://lists.gnu.org/archive/html/bug-libtool/2009-12/msg00038.html">already known bug in GNU Libtool</a> [4]</strong>, and while <a href="http://maemo.gitorious.org/maemo-af/libcontentaction/blobs/master/ltmain-asneeded.patch">some</a> <a href="http://meego.gitorious.org/tracker/tracker/commit/cf2ca3414aeba146dceacc5ecd84765f4c08a06f">projects</a> patch their ltmain.sh [5], there are already<a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=347650"> efforts to push a patch upstream</a> [6].</p>
<p><strong>What about &ndash;&ndash;as&ndash;needed when linking programs?</strong><br />
This is a whole different story. Assume we also have a &#8220;a.c&#8221; program which uses &#8220;libb.so&#8221;, and which also has all previous glib, gio and friends as dependencies (but doesn&#8217;t use them):<br />
<code><br />
[Makefile.am]<br />
bin_PROGRAMS = bin/a<br />
&nbsp;<br />
bin_a_SOURCES = src/a/a.c<br />
bin_a_CPPFLAGS = -I$(top_srcdir)/src/libb<br />
bin_a_CFLAGS = $(GLIB_CFLAGS)<br />
bin_a_LDADD = lib/libb.la $(GLIB_LIBS)<br />
</code></p>
<p>We do again try to pass the linker option in LDFLAGS during configure:<br />
<code><br />
$&gt; ./configure LDFLAGS="-Wl,--as-needed"<br />
</code></p>
<p>We check how libtool passes the option when linking:<br />
<code><br />
libtool: link: gcc -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -O2 <strong>-Wl,--as-needed</strong> -o bin/.libs/a bin_a-a.o -pthread -Wl,--export-dynamic  lib/.libs/libb.so /usr/lib/libgio-2.0.so /usr/lib/libgobject-2.0.so /usr/lib/libgmodule-2.0.so /usr/lib/libgthread-2.0.so -lrt /usr/lib/libglib-2.0.so -pthread<br />
</code></p>
<p>In this case, the option is passed before all linking dependencies, so &ndash;&ndash;as&ndash;needed should take effect. We check with ldd the unused dependencies in the generated binary program:<br />
<code><br />
$&gt; ldd -u -r bin/.libs/a<br />
Unused direct dependencies:<br />
&nbsp;&nbsp;/lib/libpthread.so.0<br />
</code></p>
<p>So, even if we couldn&#8217;t tell the linker to remove all unused dependencies from the generated shared libraries, <strong>the removal takes place in case of generated programs</strong>.</p>
<p>You could arguably say that you don&#8217;t need to remove unneeded dependencies on shared libraries that you compile, as the programs linking with your library may really need them. In this example, if a program links to our &#8220;libb.so&#8221; and the program needs gio libraries, if we didn&#8217;t remove the unneeded dependencies in &#8220;libb.so&#8221;, the program would satisfy the gio dependency directly from &#8220;libb.so&#8221;. But that is definitely not the way to go, if the program needs gio because it uses some of its symbols, it should explicitly link to it, not assume that &#8220;libb.so&#8221; will force the dependency.</p>
<p>References:<br />
[1] <a href="http://www.gentoo.org/proj/en/qa/asneeded.xml">Gentoo Linux documentation for &ndash;&ndash;as&ndash;needed</a><br />
[2] <a href="http://linux.die.net/man/1/ld">ld(1) GNU Linker</a><br />
[3] <a href="http://www.es.gnu.org/~aleksander/as-needed">Full autotools-based example</a><br />
[4] <a href="http://lists.gnu.org/archive/html/bug-libtool/2009-12/msg00038.html">GNU libtool bug report for &#8211;as-needed failing with libraries</a><br />
[5] <a href="http://maemo.gitorious.org/maemo-af/libcontentaction/blobs/master/ltmain-asneeded.patch">Meego libcontentaction patch</a> and <a href="http://meego.gitorious.org/tracker/tracker/commit/cf2ca3414aeba146dceacc5ecd84765f4c08a06f">Meego Tracker patch</a><br />
[6] <a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=347650">Debian bug #347650</a></p>
<br />Filed under: <a href='http://sigquit.wordpress.com/category/development/'>Development</a>, <a href='http://sigquit.wordpress.com/category/planets/lanedo-planet/'>Lanedo Planet</a> Tagged: <a href='http://sigquit.wordpress.com/tag/gcc/'>gcc</a>, <a href='http://sigquit.wordpress.com/tag/gnu/'>gnu</a>, <a href='http://sigquit.wordpress.com/tag/gnu-ld/'>gnu ld</a>, <a href='http://sigquit.wordpress.com/tag/gnu-libtool/'>gnu libtool</a>, <a href='http://sigquit.wordpress.com/tag/gnu-linker/'>gnu linker</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/334/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/334/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/334/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/334/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/334/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/334/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/334/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=334&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2011/02/16/why-asneeded-doesnt-work-as-expected-for-your-libraries-on-your-autotools-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>PVOL in the AstronomíA magazine</title>
		<link>http://sigquit.wordpress.com/2010/11/15/pvol-in-the-astronomia-magazine/</link>
		<comments>http://sigquit.wordpress.com/2010/11/15/pvol-in-the-astronomia-magazine/#comments</comments>
		<pubDate>Mon, 15 Nov 2010 14:38:25 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[PVOL]]></category>
		<category><![CDATA[Astronomy]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=324</guid>
		<description><![CDATA[I started writing the PVOL (Planetary Virtual Observatory and Laboratory) system during the first NVO Summer School which took place in Aspen (Colorado, USA) in the summer of 2004. The system is up and running since November 2004 in the Ajax Cluster of the Planetary Sciences Group, in the University of the Basque Country, and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=324&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I started writing the <strong>PVOL</strong> (Planetary Virtual Observatory and Laboratory) system during the <a href="http://www.us-vo.org/summer-school/2004/index.cfm">first NVO Summer School</a> which took place in Aspen (Colorado, USA) in the summer of 2004. The system is up and running since November 2004 in the <a href="http://www.ajax.ehu.es/computation/AboutAjax.html">Ajax Cluster</a> of the <a href="http://www.ajax.ehu.es">Planetary Sciences Group</a>, in the University of the Basque Country, and available at <a href="http://www.pvol.ehu.es"><strong>www.pvol.ehu.es</strong></a>.</p>
<p><a href="http://www.pvol.ehu.es"><img alt="PVOL Logo" src="http://www.pvol.ehu.es/resources/PVOL-LOGO.gif" title="PVOL" class="alignnone" width="496" height="130" /></a></p>
<p>We currently have more than <strong>200 registered contributors</strong> (50 of them allowed to directly publish new images), more than <strong>9200 images of Jupiter</strong> (first one from year 2000) and more than <strong>1800 images of Saturn</strong>. Last image received was just from yesterday:</p>
<p><img alt="" src="http://bppx90.bp.ehu.es:8080/iopwimages/jupiter/dpa20101114_0246.jpg" title="Jupiter on Nov 14th 2010, by D. Parker" class="alignnone" width="711" /></p>
<p>Good news is that not only amateur observers are publishing <a href="http://www.pvol.ehu.es/index.jsp?action=iopw">lots of new images of Giant Planets every day</a> (mainly Jupiter and Saturn), but also that two of the guys in the Planetary Sciences Group also wrote an article about the <strong>PVOL</strong> system and how it helps on the research of the atmospheres of these planets. The publication is not available online, it seems, so if you want to take a look at it you&#8217;ll need to buy the magazine (Spanish only):</p>
<p>&#8220;<strong>Pequeños telescopios al estudio de los planetas gigantes</strong>&#8220;, por Jon Legarreta y <a href="http://www.ajax.ehu.es/rhueso/index.html">Ricardo Hueso</a>, <a href="http://www.astronomia-e.com/index.php?option=com_sobi2&amp;sobi2Task=sobi2Details&amp;catid=6&amp;sobi2Id=359&amp;Itemid=196"><strong>AstronomíA, November 2010</strong></a>. </p>
<br />Filed under: <a href='http://sigquit.wordpress.com/category/development/projects/'>Projects</a>, <a href='http://sigquit.wordpress.com/category/development/projects/pvol/'>PVOL</a> Tagged: <a href='http://sigquit.wordpress.com/tag/astronomy/'>Astronomy</a>, <a href='http://sigquit.wordpress.com/tag/pvol/'>PVOL</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/324/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=324&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2010/11/15/pvol-in-the-astronomia-magazine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>

		<media:content url="http://www.pvol.ehu.es/resources/PVOL-LOGO.gif" medium="image">
			<media:title type="html">PVOL</media:title>
		</media:content>

		<media:content url="http://bppx90.bp.ehu.es:8080/iopwimages/jupiter/dpa20101114_0246.jpg" medium="image">
			<media:title type="html">Jupiter on Nov 14th 2010, by D. Parker</media:title>
		</media:content>
	</item>
		<item>
		<title>m4 macro to check if SQLite was compiled thread-safe</title>
		<link>http://sigquit.wordpress.com/2010/10/05/m4-macro-to-check-if-sqlite-was-compiled-thread-safe/</link>
		<comments>http://sigquit.wordpress.com/2010/10/05/m4-macro-to-check-if-sqlite-was-compiled-thread-safe/#comments</comments>
		<pubDate>Tue, 05 Oct 2010 18:38:35 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Lanedo Planet]]></category>
		<category><![CDATA[autoconf]]></category>
		<category><![CDATA[m4]]></category>
		<category><![CDATA[sqlite]]></category>
		<category><![CDATA[thread-safe]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=318</guid>
		<description><![CDATA[If your application is using SQLite, you may be assuming it is always compiled thread-safe, but this is not true. It will only be compiled thread-safe (with proper mutexes enabled) if the SQLITE_THREADSAFE preprocessor macro is set to 1 (serialized) or 2 (multi-threaded) (1/serialized is the default if not explicitly stated). If SQLITE_THREADSAFE is set [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=318&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If your application is using SQLite, <a href="http://www.sqlite.org/faq.html#q6">you may be assuming it is always compiled thread-safe</a>, but this is not true. It will only be compiled thread-safe (with proper mutexes enabled) if the SQLITE_THREADSAFE preprocessor macro is set to 1 (serialized) or 2 (multi-threaded) (1/serialized is the default if not explicitly stated). If SQLITE_THREADSAFE is set to 0 during compilation of SQLite, it will <strong>not be thread-safe</strong>. Also note that if compiled thread-safe (1 or 2), the thread-safety mode (serialized or multi-threaded) can later be changed in runtime. See <a href="http://www.sqlite.org/threadsafe.html">SQLite and Multiple Threads</a> for more information.</p>
<p>SQLite provides the <a href="http://www.sqlite.org/c3ref/threadsafe.html">sqlite3_threadsafe()</a> method to check whether the library was compiled thread-safe, but if your application really needs a thread-safe SQLite, you don&#8217;t want to check it during runtime. Thus, I wrote a small m4 macro that you can use in your configure.ac to check it when running ./configure</p>
<p>Just add this file in your m4 directory:<br />
<a href="http://es.gnu.org/~aleksander/sqlite/sqlite-threadsafe.m4">http://es.gnu.org/~aleksander/sqlite/sqlite-threadsafe.m4</a></p>
<p>And then, in your configure.ac:<br />
<code><br />
AX_SQLITE_THREADSAFE<br />
if test "x$ax_cv_sqlite_threadsafe" != "xyes"; then<br />
&nbsp;&nbsp;AC_MSG_ERROR([sqlite3 is not compiled thread-safe])<br />
fi<br />
</code></p>
<br />Filed under: <a href='http://sigquit.wordpress.com/category/development/'>Development</a>, <a href='http://sigquit.wordpress.com/category/planets/lanedo-planet/'>Lanedo Planet</a> Tagged: <a href='http://sigquit.wordpress.com/tag/autoconf/'>autoconf</a>, <a href='http://sigquit.wordpress.com/tag/m4/'>m4</a>, <a href='http://sigquit.wordpress.com/tag/sqlite/'>sqlite</a>, <a href='http://sigquit.wordpress.com/tag/thread-safe/'>thread-safe</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/318/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/318/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/318/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=318&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2010/10/05/m4-macro-to-check-if-sqlite-was-compiled-thread-safe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Trisquel Taranis is here, including a MINI edition!</title>
		<link>http://sigquit.wordpress.com/2010/09/29/trisquel-taranis-is-here-including-a-mini-edition/</link>
		<comments>http://sigquit.wordpress.com/2010/09/29/trisquel-taranis-is-here-including-a-mini-edition/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 16:46:56 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[taranis]]></category>
		<category><![CDATA[trisquel]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=309</guid>
		<description><![CDATA[After a great job done during several months by Rubén and the rest of the Trisquel team, the long-waited Trisquel 4.0 Taranis&#8221; was published during the Software Freedom Day. This new release of Trisquel is based on Ubuntu 10.04 &#8220;Lucid&#8221;, and provides a fully-free distribution of GNU/Linux, running the 100% free Linux-libre 2.6.32 kernel. This [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=309&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After a great job done during several months by <a href="http://quidam.cc">Rubén</a> and the rest of the <a href="http://trisquel.info">Trisquel</a> team, the long-waited Trisquel 4.0 <strong><a href="http://en.wikipedia.org/wiki/Taranis">Taranis</a></strong>&#8221; was published during the <a href="http://softwarefreedomday.org">Software Freedom Day</a>.</p>
<p>This new release of Trisquel is based on <a href="http://www.ubuntu.com">Ubuntu</a> 10.04 &#8220;Lucid&#8221;, and provides a fully-free distribution of GNU/Linux, running the 100% free <a href="http://www.fsfla.org/svnwiki/selibre/linux-libre">Linux-libre</a> 2.6.32 kernel. This release comes in two different primary versions, the &#8220;Standard Edition&#8221; and the &#8220;Mini Edition&#8221;.</p>
<p>The &#8220;Standard Edition&#8221; is meant for standard desktop computers, and includes:</p>
<ul>
<li><a href="http://www.gnome.org">GNOME</a> 2.30</li>
<li><a href="http://www.openoffice.org/">OpenOffice.org</a> 3.2</li>
<li><a href="http://www.gimp.org"><strong>Gimp</strong> 2.6</a></li>
<li>ABrowser 3.6.9 (<a href="http://www.mozilla.com/firefox/">Firefox</a>-based web browser)</li>
</ul>
<p>The &#8220;Mini Edition&#8221;, focused on computers with CPU/RAM limitations like Netbooks, includes:</p>
<ul>
<li>LXDE 0.5</li>
<li><a href="http://www.twotoasts.de/index.php?/pages/midori_summary.html"><strong>Midori</strong> 0.2</a></li>
</ul>
<p>I&#8217;ve been using Trisquel Taranis Standard Edition since some months ago, while it was not even in beta stage; but also wanted to check the look and feel and performance of the <strong>Mini version</strong>, so I decided to try it in a VM.</p>
<p>The boot menu when installing Trisquel Taranis is really appealing:</p>
<p><a href="http://sigquit.files.wordpress.com/2010/09/trisquel-mini-install.png"><img class="aligncenter size-medium wp-image-313" title="trisquel-mini-install" src="http://sigquit.files.wordpress.com/2010/09/trisquel-mini-install.png?w=300&#038;h=224" alt="Boot menu in Trisquel Mini installation CD" width="300" height="224" /></a></p>
<p>Remember that <strong>you can try Trisquel GNU/Linux without installing it</strong>!</p>
<p>This is the initial look and feel of Trisquel Taranis Mini after installing it and logging in the user account. Note to Windows users, what&#8217;s the difference between a fresh Windows installation and a GNU/Linux installation? Just check the image&#8230;</p>
<p><a href="http://sigquit.files.wordpress.com/2010/09/trisquel-mini-desktop-1.png"><img class="aligncenter size-medium wp-image-312" title="trisquel-mini-desktop-1" src="http://sigquit.files.wordpress.com/2010/09/trisquel-mini-desktop-1.png?w=300&#038;h=225" alt="The Trisquel Taranis Mini desktop" width="300" height="225" /></a></p>
<p>Answer: The &#8220;welcome&#8221; popup in GNU/Linux tells you about new software updates, it <strong>doesn&#8217;t</strong> tell you &#8220;<span style="color:#ff0000;">Your computer is at risk!!!</span>&#8221; because you didn&#8217;t install the antivirus or whatever. GNU/Linux doesn&#8217;t need an antivirus, and a fresh install is just <strong>SECURE</strong>, not like a Windows one.</p>
<p>The lightweight Mini edition will use <strong>only ~90MB of RAM when booted</strong>, which makes it perfect for netbooks and laptops without much memory:</p>
<p><a href="http://sigquit.files.wordpress.com/2010/09/trisquel-mini-top.png"><img src="http://sigquit.files.wordpress.com/2010/09/trisquel-mini-top.png?w=300&#038;h=224" alt="Top" title="trisquel-mini-top" width="300" height="224" class="aligncenter size-medium wp-image-315" /></a></p>
<p>So, if you want to give it a try, <strong><a href="http://trisquel.info/en/download">Download Trisquel Taranis</a></strong>! And if you like it, you can also <a href="http://trisquel.info/en/donate">Donate to the project</a>, or <a href="http://trisquel.info/en/store">buy some nice Trisquel Merchandise</a>&#8230;</p>
<br />Filed under: <a href='http://sigquit.wordpress.com/category/operating-systems/'>Operating Systems</a> Tagged: <a href='http://sigquit.wordpress.com/tag/gnulinux/'>gnu/linux</a>, <a href='http://sigquit.wordpress.com/tag/taranis/'>taranis</a>, <a href='http://sigquit.wordpress.com/tag/trisquel/'>trisquel</a>, <a href='http://sigquit.wordpress.com/tag/ubuntu/'>ubuntu</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/309/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/309/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/309/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/309/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/309/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/309/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/309/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/309/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/309/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/309/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/309/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/309/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/309/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/309/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=309&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2010/09/29/trisquel-taranis-is-here-including-a-mini-edition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>

		<media:content url="http://sigquit.files.wordpress.com/2010/09/trisquel-mini-install.png?w=300" medium="image">
			<media:title type="html">trisquel-mini-install</media:title>
		</media:content>

		<media:content url="http://sigquit.files.wordpress.com/2010/09/trisquel-mini-desktop-1.png?w=300" medium="image">
			<media:title type="html">trisquel-mini-desktop-1</media:title>
		</media:content>

		<media:content url="http://sigquit.files.wordpress.com/2010/09/trisquel-mini-top.png?w=300" medium="image">
			<media:title type="html">trisquel-mini-top</media:title>
		</media:content>
	</item>
		<item>
		<title>The Octopus Library 0.0.1 released</title>
		<link>http://sigquit.wordpress.com/2010/09/10/the-octopus-library-0-0-1-released-2/</link>
		<comments>http://sigquit.wordpress.com/2010/09/10/the-octopus-library-0-0-1-released-2/#comments</comments>
		<pubDate>Fri, 10 Sep 2010 10:48:45 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Lanedo Planet]]></category>
		<category><![CDATA[Octopus]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[lgplv3]]></category>
		<category><![CDATA[octopus]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=299</guid>
		<description><![CDATA[This is the first version of the Octopus Library, a C library providing advanced file system crawling and monitoring capabilities on top of GLib&#8217;s GIO. This library, released under the LGPLv3+, is a full rewrite of some of the features provided by Gnome Tracker&#8216;s libtracker-miner library. Online documentation is available in: http://es.gnu.org/~aleksander/octopus/doc The sources can [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=299&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img src="http://sigquit.files.wordpress.com/2010/09/lgplv3-147x51.png?w=500" alt="LGPLv3 logo" title="lgplv3-147x51"   class="alignright size-full wp-image-300" /></p>
<p>This is the first version of <a href="http://gitorious.org/goctopus">the Octopus Library</a>, a C library providing advanced file system crawling and monitoring capabilities on top of GLib&#8217;s GIO. This library, released under the <a href="http://www.gnu.org/licenses/lgpl-3.0-standalone.html">LGPLv3+</a>, is a full rewrite of some of the features provided by <a href="http://projects.gnome.org/tracker">Gnome Tracker</a>&#8216;s <a href="http://git.gnome.org/browse/tracker/tree/src/libtracker-miner">libtracker-miner</a> library.</p>
<p>Online <strong>documentation</strong> is available in:<br />
<a href="http://es.gnu.org/~aleksander/octopus/doc">http://es.gnu.org/~aleksander/octopus/doc</a></p>
<p>The <strong>sources</strong> can be downloaded from:<br />
<a href="http://es.gnu.org/~aleksander/octopus/releases/octopus-0.0.1.tar.gz">http://es.gnu.org/~aleksander/octopus/releases/octopus-0.0.1.tar.gz</a></p>
<p>The <strong>mdsum</strong> is:<br />
cca4e5152e9586abc57d330bad7bee09  octopus-0.0.1.tar.gz</p>
<p>This release is also <strong>GPG signed</strong>. You can download the signature from:<br />
<a href="http://es.gnu.org/~aleksander/octopus/releases/octopus-0.0.1.tar.gz.sig">http://es.gnu.org/~aleksander/octopus/releases/octopus-0.0.1.tar.gz.sig</a></p>
<p>Some of the <strong>features</strong> provided by this new library are:<br />
 * Recursive crawling on a set of configured directories. For example, it may be configured to recursively crawl /home and /media.<br />
 * Directories inside the tree to recurse can be set to be ignored. For example, it may be configured to recursively crawl /home/user but not /home/user/.private.<br />
 * Directories may be configured to be crawled, but not recursively. For example, /home may be configured to be non-recursively crawled.<br />
 * Any possible combination of crawled, recursively-crawled and ignored is supported, as long as the same path is not added with different options.<br />
 * For every file or directory found during the crawling operation, a new event will be notified to configured signal listeners.<br />
 * During the filesystem crawling, monitors may be enabled in directories.<br />
 * Event merging; so that multiple events of the same type on the same file are all combined in a single event. Event merging will also act on different event types, trying to combine them in the best possible way. For example, if a file is CREATED, UPDATED and then REMOVED no event will be notified.<br />
 * Real-Time event notification. Both merged or raw events can be set to be notified in real-time.<br />
 * On-Demand iteration of events. If enabled, the monitor will store all received events in a proper order, so that afterwards they can be iterated. You could for example, configure a timeout every 30 minutes to iterate all raw or merged events which happened since the last iteration.<br />
 * Proper order of events. When notifying or iterating events the order may not be exactly the same as the one in the original events, but it is assured that if followed all events in the order given by the Octopus Monitor, the result is exactly the same as if followed in the original order.</p>
<p>In the <strong>roadmap</strong> for next versions:<br />
 * Asynchronous API will be available in release 0.0.2.<br />
 * A &#8216;database&#8217; of already crawled directories will be optional, storing mtimes of each found file, so that when the program starts and re-crawls a common directory structure, it will check if the files in the tree changed since the last time crawled. This will be available in release 0.0.3.</p>
<p>Please send <strong>bug reports and suggestions</strong> to aleksander (at) gnu.org or aleksander (at) lanedo.com</p>
<br />Filed under: <a href='http://sigquit.wordpress.com/category/development/'>Development</a>, <a href='http://sigquit.wordpress.com/category/planets/lanedo-planet/'>Lanedo Planet</a>, <a href='http://sigquit.wordpress.com/category/development/projects/octopus/'>Octopus</a>, <a href='http://sigquit.wordpress.com/category/development/projects/'>Projects</a> Tagged: <a href='http://sigquit.wordpress.com/tag/lgplv3/'>lgplv3</a>, <a href='http://sigquit.wordpress.com/tag/octopus-2/'>octopus</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/299/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/299/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/299/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=299&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2010/09/10/the-octopus-library-0-0-1-released-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>

		<media:content url="http://sigquit.files.wordpress.com/2010/09/lgplv3-147x51.png" medium="image">
			<media:title type="html">lgplv3-147x51</media:title>
		</media:content>
	</item>
		<item>
		<title>Ubuntu packaging updates: dbus 1.3.1, sqlite 3.7.1 and gnu psychosynth 0.1.5</title>
		<link>http://sigquit.wordpress.com/2010/08/24/ubuntu-packaging-updates/</link>
		<comments>http://sigquit.wordpress.com/2010/08/24/ubuntu-packaging-updates/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 14:25:16 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Lanedo Planet]]></category>
		<category><![CDATA[Packaging]]></category>
		<category><![CDATA[dbus]]></category>
		<category><![CDATA[ghm]]></category>
		<category><![CDATA[gnu psychosynth]]></category>
		<category><![CDATA[sqlite]]></category>
		<category><![CDATA[trisquel]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=285</guid>
		<description><![CDATA[SQLite and DBus I&#8217;ve been lately packaging the latest releases of several programs for Ubuntu Lucid (or Trisquel Taranis), mainly due to our bleeding-edge requirements in Tracker. You can find them in my personal PPAs in Launchpad: SQLite 3.7.1 (enabling Write-Ahead logging): https://launchpad.net/~aleksander-m/+archive/sqlite3 dbus 1.3.1 (enabling file descriptor passing): https://launchpad.net/~aleksander-m/+archive/dbus-development The real packaging work was [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=285&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>SQLite and DBus</strong></p>
<p>I&#8217;ve been lately packaging the latest releases of several programs for Ubuntu Lucid (or <a href="http://trisquel.info/en"><strong>Trisquel</strong></a> <strong>Taranis</strong>), mainly due to our bleeding-edge requirements in <a href="http://projects.gnome.org/tracker">Tracker</a>. You can find them in my personal PPAs in Launchpad:</p>
<ul>
<li><strong>SQLite 3.7.1</strong> (enabling <a href="http://www.sqlite.org/draft/wal.html">Write-Ahead logging</a>): <br /><a href="https://launchpad.net/~aleksander-m/+archive/sqlite3">https://launchpad.net/~aleksander-m/+archive/sqlite3</a></li>
<li><strong>dbus 1.3.1</strong> (enabling file descriptor passing): <br /><a href="https://launchpad.net/~aleksander-m/+archive/dbus-development">https://launchpad.net/~aleksander-m/+archive/dbus-development</a></li>
</ul>
<p>The real packaging work was done by the Debian guys, of course (kudos to them!); I just prepared the necessary bits to make them get compiled as Ubuntu packages.</p>
<p><strong>GNU Psychosynth</strong></p>
<p>In addition to this, during the last <a href="http://www.gnu.org/ghm/2010/denhaag">GNU Hackers Meeting in The Hague</a>, I also changed the Ubuntu packaging of <a href="http://www.psychosynth.com">GNU Psychosynth</a>, the most entertaining music synthesizer I&#8217;ve ever played with. The latest packages are now available in the <a href="https://launchpad.net/~gnu-psychosynth-team/+archive/ppa">GNU Psychosynth Team&#8217;s PPA</a>, and right now only Ubuntu versions &gt;= Lucid will be supported (as they <strong>no longer</strong> require <a href="https://launchpad.net/~andrewfenn/+archive/ogredev">Andrew Fenn&#8217;s Ogre Development PPA</a>).</p>
<p>More information in: <a href="http://www.psychosynth.com/index.php/Ubuntu_Repository">http://www.psychosynth.com/index.php/Ubuntu_Repository</a></p>
<p>Oh, and <a href="https://www.ohloh.net/accounts/raskolnikov">Juan Pedro</a> was able to do another demonstration of GNU Psychosynth during the meeting, which got recorded, so that you can understand what this great program does&#8230; <strong>watch it and enjoy!</strong><br />
<a href="http://audio-video.gnu.org/video/ghm2010/GNU_Psycosynth.ogv">http://audio-video.gnu.org/video/ghm2010/GNU_Psycosynth.ogv</a></p>
<br />Filed under: <a href='http://sigquit.wordpress.com/category/planets/lanedo-planet/'>Lanedo Planet</a>, <a href='http://sigquit.wordpress.com/category/packaging/'>Packaging</a> Tagged: <a href='http://sigquit.wordpress.com/tag/dbus/'>dbus</a>, <a href='http://sigquit.wordpress.com/tag/ghm/'>ghm</a>, <a href='http://sigquit.wordpress.com/tag/gnu-psychosynth/'>gnu psychosynth</a>, <a href='http://sigquit.wordpress.com/tag/sqlite/'>sqlite</a>, <a href='http://sigquit.wordpress.com/tag/trisquel/'>trisquel</a>, <a href='http://sigquit.wordpress.com/tag/ubuntu/'>ubuntu</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/285/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/285/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/285/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/285/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/285/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/285/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/285/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/285/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/285/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/285/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/285/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/285/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/285/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/285/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=285&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2010/08/24/ubuntu-packaging-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://audio-video.gnu.org/video/ghm2010/GNU_Psycosynth.ogv" length="69931061" type="video/ogg" />
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>My pictures from Aspen here and there</title>
		<link>http://sigquit.wordpress.com/2010/07/16/my-pictures-from-aspen-here-and-there/</link>
		<comments>http://sigquit.wordpress.com/2010/07/16/my-pictures-from-aspen-here-and-there/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 15:35:58 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=282</guid>
		<description><![CDATA[Sometime ago the people organizing the Boostcon contacted me to see if they could publish a picture I took in Aspen during my participation in the NVOSS. Even if I&#8217;m a pure ANSI C guy, I accepted This last week, the german online magazine ScienceGarden contacted me for exactly the same reason, but they chose [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=282&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Sometime ago the people organizing the <a href="http://www.boostcon.com">Boostcon</a> contacted me to see if they could <a href="http://www.boostcon.com/location/lodging">publish a picture I took in Aspen</a> during my participation in the <a href="http://www.us-vo.org/summer-school">NVOSS</a>. Even if I&#8217;m a pure ANSI C guy, I accepted <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><img src="http://es.gnu.org/~aleksander/web/images/aspen_001.jpg" alt="Aspen Meadows resort" /></p>
<p>This last week, the german online magazine <a href="http://sciencegarden.de">ScienceGarden</a> contacted me for exactly the same reason, but <a href="http://sciencegarden.de/content/2010-07/gipfelstuerme-der-physik">they chose different pictures</a>:</p>
<p><img src="http://es.gnu.org/~aleksander/web/images/aspen_008.jpg" alt="Aspen Center for Physics" /><br />
<img src="http://es.gnu.org/~aleksander/web/images/aspen_010.jpg" alt="Beautiful Aspen" /></p>
<p>So, if any other person wants to publish <a href="http://es.gnu.org/~aleksander/web/pictures_nvoss.html">more images of Aspen</a>, feel free, and a reference is always appreciated!</p>
<br />Filed under: <a href='http://sigquit.wordpress.com/category/personal/'>Personal</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/282/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=282&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2010/07/16/my-pictures-from-aspen-here-and-there/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>

		<media:content url="http://es.gnu.org/~aleksander/web/images/aspen_001.jpg" medium="image">
			<media:title type="html">Aspen Meadows resort</media:title>
		</media:content>

		<media:content url="http://es.gnu.org/~aleksander/web/images/aspen_008.jpg" medium="image">
			<media:title type="html">Aspen Center for Physics</media:title>
		</media:content>

		<media:content url="http://es.gnu.org/~aleksander/web/images/aspen_010.jpg" medium="image">
			<media:title type="html">Beautiful Aspen</media:title>
		</media:content>
	</item>
		<item>
		<title>Lanedo, Tracker, Devhelp, GHM, GUADEC&#8230;</title>
		<link>http://sigquit.wordpress.com/2010/07/16/lanedo-tracker-devhelp-ghm-guadec/</link>
		<comments>http://sigquit.wordpress.com/2010/07/16/lanedo-tracker-devhelp-ghm-guadec/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 09:06:49 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Lanedo Planet]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[devhelp]]></category>
		<category><![CDATA[ghm]]></category>
		<category><![CDATA[guadec]]></category>
		<category><![CDATA[lanedo]]></category>
		<category><![CDATA[tracker]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=278</guid>
		<description><![CDATA[So, starting on April 1st (not a fools&#8217; day joke!), I&#8217;m now employed by Lanedo GmbH, and full-time working on the Gnome Tracker project, mainly involved in FTS and the filesystem miner. It was great to work with everyone in Azetti Networks. Keep Jardin and Waterfall alive! I also hacked a new feature for Gnome [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=278&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So, starting on April 1st (not a fools&#8217; day joke!), I&#8217;m now employed by <a href="http://www.lanedo.com"><strong>Lanedo GmbH</strong></a>, and full-time working on the <a href="http://projects.gnome.org/tracker"><strong>Gnome Tracker</strong></a> project, mainly involved in FTS and the filesystem miner.</p>
<p>It was great to work with everyone in <a href="http://www.azetti.com"><strong>Azetti Networks</strong></a>. Keep <a href="https://launchpad.net/eljardin">Jardin</a> and <a href="https://launchpad.net/waterfall">Waterfall</a> alive!</p>
<p>I also hacked a new feature for <a href="http://live.gnome.org/devhelp">Gnome Devhelp</a>, the possibility of <a href="https://bugzilla.gnome.org/show_bug.cgi?id=619202">enabling or disabling specific books</a>, which <a href="http://git.gnome.org/browse/devhelp/commit/?id=a9b25d74b596886307c7a724a71d36d0c68be8e2">was integrated into git master last week</a>, and will make it for the 3.0 release.</p>
<p>Oh, and I&#8217;ll be attending both the <a href="http://www.gnu.org/ghm/2010/denhaag">GHM</a> and <a href="http://www.guadec.org/index.php/guadec/2010">GUADEC</a> in The Hague!</p>
<br />Filed under: <a href='http://sigquit.wordpress.com/category/development/'>Development</a>, <a href='http://sigquit.wordpress.com/category/planets/lanedo-planet/'>Lanedo Planet</a>, <a href='http://sigquit.wordpress.com/category/personal/'>Personal</a> Tagged: <a href='http://sigquit.wordpress.com/tag/devhelp/'>devhelp</a>, <a href='http://sigquit.wordpress.com/tag/ghm/'>ghm</a>, <a href='http://sigquit.wordpress.com/tag/guadec/'>guadec</a>, <a href='http://sigquit.wordpress.com/tag/lanedo/'>lanedo</a>, <a href='http://sigquit.wordpress.com/tag/tracker/'>tracker</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/278/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/278/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/278/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/278/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/278/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/278/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/278/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/278/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=278&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2010/07/16/lanedo-tracker-devhelp-ghm-guadec/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Gaztea Irratia &amp; Rhythmbox</title>
		<link>http://sigquit.wordpress.com/2010/03/12/gaztea-irratia-rhythmbox/</link>
		<comments>http://sigquit.wordpress.com/2010/03/12/gaztea-irratia-rhythmbox/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 11:25:38 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Programs]]></category>
		<category><![CDATA[gaztea irratia]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[internet radio]]></category>
		<category><![CDATA[rhythmbox]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=273</guid>
		<description><![CDATA[First thing when I go back to the Basque Country to visit my family is to tune Gaztea Irratia in my car&#8217;s radio. Now, I can listen to it from anywhere using Gnome&#8217;s Rhythmbox and the Shoutcast live stream. Just add a new radio station in Rhythmbox with this URL: http://yp.shoutcast.com/sbin/tunein-station.pls?id=77647 And enjoy! Filed under: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=273&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>First thing when I go back to the Basque Country to visit my family is to tune <a href="http://www.eitb.com/gaztea/">Gaztea Irratia</a> in my car&#8217;s radio.</p>
<p>Now, I can listen to it from anywhere using Gnome&#8217;s <a href="http://projects.gnome.org/rhythmbox/">Rhythmbox</a> and the <a href="http://www.shoutcast.com/Internet-Radio/gaztea">Shoutcast live stream</a>. Just add a new radio station in Rhythmbox with this URL:</p>
<p><a href="http://yp.shoutcast.com/sbin/tunein-station.pls?id=77647">http://yp.shoutcast.com/sbin/tunein-station.pls?id=77647</a></p>
<p>And enjoy!</p>
<br />Filed under: <a href='http://sigquit.wordpress.com/category/programs/'>Programs</a> Tagged: <a href='http://sigquit.wordpress.com/tag/gaztea-irratia/'>gaztea irratia</a>, <a href='http://sigquit.wordpress.com/tag/gnome/'>gnome</a>, <a href='http://sigquit.wordpress.com/tag/internet-radio/'>internet radio</a>, <a href='http://sigquit.wordpress.com/tag/rhythmbox/'>rhythmbox</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/273/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=273&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2010/03/12/gaztea-irratia-rhythmbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://yp.shoutcast.com/sbin/tunein-station.pls?id=77647" length="0" type="audio/x-scpls" />
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Understanding Valgrind memory leak reports</title>
		<link>http://sigquit.wordpress.com/2010/02/04/understanding-valgrind-memory-leak-reports/</link>
		<comments>http://sigquit.wordpress.com/2010/02/04/understanding-valgrind-memory-leak-reports/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 00:42:44 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Writting]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[valgrind]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=267</guid>
		<description><![CDATA[I tried to write a tutorial focusing on the type of memory leaks as detected internally by Valgrind and the generated output leak reports. The PDF is available in the following URL: http://es.gnu.org/~aleksander/valgrind/valgrind-memcheck.pdf And the simple C tester to generate each type of memory leak (cases 1 to 9 in the Valgrind Manual) is available [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=267&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I tried to write a tutorial focusing on the type of memory leaks as detected internally by Valgrind and the generated output leak reports.</p>
<p>The PDF is available in the following URL:<br />
<a href="http://es.gnu.org/%7Ealeksander/valgrind/valgrind-memcheck.pdf" target="_blank">http://es.gnu.org/~aleksander/valgrind/valgrind-memcheck.pdf</a></p>
<p>And the simple C tester to generate each type of memory leak (cases 1 to 9 in the Valgrind Manual) is available here:<br />
<a href="http://es.gnu.org/%7Ealeksander/valgrind/valgrind-memcheck.c" target="_blank">http://es.gnu.org/~aleksander/valgrind/valgrind-memcheck.c</a></p>
<p>Comments, fixes, whatever&#8230; highly appreciated. You could even send me a diff file to the original LaTeX source, available in:<br />
<a href="http://es.gnu.org/%7Ealeksander/valgrind/valgrind-memcheck.tex" target="_blank">http://es.gnu.org/~aleksander/valgrind/valgrind-memcheck.tex</a></p>
<p>The document is licensed under the GFDL 1.3, and the tester is published in the public domain.</p>
<br />Filed under: <a href='http://sigquit.wordpress.com/category/development/'>Development</a>, <a href='http://sigquit.wordpress.com/category/writting/'>Writting</a> Tagged: <a href='http://sigquit.wordpress.com/tag/c/'>c</a>, <a href='http://sigquit.wordpress.com/tag/gnulinux/'>gnu/linux</a>, <a href='http://sigquit.wordpress.com/tag/valgrind/'>valgrind</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/267/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=267&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2010/02/04/understanding-valgrind-memory-leak-reports/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>The Pirate Banana</title>
		<link>http://sigquit.wordpress.com/2010/02/02/the-pirate-banana/</link>
		<comments>http://sigquit.wordpress.com/2010/02/02/the-pirate-banana/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 19:20:00 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Drawing]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[pirate banana]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=263</guid>
		<description><![CDATA[This is probably the weirdest drawing I&#8217;ve ever made&#8230; My brother-in-law asked me if I could draw a &#8220;Pirate Banana&#8221; to be used in the Carnival party soon in February&#8230; yeah, don&#8217;t ask me why he asked for that. But here is what it came up after a couple of hours&#8230; (click image to see [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=263&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is probably the weirdest drawing I&#8217;ve ever made&#8230; My brother-in-law asked me if I could draw a &#8220;<strong>Pirate Banana</strong>&#8221; to be used in the Carnival party soon in February&#8230; yeah, don&#8217;t ask me why he asked for that.</p>
<p>But here is what it came up after a couple of hours&#8230; (click image to see it bigger).</p>
<div class="wp-caption aligncenter" style="width: 310px"><a href="http://es.gnu.org/~aleksander/drawings/pirate_banana_big.png"><img title="The Pirate Banana" src="http://es.gnu.org/~aleksander/drawings/pirate_banana_small.png" alt="The Pirate Banana" width="300" height="413" /></a><p class="wp-caption-text">The Pirate Banana</p></div>
<p>Licensed under the <a href="http://creativecommons.org/licenses/by-sa/3.0/" target="_blank">Creative Commons Attribution-Share Alike 3.0 License</a></p>
<br />Filed under: <a href='http://sigquit.wordpress.com/category/drawing/'>Drawing</a>, <a href='http://sigquit.wordpress.com/category/personal/'>Personal</a> Tagged: <a href='http://sigquit.wordpress.com/tag/drawing/'>Drawing</a>, <a href='http://sigquit.wordpress.com/tag/pirate-banana/'>pirate banana</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/263/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/263/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/263/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=263&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2010/02/02/the-pirate-banana/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>

		<media:content url="http://es.gnu.org/~aleksander/drawings/pirate_banana_small.png" medium="image">
			<media:title type="html">The Pirate Banana</media:title>
		</media:content>
	</item>
		<item>
		<title>See you at FOSDEM!</title>
		<link>http://sigquit.wordpress.com/2010/01/18/see-you-at-fosdem/</link>
		<comments>http://sigquit.wordpress.com/2010/01/18/see-you-at-fosdem/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 19:35:56 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Meetings]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=257</guid>
		<description><![CDATA[This year, I will be attending FOSDEM 2010 in Brussels (Belgium). See you there! Posted in Meetings<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=257&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This year, I will be attending <a href="http://www.fosdem.org/2010">FOSDEM 2010</a> in Brussels (Belgium).</p>
<p><a href="http://www.fosdem.org"><img src="http://www.fosdem.org/promo/going-to" alt="I'm going to FOSDEM, the Free and Open Source Software Developers' European Meeting" /></a></p>
<p>See you there!</p>
<br />Posted in Meetings  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/257/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=257&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2010/01/18/see-you-at-fosdem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>

		<media:content url="http://www.fosdem.org/promo/going-to" medium="image">
			<media:title type="html">I&#039;m going to FOSDEM, the Free and Open Source Software Developers&#039; European Meeting</media:title>
		</media:content>
	</item>
		<item>
		<title>Knight&#8217;s Tour brute force algorithm example</title>
		<link>http://sigquit.wordpress.com/2010/01/13/knights-tour-brute-force-algorithm-example/</link>
		<comments>http://sigquit.wordpress.com/2010/01/13/knights-tour-brute-force-algorithm-example/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 23:50:22 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[glib]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=249</guid>
		<description><![CDATA[(From Wikipedia) The Knight&#8217;s Tour is a mathematical problem involving a knight on a chessboard. The knight is placed on the empty board and, moving according to the rules of chess, must visit each square exactly once. A knight&#8217;s tour is called a closed tour if the knight ends on a square attacking the square [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=249&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<blockquote><p> (From Wikipedia) <a href="http://en.wikipedia.org/wiki/Knight%27s_tour">The Knight&#8217;s Tour</a> is a mathematical problem involving a knight on a chessboard. The knight is placed on the empty board and, moving according to the rules of chess, must visit each square exactly once. A knight&#8217;s tour is called a closed tour if the knight ends on a square attacking the square from which it began (so that it may tour the board again immediately with the same path). Otherwise the tour is open. </p></blockquote>
<p>Just developed my brute-force algorithm implementation, using GLib and based on a simple recursive function.</p>
<p><a href="http://es.gnu.org/~aleksander/glib/knightstour-glib.c">Download and try it here!</a></p>
<p>As an example of result, this is the open Knight&#8217;s Tour found by the algorithm in a <strong>5&#215;5 board</strong>, starting from position [0,0]:<br />
[0,0][1,2][2,4][4,3][3,1][1,0][2,2][0,3][1,1][3,0][4,2][3,4][1,3][0,1][2,0][4,1][3,3][1,4][0,2][2,1][4,0][3,2][4,4][2,3][0,4]</p>
<p>And this one, the first Knight&#8217;s Tour found by the algorithm in a <strong>8&#215;8 board</strong>, starting from position [0,0]:<br />
[0,0][1,2][2,4][3,6][5,7][7,6][6,4][7,2][6,0][4,1][5,3][6,5][7,7][5,6][7,5][6,3][7,1][5,0][6,2][7,4][5,5][6,7][4,6][5,4][6,6][4,5][3,3][5,2][7,3][6,1][4,0][2,1][4,2][3,0][1,1][0,3][2,2][0,1][2,0][3,2][4,4][2,3][0,4][1,6][3,7][2,5][1,7][0,5][1,3][3,4][1,5][0,7][2,6][4,7][3,5][2,7][0,6][1,4][0,2][1,0][3,1][4,3][5,1][7,0]</p>
<p>Both examples above show <em>open</em> Knight&#8217;s Tours.</p>
<br />Posted in Development Tagged: algorithms, glib <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/249/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=249&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2010/01/13/knights-tour-brute-force-algorithm-example/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Simple LaTeX template for Books</title>
		<link>http://sigquit.wordpress.com/2010/01/12/simple-latex-template-for-books/</link>
		<comments>http://sigquit.wordpress.com/2010/01/12/simple-latex-template-for-books/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 00:51:12 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Writting]]></category>
		<category><![CDATA[eBook]]></category>
		<category><![CDATA[LaTeX]]></category>
		<category><![CDATA[texinfo]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=240</guid>
		<description><![CDATA[I prepared a simple LaTeX template for Books and/or eBooks (&#8220;book&#8221; document class), showing the usage of several common packages (&#8220;geometry&#8221;, &#8220;inputenc&#8221;, &#8220;setspace&#8221;, &#8220;fancyhdr&#8221;, &#8220;tocloft&#8221;}. You can download the source LaTeX template here! And get a PDF using GNU Texinfo.. $&#62; texi2pdf book_template.tex Resulting PDF can be seen here! Posted in Development, Writting Tagged: eBook, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=240&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I prepared a simple <a href="http://en.wikipedia.org/wiki/LaTeX">LaTeX</a> template for Books and/or eBooks (&#8220;<strong>book</strong>&#8221; document class), showing the usage of several common packages (&#8220;geometry&#8221;, &#8220;inputenc&#8221;, &#8220;setspace&#8221;, &#8220;fancyhdr&#8221;, &#8220;tocloft&#8221;}.</p>
<p>You can download the source LaTeX template <a href="http://es.gnu.org/~aleksander/latex/book_template.tex">here!</a></p>
<p>And get a PDF using GNU Texinfo..<br />
<code>$&gt; texi2pdf book_template.tex</code></p>
<p>Resulting PDF can be seen <a href="http://es.gnu.org/~aleksander/latex/book_template.pdf">here!</a></p>
<br />Posted in Development, Writting Tagged: eBook, LaTeX, texinfo <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/240/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=240&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2010/01/12/simple-latex-template-for-books/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Fools rush in where angels fear to tread</title>
		<link>http://sigquit.wordpress.com/2010/01/05/fools-rush-in-where-angels-fear-to-tread/</link>
		<comments>http://sigquit.wordpress.com/2010/01/05/fools-rush-in-where-angels-fear-to-tread/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 21:59:00 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=234</guid>
		<description><![CDATA[I really had to write an email (quoted below) to the author of this blog post regarding the old GNU/Linux vs Linux battle&#8230; Just wanted to tell you that you are sooooo wrong in most of the things you say&#8230; and that it is very very funny how you say you can remove all GNU [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=234&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I really had to write an email (quoted below) to the author of  <a href="http://profarius.com/content/i-use-linux-get-it-right">this blog post regarding the old GNU/Linux vs Linux battle</a>&#8230;</p>
<blockquote><p>Just wanted to tell you that you are sooooo wrong in most of the things<br />
you say&#8230; and that it is very very funny how you say you can remove all<br />
GNU apps from several distros.</p>
<p>Did you remove GNU coreutils? Then how can you for example do a simple<br />
&#8220;ls&#8221; in the command line?</p>
<p>Oh, and do you know what the &#8220;G&#8221; means in GNOME?<br />
<a href="http://en.wikipedia.org/wiki/GNOME">http://en.wikipedia.org/wiki/GNOME</a></p>
<p>Glib? GTK+? All GNU packages.</p>
<p>And you&#8217;re part of an Ubuntu LoCo team &#8212;&gt; What about Bazaar, widely<br />
used in Ubuntu, as it is written by Canonical people&#8230; Also a GNU<br />
package!!<br />
<a href="https://lists.ubuntu.com/archives/bazaar-announce/2008-February/000135.html">https://lists.ubuntu.com/archives/bazaar-announce/2008-February/000135.html</a></p>
<p>Tell me now what you get if you remove all GNU packages from Ubuntu (if<br />
theoretically possible). Including GLib, GTK+ (and of course all their<br />
dependencies); including coreutils, bash, gdb, gcc&#8230; including the<br />
glibc (GNU C library)!</p>
<p>Now what you will probably get?</p>
<p>Probably *nothing*. Even the Linux kernel depends on the glibc.</p>
<p>Now, next time, I would suggest you just read a little bit more and<br />
understand what GNU means, before writing such wrong post.</p>
<p>Check which is the whole list of GNU packages here:<br />
<a href="http://directory.fsf.org/GNU">http://directory.fsf.org/GNU</a>
</p></blockquote>
<br />Posted in Operating Systems Tagged: gnu, gnu/linux, linux <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/234/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=234&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2010/01/05/fools-rush-in-where-angels-fear-to-tread/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>g_source_unref() and g_source_destroy() are your friends</title>
		<link>http://sigquit.wordpress.com/2010/01/05/g_source_unref-and-g_source_destroy-are-your-friends/</link>
		<comments>http://sigquit.wordpress.com/2010/01/05/g_source_unref-and-g_source_destroy-are-your-friends/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 21:05:31 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[glib]]></category>
		<category><![CDATA[gsource]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=227</guid>
		<description><![CDATA[After almost 2 years developing GLib-based applications, I understood the proper way of using GSource objects. Yes, quite a shame, but better now than never. Now, after re-reading carefully the GLib Reference Manual, I see that it is quite clearly explained the difference between g_source_destroy() and g_source_unref(). So the typical suggestion is still the best [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=227&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After almost 2 years developing GLib-based applications, I understood the proper way of using GSource objects. Yes, quite a shame, but better now than never.</p>
<p>Now, after re-reading carefully the <a href="http://library.gnome.org/devel/glib/unstable/">GLib Reference Manual</a>, I see that it is quite clearly explained the difference between <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-source-destroy">g_source_destroy()</a> and <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-source-unref">g_source_unref()</a>. So the typical suggestion is still the best one: <a href="http://en.wikipedia.org/wiki/Rtfm">RTFM!!</a></p>
<p>In our applications, we usually need to attach timeout operations to the context of an specific thread, not to the main thread context. Thus, we cannot use <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-timeout-add">g_timeout_add()</a> or the pretty new <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-timeout-add-seconds">g_timeout_add_seconds()</a>.</p>
<p>For example, you could create a GThreadPool, and in the function to be executed in each thread, you could create a specific context for the thread, plus a main loop in the context:</p>
<pre>
    /* Create a GLib Main Context */
    context = g_main_context_new();

    /* Create a Main Loop in the context*/
    main_loop = g_main_loop_new(context,
                                FALSE);
</pre>
<p>Once you have a new context and main loop, you can just create a new GSource, and attach it to the main loop. As soon as you create the GSource, its reference count is 1, and as soon as you attach it to the main loop, its reference count will be 2.</p>
<pre>
    /* Create new timeout source to be called
     * every 5 seconds.
     * Reference count of source is 1 once created */
    source = g_timeout_source_new(TIMEOUT_MSECS);

    /* Set callback to be called in each timeout */
    g_source_set_callback(source,
                          (GSourceFunc)__timeout_func,
                          main_loop,
                          NULL);

    /* Attach the GSource in the GMainContext.
     * Reference count of source is 2 after this call */
    g_source_attach(source,
                    context);
</pre>
<p>Of, course, you will be now running the main loop:</p>
<pre>
    /* Run the main loop, until it is stopped */
    g_main_loop_run(main_loop);
</pre>
<p>The key now is how to destroy the GSource properly. When calling <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-source-destroy">g_source_destroy()</a>, you are doing 2 things: first, telling the main loop to forget about the GSource; and second, decrementing the reference count of the GSource. Then, you still need to call <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-source-unref">g_source_unref()</a> to fully decrement the reference counter so that the GSource is disposed.</p>
<pre>
    /* We did an attach() with the GSource, so we need to
     * destroy() it */
    g_source_destroy(source);

    /* We need to unref() the GSource to end the last reference
     * we got */
    g_source_unref(source);
</pre>
<p>To end the example, once the main loop is stopped, you will also need to properly dispose the GMainContext and GMainLoop objects:</p>
<pre>
    /* The main loop should be destroyed before the context */
    g_main_loop_unref(main_loop);

    /* Finally, destroy the context */
    g_main_context_unref(context);
</pre>
<p>This is just one way of keeping the GSource references properly managed:</p>
<ol>
<li>You get one reference when you create the GSource</li>
<li>You get a new reference when you attach it in the context</li>
<li>You release one reference when you destroy it from the context</li>
<li>You release last reference when you unref the final one</li>
</ol>
<p>Of course, you could also choose to avoid storing the &#8220;extra&#8221; reference, and leave alive only the one inside the main context:</p>
<ol>
<li>You get one reference when you create the GSource</li>
<li>You get a new reference when you attach it in the context</li>
<li>You release one reference when you unref the the GSource &#8212;&gt; Now, the only reference is inside the GMainContext</li>
<li>You release last reference when you destroy it from the context</li>
</ol>
<p>You can check this simple example in the following program I prepared, released into public domain:<br />
<a href="http://es.gnu.org/~aleksander/glib/test-gsource.c">http://es.gnu.org/~aleksander/glib/test-gsource.c</a></p>
<p>Hope it helps someone out there to fully understand the difference between <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-source-destroy">g_source_destroy()</a> and <a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-source-unref">g_source_unref()</a>.</p>
<p>As last comment&#8230; I would really rename the following functions in the library, so that no one else is confused with the &#8220;unref&#8221; and &#8220;destroy&#8221; terms:</p>
<ul>
<li>Rename <strong>g_source_attach()</strong> to <strong>g_source_attach_to_context()</strong></li>
<li>Rename <strong>g_source_destroy()</strong> to <strong>g_source_destroy_from_context()</strong></li>
</ul>
<p>The main reason is that these two operations actually act on the GMainContext, while the name of the functions do not suggest that fact.</p>
<br />Posted in Development Tagged: glib, gsource <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/227/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=227&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2010/01/05/g_source_unref-and-g_source_destroy-are-your-friends/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Stack corruption: improper use of FD_SET</title>
		<link>http://sigquit.wordpress.com/2009/12/24/stack-corruption-improper-use-of-fd_set/</link>
		<comments>http://sigquit.wordpress.com/2009/12/24/stack-corruption-improper-use-of-fd_set/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 22:53:24 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[jardin]]></category>
		<category><![CDATA[poll]]></category>
		<category><![CDATA[select]]></category>
		<category><![CDATA[stack corruption]]></category>
		<category><![CDATA[valgrind]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=202</guid>
		<description><![CDATA[So here is a very simple way of corrupting your stack when using select() to poll a given file descriptor. In El Jardin library, we used to use select() to see if incoming data was available for reading in a given socket. Using select() allows to have a maximum wait time so that the execution [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=202&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So here is a very simple way of corrupting your stack when using <code>select()</code> to poll a given file descriptor.  In <a href="https://launchpad.net/eljardin">El Jardin</a> library, we used to use <code>select()</code> to see if incoming data was available for reading in a given socket. Using <code>select()</code> allows to have a maximum wait time so that the execution in the thread is not blocked until the data arrives.  The code was just something like this (assuming &#8220;fd&#8221; an integer specifying the file descriptor number in the process): </p>
<pre>
fd_set rset;
struct timeval tv;

/* Initialize the array of flags, specifying the
 * FD we want to monitor */
FD_ZERO(&amp;rset);
FD_SET(fd, &amp;rset);

/* Set max wait time to 1 second */
tv.tv_sec = 1;
tv_tv_usec = 0;

/* Run select! */
if(select(fd+1, &amp;rset, NULL, NULL, &amp;tv) &lt; 0)
{
    /* Check errno */
}
</pre>
<p>
You may see this kind of code in lots of examples of usage for <code>select()</code>. But please, read the constraints carefully also!  Some things you need to understand:</p>
<ul>
<li><code>fd_set</code> is an array of bits, of <code>FD_SETSIZE</code> elements.</li>
<li><code>FD_ZERO</code> is a macro clearing (setting to &#8217;0&#8242; all bits in the <code>fd_set</code> array).</li>
<li><code>FD_SET</code> is a macro setting to &#8217;1&#8242; the bit for the specific file descriptor you want <code>select()</code> to check.</li>
</ul>
<p>And the most important thing once you understood the previous ones:</p>
<ul>
<li><code>FD_SETSIZE</code> is usually defined to 1024 in GNU/Linux systems</li>
</ul>
<p>This clearly means that <strong>the maximum file descriptor number to be used in <code>select()</code> must be 1024</strong>.
</p>
<p>The <a href="http://www.delorie.com/gnu/docs/glibc/libc_248.html">GNU C Library documentation</a> actually explains it perfectly:</p>
<blockquote><p>
The value of this macro is the maximum number of file descriptors<br />
that a <code>fd_set</code> object can hold information about.  On systems with<br />
a fixed maximum number, <code>FD_SETSIZE</code> is at least that number.  On<br />
some systems, including GNU, there is no absolute limit on the<br />
number of descriptors open, but this macro still has a constant<br />
value which controls the number of bits in an <code>fd_set</code>; <b>if you get<br />
a file descriptor with a value as high as <code>FD_SETSIZE</code>, you cannot<br />
put that descriptor into an <code>fd_set</code></b>.
</p></blockquote>
<p>Now, if you actually do what the GNU C Library documentation tells you not to do (using a FD with value higher than 1024 in this case), what you get 100% sure is a stack corruption. Why?</p>
<ol>
<li>In the above example, the <code>fd_set</code> array is in the stack</li>
<li><code>FD_SET</code> macro apparently doesn&#8217;t know about the <code>FD_SETSIZE</code> value, so even if you pass a FD greater than 1024, it will actually set to &#8220;1&#8243; the corresponding bit in the <code>fd_set</code> array of bits, which actually is <b>OUTSIDE</b> the array. Thus, corrupting the stack.</li>
</ol>
<p>Did it happen this to you?</p>
<ul>
<li>In our case, we first noticed using the GNU Debugger that some pointers in the stack magically changed their value, and only in a single bit (new address was previous address plus a multiple of 2). Also, that bit was different in different core files analyzed (depending on the FD number being used).</li>
<li>In some other cases, the stack was so corrupted that GDB was not even able of showing a proper backtrace</li>
</ul>
<p>But anyway, this problem was not only because of an improper use of <code>select()</code>. We also discovered a FD leak (socket open, never closed) which was making the FD number go up and up until being greater than 1024 after some hours. So best suggestion in this case: use Valgrind and track FDs:</p>
<pre>
# valgrind --track-fds=yes ./my-program
</pre>
</p>
<p>In El Jardin, we solved it (<a href="https://bugs.launchpad.net/eljardin/+bug/497570">LP#497570</a>) avoiding the use of <code>select()</code>, and <a href="http://bazaar.launchpad.net/~azetti/eljardin/main/revision/14">using <code>poll()</code> instead</a>, which doesn&#8217;t have this hard-coded limit of 1024. Other options are using <code>epoll()</code>, or defining your own FD_SETSIZE value after having included the system headers.</p>
<br />Posted in Development Tagged: gdb, jardin, poll, select, stack corruption, valgrind <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/202/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=202&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2009/12/24/stack-corruption-improper-use-of-fd_set/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>gNewSense in my home server</title>
		<link>http://sigquit.wordpress.com/2009/06/04/gnewsense-in-my-home-server/</link>
		<comments>http://sigquit.wordpress.com/2009/06/04/gnewsense-in-my-home-server/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 19:23:09 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[gnewsense]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[gnu/linux]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=197</guid>
		<description><![CDATA[Decided to drop Fedora10 in my home Asus PX24 server, and installed gNewSense, one of the full-free distributions promoted by the Free Software Foundation and the GNU project. Go download it! http://www.gnewsense.org/ In order to have all components working perfectly, Wireless networking among them, I needed to download latest linux-libre kernel. This kernel doesn&#8217;t ship [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=197&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Decided to drop <strong>Fedora10</strong> in my home Asus PX24 server, and installed <strong>gNewSense</strong>, one of the full-free distributions promoted by the Free Software Foundation and the GNU project.</p>
<p>Go download it!<br />
<a href="http://www.gnewsense.org/">http://www.gnewsense.org/</a></p>
<p>In order to have all components working perfectly, Wireless networking among them, I needed to download latest <a href="http://linux-libre.fsfla.org/">linux-libre</a> kernel. This kernel doesn&#8217;t ship <strong>any</strong> proprietary type of driver, not even those trying to seem free software but hiding the real source code into unintelligible hex characters, which are the ones GPL-ed.</p>
<p>Free your server!! </p>
<br />Posted in Operating Systems Tagged: fedora, gnewsense, gnu, gnu/linux <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/197/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=197&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2009/06/04/gnewsense-in-my-home-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Jazztel vs Ya.Com</title>
		<link>http://sigquit.wordpress.com/2009/04/07/jazztel-vs-yacom/</link>
		<comments>http://sigquit.wordpress.com/2009/04/07/jazztel-vs-yacom/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 21:56:28 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[ISP spain]]></category>
		<category><![CDATA[Jazztel]]></category>
		<category><![CDATA[Spanish]]></category>
		<category><![CDATA[Ya.Com]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=188</guid>
		<description><![CDATA[I guess this is only interesting for spanish people&#8230; &#8212;&#8212;&#8212;&#8212;&#8211; Por fin, Ya.Com no me da servicio de internet. Y digo por fin porque llevaba desde comienzos de Enero con un servicio de ADSL pésimo. Un resumen (casi) corto: * Comienzos de Enero: Mi ADSL de repente se comporta de forma extraña. El enlace cae [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=188&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I guess this is only interesting for spanish people&#8230;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Por fin, <strong>Ya.Com no me da servicio de internet</strong>. Y digo por fin porque llevaba desde comienzos de Enero con un servicio de ADSL pésimo. Un resumen (casi) corto:</p>
<p>* Comienzos de Enero: Mi ADSL de repente se comporta de forma extraña. El enlace cae constantemente, intenta sincronizar a velocidades altas (tenía contrato hasta 20 Mbps), y vuelve a caer, con lo que intenta sincronizar a menor velocidad. Y así, hasta que el enlace cae a 300/400 Kbps (a veces hasta 1Mbps como máximo).</p>
<p>* Como mi contrato es de 20Mbps, el mínimo por ley que te deben garantizar es el 10%, esto es, 2Mbps.</p>
<p>* Llamo al servicio de Ya.Com. Después de 1 hora de charla, el técnico llega a la conclusión de que <strong>el problema es del router</strong>, que hay que comprar uno nuevo.</p>
<p>* Como el router originalmente era el que me mandó Ya.Com, intento que Ya.Com me mande uno nuevo, ya que ese era defectuoso, según el técnico. El técnico me asegura que no será ningún problema que me den un router nuevo.</p>
<p>* Tras 4 días esperando a que alguien se decida a llamarme, llamo de nuevo. No hay router nuevo. Sólo me lo dan con un contrato de permanencia de 12 meses.</p>
<p>* Llamo al teléfono de bajas de Ya.Com y digo que me quiero dar de baja. <strong>Oh, sorpresa</strong>, me ofrecen 6 meses a mitad de precio si me quedo, y que me pasarán con un técnico de nivel 2. Consejo: si alguna vez os dicen eso, daros por engañados. Después de minutos de espera con una música horrible, <strong>el técnico te descuelga, dice cuatro palabras y la comunicación se corta</strong>. Esto es más que común. En tres meses de llamadas me ha pasado día sí y día también.</p>
<p>* Consiguen convencerme con lo de la oferta a mitad de precio y el técnico de nivel 2. Se ve que si no les pasan un técnico de nivel 2 al momento a la gente de bajas, te dicen que te llaman ellos y que te pasan al técnico. Mira, esto sí es verdad. La gente del departamento de bajas te llama, y te dice que te pasa con el técnico de nivel 2. Y hasta ahi. Pasan minutos de música y cuando el técnico de nivel 2 te coge, dice 4 palabras y te cuelga. <strong>Oh, sorpresa</strong>.</p>
<p>* Como el servicio ténico era imposible, decidí comprar un router nuevo. El primer técnico que me atendió estaba bastante seguro de que era el problema&#8230; así que me compré uno nuevo (más de 100 euros), lo enchufo, lo configuro y&#8230; voilá! Pasa lo mismo&#8230; intentos de sincronización de ADSL hasta que se queda estable en menos de 1Mbps&#8230;</p>
<p>* Más llamadas al servicio técnico. Que mirarán en la central y me llaman. Que harán una prueba conjunta con Telefónica (la que me daba la línea) y me llaman&#8230;</p>
<p>* Más llamadas al servicio técnico, me dicen que no ven ningún problema en la central, y que confirman que la sincronización de ADSL se reintenta hasta que queda estable por debajo de 1Mbps. Si configuro el router para no utilizar ADSL2+, sino sólo ADSL2 es más estable, pero la velocidad no supera 1Mbps.</p>
<p>* <strong>Cambio cables de telefonía</strong>. Desde enero el router estaba directamente empalmado al PTR de Telefónica, para asegurarnos que no era la instalación interna.</p>
<p>* Finalmente me llama un técnico muy agradable. Mira oye, que <strong>va a ser problema del PTR de Telefónica</strong>, que llame a Telefónica para que me lo cambien y que no me cobrarán nada. Que en Ya.Com han hecho ya todo todo lo que estaba en sus manos, y que ellos no pueden hacer más, que es el PTR fijo. Lo que nos faltaba, vamos. Se ve que les dan un curso de forwardear marrones a los técnicos de Ya.Com.</p>
<p>* Telefónica viene y me planta un PTR nuevo. Y, <strong>oh sorpresa, sigue pasando lo mismo&#8230;<br />
</strong><br />
* Después de alguna semana más, me llama una técnica y me planta lo siguiente: Que la solución para mi problema es que cambie mi contrato de 20Mbps a 10Mbps, y entonces se soluciona todo. Parece razonable? No. Recordemos que por ley te deben garantizar el <strong>10% de lo contratado</strong>. Con mi contrato de 20Mbps estaban fastidiados porque el 10% eran 2Mbps, y desde Enero mi conexión no superaba 1Mbps. No tiene sentido que por un simple cambio de contrato, los problemas en la línea se solucionen. Yo le dije que si esa era la solución, primero me diesen 10Mbps, que yo los vea, y luego me cambiaba de contrato. Insistía que eso no podía ser, que primero era el cambio de contrato (algo <strong>absurdo</strong>). O sea, que me cambio a 10Mbps y se me solucionan los problemas? Mejor dicho, se les solucionan a ellos! Si paso a 10Mbps de contrato, por ley me tienen que garantizar 1Mbps, cosa que sí tenía! Tócate los pies!!! Si me llego a cambiar de contrato, ellos ya se lavan las manos con mi problema.</p>
<p>* <strong>Relleno</strong> el formulario para darme de baja en la web de Ya.Com, <strong>espero</strong> 24h, y <strong>llamo</strong> al departamento de bajas para confirmarlo (después de 3 meses estos pasos ya los tenía claros).</p>
<p>* Hoy, más de 3 meses después de empezar con los problemas, y tras decenas de llamadas, he visto que la luz de sincronización en el router estaba fija, y la de datos apagada. El router de <strong>Jazztel</strong> lo tienen todavía en Seur, así que como ya tengo uno en casa, he llamado a Jazztel para que me den los datos de conexión (PPPoE en este caso necesita usuario y password, no como en Ya.Com).</p>
<p>* Después de 5 minutos con el servicio técnico de Jazztel, ya tengo internet. Y no sólo eso&#8230; la conexión de Ya.Com, en su mejor momento me sincronizaba a 13Mbps&#8230; la conexión de Jazztel me sincroniza a <strong>20Mbps</strong>! Estupendo vamos.</p>
<p>En resumen: Si dudas entre Ya.Com y Jazztel&#8230; mi experiencia es que <strong>Jazztel mejor</strong>&#8230; (por ahora! cruzo dedos&#8230;)</p>
<br />Posted in Personal Tagged: ISP spain, Jazztel, Spanish, Ya.Com <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/188/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=188&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2009/04/07/jazztel-vs-yacom/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>The Core Pattern (core_pattern), or how to specify filename and path for core dumps</title>
		<link>http://sigquit.wordpress.com/2009/03/13/the-core-pattern/</link>
		<comments>http://sigquit.wordpress.com/2009/03/13/the-core-pattern/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 20:41:51 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[core]]></category>
		<category><![CDATA[coreutils]]></category>
		<category><![CDATA[core_pattern]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[kernel]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=179</guid>
		<description><![CDATA[1. Introduction to Core Dumps In most GNU/Linux systems (all of those I personally have used, at least), core dump files generated after an uncaught signal in a process (as a SIGSEGV or SIGQUIT), are generated in the base directory where the program was executed, and named as &#8220;core&#8221; or &#8220;core.PID&#8221;. For example: $&#62; cd [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=179&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>1. Introduction to Core Dumps</strong></p>
<p>In most GNU/Linux systems (all of those I personally have used, at least), core dump files generated after an uncaught signal in a process (as a SIGSEGV or SIGQUIT), are generated in the base directory where the program was executed, and named as &#8220;core&#8221; or &#8220;core.PID&#8221;.</p>
<p>For example:<br />
<code><br />
$&gt; cd /home/user<br />
$&gt; ulimit -c unlimited<br />
$&gt; kill -s SIGSEGV $$<br />
</code></p>
<p>This will trigger a segmentation fault in your current shell (you probably guessed it after seeing that the shell session where you executed it was closed), and generate a core file in:<br />
<strong>/home/user/core</strong></p>
<p>Now&#8230; is it possible to change where that file is generated by default instead of the current directory? And is it possible to change the name of that generated file? The answer is YES! to both. Let&#8217;s see how we can get this.</p>
<p><strong>2. The Core Pattern in Kernel</strong></p>
<p>Since some years ago, the kernel configuration includes a file named &#8220;core_pattern&#8221;:<br />
<strong>/proc/sys/kernel/core_pattern</strong></p>
<p>In my system, that file contains just this single word:<br />
<code>core</code></p>
<p>As expected, this pattern shows how the core file will be generated. Two things can be understood from the previous line: The filename of the core dump file generated will be &#8220;core&#8221;; and second, the current directory will be used to store it (as the path specified is completely relative to the current directory).</p>
<p>Now, if we change the contents of that file&#8230; (as root, of course)<br />
<code><br />
$&gt; mkdir -p /tmp/cores<br />
$&gt; chmod a+rwx /tmp/cores<br />
$&gt; echo "/tmp/cores/core.%e.%p.%h.%t" &gt; /proc/sys/kernel/core_pattern<br />
</code></p>
<p>And we run the same as before:<br />
<code><br />
$&gt; cd /home/user<br />
$&gt; ulimit -c unlimited<br />
$&gt; $&gt; kill -s SIGSEGV $$<br />
</code></p>
<p>We get&#8230; voilá!<br />
<strong>/tmp/cores/core.bash.8539.drehbahn-mbp.1236975953</strong></p>
<p>Not only the program name (&#8220;<strong>bash</strong>&#8220;) or the PID (&#8220;<strong>8539</strong>&#8220;), but also the hostname (&#8220;<strong>drehbahn-mbp</strong>&#8220;) and the unix time (&#8220;<strong>1236975953</strong>&#8220;) are appended in the name of the core file!! And of course, it is stored in the absolute path we specified (&#8220;<strong>/tmp/cores/</strong>&#8220;).</p>
<p>You can use the following pattern elements in the core_pattern file:<br />
<code><br />
%p:       pid<br />
%:   '%' is dropped<br />
%%:       output one '%'<br />
%u:       uid<br />
%g:       gid<br />
%s:       signal number<br />
%t:       UNIX time of dump<br />
%h:       hostname<br />
%e:       executable filename<br />
%: both are dropped<br />
</code></p>
<p>Isn&#8217;t is great?! Imagine that you have a cluster of machines and you want to use a NFS directory to store all core files from all the nodes. You will be able to detect which node generated the core file (with the hostname), which program generated it (with the program name), and also when did it happen (with the unix time).</p>
<p><strong>3. Configure it forever</strong></p>
<p>The changes done before are only applicable until the next reboot. In order to make the change in all future reboots, you will need to add the following in &#8220;<strong>/etc/sysctl.conf</strong>&#8220;:<br />
<code><br />
# Own core file pattern...<br />
kernel.core_pattern=/tmp/cores/core.%e.%p.%h.%t<br />
</code></p>
<p>sysctl.conf is the file controlling every configuration under /proc/sys</p>
<br />Posted in Development Tagged: core, coreutils, core_pattern, gnu/linux, kernel <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/179/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/179/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=179&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2009/03/13/the-core-pattern/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Fedora 10 in Asus Mini Nova Lite PX24 (2): Wireless Networking</title>
		<link>http://sigquit.wordpress.com/2009/03/11/fedora-10-in-asus-mini-nova-lite-px24-2-wireless-networking/</link>
		<comments>http://sigquit.wordpress.com/2009/03/11/fedora-10-in-asus-mini-nova-lite-px24-2-wireless-networking/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 20:32:10 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[chkconfig]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[network config]]></category>
		<category><![CDATA[NetworkManager]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[system-config-*]]></category>
		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=167</guid>
		<description><![CDATA[My friend Tomasz gave me yesterday the configuration to enable Wireless Networking at system-level (skipping NetworkManager) for Ubuntu. It&#8217;s just modifying /etc/network/interfaces to setup the Wireless device directly there: auto lo iface lo inet loopback &#160; iface wlan0 inet dhcp wireless-key s:your_f****_password_here wireless-essid your_f****_essid_here I wanted the same in my home Fedora 10 server, but [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=167&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>My friend <a href="http://myitcorner.com/">Tomasz</a> gave me yesterday the configuration to enable Wireless Networking at system-level (skipping NetworkManager) for Ubuntu. It&#8217;s just modifying /etc/network/interfaces to setup the Wireless device directly there:<br />
<code><br />
auto lo<br />
iface lo inet loopback<br />
&nbsp;<br />
iface wlan0 inet dhcp<br />
wireless-key s:your_f****_password_here<br />
wireless-essid your_f****_essid_here<br />
</code></p>
<p>I wanted the same in my home <strong>Fedora 10</strong> server, but as you already may know, Fedora 10 is based on Red Hat, so forget about the debian-like network configuration, and welcome to the system-config-* scripts!</p>
<p>You can edit your system-level network configuration, executing, as root:<br />
<code><br />
$&gt; system-config-network<br />
</code><br />
(or clicking on System-&gt;Administration-&gt;Network)</p>
<p>In the Wireless Settings tab you should select &#8220;<strong>Managed</strong>&#8221; mode, and I also specified the correct SSID of my home wireless network. Be really careful if adding the WEP key in HEX, as you must prepend &#8220;0x&#8221; to the whole key or it won&#8217;t work.</p>
<p>I thought that this would be enough, but nope. NetworkManager is launched by default at system startup, not the /etc/init.d/network script, which is disabled by default. You just need to disable NetworkManager, and enable the standard &#8220;network&#8221; script in order to have the system-level wireless configuration, executing, as root:<br />
<code><br />
$&gt; service NetworkManager stop<br />
$&gt; chkconfig --level 35 NetworkManager off<br />
$&gt; service network start<br />
$&gt; chkconfig --level 35 network on<br />
</code></p>
<p>I really like <strong>chkconfig</strong>, but not sure if the &#8220;<strong>service</strong>&#8221; command is a needed replacement of executing the script from /etc/init.d directly.</p>
<br />Posted in Operating Systems Tagged: chkconfig, fedora, network config, NetworkManager, service, system-config-*, wireless <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/167/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=167&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2009/03/11/fedora-10-in-asus-mini-nova-lite-px24-2-wireless-networking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Fedora 10 in Asus Mini Nova Lite PX24 (1)</title>
		<link>http://sigquit.wordpress.com/2009/03/11/fedora-10-in-asus-mini-nova-lite-px24-1/</link>
		<comments>http://sigquit.wordpress.com/2009/03/11/fedora-10-in-asus-mini-nova-lite-px24-1/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 20:10:31 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[kubuntu]]></category>
		<category><![CDATA[suse]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=162</guid>
		<description><![CDATA[I recently bought a small Asus Mini Nova Lite PX24 and of course, installed GNU/Linux on it. I chose Fedora 10 because at that time, it was the only distro I tested with the required driver for the Wireless interface: Atheros Communications Inc. AR242x 802.11abg Wireless PCI Express Adapter Other distros I have tried in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=162&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently bought a small <a href="http://www.asus.com/news_show.aspx?id=11565">Asus Mini Nova Lite PX24</a> and of course, installed GNU/Linux on it. I chose <strong>Fedora 10</strong> because at that time, it was the only distro I tested with the required driver for the Wireless interface:<br />
Atheros Communications Inc. AR242x 802.11abg Wireless PCI Express Adapter</p>
<p>Other distros I have tried in the Asus PX24 are:<br />
 * <a href="https://lists.ubuntu.com/archives/ubuntu-devel-announce/2007-August/000336.html">Ubuntu 8.04 Hardy Heron</a> [Doesn't work]<br />
 * <a href="http://www.opensuse.org/en/">OpenSUSE-11.1-GNOME</a> [Doesn't work]<br />
 * <a href="http://sigquit.wordpress.com/2009/02/22/debian-50-lenny-is-now-stable/">Debian 5.0 Lenny</a> [Doesn't work]<br />
 * <a href="https://lists.ubuntu.com/archives/ubuntu-devel-announce/2008-September/000481.html">Ubuntu 9.04 Jaunty Jackalope</a> Alpha-5 <strong>[Works]</strong></p>
<p>I was a Kubuntu fan until release 8.10, which completely destroyed the usability and stability of the distribution when shipping a non-stable version of KDE4. Switched then back to Gnome in Ubuntu 8.10, far more stable than the KDE counterpart. So now that I know that next stable version of Ubuntu also makes the Wireless networking work out-of-the-box, I thought of changing the PX24 back to Ubuntu.</p>
<p>But I won&#8217;t&#8230; I want to try yum, RH&#8217;s system-config-whatever scripts, SELinux&#8230; all those things that are not available in Ubuntu.</p>
<br />Posted in Operating Systems Tagged: fedora, gnu/linux, kubuntu, suse, ubuntu, wireless <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/162/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=162&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2009/03/11/fedora-10-in-asus-mini-nova-lite-px24-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Save my time &amp; bandwidth: Think before replying in HTML</title>
		<link>http://sigquit.wordpress.com/2009/03/10/save-my-time-bandwidth-think-before-replying-in-html/</link>
		<comments>http://sigquit.wordpress.com/2009/03/10/save-my-time-bandwidth-think-before-replying-in-html/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 22:18:33 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=158</guid>
		<description><![CDATA[I get in tons of emails the following text appended to the sender&#8217;s signature (or similar): Save a tree: Think before you print this email Usually, that text is included along with some big JPEG image included within an HTML-formatted colourful email, which of course, takes its time to render in my email desktop application [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=158&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I get in tons of emails the following text appended to the sender&#8217;s signature (or similar):<br />
<strong>Save a tree: Think before you print this email</strong></p>
<p>Usually, that text is included along with some big JPEG image included within an HTML-formatted colourful email, which of course, takes its time to render in my email desktop application or even worse, shown as attached image in GMail interface.</p>
<p>Now I am thinking in adding this other text after my signature in the emails:<br />
<strong>Save my time &amp; bandwidth: Think before you reply to this email in HTML</strong></p>
<br />Posted in Personal Tagged: email, html <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/158/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=158&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2009/03/10/save-my-time-bandwidth-think-before-replying-in-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Nokia Phonebook exported via Bluetooth to my car</title>
		<link>http://sigquit.wordpress.com/2009/03/02/nokia-phonebook-exported-via-bluetooth-to-my-car/</link>
		<comments>http://sigquit.wordpress.com/2009/03/02/nokia-phonebook-exported-via-bluetooth-to-my-car/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 22:05:10 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Programs]]></category>
		<category><![CDATA[bluetooth]]></category>
		<category><![CDATA[car]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[phonebook]]></category>
		<category><![CDATA[S60]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=151</guid>
		<description><![CDATA[I bought a new car last week, and I wanted to connect my Nokia N78 with the Bluetooth call manager in the car to be able to get the Phonebook (a.k.a. Contact list) of my phone accessible from my car&#8217;s screen and controls. After googleing a lot for the solution, I found the &#8220;Nokia 810 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=151&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I bought a new car last week, and I wanted to connect my Nokia N78 with the Bluetooth call manager in the car to be able to get the Phonebook (a.k.a. Contact list) of my phone accessible from my car&#8217;s screen and controls. After googleing a lot for the solution, I found the &#8220;<a href="http://europe.nokia.com/A4143881">Nokia 810 Contact Download Application for Nokia S60 3rd edition devices</a>&#8221; available in Nokia&#8217;s support website.</p>
<p>This program is supposed to work in the following Nokia phones: Nokia E50, E60, E61, E61i, E62, E66, E70, E71, E90 Communicator, N71, N73, N77, N75, N76, N80, N91, N91 8GB, N92, N93, N95, 3250, 5500 Sport, 5700 XpressMusic, and 6290.</p>
<p>I downloaded it and installed, and voilà, now I have my phone&#8217;s address book (only that in the SIM card, anyway), accessible from the controls in my car! So even if the N78 is not in the list provided in Nokia&#8217;s website, I can confirm it works nice.</p>
<p><a href="http://europe.nokia.com/A4164022?url=http://nds1.nokia.com/phones/files/software/Nokia_810_Contacts_Download_S60_3rd.sis">Download the SYS file</a><br />
<a href="http://europe.nokia.com/A4164044?url=http://nds1.nokia.com/phones/files/software/Nokia_810_contacts_sync_instruction_guide.pdf">Download the manual in PDF</a></p>
<br />Posted in Programs Tagged: bluetooth, car, nokia, phonebook, S60 <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/151/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=151&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2009/03/02/nokia-phonebook-exported-via-bluetooth-to-my-car/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>ARTE</title>
		<link>http://sigquit.wordpress.com/2009/02/28/arte/</link>
		<comments>http://sigquit.wordpress.com/2009/02/28/arte/#comments</comments>
		<pubDate>Sat, 28 Feb 2009 14:09:30 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[arte]]></category>
		<category><![CDATA[gplv3]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=147</guid>
		<description><![CDATA[Not so long ago, I asked my first employer if they were still using the Unit Testing framework I developed for them while I was still in University. It was simple, with lots of hardcoded stuff and not very professional, but it worked perfectly for the needs in that moment. They told me they were [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=147&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Not so long ago, I asked my <a href="http://www.pandasecurity.com">first employer</a> if they were still using the Unit Testing framework I developed for them while I was still in University. It was simple, with lots of hardcoded stuff and not very professional, but it worked perfectly for the needs in that moment. They told me they were not really using it, so I asked them to make it Free Software and they agreed.</p>
<p>A couple of weeks ago, <a href="http://arte.sourceforge.net">ARTE</a> was released licensed under the <a href="http://www.gnu.org/licenses/gpl-3.0.html">GPLv3+</a> license, fully copyrighted by <a href="http://www.pandasecurity.com">Panda Security S.L.</a>.</p>
<p>I now started to improve ARTE, with better documentation and based on <a href="http://library.gnome.org/devel/glib/stable">GLib</a> library. ARTE is hosted <a href="http://sourceforge.net/projects/arte">in SourceForge</a>, and you can download the first stable release <a href="http://sourceforge.net/project/platformdownload.php?group_id=250598">here</a>.</p>
<br />Posted in Projects Tagged: arte, gplv3 <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/147/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/147/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/147/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=147&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2009/02/28/arte/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Having fun with an A380</title>
		<link>http://sigquit.wordpress.com/2009/02/25/having-fun-with-an-a380/</link>
		<comments>http://sigquit.wordpress.com/2009/02/25/having-fun-with-an-a380/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 19:06:55 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Gnu Bazaar]]></category>
		<category><![CDATA[VCS]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=142</guid>
		<description><![CDATA[So imagine that you are a pilot of small aeroplanes. Really small ones, like the ones for two people with propellers. You have piloted that aeroplane tons of times. One day, you find yourself in a holiday trip flying in a big A380, and both main pilots get ill and can&#8217;t pilot the aircraft. You [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=142&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So imagine that you are a pilot of small aeroplanes. Really small ones, like the ones for two people with propellers. You have piloted that aeroplane tons of times.</p>
<p>One day, you find yourself in a holiday trip flying in a big A380, and both main pilots get ill and can&#8217;t pilot the aircraft. You are an experienced pilot of small aeroplanes, so you decide to pilot the huge A380 yourself.</p>
<p>Now, what do you do?</p>
<ol>
<li>Ask for help to the people in the airport to guide you with the aeroplane details and how to pilot it</li>
<li><a href="http://en.wikipedia.org/wiki/RTFM">RTFM</a>, even if you know it may take some time to learn it</li>
<li>Fuck everything! You are a pilot! You have done it tons of times! This big A380 shouldn&#8217;t be too different, right?</li>
</ol>
<p>Oh, alright, you chose last option, hum? Then, as it is normal, your experience with the small aeroplanes has nothing to do with the A380. Even if at the end the result is the same (an aeroplane flies), they are different in nature. Engines are different, power is different, size is different, everything is different. So the plane starts to go down, and you continue trying different things&#8230; you press this button, then that one, oh shit&#8230; it&#8217;s going down&#8230; then you push that lever, nothing, oh maybe that red button there&#8230;<br />
Shit it doesn&#8217;t work! Do I have a manual? Oh yes, there it is&#8230; ok&#8230; where is the chapter &#8220;how to start the propellers&#8221;? Humm.. where is it? Humm&#8230; Can&#8217;t find it!!! How is this possible! There is no chapter where it explains how to start the propellers!!? </p>
<p>Nice, so you realized it doesn&#8217;t work the way you thought it should (A380 doesn&#8217;t have propellers, among others). Again, what do you do?</p>
<ol>
<li>Ask for help to the people in the airport to guide you with the aeroplane details and how to pilot it</li>
<li><a href="http://en.wikipedia.org/wiki/RTFM">RTFM</a> carefully, not only looking for the chapter explaining how to start the propellers, as you already noticed that maybe the A380 doesn&#8217;t have propellers</li>
<li>Blame every engineer who built the aircraft</li>
<li>Blame not only every engineer who built it, but also the one who wrote the manual</li>
<li>Blame every engineer who built it, the one who wrote the manual AND also say that your small aeroplane is also much much better than this A380 you don&#8217;t understand</li>
</ol>
<p>How will this end? Of course, not well.</p>
<p>What&#8217;s the moral in this? If you don&#8217;t know how to do something, even if you think you know it, better ask someone or read the manual carefully.</p>
<p>Now, why this post? Because of this one: <a href="http://0pointer.de/blog/projects/bizarre-fun.html">Having fun with bzr</a></p>
<p>And yes I know that Git is not a small aeroplane and neither GNU Bazaar a huge A380. But no one can say that Git is easier to understand than Bazaar. You just need to understand that even if both are Distributed VCS, their way to work is different, their interface is different&#8230; in a brief, they are completely different VCS.</p>
<p>P.S.: The command you were looking for so desperately was &#8220;branch&#8221;, neither &#8220;get&#8221; nor &#8220;waldo&#8221; nor any other thing. A380 doesn&#8217;t have propellers! Don&#8217;t look for how to start them in the manual!</p>
<p>P.P.S.: Also, the URL of the repository you were using was probably not the good one: <a href="http://www.mega-nerd.com/Bzr/libsndfile-pub/">http://www.mega-nerd.com/Bzr/libsndfile-pub/</a> doesn&#8217;t exist (404 Not Found). A good choice would have been to go to an upper directory and look for the existing URLs&#8230; <a href="http://www.mega-nerd.com/Bzr/libsndfile-pub/">http://www.mega-nerd.com/Bzr</a></p>
<br />Posted in Development Tagged: Git, Gnu Bazaar, VCS <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/142/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=142&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2009/02/25/having-fun-with-an-a380/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Debian 5.0 &#8220;lenny&#8221; is now stable</title>
		<link>http://sigquit.wordpress.com/2009/02/22/debian-50-lenny-is-now-stable/</link>
		<comments>http://sigquit.wordpress.com/2009/02/22/debian-50-lenny-is-now-stable/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 13:09:04 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[kde4]]></category>
		<category><![CDATA[kubuntu]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=132</guid>
		<description><![CDATA[Some of you may be used to the every 6-months release of a new stable version of Ubuntu GNU/Linux [1]. That&#8217;s quite a hard strategy to follow, as it seems that the important thing is to have the release out, even if not as perfect as desired. I see this approach as coming from the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=132&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Some of you may be used to the every 6-months release of a new <em>stable</em> version of <a href="http://www.ubuntu.com/">Ubuntu GNU/Linux [1]</a>. That&#8217;s quite a hard strategy to follow, as it seems that the important thing is to have the release out, even if not as perfect as desired. I see this approach as coming from the world of proprietary software companies, where the important thing is to reach the release date no matter what, so that the commercial department doesn&#8217;t need to re-print the leaflets or re-design the web page to change the release date of the product. This can lead into very very wrong decisions and situations: for example, shipping KDE4 in Kubuntu 8.10 even if the release of KDE4 shipped was lacking of lots of things (and then we have to read things like <a href="http://weblog.obso1337.org/2008/on-distributions-kubuntu-and-kde">these [2]</a> to justify the decision!!).</p>
<p><a href="http://www.debian.org">Debian GNU/Linux [3]</a> uses a complete different approach. There are always 3 main version of Debian available at any time: stable, testing and unstable <a href="http://www.debian.org/releases">[4]</a>. The stable version contains what the developers consider is a real stable version. The testing version contains usually latest releases of the upstream packages, and this version will be the one converting itself into stable in the next step. The unstable release contains all the testing-pending packages submitted by the Debian developers. In this approach, you always know that stability is assured in every stable release of Debian.</p>
<div id="attachment_135" class="wp-caption aligncenter" style="width: 260px"><img src="http://sigquit.files.wordpress.com/2009/02/id_2784_lenny.jpg?w=500" alt="Lenny, from Toy Story" title="lenny"   class="size-full wp-image-135" /><p class="wp-caption-text">Lenny, from Toy Story</p></div>
<p>This is the main reason why a new stable version of Debian, like the <strong>Debian 5.0</strong> codenamed <strong><a href="http://en.wikipedia.org/wiki/List_of_Toy_Story_characters#Lenny">lenny [5]</a></strong> is always a special event: it happens only when it must happen, and never before.</p>
<p>References:</p>
<ul>
<li>[1] <a href="http://www.ubuntu.com">http://www.ubuntu.com</a></li>
<li>[2] <a href="http://weblog.obso1337.org/2008/on-distributions-kubuntu-and-kde">http://weblog.obso1337.org/2008/on-distributions-kubuntu-and-kde</a></li>
<li>[3] <a href="http://www.debian.org">http://www.debian.org</a></li>
<li>[4] <a href="http://www.debian.org/releases">http://www.debian.org/releases</a></li>
<li>[5] <a href="http://en.wikipedia.org/wiki/List_of_Toy_Story_characters#Lenny">http://en.wikipedia.org/wiki/List_of_Toy_Story_characters#Lenny</a></li>
</ul>
<br />Posted in Operating Systems Tagged: debian, gnu/linux, kde4, kubuntu, ubuntu <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/132/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=132&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2009/02/22/debian-50-lenny-is-now-stable/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>

		<media:content url="http://sigquit.files.wordpress.com/2009/02/id_2784_lenny.jpg" medium="image">
			<media:title type="html">lenny</media:title>
		</media:content>
	</item>
		<item>
		<title>Avoid G_TYPE_INSTANCE_GET_PRIVATE() in GObjects</title>
		<link>http://sigquit.wordpress.com/2009/02/13/avoid-g_type_instance_get_private-in-gobjects/</link>
		<comments>http://sigquit.wordpress.com/2009/02/13/avoid-g_type_instance_get_private-in-gobjects/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 12:33:49 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[glib]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gobject]]></category>
		<category><![CDATA[valgrind]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=98</guid>
		<description><![CDATA[When developing GObjects in Glib/GObject framework, it is usual to have a structure defined in the source file with all the private members of the object. Doing this, the internals of the object are not published in its API, so that no other module outside can modify them without using the defined GObject methods. There [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=98&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When developing GObjects in Glib/GObject framework, it is usual to have a structure defined in the source file with all the <em>private</em> members of the object. Doing this, the internals of the object are not published in its API, so that no other module outside can modify them without using the defined GObject methods.</p>
<p>There are several ways to achieve this, and one of them is the recommended one in GObject&#8217;s tutorial [1], which uses the <strong>G_TYPE_INSTANCE_GET_PRIVATE</strong> [2] macro to get the glib-instantiated private structure. This private structure, allocated for each instance of the object, is specified in the Class initialization function with <strong>g_type_class_add_private()</strong>, and allocated every time a new GObject instance is created.</p>
<p>Usually, you will have a macro for your specific GObject which will call G_TYPE_INSTANCE_GET_PRIVATE:</p>
<pre><span style="color:#0000ff;">#define MY_GOBJECT_GET_PRIVATE(o) \
    (G_TYPE_INSTANCE_GET_PRIVATE((o), MY_GOBJECT_TYPE, MyGObjectPrivate))</span></pre>
<p></br></p>
<p>This seems a good way of doing it, and quite simple to use. Glib will take care of allocating and deallocating that private structure for us&#8230; so why avoid it?</p>
<p>Well&#8230; if you ever tried to run Valgrind&#8217;s callgrind tool to measure how much time your program spends in a given function, you will see the reason. Other people already did that and published results on the web, so go and check them [3] or just try it with your application:</p>
<pre><span style="color:#0000ff;">$&gt; valgrind --tool=callgrind /usr/local/bin/your_program&lt;/span</pre>
<p></br></p>
<p>Now, an easy way of getting the same result, with a little bit more of work but achieving the best performance, is just using an opaque pointer in the GObject&#8217;s public structure and define, allocate and deallocate it yourself in the source file (so also can be treated as <em>private</em>, as the users of the API don&#8217;t know the internals of the structure).</p>
<p>These are the basic changes you need to do to avoid calling G_TYPE_INSTANCE_GET_PRIVATE():</p>
<p>**** In the HEADER of the GObject, when the struct defining the Object is specified, add a &#8220;gpointer priv&#8221; variable.</p>
<pre><span style="color:#0000ff;">struct _MyGObject
{
    /** Parent object */
    GObject parent;
    /** Private data pointer */
    gpointer priv;
}</span></pre>
<p></br></p>
<p>**** Then, in the SOURCE of the GObject, modify the GET_PRIVATE macro so that instead of doing the standard GObject lookup for the correct type, we just get the opaque &#8220;priv&#8221; pointer defined in the header, and we cast it to the correct type.</p>
<pre><span style="color:#0000ff;">#define MY_GOBJECT_GET_PRIVATE(o) \
    ((MyGObjectPrivate *)((MY_GOBJECT(o))-&gt;priv))</span></pre>
<p></br></p>
<p>**** As we won&#8217;t use the automatic allocation of the Private data structure, we need to allocate it ourselves in the _init() function.</p>
<pre><span style="color:#0000ff;">static void
my_gobject_init(MyGObject *self)
{
    /* Allocate Private data structure */
    (MY_GOBJECT(self))-&gt;priv = \
        (MyGObjectPrivate *) g_malloc0(sizeof(MyGObjectPrivate));
    /* If correctly allocated, initialize parameters */
    if((MY_GOBJECT(self))-&gt;priv != NULL)
    {
        MyGObjectPrivate *priv = MY_GOBJECT_GET_PRIVATE(self);
        /* Initialize private data, if any */
    }
}</span></pre>
<p></br></p>
<p>**** And finally, the last change is just de-allocating the structure when no more needed in the _dispose() function.</p>
<pre><span style="color:#0000ff;">static void
my_gobject_dispose(GObject *object)
{
    MyGObject *self = (MyGObject *)object;
    MyGObjectPrivate *priv = MY_GOBJECT_GET_PRIVATE(self);
    /* Check if not NULL! To avoid calling dispose multiple times */
    if(priv != NULL)
    {
        /* Deallocate contents of the private data, if any */
        /* Deallocate private data structure */
        g_free(priv);
        /* And finally set the opaque pointer back to NULL, so that
         *  we don't deallocate it twice. */
        (MY_GOBJECT(self))-&gt;priv = NULL;
    }
}</span></pre>
<p></br></p>
<p>References:</p>
<ul>
<li>[1] <a href="http://library.gnome.org/devel/gobject/stable/howto-gobject.html#howto-gobject-header">http://library.gnome.org/devel/gobject/stable/howto-gobject.html#howto-gobject-header</a></li>
<li>[2] <a href="http://library.gnome.org/devel/gobject/stable/gobject-Type-Information.html#G-TYPE-INSTANCE-GET-PRIVATE--CAPS">http://library.gnome.org/devel/gobject/stable/gobject-Type-Information.html#G-TYPE-INSTANCE-GET-PRIVATE&#8211;CAPS</a></li>
<li>[3] <a href="http://bugzilla.gnome.org/show_bug.cgi?id=322174">http://bugzilla.gnome.org/show_bug.cgi?id=322174</a></li>
</ul>
<br />Posted in Development Tagged: glib, gnome, gobject, valgrind <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/98/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=98&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2009/02/13/avoid-g_type_instance_get_private-in-gobjects/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Happy 1234567890s!</title>
		<link>http://sigquit.wordpress.com/2009/02/08/happy-1234567890s/</link>
		<comments>http://sigquit.wordpress.com/2009/02/08/happy-1234567890s/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 20:12:07 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[coreutils]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=95</guid>
		<description><![CDATA[On February 14th 2009 (Valentine&#8217;s day), 00:31:30 CET, the Unix time (seconds elapsed since 00:00 UTC January 1st 2009) will arrive to the &#8220;1234567890&#8242; value. So happy 1234567890s! You can use the `date&#8217; command from GNU coreutils to know when will it happen in your specific timezone: $&#62; date -d @1234567890 Posted in Operating Systems [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=95&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>On February 14th 2009 (Valentine&#8217;s day), 00:31:30 CET, the Unix time (seconds elapsed since 00:00 UTC January 1st 2009) will arrive to the &#8220;1234567890&#8242; value.</p>
<p><strong>So happy 1234567890s!</strong></p>
<p>You can use the `date&#8217; command from GNU coreutils to know when will it happen in your specific timezone:</p>
<pre>$&gt; date -d @1234567890</pre>
<br />Posted in Operating Systems Tagged: coreutils, date, gnu, unix <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/95/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=95&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2009/02/08/happy-1234567890s/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Please, forget it as soon as possible</title>
		<link>http://sigquit.wordpress.com/2008/12/01/please-forget-it-as-soon-as-possible/</link>
		<comments>http://sigquit.wordpress.com/2008/12/01/please-forget-it-as-soon-as-possible/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 19:36:57 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[glib]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gobject]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=87</guid>
		<description><![CDATA[New development version of Glib just released. GLib 2.19.1 is now available for download at: ftp://ftp.gtk.org/pub/glib/2.19/ http://download.gnome.org/sources/glib/2.19/ glib-2.19.1.tar.bz2 md5sum: 9309139a515408d9c99558d051c18302 glib-2.19.1.tar.gz md5sum: eab90f5965f3d004b8787989be5cca85 This is the second development release leading up to GLib 2.20. It&#8217;s great they include the changelog with fixed bugs: * Bugs fixed: 562538 GObject interface tutorial shouldn&#8217;t finalise with &#8220;Please forget [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=87&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>New development version of Glib just released.</p>
<blockquote><p>GLib 2.19.1 is now available for download at:</p>
<p>ftp://ftp.gtk.org/pub/glib/2.19/</p>
<p>http://download.gnome.org/sources/glib/2.19/</p>
<p>glib-2.19.1.tar.bz2 md5sum: 9309139a515408d9c99558d051c18302<br />
glib-2.19.1.tar.gz  md5sum: eab90f5965f3d004b8787989be5cca85</p>
<p>This is the second development release leading up to GLib 2.20.</p></blockquote>
<p>It&#8217;s great they include the changelog with fixed bugs:</p>
<blockquote><p>* Bugs fixed:<br />
562538 GObject interface tutorial shouldn&#8217;t finalise with<br />
&#8220;Please forget everything&#8221;</p></blockquote>
<p>This one is great (among others, including multiple mem-leaks fixed).</p>
<p>Until this last release, the GObject tutorial had the following comment at the end of the &#8220;<strong>Non-instantiable classed types: interfaces</strong>&#8221; section:</p>
<blockquote><p><strong>&#8220;Now that you have read this section, you can forget about it. Please, forget it as soon as possible. &#8220;</strong></p></blockquote>
<p>What I am not sure about is: did they remove it because now interfaces are great? or just to skip publishing the idea that even GObject developers think that interfaces suck? Who knows&#8230;</p>
<p>Previous documentation:<br />
<a title="v2.18 page" href="http://library.gnome.org/devel/gobject/2.18/gtype-non-instantiable-classed.html" target="_blank">http://library.gnome.org/devel/gobject/2.18/gtype-non-instantiable-classed.html</a><br />
Latest documentation:<br />
<a title="v2.19 page" href="http://library.gnome.org/devel/gobject/unstable/gtype-non-instantiable-classed.html" target="_blank">http://library.gnome.org/devel/gobject/unstable/gtype-non-instantiable-classed.html</a></p>
<br />Posted in Development Tagged: glib, gnome, gobject <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/87/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/87/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=87&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2008/12/01/please-forget-it-as-soon-as-possible/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>What&#8217;s next? Buy a new PC with Windows already broken</title>
		<link>http://sigquit.wordpress.com/2008/11/25/whats-next-buy-a-new-pc-with-windows-already-broken/</link>
		<comments>http://sigquit.wordpress.com/2008/11/25/whats-next-buy-a-new-pc-with-windows-already-broken/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 20:23:44 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[Microsoft Windows]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=81</guid>
		<description><![CDATA[I was looking for a new PC to be used as a server at home (running GNU/Linux, of course), when I discovered this nice Packard Bell laptop with pre-installed and pre-broken Windows. This is really nice. Why wait to break the OS yourself when you can already buy it broken? And it&#8217;s only 699€! I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=81&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div id="attachment_82" class="wp-caption aligncenter" style="width: 510px"><a href="http://sigquit.files.wordpress.com/2008/11/image019.jpg"><img class="size-full wp-image-82" title="Broken Windows in new PC" src="http://sigquit.files.wordpress.com/2008/11/image019.jpg?w=500&#038;h=375" alt="Broken Windows in new PC" width="500" height="375" /></a><p class="wp-caption-text">Broken Windows in new PC</p></div>
<p>I was looking for a new PC to be used as a server at home (running GNU/Linux, of course), when I discovered this nice Packard Bell laptop with pre-installed and pre-broken Windows.</p>
<p>This is really nice. Why wait to break the OS yourself when you can already buy it broken? And it&#8217;s only 699€! I want three of this!</p>
<br />Posted in Operating Systems Tagged: Microsoft Windows <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/81/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=81&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2008/11/25/whats-next-buy-a-new-pc-with-windows-already-broken/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>

		<media:content url="http://sigquit.files.wordpress.com/2008/11/image019.jpg" medium="image">
			<media:title type="html">Broken Windows in new PC</media:title>
		</media:content>
	</item>
		<item>
		<title>Valgrind for Mac OS X &#8211; first impressions</title>
		<link>http://sigquit.wordpress.com/2008/09/30/valgrind-for-mac-os-x-first-impressions/</link>
		<comments>http://sigquit.wordpress.com/2008/09/30/valgrind-for-mac-os-x-first-impressions/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 20:31:00 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[glib]]></category>
		<category><![CDATA[mac os x]]></category>
		<category><![CDATA[valgrind]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=69</guid>
		<description><![CDATA[Not so long ago, Apple developer Greg Parker, published a patch for a specific revision of Valgrind so that it can work in Mac OS X. You can check the details of how to install it in his webpage, it doesn&#8217;t take more than 5 minutes to do it: http://www.sealiesoftware.com/valgrind I made a simple test [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=69&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Not so long ago, Apple developer Greg Parker, published a patch for a specific revision of <strong>Valgrind</strong> so that it can work in <strong>Mac OS X</strong>. You can check the details of how to install it in his webpage, it doesn&#8217;t take more than 5 minutes to do it:</p>
<ul>
<li><a title="http://www.sealiesoftware.com/valgrind" href="http://www.sealiesoftware.com/valgrind" target="_blank">http://www.sealiesoftware.com/valgrind</a></li>
</ul>
<p>I made a simple test to see how well or bad it works, with <strong>definitely lost</strong> and <strong>still reachable</strong> memory leaks. The test goes as follows:<br />
<code><br />
#include &lt;stdio.h&gt;<br />
#include &lt;string.h&gt;<br />
/* Global string, still-reachable */<br />
static char *global_str;<br />
int main(int argc, char **argv)<br />
{<br />
&nbsp;&nbsp;/* Function-local string,<br />
&nbsp;&nbsp;&nbsp;*  definitely-lost */<br />
&nbsp;&nbsp;char *str = NULL;<br />
&nbsp;&nbsp;/* These are 10+1 bytes leaked */<br />
&nbsp;&nbsp;str = strdup("1234567890");<br />
&nbsp;&nbsp;/* These are 15+1 bytes leaked */<br />
&nbsp;&nbsp;global_str = strdup("123456789012345");<br />
&nbsp;&nbsp;return 0;<br />
}<br />
</code></p>
<p>We compile it&#8230;<br />
<code><br />
$&gt; gcc -o test test.c<br />
</code></p>
<p>Now, let&#8217;s see if this valgrind port catches our memory leaks.<br />
<code><br />
$&gt; valgrind --show-reachable=yes --leak-check=full --leak-resolution=high ./test<br />
</code></p>
<p>Well, valgrind runs and we start checking its output:<br />
<code><br />
==13340== LEAK SUMMARY:<br />
==13340== <strong>definitely lost: 11 bytes in 1 blocks.</strong><br />
==13340== possibly lost: 0 bytes in 0 blocks.<br />
==13340== <strong>still reachable: 316 bytes in 8 blocks.</strong><br />
==13340== suppressed: 0 bytes in 0 blocks.<br />
</code></p>
<p>We were only expecting 11 bytes definitely lost (local-function pointer) and 16 bytes still reachable (global pointer), but we have lots more still reachable. Let&#8217;s see the detailed results:<br />
<code><br />
==13340== ERROR<br />
==13340== <strong>11 bytes in 1 blocks are definitely lost in loss record 1 of 4</strong><br />
==13340==    at 0x22E53: malloc+99 (in /usr/local/lib/valgrind/x86-darwin/vgpreload_memcheck.so)<br />
==13340==    by 0x21A3D1: strdup+33 (in /usr/lib/libSystem.B.dylib)<br />
==13340==    by 0x1FBB: main+33 (in ./test)<br />
==13340==<br />
==13340== ERROR<br />
==13340== <strong>16 bytes in 1 blocks are still reachable in loss record 2 of 4</strong><br />
==13340==    at 0x22E53: malloc+99 (in /usr/local/lib/valgrind/x86-darwin/vgpreload_memcheck.so)<br />
==13340==    by 0x21A3D1: strdup+33 (in /usr/lib/libSystem.B.dylib)<br />
==13340==    by 0x1FCC: main+50 (in ./test)<br />
</code></p>
<p>Ok, here are our memory leaks. Let&#8217;s see what is the other stuff.<br />
<code><br />
==13340== ERROR<br />
==13340== 60 bytes in 1 blocks are still reachable in loss record 3 of 4<br />
==13340==    at 0x22E53: malloc+99 (in /usr/local/lib/valgrind/x86-darwin/vgpreload_memcheck.so)<br />
==13340==    by 0x1F7E89: get_or_create_key_element+157 (in /usr/lib/libSystem.B.dylib)<br />
==13340==    by 0x1F7DBB: _keymgr_get_and_lock_processwide_ptr_2+21 (in /usr/lib/libSystem.B.dylib)<br />
(.....)<br />
==13340== ERROR<br />
==13340== 240 bytes in 6 blocks are still reachable in loss record 4 of 4<br />
==13340==    at 0x24DD9: calloc+105 (in /usr/local/lib/valgrind/x86-darwin/vgpreload_memcheck.so)<br />
==13340==    by 0x1F79D9: dwarf2_unwind_dyld_add_image_hook+40 (in /usr/lib/libSystem.B.dylib)<br />
==13340==    by 0x8FE03D61: dyld::registerAddCallback(void (*)(mach_header const*, long))+145 (in /usr/lib/dyld)<br />
(.....)<br />
</code></p>
<p>As expected (Greg already warned about it) we are getting some leak reports of system libraries, as being still reachable. The &#8220;still reachable&#8221; means that when the program ended some allocations were done previously using pointers that are &#8216;global&#8217; to the program, so still reachable when program ended. In other words, valgrind found pointers to allocated memory in the context when the program ended, and the only context available in that time is the global one. All the other contexts (different functions called, even main()) dissappear when the program ends, and pointers declared in those functions which are used to allocate memory are the &#8220;definitely lost&#8221; ones.</p>
<p>Well, I would say that there is still work to be done, but I don&#8217;t see having these system library allocation leak reports a real problem. Once you have linked your programs against Glib, you will get used to see this kind of error reports, but multiplied by 1000. Glib does lots of memory allocations in g_type_init() that are not deallocated with a g_type_deinit() (there is no such function), so they are deallocated by the OS when the program ends. To deal with the ones from Glib, it&#8217;s usual to skip using<br />
leak-resolution=high and use Valgrind suppression files.</p>
<p>Probably these reported errors are not comparable to the ones from Glib, but the way to deal with them should be really similar. So, good job Greg! and let&#8217;s see if this port can be improved until it&#8217;s completely included in Valgrind sources.</p>
<br />Posted in Development, Operating Systems Tagged: glib, mac os x, valgrind <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/69/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=69&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2008/09/30/valgrind-for-mac-os-x-first-impressions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>It&#8217;s all about Freedom</title>
		<link>http://sigquit.wordpress.com/2008/09/29/its-all-about-freedom/</link>
		<comments>http://sigquit.wordpress.com/2008/09/29/its-all-about-freedom/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 21:19:27 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Operating Systems]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[mac os x]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=61</guid>
		<description><![CDATA[I am quite a GNU/Linux fan. I work developing apps for GNU systems, I collaborate with the development of some GNU projects, I mainly use free software applications&#8230; but last year I bought a Mac Book Pro. My first impression of Mac OS X was great. It&#8217;s really a great operating system, it has a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=61&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am quite a <strong>GNU/Linux</strong> fan. I work developing apps for GNU systems, I collaborate with the development of some GNU projects, I mainly use free software applications&#8230; but last year I bought a Mac Book Pro. My first impression of <strong>Mac OS X</strong> was great. It&#8217;s really a great operating system, it has a nice terminal, great support for GNU tools (gcc, gdb, autotools&#8230;), and multiple free software applications available. But, there&#8217;s always a but&#8230; the world of free software is full of nice apps, and not all those apps (or an equivalent replacement) are available for Mac OS X.</p>
<p>I already have a dual boot in my Mac Book Pro, with Kubuntu GNU/Linux available in a 15GB partition. When I installed it, it was basically because most of the programs I was using for development were not available in Mac OS X (<strong>valgrind, electric fence, meld, those are essential!</strong>). Then, I realized that I was going back again to the years when I had a dual boot with Windows XP and GNU/Linux. In those years, I <em>needed</em> Windows XP to play games, and for nothing else. So here I am again in th same situation. But&#8230; wait&#8230; the question is&#8230; why do I need Mac OS X now?</p>
<p>This is the list of programs I normally use which are available in both Mac OS X and GNU/Linux:</p>
<ul>
<li>GNU emacs</li>
<li>GNU compiler collection (gcc)</li>
<li>GNU debugger (gdb)</li>
<li>Mozilla Firefox</li>
<li>Mozilla Thunderbird</li>
<li>VLC</li>
<li>GNU image manipulation program (gimp)</li>
<li>CVS, Subversion &amp; GNU Bazaar</li>
<li>OpenVPN</li>
<li>glib</li>
</ul>
<p>I also use other programs in Mac OS X which have a perfect replacement in GNU/Linux:</p>
<ul>
<li>iTunes -&gt; <strong>Amarok</strong>, which is even better, free software, and doesn&#8217;t support DRM [1]</li>
<li>NetNewsWire (free as in <em>free beer</em>)-&gt; <strong>Akregator</strong>. An RSS reader, free as in <em>freedom</em>.</li>
<li>Colloquy -&gt; <strong>Konversation</strong>. An IRC client.</li>
<li>Adium -&gt; <strong>Kopete</strong>. An instant messenger.</li>
<li>Disk Utility -&gt; <strong>K3b</strong>. Probably one of the bests CD burning programs.</li>
</ul>
<p>This is the list of programs I use and which are only available in GNU/Linux:</p>
<ul>
<li><strong>Meld</strong></li>
<li><strong>Valgrind</strong> (there seems to be a non-complete port of <a title="Valgrind for Mac OS X" href="http://sourceforge.net/mailarchive/message.php?msg_name=20080928152119.14416.qmail%40kaazh.pair.com" target="_blank">Valgrind for Mac OS X</a>. Didn&#8217;t check it) [2]</li>
<li><strong>Electric fence</strong></li>
<li><strong>Yakuake<br />
</strong></li>
</ul>
<p>This is the list of programs I use and which are only available in Mac OS X:</p>
<ul>
<li>&lt;yes, it&#8217;s empty&gt;</li>
</ul>
<p>This change back to GNU/Linux could be understood as just based on my needs at a given moment, which in part is true, but I also want to use a Free Software operating system, and Free Software programs. At the end, <em>it&#8217;s all about Freedom</em> [3].</p>
<p><strong>References</strong></p>
<ul>
<li>[1] <a title="Deffective By Design" href="http://www.defectivebydesign.org" target="_blank">http://www.defectivebydesign.org</a></li>
<li>[2] <a title="Valgrind for Mac OS X" href="http://sourceforge.net/mailarchive/message.php?msg_name=20080928152119.14416.qmail%40kaazh.pair.com" target="_blank">Valgrind for Mac OS X</a></li>
<li>[3] <a title="Free Software Foundation" href="http://www.fsf.org" target="_blank">Free Software Fundation</a></li>
</ul>
<br />Posted in Operating Systems Tagged: gnu, gnu/linux, mac os x <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/61/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=61&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2008/09/29/its-all-about-freedom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Single dot emacs file and per-computer configuration</title>
		<link>http://sigquit.wordpress.com/2008/09/28/single-dot-emacs-file/</link>
		<comments>http://sigquit.wordpress.com/2008/09/28/single-dot-emacs-file/#comments</comments>
		<pubDate>Sun, 28 Sep 2008 13:59:50 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[GNU Emacs]]></category>
		<category><![CDATA[dot emacs]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[gnu]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=53</guid>
		<description><![CDATA[1. Introduction Once you have found the perfect emacs configuration stuff for you, you don&#8217;t usually want to change it. But it can happen that you want to use the same dot emacs configuration in different computers or even different systems. I use emacs at home (Mac OS X and Ubuntu) and also at work [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=53&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em><strong>1. Introduction</strong></em></p>
<p>Once you have found the perfect emacs configuration stuff for you, you don&#8217;t usually want to change it. But it can happen that you want to use the same dot emacs configuration in different computers or even different systems.</p>
<p>I use emacs at home (Mac OS X and Ubuntu) and also at work (Kubuntu). It happens that when I write ChangeLog entries (<strong>C-x 4 a</strong>) I usually want to have different email addresses in the entries (my work email in the computers I use at work, and my GNU email in the computers I use at home). In the same way, I have a specific font type configuration for my GNU systems, but I keep the default one in my Mac O X emacs.</p>
<p>So basically you just need to detect different systems and computers, and apply specific configurations.</p>
<p><em><strong>2. Get system type and system name<br />
</strong></em></p>
<p>To detect different systems, you can use the &#8216;<strong>system-type</strong>&#8216; variable, and to detect different computers (with different hostnames, of course), you can use the &#8216;<strong>system-name</strong>&#8216; variable.</p>
<p>The following defuns show how you can know wich system type and name you have in each machine:</p>
<p><code>;; Get current system's name<br />
(defun <strong>insert-system-name</strong>()<br />
(interactive)<br />
"Get current system's name"<br />
(insert (format "%s" system-name))<br />
)</code></p>
<p><code>;; Get current system type<br />
(defun <strong>insert-system-type</strong>()<br />
(interactive)<br />
"Get current system type"<br />
(insert (format "%s" system-type))<br />
)</code></p>
<p>Those previous commands are interactive, so you can just type &#8216;<strong>M-x insert-system-name</strong>&#8216; or &#8216;<strong>M-x insert-system-type</strong>&#8216; to test them.</p>
<p><strong><em>3. Configuration depending on the system type</em></strong></p>
<p>In order to include system-type based configurations, you can define functions to check if the current system is the one you are looking for. Check these two functions to check if system is Mac OS X (darwin) or GNU (gnu/linux).</p>
<p><code>;; Check if system is Darwin/Mac OS X<br />
(defun <strong>system-type-is-darwin</strong> ()<br />
(interactive)<br />
"Return true if system is darwin-based (Mac OS X)"<br />
(string-equal system-type "darwin")<br />
)</code></p>
<p><code>;; Check if system is GNU/Linux<br />
(defun <strong>system-type-is-gnu</strong> ()<br />
(interactive)<br />
"Return true if system is GNU/Linux-based"<br />
(string-equal system-type "gnu/linux")<br />
)</code></p>
<p>Once you have these functions, you can put the system-dependent configuration:</p>
<p><code>;; disable closing emacs in Mac OS X<br />
(if (system-type-is-darwin)<br />
(global-unset-key "\C-z")<br />
)</code></p>
<p>Note that &#8216;<strong>darwin</strong>&#8216; is the default system name for Mac OS X systems, and &#8216;<strong>gnu/linux</strong>&#8216; is the default system name for GNU/Linux systems.</p>
<p><strong><em>3. Configuration depending on the system name<br />
</em></strong></p>
<p>Now, you also want to put machine-dependent configuration, so you can define functions like this to detect in which machine you are currently located:</p>
<p><code>;; Check if the system is my Kubuntu GNU/Linux at work<br />
(defun <strong>system-is-my-workpc</strong> ()<br />
(interactive)<br />
"Return true if the system we are running on is my PC at work"<br />
(string-equal system-name "dev002.workplace.com")<br />
)</code></p>
<p>And then you just need to use the previous function in the specific configurations (note that I&#8217;m using the hostname of my PC at work. Use your own hostname for you functions, dude).</p>
<p><code>;; For my machine in my worplace, setup my work email address<br />
(if (system-is-my-workpc)<br />
(setq user-mail-address "my.name@workplace.com")<br />
)</code></p>
<br />Posted in GNU Emacs Tagged: dot emacs, emacs, gnu <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/53/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=53&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2008/09/28/single-dot-emacs-file/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Debugging programs with a external symbol file</title>
		<link>http://sigquit.wordpress.com/2008/09/15/debugging-programs-with-a-external-symbol-file/</link>
		<comments>http://sigquit.wordpress.com/2008/09/15/debugging-programs-with-a-external-symbol-file/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 16:42:33 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[symbol]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=43</guid>
		<description><![CDATA[As explained in one of my previous posts, objcopy utility can be used to store the debugging information generated by gcc compilation in an external file. This is very useful when you want to debug a program using a core file generated by the stripped binary. Imagine that you&#8217;re a developer in a company which [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=43&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As explained in one of my previous posts, <strong>objcopy</strong> utility can be used to store the debugging information generated by <strong>gcc</strong> compilation in an external file. This is very useful when you want to debug a program using a core file generated by the stripped binary.</p>
<p>Imagine that you&#8217;re a developer in a company which distributes program binaries which are stripped before being delivered to the end users (you probably don&#8217;t need too much imagination for this). Of course, that evil company doesn&#8217;t distribute the source code of the program.</p>
<p>One of your users experiences a problem with your program. You tell him to run:<br />
<code><br />
ulimit -c unlimited<br />
</code><br />
This will tell the system that the size allowed for the <em>core file</em>s generated is unlimited. These core files are generated when some unhandled signals are received in the program, like SIGSEGV when a segmentation fault occurs, and include a complete dump of the program&#8217;s memory, program stack and such when the crash occured.</p>
<p>If you don&#8217;t get a core file after a segmentation fault and you already executed the ulimit command, it may be due to different reasons, like these:</p>
<ul>
<li>Kernel limitation (there&#8217;s a specific maximum size for the core files)</li>
<li>Available disk space (you don&#8217;t have enough disk space to store your core file).</li>
<li>&#8230;</li>
</ul>
<p>If you got a complete valid core file after a program crash, you may want to debug it with the GNU Debugger <strong>gdb</strong>. Of course, you don&#8217;t want the user of the program to know the internals of the code (remember that the company is evil and doesn&#8217;t distribute the source code), so in order to debug the core file generated by the user&#8217;s execution, you need your symbol file for that specific compilation of the program.</p>
<p><code><br />
gdb ./myprogram corefile<br />
</code></p>
<p>Once you have started the GNU debugger with the previous command, you are able to investigate what happened in the program abort. If you don&#8217;t have debugging symbols in the binary, you will get a backtrace equivalent to this one:<br />
<code><br />
Core was generated by `./myprogram'.<br />
Program terminated with signal 11, Segmentation fault.<br />
[New process 8986]<br />
#0  0x080483dd in myfunction ()<br />
(gdb) bt<br />
#0  0x080483dd in myfunction ()<br />
#1  0x080483d1 in myfunction ()<br />
#2  0x080483d1 in myfunction ()<br />
#3  0x080483d1 in myfunction ()<br />
#4  0x080483d1 in myfunction ()<br />
#5  0x080483d1 in myfunction ()<br />
#6  0x080483d1 in myfunction ()<br />
#7  0x080483d1 in myfunction ()<br />
#8  0x080483d1 in myfunction ()<br />
#9  0x080483d1 in myfunction ()<br />
#10 0x080483d1 in myfunction ()<br />
#11 0x0804840e in main ()<br />
</code></p>
<p>Not really useful isn&#8217;t it? That&#8217;s the maximum information your user will know about the problem.</p>
<p>But you are the developer and when you compiled the program, and before you redistributed it, you stripped the binary and stored the debugging information in an external symbol file. So you just need to tell gdb where that file is:<br />
<code><br />
(gdb) symbol-file myprogram.debug<br />
Reading symbols from /home/drehbahn/myprogram.debug...done.<br />
</code></p>
<p>And magic happens. Now you can get a pretty backtrace of the program stack:<br />
<code><br />
(gdb) bt<br />
#0  0x080483dd in myfunction (value=10) at myprogram.c:26<br />
#1  0x080483d1 in myfunction (value=9) at myprogram.c:20<br />
#2  0x080483d1 in myfunction (value=8) at myprogram.c:20<br />
#3  0x080483d1 in myfunction (value=7) at myprogram.c:20<br />
#4  0x080483d1 in myfunction (value=6) at myprogram.c:20<br />
#5  0x080483d1 in myfunction (value=5) at myprogram.c:20<br />
#6  0x080483d1 in myfunction (value=4) at myprogram.c:20<br />
#7  0x080483d1 in myfunction (value=3) at myprogram.c:20<br />
#8  0x080483d1 in myfunction (value=2) at myprogram.c:20<br />
#9  0x080483d1 in myfunction (value=1) at myprogram.c:20<br />
#10 0x080483d1 in myfunction (value=0) at myprogram.c:20<br />
#11 0x0804840e in main () at myprogram.c:33<br />
</code></p>
<p>And you can step into the first frame to see the real details of the problem which caused the segfault:<br />
<code><br />
(gdb) fr 0<br />
#0  0x080483dd in myfunction (value=10) at myprogram.c:26<br />
26	        char character = *ptr; /* oops */<br />
(gdb) list<br />
21	    }<br />
22	    else<br />
23	    {<br />
24	        /* Create nice segfault... */<br />
25	        char *ptr = NULL;<br />
26	        char character = *ptr; /* oops */<br />
27	        printf("Did I really arrive here?\n");<br />
28	    }<br />
29	}<br />
30<br />
</code></p>
<p>So, yes, it&#8217;s easy to debug a program with a separate symbol file created with <strong>objcopy</strong>.</p>
<p>And even better, you don&#8217;t need to be an evil company which doesn&#8217;t publish the source code of their apps to use this approach. Stripping binaries before shipping the programs is quite common in the world of Free Software, as size of the binaries really matters. The difference is that in this case you can always download not only the original source code that was used to generate the binary, but also the specific symbol files for direct debugging with the GNU Debugger.</p>
<p>[References]</p>
<ol>
<li><a title="The GNU Project Debugger" href="http://www.gnu.org/software/gdb/" target="_blank">GDB, The GNU Project Debugger</a></li>
<li><a title="GDB Files" href="http://sourceware.org/gdb/download/onlinedocs/gdb_16.html#SEC154" target="_blank">GDB Files</a></li>
<li><a title="GNU Binutils" href="http://www.gnu.org/software/binutils" target="_blank">GNU Binutils</a></li>
</ol>
<p>[See also]</p>
<ol>
<li><a title="Stripping binaries" href="http://sigquit.wordpress.com/2008/09/14/make-your-programs-lose-weight-stripping-binaries/" target="_blank">Make your programs lose weight: Stripping binaries</a></li>
</ol>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sigquit.wordpress.com/43/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sigquit.wordpress.com/43/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=43&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2008/09/15/debugging-programs-with-a-external-symbol-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Spanish MBP key modifiers for GNU emacs (dot emacs)</title>
		<link>http://sigquit.wordpress.com/2008/09/14/spanish-mbp-key-modifiers-for-gnu-emacs-dot-emacs/</link>
		<comments>http://sigquit.wordpress.com/2008/09/14/spanish-mbp-key-modifiers-for-gnu-emacs-dot-emacs/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 14:47:43 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[GNU Emacs]]></category>
		<category><![CDATA[dot emacs]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[gnu]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=37</guid>
		<description><![CDATA[GNU Emacs (native version for Mac OS X) needs extra key bindings when used in a spanish keyboard Mac Book Pro. The following lines show how the main needed key bindings can be set up. ;; Key modifiers for Mac OS X Emacs.app in spanish MBP keyboard (global-set-key (kbd "M-1") "&#124;") (global-set-key (kbd "M-2") "@") [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=37&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>GNU Emacs (native version for Mac OS X) needs extra key bindings when used in a spanish keyboard Mac Book Pro. The following lines show how the main needed key bindings can be set up.</p>
<p><code><br />
;; Key modifiers for Mac OS X Emacs.app in spanish MBP keyboard<br />
(global-set-key (kbd "M-1") "|")<br />
(global-set-key (kbd "M-2") "@")<br />
(global-set-key (kbd "M-3") "#")<br />
(global-set-key (kbd "M-º") "\\")<br />
(global-set-key (kbd "M-ç") "}")<br />
(global-set-key (kbd "M-+") "]")<br />
</code></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sigquit.wordpress.com/37/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sigquit.wordpress.com/37/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=37&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2008/09/14/spanish-mbp-key-modifiers-for-gnu-emacs-dot-emacs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Insert date string (dot emacs)</title>
		<link>http://sigquit.wordpress.com/2008/09/14/insert-date-string-dot-emacs/</link>
		<comments>http://sigquit.wordpress.com/2008/09/14/insert-date-string-dot-emacs/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 14:33:31 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[GNU Emacs]]></category>
		<category><![CDATA[dot emacs]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[gnu]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=33</guid>
		<description><![CDATA[Need to add a common date string in your source code? Add it to your .emacs! ;; Insert date string (defun insert-date-string () "Insert a nicely formated date string." (interactive) (insert (format-time-string "%a %b %d %H:%M:%S %Y")))<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=33&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Need to add a common date string in your source code?</p>
<p>Add it to your .emacs!</p>
<p><code><br />
;; Insert date string<br />
(defun insert-date-string ()<br />
"Insert a nicely formated date string."<br />
(interactive)<br />
(insert (format-time-string "%a %b %d %H:%M:%S %Y")))<br />
</code></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sigquit.wordpress.com/33/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sigquit.wordpress.com/33/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/33/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=33&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2008/09/14/insert-date-string-dot-emacs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
		<item>
		<title>Make your programs lose weight: stripping binaries</title>
		<link>http://sigquit.wordpress.com/2008/09/14/make-your-programs-lose-weight-stripping-binaries/</link>
		<comments>http://sigquit.wordpress.com/2008/09/14/make-your-programs-lose-weight-stripping-binaries/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 12:16:35 +0000</pubDate>
		<dc:creator>aleksander</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[binutils]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[gnu]]></category>

		<guid isPermaLink="false">http://sigquit.wordpress.com/?p=5</guid>
		<description><![CDATA[`objcopy&#8216;  is one of the utilities included in the GNU Binutils package. This tool allows copying binary files while transforming them in the process. One of the typical purposes of modifying binary files after they have been compiled is to separate the debugging symbols and sections and the real executable. If you compiled you binary [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=5&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>`<strong>objcopy</strong>&#8216;  is one of the utilities included in the <strong>GNU Binutils package</strong>. This tool allows copying binary files while transforming them in the process.</p>
<p>One of the typical purposes of modifying binary files after they have been compiled is to separate the debugging symbols and sections and the real executable. If you compiled you binary with debugging information (option &#8216;-g&#8217; in gcc), the size of the binary will grow a lot due to the extra symbols, sections and human-readable stuff stored within the binary. That information is really useful when you are debugging your app, anyway, so you don&#8217;t really want to completely get rid of it.</p>
<p>So, we can use objcopy to move all the debugging information from the binary to another file, so that:</p>
<ul>
<li>Binary is smaller</li>
<li>Binary does not include any &#8216;human-readable&#8217; information of the program</li>
<li>Debugging information can be kept by the developers, so that if any &#8216;core&#8217; file is received for that specific binary, debugging with GDB is possible.</li>
</ul>
<p><strong>[Step 1]</strong> Copy the binary to another file, keeping only the debugging information. This will create the <strong>symbol file</strong> for the binary, and will be kept by the developers of the program for debugging purposes:<br />
<code><br />
objcopy &#45;&#45;only-keep-debug $BINARY_PATH $DEBUG_INFO_FILE<br />
</code></p>
<p><strong>[Step 2]</strong> Once you have created the symbol file, you can now remove all the debugging information from the binary itself:<br />
<code><br />
objcopy &#45;&#45;strip-debug $BINARY_PATH<br />
</code></p>
<p><strong>[Step 3]</strong> After you have created both files, an extra optional option is to add a debug-link to the binary, to specify which is the exact file containing the debug information for that binary:<br />
<code><br />
objcopy &#45;&#45;add-gnu-debuglink=$DEBUG_INFO_FILE $BINARY_PATH<br />
</code><br />
Please note that this third step is optional, as we can use specific GDB commands when debugging a core file to specify in which file the debug information is located.</p>
<p>[References]</p>
<ol>
<li><a href="http://sourceware.org/binutils">http://sourceware.org/binutils</a></li>
<li><a href="http://www.gnu.org/software/binutils">http://www.gnu.org/software/binutils</a></li>
</ol>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/sigquit.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/sigquit.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/sigquit.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/sigquit.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/sigquit.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/sigquit.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/sigquit.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/sigquit.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/sigquit.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/sigquit.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/sigquit.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/sigquit.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/sigquit.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/sigquit.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/sigquit.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/sigquit.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=sigquit.wordpress.com&amp;blog=4751666&amp;post=5&amp;subd=sigquit&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://sigquit.wordpress.com/2008/09/14/make-your-programs-lose-weight-stripping-binaries/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb9b21185df1111a43f5357c35af98e5?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">drehbahn</media:title>
		</media:content>
	</item>
	</channel>
</rss>
