<?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>bauermann &#187; linux</title>
	<atom:link href="http://blog.bauermann.eng.br/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.bauermann.eng.br</link>
	<description>incomplete and abridged</description>
	<lastBuildDate>Thu, 05 Jan 2012 08:00:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.bauermann.eng.br' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>bauermann &#187; linux</title>
		<link>http://blog.bauermann.eng.br</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.bauermann.eng.br/osd.xml" title="bauermann" />
	<atom:link rel='hub' href='http://blog.bauermann.eng.br/?pushpress=hub'/>
		<item>
		<title>status update on GDB work</title>
		<link>http://blog.bauermann.eng.br/2009/05/24/status-update-on-gdb-work/</link>
		<comments>http://blog.bauermann.eng.br/2009/05/24/status-update-on-gdb-work/#comments</comments>
		<pubDate>Sun, 24 May 2009 22:41:30 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[planet ltc]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.bauermann.eng.br/?p=239</guid>
		<description><![CDATA[Ok, so this time I won&#8217;t talk about Python scripting support in GDB. I&#8217;m getting tired of it myself. I&#8217;ll just comment that it&#8217;s amazing the number of problems people in IRC report with GDB that can be solved with the Python support that we&#8217;re adding to it. Sometimes they need stuff which is only [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=239&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ok, so this time I won&#8217;t talk about Python scripting support in GDB. I&#8217;m getting tired of it myself. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  I&#8217;ll just comment that it&#8217;s amazing the number of problems people in IRC report with GDB that can be solved with the Python support that we&#8217;re adding to it. Sometimes they need stuff which is only on the branch, but sometimes even the few bits already in CVS HEAD are enough!</p>
<p>Er, I actually do have one more thing to say about the subject: GDB had one project <a href="http://sourceware.org/ml/gdb/2009-04/msg00159.html">accepted</a> in the Google Summer of Code 2009. Oguz Kayral is the student working on it, and I am his mentor. He will add support for subscribing to inferior events (e.g., signals, process and thread stops, thread creation) from Python. One use case for which this is useful was given by an IRC user at the #gdb channel:</p>
<blockquote><p>&lt;LimCore&gt; how to run gdb from command line, so that it will run ./foo.bin with arguments: foo bar baz and it will run it instantly without waiting for &#8216;r&#8217;; And if program segfaults then it will do &#8216;bt&#8217; without waiting for the command. (and if program terminates normally then it will also just quit)</p></blockquote>
<p>LimCore will be able to write a simple and short Python script using the events API to solve his problem.</p>
<p>Now, moving on to other items: my team has been asked to improve GDB support for the hardware debug facilities in embedded PowerPC processors (for more info about these facilities, see Chapter 10 of Book III-E of the <a href="http://www.power.org/resources/downloads/PowerISA_V2.06_PUBLIC.pdf">Power ISA v2.06</a>). I <a href="http://sourceware.org/ml/gdb/2009-03/msg00007.html">announced</a> this work to the GDB mailing list back in early March, and got useful insight from Joel Brobecker.</p>
<p>Today I posted an <a href="http://sourceware.org/ml/gdb/2009-05/msg00161.html">update</a> on where we are with this work. We have the following ready for both native GDB and gdbserver on Linux:</p>
<ul>
<li>one additional hardware watchpoint (two in total),</li>
<li>four hardware breakpoints,</li>
<li>one ranged hardware watchpoint.</li>
</ul>
<p>And we still have the following features ahead of us:</p>
<ul>
<li>support for the two DVC (Data Value Compare) registers, which enable hardware-accelerated conditions for hardware watchpoints,</li>
<li>two ranged hardware breakpoints.</li>
</ul>
<p>Last and least, I was thinking of posting monthly GDB updates on what happened in GDB in the previous month <a href="http://blog.bauermann.eng.br/2009/02/25/news-from-gdb-land/">as I did</a> back in February, but I got busy and didn&#8217;t get around to it. I still entertain the idea though, so if you think it&#8217;s worth it, I&#8217;d be glad to know.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/239/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=239&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2009/05/24/status-update-on-gdb-work/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>status update on python scripting support</title>
		<link>http://blog.bauermann.eng.br/2009/03/31/status-update-on-python-scripting-support/</link>
		<comments>http://blog.bauermann.eng.br/2009/03/31/status-update-on-python-scripting-support/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 03:52:33 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[planet ltc]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.bauermann.eng.br/?p=231</guid>
		<description><![CDATA[It&#8217;s been a while since I last talked about Python scripting support in GDB. Mostly because I&#8217;ve been focusing on getting stuff from the branch merged into CVS HEAD, so that GDB 7.0 can have some useful Python bindings. The latest two patches committed upstream are for creating convenience functions in Python, and fo manipulating [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=231&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a while since I last talked about Python scripting support in GDB. Mostly because I&#8217;ve been focusing on getting stuff from the branch merged into CVS HEAD, so that GDB 7.0 can have some useful Python bindings.</p>
<p>The latest <a href="http://sourceware.org/ml/gdb-patches/2009-03/msg00424.html">two</a> <a href="http://sourceware.org/ml/gdb-patches/2009-03/msg00689.html">patches</a> committed upstream are for creating convenience functions in Python, and fo manipulating a program&#8217;s stack frames as Python objects. So, what can you do with those? I&#8217;ll borrow an example from <a href="http://tromey.com/blog/?p=515">Tom Tromey</a> here: suppose you want to set a breakpoint which triggers only when the code is called by one specific function. You can create a convenience function like this:</p>
<pre>import gdb
import re

class CallerIs (gdb.Function):
    """Return True if the calling function's name is equal to a string.
This function takes one or two arguments.
The first argument is the name of a function; if the calling function's
name is equal to this argument, this function returns True.
The optional second argument tells this function how many stack frames
to traverse to find the calling function.  The default is 1."""

    def __init__ (self):
        super (CallerIs, self).__init__ ("caller_is")

    def invoke (self, name, nframes = 1):
        frame = gdb.selected_frame ()
        while nframes &gt; 0:
            frame = frame.older ()
            nframes = nframes - 1
        return frame.name () == name.string ()

CallerIs ()</pre>
<p>And then create a conditional breakpoint using it, as in:</p>
<pre>(gdb) break foo.c:42 if $caller_is ("some_function")</pre>
<p>Or, to check the name of the grand-grand-caller of the code:</p>
<pre>(gdb) break foo.c:42 if $caller_is ("some_function", 3)</pre>
<p>Cool, huh? Now, why bother writing that big doc comment? GDB will use it as online help for the function you wrote:</p>
<pre>(gdb) help function caller_is
Return True if the calling function's name is equal to a string.
This function takes one or two arguments.
The first argument is the name of a function; if the calling function's
name is equal to this argument, this function returns True.
The optional second argument tells this function how many stack frames
to traverse to find the calling function.  The default is 1.</pre>
<p>One other <a href="http://sourceware.org/ml/gdb-patches/2009-02/msg00159.html">patch</a> which was merged in HEAD enables creating new GDB commands in Python, so you can write new commands to do some frame tricks too!</p>
<p>If you&#8217;d like to know more about the Python scripting work in GDB, I suggest you read the <a href="http://tromey.com/blog/?cat=17">series of blog posts</a> from Tom Tromey on this subject. It&#8217;ll give you a pretty good idea of what we have in the Python branch, and the direction we&#8217;re heading. Just keep in mind that some method names and syntax changed since he wrote that. Refer to the GDB manual in the Python branch (&#8220;<code>make gdb.pdf</code>&#8221; in gdb/doc/) or the example scripts (also in the Python branch, in <a href="http://sourceware.org/git/?p=archer.git;a=tree;f=gdb/python/lib/gdb;h=452795d74e919493ddc6204aa4392705bd6b8037;hb=archer-tromey-python">gdb/python/lib/gdb/</a>) for up-to-date details.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/231/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=231&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2009/03/31/status-update-on-python-scripting-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>resolvendo nomes na rede de casa</title>
		<link>http://blog.bauermann.eng.br/2009/02/26/resolvendo-nomes-na-rede-de-casa/</link>
		<comments>http://blog.bauermann.eng.br/2009/02/26/resolvendo-nomes-na-rede-de-casa/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 04:15:42 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[português]]></category>
		<category><![CDATA[dica]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[madrugada]]></category>
		<category><![CDATA[nerd]]></category>

		<guid isPermaLink="false">http://blog.bauermann.eng.br/?p=205</guid>
		<description><![CDATA[Desde que eu tenho dois notebooks em casa eu senti a necessidade de ter resolução de nomes funcionando decentemente para eles, ao invés de ter que ficar vendo qual IP o roteador designou para cada notebook cada vez que preciso acessar um ou outro computador. Primeiro pensei em fixar um IP baseado no endereço MAC, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=205&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Desde que eu tenho dois notebooks em casa eu senti a necessidade de ter resolução de nomes funcionando decentemente para eles, ao invés de ter que ficar vendo qual IP o roteador designou para cada notebook cada vez que preciso acessar um ou outro computador. Primeiro pensei em fixar um IP baseado no endereço MAC, mas meu roteador não tem essa funcionalidade. Depois fiquei imaginando se não existia algum servidor DNS pra uso doméstico que pode ter suas entradas atualizadas dinamica e automaticamente.</p>
<p>Qual não foi minha surpresa quando descobri que a solução pro meu problema não só já existe, como não exige configuração nenhuma e além disso já estava instalada e funcionando nos dois computadores! Chama-se <a href="http://en.wikipedia.org/wiki/MDNS#Name_resolution">Multicast DNS</a> (mDNS), e faz parte de um conjunto de tecnologias de <em>&#8220;zero configuration networking&#8221;</em>, da qual o Apple Bonjour faz parte. No Linux, o serviço que implementa isso é o <a href="http://avahi.org/">Avahi</a>.</p>
<p>Para usá-lo no caso que eu tinha em mente (basicamente, ssh e scp) basta usar o hostname do computador a ser acessado e acrescentar a extensão <code>.local</code>. Exemplo:</p>
<pre>hotblack% ssh hactar.local
hactar% ping hotblack.local
PING hotblack.local (192.168.1.2) 56(84) bytes of data.
64 bytes from hotblack.local (192.168.1.2): icmp_seq=1 ttl=64 time=0.328 ms</pre>
<p>Ótimo!</p>
<p>Eu já tinha ouvido falar de Zeroconf e do Avahi, claro. Mas eu achava que era só para descoberta de serviços na rede (coisa que nunca precisei, pelo menos por enquanto (mas acho a idéia bem legal)), não sabia que integrava com DNS!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/205/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=205&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2009/02/26/resolvendo-nomes-na-rede-de-casa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>news from GDB-land</title>
		<link>http://blog.bauermann.eng.br/2009/02/25/news-from-gdb-land/</link>
		<comments>http://blog.bauermann.eng.br/2009/02/25/news-from-gdb-land/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 06:22:31 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[planet ltc]]></category>
		<category><![CDATA[wee hours]]></category>

		<guid isPermaLink="false">http://blog.bauermann.eng.br/?p=197</guid>
		<description><![CDATA[Nick Clifton publishes in his blog monthly news from the toolchain world, which is very interesting and very nice of him. Unfortunately he has not been able to provide news from GDB-land. I compiled a list of interesting events which happened in the GDB community this February to post as a comment in his blog, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=197&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Nick Clifton publishes in <a href="http://nickclifton.livejournal.com/">his blog</a> monthly news from the toolchain world, which is very interesting and very nice of him. Unfortunately he has not been able to provide news from GDB-land. I compiled a list of interesting events which happened in the GDB community this February to post as a comment in his blog, and figured it could be useful to post it here as well:</p>
<ul>
<li>publication of <a href="http://sourceware.org/ml/gdb/2009-02/msg00053.html">release schedule</a> for GDB 7.0;</li>
<li>merging of a handful of patches for Python scripting support (including ability to define new <a href="http://sourceware.org/ml/gdb-patches/2009-02/msg00025.html">commands in python</a>);</li>
<li>new target supported (Ericsson&#8217;s <a href="http://sourceware.org/ml/gdb-patches/2009-02/msg00350.html">DICOS on x86_64</a>);</li>
<li><a href="http://sourceware.org/ml/gdb-patches/2009-02/msg00328.html">revamp</a> of thread support in Solaris;</li>
<li>support <a href="http://sourceware.org/ml/gdb-patches/2009-02/msg00300.html">hardware watchpoints</a> in all i386 targets;</li>
<li>ability to inspect extra <a href="http://sourceware.org/ml/gdb-patches/2009-01/msg00255.html">signal information</a>.</li>
</ul>
<p>This is an incomplete list (doesn&#8217;t mention bugfixes, for instance) hacked up in the wee hours of the night, while waiting for sleep to come. If you are a GDB hacker who committed something interesting this month, I apologize in advance for not listing it here.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/197/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=197&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2009/02/25/news-from-gdb-land/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>a useful python script for GDB: is the variable in scope?</title>
		<link>http://blog.bauermann.eng.br/2008/11/22/a-useful-python-script-for-gdb-is-the-variable-in-scope/</link>
		<comments>http://blog.bauermann.eng.br/2008/11/22/a-useful-python-script-for-gdb-is-the-variable-in-scope/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 21:20:14 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[planet ltc]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://bauermann.wordpress.com/?p=168</guid>
		<description><![CDATA[One annoying aspect of scripting GDB (using it&#8217;s own scripting language), is that if you test or set a variable which is not in scope, the script will generate an error and GDB will give up evaluating it. It would be useful to have a way to programatically check if the variable is in scope [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=168&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>One annoying aspect of scripting GDB (using it&#8217;s own scripting language), is that if you test or set a variable which is not in scope, the script will generate an error and GDB will give up evaluating it. It would be useful to have a way to programatically check if the variable is in scope before trying to use it. There was even at least one try (from the brave Rob Quill) at implementing such a thing posted to the <code>gdb-patches</code> mailing list, but unfortunately as of now it still has some issues and haven&#8217;t been committed (I believe <a href="http://sourceware.org/ml/gdb-patches/2008-07/msg00514.html">this patch</a> is the latest version).</p>
<p>Anyway, this is the kind of thing we want to make easy to do in Python, so I decided to try to implement a solution using what we have in the <a href="http://sourceware.org/gdb/wiki/PythonGdb">Python</a> branch. Tom Tromey already created the notion of <em>convenience functions</em>, which are functions that are implemented by GDB  that you can call in places where it accepts expressions, and he made it possible to implement such functions in Python. It follows that one can write a <code>in_scope</code> convenience function in Python which checks if a given variable name is valid in the current scope of the debugged program.</p>
<p>There were some missing pieces which I had to implement to get the <code>in_scope</code> function working (most notably, a <a href="http://sourceware.org/ml/archer/2008-q4/msg00292.html">method to get a string</a> from a variable in the debugged program), and in the past few days I committed to the branch the <a href="http://sourceware.org/ml/archer/2008-q4/msg00313.html">patches which add those pieces</a>. So now you can have the following script:</p>
<pre>class InScope (gdb.Function):
    """Check if all the given variables or macros are in scope.
       Receives as argument a list of names separated by
       whitespace."""

    def __init__ (self):
        super (InScope, self).__init__ ("in_scope")

    def invoke (self, var):
        vars = set (var.string().split())
        found = set ()
        pc = gdb.get_selected_frame ().get_pc ()
        block = gdb.get_block_for_pc (pc)
        while block:
            for sym in block:
                if (sym.is_argument ()
                      or sym.is_constant ()
                      or sym.is_function ()
                      or sym.is_variable ()):
                    sym_name = sym.get_print_name ()
                    if sym_name in vars:
                        found.add (sym_name)
            block = block.get_superblock ()

        return vars == found

InScope ()</pre>
<p>And use it like this:</p>
<pre>Breakpoint 1, main (argc=1, argv=0x7fffffffe208) at /tmp/funcs.c:16
16        int i = 41;
(gdb) if $in_scope("i")
 &gt;print "yay"
 &gt;else
 &gt;print "nay"
 &gt;end
$1 = "yay"
(gdb)</pre>
<p>If you save the script to <code>~/.gdb-in-scope.py</code>, you can put the following in your <code>~/.gdbinit</code> to load it automatically:</p>
<pre>source ~/.gdb-in-scope.py</pre>
<p>Now my goal is to cut out and submit upstream a set of patches to make the above work on regular GDB. The only problem is that I have the boring task of writing testcases and documentation for the code before I can submit it&#8230; <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>For now, If you want to use this script you can build a GDB from the branch, but be aware that the Python API as provided in the branch is subject to change.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/168/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=168&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2008/11/22/a-useful-python-script-for-gdb-is-the-variable-in-scope/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>python scripting in gdb update</title>
		<link>http://blog.bauermann.eng.br/2008/10/16/python-scripting-in-gdb-update/</link>
		<comments>http://blog.bauermann.eng.br/2008/10/16/python-scripting-in-gdb-update/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 06:03:40 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[planet ltc]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://bauermann.wordpress.com/?p=163</guid>
		<description><![CDATA[It&#8217;s been a great while since I last posted about Python scripting in GDB, mostly because I&#8217;ve been busy coding the feature and getting it ready for upstream. First of all, I&#8217;d like to take the opportunity to encourage people interested in using this feature to experiment with what we have implemented so far. The [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=163&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a great while since I <a href="http://blog.bauermann.eng.br/2008/03/24/gdbs-backtrace-command-implemented-in-python/">last posted</a> about Python scripting in GDB, mostly because I&#8217;ve been busy coding the feature and getting it ready for upstream.</p>
<p>First of all, I&#8217;d like to take the opportunity to encourage people interested in using this feature to experiment with what we have implemented so far. The reason is that if you still can&#8217;t do what you want with the current code in the Python branch, we&#8217;d <strong>love</strong> to hear what you miss and implement it. We are working on what is useful for ourselves, and trying to decide what other people would find useful. But it&#8217;s not possible to imagine everything that people want to use this for, or even most things. Please refer to this <a href="http://sourceware.org/gdb/wiki/PythonGdb">wiki page</a> to learn what currently works, what we plan to implement, and how to grab the code from the Python branch.</p>
<p>Feel free to write to the GDB <a href="http://sourceware.org/gdb/mailing-lists/">mailing list</a> or show up in the #gdb IRC channel at Freenode to discuss this work and/or bring your use case to our attention, so that we can support it. I hope that with enough input from prospective users we can ship something that&#8217;s immediately useful for most people, and avoid having to jump through hoops later and have to shoehorn something that we forgot to cater for initially, risking breaking scripts out there or ending up with an inconsistent API.</p>
<p>Anyway, back to business: I have <a href="http://sourceware.org/ml/gdb-patches/2008-10/msg00395.html">just committed</a> the second patch in the Python series! It exports GDB&#8217;s value subsystem to Python scripts. Basically, GDB values are objects which represent data in the inferior (GDB jargon for the program being debugged), holding its address in the inferior&#8217;s addressspace, its type and so on. See the &#8220;Python API&#8221; section in the <a href="http://sourceware.org/gdb/current/onlinedocs/gdb_toc.html">GDB manual</a> if you want to learn more about it (yes, we are even writing <strong>documentation</strong> for the feature!).</p>
<p>I committed the <a href="http://sourceware.org/ml/gdb-patches/2008-08/msg00137.html">first patch</a> back in August, but I didn&#8217;t mention it here because it didn&#8217;t do anything the user would find useful, really. It was just groundwork for the rest (autoconf and Makefile.in changes, a &#8216;python&#8217; command in GDB which basically does nothing useful, initial documentation&#8230;). Still, it was about 1500 lines long (not counting the patch&#8217;s context)! This shows how much work it is to integrate Python support in GDB. I almost regret having joined this effort. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>The second patch also doesn&#8217;t allow the user to do anything useful yet, unfortunately. But it is noteworthy because it is a base upon which a lot of other Python support code depend upon. Also, it&#8217;s the first committed patch which actually exposes something from GDB to Python. It took a while to get this code ready for two reasons: one was that there was a long discussion regarding how the syntax of acessing struct/union/class elements. The other was that implementing the Value class involved playing with little-documented aspects of Python&#8217;s C interface, and it took me time to discover how to do what I needed.</p>
<p>Now my next step is to choose the next patch from the Python series to submit upstream, and get it ready for posting (i.e., fix FIXMEs, add testcases and documentation). This brings me to another thing I&#8217;d like to mention. Back in April when I first <a href="http://blog.bauermann.eng.br/2008/04/30/breaking-code-into-reviewable-patches/">prepared</a> the Python <a href="http://sourceware.org/ml/gdb-patches/2008-04/msg00653.html">patch series</a>, I naively thought that after cutting them out, it was just a matter of posting them, iterate through a few review/rework steps and they&#8217;d be committed. Simple enough. But here we are in mid-October and just two from nine patches went in (now it&#8217;s more like 15 patches in total)! What happened?</p>
<p>The problem is that we&#8217;ve been working in the branch in an experimental and exploratory way, just hacking together enough to get something useful done. This was necessary because we didn&#8217;t know exactly what we would want to expose from GDB to Python, and how we wanted to do that. As we progressed and discussed the results, things started to become clear. The problem is that now we have a lot to clean up, voids to fill, and above all documentation and testcases to write. This takes time.</p>
<p>At least, that was the problem with the first two patches. I noticed Tom Tromey started to write more documentation and tie more loose ends than in the beginning (me? I&#8217;ve just been working on the first two patches until they were ready. Didn&#8217;t write sexy new stuff since then&#8230;), so there&#8217;s hope that the next patches will be easier to work with. We still lack a lot of tests for the testsuite, though&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/163/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=163&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2008/10/16/python-scripting-in-gdb-update/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>que iPhone/iPod o que&#8230;</title>
		<link>http://blog.bauermann.eng.br/2008/09/30/que-iphoneipod-o-que/</link>
		<comments>http://blog.bauermann.eng.br/2008/09/30/que-iphoneipod-o-que/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 04:35:50 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[português]]></category>
		<category><![CDATA[comentário solto]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nerd]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://bauermann.wordpress.com/?p=153</guid>
		<description><![CDATA[&#8230; eu quero é um Neo FreeRunner! Pra que me prender a um celular/PDA no qual eu não posso instalar os programas que eu quiser, e que eu não posso fuçar pra tentar fazer funcionar do jeito que é mais útil pra mim (olá, supporte a ogg )? O N810 também é uma boa opção [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=153&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&#8230; eu quero é um <a href="http://www.openmoko.com/product.html">Neo FreeRunner</a>!</p>
<p>Pra que me prender a um celular/PDA no qual eu não posso instalar os programas que eu quiser, e que eu não posso fuçar pra tentar fazer funcionar do jeito que é mais útil pra mim (olá, supporte a ogg <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  )?</p>
<p>O N810 também é uma boa opção (eu tentei comprar um já, mas não achei pra vender na época), se você ignorar o fato de que ele não é um telefone. Pra mim não é uma limitação séria, já tenho um de 200 reaus (isso na época, hoje não vale nem dez&#8230;) que faz e recebe chamadas.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/153/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/153/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/153/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=153&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2008/09/30/que-iphoneipod-o-que/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>GCC Summit 2008 &#8211; been there, got the t-shirt</title>
		<link>http://blog.bauermann.eng.br/2008/07/14/gcc-summit-2008-been-there-got-the-t-shirt/</link>
		<comments>http://blog.bauermann.eng.br/2008/07/14/gcc-summit-2008-been-there-got-the-t-shirt/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 06:05:08 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[planet ltc]]></category>
		<category><![CDATA[summit]]></category>
		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://bauermann.wordpress.com/?p=132</guid>
		<description><![CDATA[I have finally found some time to write a bit about the GCC Developer&#8217;s Summit 2008, which happened one month ago in Ottawa, Canada (well, I didn&#8217;t really find time, since it&#8217;s past 1:30 AM now but still&#8230;). In summary, I had a blast there! I was in last year&#8217;s summit and enjoyed it and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=132&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have finally found some time to write a bit about the <a href="http://www.gccsummit.org/2008/">GCC Developer&#8217;s Summit 2008</a>, which happened one month ago in Ottawa, Canada (well, I didn&#8217;t really find time, since it&#8217;s past 1:30 AM now but still&#8230;).</p>
<p>In summary, I had a blast there! I was in last year&#8217;s summit and enjoyed it and learned a lot from it. But this time I already knew GDB people and they knew me, and I am involved in a couple of current developments and have more experience with the project, all of which made some difference. And everybody there is very friendly, of course, even if they never heard of you before. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  In fact, Ian Taylor in his welcome presentation urged people to be friendly to newcomers since GCC and the GNU toolchain need new blood.</p>
<p>There was a good number of<strong> GDB-related events</strong>:  a GDB talk and two debugging information talks, a debug information BoF, an informal GDB get-together and a GDB BoF. Unfortunately I know squat about GCC internals (I intend to learn more about it, but didn&#8217;t have a chance yet) so the two debugging information were above my head, and I absorbed little. The GDB talk was interesting but since I follow the GDB mailing lists I already knew most of what was presented.</p>
<p>The <strong>debug information BoF</strong> was interesting, especially since the discussion didn&#8217;t focus so much on the two competing approaches to improve debug information (which was the original point of the BoF), but mostly on what should be expected from debug information generated by GCC (i.e., what a debugger should be able to do with it, especially at higher optimization levels), and how its quality can be tested in the GCC testsuite.</p>
<p>The most interesting events for me were of course the <strong>GDB get-together</strong> and the GDB BoF. The former was a table reserved for us at lunch one day (thanks for organizing this, Joel Brobecker!) where folks interested in GDB would get to see each other faces and talk about random stuff (GDB-related or not). It was fun, and we were able to throw some ideas around about things such as conversion of the GDB repository from CVS to Subversion, the patch review process, and even about rewriting GDB in C++ (which is a hot thread in the GDB mailing list today!). I have a picture of the event:</p>
<p><a href="http://www.flickr.com/photos/bauermann/2592177410/"><img class="aligncenter size-full wp-image-133" src="http://bauermann.files.wordpress.com/2008/07/gdb_hackers.jpg?w=500&#038;h=375" alt="" width="500" height="375" /></a></p>
<p>If you follow the link you can see the notes with the name of each person in the photo above.</p>
<p>The <strong>GDB BoF</strong> was very interesting, and it felt weird to be at the front (thanks for inviting me Daniel!) discussing <a href="http://sourceware.org/ml/gdb/2008-06/msg00191.html">current GDB issues</a> with Daniel Jacobowitz, Tom Tromey, Pedro Alves (the other people at the front) and the other GDB maintainers and developers in the room.</p>
<p>We nailed down some pending issues that were being discussed in the mailing list at the time regarding <a href="http://sourceware.org/gdb/wiki/PythonGdb">Python scripting support</a> (man, it&#8217;s so much easier to decide things face to face rather than by e-mail!), and also discussed a bit of reversible debugging, multithreading GDB itself, GDB scalability, what to do regarding the next release (in a nutshell: wait about a year from the last release so that all the cool stuff which is being worked on right now gets in and settle down), moving the bugs database from GNATS to bugzilla (thanks for doing this Tromey!) etc.</p>
<p>Also after the BoF Pedro Alves gave a very good improvised tutorial on the GDB event loop which he has been studying for the past few months. It felt like cheating, to get all that knowledge in what, half an hour? <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Thanks so much Pedro, it was awesome.</p>
<p>And of course all the interaction with the people who were there, like Joel Brobecker (playing tennis is more serious than I thought!), Gaius Mulley (Pink Floyd!), Anmol Paralkar, Ramana Radhakrishnan and many others (I don&#8217;t even try to enumerate, just a random sample).</p>
<p>I shared a suite in Ottawa with David Edelsohn and Kenneth Zadeck, which was an interesting thing in itself. Heading back to the hotel felt like going to an extended GCC summit. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  I almost learned something about GCC internals (SSA, LTO, register allocation) and also had very interesting conversations in general.</p>
<p>And of course my one week of backpacking in Canada after the summit, which was another blast. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/132/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/132/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/132/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/132/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=132&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2008/07/14/gcc-summit-2008-been-there-got-the-t-shirt/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>

		<media:content url="http://bauermann.files.wordpress.com/2008/07/gdb_hackers.jpg" medium="image" />
	</item>
		<item>
		<title>GCC Summit 2008</title>
		<link>http://blog.bauermann.eng.br/2008/06/09/gcc-summit-2008/</link>
		<comments>http://blog.bauermann.eng.br/2008/06/09/gcc-summit-2008/#comments</comments>
		<pubDate>Tue, 10 Jun 2008 02:59:40 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[planet ltc]]></category>
		<category><![CDATA[summit]]></category>
		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://bauermann.wordpress.com/?p=127</guid>
		<description><![CDATA[This year I will be attending the GCC Developers&#8217; Summit again! I was there last year (sorry, trip report is only in Portuguese), had a great time and learned a great deal. This year it should be even more fun and interesting for me, since now I already know some people, have more GDB experience [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=127&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This year I will be attending the <a href="http://www.gccsummit.org/2008/">GCC Developers&#8217; Summit</a> again! I was there <a href="http://blog.bauermann.eng.br/2007/10/12/gcc-developers-summit-2007/">last year</a> (sorry, trip report is only in Portuguese), had a great time and learned a great deal. This year it should be even more fun and interesting for me, since now I already know some people, have more GDB experience (one year and a half is not much, but still&#8230;) and am at least partially involved in a few current GDB developments (<a href="http://blog.bauermann.eng.br/2008/03/14/python-scripting-in-gdb/">python scripting</a> and <a href="http://sourceware.org/ml/gdb-patches/2008-06/msg00041.html">reversible debugging</a>).</p>
<p>Also, there will be a fair number of GDB-related events this time, and I look forward to all of those: a GDB talk and two debugging information talks, a debug information BoF and an informal GDB get-together. I look forward to the GDB-related conversations we&#8217;ll have in the last one. Even more so if we do the get-together in a bar, around some beer. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>I also look forward to the closing party at Vineyards, of course. I will finally eat again that <a href="http://www.flickr.com/photos/bauermann/862315137/">bumbleberry pie</a>&#8230;</p>
<p><strong>Update (2008/07/15):</strong> I just wrote the <a href="http://blog.bauermann.eng.br/2008/07/14/gcc-summit-2008-been-there-got-the-t-shirt/">trip report</a>.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/127/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/127/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/127/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=127&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2008/06/09/gcc-summit-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>some GDB and ltrace improvements</title>
		<link>http://blog.bauermann.eng.br/2008/05/24/some-gdb-and-ltrace-improvements/</link>
		<comments>http://blog.bauermann.eng.br/2008/05/24/some-gdb-and-ltrace-improvements/#comments</comments>
		<pubDate>Sun, 25 May 2008 01:23:00 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ltrace]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[planet ltc]]></category>
		<category><![CDATA[powerpc]]></category>

		<guid isPermaLink="false">http://bauermann.wordpress.com/?p=115</guid>
		<description><![CDATA[I thought I&#8217;d provide some updates on a few things my team has been doing on debugging tools. Just today Carlos Seo committed a patch to GDB adding support for writing AltiVec (PowerPC&#8217;s SIMD instructions) registers to corefiles when using the gcore (or generate-core-file) command. This support will show up, then, in the next GDB [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=115&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I thought I&#8217;d provide some updates on a few things my team has been doing on debugging tools.</p>
<p>Just today Carlos Seo committed <a href="http://sourceware.org/ml/gdb-patches/2008-05/msg00641.html">a patch</a> to GDB adding support for writing <a href="http://en.wikipedia.org/wiki/AltiVec">AltiVec</a> (PowerPC&#8217;s SIMD instructions) registers to corefiles when using the gcore (or generate-core-file) command. This support will show up, then, in the next GDB release. He also had a patch committed last year, in time for GDB 6.8 release, adding support for reading AltiVec registers from core files generated by the Linux kernel, starting from version 2.6.24 (kernel patch provided by Mark Nelson).</p>
<p>Luis Machado posted in February <a href="http://lists.alioth.debian.org/pipermail/ltrace-devel/2008-February/000241.html">a patch</a> for ltrace which fixed a number of ABI-related bugs for PowerPC 32-bits and 64-bits. The patch <a href="http://lists.alioth.debian.org/pipermail/ltrace-devel/2008-March/000250.html">was committed</a> in March. The ltrace maintainer has been out for quite a while now, so I don&#8217;t think this will appear in an official release any time soon, but it will surely be picked up by the distros.</p>
<p>Going back to GDB, Luis <a href="http://sourceware.org/ml/gdb-patches/2008-05/msg00108.html">implemented</a> displaced instruction stepping for PowerPC, helping a bit with the non-stop multithread debugging effort carried out by CodeSourcery. The patch didn&#8217;t go in yet, it&#8217;s awaiting review. He&#8217;s also been monitoring the non-stop patches and testing them on PowerPC, having already provided some feedback and pointed out a few regressions.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/115/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/115/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/115/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/115/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/115/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=115&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2008/05/24/some-gdb-and-ltrace-improvements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>vi, esc and tab</title>
		<link>http://blog.bauermann.eng.br/2008/05/08/vi-esc-and-tab/</link>
		<comments>http://blog.bauermann.eng.br/2008/05/08/vi-esc-and-tab/#comments</comments>
		<pubDate>Thu, 08 May 2008 04:38:15 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[procrastination]]></category>
		<category><![CDATA[vi]]></category>
		<category><![CDATA[wikipedia]]></category>

		<guid isPermaLink="false">http://bauermann.wordpress.com/?p=109</guid>
		<description><![CDATA[I am, of course, a vi user (well, Vim actually). A long time ago I had a nice idea, which unfortunately wasn&#8217;t very practical so I didn&#8217;t use it for long: I remaped my Tab key to work as Esc, so I could more easily switch modes. I say it wasn&#8217;t very practical because getting [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=109&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am, of course, a vi user (well, <a href="http://www.vim.org/">Vim</a> actually).</p>
<p>A long time ago I had a nice idea, which unfortunately wasn&#8217;t very practical so I didn&#8217;t use it for long: I remaped my Tab key to work as Esc, so I could more easily switch modes. I say it wasn&#8217;t very practical because getting used to it meant that I would have the wrong muscle memory whenever I was in front of another computer (this was also the reason why I used the <a href="http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard">Dvorak layout</a> for only a few months).</p>
<p>I couldn&#8217;t help but smile today when I <a href="http://en.wikipedia.org/wiki/Vi#History">found out</a> that the computer terminal where Bill Joy developed the original vi had the Esc key where the Tab key is nowadays. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/109/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/109/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/109/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=109&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2008/05/08/vi-esc-and-tab/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>posting patches using Evolution</title>
		<link>http://blog.bauermann.eng.br/2008/05/03/posting-patches-using-evolution/</link>
		<comments>http://blog.bauermann.eng.br/2008/05/03/posting-patches-using-evolution/#comments</comments>
		<pubDate>Sun, 04 May 2008 00:09:48 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[evolution]]></category>
		<category><![CDATA[hint]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[patch]]></category>
		<category><![CDATA[planet ltc]]></category>

		<guid isPermaLink="false">http://bauermann.wordpress.com/?p=105</guid>
		<description><![CDATA[Despite being a KDE person, I use Evolution as my mail client, including for reading mailing lists and posting patches. Up until now I&#8217;ve been doing the latter by attaching patches instead of including them in the message body, to avoid whitespace mangling and linewrap. But this method is inconvenient sometimes: when you want to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=105&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Despite being a KDE person, I use Evolution as my mail client, including for reading mailing lists and posting patches. Up until now I&#8217;ve been doing the latter by attaching patches instead of including them in the message body, to avoid whitespace mangling and linewrap.</p>
<p>But this method is inconvenient sometimes: when you want to comment on a patch posted on the list, portions of that patch (which may include long lines that shouldn&#8217;t wrap) will show up in the message body and you can have trouble. This is a problem especially when the poster also sent their patch as attachment, because you will most likely need to copy &amp; paste the patch into your reply window and things will get mangled right there.</p>
<p>Turns out that there is a way to include a patch in the message body in Evolution&#8217;s compose window and it will get through unmaimed: select the <em>Preformat</em> option in the paragraph style dropdown, and then paste in your patch or use the <em>Insert -&gt; Text File&#8230;</em> option.</p>
<p><strong>Caveat:</strong> Older versions of Evolution converted tabs to spaces when pasting text, so you had to insert it from a text file to preserve whitespace. I just tested with version 2.12.3 from Debian (package version 2.12.3-1), and pasting a patch containing tabs worked fine so the bug has been fixed.</p>
<p>Thanks Klaus Kiwi for the tip!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/105/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/105/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/105/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=105&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2008/05/03/posting-patches-using-evolution/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>breaking code into reviewable patches</title>
		<link>http://blog.bauermann.eng.br/2008/04/30/breaking-code-into-reviewable-patches/</link>
		<comments>http://blog.bauermann.eng.br/2008/04/30/breaking-code-into-reviewable-patches/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 04:45:33 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[hint]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[planet ltc]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[scm]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://bauermann.wordpress.com/?p=104</guid>
		<description><![CDATA[As I mentioned before, I&#8217;ve been working on and off on adding Python scripting support to GDB, with Tom Tromey and Vladimir Prus. We did the work in a git repository, separate from the GDB main repo (which still uses CVS, by the way). Now came the time to get the work we did there, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=104&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As I <a href="http://blog.bauermann.eng.br/2008/03/14/python-scripting-in-gdb/">mentioned before</a>, I&#8217;ve been working on and off on adding Python scripting support to GDB, with <a href="http://tromey.com/blog/?p=408">Tom Tromey</a> and <a href="http://vladimir_prus.blogspot.com/">Vladimir Prus</a>. We did the work in a git repository, separate from the GDB main repo (which still uses CVS, by the way). Now came the time to get the work we did there, separate it in patches and <a href="http://sourceware.org/ml/gdb-patches/2008-04/msg00653.html">post them for review</a> on the gdb-patches mailing list.</p>
<p>This is the tale of my patch-producing efforts. I&#8217;m sorry, it is most likely boring for everyone but me. Still, I wanted to write it down so you are free to stop reading the post here. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Anyway, back to where I was: I (foolishly, perhaps?) volunteered to create the patches. One reason for me to do that is that I actually enjoy working with and learning about source code management and related issues, and this was a good opportunity for me to improve my git-fu (since I thought git could help me do the job in a sane way, which fortunately proved to be the case).</p>
<p>I say foolishly because I thought it wouldn&#8217;t take too much time to cut out the patches, since I knew what I would have to do&#8230; The task of course took longer than I expected, in part because of unforeseen autotools woes, but of course also because I underestimated the effort (I am an optimist).</p>
<p>Here is the method I used:</p>
<p>First of all, I wanted to update the code to the latest CVS version of GDB, because the work in the git repo was done based on a CVS version from February&#8230; Nothing to see here, actually. I just created a new branch with the latest CVS update, and rebased the commits on top of that. In hindsight, I should have merged the new CVS update into the python branch, which would have made me deal with less conflicts. I used rebase because I thought I would cherry pick the commits later, so I wanted each of them refreshed.</p>
<p>Then the real fun began. I started using interactive mode of <em>git rebase</em> to squash related commits together (to form the patches), and reorder them. I quickly realised that with this approach I would have a bit of difficulty with commits which touched different areas of the code and crossed the borders I had in my mind for the patches I wanted to generate. I would have to first split those into smaller, more behaving commits and only then squash them with other similar changes. That seemed to be more work than really necessary.</p>
<p>Also, the older commits did things in ways and places which were later changed, and it looked like I would have some trouble reconciling older and newer code to fit in one patch (maybe not though, maybe that would be taken care of more or less naturally). Also, I would need to take some time to familiarise myself with the commits in the branch, because I only authored some of them. The &#8220;shuffle commits around&#8221; approach wasn&#8217;t looking very promising.</p>
<p>I then turned to a different strategy: I generated a big patch containing all of the code in the branch, and applied it (using the plain old patch command) on top of a clean branch which contained only the CVS HEAD version I was using as a base. All I needed to do now was to selectively add to the index the changes that I wanted to include in a patch and then commit those changes together. And repeat the process for the next patch and so on.</p>
<p>It proved to be a good approach, especially because of the interactive mode of <em>git-add</em>. This mode asks you about each change inside a modified file, letting you add that change to the index or skip it, leaving it in the working directory for a future commit. <em>git add -i</em> streamlined the &#8220;change picking&#8221; process quite a lot, and made the patch-cutting almost mechanical. (By the way, this feature is also available in Mercurial, with the <a href="http://www.selenic.com/mercurial/wiki/index.cgi/RecordExtension">Record</a> extension. I even believe (not sure though) that the Mercurial extension predates <em>git add -i</em>) (I don&#8217;t know if Bazaar has it, would be nice to know).</p>
<p>In this phase of the process, <em>git rebase -i</em> was useful. Sometimes I came accross a change in the working directory which would fit better in a patch which I had already committed. It was simply a matter of committing that change and then shuflling it back and squashing with the proper patch.</p>
<p>At each commit I pushed the changes to a pristine repo which I used to build GDB and guarantee that each patch included all the changes it needed.</p>
<p><em>Voilà</em>, at the end of the process I had a git branch where each commit corresponded to one patch which I wanted to send to the mailing list.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/104/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/104/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/104/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=104&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2008/04/30/breaking-code-into-reviewable-patches/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>new GDB release, and decimal floating point</title>
		<link>http://blog.bauermann.eng.br/2008/03/31/new-gdb-release-and-decimal-floating-point/</link>
		<comments>http://blog.bauermann.eng.br/2008/03/31/new-gdb-release-and-decimal-floating-point/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 03:07:36 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[decimal floating point]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[planet ltc]]></category>

		<guid isPermaLink="false">http://blog.bauermann.eng.br/2008/03/31/new-gdb-release-and-decimal-floating-point/</guid>
		<description><![CDATA[GDB version 6.8 was released just a few days ago. I&#8217;m happy to have made my small contribution to it, mostly with development of decimal floating point debugging support. From the NEWS file: &#8220;GDB now supports debugging C and C++ programs which use the Decimal Floating Point extension. In addition, the PowerPC target now has [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=85&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>GDB version 6.8 <a href="http://sourceware.org/ml/gdb-announce/2008/msg00001.html">was released</a> just a few days ago. I&#8217;m happy to have made my small contribution to it, mostly with development of decimal floating point debugging support. From the NEWS file:</p>
<blockquote><p><em>&#8220;GDB now supports debugging C and C++ programs which use the Decimal Floating Point extension.  In addition, the PowerPC target now has a set of pseudo-registers to inspect decimal float values stored in two consecutive float registers.&#8221;</em></p></blockquote>
<p>The feature was actually developed by several folks. Ben Elliston started working on the feature, and then passed it on to Wu Zhou. I took up where Wu Zhou left and implemented more complete support for decimal float types. Luis Machado also helped me and posted some patches of his own. The work amounted to a total of about 12 patches.</p>
<p>It means that you can now use GDB (version 6.8 or later) to debug programs which make use of the <a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1107.htm">proposed C extension</a> for decimal floating-point arithmetic (i.e., the _Decimal32, _Decimal64 and _Decimal128 types). The first GCC release with support for this extension was GCC 4.2.</p>
<p>Why is decimal floating point useful? It avoids the unexpected surprises and rounding errors which inevitably come with binary floating point. It&#8217;s not that decimal float is more exact or precise, it&#8217;s just that it behaves just like we are used to and were thought in school in terms of representation and rounding.</p>
<p>GDB itself can provide an example:</p>
<p><code>(gdb) p 1.2l<br />
$1 = 1.2000000000000000000433680868994202<br />
(gdb) ptype 1.2l<br />
type = long double<br />
(gdb) p 1.2dl<br />
$2 = 1.2<br />
(gdb) ptype 1.2dl<br />
type = _Decimal128</code></p>
<p>You can see that the actual value used to represent 1.2 in binary floating point is slightly larger than 1.2. Why is that? It&#8217;s because to express 0.2 in binary float you need an infinite number of digits, so what ends up being stored is the closest number possible to represent in binary. The difference is almost nothing, but this error will propagate in computations and eventually be big enough to be noticed. That&#8217;s why in some application domains (e.g., finance and civil construction), you are actually required by law to use decimal floating point to perform calculations.</p>
<p>More information about decimal float can be found in <a href="http://www2.hursley.ibm.com/decimal/">Mike Cowlishaw&#8217;s page</a>.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/85/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/85/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/85/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=85&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2008/03/31/new-gdb-release-and-decimal-floating-point/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>gdb&#8217;s backtrace command implemented in python</title>
		<link>http://blog.bauermann.eng.br/2008/03/24/gdbs-backtrace-command-implemented-in-python/</link>
		<comments>http://blog.bauermann.eng.br/2008/03/24/gdbs-backtrace-command-implemented-in-python/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 02:56:40 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[planet ltc]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://bauermann.wordpress.com/?p=83</guid>
		<description><![CDATA[I&#8217;ve been working on Python bindings for exposing GDB&#8217;s frame_info, the internal structure it uses to keep track of the frame stack in the debuggee (or inferior, in GDB parlance). I got just enough working to be able to implement an equivalent of GDB&#8217;s backtrace command entirely in Python. The difference is that my version [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=83&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on Python bindings for exposing GDB&#8217;s <code>frame_info</code>, the internal structure it uses to keep track of the frame stack in the debuggee (or inferior, in GDB parlance). I got just enough working to be able to implement an equivalent of GDB&#8217;s backtrace command entirely in Python. The difference is that my version of the command prints older frames first and newer last, which feels more natural to me. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Here&#8217;s the output I get:</p>
<p><code>(gdb) rbt<br />
#2  0x080483bb in main at ../../src/examples/funcs.c:15<br />
#1  0x08048391 in f1 at ../../src/examples/funcs.c:10<br />
#0  f2 at ../../src/examples/funcs.c:5<br />
(gdb) </code></p>
<p>A little bit more information, and the definition of the Python command which does the above can be found in <a href="http://sourceware.org/ml/gdb/2008-03/msg00201.html">my post to the mailing list</a>. The code is on the <a href="http://gitorious.org/projects/gdb-python/">git repo</a> for the Python work.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/83/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/83/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/83/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/83/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/83/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=83&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2008/03/24/gdbs-backtrace-command-implemented-in-python/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>new linker for Linux and others ELF OSes</title>
		<link>http://blog.bauermann.eng.br/2008/03/22/new-linker-for-linux-and-others-elf-oses/</link>
		<comments>http://blog.bauermann.eng.br/2008/03/22/new-linker-for-linux-and-others-elf-oses/#comments</comments>
		<pubDate>Sat, 22 Mar 2008 05:34:56 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[planet ltc]]></category>

		<guid isPermaLink="false">http://bauermann.wordpress.com/?p=82</guid>
		<description><![CDATA[Cool, Ian Taylor (who wrote the current linker used in Linux) just announced that gold, the new linker that he has been writing, was just released. It targets only ELF systems, so I believe its design is much simplified and streamlined by this. I find it interesting that he chose to implement it in C++. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=82&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Cool, Ian Taylor (who wrote the current linker used in Linux) just <a href="http://sourceware.org/ml/binutils/2008-03/msg00162.html">announced</a> that gold, the new linker that he has been writing, was just released. It targets only ELF systems, so I believe its design is much simplified and streamlined by this.</p>
<p>I find it interesting that he chose to implement it in C++. I&#8217;m glad that the <em>&#8220;let&#8217;s do it in C because everybody knows it&#8221;</em> mantra that so frequently determines the programming language of open source projects doesn&#8217;t always prevail. Perhaps this will help weaken the argument?</p>
<p>And yes, I know about KDE. It&#8217;s the exception that proves the rule. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /><br />
Besides, don&#8217;t forget that GNOME, the project created to react to it is in C, using the horrible GObject monstrosity.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/82/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/82/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/82/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=82&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2008/03/22/new-linker-for-linux-and-others-elf-oses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>python scripting in gdb!</title>
		<link>http://blog.bauermann.eng.br/2008/03/14/python-scripting-in-gdb/</link>
		<comments>http://blog.bauermann.eng.br/2008/03/14/python-scripting-in-gdb/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 00:09:49 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[planet ltc]]></category>

		<guid isPermaLink="false">http://bauermann.wordpress.com/?p=80</guid>
		<description><![CDATA[It seems the planets are finally aligning to get Python scripting support in GDB! Vladimir published his changes last month, Tromey improved on them, and I joined the bandwagon. The work is being done in a git repo hosted by gitorious. More details here. This looks very promising. Update &#8211; 2008/03/15: Sorry, I was a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=80&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It seems the planets are finally aligning to get Python scripting support in GDB! Vladimir published his changes last month, <a href="http://tromey.com/blog/">Tromey</a> improved on them, and I joined the bandwagon.</p>
<p>The work is being done in a git repo hosted by <a href="http://gitorious.org/projects/gdb-python">gitorious</a>.  More details <a href="http://sourceware.org/ml/gdb/2008-03/msg00143.html">here</a>.</p>
<p>This looks very promising.</p>
<p><strong>Update &#8211; 2008/03/15:</strong> Sorry, I was a bit cryptic in this post. It&#8217;s not really about enabling debug of Python programs using GDB (which is a neat idea, and I hope to play with it sometime). It&#8217;s about integrating a Python interpreter into GDB and exposing its internals as an API to be used by Python scripts. This will enable people to automate and extend GDB functionality using Python. This feature has been asked many times before, and finally is being addressed. Should open many possibilities.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/80/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/80/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/80/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/80/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/80/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=80&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2008/03/14/python-scripting-in-gdb/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>danger! bug in digikam 0.9.3 can cause image loss</title>
		<link>http://blog.bauermann.eng.br/2008/02/28/danger-bug-in-digikam-093-can-cause-image-loss/</link>
		<comments>http://blog.bauermann.eng.br/2008/02/28/danger-bug-in-digikam-093-can-cause-image-loss/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 00:11:56 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[digikam]]></category>
		<category><![CDATA[fotos]]></category>
		<category><![CDATA[hint]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[photos]]></category>

		<guid isPermaLink="false">http://bauermann.wordpress.com/?p=75</guid>
		<description><![CDATA[I was downloading pics from my camera this weekend (strictly speaking, from its SD card) and found out about a nasty bug: digikam will fail to download an image for no good reason, and overwrite good images when you tell it to try again! I immediately opened a bug report, let&#8217;s how this progresses. A [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=75&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was downloading pics from my camera this weekend (strictly speaking, from its SD card) and found out about a nasty bug: <a href="http://www.digikam.org/">digikam</a> will fail to download an image for no good reason, and <b>overwrite good images</b> when you tell it to try again! I immediately opened a <a href="http://bugs.kde.org/show_bug.cgi?id=158377">bug report</a>, let&#8217;s how this progresses. A <a href="http://bugs.kde.org/show_bug.cgi?id=158377#c4">comment</a> in the bug report suggests that downgrading back to 0.9.2 will avoid the problem. I didn&#8217;t test it, but I certainly will do that.</p>
<p>In addition, you need pay attention to the import wizard&#8217;s window to see if all images were downloaded correctly. If an error occurs, the only indication is a small red cross on the image itself. There&#8217;s no warning dialog or status message telling you that something went wrong. You have to check each image. I opened a <a href="http://bugs.kde.org/show_bug.cgi?id=158374">bug report</a> about this too.</p>
<p>This is actually the first problem I had with digikam, and have always had a great experience with it. I really recommend the application to organize your photos (well, just avoid version 0.9.3 <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ). Along with <a href="http://amarok.kde.org/">amarok</a>, I think it&#8217;s one of KDE&#8217;s killer apps.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/75/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/75/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/75/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=75&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2008/02/28/danger-bug-in-digikam-093-can-cause-image-loss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>neverball and other simple games in Linux</title>
		<link>http://blog.bauermann.eng.br/2008/02/23/neverball-and-other-simple-games-in-linux/</link>
		<comments>http://blog.bauermann.eng.br/2008/02/23/neverball-and-other-simple-games-in-linux/#comments</comments>
		<pubDate>Sat, 23 Feb 2008 15:06:33 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[hint]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://bauermann.wordpress.com/?p=73</guid>
		<description><![CDATA[I&#8217;m not really a computer games person. For some reason, I started playing less and less games since I was about 16 years old. After a while, the only game I still played was NetHack (the ASCII or ncurses versions, I don&#8217;t like the X ones). And Koules too, for a while. Anyway, I started [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=73&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not really a computer games person. For some reason, I started playing less and less games since I was about 16 years old. After a while, the only game I still played was <a href="http://www.nethack.org/">NetHack</a> (the ASCII or ncurses versions, I don&#8217;t like the X ones). And <a href="http://www.ucw.cz/~hubicka/koules/English/koules.html">Koules</a> too, for a while.</p>
<p>Anyway, I started this post to suggest a game which I recently started playing and found very interesting and fun. I know, after  mentioning that two of my favorite games were NetHack and Koules I don&#8217;t deserve much credit, but still&#8230;</p>
<p>&#8217;tis called <a href="http://icculus.org/neverball/">Neverball</a>,  and is one of those simple, but yet effective games. There&#8217;s a ball and you have to make it through the game level while collecting the coins. The thing is, you don&#8217;t control the ball. What you actually control is the level floor beneath it. So what you do is tilt the floor to make the ball roll in the direction you want, at the speed you want (well, if you are a good player!).</p>
<div style="text-align:center;"><img src="http://bauermann.files.wordpress.com/2008/02/neverball1.png?w=500" alt="neverball1.png" /></div>
<p>By the way, since I&#8217;m talking about games: there&#8217;s one other I find very good. Since I won&#8217;t write a full post about it, I might as well mention it here: it&#8217;s <a href="http://pingus.seul.org/">Pingus</a>, a free Lemmings clone. It&#8217;s very well done with good graphics and sound.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/73/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/73/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/73/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=73&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2008/02/23/neverball-and-other-simple-games-in-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>

		<media:content url="http://bauermann.files.wordpress.com/2008/02/neverball1.png" medium="image">
			<media:title type="html">neverball1.png</media:title>
		</media:content>
	</item>
		<item>
		<title>KDE vs XFCE in terms of memory usage</title>
		<link>http://blog.bauermann.eng.br/2008/01/06/kde-vs-xfce-in-terms-of-memory-usage/</link>
		<comments>http://blog.bauermann.eng.br/2008/01/06/kde-vs-xfce-in-terms-of-memory-usage/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 00:44:48 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[hint]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[xfce]]></category>

		<guid isPermaLink="false">http://blog.bauermann.eng.br/2008/01/06/kde-vs-xfce-in-terms-of-memory-usage/</guid>
		<description><![CDATA[For the moment I have to cope with a low-memory machine at home, so I decided to switch it from KDE to XFCE. But is it really worth it, in terms of memory savings? I decided to measure&#8230; First of all, I&#8217;m not trying to do rigorous analysis here but just do some estimates to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=67&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For the moment I have to cope with a low-memory machine at home, so I decided to switch it from KDE to XFCE. But is it really worth it, in terms of memory savings? I decided to measure&#8230;</p>
<p>First of all, I&#8217;m not trying to do rigorous analysis here but just do some estimates  to make a decision for personal use. Still, if you find something in my method which invalidates the results I obtained, I&#8217;d be glad to know about it.</p>
<p>To know the memory consumption of each desktop system, I simply started a fresh session in that desktop, opened a terminal and obtained a process listing with ps -e. No other program was opened at the time. Because I did this using a new user account, the test was made with the default configuration and default loaded programs of each desktop system.</p>
<p>Since the important figure in the ps output is the RSS (resident set size) column, I also turned off the swap partition in my computer. The ps manpage says that the RSS field doesn&#8217;t count swapped memory from the process. Good thing I noticed this before it was too late!</p>
<p>Here is the result for KDE:</p>
<table>
<tr>
<td align="center"><b>program</b></td>
<td align="center"><b>vsz</b></td>
<td align="center"><b>rss</b></td>
</tr>
<tr>
<td align="left">Xorg</td>
<td align="right">23,936</td>
<td align="right">18,304</td>
</tr>
<tr>
<td align="left">kded</td>
<td align="right">35,608</td>
<td align="right">16,136</td>
</tr>
<tr>
<td align="left">kdesktop</td>
<td align="right">33,452</td>
<td align="right">15,200</td>
</tr>
<tr>
<td align="left">konsole</td>
<td align="right">33,512</td>
<td align="right">14,540</td>
</tr>
<tr>
<td align="left">kicker</td>
<td align="right">34,888</td>
<td align="right">14,388</td>
</tr>
<tr>
<td align="left">korgac</td>
<td align="right">33,520</td>
<td align="right">12,788</td>
</tr>
<tr>
<td align="left">kwin</td>
<td align="right">30,520</td>
<td align="right">11,628</td>
</tr>
<tr>
<td align="left">kpowersave</td>
<td align="right">30,792</td>
<td align="right">11,024</td>
</tr>
<tr>
<td align="left">knotify</td>
<td align="right">36,400</td>
<td align="right">10,688</td>
</tr>
<tr>
<td align="left">klipper</td>
<td align="right">28,456</td>
<td align="right">9,652</td>
</tr>
<tr>
<td align="left">ksmserver</td>
<td align="right">27,124</td>
<td align="right">8,368</td>
</tr>
<tr>
<td align="left">artsd</td>
<td align="right">22,452</td>
<td align="right">8,168</td>
</tr>
<tr>
<td align="left">kaccess</td>
<td align="right">27,212</td>
<td align="right">8,028</td>
</tr>
<tr>
<td align="left">seahorse-agent</td>
<td align="right">20,828</td>
<td align="right">6,608</td>
</tr>
<tr>
<td align="left">klauncher</td>
<td align="right">27,476</td>
<td align="right">6,324</td>
</tr>
<tr>
<td align="left">kio_file</td>
<td align="right">26,048</td>
<td align="right">5,376</td>
</tr>
<tr>
<td align="left">gconfd-2</td>
<td align="right">6,692</td>
<td align="right">3,736</td>
</tr>
<tr>
<td align="left">bash</td>
<td align="right">6,368</td>
<td align="right">3,728</td>
</tr>
<tr>
<td align="left">kdeinit</td>
<td align="right">25,764</td>
<td align="right">3,516</td>
</tr>
<tr>
<td align="left">dcopserver</td>
<td align="right">25,616</td>
<td align="right">2,916</td>
</tr>
<tr>
<td align="left">startkde</td>
<td align="right">4,300</td>
<td align="right">1,492</td>
</tr>
<tr>
<td align="left">gam_server</td>
<td align="right">3,108</td>
<td align="right">1,408</td>
</tr>
<tr>
<td align="left">ssh-agent</td>
<td align="right">4,508</td>
<td align="right">724</td>
</tr>
<tr>
<td align="left">dbus-daemon</td>
<td align="right">2,760</td>
<td align="right">532</td>
</tr>
<tr>
<td align="left">kwrapper ksmserver</td>
<td align="right">1,692</td>
<td align="right">364</td>
</tr>
<tr>
<td align="left">dbus-launch</td>
<td align="right">2,916</td>
<td align="right">340</td>
</tr>
<tr>
<td align="left"><b>total</b></td>
<td align="right"><b>555,948</b></td>
<td align="right"><b>195,976</b></td>
</tr>
</table>
<p>And here is the result for XFCE:</p>
<table>
<tr>
<td align="center"><b>program</b></td>
<td align="center"><b>vsz</b></td>
<td align="center"><b>rss</b></td>
</tr>
<tr>
<td align="left">Xorg</td>
<td align="right">27,776</td>
<td align="right">20,788</td>
</tr>
<tr>
<td align="left">gnome-terminal</td>
<td align="right">43,652</td>
<td align="right">16,860</td>
</tr>
<tr>
<td align="left">xfdesktop</td>
<td align="right">57,172</td>
<td align="right">14,848</td>
</tr>
<tr>
<td align="left">update-notifier</td>
<td align="right">24,996</td>
<td align="right">14,480</td>
</tr>
<tr>
<td align="left">xfce4-panel</td>
<td align="right">20,580</td>
<td align="right">12,340</td>
</tr>
<tr>
<td align="left">notification-daemon</td>
<td align="right">19,156</td>
<td align="right">10,224</td>
</tr>
<tr>
<td align="left">xfce4-session</td>
<td align="right">18,016</td>
<td align="right">10,092</td>
</tr>
<tr>
<td align="left">xfwm4</td>
<td align="right">16,216</td>
<td align="right">8,344</td>
</tr>
<tr>
<td align="left">xfce4-menu-plugin</td>
<td align="right">15,780</td>
<td align="right">7,856</td>
</tr>
<tr>
<td align="left">seahorse-agent</td>
<td align="right">20,864</td>
<td align="right">6,772</td>
</tr>
<tr>
<td align="left">xfce-mcs-manage</td>
<td align="right">18,812</td>
<td align="right">6,148</td>
</tr>
<tr>
<td align="left">gnome-volume-manager</td>
<td align="right">18,108</td>
<td align="right">4,744</td>
</tr>
<tr>
<td align="left">Thunar</td>
<td align="right">13,880</td>
<td align="right">4,472</td>
</tr>
<tr>
<td align="left">gconfd-2</td>
<td align="right">6,692</td>
<td align="right">3,776</td>
</tr>
<tr>
<td align="left">bash</td>
<td align="right">6,412</td>
<td align="right">3,740</td>
</tr>
<tr>
<td align="left">bonobo-activation-server</td>
<td align="right">15,264</td>
<td align="right">2,892</td>
</tr>
<tr>
<td align="left">xscreensaver</td>
<td align="right">4,240</td>
<td align="right">1,936</td>
</tr>
<tr>
<td align="left">/bin/sh /etc/xdg/xfce4/xinitrc &#8212; /etc/X11/xinit/xserverrc</td>
<td align="right">4,292</td>
<td align="right">1,444</td>
</tr>
<tr>
<td align="left">gam_server</td>
<td align="right">3,108</td>
<td align="right">1,408</td>
</tr>
<tr>
<td align="left">dbus-daemon</td>
<td align="right">2,760</td>
<td align="right">892</td>
</tr>
<tr>
<td align="left">gnome-pty-helper</td>
<td align="right">2,720</td>
<td align="right">756</td>
</tr>
<tr>
<td align="left">ssh-agent</td>
<td align="right">4,508</td>
<td align="right">728</td>
</tr>
<tr>
<td align="left">dbus-launch</td>
<td align="right">2,916</td>
<td align="right">440</td>
</tr>
<tr>
<td align="left"><b>total</b></td>
<td align="right"><b>367,920</b></td>
<td align="right"><b>155,980</b></td>
</tr>
</table>
<p>So, XFCE uses 152MB of RAM, versus the 191MB KDE uses. Not bad, almost 40MB (20%) less!</p>
<p>That&#8217;s not the whole story, though. I also wrote down the output of the <code>free</code> command as a sanity check.</p>
<p>Using KDE:</p>
<table border="0" cellspacing="5">
<tr>
<td align="left">&nbsp;</td>
<td align="center">total</td>
<td align="center">used</td>
<td align="center">free</td>
<td align="center">shared</td>
<td align="center">buffers</td>
<td align="center">cached</td>
</tr>
<tr>
<td align="left">Mem:</td>
<td align="right">256112</td>
<td align="right">245040</td>
<td align="right">11072</td>
<td align="right">0</td>
<td align="right">20832</td>
<td align="right">138236</td>
</tr>
<tr>
<td colspan="2" align="left">-/+ buffers/cache:</td>
<td align="right">85972</td>
<td align="right">170140</td>
<td align="left">&nbsp;</td>
<td align="left">&nbsp;</td>
<td align="left">&nbsp;</td>
</tr>
<tr>
<td align="left">Swap:</td>
<td align="right">0</td>
<td align="right">0</td>
<td align="right">0</td>
<td align="left">&nbsp;</td>
<td align="left">&nbsp;</td>
<td align="left">&nbsp;</td>
</tr>
</table>
<p>Using XFCE:</p>
<table border="0" cellspacing="5">
<tr>
<td align="left">&nbsp;</td>
<td align="center">total</td>
<td align="center">used</td>
<td align="center">free</td>
<td align="center">shared</td>
<td align="center">buffers</td>
<td align="center">cached</td>
</tr>
<tr>
<td align="left">Mem:</td>
<td align="right">256112</td>
<td align="right">251340</td>
<td align="right">4772</td>
<td align="right">0</td>
<td align="right">20332</td>
<td align="right">127156</td>
</tr>
<tr>
<td colspan="2" align="left">-/+ buffers/cache:</td>
<td align="right">103852</td>
<td align="right">152260</td>
<td align="left">&nbsp;</td>
<td align="left">&nbsp;</td>
<td align="left">&nbsp;</td>
</tr>
<tr>
<td align="left">Swap:</td>
<td align="right">0</td>
<td align="right">0</td>
<td align="right">0</td>
<td align="left">&nbsp;</td>
<td align="left">&nbsp;</td>
<td align="left">&nbsp;</td>
</tr>
</table>
<p>Look at the &#8220;<i>used</i>&#8221; column, in the &#8220;<i>-/+ buffers/cache</i>&#8221; line. That is the actual memory amount being used by the running programs in the computer.</p>
<p>This is a very interesting and surprising result: at the end of the day, XFCE actually uses <b>more</b> memory than KDE! Why, if adding up the resident sizes of the processes from each desktop system you get a different conclusion?</p>
<p>One explanation would be that KDE actually shares more memory between processes than XFCE. Its programs most probably have a greater number of shared libraries in common, which enables the kernel to use the same memory pages for the text section of those libraries accross process images. Unfortunately I didn&#8217;t collect data to test that possibility, and it&#8217;s late at night now. But it makes sense.</p>
<p>The bottom line, surprisingly enough, is that you should stick with KDE to preserve memory. Or switch to a bare-bones window manager instead of a complete desktop system, like IceWM, Window Maker, Blackbox or something else. But I&#8217;m too spoiled by the amenities of a good desktop to do that. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>By the way, the tests were made with KDE 3.5.8 and XFCE 4.4.2 under Debian GNU/Linux unstable (updated on 2008/01/06) on a 32-bit x86 machine.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/67/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/67/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/67/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=67&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2008/01/06/kde-vs-xfce-in-terms-of-memory-usage/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>take care when renaming files in git</title>
		<link>http://blog.bauermann.eng.br/2008/01/03/take-care-when-renaming-files-in-git/</link>
		<comments>http://blog.bauermann.eng.br/2008/01/03/take-care-when-renaming-files-in-git/#comments</comments>
		<pubDate>Thu, 03 Jan 2008 21:13:38 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[hint]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://blog.bauermann.eng.br/2008/01/03/take-care-when-renaming-files-in-git/</guid>
		<description><![CDATA[If you rename and modify a file in the same commit, you will loose its history: http://sourceware.org/ml/frysk/2008-q1/msg00004.html You have to do a commit just with the rename operation (identical file contents), and then modify it. Sheesh, good to know about that! I recall I had a similar problem with Subversion once&#8230; I think it was [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=63&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you rename and modify a file in the same commit, you will loose its history:</p>
<p><a href="http://sourceware.org/ml/frysk/2008-q1/msg00004.html">http://sourceware.org/ml/frysk/2008-q1/msg00004.html</a></p>
<p>You have  to do a commit just with the rename operation (identical file contents), and then modify it. Sheesh, good to know about that!</p>
<p>I recall I had a similar problem with Subversion once&#8230; I think it was refusing my commit or something. I had to go back and do just the rename, commit and then modify the file.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/63/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/63/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/63/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/63/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/63/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=63&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2008/01/03/take-care-when-renaming-files-in-git/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>GCC Developers&#8217; Summit 2007</title>
		<link>http://blog.bauermann.eng.br/2007/10/12/gcc-developers-summit-2007/</link>
		<comments>http://blog.bauermann.eng.br/2007/10/12/gcc-developers-summit-2007/#comments</comments>
		<pubDate>Fri, 12 Oct 2007 16:43:10 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[português]]></category>
		<category><![CDATA[comunidade]]></category>
		<category><![CDATA[fotos]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[trabalho]]></category>
		<category><![CDATA[viagem]]></category>

		<guid isPermaLink="false">http://blog.bauermann.eng.br/2007/10/12/gcc-developers-summit-2007/</guid>
		<description><![CDATA[Bom, já faz quase três meses que rolou o GCC Developers&#8217; Summit 2007, e até agora não escrevi nada sobre isso aqui. Acho que ainda está em tempo. Bom, ir para lá foi uma oportunidade que surgiu do nada, eu nem imaginava que poderia acontecer. Uma colega minha dos Estados Unidos comentou no canal de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=44&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Bom, já faz quase três meses que rolou o <a href="http://www.gccsummit.org/2007/index_2007.php">GCC Developers&#8217; Summit 2007</a>, e até agora não escrevi nada sobre isso aqui. Acho que ainda está em tempo. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Bom, ir para lá foi uma oportunidade que surgiu do nada, eu nem imaginava que poderia acontecer. Uma colega minha dos Estados Unidos comentou no canal de IRC do nosso departamento (sim, no Linux Technology Center a gente usa IRC pra coordenar times e projetos!) que poderia ser útil eu ir lá conhecer membros da comunidade do GDB, para facilitar a discussão de algumas coisas que na época queríamos propor para a comunidade. Eu aproveitei a bola quicando na área e falei pro gerente (que também estava no canal): &#8220;é uma idéia legal, o que você acha?&#8221;. Quando eu falei isso tinha quase certeza de ouvir um &#8220;não vai dar&#8221; como resposta, mas qual não foi minha surpresa quando ele disse &#8220;mmm&#8230; ok.&#8221;! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<p>Um mês depois lá estava eu desembarcando em Ottawa, sem saber o que esperar de um evento como esse. Eu estava nervoso, pois tinha certeza que todo mundo lá manjava muito mais que eu. Afinal, eu estava trabalhando com GDB e envolvido com questões de baixo nível (Linux ABI, arquitetura Power, dynamic linking, etc.) fazia apenas uns 6 meses. Tinha gente lá trabalhando com isso faz 10 anos ou até mais. Mas o pessoal é muito bacana e me deixou bastante à vontade. É uma comunidade bastante amigável, isso posso dizer.</p>
<p>Não tinha tanta gente do GDB por lá. Houve um mini-BoF em um café da manhã, e tinha umas 5 pessoas na mesa. Mas foi muito útil conhecer pessoas com quem interajo nas listas de discussão, e deu para esclarecer algumas dúvidas com relação ao código e outros assuntos sobre os quais eu queria conversar. Além disso, o pessoal gostou de saber que temos um time trabalhando forte com GDB aqui.</p>
<p>Uma coisa que me surpreendeu foi ver que muito pouca gente trabalha no GDB como foco principal. A maioria dos contribuidores trabalha em outras coisas (toolchain, GCC, algum processador, sei lá) e mexe no GDB para adaptá-lo a esse outro objetivo. Isso me ajudou a entender e contextualizar melhor o que vejo nas listas, e trabalhar melhor com ela.</p>
<p>Tudo isso facilitou a minha interação com a comunidade. Agora entendo um pouco melhor sua dinâmica, e conhecer a pessoa por trás de um endereço de e-mail ajuda nas discussões e patches (digo isso tanto no lado de eu conhecer a comunidade, quanto de eles me conhecerem). O fator humano sempre tem um certo peso.</p>
<p>Bom, obviamente não posso deixar de falar do evento que teve no final: o pessoal fechou um bar (<a href="http://www.ottawakiosk.com/Vineyards/web/3.0/">Vineyards</a>), e a gente passou a noite lá, com direito a open bar e boca livre! A <a href="http://www.ottawakiosk.com/Vineyards/web/3.0/beers.html">variedade de cervejas</a> que tinha lá era impressionante, e eu provei um dos melhores doces que já comi até hoje: a <a href="http://www.flickr.com/photos/bauermann/862315137/">Bumbleberry pie</a>!</p>
<p>Coloquei as fotos da viagem <a href="http://www.flickr.com/photos/bauermann/sets/72157600879450163/">no flickr</a>. A maioria são de meus passeios pela cidade, tirei muito poucas do summit em si. Estas são as principais:</p>
<ul>
<li><a href="http://www.flickr.com/photos/bauermann/861074066/">IBMistas presentes</a>,</li>
<li><a href="http://www.flickr.com/photos/bauermann/866473755/">meu crachá</a>,</li>
<li><a href="http://www.flickr.com/photos/bauermann/862315125/">pessoal no bar</a>,</li>
<li>menu do bar: <a href="http://www.flickr.com/photos/bauermann/867325538/">capa</a>, <a href="http://www.flickr.com/photos/bauermann/866470819/">índice</a>, <a href="http://www.flickr.com/photos/bauermann/866472027/">conteúdo</a>,</li>
<li><a href="http://www.flickr.com/photos/bauermann/862315137/">bumbleberry pie</a>.</li>
</ul>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/44/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/44/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/44/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=44&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2007/10/12/gcc-developers-summit-2007/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>um grande passo para mim, mas um pequeno passo para a humanidade</title>
		<link>http://blog.bauermann.eng.br/2007/03/03/um-grande-passo-para-mim-mas-um-pequeno-passo-para-a-humanidade/</link>
		<comments>http://blog.bauermann.eng.br/2007/03/03/um-grande-passo-para-mim-mas-um-pequeno-passo-para-a-humanidade/#comments</comments>
		<pubDate>Sat, 03 Mar 2007 05:40:14 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[português]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[madrugada]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://bauermann.wordpress.com/2007/10/06/um-grande-passo-para-mim-mas-um-pequeno-passo-para-a-humanidade/</guid>
		<description><![CDATA[Ah, só pra deixar registrado: este foi o 1º patch q eu submeti ao GDB: http://sourceware.org/ml/gdb-patches/2007-02/msg00000.html Ele conserta o comando &#8220;disassemble&#8221; para q ele leia corretamente instruções dos processadores Power4, Power5 e Power6 (q ainda não foi lançado). É um patch pequeno, mas a dificuldade não foi escrever aquelas duas linhas, e sim saber o [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=19&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ah, só pra deixar registrado: este foi o 1º patch q eu submeti ao GDB:</p>
<p><a href="http://sourceware.org/ml/gdb-patches/2007-02/msg00000.html">http://sourceware.org/ml/gdb-patches/2007-02/msg00000.html</a></p>
<p>Ele conserta o comando &#8220;disassemble&#8221; para q ele leia corretamente instruções dos processadores Power4, Power5 e Power6 (q ainda não foi lançado). É um patch pequeno, mas a dificuldade não foi escrever aquelas duas linhas, e sim saber o q estava acontecendo. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Aqui está o e-mail de confirmação do commit:</p>
<p><a href="http://sourceware.org/ml/gdb-patches/2007-02/msg00091.html">http://sourceware.org/ml/gdb-patches/2007-02/msg00091.html</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=19&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2007/03/03/um-grande-passo-para-mim-mas-um-pequeno-passo-para-a-humanidade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>backup: mais do mesmo</title>
		<link>http://blog.bauermann.eng.br/2006/12/03/backup-mais-do-mesmo/</link>
		<comments>http://blog.bauermann.eng.br/2006/12/03/backup-mais-do-mesmo/#comments</comments>
		<pubDate>Sun, 03 Dec 2006 23:10:00 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[português]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[dica]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://bauermann.wordpress.com/2007/10/06/backup-mais-do-mesmo/</guid>
		<description><![CDATA[Buenas, já comentei sobre o esquema de backup que organizei, e mencionei q queria melhorar o script q escrevi para automatizar o processo. Pois bem, aqui está a nova versão do script. Como ele já está fazendo tudo o q eu queria, talvez esta seja a versão final. Dependendo do argumento passado, o script faz [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=14&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Buenas, <a href="http://bauermann.wordpress.com/2006/11/26/deixando-de-viver-perigosamente/">já comentei</a> sobre o esquema de backup que organizei, e mencionei q queria melhorar o script q escrevi para automatizar o processo.</p>
<p>Pois bem, aqui está a nova versão do script. Como ele já está fazendo tudo o q eu queria, talvez esta seja a versão final.</p>
<p>Dependendo do argumento passado, o script faz um backup completo, um backup incremental contendo as diferenças desde o último backup ou um backup diferencial, q é o nome q eu dei para um backup contendo as diferenças desde o último backup completo (ou seja, ignorando os incrementais). Este último modo serve para consolidar todos os backups incrementais em um só, evitando q seja necessário restaurar trocentos backups incrementais&#8230;</p>
<p>Minha idéia inicial era fazer o backup incremental a cada dois ou três dias, mas obviamente não fiz isso. Hoje fiz meu 1º backup incremental, e ele ficou bem maior do q eu esperava: 60 MB. Isso pra uma semana de dados!</p>
<p>O principal culpado é o diretório ~/Mail, q contém umas pastas de e-mail local em formato mbox (ou seja, todos os e-mails da pasta em um único arquivo). Isso significa q qdo chega uma nova mensagem, a pasta toda vai pro backup. Pra uma pasta de 50MB, isso não é muito bom&#8230; A solução é simples: converter pro formato maildir, q guarda cada mensagem em um arquivo separado. Assim, só as mensagens novas vão para o backup.</p>
<p>Se alguém se interessar, aqui está o script que eu fiz: <a href="http://images.bauermann.multiply.com/attachment/0/RXNHjwoKCjcAAC389O01/backup-home.sh" title="backup-home.sh">backup-home.sh</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/14/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/14/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=14&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2006/12/03/backup-mais-do-mesmo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>keeping track of timezones</title>
		<link>http://blog.bauermann.eng.br/2006/12/02/keeping-track-of-timezones/</link>
		<comments>http://blog.bauermann.eng.br/2006/12/02/keeping-track-of-timezones/#comments</comments>
		<pubDate>Sat, 02 Dec 2006 04:22:31 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[hint]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blog.bauermann.eng.br/2006/12/02/keeping-track-of-timezones/</guid>
		<description><![CDATA[Working in the LTC means working with people spread around the globe. Or at least at a few different timezones&#8230; I just found out about this feature in KDE which I suspect will become very handy for me from now on: have the taskbar&#8217;s clock show the time in different timezones: To enable it, just [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=47&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Working in the LTC means working with people spread around the globe. Or at least at a few different timezones&#8230;</p>
<p>I just found out about this feature in KDE which I suspect will become very handy for me from now on: have the taskbar&#8217;s clock show the time in different timezones:</p>
<p align="center"><img src="http://bauermann.files.wordpress.com/2007/10/clock-timezones.png?w=500" /></p>
<p>To enable it, just right-click on the clock, select &#8220;Configure Clock&#8230;&#8221; and then the &#8220;Timezones&#8221; tab.</p>
<p>GNOME, of course, <a href="http://blogs.sun.com/alanc/entry/my_favorite_new_feature_in">has the same feature</a>. That&#8217;s how I had the idea to search for this in the first place&#8230;</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/47/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/47/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/47/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=47&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2006/12/02/keeping-track-of-timezones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>

		<media:content url="http://bauermann.files.wordpress.com/2007/10/clock-timezones.png" medium="image" />
	</item>
		<item>
		<title>acesso rápido à hora em diferentes fusos horários</title>
		<link>http://blog.bauermann.eng.br/2006/12/02/acesso-rapido-a-hora-em-diferentes-fusos-horarios/</link>
		<comments>http://blog.bauermann.eng.br/2006/12/02/acesso-rapido-a-hora-em-diferentes-fusos-horarios/#comments</comments>
		<pubDate>Sat, 02 Dec 2006 04:19:40 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[português]]></category>
		<category><![CDATA[dica]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://bauermann.wordpress.com/2007/10/06/acesso-rapido-a-hora-em-diferentes-fusos-horarios/</guid>
		<description><![CDATA[O time do meu projeto está distribuído em 3 fusos horários, e às vezes surgem compromissos em um quarto fuso horário. Claro q são só contas de adição e subtração, mas é chato e muito fácil de errar e de confundir fusos horários. Acabo de descobrir uma funcionalidade do KDE q vai se tornar muito [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=13&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>O time do meu projeto está distribuído em 3 fusos horários, e às vezes surgem compromissos em um quarto fuso horário. Claro q são só contas de adição e subtração, mas é chato e muito fácil de errar e de confundir fusos horários.</p>
<p>Acabo de descobrir uma funcionalidade do KDE q vai se tornar muito útil daqui pra frente: o relógio da barra de tarefas consegue mostrar as horas em diversos fusos horários:</p>
<p><a href="http://bauermann.files.wordpress.com/2007/10/clock-timezones.png" title="clock-timezones.png"><img src="http://bauermann.files.wordpress.com/2007/10/clock-timezones.png?w=500" alt="clock-timezones.png" align="middle" /></a></p>
<p>Para configurar isso, basta clicar com o botão direito no relógio, clicar em &#8220;Configure Clock&#8230;&#8221; e selecionar a aba &#8220;Timezones&#8221;.</p>
<p>O GNOME, claro, tem a mesma coisa. Aliás, foi assim q tive a idéia de procurar isso no KDE.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/13/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/13/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=13&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2006/12/02/acesso-rapido-a-hora-em-diferentes-fusos-horarios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>

		<media:content url="http://bauermann.files.wordpress.com/2007/10/clock-timezones.png" medium="image">
			<media:title type="html">clock-timezones.png</media:title>
		</media:content>
	</item>
		<item>
		<title>scenes from the open source world</title>
		<link>http://blog.bauermann.eng.br/2006/12/01/scenes-from-the-open-source-world/</link>
		<comments>http://blog.bauermann.eng.br/2006/12/01/scenes-from-the-open-source-world/#comments</comments>
		<pubDate>Fri, 01 Dec 2006 04:55:37 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[haha only serious]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://blog.bauermann.eng.br/2006/12/01/scenes-from-the-open-source-world/</guid>
		<description><![CDATA[It&#8217;s well known that code review and discussions during development of new functionality are strong points of the open source development methodology. Here&#8217;s a fine example of this practice: http://marc.theaimsgroup.com/?l=selinux&#38;m=116326731410199&#38;w=2 And here&#8217;s a practical example on how to present your arguments on a mailing list discussion: http://marc.theaimsgroup.com/?l=selinux&#38;m=116076869107136&#38;w=2 &#60;/tongue-in-cheek&#62;<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=46&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s well known that code review and discussions during development of new functionality are strong points of the open source development methodology. Here&#8217;s a fine example of this practice:</p>
<p><a href="http://marc.theaimsgroup.com/?l=selinux&amp;m=116326731410199&amp;w=2">http://marc.theaimsgroup.com/?l=selinux&amp;m=116326731410199&amp;w=2</a></p>
<p>And here&#8217;s a practical example on how to present your arguments on a mailing list discussion:</p>
<p><a href="http://marc.theaimsgroup.com/?l=selinux&amp;m=116076869107136&amp;w=2">http://marc.theaimsgroup.com/?l=selinux&amp;m=116076869107136&amp;w=2</a></p>
<p>&lt;/tongue-in-cheek&gt;</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/46/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/46/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/46/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=46&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2006/12/01/scenes-from-the-open-source-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>deixando de viver perigosamente</title>
		<link>http://blog.bauermann.eng.br/2006/11/26/deixando-de-viver-perigosamente/</link>
		<comments>http://blog.bauermann.eng.br/2006/11/26/deixando-de-viver-perigosamente/#comments</comments>
		<pubDate>Sun, 26 Nov 2006 05:49:04 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[português]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[dica]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://bauermann.wordpress.com/2007/10/06/deixando-de-viver-perigosamente/</guid>
		<description><![CDATA[De uns tempos pra cá eu comecei a me incomodar com uma coisa: o último backup q eu fiz foi em maio deste ano, e de lá pra cá obviamente eu juntei bastante coisa q não gostaria de perder&#8230; Mas claro q entre ficar incomodado e realmente tomar uma atitude existe uma distância. Hoje fui [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=9&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>De uns tempos pra cá eu comecei a me incomodar com uma coisa: o último backup q eu fiz foi em maio deste ano, e de lá pra cá obviamente eu juntei bastante coisa q não gostaria de perder&#8230; Mas claro q entre ficar incomodado e realmente tomar uma atitude existe uma distância.</p>
<p>Hoje fui mexer no notebook e ele começou a fazer uns &#8220;cleks&#8221; estranhos, mais ou menos periodicamente durante algumas horas. Vixe, taí uma boa hora pra começar a tomar uma atitude com relação a backup! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Não que necessariamente tenha algo errado com o HD&#8230; eu li em algum lugar (não lembro onde, mas lembro q a fonte era confiável) q alguns modelos de HD fazem esse tipo de barulho de vez em quando como parte do funcionamento normal deles. Então não é nada de mais. Mas sei lá, vai que é algum problema&#8230;</p>
<p>Já que eu ia fazer outro backup, resolvi pesquisar melhor e encontrar algum método mais prático do q o backup tosco q eu fiz das 2 últimas vezes (sair catando arquivos e diretórios importantes, jogar num lugar só, gerar um iso e queimar). Com isso eu espero diminuir o meu tempo médio entre backups, q hj é de 6 meses. (sim, antes de maio meu backup anterior havia sido em novembro do ano passado).</p>
<p>No fim das contas, depois de ler muitos artigos e percorrer diversos resultados de busca do Google, resolvi ficar com um comando chamado <a href="http://dar.linux.free.fr/">dar</a> (eu sei, eu também pensei nessa piada), que significa Disk ARchiver. Pelo que pude ver é um utilitário bem maduro, usado por diversas pessoas inclusive profissionalmente. Algumas vantagens que me chamaram a atenção:</p>
<ul>
<li>O que eu mais gostei nele é que você consegue extrair do backup um arquivo que ele chama de catálogo: é uma lista de todos os arquivos do backup, com as datas de modificações. Assim é possível usar esse catálogo pra fazer um backup incremental da próxima vez.</li>
<li>Outra coisa muito interessante é que ele consegue dividir o backup em diversos arquivos (você especifica o tamanho que quer na linha de comando) pra poder gravar em mais de um CD, por exemplo (eu estava precisando disso!).</li>
<li>o dar compacta os arquivos antes de fazer o backup. Ele compacta cada arquivo individualmente. Não é tão eficiente, mas vc garante q mesmo q a mídia corrompa, vc só perde os arquivos realmente afetados pelo defeito.</li>
</ul>
<p>A parte complicada é gerar uma linha de comando que faça o backup q vc quer. As opções do comando são tão diversas e numerosas quanto as do tar. Eu usei <a href="http://dar.linux.free.fr/doc/mini-howto/dar-differential-backup-mini-howto.en.html">esta página</a> como base, e também o <a href="http://dar.linux.free.fr/doc/Tutorial.html">tutorial oficial</a> do dar. Estou anexando a esta entrada o script que criei para gerar meu backup. Ainda quero melhorá-lo para que ele também faça backups incrementais, mas isso fica pra outro dia.</p>
<p>Uma parte tediosa foi gerar a lista de diretórios que não entram no backup. Isso é importante pra mim pois como não tenho gravador de DVD, preciso minimizar o número de CDs gravados, e meu $HOME está com uns 25 gigas&#8230; Nessa tarefa, o <a href="http://kdirstat.sourceforge.net/">kdirstat</a> foi extremamente útil. Ele consegue rapidamente gerar um relatório dos maiores arquivos e diretórios, e tem um modo de visualização gráfico que permite encontrar facilmente os maiores culpados pelo consumo do disco.</p>
<p>O resultado disso é que no fim das contas só precisei fazer backup de 2.4G, e isso coube em 3 CDs (ocupando 1.8G no total. Nada mal, a compactação economizou um CD).</p>
<p>No fim das contas, minha idéia para o procedimento de backup é a seguinte:</p>
<ol>
<li>a cada dois ou três dias, fazer o backup incremental e copiar pro pen drive</li>
<li>a cada duas ou três semanas fazer um backup diferencial desde o último backup full pra não precisar ficar acumulando infinitos backups incrementais e quem sabe economizar espaço no pen drive</li>
<li>a cada dois ou três meses fazer um backup full</li>
</ol>
<p>É isso. Espero que tenha sido útil. No mínimo pra fazer cair a ficha em mais gente e fazê-las correr atrás de um esquema de backup. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Se alguém se interessar, aqui está o script que eu fiz: <a href="http://images.bauermann.multiply.com/attachment/0/RWkgxgoKCjcAAF8BO4g1/backup-home.sh" title="backup-home.sh">backup-home.sh</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/9/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/9/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=9&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2006/11/26/deixando-de-viver-perigosamente/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>magic sysrq ao resgate!</title>
		<link>http://blog.bauermann.eng.br/2006/11/26/magic-sysrq-ao-resgate/</link>
		<comments>http://blog.bauermann.eng.br/2006/11/26/magic-sysrq-ao-resgate/#comments</comments>
		<pubDate>Sun, 26 Nov 2006 04:19:07 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[português]]></category>
		<category><![CDATA[dica]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://bauermann.wordpress.com/2006/11/26/magic-sysrq-ao-resgate/</guid>
		<description><![CDATA[Putz, ontem fui desligar o notebook e ele travou (!) durante o shutdown. Não sei o q aconteceu, não apareceu nada nos logs, não deu Ooops na tela nem nada&#8230; Eu já ia meter o dedão no power, lamentando o fsck no dia seguinte e a possibilidade de inconsistência no sistema de arquivos (será q [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=8&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Putz, ontem fui desligar o notebook e ele travou (!) durante o shutdown. Não sei o q aconteceu, não apareceu nada nos logs, não deu Ooops na tela nem nada&#8230;</p>
<p>Eu já ia meter o dedão no power, lamentando o fsck no dia seguinte e a possibilidade de inconsistência no sistema de arquivos (será q eu ia perder alguma coisa?) quando lembrei da famosa Magic SysRq.</p>
<p>O problema é que eu nunca tive saco pra decorar aquelas benditas combinações de teclas&#8230;</p>
<p>Tentando combinações aleatoriamente, descobri q Alt+SysRq+x ou Alt+SysRq+z mostra uma ajuda online, com algumas das combinações possíveis! A partir daí, consegui sincronizar os buffers de disco, remontar o HD como somente-leitura e rebootar a máquina com segurança. Ganhei o dia.</p>
<p>Taí uma dica que vale a pena lembrar: nos momentos de desespero, Alt+SysRq+x. Ao invés de umas 3 ou 4 seqüências aleatórias, vc só precisa decorar uma&#8230;</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=8&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2006/11/26/magic-sysrq-ao-resgate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
		<item>
		<title>missão cumprida</title>
		<link>http://blog.bauermann.eng.br/2006/11/26/missao-cumprida/</link>
		<comments>http://blog.bauermann.eng.br/2006/11/26/missao-cumprida/#comments</comments>
		<pubDate>Sun, 26 Nov 2006 03:47:41 +0000</pubDate>
		<dc:creator>bauermann</dc:creator>
				<category><![CDATA[português]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[palestra]]></category>
		<category><![CDATA[segurança]]></category>

		<guid isPermaLink="false">http://bauermann.wordpress.com/2006/11/26/missao-cumprida/</guid>
		<description><![CDATA[Sucesso! Ontem apresentei a palestra de Common Criteria e SELinux no CEFET-SP, e tudo correu muito bem! Achei que eu ia ficar nervoso durante a apresentação e com isso tremer ou gaguejar ou alguma besteira do gênero. Eu fiquei um pouco nervoso antes da apresentação, mas quando comecei e vi que estava tudo dando certo, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=7&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Sucesso! Ontem apresentei a palestra de Common Criteria e SELinux no CEFET-SP, e tudo correu muito bem! Achei que eu ia ficar nervoso durante a apresentação e com isso tremer ou gaguejar ou alguma besteira do gênero. Eu fiquei um pouco nervoso antes da apresentação, mas quando comecei e vi que estava tudo dando certo, relaxei.</p>
<p>Não que tenha sido perfeito: Eu deveria ter colocado algumas piadas e tentado envolver o pessoal. Havia muito conteúdo pra passar em pouco tempo, e acabou ficando meio pesado nesse sentido. Mas também não dá pra querer acertar tudo logo de cara, então pra mim foi ótimo.</p>
<p>O mais legal é que o pessoal prestou atenção! Eu vi pessoas fazendo anotações, e inclusive uma menina filmando! Deu pra perceber isso na hora das perguntas também, pois foram todas bem dentro do assunto, e uma menina inclusive achou uma contradição no que eu falei (realmente, eu havia me expressado mal).</p>
<p>O Leonardo Garcia, outro membro do LTC Brasil, apresentou uma palestra sobre o processador Cell da IBM, Sony e Toshiba. Foi muito bem apresentada, falando desde o papel do processador na evolução dos videogames de nova geração até arquitetura interna, modelos de programação e outras aplicações.</p>
<p>As nossas palestras fizeram parte da 1ª Semana de Telemática do CEFET-SP. Foi muito legal poder contribuir com o evento.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/bauermann.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/bauermann.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bauermann.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bauermann.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bauermann.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bauermann.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bauermann.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bauermann.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bauermann.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bauermann.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bauermann.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bauermann.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bauermann.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bauermann.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bauermann.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bauermann.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.bauermann.eng.br&amp;blog=1857072&amp;post=7&amp;subd=bauermann&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.bauermann.eng.br/2006/11/26/missao-cumprida/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8c6dcc82d435c41472a40f27788da011?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96" medium="image">
			<media:title type="html">bauermann</media:title>
		</media:content>
	</item>
	</channel>
</rss>
