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

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>Dimajix Developer Blog</title>
    <link>http://blog.dimajix.de/</link>
    <description>Kaya Kupferschmidt's Blog about Work and Life</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.6 - http://www.s9y.org/</generator>
    
    

<item>
    <title>Disable DHCPv6 on AVM Fritzbox</title>
    <link>http://blog.dimajix.de/archives/139-Disable-DHCPv6-on-AVM-Fritzbox.html</link>
            <category>Workstations</category>
    
    <comments>http://blog.dimajix.de/archives/139-Disable-DHCPv6-on-AVM-Fritzbox.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=139</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.dimajix.de/rss.php?version=2.0&amp;type=comments&amp;cid=139</wfw:commentRss>
    

    <author>nospam@example.com (Kaya Kupferschmidt)</author>
    <content:encoded>
    If you own a FritzBox router from AVM and use IPv6, this might be interesting for you. If IPv6 is enabled, all clients will get a IPv6 DNS server from the router. Although this might seem to be a nice feature, it creates problems if you run your own DNS server for your local net. All Windows clients first will ask the IPv6 DNS server configured from the FritzBox, and then ask other IPv4 DNS servers. This might be especially bad, if you configured some hostnames in your own DNS server differently for your local net than for the internet (this makes sense if you run some server in your net which is also accessible from the internet). In such situations you really want to get rid of that DNS server announced from the FritzBox.&lt;br /&gt;
&lt;br /&gt;
Unfortunately this is not possible from the GUI, but you can disable DHCPv6 (which is used for announcing) by changing some config file on the FritzBox. So you need to do the following: &lt;br /&gt;
&lt;br /&gt;
1. Enable telnet via &lt;strong&gt;#96*7*&lt;/strong&gt;.&lt;br /&gt;
2. Login to your FritzBox with &lt;strong&gt;telnet fritz.box&lt;/strong&gt; (or whatever address the FritzBox has in your LAN)&lt;br /&gt;
3. # &lt;strong&gt;cd /var/flash&lt;/strong&gt;&lt;br /&gt;
4. # &lt;strong&gt;nvi ar7.cfg&lt;/strong&gt;&lt;br /&gt;
5. Change the setting &lt;strong&gt; dhcpv6lanmode&lt;/strong&gt; to &lt;strong&gt;dhcpv6lanmode_off_stateless&lt;/strong&gt;&lt;br /&gt;
6. Disable telnet via &lt;strong&gt;#96*8*&lt;/strong&gt;&lt;br /&gt;
7. Reboot the FritzBox&lt;br /&gt;
&lt;br /&gt;
This should completely turn off the DHCPv6 server in the FritzBox. 
    </content:encoded>

    <pubDate>Wed, 25 Jan 2012 12:43:30 +0100</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/139-guid.html</guid>
    
</item>
<item>
    <title>Serviio DLAN Server on Debian</title>
    <link>http://blog.dimajix.de/archives/138-Serviio-DLAN-Server-on-Debian.html</link>
            <category>Workstations</category>
    
    <comments>http://blog.dimajix.de/archives/138-Serviio-DLAN-Server-on-Debian.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=138</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.dimajix.de/rss.php?version=2.0&amp;type=comments&amp;cid=138</wfw:commentRss>
    

    <author>nospam@example.com (Kaya Kupferschmidt)</author>
    <content:encoded>
    If you want to share your media collection (that is music, videos and pictures) in your LAN on multimedia devices like tablets, smartphones, TVs and consoles, you end up using either DLNA or UPnP. Because my devices support DLNA, I decided to give it a try to install a DLNA service on a Debian server. Googling around, I found some different implementations of which &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=829&amp;amp;entry_id=138&quot;  onmouseover=&quot;window.status=&#039;http://www.serviio.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;Serviio media server&quot;&gt;Serviio media server&lt;/a&gt; looked most primising. Implemented in Java it surely uses some more resources than some native C/C++ implementation, but it offers some nice features like plugins and device profiles. And it offers a pure server implementation without a GUI, which was very important to me for running it on a headless server. &lt;br /&gt;&lt;a href=&quot;http://blog.dimajix.de/archives/138-Serviio-DLAN-Server-on-Debian.html#extended&quot;&gt;Continue reading &quot;Serviio DLAN Server on Debian&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 28 Dec 2011 10:29:43 +0100</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/138-guid.html</guid>
    
</item>
<item>
    <title>Mercurial, finally!</title>
    <link>http://blog.dimajix.de/archives/136-Mercurial,-finally!.html</link>
    
    <comments>http://blog.dimajix.de/archives/136-Mercurial,-finally!.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=136</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.dimajix.de/rss.php?version=2.0&amp;type=comments&amp;cid=136</wfw:commentRss>
    

    <author>nospam@example.com (Kaya Kupferschmidt)</author>
    <content:encoded>
    When I started to work as a software developer, still during the time when I was studying, I made first contact with a source control system. Of course it was the &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=820&amp;amp;entry_id=136&quot;  onmouseover=&quot;window.status=&#039;http://www.developsense.com/testing/VSSDefects.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;Visual SourceSafe Version Control: Unsafe at any Speed?&quot;&gt;highly&lt;/a&gt; &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=821&amp;amp;entry_id=136&quot;  onmouseover=&quot;window.status=&#039;http://www.highprogrammer.com/alan/windev/sourcesafe.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; title=&quot;Visual SourceSafe: Microsoft&#039;s Source Destruction System&quot;&gt;respected&lt;/a&gt; Microsoft Source Safe. For me as a fresh developer, this was something really new, and I immediately started to like it. I even started to use it for some private projects and immediately saw the benefit of using it, even if you are the sole person working on a project. After that some years later, I made the experience with the old and famous CVS - but only to see how it was replaced by the far better new-kid-on the rock called &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=822&amp;amp;entry_id=136&quot; title=&quot;http://subversion.tigris.org/&quot;  onmouseover=&quot;window.status=&#039;http://subversion.tigris.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;subversion&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
That was really something nice - supporting branching, atomic commits, nice integration in all relevant IDEs and of course &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=823&amp;amp;entry_id=136&quot; title=&quot;http://tortoisesvn.tigris.org/&quot;  onmouseover=&quot;window.status=&#039;http://tortoisesvn.tigris.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;TortoiseSVN&lt;/a&gt;, which became the de-facto standard for accessing subversion repositories with windows. There came even a clone for CVS called &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=824&amp;amp;entry_id=136&quot; title=&quot;http://www.tortoisecvs.org/&quot;  onmouseover=&quot;window.status=&#039;http://www.tortoisecvs.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;TortoiseCVS&lt;/a&gt;. Everything was much better than with Source Safe or CVS.&lt;br /&gt;
&lt;br /&gt;
But after some time, it became clear, that branching (one of the best-selling features of subversion) just doesn&#039;t work - simply because merging doesn&#039;t work. With those problems in mind, even Linus Torvalds said that &quot;Subversion is the most pointless project ever started&quot;. He was into something better called &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=825&amp;amp;entry_id=136&quot; title=&quot;http://git-scm.com/&quot;  onmouseover=&quot;window.status=&#039;http://git-scm.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Git&lt;/a&gt; which is a distributed source control system. At more or less the same time a second project called &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=826&amp;amp;entry_id=136&quot; title=&quot;http://mercurial.selenic.com/&quot;  onmouseover=&quot;window.status=&#039;http://mercurial.selenic.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Mercurial&lt;/a&gt; was started with the same ideas like Git. Both of them work in a completely distributed manner, such that everyone has a copy of the complete repository including all the history. Of course in this situation merging becomes a non-trivial part, and that is the reason why they are doing this so much better than subversion. Without robust merging and tracking branches a distributed version control system simply wouldn&#039;t work.&lt;br /&gt;
&lt;br /&gt;
So today I finally made the switch to Mercurial with my private project, after I have been happily using subversion for several years. Luckily it is quite easy to convert a subversion repository to a mercurial repository. I also chose &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=827&amp;amp;entry_id=136&quot; title=&quot;http://bitbucket.org/&quot;  onmouseover=&quot;window.status=&#039;http://bitbucket.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Bitbucket&lt;/a&gt; as a public hosting platform, so from now on everyone is invited to clone the Magnum repository which is available at &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=828&amp;amp;entry_id=136&quot; title=&quot;https://bitbucket.org/dimajix/magnum&quot;  onmouseover=&quot;window.status=&#039;https://bitbucket.org/dimajix/magnum&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;https://bitbucket.org/dimajix/magnum&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Looking back, I think it was still the right decision first to move to Subversion and then to move to Mercurial/Git, simply because those projects weren&#039;t up to speed at that time. 
    </content:encoded>

    <pubDate>Sat, 13 Aug 2011 17:42:02 +0200</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/136-guid.html</guid>
    
</item>
<item>
    <title>Add NIS Client Support to ReadyNAS</title>
    <link>http://blog.dimajix.de/archives/135-Add-NIS-Client-Support-to-ReadyNAS.html</link>
            <category>Workstations</category>
    
    <comments>http://blog.dimajix.de/archives/135-Add-NIS-Client-Support-to-ReadyNAS.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=135</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.dimajix.de/rss.php?version=2.0&amp;type=comments&amp;cid=135</wfw:commentRss>
    

    <author>nospam@example.com (Kaya Kupferschmidt)</author>
    <content:encoded>
    This guide is about how to setup probably any ReadyNAS device to act as a NIS/YP client. NIS/YP is a protocol that shares account information accross the network. In such an environment it is important that the ReadyNAS knows about all Linux and Windows account, so it can keep access rights on files in sync. If users had different numerical IDs on Linux clients and on the ReadyNAS, all files created from these clients wouldn&#039;t beb accessible on Windows machines any more, because the ReadyNAS wouldn&#039;t know which account the files belong to.&lt;br /&gt;
&lt;br /&gt;
On Windows there is already a powerful solution, called Active Directory. This is already supported on the ReadyNAS, but there is no support for the corresponding UNIX protocol, which is NIS. Having a central account authority which manages both Windows and Linux accounts via Active Directory and NIS is very helpful in such mixed environments.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://blog.dimajix.de/archives/135-Add-NIS-Client-Support-to-ReadyNAS.html#extended&quot;&gt;Continue reading &quot;Add NIS Client Support to ReadyNAS&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 21 Feb 2009 19:30:48 +0100</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/135-guid.html</guid>
    
</item>
<item>
    <title>Phun with Physics</title>
    <link>http://blog.dimajix.de/archives/134-Phun-with-Physics.html</link>
            <category>General</category>
    
    <comments>http://blog.dimajix.de/archives/134-Phun-with-Physics.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=134</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.dimajix.de/rss.php?version=2.0&amp;type=comments&amp;cid=134</wfw:commentRss>
    

    <author>nospam@example.com (Kaya Kupferschmidt)</author>
    <content:encoded>
    &lt;a class=&#039;serendipity_image_link&#039; href=&#039;http://blog.dimajix.de/uploads/general/Monster_truck.jpg&#039;&gt;&lt;!-- s9ymdb:148 --&gt;&lt;img width=&quot;110&quot; height=&quot;77&quot; style=&quot;float: left; border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://blog.dimajix.de/uploads/general/Monster_truck.serendipityThumb.jpg&quot; alt=&quot;&quot;  /&gt;&lt;/a&gt;&lt;br /&gt;
While browsing on &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=816&amp;amp;entry_id=134&quot; title=&quot;http://www.opengl.org&quot;  onmouseover=&quot;window.status=&#039;http://www.opengl.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;OpenGL.org&lt;/a&gt;, I found a really nice educational (?) 2D physics simulator called Phun. The physics engine is a commercial multibody simulator, which seems to be new in the physics scene (at least I never heard of &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=817&amp;amp;entry_id=134&quot; title=&quot;http://www.algoryx.se/&quot;  onmouseover=&quot;window.status=&#039;http://www.algoryx.se/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;AgX&lt;/a&gt; before).&lt;br /&gt;
&lt;br /&gt;
And now, don&#039;t waste your time on my blog, and &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=818&amp;amp;entry_id=134&quot; title=&quot;http://www.algoryx.se/phun.html&quot;  onmouseover=&quot;window.status=&#039;http://www.algoryx.se/phun.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Grab Phun here.&lt;/a&gt; 
    </content:encoded>

    <pubDate>Wed, 21 Jan 2009 13:46:03 +0100</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/134-guid.html</guid>
    
</item>
<item>
    <title>New 6bay ReadyNAS on the way</title>
    <link>http://blog.dimajix.de/archives/133-New-6bay-ReadyNAS-on-the-way.html</link>
            <category>Workstations</category>
    
    <comments>http://blog.dimajix.de/archives/133-New-6bay-ReadyNAS-on-the-way.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=133</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.dimajix.de/rss.php?version=2.0&amp;type=comments&amp;cid=133</wfw:commentRss>
    

    <author>nospam@example.com (Kaya Kupferschmidt)</author>
    <content:encoded>
    &lt;a class=&#039;serendipity_image_link&#039; href=&#039;http://blog.dimajix.de/uploads/general/readynas_ces18_5.jpg&#039;&gt;&lt;!-- s9ymdb:147 --&gt;&lt;img width=&quot;110&quot; height=&quot;83&quot; style=&quot;float: left; border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://blog.dimajix.de/uploads/general/readynas_ces18_5.serendipityThumb.jpg&quot; alt=&quot;&quot;  /&gt;&lt;/a&gt;I really like my &lt;a href=&quot;http://blog.dimajix.de/exit.php?url=aHR0cDovL3d3dy5pbmZyYW50LmNvbQ==&amp;amp;entry_id=133&quot; title=&quot;http://www.infrant.com&quot;  onmouseover=&quot;window.status=&#039;http://www.infrant.com&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;ReadyNAS&lt;/a&gt; server - small, slick, multifunctional and &lt;a href=&quot;http://blog.dimajix.de/exit.php?url=aHR0cDovL3d3dy5pbmZyYW50LmNvbS9mb3J1bQ==&amp;amp;entry_id=133&quot; title=&quot;http://www.infrant.com/forum&quot;  onmouseover=&quot;window.status=&#039;http://www.infrant.com/forum&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;superb support&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
But there are two things missing: more drive bays and a more powerful CPU. But apparently the first point is being addressed with a ReadyNAS Pro device with 6 bays, as &lt;a href=&quot;http://blog.dimajix.de/exit.php?url=aHR0cDovL3BjLndhdGNoLmltcHJlc3MuY28uanAvZG9jcy8yMDA4LzAxMTEvY2VzMTguaHRt&amp;amp;entry_id=133&quot; title=&quot;http://pc.watch.impress.co.jp/docs/2008/0111/ces18.htm&quot;  onmouseover=&quot;window.status=&#039;http://pc.watch.impress.co.jp/docs/2008/0111/ces18.htm&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;seen on CES 2008&lt;/a&gt;. I hope, they also spent a more powerful CPU to the device, so it will be able to outperform the Thecus devices. Those are a lot faster, but the firmware and support seems to be really bad. &lt;br /&gt;
&lt;br /&gt;
Can&#039;t wait to get my hands on the ReadyNAS Pro!&lt;br /&gt;
&lt;a class=&#039;serendipity_image_link&#039; href=&#039;http://blog.dimajix.de/uploads/general/readynas_ces18_6.jpg&#039;&gt;&lt;!-- s9ymdb:146 --&gt;&lt;img width=&quot;110&quot; height=&quot;83&quot; style=&quot;float: right; border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://blog.dimajix.de/uploads/general/readynas_ces18_6.serendipityThumb.jpg&quot; alt=&quot;&quot;  /&gt;&lt;/a&gt; 
    </content:encoded>

    <pubDate>Thu, 17 Jan 2008 13:10:31 +0100</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/133-guid.html</guid>
    
</item>
<item>
    <title>OpenGL - Web 2. 0 Style</title>
    <link>http://blog.dimajix.de/archives/132-OpenGL-Web-2.-0-Style.html</link>
            <category>OpenGL</category>
    
    <comments>http://blog.dimajix.de/archives/132-OpenGL-Web-2.-0-Style.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=132</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://blog.dimajix.de/rss.php?version=2.0&amp;type=comments&amp;cid=132</wfw:commentRss>
    

    <author>nospam@example.com (Kaya Kupferschmidt)</author>
    <content:encoded>
    Today I stumbled over a new-to-me project on &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=785&amp;amp;entry_id=132&quot; title=&quot;http://www.opengl.org&quot;  onmouseover=&quot;window.status=&#039;http://www.opengl.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;OpenGL.org&lt;/a&gt;: An OpenGL canvas plugin for Mozilla Firefox! The plugin called &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=786&amp;amp;entry_id=132&quot; title=&quot;http://blog.vlad1.com/2007/11/26/canvas-3d-gl-power-web-style/&quot;  onmouseover=&quot;window.status=&#039;http://blog.vlad1.com/2007/11/26/canvas-3d-gl-power-web-style/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Canvas 3D&lt;/a&gt; only works in the new Firefix 3 line and provides an OpenGL context to Javascript. &lt;br /&gt;
&lt;br /&gt;
In my eyes this opens the doors to many new exciting Web applications (if Javascript turns out to be fast enough), ranging from simple Model Viewers to some advanced online-editors. I wish I could find some time to explore some of the possibilities! 
    </content:encoded>

    <pubDate>Mon, 03 Dec 2007 14:00:16 +0100</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/132-guid.html</guid>
    
</item>
<item>
    <title>I HAS 1337 CODE. LOL!!1</title>
    <link>http://blog.dimajix.de/archives/131-I-HAS-1337-CODE.-LOL!!1.html</link>
            <category>Programming</category>
    
    <comments>http://blog.dimajix.de/archives/131-I-HAS-1337-CODE.-LOL!!1.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=131</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.dimajix.de/rss.php?version=2.0&amp;type=comments&amp;cid=131</wfw:commentRss>
    

    <author>nospam@example.com (Kaya Kupferschmidt)</author>
    <content:encoded>
    &lt;a class=&#039;serendipity_image_link&#039; href=&#039;http://blog.dimajix.de/uploads/general/lolcode_book.jpg&#039; target=&quot;_blank&quot;&gt;&lt;!-- s9ymdb:145 --&gt;&lt;img width=&quot;73&quot; height=&quot;110&quot; style=&quot;float: left; border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://blog.dimajix.de/uploads/general/lolcode_book.serendipityThumb.jpg&quot; alt=&quot;&quot;  /&gt;&lt;/a&gt;&lt;br /&gt;
C#, Java and C++ are out. The upcoming star is called &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=782&amp;amp;entry_id=131&quot; title=&quot;http://lolcode.com/&quot;  onmouseover=&quot;window.status=&#039;http://lolcode.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;LOLCODE&lt;/a&gt;. LOLCODE is a new programming language that immitates the natural language of the leet coders.&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;tt&gt;&lt;br /&gt;
HAI&lt;br /&gt;
CAN HAS STDIO?&lt;br /&gt;
PLZ OPEN FILE &quot;LOLCATS.TXT&quot;?&lt;br /&gt;
&amp;#160;&amp;#160;	AWSUM THX&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;		VISIBLE FILE&lt;br /&gt;
&amp;#160;&amp;#160;	O NOES&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;		INVISIBLE &quot;ERROR!&quot;&lt;br /&gt;
KTHXBYE&lt;br /&gt;
&lt;/tt&gt;&lt;br /&gt;
Obviously this new programming language will start a new era in software development! 
    </content:encoded>

    <pubDate>Wed, 27 Jun 2007 13:30:22 +0200</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/131-guid.html</guid>
    
</item>
<item>
    <title>Cygwin + Avira = Nogo</title>
    <link>http://blog.dimajix.de/archives/130-Cygwin-+-Avira-Nogo.html</link>
            <category>General</category>
    
    <comments>http://blog.dimajix.de/archives/130-Cygwin-+-Avira-Nogo.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=130</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://blog.dimajix.de/rss.php?version=2.0&amp;type=comments&amp;cid=130</wfw:commentRss>
    

    <author>nospam@example.com (Kaya Kupferschmidt)</author>
    <content:encoded>
    I have been using Microsoft Windows as my primary operating system since Windows 95, but I have always prefered the NT line for its superior stability and security (if configured right). I always use a normal user account for my daily work (not even a Power User account) and the Administrator account for installing software or changing the computer configuration. Plus I do not opene every attachment I get in all those virus mails &lt;img src=&quot;http://blog.dimajix.de/templates/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; This way I have been virus free for about 10 years.&lt;br /&gt;
&lt;br /&gt;
But I thought it could be a nice idea to install an AntiVirus program for increased safety. I decided to use &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=772&amp;amp;entry_id=130&quot; title=&quot;http://www.avira.de&quot;  onmouseover=&quot;window.status=&#039;http://www.avira.de&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Avira&lt;/a&gt;, simply because it has a free version for home users and I didn&#039;t hear anything bad about it. After some time I even decided to buy the premium edition that has some additional features, and I thought that I was happy. &lt;br /&gt;
&lt;br /&gt;
Then I found out that my notebook seemed to have a hardware defect. When I tried to build a large &quot;make&quot; based project within Cygwin, the korn shell would stall after some minutes and I could not kill it any more. First I suspected bad memory, so I ran some memory tests - no result. So I was thinking that the CPU could have suffered to much and could be broken. I started to look around for a new notebook, although I really didn&#039;t want to buy a new one, as my old one was still good enough for me (if it worked).&lt;br /&gt;
&lt;br /&gt;
After a week, I thought that maybe the crashes of the shell could be a software problem. So I uninstalled some applications. No change at all - unless I uninstalled the Avira AntiVirus package. Simply disabling the virus scanner did not make any change, but after I uninstalled the whole package, I could compile again! After some hours of successful compilation I searched google for &quot;Cygwin Avira&quot; - bingo, there are some well-known problems.&lt;br /&gt;
&lt;br /&gt;
Conclusion: If you want to use Cygwin, don&#039;t even install Avira, or you might suffer. 
    </content:encoded>

    <pubDate>Mon, 04 Jun 2007 09:49:21 +0200</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/130-guid.html</guid>
    
</item>
<item>
    <title>Physics Simulations</title>
    <link>http://blog.dimajix.de/archives/129-Physics-Simulations.html</link>
            <category>Programming</category>
    
    <comments>http://blog.dimajix.de/archives/129-Physics-Simulations.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=129</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.dimajix.de/rss.php?version=2.0&amp;type=comments&amp;cid=129</wfw:commentRss>
    

    <author>nospam@example.com (Kaya Kupferschmidt)</author>
    <content:encoded>
    After I have been working with &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=767&amp;amp;entry_id=129&quot; title=&quot;http://www.ode.org&quot;  onmouseover=&quot;window.status=&#039;http://www.ode.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;ODE&lt;/a&gt; in order to get an assembly simulation running, I began to dislike ODE for several reasons. The topmost reason is that ODE does not seem to handle large scales very well (even in the handbook it is noted that best is to scale everything between 0.1 and 10.0 - this was not a real option in my case).&lt;br /&gt;
&lt;br /&gt;
So I was looking at different packages, but even the two big ones &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=768&amp;amp;entry_id=129&quot; title=&quot;http://www.havok.com&quot;  onmouseover=&quot;window.status=&#039;http://www.havok.com&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Havok&lt;/a&gt; and &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=769&amp;amp;entry_id=129&quot; title=&quot;http://www.ageia.com&quot;  onmouseover=&quot;window.status=&#039;http://www.ageia.com&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Agiea/Physx&lt;/a&gt; do not handle arbitrary triangle meshes very well (at least that is what I understand after reading their documentation) as collision geometry.  &lt;br /&gt;
&lt;br /&gt;
Fortunately finally I found &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=770&amp;amp;entry_id=129&quot; title=&quot;http://www.cm-labs.com/&quot;  onmouseover=&quot;window.status=&#039;http://www.cm-labs.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Vortex&lt;/a&gt;, which is a high-end physics package geared towards simulation. And I have to say that so far I am really impressed with both speed and accuracy! Vortex is able to handle collisions between arbitrary meshes very well and fast. The collision response is quite good, if I tune the parameters (mass, forces, joints), I get almost not penetration between complex triangle objects - this is quite a difficult task.&lt;br /&gt;
&lt;br /&gt;
Plus Vortex offers a lot more parameters to tune than other packages in order to get realistic and stable simulations. So if you are looking for most realistic results with complex shapes, Vortex seems to me the only way to go. 
    </content:encoded>

    <pubDate>Thu, 24 May 2007 11:00:34 +0200</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/129-guid.html</guid>
    
</item>
<item>
    <title>Sliding in VR with ODE, part 2</title>
    <link>http://blog.dimajix.de/archives/128-Sliding-in-VR-with-ODE,-part-2.html</link>
            <category>Programming</category>
    
    <comments>http://blog.dimajix.de/archives/128-Sliding-in-VR-with-ODE,-part-2.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=128</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.dimajix.de/rss.php?version=2.0&amp;type=comments&amp;cid=128</wfw:commentRss>
    

    <author>nospam@example.com (Kaya Kupferschmidt)</author>
    <content:encoded>
    After I started the integration of &lt;a href=&quot;http://blog.dimajix.de/exit.php?url=aHR0cDovL3d3dy5vZGUub3Jn&amp;amp;entry_id=128&quot; title=&quot;http://www.ode.org&quot;  onmouseover=&quot;window.status=&#039;http://www.ode.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;ODE&lt;/a&gt; into the immersive VR project, I stumbeled over a lot of difficulties, with some of them being still not properly solved:&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;Collisions between arbitrary triangle meshes is a complex thing. ODE needs as much information as possible for correct collision response. This include the contact point and normal (both are rather easy to get) and the penetration depth. The later is not trivially extracted from a collision, moreover it even is not simple to give a correct definition in the case of non-convex geometry. I had to work around this problem by approximation the penetration depth on a triangle-by-triangle basis, but my approximation still can return much too big values, so I finally had to clamp the result.&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;The connection of the virtual object and the tracked hand of the user is now realized by a fixed joint between two ODE bodies (one body for the hand (&quot;user body&quot;) and one body for the object (&quot;object body&quot;). Out naive approach simply repositions the user controlled body in each frame and hopes that ODE will try to move the connected object body to the user body while trying to obey to collisions. This went well in some sense, but as soon as there are some collisions, the distance between both objects has been increased and remained even after the object has been moved out of collision again. Debugging the code showed that the user body has accumulated insane velocities in order to resolve the fixed joint constraint, and these velocities haven&#039;t been reset after collision. So I had to insert a linear and an angular motor with target speed of zero in order to slow down the objects. Still this is not an ideal solution, it would be much better to use motors in the first place to control the virtual object.&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;ODE seems to be very sensitive to scaling. The ODE manual states that best results are achieved if all values are in the range 0.1 to 10.0. But we have models in milimeters (cars) and models with a meter scale (airplanes). ODE seems to be especially sensitive to different masses, it turned out that a proportional increase of all masses resulted in ignorance of all collisions.&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
Still there are a lot of open topics, and I was only able to achieve some sliding (the user moves a virtual object, which obeys to collisions with a static environment) in a artificial toy environment. Maybe we will try a different physics library, but my guess is that the biggest problem is the lack of proper penetration depth information. 
    </content:encoded>

    <pubDate>Mon, 02 Apr 2007 10:59:12 +0200</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/128-guid.html</guid>
    
</item>
<item>
    <title>Collision Detection for Sliding Simulations in VR</title>
    <link>http://blog.dimajix.de/archives/127-Collision-Detection-for-Sliding-Simulations-in-VR.html</link>
            <category>Programming</category>
    
    <comments>http://blog.dimajix.de/archives/127-Collision-Detection-for-Sliding-Simulations-in-VR.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=127</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.dimajix.de/rss.php?version=2.0&amp;type=comments&amp;cid=127</wfw:commentRss>
    

    <author>nospam@example.com (Kaya Kupferschmidt)</author>
    <content:encoded>
    Currently I have to develop a robust method for sliding simulation in a immersive VR environment. This means that the user in a CAVE should be able to move objects around, but these movements should be resitricted by collisions with a static environment. Unsurprisingly this task turns out to be non-trivial. We chose to integrate &lt;a href=&quot;http://blog.dimajix.de/exit.php?url=aHR0cDovL3d3dy5vZGUub3Jn&amp;amp;entry_id=127&quot; title=&quot;http://www.ode.org&quot;  onmouseover=&quot;window.status=&#039;http://www.ode.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;ODE&lt;/a&gt; as a physics simulation backend combined with our own collision engine originally developed by &lt;a href=&quot;http://blog.dimajix.de/exit.php?url=aHR0cDovL3phY2guaW4udHUtY2xhdXN0aGFsLmRlLw==&amp;amp;entry_id=127&quot; title=&quot;http://zach.in.tu-clausthal.de/&quot;  onmouseover=&quot;window.status=&#039;http://zach.in.tu-clausthal.de/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Gabriel Zachman&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
There are two obvious problems:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;The virtual body moved by the user eventually has to be moved by ODE. This means that I had to extract the forces needed to move the object as desired by the user and pass them to the physics engine. This has been rather easy once I understood what the words &lt;a href=&quot;http://blog.dimajix.de/exit.php?url=aHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Ub3JxdWU=&amp;amp;entry_id=127&quot; title=&quot;http://en.wikipedia.org/wiki/Torque&quot;  onmouseover=&quot;window.status=&#039;http://en.wikipedia.org/wiki/Torque&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;torque&lt;/a&gt; and &lt;a href=&quot;http://blog.dimajix.de/exit.php?url=aHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Nb21lbnRfb2ZfaW5lcnRpYQ==&amp;amp;entry_id=127&quot; title=&quot;http://en.wikipedia.org/wiki/Moment_of_inertia&quot;  onmouseover=&quot;window.status=&#039;http://en.wikipedia.org/wiki/Moment_of_inertia&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;intertia tensor&lt;/a&gt; mean (both are needed for rotational movements).&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;The more complex problem is the integration of the collision engine. The integration itself was straight forward, but the real problem is, that as soon as a collision is detected, the simulation gets out of control. The reason is that what we really would need is a penetration depth or we have to try to approximate the exct time of the first collision between two bodies. As our collision engine does not offer the penetration depth, I have to go down the second road and approximate the time of collision by progressively subdividing timesteps in case of a collision.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
Interestingly I found out that commercial physics packages seem to employ much more advanced collision algorithms which can calculate the penetration depth or work in a continious mode and thus calculate the exact time of the first collision. Plus many games use simplified collision geometry and special bodies (spheres, cylinders, boxes) which make such calculations much more easy, while we have to cope with arbitrary high-resolution triangle meshes.&lt;br /&gt;
&lt;br /&gt;
While looking for solutions on the net, I found two good PhD thesises on physics simulations:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;ftp://ftp.diku.dk/diku/image/publications/erleben.050401.pdf&quot;&gt; Stable, Robust, and Versatile Multibody Dynamics Animation&lt;/a&gt; by &lt;a href=&quot;http://blog.dimajix.de/exit.php?url=aHR0cDovL2ltYWdlLmRpa3UuZGsva2Vubnkv&amp;amp;entry_id=127&quot; title=&quot;http://image.diku.dk/kenny/&quot;  onmouseover=&quot;window.status=&#039;http://image.diku.dk/kenny/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Kenny Erleben&lt;/a&gt; from March 2005&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.dimajix.de/exit.php?url=aHR0cDovL3d3dy51dmthLmRlL3VuaXZlcmxhZy9mcm9udGRvb3IucGhwP3NvdXJjZV9vcHVzPTIxMQ==&amp;amp;entry_id=127&quot; title=&quot;http://www.uvka.de/univerlag/frontdoor.php?source_opus=211&quot;  onmouseover=&quot;window.status=&#039;http://www.uvka.de/univerlag/frontdoor.php?source_opus=211&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Impulsbasierte Dynamiksimulation von Mehrkörpersystemen in der virtuellen Realität&lt;/a&gt; by &lt;a href=&quot;http://blog.dimajix.de/exit.php?url=aHR0cDovL3d3dy5pbXB1bHNlLWJhc2VkLmRlLw==&amp;amp;entry_id=127&quot; title=&quot;http://www.impulse-based.de/&quot;  onmouseover=&quot;window.status=&#039;http://www.impulse-based.de/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Jan Bender&lt;/a&gt; from January 2007&lt;/li&gt;&lt;/ul&gt; 
    </content:encoded>

    <pubDate>Wed, 28 Mar 2007 12:50:46 +0200</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/127-guid.html</guid>
    
</item>
<item>
    <title>Easy Bytecode</title>
    <link>http://blog.dimajix.de/archives/126-Easy-Bytecode.html</link>
            <category>Programming</category>
    
    <comments>http://blog.dimajix.de/archives/126-Easy-Bytecode.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=126</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://blog.dimajix.de/rss.php?version=2.0&amp;type=comments&amp;cid=126</wfw:commentRss>
    

    <author>nospam@example.com (Kaya Kupferschmidt)</author>
    <content:encoded>
    Writing a interpreter for a custom scripting language always seems to be more complex than writing a small bytecode compiler and bytecode interpreter. At a first glance, writing a direct interpreter might be easier, but if the scripting language contains flow control (like loops, if/else statements and similar constructs involving jumps), this turns out to be false. The primary problem lies in the fact that one needs to duplicate large parts of the parser - simply for skipping over the parts of a script that are not executed (like with a conditional if-block whose conditioon turns out to be false at runtime).&lt;br /&gt;
&lt;br /&gt;
Because of this insight, I began to concentrate on writing an easy-to-implement bytecode compiler that would transform a text-based script into a more machine-friendly representation. A positive side-effect of bytecode is that simple fact that it is much faster to execute than the original textual representation. The downside of this approach is the fact that it involves writing a compiler - something that sounds to be a complex and difficult task.&lt;br /&gt;
&lt;br /&gt;
But after analysing the process of parsing a script, I came to the conclusion that such a compiler and its corresponding bytecode interpreter (&quot;virtual machine&quot;) would be rather straight-forward and easy to implement, if the underlying model of the virtual machine is chosen carefully. In my opinion the best machine model (in terms of simplicity to implement a compiler and interpreter) it a purely stack-based RPN (Reverse Polish notation) machine. And such a model not only is easy to implement, but it also easy to extract the original syntax tree from the bytecode, which in turn allows further optimisation techniques as a postprocessing step (it even wouldn&#039;t be to hard to turn bytecode into native assembler). &lt;br /&gt;&lt;a href=&quot;http://blog.dimajix.de/archives/126-Easy-Bytecode.html#extended&quot;&gt;Continue reading &quot;Easy Bytecode&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 28 Feb 2007 19:07:14 +0100</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/126-guid.html</guid>
    
</item>
<item>
    <title>Reflection for C++</title>
    <link>http://blog.dimajix.de/archives/125-Reflection-for-C++.html</link>
            <category>C++</category>
    
    <comments>http://blog.dimajix.de/archives/125-Reflection-for-C++.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=125</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.dimajix.de/rss.php?version=2.0&amp;type=comments&amp;cid=125</wfw:commentRss>
    

    <author>nospam@example.com (Kaya Kupferschmidt)</author>
    <content:encoded>
    One hot topic I am currently busy in, is reflection for C++. Reflection for a computer language means that you can access all types toegther with their methods and members at runtime using a simple string-based interface. Such a feature especially simplifies binding scripting-languages to a program by providing one wrapper that operates on the reflection information instead of binding each class, method or function by hand. Other possible usages are remote-method-invocations, serialisation, XML based configurations etc.&lt;br /&gt;
&lt;br /&gt;
C++ offers only some very basic runtime type information (RTTI) out of the box and lacks full reflection. There are some projects on the net that try to close this gap (most notably the &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=713&amp;amp;entry_id=125&quot; title=&quot;http://seal-reflex.web.cern.ch/seal-reflex/&quot;  onmouseover=&quot;window.status=&#039;http://seal-reflex.web.cern.ch/seal-reflex/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Reflex&lt;/a&gt; framework), but none of them really seem to be as powerful, flexible and easy-to-use as their native counterparts in Java or C#.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=714&amp;amp;entry_id=125&quot; title=&quot;http://www.dimajix.com&quot;  onmouseover=&quot;window.status=&#039;http://www.dimajix.com&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Dimajix&lt;/a&gt;&#039;s framework &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=715&amp;amp;entry_id=125&quot; title=&quot;http://magnum.dimajix.de&quot;  onmouseover=&quot;window.status=&#039;http://magnum.dimajix.de&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Magnum&lt;/a&gt; soon will contain some new modules that try to fill this gap, by offering the following tools:&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;A generic Meta-Compiler based upon &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=716&amp;amp;entry_id=125&quot; title=&quot;http://www.gccxml.org/&quot;  onmouseover=&quot;window.status=&#039;http://www.gccxml.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;gccxml&lt;/a&gt; together with a specialised XML-based transformation language.&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;Non-intrusive, full reflection for all public elements of any C++ program given in source.&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;A Java-like scripting language built on top of the reflection together with a custom bytecode compiler.&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
With these tools, one can easily add generic scripting capabilities to any C++ program with only some little one-time effort. Plus it is possible to use the Metacompiler for automatically transforming any type-information given in C++ headers in any kind of text-based files, by providing a set of transformation rules which will be applied to the C++ metainformation generated with gccxml.&lt;br /&gt;
&lt;br /&gt;
The new package is not completely finished yet, there are some features still missing, but work is steadily progressing. For a preview, you can simply check out the latest version of Magnum using &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=717&amp;amp;entry_id=125&quot; title=&quot;http://subversion.tigris.org&quot;  onmouseover=&quot;window.status=&#039;http://subversion.tigris.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Subversion&lt;/a&gt; at &lt;a href=&quot;svn://subversion.dimajix.de/magnum&quot;&gt;svn://subversion.dimajix.de/magnum&lt;/a&gt;. 
    </content:encoded>

    <pubDate>Mon, 26 Feb 2007 12:27:04 +0100</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/125-guid.html</guid>
    
</item>
<item>
    <title>Promotional Video for Windows 386</title>
    <link>http://blog.dimajix.de/archives/124-Promotional-Video-for-Windows-386.html</link>
            <category>Weird</category>
    
    <comments>http://blog.dimajix.de/archives/124-Promotional-Video-for-Windows-386.html#comments</comments>
    <wfw:comment>http://blog.dimajix.de/wfwcomment.php?cid=124</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.dimajix.de/rss.php?version=2.0&amp;type=comments&amp;cid=124</wfw:commentRss>
    

    <author>nospam@example.com (Kaya Kupferschmidt)</author>
    <content:encoded>
    While all people are talking about Windows Vista, lets look back in time:&lt;br /&gt;
&lt;br /&gt;
The 80s really were a weird time, with a very strange taste for clothing. And a real laughable highlight is the &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=711&amp;amp;entry_id=124&quot; title=&quot;http://video.google.co.uk/videoplay?docid=4915875929930836239&amp;amp;q=windows+386&amp;amp;b3ta&quot;  onmouseover=&quot;window.status=&#039;http://video.google.co.uk/videoplay?docid=4915875929930836239&amp;amp;q=windows+386&amp;amp;b3ta&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Promotional Video for Windows 386&lt;/a&gt; promoting the wodners of multitasking, with the best part coming at minute 7 after a boring start. Some people even wouldn&#039;t be surprised if it turned out to be &lt;a href=&quot;http://blog.dimajix.de/exit.php?url_id=712&amp;amp;entry_id=124&quot; title=&quot;http://www.osnews.com/permalink.php?news_id=17095&amp;amp;comment_id=206774&quot;  onmouseover=&quot;window.status=&#039;http://www.osnews.com/permalink.php?news_id=17095&amp;amp;comment_id=206774&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;sleazy porn scene.&lt;/a&gt;. It shouldn&#039;t be a surprise that you will not find many hits for the directory David Vik on google.&lt;br /&gt;
&lt;br /&gt;
I am so glad that the 80s are over.&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Mon, 29 Jan 2007 14:32:22 +0100</pubDate>
    <guid isPermaLink="false">http://blog.dimajix.de/archives/124-guid.html</guid>
    
</item>

</channel>
</rss>