<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="/templates/default/atom.css" type="text/css" ?>

<feed version="0.3" 
   xmlns="http://purl.org/atom/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/">
    <link href="http://www.confuego.org/rss.php?version=atom0.3" rel="service.feed" title="Lemma's blog" type="application/x.atom+xml" />
    <link href="http://www.confuego.org/"                        rel="alternate"    title="Lemma's blog" type="text/html" />
    <link href="http://www.confuego.org/rss.php?version=2.0"     rel="alternate"    title="Lemma's blog" type="application/rss+xml" />
    <title mode="escaped" type="text/html">Lemma's blog</title>
    <tagline mode="escaped" type="text/html"></tagline>
    <id>http://www.confuego.org/</id>
    <modified>2009-09-02T02:49:34Z</modified>
    <generator url="http://www.s9y.org/" version="1.4.1">Serendipity 1.4.1 - http://www.s9y.org/</generator>
    <dc:language>en</dc:language>
    <info mode="xml" type="text/html">
        <div xmlns="http://www.w3.org/1999/xhtml">You are viewing an ATOM formatted XML site feed. Usually this file is inteded to be viewed in an aggregator or syndication software. If you want to know more about ATOM, please visist <a href="http://atomenabled.org/">Atomenabled.org</a></div>
    </info>

    <entry>
        <link href="http://www.confuego.org/archives/25-Call-for-opinion-Widget-for-entering-times.html" rel="alternate" title="Call for opinion: Widget for entering times" type="text/html" />
        <author>
            <name>Michael Leupold</name>
                    </author>
    
        <issued>2009-08-29T12:52:07Z</issued>
        <created>2009-08-29T12:52:07Z</created>
        <modified>2009-09-02T02:49:34Z</modified>
        <wfw:comment>http://www.confuego.org/wfwcomment.php?cid=25</wfw:comment>
        <slash:comments>33</slash:comments>
        <wfw:commentRss>http://www.confuego.org/rss.php?version=atom0.3&amp;type=comments&amp;cid=25</wfw:commentRss>
    
        <id>http://www.confuego.org/archives/25-guid.html</id>
        <title mode="escaped" type="text/html">Call for opinion: Widget for entering times</title>
        <content type="application/xhtml+xml" xml:base="http://www.confuego.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>I recently developed (or rather redeveloped) a widget for entering times. It's basically a remake of the one you use in KOrganizer's &quot;new event&quot; window if you choose the starting or the ending time of an event (with a combobox-style popup to choose predefined times with a 15 minute range).</p> 
<p>While writing such a widget there's a lot of things to consider, eg. how to check the input, which input formats to allow and what type of input to refuse. Just like the old widget the new one shows times in the time format you configured in your systemsettings. Additionally I made it accept times in plain 24h format (eg. 16:45) and military format (eg. 1645) as that's basically what the old widget already did.</p> 
<p>Now as I live in a country where 24h format is regular, I have trouble understanding how users with a 12h time format enter times or rather what they'd expect the widget to do if they enter times. Luckily David Jarvie, the KAlarm developer, brought up the issue of &quot;ambiguous&quot; times, ie. times the widget could interpret in different ways. Now as I'm still unsure about how such inputs should be handled I'd like to get some 12h format user opinions on it.<br /></p> 
<h3>What would you expect the widget to do, if you...</h3> 
<ol> 
<li><strong>... enter &quot;12:25&quot;</strong></li> 
<ol type="a"> 
<li>Accept the input and resolve it to &quot;12:25 am&quot;</li> 
<li>Accept the input and resolve it to &quot;12:25 pm&quot;</li> 
<li>Reject the input unless &quot;am&quot; or &quot;pm&quot; is appended</li> 
<li>Something else (please describe)</li> 
</ol> 
<li><strong>... enter &quot;08:37&quot;</strong></li> 
<ol type="a"> 
<li>Accept the input and resolve it to &quot;08:37 am&quot;</li> 
<li>Accept the input and resolve it to &quot;08:37 pm&quot;</li> 
<li>Reject the input unless &quot;am&quot; or &quot;pm&quot; is appended</li> 
<li>Something else (please describe)</li> 
</ol> 
<li><strong>... enter &quot;1245&quot;</strong></li> 
<ol type="a"> 
<li>Accept the input and resolve it to &quot;12:45 am&quot;</li> 
<li>Accept the input and resolve it to &quot;12:45 pm&quot;</li> 
<li>Reject the input unless &quot;am&quot; or &quot;pm&quot; is appended</li> 
<li>Something else (please describe)</li> 
</ol> 
<li><strong>... enter &quot;0913&quot;</strong></li> 
<ol type="a"> 
<li>Accept the input and resolve it to &quot;09:13 am&quot;</li> 
<li>Accept the input and resolve it to &quot;09:13 pm&quot;</li> 
<li>Reject the input unless &quot;am&quot; or &quot;pm&quot; is appended</li> 
<li>Something else (please describe)</li> 
</ol> 
</ol> 
<p>Please keep in mind that while I will consider your input thoroughly this shouldn't be understood as a &quot;poll as to how it will be done&quot;.</p> 
<p>I'm looking forward to hearing from you!<br /></p> 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://www.confuego.org/archives/24-Prototypical-XSLT-support-for-Konqueror.html" rel="alternate" title="Prototypical XSLT support for Konqueror" type="text/html" />
        <author>
            <name>Michael Leupold</name>
                    </author>
    
        <issued>2009-08-08T09:06:51Z</issued>
        <created>2009-08-08T09:06:51Z</created>
        <modified>2009-08-10T19:47:16Z</modified>
        <wfw:comment>http://www.confuego.org/wfwcomment.php?cid=24</wfw:comment>
        <slash:comments>7</slash:comments>
        <wfw:commentRss>http://www.confuego.org/rss.php?version=atom0.3&amp;type=comments&amp;cid=24</wfw:commentRss>
    
        <id>http://www.confuego.org/archives/24-guid.html</id>
        <title mode="escaped" type="text/html">Prototypical XSLT support for Konqueror</title>
        <content type="application/xhtml+xml" xml:base="http://www.confuego.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>I've been working with DocBook XML content a lot lately and found it quite inconvenient that I had to transform it to HTML before being able to view it. As furthermore Konqueror (resp. KHTML) is still lacking support for embedded XSLT stylesheets, I started to poke at it. As a preliminary result I present you an XSLT plugin for Konqueror.</p> 
<p>The mechanism is actually quite (mostly) simple:</p> 
<ul> 
<li>Check if the current document either has an &lt;?xml-stylesheet?&gt; directive or is of known type (currently only DocBook 5.0)</li> 
<li>Load the respective styles (and try to avoid Xml eXternal Entity vulnerabilities)<br /></li> 
<li>Pipe the document through <a href="http://www.xmlsoft.org/">libxml and libxslt with libexslt</a> (unfortunately <a href="http://doc.trolltech.com/4.6-snapshot/qtxmlpatterns.html">QtXmlPatterns</a> doesn't support everything needed by DB yet)</li> 
<li>Push the resulting file back into the KHTMLPart</li> 
</ul> 
<h4>Examples</h4> 
<p>This is what <a href="http://www.w3.org/Style/XSL/Overview.xml">http://www.w3.org/Style/XSL/Overview.xml</a> looks like with XSLT enabled (using the given &lt;?xml-stylesheet?&gt;):</p> 
<h2><a class="serendipity_image_link" href="http://www.confuego.org/uploads/screenshots/automatic-xslt.jpeg" target="_blank"><!-- s9ymdb:7 --><img width="110" height="99" class="serendipity_image_center" style="border: 0px none ; padding-left: 5px; padding-right: 5px;" src="http://www.confuego.org/uploads/screenshots/automatic-xslt.serendipityThumb.jpeg" /></a></h2><!-- s9ymdb:7 --><!-- s9ymdb:7 --><!-- s9ymdb:7 -->This is what <a href="http://xslt-process.sourceforge.net/docbook-example.xml">http://xslt-process.sourceforget.net/docbook-example.xml</a> looks like (using the stylesheet based on the known file-type):











<p><!-- s9ymdb:8 --><a class="serendipity_image_link" href="http://www.confuego.org/uploads/screenshots/guessing-doctype.jpeg" target="_blank"><!-- s9ymdb:8 --><img width="110" height="99" class="serendipity_image_center" style="border: 0px none ; padding-left: 5px; padding-right: 5px;" src="http://www.confuego.org/uploads/screenshots/guessing-doctype.serendipityThumb.jpeg" /></a> </p> 
<h4>Todo&#160;</h4> 
<p> </p> 
<p>Unfortunately this is still just a prototype. It has several unresolved issues and is possibly <font size="2" style="color: #000000;"><u><strong>INSECURE</strong></u></font>:</p> 
<ul> 
<li>Konqueror may crash on closing (it sometimes does for me)</li> 
<li>Level of integration is pretty low. You still see the raw XML content before it switches to the transformed HTML. I still have to figure out if this is suitable as a plugin, if I should create some XML KPart or if this should be integrated into KHTML<br /></li> 
<li>No XInclude support</li> 
<li>Support for more XML schemata<br /></li> 
<li>Possibly vulnerable to XXE (XML eXternal Entity) attacks which basically means a remote XSL could import a file on your harddrive</li> 
</ul>That said, interested developers can find the current version <a href="http://websvn.kde.org/trunk/playground/network/khtmlxsltplugin">here</a>.<!-- s9ymdb:7 --> Please be sure you understand the security risks installing this plugin bears before you proceed!<br /> 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://www.confuego.org/archives/23-KAppTemplateCli-Quick-application-templates-for-the-command-line.html" rel="alternate" title="KAppTemplateCli: Quick application templates for the command-line" type="text/html" />
        <author>
            <name>Michael Leupold</name>
                    </author>
    
        <issued>2009-07-28T10:11:29Z</issued>
        <created>2009-07-28T10:11:29Z</created>
        <modified>2009-07-30T23:57:49Z</modified>
        <wfw:comment>http://www.confuego.org/wfwcomment.php?cid=23</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://www.confuego.org/rss.php?version=atom0.3&amp;type=comments&amp;cid=23</wfw:commentRss>
    
        <id>http://www.confuego.org/archives/23-guid.html</id>
        <title mode="escaped" type="text/html">KAppTemplateCli: Quick application templates for the command-line</title>
        <content type="application/xhtml+xml" xml:base="http://www.confuego.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>While coding I often have the need to create small sample-apps for debugging some library-code I'm writing or for figuring out what library code others have written does. Usually creating such a sample application not only involve creating and compiling some main.cpp as in a KDE context you also need some KAboutData, KComponentData as well as some basic CMakeLists.txt to actually be able to compile it.</p> 
<p>While I could of course just construct some directories containing templates and just copy them to wherever I need it, I've lately been enjoying the power of KAppTemplate. This nifty little application uses pre-defined templates for various kinds of projects like KDE4 Applications, Qt4 Applications, Plasmoids and even PyKDE or KDERuby apps and a graphical assistant to get you going.</p> 
<p>Now, I like doing stuff on the command-line and don't use all of the features KAppTemplate gives me (eg. filling the author or version part of the assistant is not needed of this particular use-case). So I decided to rip the template handling part of KAppTemplate to create my own little KAppTemplateCli to fit my needs.</p> 
<h2>Basic usage</h2> 
<h3>Listing available templates <br /></h3> 
<pre class="brush: bash;">lemma@quechua:/tmp/tests$ kapptemplatecli --list
C++/KDE                                                     
  kapp4                - KDE 4 GUI Application
  plasmoid             - Plasma Applet Template
  runner               - Plasma Runner Template
  kpartapp             - KDE 4 KPart Application
  akonadiresource      - Akonadi Resource Template
  akonadiserializer    - Akonadi Serializer Template

C++/No GUI (CMake)
  cmake_plaincpp       - Simple CMake-based C++ application

C++/Qt (cmake)
  cmake_qt4core        - Qt4 CMake Core application
  cmake_qt4gui         - Qt4 CMake Gui application
  cmake_qt4core_qtest  - Qt4 CMake QTest Core application

[... stripped ...]
</pre> 
<h3>Showing template information</h3> 
<pre class="brush: bash;">lemma@quechua:/tmp/tests$ kapptemplatecli --info=kapp4
Category   : C++/KDE
Basename   : kapp4
Name       : KDE 4 GUI Application
Description: KDE4 simple template based on CMake, inherits from XMLGuiWindow and demonstrates how to use KConfig XT</pre> 
<h3>Creating an application from a template <br /></h3> 
<pre class="brush: bash;">lemma@quechua:/tmp/tests$ kapptemplatecli --template=kapp4 MyTest
lemma@quechua:/tmp/tests$ ls mytest
CMakeLists.txt  doc  icons  README  src
lemma@quechua:/tmp/tests$ mkdir mytest/build &amp;&amp; cd mytest/build &amp;&amp; cmake .. &amp;&amp; make
lemma@quechua:/tmp/tests/mytest/build$ src/mytest
</pre> 
<h2>Download location &amp; notes</h2> 
<ul> 
<li>You can get KAppTemplateCli from: <a href="http://websvn.kde.org/trunk/playground/devtools/kapptemplatecli">http://websvn.kde.org/trunk/playground/devtools/kapptemplatecli</a></li> 
<li>You'll need kdesdk and/or kdevplatform installed to get some templates it can use.</li> 
<li>KAppTemplateCli is not mature. Use at your own risk!</li> 
<li>It's not meant to be the same as <a href="http://www.granroth.org/kapptemplate">legacy KAppTemplate</a> by Kurt Granroth (which is command-line but takes an assistant-like approach like KAppTemplate)<br /></li> 
</ul> 
<p><strong>Enjoy.</strong><br /></p> 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://www.confuego.org/archives/22-Needed-Singaporean-and-Macanese-time-formats.html" rel="alternate" title="Needed: Singaporean and Macanese time formats" type="text/html" />
        <author>
            <name>Michael Leupold</name>
                    </author>
    
        <issued>2009-07-22T16:39:30Z</issued>
        <created>2009-07-22T16:39:30Z</created>
        <modified>2009-07-24T16:50:42Z</modified>
        <wfw:comment>http://www.confuego.org/wfwcomment.php?cid=22</wfw:comment>
        <slash:comments>4</slash:comments>
        <wfw:commentRss>http://www.confuego.org/rss.php?version=atom0.3&amp;type=comments&amp;cid=22</wfw:commentRss>
    
        <id>http://www.confuego.org/archives/22-guid.html</id>
        <title mode="escaped" type="text/html">Needed: Singaporean and Macanese time formats</title>
        <content type="application/xhtml+xml" xml:base="http://www.confuego.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>While testing some code that formats a time in the user's preferred format, I stumbled upon invalid formats in the Singaporean and Macanese time formats. Unfortunately I don't know the correct formats, so that's where I <strong>need your help</strong>. If you live in any of the 2 areas, please send me information on how times are usually formatted.</p> 
<p>It would suffice if you send me the time &quot;19:00&quot; in local format and additionally specify:</p> 
<ul> 
<li>if your locale uses 24h or 12h (AM/PM) formatting</li> 
<li>whether times with a value for hour less than 10 are written with a leading zero (ie. &quot;07:00&quot; or &quot;7:00&quot;).</li> 
</ul>Thanks!<br /> 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://www.confuego.org/archives/21-fd.o-secret-storage-project.html" rel="alternate" title="fd.o secret storage project" type="text/html" />
        <author>
            <name>Michael Leupold</name>
                    </author>
    
        <issued>2009-07-15T22:38:06Z</issued>
        <created>2009-07-15T22:38:06Z</created>
        <modified>2009-07-20T00:14:15Z</modified>
        <wfw:comment>http://www.confuego.org/wfwcomment.php?cid=21</wfw:comment>
        <slash:comments>19</slash:comments>
        <wfw:commentRss>http://www.confuego.org/rss.php?version=atom0.3&amp;type=comments&amp;cid=21</wfw:commentRss>
    
        <id>http://www.confuego.org/archives/21-guid.html</id>
        <title mode="escaped" type="text/html">fd.o secret storage project</title>
        <content type="application/xhtml+xml" xml:base="http://www.confuego.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>After having hinted at it now and then, I can finally gladly announced that we (GNOME Keyring + KDE Wallet) managed to kick off a joint <a href="http://www.freedesktop.org">freedesktop.org</a> project with the goal of creating a common infrastructure (or more technically: protocol) for managing passwords and other secret values.</p> 
<p>I expect several benefits for our users:<br /></p> 
<ul> 
<li>They will be able to securely store their secrets. Even if they use a mix of different applications (GNOME, KDE even plain Qt) they will only have one background service to authenticate to.</li> 
<li>They will be able to switch your browser without having to reenter your passwords if the browser supports the API - unfortunately no word from Mozilla if they're interested.</li> 
</ul> 
<p>If you're an application developer, don't worry. While I expect a new client-side API (which I imagine to be more OO style than KWallet::Wallet), I'll keep an eye on providing something the current class can wrap so even applications using the old API will be able to use the new system.</p> 
<p>In case you're interested in joining the drafting process, you can find the current working draft as well as more information inside the <a href="http://www.freedesktop.org/wiki/Specifications/secret-storage-spec">freedesktop wiki</a>.</p> 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://www.confuego.org/archives/20-Bugsquad-logo-contest.html" rel="alternate" title="Bugsquad logo contest" type="text/html" />
        <author>
            <name>Michael Leupold</name>
                    </author>
    
        <issued>2009-04-22T20:49:49Z</issued>
        <created>2009-04-22T20:49:49Z</created>
        <modified>2009-04-27T18:34:22Z</modified>
        <wfw:comment>http://www.confuego.org/wfwcomment.php?cid=20</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://www.confuego.org/rss.php?version=atom0.3&amp;type=comments&amp;cid=20</wfw:commentRss>
    
        <id>http://www.confuego.org/archives/20-guid.html</id>
        <title mode="escaped" type="text/html">Bugsquad logo contest</title>
        <content type="application/xhtml+xml" xml:base="http://www.confuego.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>Having gathered a quite nicely numbered group of core-triagers during the last 12 months we thought it was time to reflect that by putting together a nice website for collecting some bits of our wisdom and promoting our triage and krush events. This is currently still a work-in-progress but one thing we can't do properly ourselves is to design a logo.</p> 
<p>Therefore I'm hereby announcing the Bugsquad logo contest. Details:<br /></p> 
<ul> 
<li>The logo is going to be used on a site using the Oxygen website scheme (like <a href="http://techbase.kde.org">http://techbase.kde.org</a>)</li> 
<li>It wouldn't hurt if it looked good on a T-Shirt <img src="http://www.confuego.org/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /></li> 
<li>More information about what we do can be found <a href="https://techbase.kde.org/Contribute/Bugsquad">here</a> and gathered on our <a href="irc://irc.freenode.net/#kde-bugs">IRC channel</a></li> 
<li>Send your submission to <a href="mailto:bugsquad@kde.org">bugsquad@kde.org</a></li> 
<li>Deadline is the <em>25th of May</em></li> 
</ul><em>Unfortunately we're not sure if we can provide a prize yet. </em>If you decide to join the competition you're currently only in for the fame (and probably a beer at Akademy). I'll keep you posted if we come up with something.<br /> 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://www.confuego.org/archives/19-Bugsquad-Plasma-triage.html" rel="alternate" title="Bugsquad Plasma triage" type="text/html" />
        <author>
            <name>Michael Leupold</name>
                    </author>
    
        <issued>2009-04-22T20:20:52Z</issued>
        <created>2009-04-22T20:20:52Z</created>
        <modified>2009-04-27T18:34:21Z</modified>
        <wfw:comment>http://www.confuego.org/wfwcomment.php?cid=19</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.confuego.org/rss.php?version=atom0.3&amp;type=comments&amp;cid=19</wfw:commentRss>
    
        <id>http://www.confuego.org/archives/19-guid.html</id>
        <title mode="escaped" type="text/html">Bugsquad Plasma triage</title>
        <content type="application/xhtml+xml" xml:base="http://www.confuego.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>Bugsquad's 1-year reinstatement celebration was a blast. We managed to triage around <strong>330</strong> KMail bugs! Without investigating any further I guess that's a new record for one of our Bug Days. Thanks go out to everyone in the party crowd (Blauzahl, FiNeX, dtritscher, lytenyn, jtamate, Dario_Andres, CondorDes and Ruchir - who apparently partied harder than anyone else <img src="http://www.confuego.org/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" />).</p> 
<p>This weekend we'll be having a closer look at Plasma's bugs. After having a slow start during KDE 4.0 and 4.1 Plasma has hit the <a href="http://bugs.kde.org">bugs.kde.org</a>&#160; shelf with the 4.2 release and is currently approaching the 600 bug-report mark. Time to have a closer look and weed out the duplicate and invalid ones - especially now the hardening phase for KDE 4.3 is just around the corner. So instead of making the Plasma developers wade the Bugzilla swamps all by themselves we thought we'd lend them a hand to make KDE 4.3's bling even blingier, nice and stable.
</p> 
<p>As more eyes make more bugs inspected I invite all of you to join us for our little bug triage:</p> 
<ul> 
<li>This weekend, 25th/26th of April</li> 
<li>All day long</li> 
<li><a href="irc://irc.freenode.net/#kde-bugs">#kde-bugs</a> on FreeNode IRC</li> 
<li>You'll find more information on <a href="http://techbase.kde.org/Contribute/Bugsquad/BugDays/PlasmaDay1">http://techbase.kde.org/Contribute/Bugsquad/BugDays/PlasmaDay1</a>&#160; - at least once that page is ready.<br /></li> 
</ul> 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://www.confuego.org/archives/18-Bugsquad-turns-1.-Celebration-lasting-all-weekend....html" rel="alternate" title="Bugsquad turns 1. Celebration lasting all weekend..." type="text/html" />
        <author>
            <name>Michael Leupold</name>
                    </author>
    
        <issued>2009-04-02T22:23:55Z</issued>
        <created>2009-04-02T22:23:55Z</created>
        <modified>2009-04-04T16:48:44Z</modified>
        <wfw:comment>http://www.confuego.org/wfwcomment.php?cid=18</wfw:comment>
        <slash:comments>4</slash:comments>
        <wfw:commentRss>http://www.confuego.org/rss.php?version=atom0.3&amp;type=comments&amp;cid=18</wfw:commentRss>
    
        <id>http://www.confuego.org/archives/18-guid.html</id>
        <title mode="escaped" type="text/html">Bugsquad turns 1. Celebration lasting all weekend...</title>
        <content type="application/xhtml+xml" xml:base="http://www.confuego.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>As you might already have read on the dot, Bugsquad (or rather this incarnation of it) will turn <strong>1</strong> this weekend. Our very first Bug Day was held on April the 6th 2008 (<a target="_blank" href="http://techbase.kde.org/Contribute/Bugsquad/BugDays/06APR08">proof</a>). Incidentally this will also the 1 year anniversary of the day I started contributing to KDE <img src="http://www.confuego.org/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /> It has been a nice year and I while we haven't achieved either of our goals (<a href="http://bugs.kde.org" target="_blank">0 open bugs in KDE</a> or world domination) yet, it has still been an awesome time. I'd like to say everyone working on bugs and especially everyone who helped me getting started a big thank you.</p>Enough of that retrospective. 

<p> Everyone knows Bugsquad parties hard (admittedly a little softer then Amarok people but still harder than most of you non-Bugsquatting fellas). As such you're all invited to our big <a href="http://techbase.kde.org/Contribute/Bugsquad/BugDays/KMailDay4" target="_blank">Bugsquad 1 Year Anniversary Party</a> we're having all weekend long (BYOB). The party is themed &quot;KMailDay4: Let the triage <del>begin</del> continue&quot; and will run from Saturday 10:00 CET to Sunday late at night.</p> 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://www.confuego.org/archives/17-KMailDay3-details.html" rel="alternate" title="KMailDay3 details" type="text/html" />
        <author>
            <name>Michael Leupold</name>
                    </author>
    
        <issued>2009-03-15T00:30:05Z</issued>
        <created>2009-03-15T00:30:05Z</created>
        <modified>2009-03-15T09:48:06Z</modified>
        <wfw:comment>http://www.confuego.org/wfwcomment.php?cid=17</wfw:comment>
        <slash:comments>3</slash:comments>
        <wfw:commentRss>http://www.confuego.org/rss.php?version=atom0.3&amp;type=comments&amp;cid=17</wfw:commentRss>
    
        <id>http://www.confuego.org/archives/17-guid.html</id>
        <title mode="escaped" type="text/html">KMailDay3 details</title>
        <content type="application/xhtml+xml" xml:base="http://www.confuego.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                I managed to finish tomorrow's KMail triage page just in time. For anyone who's not on <a href="irc://irc.freenode.net/#kde-bugs">#kde-bugs</a> (which you should be if you're planning to join the triage <img src="http://www.confuego.org/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /> currently, here's the url: <a href="http://techbase.kde.org/Contribute/Bugsquad/BugDays/KMailDay3">http://techbase.kde.org/Contribute/Bugsquad/BugDays/KMailDay3</a>.
If you're still pondering wether to join, just do it. Any helping hand - be it developer or user - is welcome and helping hands we need a lot <img src="http://www.confuego.org/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /> 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://www.confuego.org/archives/16-A-krush-on-KOffice-revisiting-KMail.html" rel="alternate" title="A krush on KOffice &amp;&amp; revisiting KMail" type="text/html" />
        <author>
            <name>Michael Leupold</name>
                    </author>
    
        <issued>2009-03-11T23:31:22Z</issued>
        <created>2009-03-11T23:31:22Z</created>
        <modified>2009-03-12T08:11:22Z</modified>
        <wfw:comment>http://www.confuego.org/wfwcomment.php?cid=16</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://www.confuego.org/rss.php?version=atom0.3&amp;type=comments&amp;cid=16</wfw:commentRss>
    
        <id>http://www.confuego.org/archives/16-guid.html</id>
        <title mode="escaped" type="text/html">A krush on KOffice &amp;&amp; revisiting KMail</title>
        <content type="application/xhtml+xml" xml:base="http://www.confuego.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                While our KOffice krush day is already more than a month ago (25th of January) it still deserves someone blogging about it. It was a great pleasure to see 9 people working hard on finding issues in KOffice and - no surprise - issues we did find. In total we identified about 100 separate crashes, general bugs as well as some ways to improve usability. I was also happy to see some of the most important ones be fixed while we were still finding new ones. Time to send a big thankyou to jtamate, grundleborg, blauzahl, m4v, dtritsched, JLP, Enkithan and brot as well as all of the hard-working KOffice developers who spent their time coaching and answering questions.

On to the actual topic. I'm happy to announce (another) beginning of the bug triage season. Since the KDE 4.2 came out, the general bug count on <a href=http://bugs.kde.org>bugs.kde.org</a> has pretty much been skyrocketing. Of course we're regulary introducing new bugs with every release but I guess that 4.2 also marked the point where a lot more regular users were joining the KDE4-using crowd. This does not only lead to more bugs being found but - sadly - also to more people reporting the same bugs or reporting simple support issues on our bugtracker.

That's where our next Bugday will come into play. We'll be revisiting KMail once more hoping to find duplicate bug reports, already resolved issues and generally clean up. If you're willing to help, you're very welcome to join us on <a href="irc://irc.freenode.net/#kde-bugs">#kde-bugs</a> <b>this Sunday</b> (the 15th) starting around <b>10:00 CET</b>. I think I mentioned it before but I'll do it again just for the record: No programming skills needed. All you'll have to bring are a recent version of KDE (preferably <a href="http://techbase.kde.org/Getting_Started/Build/KDE4">trunk</a>), some time to spare and the will to make a little difference. Of course we'll have senior Bugsquadders around to help newcomers get started. 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://www.confuego.org/archives/15-KOffice-krush-reminder.html" rel="alternate" title="KOffice krush reminder" type="text/html" />
        <author>
            <name>Michael Leupold</name>
                    </author>
    
        <issued>2009-01-23T19:24:11Z</issued>
        <created>2009-01-23T19:24:11Z</created>
        <modified>2009-01-23T20:42:32Z</modified>
        <wfw:comment>http://www.confuego.org/wfwcomment.php?cid=15</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://www.confuego.org/rss.php?version=atom0.3&amp;type=comments&amp;cid=15</wfw:commentRss>
    
        <id>http://www.confuego.org/archives/15-guid.html</id>
        <title mode="escaped" type="text/html">KOffice krush reminder</title>
        <content type="application/xhtml+xml" xml:base="http://www.confuego.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>Just in case you missed the <a href="http://dot.kde.org/1232641098/">announcement on the dot</a> (or chose to forget):</p><p>This sunday, January the 25th, we'll be having our second KOffice Bug Day. It will all be about finding as many of the remaining bugs in <a href="http://www.koffice.org/releases/2.0beta5-release.php">KOffice Beta 5</a> as possible. To contribute, just read the bug day's <a href="http://techbase.kde.org/Contribute/Bugsquad/BugDays/KOfficeDay2">techbase page</a>, check the requirements and visit <a href="irc://irc.freenode.net/#kde-bugs">#kde-bugs</a> somewhen on sunday (starting around 10am CET). As always, no programming skills required.</p><p><em>Is it worth it?</em></p><p>Most definitely. Our last KOffice bug day was a what I'd call a big success with the KOffice developers starting to iron out the bug while we were still triaging and krushing. They are really passionate about delivering good quality release.</p> 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://www.confuego.org/archives/14-Bugzilla-speed++;.html" rel="alternate" title="Bugzilla-&gt;{speed}++;" type="text/html" />
        <author>
            <name>Michael Leupold</name>
                    </author>
    
        <issued>2009-01-15T23:29:27Z</issued>
        <created>2009-01-15T23:29:27Z</created>
        <modified>2009-01-15T23:29:27Z</modified>
        <wfw:comment>http://www.confuego.org/wfwcomment.php?cid=14</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.confuego.org/rss.php?version=atom0.3&amp;type=comments&amp;cid=14</wfw:commentRss>
    
        <id>http://www.confuego.org/archives/14-guid.html</id>
        <title mode="escaped" type="text/html">Bugzilla-&gt;{speed}++;</title>
        <content type="application/xhtml+xml" xml:base="http://www.confuego.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>During the last week I've been working hard on the Bugzilla sources (I've even been learning some Perl <img src="http://www.confuego.org/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" />) trying to make searchers faster. It made a rather lengthy blogpost (containing some big pictures though) and I wasn't sure if the general Planet KDE audience was that much interested in it as it's only partly related to KDE. So to avoid spamming the Planet all over I decided to make it a separate post which doesn't get syndicated. It might be interesting to you if you're into Bugzilla, full-text search or semi-fancy benchmarking graphs.</p><a href="http://www.confuego.org/archives/13-Improving-Bugzilla-search-speeds.html">Here you go...</a> 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://www.confuego.org/archives/13-Improving-Bugzilla-search-speeds.html" rel="alternate" title="Improving Bugzilla search speeds" type="text/html" />
        <author>
            <name>Michael Leupold</name>
                    </author>
    
        <issued>2009-01-15T22:59:08Z</issued>
        <created>2009-01-15T22:59:08Z</created>
        <modified>2009-01-16T18:05:22Z</modified>
        <wfw:comment>http://www.confuego.org/wfwcomment.php?cid=13</wfw:comment>
        <slash:comments>9</slash:comments>
        <wfw:commentRss>http://www.confuego.org/rss.php?version=atom0.3&amp;type=comments&amp;cid=13</wfw:commentRss>
    
        <id>http://www.confuego.org/archives/13-guid.html</id>
        <title mode="escaped" type="text/html">Improving Bugzilla search speeds</title>
        <content type="application/xhtml+xml" xml:base="http://www.confuego.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                <p>The major tool we use in Bugsquad is our beloved <a href="http://bugs.kde.org">bugtracker</a>, currently running a tailored version of <a href="http://www.bugzilla.org">Bugzilla</a> 3.0. It usually works pretty well but has had some problems lately. One of them is that Bugzilla's search performance when searching through the bugs' comments is pretty low, degrading with the total number of comments stored. This total doesn't only encompass open bugs but closed ones as well, so performance is steadily declining (we currently have &gt;180000 bugs).</p><p>My journey started when I heard someone asking if switching from MySQL to PostgreSQL as the unerlying storage layer would help the speed. I decided do dive into it and started doing some simple benchmarks. Unfortunately results indicated that PostgreSQL would only marginally increase performance. As there's other sites (eg. <a href="http://techbase.kde.org">techbase</a>) using the same database we'd either have to migrate all of them (if that's even possible) or live with two database servers running at once. While I don't have a problem to have different sites handled by different database systems, memory consumption certainly would have been an issue, so I scrapped the idea.</p>
<h3>The Sphinx full-text search engine</h3>
<p>On searching for ways to speed things up I discovered a small full-text search engine named <a href="http://www.sphinxsearch.com">Sphinx</a> and decided to give it a try. Sphinx has several features which are pretty useful for our purpose:<br />
<em>(DISCLAIMER: I'm not an expert on full-text search engines. Some of the features described might be pretty common, some might not be. I don't know how Sphinx compares to other fts systems.)</em>
<ul><li>It's a complete daemon-based search engine with various language bindings ready to use.</li><li>It comes with an indexer that can be used to pull data from MySQL tables into its index.</li><li>It allows substring searches with arbitrary infix length.</li><li>It has builtin word stemming and also provides other text preprocessors like phoneme conversion.</li></ul><p>The first results after constructing my first full-text index were pretty promising, so I started with a proof-of-concept implementation of a Bugzilla extension that uses Sphinx.</p>
<h3>Extending Bugzilla</h3>
<p>Unfortunately developing for Bugzilla means that you have to code Perl - a language I so far always avoided to learn because it's said to be hard to read. While this generally may or may not be true, Bugzilla's code turned out to be pretty understandable and not too hard to work with. It even provides nice hooks to extend its functionality with custom extensions without even having to touch the core code - not for extending or refining the search mechanism though, so I had to devise my own little hook which I hope will be reviewed and make it upstream one day.</p><p>Searching using my extension works like this:
<ul><li>Bugzilla asks the extension to handle a tuple ($field,$operator,$value) where $field is basically the database field to comb through, $operator is the match operator to apply (eg. <i>equals</i> or <i>constains all the words</i>) and $value is the value the user is looking for.</li><li>Additionally the extension is told what Bugzilla itself would do to perform the search (I'll call this the <i>original query</i>).</li><li>The extension then decides if it can handle the search and - if so - queries the Sphinx daemon for bugs matching what the user searches for (else it would just fallback to the original query).</li><li>The original query is then either replaced or enriched with Sphinx' results and sent back to Bugzilla.</li></ul></p>
<h3>Benchmarking</h3>
<p>With this basic implementation in place it was time to do some benchmarking. While reading this, please keep the following in mind:
<ul><li><em>I'm not an expert on tuning MySQL. I used <a href="http://mysqltuner.com">mysqltuner</a> to get as good and fair results as possible. I ended up giving around 5G of memory to MySQL, distributed betwen innodb_buffer_pool_size, the query cache and the key_buffer_size.</em></li><li><em>I know MySQL has its own FULLTEXT index - I didn't use it though.</em></li><li><em>I certainly don't want to claim MySQL is slow.</em></li><li><em>Tests were performed on my Q6600 desktop machine WHILE I was running the desktop. While I tried to keep my resource usage down, the benchmark's results might not be representative.</em></li></ul></p>
<h4>The sample set</h4>
<p>As I didn't have exact numbers about the amount of data I constructed a sample set consisting of:
<ul><li>200 products, 5 components and 5 versions each</li><li>200.000 bugs</li><li>2.200.189 comments uniformly distributed among them</li><li>Short descriptions randomly generated from /usr/share/dict/british-english-huge with a uniformly distributed length of 5-20 words</li><li>Comments also randomly generated with a uniformly distributed length of 20-200 words</li></ul></p>
<h4>The benchmark method</h4>
<p>I performed tests on the following search types: <ul><li><i>substring</i> - Simple substring search</li><li><i>anywordsubstr</i> - Substring search trying to match any of several search strings</li><li><i>allwordssubstr</i> - Substring search trying to match all of several search strings</li></ul>I performed each test 20 times in a row, using 1-3 random words as search terms (using the same random seed for bare Bugzilla and Bugzilla/Sphinx searches). Searches were performed by sending the queries using HTTP. To strip template processing times I introduced a Bugzilla template that returns nothing but the bare number of hits.</p><p><em>Please keep in mind that the results are only meant to indicate the difference in the overall level of performance. As the search terms were completely random (and usually had a lot of search results) they won't tell you how searches you usually do on Bugzilla will perform. Furthermore even though no list of bugs is generated, search speeds are related to the number of rows found and returned by the database. The benchmark doesn't take this into account.</em></p>
<h4>Results: Comparing plain Bugzilla and Bugzilla/Sphinx</h4>
<p>The comparison was done using one single index per table.</p>
<!-- s9ymdb:4 --><img class="serendipity_image_center" width="1039" height="621" style="border: 0px; padding-left: 5px; padding-right: 5px;" src="http://www.confuego.org/uploads/charts/comparision-summary.png" alt="" />
<p>This chart shows the times a single search on the bugs' summary took (in ms). <i>med_std</i> shows the average time a regular Bugzilla search took, <i>med_sphinx</i> shows the average time a search using the Sphinx extension took. Overall searching summaries using Sphinx took around half the time of a regular Bugzilla search (47%) with 1 word substring searches showing the smallest drop (71%) and 3 word anywordsubstr searches showing the biggest (35%).</p>
<!-- s9ymdb:5 --><img class="serendipity_image_center" width="1033" height="623" style="border: 0px; padding-left: 5px; padding-right: 5px;" src="http://www.confuego.org/uploads/charts/comparison-comment.png" alt="" />
<p>This chart shows the times searching the bugs' comments took (in ms). Not surprisingly the drop is quite big here with Sphinx only taking around 3% of the time regular searches do. Again the smallest drop can be witnessed on 1 word substring searches (7%), the other searches rank between 2% and 4%.</p>
<p>To sum up, Sphinx combined with Bugzilla seems to be a good way to increase performance. Please note that I didn't measure the resources taken. That's probably hard to achieve on a regular desktop PC as Sphinx seems to rely on disk/system caches instead of caching data itself. A quick look suggests that runtime resource consumption is a fair bit lower with Sphinx though.</p>
<h4>Results: Scalability</h4>
<p>To see how well my extension scales with the number of concurrent searches performed I did another benchmark. I ran the same queries as before but started 1-10 of them at the same time doing 20 testruns per setup. The numbers represent the average time taken per query (please keep in mind that due to the parallelity of the test the time taken to perform all <i>n</i> searches of a run doesn't equal the <i>n &lowast; average</i>).</p>
<!-- s9ymdb:6 --><img class="serendipity_image_center" width="1029" height="713" style="border: 0px; padding-left: 5px; padding-right: 5px;" src="http://www.confuego.org/uploads/charts/scalability.png" alt="" />
<p>As you can see the search extension seems to scale well. The time increment seems to be linear but I didn't do any tests to confirm this. The small spikes you see now and then are mostly due to one single search taking a little longer - as I said I didn't stay from my machine all of the time.</p><p>If running a lot of parallel searches at the same time, the Sphinx search daemon performs best if you partition your index into several parts. It will then run one search thread per index (indexes can also be distributed to several servers to improve performance). That's exactly what I did for these scalability tests, using 4 indexes on 4 CPU cores.</p>
<h3>Peculiarities, additional benefits and drawbacks</h3>
<p>In addition to being faster, Sphinx has some peculiarities and extra advantages:</p><p>It's important to note that the Sphinx extension doesn't always return the same amount of search results a vanilla Bugzilla would. This is due to stripping of certain characters and treating accented characters the same way. In most situation this is beneficial because it ignores common spelling mistakes like inserted apostrophes (&acute;) for plural forms.</p><p>Unlike in MySQL there's currently no way to push data into the fulltext index when it changes. Reindexing has to be scheduled. Fortunately the reindexing time can be cut by introducing multi-level delta indexes. However there will always be a lag between the time a summary or comment is entered and its availability for search.</p><p>Sphinx indexes (especially if indexed for substring search) take up a considerable amount of disk space. The sample implementation uses one to three indexes (depending on which searches you want to enable):<ul><li>bugs.short_desc - 521MB</li><li>longdescs.thetext - 74297MB</li><li>bugs_fulltext.&lowast; - 6095MB</li></ul>However trading performance for diskspace might be fair under many circumstances.</p>
<p>To sum up, implementing an external full-text search engine into Bugzilla seems to be quite worthwhile. I hope I'll get this fully working and that our Bugzilla's admins still have a little diskspace left <img src="http://www.confuego.org/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /></p> 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://www.confuego.org/archives/12-KDE-Wallet-improvements-in-4.2.html" rel="alternate" title="KDE Wallet improvements in 4.2" type="text/html" />
        <author>
            <name>Michael Leupold</name>
                    </author>
    
        <issued>2008-11-11T10:52:24Z</issued>
        <created>2008-11-11T10:52:24Z</created>
        <modified>2008-11-13T12:53:38Z</modified>
        <wfw:comment>http://www.confuego.org/wfwcomment.php?cid=12</wfw:comment>
        <slash:comments>37</slash:comments>
        <wfw:commentRss>http://www.confuego.org/rss.php?version=atom0.3&amp;type=comments&amp;cid=12</wfw:commentRss>
    
        <id>http://www.confuego.org/archives/12-guid.html</id>
        <title mode="escaped" type="text/html">KDE Wallet improvements in 4.2</title>
        <content type="application/xhtml+xml" xml:base="http://www.confuego.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Albeit having the kwallet category on my blog for quite a while now, I never really bothered to put anything in there. With the advent of KDE 4.2 I thought I'd share what I've been up to.

<h4>Bad news first...</h4>
Unfortunately I didn't quite get around improving the manager. I actually planned and started this but other things seemed more pressing. Thus KDE 4.2's kwalletmanager will continue to be not-quite-pretty <img src="http://www.confuego.org/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" />

<h4>Good news for everyone</h4>
Some things have happened under the hood though. I've mostly been busy fixing bugs, including long withstanding ones like concurrency issues and lockups. Changes and fixes include:
<ul><li>kwalletd has moved from kdelibs/kio to kdebase/runtime (actually pretty much invisible to anyone but packagers)</li><li>Improved open wallet calls: Open calls can no longer timeout, open Path uses asynchroneous transaction handling.</li><li>Detect exiting/crashing applications: The daemon will now detect applications that exit without closing the wallet or even crash and automatically close the wallet.</li></ul>
<b>Important:</b> If you're using trunk, be sure to svn up both kdelibs <b>and</b> kdebase next time you recompile either. Otherwise your wallet might cease to work.

<h4>Good news for some</h4>
Apart from that, good news for all KDE Windows users: Starting with KDE 4.1.3, KWallet works fine on Windows. Thanks go to <a href="http://saroengels.blogspot.com">Patrick Spendrin</a> for helping me fix this (and helping me compile when my VirtualBox decided to crash instead of compile) and to Fujisan for providing me with the screenshot to prove it works:

<div class="serendipity_imageComment_center" style="width: 749px"><div class="serendipity_imageComment_img"><!-- s9ymdb:3 --><img class="serendipity_image_center" width="749" height="455"  src="http://www.confuego.org/uploads/screenshots/wallet-windows.jpeg" alt="" /></div><div class="serendipity_imageComment_txt">kwalletmanager on Windows</div></div>

<h4>The outlook</h4>
One of the major tasks I have in mind for 4.3 is finally redoing the manager UI.
Another thing I'm currently on about is making the GNOME Keyring and the KDE Wallet systems interoperable. Unfortunately that's still at a very early stage so I can't really tell you a lot about it yet. I'll keep you posted though. 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://www.confuego.org/archives/11-KMailDay2-Sunday-9th-of-November.html" rel="alternate" title="KMailDay2: Sunday 9th of November" type="text/html" />
        <author>
            <name>Michael Leupold</name>
                    </author>
    
        <issued>2008-11-08T14:23:03Z</issued>
        <created>2008-11-08T14:23:03Z</created>
        <modified>2008-11-08T14:23:03Z</modified>
        <wfw:comment>http://www.confuego.org/wfwcomment.php?cid=11</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://www.confuego.org/rss.php?version=atom0.3&amp;type=comments&amp;cid=11</wfw:commentRss>
    
        <id>http://www.confuego.org/archives/11-guid.html</id>
        <title mode="escaped" type="text/html">KMailDay2: Sunday 9th of November</title>
        <content type="application/xhtml+xml" xml:base="http://www.confuego.org/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                As you might have read on the dot, Bugsquad is having a KDE PIM party tomorrow, and you're all invited <img src="http://www.confuego.org/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" />
<ul><li><a href="http://techbase.kde.org/Contribute/Bugsquad/BugDays/KDEPimDay2">Techbase page</a> for the triage</li><li><a href="irc://irc.freenode.net/#kde-bugs">IRC Channel</a></li><li>We'll be starting at around 08:00 UTC.</li></ul>
I usually try to be more elaborate but as I'm currently quite busy the bare facts will have to do. I also still want to do a follow-up to our previous KOffice Triage + Krush day so expect more during the next few days. 
            </div>
        </content>

        
    </entry>
</feed>