<?xml version="1.0" encoding="utf-8" ?>

<rss version="0.91" >
<channel>
<title>CBlog</title>
<link>http://blog.cboltz.de/</link>
<description></description>
<language>de</language>
<image>
        <url>http://blog.cboltz.de/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: CBlog - </title>
        <link>http://blog.cboltz.de/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>1001 bugs</title>
    <link>http://blog.cboltz.de/archives/62-1001-bugs.html</link>

    <description>
        &lt;p&gt;1001 bugs - das ist eins der Ergebnisse meiner Mitarbeit bei (open)SUSE: Ich habe vorhin meinen &lt;a target=&quot;_blank&quot; href=&quot;https://bugzilla.novell.com/show_bug.cgi?id=714560&quot;&gt;1001. Bugreport&lt;/a&gt; eingereicht. Außerdem werde ich unter dem Motto &amp;quot;1001 bugs - or: the golden rules of bad programming&amp;quot; einen Vortrag auf der &lt;a target=&quot;_blank&quot; href=&quot;http://conference.opensuse.org/&quot;&gt;openSUSE conference&lt;/a&gt; halten. Die genaue Beschreibung meines Vortrags steht unter dem englischen Text. Ich habe schon eine ganze Reihe von Ideen für den Vortrag, bin aber für Vorschläge in den Kommentaren offen. &lt;/p&gt; 
&lt;p&gt;Wer sich für meine Bugzilla-Statistik interessiert, findet unten den Screenshot. Man sieht deutlich, dass ich bei SUSE Linux 9.2 mit dem Betatesten angefangen habe und seitdem die Entwickler mit Bugreports zuschütte ;-)&lt;br /&gt;&lt;/p&gt; 
&lt;p style=&quot;color: #006600;&quot;&gt;1001 bugs - that&#039;s one of the results of my work on (open)SUSE: I just filed my &lt;a target=&quot;_blank&quot; href=&quot;https://bugzilla.novell.com/show_bug.cgi?id=714560&quot;&gt;1001. bugreport&lt;/a&gt;. Besides that, I&#039;ll give a talk &amp;quot;1001 bugs - or: the golden rules of bad programming&amp;quot; at the &lt;a target=&quot;_blank&quot; href=&quot;http://conference.opensuse.org/&quot;&gt;openSUSE conference&lt;/a&gt;. I already have lots of ideas for my talk, however I&#039;m open for proposals - just add a comment here. &lt;/p&gt; 
&lt;p style=&quot;color: #006600;&quot;&gt;If you are interested in my bugzilla statistics, have a look at the screenshot below. You can clearly see that I started beta-testing with SUSE Linux 9.2 and since then overwhelm the developers with bugreports ;-)&lt;br /&gt;&lt;/p&gt; 
&lt;p style=&quot;color: #006600;&quot;&gt;But first I&#039;ll give you the the detailed description of my talk: &lt;br /&gt;&lt;/p&gt;&lt;span style=&quot;color: #006600;&quot;&gt; &lt;/span&gt; 
&lt;blockquote&gt;&lt;strong&gt;1001 bugs - or: the golden rules of bad programming&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;You&#039;ll find lots of books telling you how to write good code. That&#039;s nice and maybe even useful, but boring ;-)&lt;br /&gt;&lt;br /&gt;My talk will give you something more inspiring: the golden rules of bad programming. It also comes with some interesting[tm] things I&#039;ve seen in bugzilla as topping.&lt;br /&gt;&lt;br /&gt;Most examples will be in pseudocode to be understandable for everybody.&lt;br /&gt;&lt;/blockquote&gt; 
&lt;p&gt; &lt;/p&gt; 
&lt;div class=&quot;serendipity_imageComment_center&quot; style=&quot;width: 975px;&quot;&gt; 
&lt;div class=&quot;serendipity_imageComment_img&quot; style=&quot;overflow:auto;&quot;&gt;&lt;!-- s9ymdb:104 --&gt;&lt;img width=&quot;975&quot; height=&quot;718&quot; class=&quot;serendipity_image_center&quot; src=&quot;http://blog.cboltz.de/uploads/1001-bugs-by-cboltz-bugzilla-statistics-cut.png&quot; alt=&quot;&quot;  /&gt;&lt;/div&gt; 
&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Bugzilla report for &amp;quot;reporter contains @cboltz.de&amp;quot;&lt;br /&gt;(the reports for 9.x and some other products are non-public, which means you&#039;ll probably get a lower number)&lt;br /&gt;&lt;/div&gt; 
&lt;/div&gt; 
    </description>
</item>
<item>
    <title>1001 bugs - or: the golden rules of bad programming</title>
    <link>http://blog.cboltz.de/archives/63-1001-bugs-or-the-golden-rules-of-bad-programming.html</link>

    <description>
        &lt;p&gt;&lt;a class=&quot;serendipity_image_link&quot; href=&quot;http://blog.cboltz.de/uploads/1001-bugs-or-golden-rules-of-bad-programming.pdf&quot;&gt;&lt;img width=&quot;200&quot; height=&quot;150&quot; class=&quot;serendipity_image_right&quot; src=&quot;http://blog.cboltz.de/uploads/1001-bugs-or-golden-rules-of-bad-programming.mini.pdf.png&quot; alt=&quot;&quot;  /&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;If you missed my talk at the openSUSE conference or want to see the slides (including notes) again - here we are:&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://blog.cboltz.de/uploads/1001-bugs-or-golden-rules-of-bad-programming.pdf&quot;&gt;1001 bugs - or: the golden rules of bad programming as PDF&lt;/a&gt;&lt;br /&gt;(If you need an editable LibreOffice file, just drop me a note.)&lt;/p&gt; 
    </description>
</item>
<item>
    <title>Die BESTEN der BESTEN der BESTEN, SIR! </title>
    <link>http://blog.cboltz.de/archives/61-Die-BESTEN-der-BESTEN-der-BESTEN,-SIR!.html</link>

    <description>
        &lt;p&gt;&lt;!-- s9ymdb:103 --&gt;&lt;/p&gt;Gerade gesehen:&lt;br /&gt; 
&lt;p&gt;&lt;img width=&quot;470&quot; height=&quot;189&quot; alt=&quot;&amp;quot;Memory allocation failure&amp;quot; auf blog.fefe.de&quot; src=&quot;http://blog.cboltz.de/uploads/blog.fefe.de-memory-allocation-failure.png&quot; class=&quot;serendipity_image_center&quot; /&gt; &lt;/p&gt; 
&lt;p&gt;*SCNR*&lt;/p&gt; 
&lt;p&gt;(Titel geguttenborgt von Fefe)&lt;br /&gt;&lt;/p&gt; 
    </description>
</item>
<item>
    <title>patch2mail 1.1</title>
    <link>http://blog.cboltz.de/archives/60-patch2mail-1.1.html</link>

    <description>
        &lt;p&gt;(nur für Admins interessant, daher nur auf englisch)&lt;/p&gt; 
&lt;p&gt;&lt;font color=&quot;#006600&quot;&gt;I just released patch2mail 1.1 which will send you a mail when updates are available for your openSUSE system.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font color=&quot;#006600&quot;&gt;Changes:&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
&lt;li&gt;&lt;font color=&quot;#006600&quot;&gt;patch2mail will now also send notifications for package updates, not only for patches (configurable in /etc/sysconfig/patch2mail)&lt;br /&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;li&gt;&lt;font color=&quot;#006600&quot;&gt;include a note about package manager updates (they can hide other updates)&lt;br /&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;li&gt;&lt;font color=&quot;#006600&quot;&gt;older distributions are still supported of course - just make sure to install the package for the correct distribution. However the new features listed above are only supported on 11.1 and newer.&lt;br /&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;font color=&quot;#006600&quot;&gt; You can &lt;a href=&quot;http://software.opensuse.org/search?q=patch2mail&amp;amp;baseproject=ALL&amp;amp;include_home=true&quot; target=&quot;_blank&quot;&gt;download patch2mail&lt;/a&gt; from the openSUSE build service.&lt;br /&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font color=&quot;#006600&quot;&gt;I have also submitted the new version to Factory (SR 74130).&lt;/font&gt; &lt;br /&gt;&lt;/p&gt; 
    </description>
</item>
<item>
    <title>Spezieller Alias - und ein neues Zuhause für apparmor.vim</title>
    <link>http://blog.cboltz.de/archives/59-Spezieller-Alias-und-ein-neues-Zuhause-fuer-apparmor.vim.html</link>

    <description>
        &lt;p&gt;Erstmal ein kleines Schnipsel aus meiner Konsole:&lt;/p&gt; 
&lt;p&gt;&lt;span style=&quot;color: #006600;&quot;&gt;Let&#039;s start with a sniplet from my console:&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; 
&lt;pre&gt;cb@geeko:~/postfixadmin&amp;gt; svn help | head -n1
usage: svn &amp;lt;subcommand&amp;gt; [options] [args]
cb@geeko:~/postfixadmin&amp;gt; cd /home/cb/apparmor
cb@geeko:~/apparmor&amp;gt; svn help | head -n1
Bazaar 2.0.5 -- a free distributed version-control tool&lt;/pre&gt; 
&lt;p&gt; &lt;/p&gt; 
&lt;p&gt;Mein SVN ist nicht verrückt geworden ;-) - ich habe nur ein kleines Script vorgelagert, das man am Besten als Verzeichnis-abhängigen Alias bezeichnen könnte. Wenn ich im Verzeichnis ~/apparmor bin, wird  aus &amp;quot;svn&amp;quot; wie durch Geisterhand ein &amp;quot;bzr&amp;quot;-Aufruf. Das Script &lt;font face=&quot;courier new,courier,monospace&quot;&gt;~/bin/svn&lt;/font&gt; ist nicht wirklich kompliziert:&lt;/p&gt; 
&lt;p&gt;&lt;span style=&quot;color: #006600;&quot;&gt;My SVN didn&#039;t go crazy ;-) - I just prepended a small script you could best describe as directory-dependent alias. When I&#039;m working in ~/apparmor, it magically replaces &amp;quot;svn&amp;quot; with a &amp;quot;bzr&amp;quot; call. The script &lt;/span&gt;&lt;font face=&quot;courier new,courier,monospace&quot; style=&quot;color: #006600;&quot;&gt;~/bin/svn&lt;/font&gt;&lt;span style=&quot;color: #006600;&quot;&gt; is not really complicated:&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; 
&lt;pre&gt;#!/bin/bash
command=/usr/bin/svn&amp;#160; # use the full path. Just &quot;svn&quot; will result in an endless loop!
pwd | grep -q ^/home/cb/apparmor &amp;amp;&amp;amp; command=/usr/bin/bzr
exec $command &quot;$@&quot;&lt;/pre&gt; 
&lt;p&gt;Warum ich das Ganze brauche? Ich habe seit kurzem Commit-Rechte bei AppArmor, damit apparmor.vim 
endlich ein offizielles Zuhause hat. Außerdem habe ich schon ein paar 
Profil-Updates commited. (Keine Angst: vom C-Code werde ich mich 
fernhalten ;-)&lt;/p&gt; 
&lt;p&gt; &lt;/p&gt; 
&lt;p&gt;AppArmor verwendet Bazaar für die Versionskontrolle, und das ist glücklicherweise Parameter-kompatibel zu SVN (zumindest bei dem, was ich brauche) und erspart mir so die Umgewöhnung an noch eine Versionsverwaltung. &lt;/p&gt; 
&lt;p&gt;Nebenbei: Für Bazaar musste ich mir einen Launchpad-Zugang einrichten, und habe natürlich[tm] auch gleich einen &lt;a href=&quot;https://bugs.launchpad.net/bugs/747695&quot; target=&quot;_blank&quot;&gt;Bug in Launchpad&lt;/a&gt; gefunden ;-)&lt;br /&gt;&lt;/p&gt; 
&lt;p style=&quot;color: #006600;&quot;&gt;Why do I need this? Since a short while, I have commit access for AppArmor. This finally gives apparmor.vim an official home. I also commited some profile updates. (Don&#039;t worry - I&#039;ll stay away from the C code ;-)&lt;/p&gt; 
&lt;p style=&quot;color: #006600;&quot;&gt;AppArmor uses Bazaar as version control system, which is luckily parameter compatible to SVN (at least for the commands I use). This means I don&#039;t have to keep another version control system in mind.&lt;/p&gt; 
&lt;p style=&quot;color: #006600;&quot;&gt;BTW: For Bazaar I had to create a Launchpad account, and of course[tm] found a &lt;a href=&quot;https://bugs.launchpad.net/bugs/747695&quot; target=&quot;_blank&quot;&gt;Launchpad bug&lt;/a&gt; instantly ;-)&lt;/p&gt; 
    </description>
</item>
<item>
    <title>Releases!</title>
    <link>http://blog.cboltz.de/archives/58-Releases!.html</link>

    <description>
        &lt;p&gt;Gleich zwei Releases in einem Blog-Eintrag:&lt;/p&gt; 
&lt;ul&gt; 
&lt;li&gt;gerade eben habe ich &lt;a target=&quot;_blank&quot; href=&quot;http://sf.net/projects/postfixadmin&quot;&gt;PostfixAdmin 2.3.3&lt;/a&gt; freigegeben - ein reines Bugfix-Release, für Details verweise ich auf das &lt;a href=&quot;http://postfixadmin.svn.sourceforge.net/viewvc/postfixadmin/tags/postfixadmin-2.3.3/CHANGELOG.TXT&quot;&gt;Changelog&lt;/a&gt; ;-)&lt;/li&gt; 
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://software.opensuse.org&quot;&gt;openSUSE 11.4&lt;/a&gt; wurde am letzten Donnerstag freigegeben - mit vielen neuen Versionen, Features und, was mich besonders freut, mit AppArmor 2.5.1 and funktionierenden AppArmor-Utils :-) Details gibt es im &lt;a target=&quot;_blank&quot; href=&quot;http://news.opensuse.org/2011/03/10/opensuse-11-4/&quot;&gt;offiziellen openSUSE Release Announcement&lt;/a&gt;.&lt;/li&gt; 
&lt;/ul&gt;&lt;span style=&quot;color: #009900;&quot;&gt;One blog post, two releases:
&lt;/span&gt; 
&lt;ul&gt; 
&lt;li style=&quot;color: #009900;&quot;&gt;I just released &lt;a target=&quot;_blank&quot; href=&quot;http://sf.net/projects/postfixadmin&quot;&gt;PostfixAdmin 2.3.3&lt;/a&gt; - a pure bugfix release, see the &lt;a href=&quot;http://postfixadmin.svn.sourceforge.net/viewvc/postfixadmin/tags/postfixadmin-2.3.3/CHANGELOG.TXT&quot;&gt;Changelog&lt;/a&gt; for details;-)&lt;/li&gt; 
&lt;li style=&quot;color: #009900;&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://software.opensuse.org/&quot;&gt;openSUSE 11.4&lt;/a&gt; was released last thursday - with lots of new versions, features, and, most pleasant for me, with AppArmor 2.5.1 and working AppArmor utilities :-) See the &lt;a target=&quot;_blank&quot; href=&quot;http://news.opensuse.org/2011/03/10/opensuse-11-4/&quot;&gt;official openSUSE Release Announcement&lt;/a&gt; for details.&lt;/li&gt; 
&lt;/ul&gt; 
    </description>
</item>
<item>
    <title>Keysigning made easy</title>
    <link>http://blog.cboltz.de/archives/57-Keysigning-made-easy.html</link>

    <description>
        &lt;p&gt;(... more or less ;-)&lt;br /&gt;&lt;/p&gt; 
&lt;p&gt;Auf der openSUSE conference gab es neben vielen interessanten Vorträgen und noch mehr netter Leute aus der openSUSE community eine Keysigning-Party. Damit nicht jeder von ganz vorn anfangen muss, hier mein HowTo zum schnellen Signieren der Keys mit caff. Da die &amp;quot;Amtssprache&amp;quot; auf der conference englisch war, gibt es dieses HowTo auch nur in englisch ;-)&lt;/p&gt; 
&lt;p&gt;At the openSUSE conference I heard many interesting talks and met lots of nice people from the openSUSE community. I also took part at the keysigning party. To avoid that everybody has to start from scratch, here is a HowTo sign keys efficiently with caff.&lt;/p&gt; 
&lt;h2&gt;Preparation&lt;/h2&gt; 
&lt;p&gt;Install caff. It&#039;s included in the package &amp;quot;signing-party&amp;quot; in the home:worldcitizen repo and requires perl-GnuPG-Interface and several other packages from devel:languages:perl.&lt;/p&gt; 
&lt;pre&gt;zypper ar -f http://download.opensuse.org/repositories/devel:/languages:/perl/openSUSE_11.3/ devel:languages:perl
zypper ar -f http://download.opensuse.org/repositories/home:/worldcitizen/openSUSE_11.3 home:worldcitizen
zypper in signing-party&lt;/pre&gt; 
&lt;p&gt;caff uses postfix to send out the signed keys (or whatever listens on localhost:25), therefore you have to make sure to have&amp;#160; a working config. Many mailservers reject mails from dialup hosts nowadays. You have to setup postfix to send mails using your provider&#039;s mail relay (usually needs SMTP Auth), and you have to make sure it converts your local &amp;quot;geeko@localhost&amp;quot; sender with a working mail address. You can do this with YaST or (as I did) edit /etc/postfix/main.cf directly:&lt;/p&gt; 
&lt;pre&gt;relayhost = mailserver.example.com
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
sender_canonical_maps = hash:/etc/postfix/sender_canonical&lt;/pre&gt; 
&lt;p&gt;Restart postfix after this changes (&amp;quot;rcpostfix restart&amp;quot;). &lt;br /&gt;&lt;/p&gt; 
&lt;p&gt;sasl_passwd must contain a line like this:&lt;br /&gt;&lt;/p&gt; 
&lt;pre&gt;# servername&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SMTP Auth username&amp;#160;&amp;#160; password
mailserver.example.com user@example.com&amp;#160;&amp;#160;&amp;#160;&amp;#160; topsecret
&lt;/pre&gt; 
&lt;p&gt;sender_cannonical looks like this: (host.name is the output of &amp;quot;hostname -f&amp;quot;, geeko is your username)&lt;br /&gt;&lt;/p&gt; 
&lt;pre&gt;geeko@host.name user@example.com
&lt;/pre&gt; 
&lt;p&gt;Then run postmap - postfix always reads the binary form (*.db) of the files, not the plain text version.&lt;br /&gt;&lt;/p&gt; 
&lt;pre&gt;postmap sasl_passwd
postmap sender_cannonical
&lt;/pre&gt; 
&lt;p&gt;If unsure, send a test mail to yourself (&amp;quot;echo foo | mail -s testmail you@example.com&amp;quot;) and check if the sender address is correct. &lt;br /&gt;&lt;/p&gt; 
&lt;p&gt;Now you have to configure caff. Run &amp;quot;caff&amp;quot; once to generate the configuration file ~/.caffrc, then edit at least the following settings:&lt;/p&gt; 
&lt;pre&gt;$CONFIG{&#039;owner&#039;}
$CONFIG{&#039;email&#039;}
$CONFIG{&#039;keyid&#039;}&lt;/pre&gt; 
&lt;h2&gt;Signing the keys&lt;/h2&gt; 
&lt;p&gt;I always sign the fingerprints instead of the key ids. This has the advantage that I don&#039;t have to compare the fingerprints manually.&lt;/p&gt; 
&lt;pre&gt;cp ksp-opensuse-conf-10.txt keys-to-sign.txt
vi keys-to-sign.txt&lt;/pre&gt; 
&lt;p&gt; &lt;/p&gt; 
&lt;p&gt;Remove all keys you do not want to sign (those from people that missed the keysigning party or with invalid ID cards) from keys-to-sign.txt. Also remove your own key from the list, it&#039;s pointless to sign it.&lt;/p&gt; 
&lt;p&gt;If people gave you additional keys on a paper strip, create a list of their key ids and save it as additional-keys.txt. Then run&lt;/p&gt; 
&lt;p&gt; &lt;/p&gt; 
&lt;p&gt; &lt;/p&gt; 
&lt;pre&gt;gpg --recv-keys `cat additional-keys`
echo &quot;--- additional keys ---&quot; &amp;gt;&amp;gt; keys-to-sign.txt
LANG=C gpg --fingerprint `cat additional-keys ` &amp;gt;&amp;gt; keys-to-sign.txt&lt;/pre&gt; 
&lt;p&gt;After that, open keys-to-sign.txt and check the fingerprint of the newly added keys. This is important because they were not included in the original checksum of the ksp*.txt file.&lt;/p&gt; 
&lt;p&gt;Then create a list of fingerprints to sign:&lt;/p&gt; 
&lt;pre&gt;grep &quot;Key fingerprint&quot; keys-to-sign.txt  | sed &#039;s/.*= // ; s/ //g&#039; &amp;gt; fingerprints-to-sign.txt&lt;/pre&gt; 
&lt;p&gt;For some reason, caff failed to download the keys for me. Therefore I did it myself. (Replace /home/cb/.caff/ with the tempdir you use for caff in the following command)&lt;br /&gt;&lt;/p&gt; 
&lt;pre&gt;gpg --homedir=/home/cb/.caff/gnupghome --secret-keyring /home/cb/.gnupg/secring.gpg \
&amp;#160;&amp;#160;&amp;#160; --recv-keys `cat fingerprints-to-sign.txt`
&lt;/pre&gt; 
&lt;p&gt;After that, you can finally sign the keys and mail them to their owners: &lt;br /&gt;&lt;/p&gt; 
&lt;pre&gt;caff `cat fingerprints-to-sign.txt`&lt;/pre&gt; 
&lt;p&gt;To be sure nothing goes wrong, check against your printed list from the keysigning party that you really want to sign the key. To save the signature, type &amp;quot;save&amp;quot; at the gpg&amp;gt; prompt.&lt;/p&gt; 
&lt;p&gt;That&#039;s it. You should now have produced a mail flood ;-) to the owners of all the keys you signed.&lt;/p&gt; 
    </description>
</item>

</channel>
</rss>

