<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.7.6(BH)" -->
<?xml-stylesheet href="http://www.w3.org/2000/08/w3c-synd/style.css" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://www.midgard-project.org/planet/rss1.xml">
        <title>Planet Midgard</title>
        <description>Blog postings from the Midgard community</description>
        <link>http://www.midgard-project.org/planet/</link>
       <dc:date>2008-05-12T00:52:36+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://communitizer.blogspot.com/2008/04/autobuilder-for-extras-repository.html"/>
                <rdf:li rdf:resource="http://feeds.feedburner.com/~r/bergie/~3/277236893/midcom-permalink-8be74f8e124f11ddadb87b06a4412afa2afa"/>
                <rdf:li rdf:resource="http://blogs.nemein.com/people/piotras/view/1208851555.html"/>
                <rdf:li rdf:resource="http://feeds.feedburner.com/~r/bergie/~3/273238652/midcom-permalink-28ac8ecc0da711dda42f45dbc10632db32db"/>
                <rdf:li rdf:resource="http://www.andreasn.se/blog/?p=79"/>
                <rdf:li rdf:resource="http://communitizer.blogspot.com/2008/04/rfc-maemo-package-guidelines-mandatory.html"/>
                <rdf:li rdf:resource="http://jukkaz.wordpress.com/2008/04/16/file-system-on-steroids/"/>
                <rdf:li rdf:resource="http://communitizer.blogspot.com/2008/04/self-charging-n810.html"/>
                <rdf:li rdf:resource="http://feeds.feedburner.com/~r/bergie/~3/268583913/midcom-permalink-1fe7311c080111dd92235516231ac9eac9ea"/>
                <rdf:li rdf:resource="http://blogs.nemein.com/people/piotras/view/1207923307.html"/>
                <rdf:li rdf:resource="http://feeds.feedburner.com/~r/bergie/~3/268286623/midcom-permalink-fb89d73e07b011dd92b9e745da63769c769c"/>
                <rdf:li rdf:resource="http://www.andreasn.se/blog/?p=77"/>
                <rdf:li rdf:resource="http://feeds.feedburner.com/~r/bergie/~3/267998779/midcom-permalink-4849d764070611dd8e00f1b4fec77c537c53"/>
                <rdf:li rdf:resource="http://feeds.feedburner.com/~r/bergie/~3/267001417/midcom-permalink-95c8f4b6063411dda1bd8d6839bdeb68eb68"/>
                <rdf:li rdf:resource="http://feeds.feedburner.com/~r/bergie/~3/266337719/midcom-permalink-51ecf32c056d11ddb771ebff2532859a859a"/>
                <rdf:li rdf:resource="http://feeds.feedburner.com/~r/bergie/~3/266328907/midcom-permalink-e5044514056a11ddb771ebff2532859a859a"/>
                <rdf:li rdf:resource="http://blogs.nemein.com/people/piotras/view/1207652141.html"/>
                <rdf:li rdf:resource="http://www.andreasn.se/blog/?p=76"/>
                <rdf:li rdf:resource="http://teroheikkinen.iki.fi/blog/view/midcom_3_coding_with_zend_eclipse.html"/>
                <rdf:li rdf:resource="http://jukkaz.wordpress.com/2008/04/04/jcr-cup-2008/"/>
                <rdf:li rdf:resource="http://jukkaz.wordpress.com/2008/04/04/apachecon-eu-next-week/"/>
                <rdf:li rdf:resource="http://www.andreasn.se/blog/?p=75"/>
                <rdf:li rdf:resource="http://teroheikkinen.iki.fi/blog/view/midgard_1-9-midcom_2-9-getting_close.html"/>
                <rdf:li rdf:resource="http://www.andreasn.se/blog/?p=74"/>
                <rdf:li rdf:resource="http://blogs.nemein.com/people/piotras/view/1206708012.html"/>
                <rdf:li rdf:resource="http://www.andreasn.se/blog/?p=73"/>
                <rdf:li rdf:resource="http://feeds.feedburner.com/~r/bergie/~3/258346457/midcom-permalink-5a581d58fb3f11dcaecb8db897c6dc22dc22"/>
                <rdf:li rdf:resource="http://feeds.feedburner.com/~r/bergie/~3/254339946/midcom-permalink-6ef76ed0f5c711dcb526f38165651c051c05"/>
                <rdf:li rdf:resource="http://blogs.nemein.com/people/piotras/view/1205874132.html"/>
                <rdf:li rdf:resource="http://feeds.feedburner.com/~r/bergie/~3/253672277/midcom-permalink-cfd10c6cf4e511dc9fb2ed2719775c935c93"/>
            </rdf:Seq>
        </items>
    </channel>
    <item rdf:about="http://communitizer.blogspot.com/2008/04/autobuilder-for-extras-repository.html">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-25T17:41:00+00:00</dc:date>
        <dc:creator>Niels Breet &lt;maemo@breet.com&gt;</dc:creator>
        <title>Autobuilder for extras repository public beta</title>
        <link>http://communitizer.blogspot.com/2008/04/autobuilder-for-extras-repository.html</link>
        <description>
&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://bp1.blogger.com/_P1wtpExYl5E/SBH79vqAqHI/AAAAAAAAAAk/4ML1iYSfLzY/s1600-h/extras-builder-mail.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://bp1.blogger.com/_P1wtpExYl5E/SBH79vqAqHI/AAAAAAAAAAk/4ML1iYSfLzY/s400/extras-builder-mail.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5193208883518154866&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;A while ago we discussed the&lt;a href=&quot;http://lists.maemo.org/pipermail//maemo-developers/2007-November/thread.html#12600&quot;&gt; idea of an autobuilder for the extras repository&lt;/a&gt;. We have been working on creating such an &lt;a href=&quot;http://extras-cauldron.garage.maemo.org/HOWTO.html&quot;&gt;autobuilder&lt;/a&gt; and have been testing it in private. As a result we now think it is time to do a tests with a larger group and make it publicly known. Please give it a try and tell us your results.&lt;br /&gt;&lt;br /&gt;- &lt;span style=&quot;font-style: italic;&quot;&gt;What does the autobuilder do?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The autobuilder takes a source package from the incoming queue and tries to build it in a fresh environment. The builder fetches all dependencies from the extras-devel repository. If it can't find the dependency in extras-devel, it will fail and send a mail to the &lt;a href=&quot;https://garage.maemo.org/mailman/listinfo/extras-cauldron-builds&quot;&gt;extras-cauldron-builds&lt;/a&gt; list.&lt;br /&gt;&lt;br /&gt;If there are no problems with the package, the builder can create armel, i386 and source packages. Those will be put in the extras-devel repository after a successful build.&lt;br /&gt;&lt;br /&gt;Instructions for the builder can be found at &lt;a href=&quot;http://extras-cauldron.garage.maemo.org/HOWTO.html&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The builder only handles building one package at a time. If you have dependencies that are not present in the extras-devel repository, please upload these first.&lt;br /&gt;&lt;br /&gt;- &lt;span style=&quot;font-style: italic;&quot;&gt;web-based assistant &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We have also created a &lt;a href=&quot;https://garage.maemo.org/extras-assistant/index.php&quot;&gt;web-based assistant&lt;/a&gt; to help you with requesting rights to upload and creating/uploading of source packages. You can upload packages to the builder with either dput or the assistant.&lt;br /&gt;&lt;br /&gt;- &lt;span style=&quot;font-style: italic;&quot;&gt;How do I get my package into extras?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After a successful build a package will appear in the extras-devel repository. You can move your packages from extras-devel to extras with the &lt;a href=&quot;https://garage.maemo.org/promoter-beta/interface.py&quot;&gt;promotion interface&lt;/a&gt;. Instructions for the promotion interface can be found &lt;a href=&quot;http://extras-cauldron.garage.maemo.org/devel-mover.html&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We would like to invite all developers to take a look at the autobuilder and try it out. Please discuss problems and feature requests on the &lt;a href=&quot;https://lists.maemo.org/mailman/listinfo/maemo-developers&quot;&gt;maemo-developers list&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;More information about our effort can be found at the &lt;a href=&quot;http://extras-cauldron.garage.maemo.org/&quot;&gt;extras-cauldron website&lt;/a&gt;.</description>
    </item>
    <item rdf:about="http://feeds.feedburner.com/~r/bergie/~3/277236893/midcom-permalink-8be74f8e124f11ddadb87b06a4412afa2afa">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-24T22:41:14+00:00</dc:date>
        <dc:creator>Henri Bergius &lt;henri.bergius@iki.fi&gt;</dc:creator>
        <title>Midgard 2: Finally legacy-free</title>
        <link>http://feeds.feedburner.com/~r/bergie/~3/277236893/midcom-permalink-8be74f8e124f11ddadb87b06a4412afa2afa</link>
        <description>
&lt;p&gt;
While &lt;a href=&quot;http://www.flickr.com/photos/bergie/2439346766/&quot;&gt;watching&lt;/a&gt; &lt;a href=&quot;http://ecanuto.blogspot.com/&quot;&gt;Everaldo&lt;/a&gt; work on the upcoming &lt;a href=&quot;http://trac.midgard-project.org/browser/trunk/midgard/apis/mono&quot;&gt;Midgard C# bindings&lt;/a&gt;, I decided to try running &lt;a href=&quot;http://blogs.nemein.com/people/piotras/view/1208851555.html&quot;&gt;Midgard 2 with lighttpd&lt;/a&gt;. After quite a lot of struggling to get &lt;a href=&quot;http://trac.midgard-project.org/browser/trunk/midgard&quot;&gt;latest SVN checkout&lt;/a&gt; to compile on &lt;a href=&quot;http://bergie.iki.fi/blog/switching-to-intel-macbook.html&quot;&gt;my mac&lt;/a&gt;, and some playing with &lt;a href=&quot;http://trac.lighttpd.net/trac/wiki/Docs:ModRewrite&quot;&gt;lighty rewrite rules&lt;/a&gt;, I was greeted with a working &lt;a href=&quot;http://bergie.iki.fi/blog/midcom_3_at_a_glance.html&quot;&gt;MidCOM 3 page&lt;/a&gt;:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://bergie.iki.fi/midcom-serveattachmentguid-824b98a4124f11dd83f94bead2de7fea7fea/midcom3-on-midgard2-and-lighttpd.png&quot;&gt;&lt;img src=&quot;http://bergie.iki.fi/midcom-serveattachmentguid-88e6d368124f11dd97587789b613b901b901/midcom3-on-midgard2-and-lighttpd-tm.jpg&quot; height=&quot;310&quot; width=&quot;400&quot; border=&quot;1&quot; hspace=&quot;4&quot; vspace=&quot;4&quot; alt=&quot;MidCOM 3 running on Midgard 2 and lighttpd&quot; title=&quot;MidCOM 3 running on Midgard 2 and lighttpd&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
So, after &lt;a href=&quot;http://www.kaktus.cc/weblog/view/4658b837d2e9075028380198a39fbc0f.html&quot;&gt;such a long time&lt;/a&gt;, &lt;a href=&quot;http://blogs.nemein.com/people/piotras/view/midgard2---flexibility-rocks.html&quot;&gt;Midgard 2&lt;/a&gt; is finally a running system without any legacy dependencies, independent of &lt;a href=&quot;http://blogs.nemein.com/people/piotras/view/1207923307.html&quot;&gt;HTTP server module&lt;/a&gt; or &lt;a href=&quot;http://blogs.nemein.com/people/piotras/view/1178011811.html&quot;&gt;a specific database engine&lt;/a&gt;. Things will be even more interesting as we will really start using &lt;a href=&quot;http://bergie.iki.fi/blog/interprocess_communications_in_midgard-d-bus_comes_to_the_web.html&quot;&gt;Python, PHP and mono bindings together using D-Bus&lt;/a&gt;.
&lt;/p&gt;

&lt;p style=&quot;text-align:right;font-size:10px;&quot;&gt;Technorati Tags: &lt;a href=&quot;http://www.technorati.com/tag/dbus&quot;&gt;dbus&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/midcom&quot;&gt;midcom&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/midgard&quot;&gt;midgard&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/mono&quot;&gt;mono&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/php&quot;&gt;php&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/lighttpd&quot;&gt;lighttpd&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/python&quot;&gt;python&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=FPqN3fG&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=FPqN3fG&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=YbH5GhG&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=YbH5GhG&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=B7vlhvg&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=B7vlhvg&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=bCl96pg&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=bCl96pg&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/bergie/~4/277236893&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
    </item>
    <item rdf:about="http://blogs.nemein.com/people/piotras/view/1208851555.html">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-22T06:05:55+00:00</dc:date>
        <dc:creator>Piotr Pokora &lt;piotr.pokora@infoglob.pl&gt;</dc:creator>
        <title>Midgard with Lighttpd</title>
        <link>http://blogs.nemein.com/people/piotras/view/1208851555.html</link>
        <description>

&lt;p&gt;Please. Read the whole this simple howto. It's adressed for developers who would like to have Midgard and Midgard2 available as web services on the same machine. Of course, you may still install or compile Apache 1.3 as the second web server.&lt;/p&gt;

&lt;p&gt;First of all you need to install and configure &lt;a href=&quot;http://www.lighttpd.net/&quot;&gt;Lighttpd&lt;/a&gt; web serwer.
On debian I installed it using apt-get:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;apt-get install lighttpd
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Do not forget to stop Apache before installing lighttpd. If you do not, dpkg will return with failure status as lighttpd tries to bind to port 80 by default when package is installed.&lt;/p&gt;

&lt;p&gt;Also, you need to have php5 compiled with fast-cgi support. Again, on debian install it quickly:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;apt-get instal php5-cgi
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Edit cgi's php.ini file (&lt;code&gt;/etc/php5/cgi/php.ini&lt;/code&gt;), and add midgard support:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;extension=midgard2.so
midgard.configuration=&quot;midgard&quot;
midgard.http=&quot;on&quot;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Then configure your new web server. I found these two sites very helpful to configue lighttpd server:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.onlamp.com/pub/a/onlamp/2007/04/05/the-lighttpd-web-server.html&quot;&gt;onlamp.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cyberciti.biz/tips/lighttpd-php-fastcgi-configuration.html&quot;&gt;ciberciti.biz&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Later on, you need to install &lt;a href=&quot;http://www.midgard-project.org&quot;&gt;Midgard2&lt;/a&gt; from &lt;a href=&quot;http://trac.midgard-project.org/browser/trunk/&quot;&gt;trunk&lt;/a&gt;, which is going to be released as alpha2 soon.&lt;/p&gt;

&lt;p&gt;In my case, I configured lighttpd with these options:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;server.port = 81
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Just to have both, Apache and lighttpd available. You may of course use different port if you like.&lt;/p&gt;

&lt;p&gt;Enable required modules, mod_rewrite and mod_fastcgi:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;server.modules              = (
        &quot;mod_access&quot;,
        &quot;mod_alias&quot;,
        &quot;mod_accesslog&quot;,
        &quot;mod_compress&quot;,
        &quot;mod_rewrite&quot;,
        &quot;mod_fastcgi&quot;,
)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Configure fastcgi:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;fastcgi.server = (
    &quot;.php&quot; =&amp;gt; (
            &quot;localhost&quot; =&amp;gt;
                    (
                            &quot;socket&quot; =&amp;gt; &quot;/tmp/php-fastcgi.socket&quot;,
                            &quot;bin-path&quot; =&amp;gt; &quot;/usr/bin/php5-cgi&quot;
                    )
            )
    )
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Configure virtual host:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$HTTP[&quot;host&quot;] == &quot;myhost&quot; {
    server.port = 81
    server.document-root = &quot;/var/lib/midgard/vhosts/myhost/8080&quot;
    url.rewrite-once = ( &quot;^(.*)\.*&quot; =&amp;gt; &quot;midgard-root.php&quot; )
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I use virtual host on 8080 port with Apache, so I wanted to re use its DocumentRoot. You will change it of course, depending on your needs.&lt;/p&gt;

&lt;p&gt;midgard-root.php file should be copied or symlinked from &lt;a href=&quot;http://www.kaktus.cc/weblog/view/1207837374.html&quot;&gt;midcom's git repository&lt;/a&gt;. I do not have to remind that midcom itself should be installed and ready to use.&lt;/p&gt;

&lt;p&gt;Do something you should never do in real life. It seems that lighttpd drops root privileges too quickly and php module is loaded with configured user and group privileges. At least I couldn't manage to open root's configuration files from system configuration directory( which is easily done with Apache ). To establish database connection(s) you must have all secret configuratoin readable for the whole world.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;chmod 644 /etc/midgard-2.0/conf.d/*
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;After this, restart lighttpd:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;/etc/init.d/lighttpd restart
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And open &lt;code&gt;http://myhost:81&lt;/code&gt; with your favourite browser. If all went fine, you should have midcom's web page without style. Reason is that we do not make &lt;code&gt;midcom-static&lt;/code&gt; exception in our hosts' rewrite condition.&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://feeds.feedburner.com/~r/bergie/~3/273238652/midcom-permalink-28ac8ecc0da711dda42f45dbc10632db32db">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-19T00:25:48+00:00</dc:date>
        <dc:creator>Henri Bergius &lt;henri.bergius@iki.fi&gt;</dc:creator>
        <title>GeoClue presentation in FISL 9.0</title>
        <link>http://feeds.feedburner.com/~r/bergie/~3/273238652/midcom-permalink-28ac8ecc0da711dda42f45dbc10632db32db</link>
        <description>
&lt;p&gt;
I'm currently in &lt;a href=&quot;http://en.wikipedia.org/wiki/Porto_Alegre&quot;&gt;Porto Alegre, Brazil&lt;/a&gt; attending the &lt;a href=&quot;http://fisl.softwarelivre.org/9.0/www/&quot;&gt;9th International Free Software Forum&lt;/a&gt; (FISL) - a huge conference with some seven thousand participants. My talk in the event will be about &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/GeoClue&quot;&gt;GeoClue&lt;/a&gt;, the geo-information framework designed for Linux-based &lt;a href=&quot;http://www.gnome.org/mobile/&quot;&gt;mobile&lt;/a&gt; &lt;a href=&quot;http://trolltech.com/products/qtopia&quot;&gt;devices&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
For those unable to be there or missing the 9am talk because of the parties tonight, the slides are now &lt;a href=&quot;http://www.slideshare.net/bergie/geoclue-geoinformation-framework&quot;&gt;available online&lt;/a&gt;:
&lt;/p&gt;

&lt;div style=&quot;width:425px;text-align:left&quot; id=&quot;__ss_360864&quot;&gt;&lt;object style=&quot;margin:0px&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slideshare.net/swf/ssplayer2.swf?doc=fisl9-geoclue-1208563341291158-9&quot;/&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed src=&quot;http://static.slideshare.net/swf/ssplayer2.swf?doc=fisl9-geoclue-1208563341291158-9&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style=&quot;font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/?src=embed&quot;&gt;&lt;img src=&quot;http://static.slideshare.net/swf/logo_embd.png&quot; style=&quot;border:0px none;margin-bottom:-5px&quot; alt=&quot;SlideShare&quot;/&gt;&lt;/a&gt; | &lt;a href=&quot;http://www.slideshare.net/bergie/geoclue-geoinformation-framework?src=embed&quot; title=&quot;View 'GeoClue - geo-information framework' on SlideShare&quot;&gt;View&lt;/a&gt; | &lt;a href=&quot;http://www.slideshare.net/upload?src=embed&quot;&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;
GeoClue is now &lt;a href=&quot;http://lists.freedesktop.org/archives/geoclue/2008-April/000230.html&quot;&gt;nearing release&lt;/a&gt;, and so we will probably be present also in the &lt;a href=&quot;http://guadec.expectnation.com/public/content/main&quot;&gt;GUADEC&lt;/a&gt; and &lt;a href=&quot;http://akademy.kde.org/&quot;&gt;Akademy&lt;/a&gt; conferences this summer.
&lt;/p&gt;

&lt;p style=&quot;text-align:right;font-size:10px;&quot;&gt;Technorati Tags: &lt;a href=&quot;http://www.technorati.com/tag/geoclue&quot;&gt;geoclue&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/fisl&quot;&gt;fisl&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=NO7plbG&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=NO7plbG&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=kbVXtHG&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=kbVXtHG&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=660cI0g&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=660cI0g&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=yQRELNg&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=yQRELNg&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/bergie/~4/273238652&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
    </item>
    <item rdf:about="http://www.andreasn.se/blog/?p=79">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-18T06:50:48+00:00</dc:date>
        <dc:creator>Andreas Nilsson &lt;andreas@andreasn.se&gt;</dc:creator>
        <title>Wallpaper contest</title>
        <link>http://www.andreasn.se/blog/?p=79</link>
        <description>
	&lt;p&gt;As &lt;a href=&quot;http://blogs.gnome.org/thos/2008/04/13/new-wallpapers-for-gnome-224/&quot;&gt;Thomas&lt;/a&gt; and &lt;a href=&quot;http://www.cimitan.com/blog/2008/04/02/gnome-224-wallpaper-contest/&quot;&gt;Andrea&lt;/a&gt; already mentioned, we&amp;#8217;re running a GNOME wallpaper contest.&lt;br /&gt;
We had lots of great submissions already, but we really want yours as well. Go on, &lt;a href=&quot;http://www.cimitan.com/contest/&quot;&gt;submit it today!&lt;/a&gt;
&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://communitizer.blogspot.com/2008/04/rfc-maemo-package-guidelines-mandatory.html">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-17T11:45:00+00:00</dc:date>
        <dc:creator>Niels Breet &lt;maemo@breet.com&gt;</dc:creator>
        <title>[RFC] Maemo package guidelines: mandatory categories</title>
        <link>http://communitizer.blogspot.com/2008/04/rfc-maemo-package-guidelines-mandatory.html</link>
        <description>
&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://bp3.blogger.com/_P1wtpExYl5E/SAccfQDtAeI/AAAAAAAAAAc/_OZR9Sa7Btk/s1600-h/screenshot02.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://bp3.blogger.com/_P1wtpExYl5E/SAccfQDtAeI/AAAAAAAAAAc/_OZR9Sa7Btk/s400/screenshot02.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5190148418779808226&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Here is my first suggestion to clean up the complete mess we have at the moment when it comes to package categories in the maemo extras repository. There is no official list of categories, which has brought us to state we are in now.&lt;br /&gt;&lt;br /&gt;We have these nice categories for example: 'Boingo', 'Canola'. Those should never be a category by themselves. We also have a lot of duplicates like 'cli' ,'Commandline' and 'Web','www' and 'Utilities','utils'.&lt;br /&gt;&lt;br /&gt;This really has to stop as this is confusing for end users. We, the maemo community, need to find a solution and fix this.&lt;br /&gt;&lt;br /&gt;If we look at Debian, we can see that they have the following list of &lt;a href=&quot;http://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections&quot;&gt;categories&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;admin, base, comm, contrib, devel, doc, editors, electronics, embedded, games, gnome, graphics, hamradio, interpreters, kde, libs, libdevel, mail, math, misc, net, news, non-free, oldlibs, otherosfs, perl, python, science, shells, sound, tex, text, utils, web, x11&lt;br /&gt;&lt;br /&gt;My suggestion would be to base our list off the Debian list and remove the categories that are not suitable for Maemo. We might also want to add some categories if we find some missing.&lt;br /&gt;&lt;br /&gt;admin, comm, devel, doc, editors, games, graphics, interpreters, mail, net, news, utils&lt;br /&gt;&lt;br /&gt;and add:&lt;br /&gt;&lt;br /&gt;desktop, database, education, internet, multimedia, office, scientific, security, system, travel&lt;br /&gt;&lt;br /&gt;Please feel free to suggest other categories. Try to keep them as broad as possible. I would really like to get a list of categories where every application can be in at least one category. It would be nice not to need the 'misc' or 'other' category.&lt;br /&gt;&lt;br /&gt;Perhaps it would also be a good idea to have the Application Manager display the pretty name for each category. e.g. comm -&gt; Communication. That might be step 2 though.&lt;br /&gt;&lt;br /&gt;I also would like your feedback on this idea:&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&quot;For diablo we only accept packages in the extras/extras-devel repositories&lt;/span&gt; &lt;span style=&quot;font-style: italic;&quot;&gt;when they have a valid category.&quot;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I'm really not sure if we can do this in time for diablo, but at least we can try to get the community to agree on this. I don't think we can do anything for existing repositories, but at least we could try for the new ones.&lt;br /&gt;&lt;br /&gt;Please respond with your ideas in the comments section, but keep it to the category subject only.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Edit:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There seems to be a &lt;a href=&quot;http://hildon-app-mgr.garage.maemo.org/packaging-stable.html&quot;&gt;list of categories&lt;/a&gt; for the Application Manager. I don't think that list has enough categories, but it is a start.</description>
    </item>
    <item rdf:about="http://jukkaz.wordpress.com/2008/04/16/file-system-on-steroids/">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-16T13:17:17+00:00</dc:date>
        <dc:creator>Jukka Zitting &lt;jz@yukatan.fi&gt;</dc:creator>
        <title>File system on steroids</title>
        <link>http://jukkaz.wordpress.com/2008/04/16/file-system-on-steroids/</link>
        <description>
A</description>
    </item>
    <item rdf:about="http://communitizer.blogspot.com/2008/04/self-charging-n810.html">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-15T12:26:00+00:00</dc:date>
        <dc:creator>Niels Breet &lt;maemo@breet.com&gt;</dc:creator>
        <title>Self charging N810</title>
        <link>http://communitizer.blogspot.com/2008/04/self-charging-n810.html</link>
        <description>
&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://bp0.blogger.com/_P1wtpExYl5E/SASEYQDtAdI/AAAAAAAAAAU/7dhhwCot4Xw/s1600-h/15042008339.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;http://bp0.blogger.com/_P1wtpExYl5E/SASEYQDtAdI/AAAAAAAAAAU/7dhhwCot4Xw/s400/15042008339.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5189418222799880658&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A while ago I found out that it was possible to charge my N810 via USB connected to a regular PC. This can be very convenient if you don't have a socket available for a charger.&lt;br /&gt;&lt;br /&gt;The Nokia N810 has the ability to be a USB host. It can provide a little bit of power via it's micro-USB port. As you can see in the picture, the device notices that the charger is connected.&lt;br /&gt;&lt;br /&gt;Tools needed for this trick:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Nokia USB charger&lt;/li&gt;&lt;li&gt;USB F-F adapter&lt;/li&gt;&lt;li&gt;Standard micro-USB cable&lt;/li&gt;&lt;/ul&gt;Software:&lt;br /&gt;&lt;br /&gt;Urho Konttori's &lt;a href=&quot;https://garage.maemo.org/frs/download.php/3443/usbcontrol-1.0_all.deb&quot;&gt;usbcontrol&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;By now you should probably already know that this about the same as &lt;a href=&quot;http://en.wikipedia.org/wiki/Perpetual_motion&quot;&gt;Perpetual motion&lt;/a&gt;, a great idea, but &lt;i&gt;impossible&lt;/i&gt; (Without rewriting the laws of physics).&lt;br /&gt;&lt;br /&gt;But still, it is good fun to see the charging notification pop up.</description>
    </item>
    <item rdf:about="http://feeds.feedburner.com/~r/bergie/~3/268583913/midcom-permalink-1fe7311c080111dd92235516231ac9eac9ea">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-11T19:54:41+00:00</dc:date>
        <dc:creator>Henri Bergius &lt;henri.bergius@iki.fi&gt;</dc:creator>
        <title>Numpty Physics and Fennec: the tablet is becoming more fun</title>
        <link>http://feeds.feedburner.com/~r/bergie/~3/268583913/midcom-permalink-1fe7311c080111dd92235516231ac9eac9ea</link>
        <description>
&lt;p&gt;
I've been using my N810 as &lt;a href=&quot;http://bergie.iki.fi/blog/the_universal_communicator.html&quot;&gt;sort of an universal communicator&lt;/a&gt; for a while now, and for this it has generally served well. The only thing I really miss is &lt;a href=&quot;http://www.internettablettalk.com/2007/12/13/why-the-nokia-n810-isnt-on-times-top-10-gadgets-of-the-year/&quot;&gt;Skype video calls&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
But other than that, I haven't been using the tablet too much. In real-world usage I've found &lt;a href=&quot;http://tabletui.wordpress.com/2008/02/03/tablet-heart-web-browser-part-i/&quot;&gt;the browser&lt;/a&gt; way too unresponsive, and the RSS reader &lt;a href=&quot;http://www.internettablettalk.com/forums/showthread.php?t=13252&quot;&gt;too limited&lt;/a&gt;. But now, thanks to two very promising projects the tablet is becoming fun again:
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;&lt;a href=&quot;http://wiki.mozilla.org/Mobile/FennecVision&quot;&gt;Fennec&lt;/a&gt;&lt;/strong&gt; is the mobile version of the Firefox browser with &lt;a href=&quot;http://arstechnica.com/news.ars/post/20080409-first-look-mozilla-fennec-targets-handheld-browser-market.html&quot;&gt;heavy performance optimizations&lt;/a&gt; (&lt;a href=&quot;http://people.mozilla.org/~vladimir/fennec.install&quot;&gt;install&lt;/a&gt;):
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://bergie.iki.fi/midcom-serveattachmentguid-18daa0b6080111ddb329cb892cb2b17fb17f/fennec-n810-bergie-20080411.png&quot;&gt;&lt;img src=&quot;http://bergie.iki.fi/midcom-serveattachmentguid-1b3311cc080111dd86e9172cd95adad2dad2/fennec-n810-bergie-20080411-tm.jpg&quot; height=&quot;240&quot; width=&quot;400&quot; border=&quot;1&quot; hspace=&quot;4&quot; vspace=&quot;4&quot; alt=&quot;Fennec on N810&quot; title=&quot;Fennec on N810&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;&lt;a href=&quot;https://garage.maemo.org/projects/numptyphysics/&quot;&gt;Numpty Physics&lt;/a&gt;&lt;/strong&gt; is a maemo port of the awesome &lt;a href=&quot;http://en.wikipedia.org/wiki/Crayon_Physics&quot;&gt;Crayon Physics&lt;/a&gt; puzzle game where you &lt;a href=&quot;http://www.youtube.com/watch?v=QsTqspnvAaI&quot;&gt;draw objects&lt;/a&gt; and &lt;a href=&quot;http://www.youtube.com/watch?v=6Za9kJGmENk&amp;amp;feature=related&quot;&gt;play laws of physics&lt;/a&gt; to get a ball moving to the end of a track (&lt;a href=&quot;https://garage.maemo.org/frs/?group_id=638&amp;amp;release_id=1657&quot;&gt;download&lt;/a&gt;):
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://bergie.iki.fi/midcom-serveattachmentguid-1e601246080111dd8771b3088983f88af88a/numptyphysics-maemo.png&quot;&gt;&lt;img src=&quot;http://bergie.iki.fi/midcom-serveattachmentguid-1f36b60c080111dda7b965ae6b11eb67eb67/numptyphysics-maemo-tm.jpg&quot; height=&quot;240&quot; width=&quot;400&quot; border=&quot;1&quot; hspace=&quot;4&quot; vspace=&quot;4&quot; alt=&quot;Numpty Physics explanatory track&quot; title=&quot;Numpty Physics explanatory track&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Good stuff!
&lt;/p&gt;

&lt;p style=&quot;text-align:right;font-size:10px;&quot;&gt;Technorati Tags: &lt;a href=&quot;http://www.technorati.com/tag/maemo&quot;&gt;maemo&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/n810&quot;&gt;n810&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/fennec&quot;&gt;fennec&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=sbgNZIG&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=sbgNZIG&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=XuDjOVG&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=XuDjOVG&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=XnuGdDg&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=XnuGdDg&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=xTcLvGg&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=xTcLvGg&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/bergie/~4/268583913&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
    </item>
    <item rdf:about="http://blogs.nemein.com/people/piotras/view/1207923307.html">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-11T12:15:07+00:00</dc:date>
        <dc:creator>Piotr Pokora &lt;piotr.pokora@infoglob.pl&gt;</dc:creator>
        <title>MidCOM3 without apache module</title>
        <link>http://blogs.nemein.com/people/piotras/view/1207923307.html</link>
        <description>

&lt;p&gt;This is really &lt;em&gt;HOT&lt;/em&gt;!&lt;/p&gt;

&lt;p&gt;It's proof of concept to work with Midgard without its Apache module.
And the concept is cool :) Especially with this lovely MidCOM3 screenshot.&lt;/p&gt;

&lt;p&gt;&lt;img align=&quot;left&quot; src=&quot;http://blogs.nemein.com/people/piotras/midcom-serveattachmentguid-d3875f40163f597eb21bea80c55738d4/midcom3-without-apache-module.png&quot;&gt;&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://feeds.feedburner.com/~r/bergie/~3/268286623/midcom-permalink-fb89d73e07b011dd92b9e745da63769c769c">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-11T10:21:00+00:00</dc:date>
        <dc:creator>Henri Bergius &lt;henri.bergius@iki.fi&gt;</dc:creator>
        <title>GitHub for MidCOM 3 developers</title>
        <link>http://feeds.feedburner.com/~r/bergie/~3/268286623/midcom-permalink-fb89d73e07b011dd92b9e745da63769c769c</link>
        <description>
&lt;p&gt;
Yesterday &lt;a href=&quot;http://www.kaktus.cc/&quot;&gt;Arttu Manninen&lt;/a&gt; posted notes on &lt;a href=&quot;http://www.kaktus.cc/weblog/view/1207837374.html&quot;&gt;how to use git for MidCOM 3 development&lt;/a&gt;. In addition to the &lt;a href=&quot;http://repo.or.cz/w/midcom.git&quot;&gt;repo.org.cz usage&lt;/a&gt; he described, the other way to work on &lt;a href=&quot;http://bergie.iki.fi/blog/midcom_3_at_a_glance.html&quot;&gt;the next generation PHP framework for Midgard&lt;/a&gt; is using the &lt;a href=&quot;http://github.com/bergie/midcom&quot;&gt;GitHub&lt;/a&gt; service.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://railsontherun.com/2008/3/3/how-to-use-github-and-submit-a-patch&quot;&gt;Rails on the Run has quite good tutorial&lt;/a&gt;.
&lt;/p&gt;

&lt;p style=&quot;text-align:right;font-size:10px;&quot;&gt;Technorati Tags: &lt;a href=&quot;http://www.technorati.com/tag/midcom&quot;&gt;midcom&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/midgard&quot;&gt;midgard&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/git&quot;&gt;git&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/github&quot;&gt;github&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=yoaVBiG&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=yoaVBiG&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=lLtzfyG&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=lLtzfyG&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=ptq3xXg&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=ptq3xXg&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=FHNC6rg&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=FHNC6rg&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/bergie/~4/268286623&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
    </item>
    <item rdf:about="http://www.andreasn.se/blog/?p=77">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-11T08:14:29+00:00</dc:date>
        <dc:creator>Andreas Nilsson &lt;andreas@andreasn.se&gt;</dc:creator>
        <title>Prepared for Saturdays activities</title>
        <link>http://www.andreasn.se/blog/?p=77</link>
        <description>
	&lt;p&gt;As requested by Mr. Andersson.&lt;/p&gt;
	&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/andreasnilsson/2405289552/&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3038/2405289552_fdef210458.jpg?v=0&quot; alt=&quot;the costume&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://feeds.feedburner.com/~r/bergie/~3/267998779/midcom-permalink-4849d764070611dd8e00f1b4fec77c537c53">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-10T13:59:05+00:00</dc:date>
        <dc:creator>Henri Bergius &lt;henri.bergius@iki.fi&gt;</dc:creator>
        <title>Shell usage statistics</title>
        <link>http://feeds.feedburner.com/~r/bergie/~3/267998779/midcom-permalink-4849d764070611dd8e00f1b4fec77c537c53</link>
        <description>
&lt;p&gt;
This meme seems to be &lt;a href=&quot;http://jimmac.musichall.cz/log/?p=427&quot;&gt;running&lt;/a&gt; &lt;a href=&quot;http://bethesignal.org/blog/2008/04/10/shell-history-stats/&quot;&gt;again&lt;/a&gt;:
&lt;/p&gt;

&lt;pre&gt;
Compass:~ bergie$ 
history|awk '{print $2}'|awk 'BEGIN {FS=&amp;quot;|&amp;quot;} {print $1}'|sort|uniq -c | sort -nr |head -n 10
 209 git
  47 svn
  30 cd
  24 sudo
  24 phing
  18 ssh
  16 ls
  13 vi
  12 ~/ajatus_ssh_replicate
  12 scp
&lt;/pre&gt;

&lt;p&gt;
Interesting to see how the &lt;a href=&quot;http://bergie.iki.fi/blog/top-ten-unix-shell-commands.html&quot;&gt;stats have changed in one and half years&lt;/a&gt;. Main changes are due to &lt;a href=&quot;http://www.ajatus.info/&quot;&gt;Ajatus&lt;/a&gt; &lt;a href=&quot;http://bergie.iki.fi/blog/replicating_ajatus_with_your_colleagues.html&quot;&gt;replication&lt;/a&gt;, and &lt;a href=&quot;http://repo.or.cz/w/midcom.git&quot;&gt;git&lt;/a&gt; being used for &lt;a href=&quot;http://bergie.iki.fi/blog/midcom_3_at_a_glance.html&quot;&gt;MidCOM 3 development&lt;/a&gt;.
&lt;/p&gt;

&lt;p style=&quot;text-align:right;font-size:10px;&quot;&gt;Technorati Tags: &lt;a href=&quot;http://www.technorati.com/tag/history&quot;&gt;history&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/shell&quot;&gt;shell&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/unix&quot;&gt;unix&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=C8wyFUG&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=C8wyFUG&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=iOdf1ZG&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=iOdf1ZG&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=tJasHjg&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=tJasHjg&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=dCw3Ybg&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=dCw3Ybg&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/bergie/~4/267998779&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
    </item>
    <item rdf:about="http://feeds.feedburner.com/~r/bergie/~3/267001417/midcom-permalink-95c8f4b6063411dda1bd8d6839bdeb68eb68">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-09T12:58:01+00:00</dc:date>
        <dc:creator>Henri Bergius &lt;henri.bergius@iki.fi&gt;</dc:creator>
        <title>Zenburn colors for PHP editing in SubEthaEdit</title>
        <link>http://feeds.feedburner.com/~r/bergie/~3/267001417/midcom-permalink-95c8f4b6063411dda1bd8d6839bdeb68eb68</link>
        <description>
&lt;p&gt;
In &lt;a href=&quot;http://nemein.com/en/&quot;&gt;my company&lt;/a&gt; we're using the &lt;a href=&quot;http://www.codingmonkeys.de/subethaedit/&quot;&gt;SubEthaEdit collaborative editor&lt;/a&gt; for our development work. It is nice to be able to share editing sessions when pair programming, or just showing a particular solution to a colleague.
&lt;/p&gt;

&lt;p&gt;
Yesterday's &lt;a href=&quot;http://del.icio.us/popular/&quot;&gt;del.icio.us popular&lt;/a&gt; alerted me to the &lt;a href=&quot;http://en.wikipedia.org/wiki/Zenburn&quot;&gt;Zenburn color scheme for programmers&lt;/a&gt;. It is a quite nice low-contrast color scheme developed by &lt;a href=&quot;http://slinky.imukuppi.org/2006/10/31/just-some-alien-fruit-salad-to-keep-you-in-the-zone/&quot;&gt;Jani Nurminen&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
To try it out, I made a SubEthaEdit color scheme for using it with the PHP-HTML &lt;a href=&quot;http://www.codingmonkeys.de/subethaedit/modes.html&quot;&gt;mode&lt;/a&gt;:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://bergie.iki.fi/midcom-serveattachmentguid-93307e4a063411ddbef1792978a7c691c691/zenburn-subethaedit-php.png&quot;&gt;&lt;img src=&quot;http://bergie.iki.fi/midcom-serveattachmentguid-94fc60f4063411dd903af15d771341ec41ec/zenburn-subethaedit-php-tm.jpg&quot; height=&quot;129&quot; width=&quot;398&quot; border=&quot;1&quot; hspace=&quot;0&quot; vspace=&quot;4&quot; alt=&quot;Zenburn in SubEthaEdit's PHP mode&quot; title=&quot;Zenburn in SubEthaEdit's PHP mode&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
The color scheme file is &lt;a href=&quot;http://www.nehmer.net/~bergie/ZenBurn-PHP-HTML.seestyle&quot;&gt;available for download&lt;/a&gt;. If others are interested in collaborating on this, the scheme is also in a &lt;a href=&quot;http://github.com/bergie/subethaedit-zenburn/tree/master&quot;&gt;GitHub repo&lt;/a&gt;.
&lt;/p&gt;

&lt;p style=&quot;text-align:right;font-size:10px;&quot;&gt;Technorati Tags: &lt;a href=&quot;http://www.technorati.com/tag/osx&quot;&gt;osx&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/php&quot;&gt;php&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/zenburn&quot;&gt;zenburn&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/subethaedit&quot;&gt;subethaedit&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=plfAOyG&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=plfAOyG&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=kKhYZfG&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=kKhYZfG&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=l8SOAYg&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=l8SOAYg&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=hmejkeg&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=hmejkeg&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/bergie/~4/267001417&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
    </item>
    <item rdf:about="http://feeds.feedburner.com/~r/bergie/~3/266337719/midcom-permalink-51ecf32c056d11ddb771ebff2532859a859a">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-08T13:11:37+00:00</dc:date>
        <dc:creator>Henri Bergius &lt;henri.bergius@iki.fi&gt;</dc:creator>
        <title>Interprocess communications in Midgard: D-Bus comes to the web</title>
        <link>http://feeds.feedburner.com/~r/bergie/~3/266337719/midcom-permalink-51ecf32c056d11ddb771ebff2532859a859a</link>
        <description>
&lt;p&gt;
In his recent blog post, &lt;a href=&quot;http://nemein.com/en/people/piotras/&quot;&gt;Piotr Pokora&lt;/a&gt; showed &lt;a href=&quot;http://blogs.nemein.com/people/piotras/view/1207652141.html&quot;&gt;how the the D-Bus API will work&lt;/a&gt; in &lt;a href=&quot;http://trac.midgard-project.org/milestone/Midgard%202.0&quot;&gt;Midgard 2&lt;/a&gt;. &lt;a href=&quot;http://en.wikipedia.org/wiki/D-Bus&quot;&gt;D-Bus&lt;/a&gt; is an interprocess communications system that is used heavily in modern Linux desktops like &lt;a href=&quot;http://en.wikipedia.org/wiki/GNOME&quot;&gt;GNOME&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/KDE_4&quot;&gt;KDE&lt;/a&gt;. With &lt;a href=&quot;http://www.midgard-project.org/&quot;&gt;Midgard&lt;/a&gt;, the same system now becomes available for PHP and web applications:
&lt;/p&gt;

&lt;blockquote&gt;
&lt;strong&gt;midgard_python&lt;/strong&gt; &amp;quot;service&amp;quot;:
&lt;/blockquote&gt;

&lt;blockquote&gt;&lt;pre&gt;
import dbus.mainloop.glib
import _midgard as midgard

def mbus_callback(object, arg):
        print &amp;quot;Hi! I am midgard_dbus from midgard-python. I got message:&amp;quot;
        print object.get_message()

mbus = midgard.dbus(&amp;quot;/midgard_article&amp;quot;)
mbus.connect(&amp;quot;notified&amp;quot;, mbus_callback, &amp;quot;foo&amp;quot;)

mainloop = gobject.MainLoop()
mainloop.run()
&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
&lt;strong&gt;midgard-php&lt;/strong&gt; &amp;quot;client&amp;quot;:
&lt;/blockquote&gt;

&lt;blockquote&gt;&lt;pre&gt;
$message = &amp;quot;Greetings from midgard-php!(&amp;quot; . mgd_version() . &amp;quot;) PHP ver.&amp;quot; . phpversion();
midgard_dbus::send(&amp;quot;/midgard_article&amp;quot;, $message);
&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
I started php script which immidietialy[sic] ended, and on midgard-python service's terminal I got this message:
&lt;/blockquote&gt;

&lt;blockquote&gt;&lt;pre&gt;
Hi! I am midgard_dbus from midgard-python. I got message:
Greetings from midgard-php! (2.0alpha0) PHP ver.5.2.5-3
&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;
This is a major milestone in our greater plan for the future of Midgard, and should be interesting to also other PHP and web application developers.
&lt;/p&gt;

&lt;p&gt;
Good work, Piotras!
&lt;/p&gt;

&lt;p style=&quot;text-align:right;font-size:10px;&quot;&gt;Technorati Tags: &lt;a href=&quot;http://www.technorati.com/tag/dbus&quot;&gt;dbus&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/midgard&quot;&gt;midgard&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/php&quot;&gt;php&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/python&quot;&gt;python&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=mZoUebG&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=mZoUebG&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=fjDeP3G&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=fjDeP3G&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=9HPmVog&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=9HPmVog&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=dDu1Eng&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=dDu1Eng&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/bergie/~4/266337719&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
    </item>
    <item rdf:about="http://feeds.feedburner.com/~r/bergie/~3/266328907/midcom-permalink-e5044514056a11ddb771ebff2532859a859a">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-08T12:54:15+00:00</dc:date>
        <dc:creator>Henri Bergius &lt;henri.bergius@iki.fi&gt;</dc:creator>
        <title>Beyond Google Maps: Mapstraction is a good starting point</title>
        <link>http://feeds.feedburner.com/~r/bergie/~3/266328907/midcom-permalink-e5044514056a11ddb771ebff2532859a859a</link>
        <description>
&lt;p&gt;
&lt;img src=&quot;http://bergie.iki.fi/midcom-serveattachmentguid-e2ce634c056a11dd80add7e325c084b584b5/google-maps-expert.jpg&quot; height=&quot;206&quot; width=&quot;200&quot; border=&quot;1&quot; align=&quot;right&quot; hspace=&quot;8&quot; vspace=&quot;4&quot; alt=&quot;Some shops on map&quot; title=&quot;Some shops on map&quot; /&gt;&lt;br /&gt;A List Apart 256 has a very interesting article on &lt;a href=&quot;http://www.alistapart.com/articles/takecontrolofyourmaps&quot;&gt;Taking Control of Your Maps&lt;/a&gt;, explaining how to provide richer and more customized web map solutions using tools like &lt;a href=&quot;http://www.openlayers.org/&quot;&gt;OpenLayers&lt;/a&gt; and &lt;a href=&quot;http://mapnik.org/&quot;&gt;Mapnik&lt;/a&gt;, and the free data provided by &lt;a href=&quot;http://www.openstreetmap.org/&quot;&gt;OpenStreetMap&lt;/a&gt;:
&lt;/p&gt;

&lt;blockquote&gt;
For the practical developer who wants to add geospatial information to a site or application, the Google Maps API has been an easy call.
&lt;br /&gt;&lt;br /&gt;But, perhaps no longer. As websites mature and the demand for geographic applications grow, the old mashup arrangement is starting to chafe. Mapping components are more and more vital, and so we demand greater control, expressiveness, and functionality from them.
&lt;br /&gt;&lt;br /&gt;Fortunately, as in many aspects of internet technology, an ecology of open source online mapping tools has emerged alongside the market leader. It is now possible to replicate Google Maps’ functionality with open source software and produce high-quality mapping applications tailored to our design goals. The question becomes, then, how?
&lt;/blockquote&gt;

&lt;p&gt;
While setting up your own map server might be a lot of effort, &lt;a href=&quot;http://www.mapstraction.com/&quot;&gt;Mapstraction&lt;/a&gt; could provide a nice way to move beyond the &amp;quot;same old&amp;quot; Google Maps. With the same javascript you can experiment with different map providers like &lt;a href=&quot;http://www.mapstraction.com/demo.php?map=openstreetmap&quot;&gt;OpenStreetMap&lt;/a&gt;, &lt;a href=&quot;http://www.mapstraction.com/demo.php?map=yahoo&quot;&gt;Yahoo!&lt;/a&gt; and &lt;a href=&quot;http://www.mapstraction.com/demo.php?map=microsoft&quot;&gt;Microsoft&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
Mapstraction comes bundled with &lt;a href=&quot;http://www.midgard-project.org/&quot;&gt;Midgard's&lt;/a&gt; &lt;a href=&quot;http://en.wikipedia.org/wiki/GeoCMS&quot;&gt;GeoCMS&lt;/a&gt; component, &lt;a href=&quot;http://pear.midcom-project.org/index.php?package=org_routamc_positioning&amp;amp;downloads&quot;&gt;org.routamc.positioning&lt;/a&gt;. Switching map providers can be done in &lt;a href=&quot;http://www.midgard-project.org/documentation/midcom-component-configuration/&quot;&gt;component configuration&lt;/a&gt;, and then displaying things on a map is very straightforward:
&lt;/p&gt;

&lt;pre&gt;
$map = new org_routamc_positioning_map('my_photo_map');
foreach ($photos as $photo)
{
    $map-&amp;gt;add_object($photo);
}
$map-&amp;gt;show(400, 200);
&lt;/pre&gt;

&lt;p style=&quot;text-align:right;font-size:10px;&quot;&gt;Technorati Tags: &lt;a href=&quot;http://www.technorati.com/tag/mapstraction&quot;&gt;mapstraction&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/midcom&quot;&gt;midcom&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/midgard&quot;&gt;midgard&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/openlayers&quot;&gt;openlayers&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/openstreetmap&quot;&gt;openstreetmap&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/mapnik&quot;&gt;mapnik&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=4GJw6qG&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=4GJw6qG&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=cLgt3JG&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=cLgt3JG&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=xxtrtBg&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=xxtrtBg&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=hWygdUg&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=hWygdUg&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/bergie/~4/266328907&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
    </item>
    <item rdf:about="http://blogs.nemein.com/people/piotras/view/1207652141.html">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-08T08:55:41+00:00</dc:date>
        <dc:creator>Piotr Pokora &lt;piotr.pokora@infoglob.pl&gt;</dc:creator>
        <title>Basics of midgard_dbus</title>
        <link>http://blogs.nemein.com/people/piotras/view/1207652141.html</link>
        <description>

&lt;p&gt;midgard_dbus API is &lt;strong&gt;very&lt;/strong&gt; simple, but my approach was to make it just simple as possible. Basically we have two major methods of midgard_dbus:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;constructor, which registers object at path&lt;/li&gt;
&lt;li&gt;send, which asynchronously send message to object at given path&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;New initialized object doesn't do anything special. It just waits for any call to him and then emits &quot;notified&quot; signal, which you can connect callback to.&lt;/p&gt;

&lt;p&gt;I tested simple code with &lt;a href=&quot;http://www.midgard-project.org/documentation/php_midgard_core/&quot;&gt;midgard-php&lt;/a&gt; and &lt;a href=&quot;http://www.midgard-project.org/documentation/python_midgard/&quot;&gt;midgard-python&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;midgard_python&lt;/strong&gt; &quot;service&quot;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import dbus.mainloop.glib
import _midgard as midgard

def mbus_callback(object, arg):
        print &quot;Hi! I am midgard_dbus from midgard-python. I got message:&quot;
        print object.get_message()

mbus = midgard.dbus(&quot;/midgard_article&quot;)
mbus.connect(&quot;notified&quot;, mbus_callback, &quot;foo&quot;)

mainloop = gobject.MainLoop()
mainloop.run()
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;midgard-php&lt;/strong&gt; &quot;client&quot;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$message = &quot;Greetings from midgard-php!(&quot; . mgd_version() . &quot;) PHP ver.&quot; . phpversion();
midgard_dbus::send(&quot;/midgard_article&quot;, $message);
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I started php script which immidietialy ended, and on midgard-python service's terminal I got this message:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Hi! I am midgard_dbus from midgard-python. I got message:
Greetings from midgard-php! (2.0alpha0) PHP ver.5.2.5-3
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Probably the code will be soon ported to 1-9 branch, so I will be able to test midgard_dbus in Apache environment. But for now, basic idea looks fine and works fine. We just notify objects at path with particular message, and local proccess does the rest with connected callbacks.&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://www.andreasn.se/blog/?p=76">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-07T13:08:43+00:00</dc:date>
        <dc:creator>Andreas Nilsson &lt;andreas@andreasn.se&gt;</dc:creator>
        <title>New Imendio website!</title>
        <link>http://www.andreasn.se/blog/?p=76</link>
        <description>
	&lt;p&gt;We silently launched the new&lt;a href=&quot;http://www.imendio.com&quot;&gt; imendio.com&lt;/a&gt; website a little more than a week ago. It feels really nice to finally have it out in the public, being quite a while in the works.&lt;br /&gt;
Working from the initial design by Stefan at &lt;a href=&quot;http://pixelperfect.se/&quot;&gt;Pixelperfect&lt;/a&gt; we now have a site that better reflects what we do and defines a style we can build upon for a long time to come.&lt;/p&gt;
	&lt;p&gt;Oh, and &lt;a href=&quot;http://www.codeisart.org&quot;&gt;Code is Art!&lt;/a&gt;
&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://teroheikkinen.iki.fi/blog/view/midcom_3_coding_with_zend_eclipse.html">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-05T13:47:28+00:00</dc:date>
        <dc:creator>Tero Heikkinen &lt;tero.heikkinen@gubit.fi&gt;</dc:creator>
        <title>MidCOM 3 coding with Zend Eclipse</title>
        <link>http://teroheikkinen.iki.fi/blog/view/midcom_3_coding_with_zend_eclipse.html</link>
        <description>

&lt;p&gt;
Lately I've doing some developement of &lt;a href=&quot;http://repo.or.cz/w/midcom.git&quot;&gt;MidCOM 3.0&lt;/a&gt; with &lt;a href=&quot;http://www.zend.com/en/products/studio/&quot;&gt;Zend Studio for Eclipse&lt;/a&gt;. Coding conventions are important to follow in order to maintain code readibility.
&lt;/p&gt;
&lt;p&gt;
So far I've been able to configure my Zend editor but one issue persist.
&lt;/p&gt;
&lt;p&gt;
Zend Studio makes
&lt;/p&gt;
&lt;pre&gt;
if($something)
{
return null;
}else
{
return null;
}
&lt;/pre&gt;
&lt;p&gt;
 
&lt;/p&gt;
&lt;p&gt;
Right way
&lt;/p&gt;
&lt;pre&gt;
if($something)
{
return null;
}
else
{
return null;
}
&lt;/pre&gt;
&lt;p&gt;
But in the whole it's a very usable IDE. Code formatting settings that I use can be downloaded &lt;a href=&quot;http://teroheikkinen.iki.fi/midcom-static/blobs/c/ca24cb34031611dd845ae731f4f7e61ae61a_midcom_coding_standard.xml&quot;&gt;here.&lt;/a&gt;
&lt;/p&gt;</description>
    </item>
    <item rdf:about="http://jukkaz.wordpress.com/2008/04/04/jcr-cup-2008/">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-04T06:38:40+00:00</dc:date>
        <dc:creator>Jukka Zitting &lt;jz@yukatan.fi&gt;</dc:creator>
        <title>JCR Cup 2008</title>
        <link>http://jukkaz.wordpress.com/2008/04/04/jcr-cup-2008/</link>
        <description>
A</description>
    </item>
    <item rdf:about="http://jukkaz.wordpress.com/2008/04/04/apachecon-eu-next-week/">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-04T06:08:47+00:00</dc:date>
        <dc:creator>Jukka Zitting &lt;jz@yukatan.fi&gt;</dc:creator>
        <title>ApacheCon EU next week</title>
        <link>http://jukkaz.wordpress.com/2008/04/04/apachecon-eu-next-week/</link>
        <description>
A</description>
    </item>
    <item rdf:about="http://www.andreasn.se/blog/?p=75">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-02T12:32:37+00:00</dc:date>
        <dc:creator>Andreas Nilsson &lt;andreas@andreasn.se&gt;</dc:creator>
        <title>Launching GNOME Artwork Requests</title>
        <link>http://www.andreasn.se/blog/?p=75</link>
        <description>
	&lt;p&gt;One thing that came up during the &lt;a href=&quot;http://live.gnome.org/ArtMeeting080329&quot;&gt;Art Meeting last week&lt;/a&gt; was that while the art team get lots of request for artwork, it&amp;#8217;s really hard to keep track of them. Some are requested in Bugzilla, some on mailing-lists and some are individual requests to artists on IRC, via e-mail or on a conference. Things get forgotten and developers end up wondering if we didn&amp;#8217;t want to do it, are too busy or simply forgot about it (often it&amp;#8217;s a combination of option 2 and 3).&lt;/p&gt;
	&lt;p&gt;At the same time, new artists that are interested in helping out with GNOME artwork have a hard time figuring out where to start.&lt;/p&gt;
	&lt;p&gt;To fix this, we have set up a page in the GNOME wiki called &lt;a href=&quot;http://live.gnome.org/GnomeArt/ArtRequests&quot;&gt;&lt;strong&gt;Art Requests&lt;/strong&gt;&lt;/a&gt;, heavily inspired by both &lt;a href=&quot;http://fedoraproject.org/wiki/Artwork/DesignService&quot;&gt;Fedora Design Service&lt;/a&gt; and &lt;a href=&quot;http://tango.freedesktop.org/Tango_Fridays&quot;&gt;Tango Fridays&lt;/a&gt;.&lt;/p&gt;
	&lt;p&gt;&lt;strong&gt;Developers:&lt;/strong&gt; Please add any artwork requests if you have something you need help with.&lt;/p&gt;
	&lt;p&gt;&lt;strong&gt;Artists:&lt;/strong&gt; Pick a issue you want to work on and add your name to it.
&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://teroheikkinen.iki.fi/blog/view/midgard_1-9-midcom_2-9-getting_close.html">
        <dc:format>text/html</dc:format>
        <dc:date>2008-03-29T11:23:17+00:00</dc:date>
        <dc:creator>Tero Heikkinen &lt;tero.heikkinen@gubit.fi&gt;</dc:creator>
        <title>Midgard 1.9+Midcom 2.9. Getting close.</title>
        <link>http://teroheikkinen.iki.fi/blog/view/midgard_1-9-midcom_2-9-getting_close.html</link>
        <description>

&lt;p&gt;
Last few days I've been running some test installations of Midgard 1.9+Midcom 2.9. I've been making those on a clean machine and I can say that we are getting closer for a successfull one command install.
&lt;/p&gt;
&lt;p&gt;
Currently only issues that remain in the process are minor glitches, missing packages nothing very major in my point of view. There is some work left with Midcom in order to get things really running but I can say that datagard's quick install quality is rising. Good work &lt;a href=&quot;http://blogs.nemein.com/people/piotras/&quot;&gt;Piotras&lt;/a&gt;!&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;
Next week means more tests. I've promised myself that when I start really playing with &lt;a href=&quot;http://repo.or.cz/w/midcom.git&quot;&gt;Midcom 3.0&lt;/a&gt; it should not require installing stable configuration (1.8+2.8) first in order to get database's and asgard up'n'running.
&lt;/p&gt;
&lt;p&gt;
Now time to revert the virtual machine and make a new test run.   
&lt;/p&gt;</description>
    </item>
    <item rdf:about="http://www.andreasn.se/blog/?p=74">
        <dc:format>text/html</dc:format>
        <dc:date>2008-03-29T10:45:11+00:00</dc:date>
        <dc:creator>Andreas Nilsson &lt;andreas@andreasn.se&gt;</dc:creator>
        <title>Art meeting part deux</title>
        <link>http://www.andreasn.se/blog/?p=74</link>
        <description>
	&lt;p&gt;Our &lt;a href=&quot;http://www.andreasn.se/blog/?p=73&quot;&gt;art meeting yesterday&lt;/a&gt; went quite well and we got a lot of stuff put down that should keep us busy for the next six months. Thanks everyone attending!&lt;br /&gt;
GNOME artists are a chatty bunch apparently, so we didn&amp;#8217;t get around to discussing everything we wanted before people fell asleep or had to leave for dinner. Therefore we&amp;#8217;re going to schedule another meeting sometime soon in the future.&lt;br /&gt;
Meeting notes and a raw log can be found on &lt;a href=&quot;http://live.gnome.org/ArtMeeting080329&quot;&gt;the page GNOME wiki.&lt;/a&gt;
&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://blogs.nemein.com/people/piotras/view/1206708012.html">
        <dc:format>text/html</dc:format>
        <dc:date>2008-03-28T11:40:12+00:00</dc:date>
        <dc:creator>Piotr Pokora &lt;piotr.pokora@infoglob.pl&gt;</dc:creator>
        <title>D-Bus and Midgard</title>
        <link>http://blogs.nemein.com/people/piotras/view/1206708012.html</link>
        <description>

&lt;p&gt;&lt;a href=&quot;http://www.midgard-project.org&quot;&gt;Midgard&lt;/a&gt; is decent CMS framework. Not just yet another PHP based CMS. And as every decent piece of code must have many features. I just added initial test cases with &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/dbus&quot;&gt;D-Bus&lt;/a&gt; support. They use &lt;a href=&quot;http://www.midgard-project.org/documentation/python_midgard/&quot;&gt;midgard-python&lt;/a&gt; and dbus modules.&lt;/p&gt;

&lt;p&gt;Usage is simple. You start service as one proccess and client as another one.
If all goes fine, client notifies daemon that some object needs to be imported to database, then listener service imports this object to database.
Listener is not aware who sent such data and even not aware what kind of language was used to send notify.&lt;/p&gt;

&lt;p&gt;So in theory ( it's not yet API implementation ) application written in PHP and using Midgard 1.9 may may send notification and listener may be daemon writen in python using Midgard 2.0. Even on the same machine.&lt;/p&gt;

&lt;p&gt;Check &lt;a href=&quot;http://trac.midgard-project.org/browser/trunk/midgard/apis/python/tests/dbus&quot;&gt;initial test code&lt;/a&gt;!&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://www.andreasn.se/blog/?p=73">
        <dc:format>text/html</dc:format>
        <dc:date>2008-03-26T16:04:57+00:00</dc:date>
        <dc:creator>Andreas Nilsson &lt;andreas@andreasn.se&gt;</dc:creator>
        <title>Just a quick reminder</title>
        <link>http://www.andreasn.se/blog/?p=73</link>
        <description>
	&lt;p&gt;Thought I better blog about this as well, just to make sure people don&amp;#8217;t mix up the dates (hi &lt;a href=&quot;http://jimmac.musichall.cz/log/&quot;&gt;Jakub&lt;/a&gt;!) &lt;img src='http://www.andreasn.se/blog/wp-images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /&gt; &lt;/p&gt;
	&lt;p&gt;We&amp;#8217;re going to have a GNOME Art Meeting on IRC Friday 28 March 18.00 UTC&lt;br /&gt;
in #gnome-art on gimpnet where we hopefully can discuss what we want to&lt;br /&gt;
do during the 2.24 release cycle as well as further down the road.&lt;/p&gt;
	&lt;p&gt;Hope to see as many of you there as possible!
&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://feeds.feedburner.com/~r/bergie/~3/258346457/midcom-permalink-5a581d58fb3f11dcaecb8db897c6dc22dc22">
        <dc:format>text/html</dc:format>
        <dc:date>2008-03-26T14:17:23+00:00</dc:date>
        <dc:creator>Henri Bergius &lt;henri.bergius@iki.fi&gt;</dc:creator>
        <title>In the Age of Ajax, Java applets are obsolete</title>
        <link>http://feeds.feedburner.com/~r/bergie/~3/258346457/midcom-permalink-5a581d58fb3f11dcaecb8db897c6dc22dc22</link>
        <description>
&lt;p&gt;
&lt;a href=&quot;http://suomi.sampopankki.fi/&quot;&gt;Sampo Pankki&lt;/a&gt;, the bank that was formerly known as &lt;a href=&quot;http://fi.wikipedia.org/wiki/Postipankki&quot;&gt;Postipankki&lt;/a&gt;, &lt;a href=&quot;http://fi.wikipedia.org/wiki/Leonia&quot;&gt;Leonia&lt;/a&gt; and just &lt;a href=&quot;http://fi.wikipedia.org/wiki/Sampo_Pankki&quot;&gt;Sampo&lt;/a&gt; was recently bought by the Danish &lt;a href=&quot;http://www.danskebank.com/en-uk/Pages/default.aspx&quot;&gt;Danske Bank&lt;/a&gt;. As part of the merger they &lt;a href=&quot;http://www.reuters.com/article/rbssFinancialServicesAndRealEstateNews/idUSL2568442120080325&quot;&gt;switched their IT systems&lt;/a&gt; to Danske Bank infrastructure in &lt;a href=&quot;http://www.hs.fi/english/article/Serious+problems+with+launch+of+new+online+service+of+Sampo+Bank/1135235064450&quot;&gt;a huge EUR 200 million operation&lt;/a&gt; over the Easter. The switch had a lot of issues, causing website downtime, faulty account data and non-functioning credit cards.
&lt;/p&gt;

&lt;p&gt;
However, the downtimes were not the only big issue with the switch: in the process Sampo also switched from a reputedly very functional HTML-based web banking interface into a &lt;a href=&quot;http://kks.cabal.fi/SampoApplet&quot;&gt;Java Applet that is doing some quite dubious snooping&lt;/a&gt; on user's computer. And of course they didn't do much cross-browser testing. Here is what I see with &lt;a href=&quot;http://wiki.mozilla.org/Firefox3&quot;&gt;Firefox 3&lt;/a&gt; beta:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://bergie.iki.fi/midcom-serveattachmentguid-137585cefb3f11dca9e04756dff26cc46cc4/sampo-verkkopankki-firefox3.png&quot;&gt;&lt;img src=&quot;http://bergie.iki.fi/midcom-serveattachmentguid-58104c78fb3f11dcb70f6bc4097a77677767/sampo-verkkopankki-firefox3-tm.jpg&quot; height=&quot;268&quot; width=&quot;400&quot; border=&quot;1&quot; hspace=&quot;4&quot; vspace=&quot;4&quot; alt=&quot;Sampo verkkopankki broken with Firefox 3&quot; title=&quot;Sampo verkkopankki broken with Firefox 3&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
I remember when our former accounting software &lt;a href=&quot;http://en.wikipedia.org/wiki/Software_as_a_service&quot;&gt;SaaS&lt;/a&gt; vendor &lt;a href=&quot;http://www.procountor.com/&quot;&gt;Procountor&lt;/a&gt; did a switch from HTML to Java Applet. Suddenly a very fast and easy UI was changed to slow and unusable semi-desktop-ish application. Needless to say, &lt;a href=&quot;http://nemein.com/en/&quot;&gt;my company&lt;/a&gt; dumped them immediately. &lt;a href=&quot;http://en.wikipedia.org/wiki/Java_applet&quot;&gt;Java Applets&lt;/a&gt; may have had advantages in 90s, but in the &lt;a href=&quot;http://arstechnica.com/news.ars/post/20050808-5183.html&quot;&gt;Age of Ajax&lt;/a&gt; they are &lt;a href=&quot;http://blog.beplacid.net/2007/09/03/why-java-is-obsolete/&quot;&gt;mostly obsolete&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Update:&lt;/strong&gt; Apparently the Sampo service also has &lt;a href=&quot;http://www.digitoday.fi/tietoturva/2008/03/26/rss/20088576/66&quot;&gt;a Cross-Site Scripting vulnerability&lt;/a&gt;. All this bungling makes me remain quite a happy &lt;a href=&quot;http://www.nordea.fi&quot;&gt;Nordea&lt;/a&gt; customer.
&lt;/p&gt;

&lt;p style=&quot;text-align:right;font-size:10px;&quot;&gt;Technorati Tags: &lt;a href=&quot;http://www.technorati.com/tag/ajax&quot;&gt;ajax&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/java&quot;&gt;java&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/security&quot;&gt;security&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/sampopankki&quot;&gt;sampopankki&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=xGVKA6F&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=xGVKA6F&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=65HgCEF&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=65HgCEF&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=YVluWuf&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=YVluWuf&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=VfUAjif&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=VfUAjif&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/bergie/~4/258346457&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
    </item>
    <item rdf:about="http://feeds.feedburner.com/~r/bergie/~3/254339946/midcom-permalink-6ef76ed0f5c711dcb526f38165651c051c05">
        <dc:format>text/html</dc:format>
        <dc:date>2008-03-19T15:16:22+00:00</dc:date>
        <dc:creator>Henri Bergius &lt;henri.bergius@iki.fi&gt;</dc:creator>
        <title>GeoClue status update</title>
        <link>http://feeds.feedburner.com/~r/bergie/~3/254339946/midcom-permalink-6ef76ed0f5c711dcb526f38165651c051c05</link>
        <description>
&lt;p&gt;
&lt;img src=&quot;http://bergie.iki.fi/midcom-serveattachmentguid-61384bd4f5c711dc9ee53fcc6932dc8bdc8b/geoclue-200.png&quot; height=&quot;200&quot; width=&quot;200&quot; border=&quot;0&quot; align=&quot;right&quot; hspace=&quot;10&quot; vspace=&quot;4&quot; alt=&quot;GeoClue&quot; title=&quot;GeoClue&quot; /&gt;&lt;br /&gt;I sat down with &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/GeoClue&quot;&gt;GeoClue&lt;/a&gt; maintainer (and my former SoC student) &lt;a href=&quot;http://vilunki.wordpress.com/&quot;&gt;Jussi Kukkonen&lt;/a&gt; to discuss how the project has been moving forward, and the situation is looking quite good. To those unfamiliar with GeoClue, here is a quick intro:
&lt;/p&gt;

&lt;blockquote&gt;
GeoClue is a modular geoinformation service built on top of the D-Bus messaging system. The goal of the GeoClue project is to make creating location-aware applications for mobile Linux devices as simple as possible.
&lt;/blockquote&gt;

&lt;p&gt;
Last summer with the Summer of Code we were able to make a &lt;a href=&quot;http://bergie.iki.fi/blog/geoclue_is_appearing.html&quot;&gt;first full implementation of GeoClue&lt;/a&gt; and &lt;a href=&quot;http://vilunki.wordpress.com/2007/08/22/geoclue-08-soc-released/&quot;&gt;release it&lt;/a&gt; for the &lt;a href=&quot;http://maemo.org/&quot;&gt;maemo&lt;/a&gt; platform. There were also GeoClue sessions held in the &lt;a href=&quot;http://www.slideshare.net/ajturner/geoclue-state-of-the-map-2007&quot;&gt;State of the Map&lt;/a&gt; and &lt;a href=&quot;http://beta.guadec.org/node/581&quot;&gt;GUADEC&lt;/a&gt; conferences.
&lt;/p&gt;

&lt;p&gt;
However, as that implementation did not provide &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/GeoClue#head-15bcdec2110a8515956187b4137ad8702f540762&quot;&gt;a master provider&lt;/a&gt; to abstract away the &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/GeoClue#head-e73ac91b0697338613054a80e3a0f496e4f0714f&quot;&gt;different position sources&lt;/a&gt;, it was still a bit cumbersome to develop GeoClue-powered applications. So when Jussi got hired by &lt;a href=&quot;http://o-hand.com/&quot;&gt;OpenedHand&lt;/a&gt;, a decision was made to &lt;a href=&quot;http://vilunki.wordpress.com/2007/11/10/api-stability-whazzat/&quot;&gt;change the API&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
Now finally the API change work starts to be complete, and a new release of GeoClue should appear pretty soon. There are lots of ideas for &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/GeoClue#head-32194acec6df299bec227dd0838960febe2d853b&quot;&gt;location-aware applications&lt;/a&gt; &lt;a href=&quot;http://www.readwriteweb.com/archives/12_future_apps_for_your_iphone.php&quot;&gt;floating around&lt;/a&gt;, and at least &lt;a href=&quot;http://mauku.henrikhedberg.com/&quot;&gt;Mauku&lt;/a&gt; and &lt;a href=&quot;http://telepathy.freedesktop.org/wiki/&quot;&gt;Telepathy&lt;/a&gt; developers have expressed interest in using GeoClue in their apps.
&lt;/p&gt;

&lt;p&gt;
If you're developing a mobile Linux application, GeoClue might be a good thing to &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/GeoClue#head-3d7bd11b567a68a6d54e1380a7bbf9bbd97f6082&quot;&gt;take a look at&lt;/a&gt;. Location is a &lt;a href=&quot;http://worrydream.com/MagicInk/#inferring_context_from_the_environment&quot;&gt;powerful piece of contextual information&lt;/a&gt; that can make your application &lt;a href=&quot;http://worrydream.com/MagicInk/&quot;&gt;more usable&lt;/a&gt;.
&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=B9cyVZF&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=B9cyVZF&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=76IFSHF&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=76IFSHF&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=Oi9dWWf&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=Oi9dWWf&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=yAzZ8sf&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=yAzZ8sf&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/bergie/~4/254339946&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
    </item>
    <item rdf:about="http://blogs.nemein.com/people/piotras/view/1205874132.html">
        <dc:format>text/html</dc:format>
        <dc:date>2008-03-18T20:02:12+00:00</dc:date>
        <dc:creator>Piotr Pokora &lt;piotr.pokora@infoglob.pl&gt;</dc:creator>
        <title>midgard-python once again</title>
        <link>http://blogs.nemein.com/people/piotras/view/1205874132.html</link>
        <description>

&lt;p&gt;&lt;a href=&quot;http://bergie.iki.fi&quot;&gt;Bergie&lt;/a&gt; just &lt;a href=&quot;http://bergie.iki.fi/blog/midcom_3_at_a_glance.html&quot;&gt;blogged&lt;/a&gt; about initial MidCOM3 architecture. He included nice and very easy example of &lt;a href=&quot;http://www.midgard-project.org/documentation/php_midgard_core/&quot;&gt;midgard-php&lt;/a&gt; API. And while he mentioned some python based solution I decided to add short and working example of &lt;a href=&quot;http://www.midgard-project.org/documentation/python_midgard/&quot;&gt;midgard-python&lt;/a&gt; in action.&lt;/p&gt;

&lt;p&gt;All in all, it's good to have, especially now, when Midgard2 is &lt;a href=&quot;http://www.midgard-project.org/updates/view/1204025654.html&quot;&gt;already an alpha&lt;/a&gt; and available also as packages for &lt;a href=&quot;http://maemo.org&quot;&gt;maemo.org&lt;/a&gt; platform.&lt;/p&gt;
</description>
    </item>
    <item rdf:about="http://feeds.feedburner.com/~r/bergie/~3/253672277/midcom-permalink-cfd10c6cf4e511dc9fb2ed2719775c935c93">
        <dc:format>text/html</dc:format>
        <dc:date>2008-03-18T12:21:18+00:00</dc:date>
        <dc:creator>Henri Bergius &lt;henri.bergius@iki.fi&gt;</dc:creator>
        <title>MidCOM 3 at a glance</title>
        <link>http://feeds.feedburner.com/~r/bergie/~3/253672277/midcom-permalink-cfd10c6cf4e511dc9fb2ed2719775c935c93</link>
        <description>
&lt;p&gt;This document has been written as a quick &lt;a href=&quot;http://www.midgard-project.org/&quot;&gt;Midgardized&lt;/a&gt; version of the nice &quot;&lt;a href=&quot;http://www.djangoproject.com/documentation/overview/&quot;&gt;Django at a glance&lt;/a&gt;&quot; tutorial, in order to explain how the new and &lt;a href=&quot;http://bergie.iki.fi/blog/some_plans_for_midcom_3.html&quot;&gt;upcoming MidCOM 3 framework&lt;/a&gt; works. In addition publishing this as &lt;a href=&quot;http://bergie.iki.fi/blog/&quot;&gt;a blog post&lt;/a&gt;, this document will be maintained in the &lt;a href=&quot;http://repo.or.cz/w/midcom.git?a=tree;f=midcom_core/documentation;h=ed16da4a61d1b2bb775690a6fd198b61d27f673b;hb=HEAD&quot;&gt;MidCOM 3 version control tree&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;MidCOM 3 has been designed to be an extensible and highly configurable CMS development environment. It provides several basic building blocks like toolbars, access controls and management of static content pages out-of-the-box.&lt;/p&gt;

&lt;p&gt;MidCOM applications are built as &quot;components&quot; with &lt;a href=&quot;http://www.midgard-project.org/documentation/concepts-midcom-specs-architecture-namespacing/&quot;&gt;Java-like namespacing&lt;/a&gt;. This means that a &quot;news&quot; component designed by company named Nemein could be called &lt;code&gt;net_nemein_news&lt;/code&gt;. Components are run on a Midgard site by setting a folder of the site to use that component.&lt;/p&gt;

&lt;h2&gt;Design your model&lt;/h2&gt;

&lt;p&gt;MidCOM uses Midgard's MgdSchema object-relational mapping system for providing easy object-oriented API for database storage. Models are described using &lt;a href=&quot;http://www.midgard-project.org/documentation/mgdschema-file/&quot;&gt;XML syntax&lt;/a&gt;, and Midgard then provides OOP APIs to them for C, &lt;a href=&quot;http://www.midgard-project.org/documentation/mgdschema-in-php/&quot;&gt;PHP&lt;/a&gt; and &lt;a href=&quot;http://blogs.nemein.com/people/piotras/view/1178275038.html&quot;&gt;Python&lt;/a&gt; languages.&lt;/p&gt;

&lt;p&gt;Here is a simple example MdgSchema:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;Schema xmlns=&quot;http://www.midgard-project.org/repligard/1.4&quot;&amp;gt;
  &amp;lt;type name=&quot;net_nemein_news_article&quot; table=&quot;net_nemein_news_article&quot;&amp;gt;
    &amp;lt;property name=&quot;id&quot; type=&quot;integer&quot; primaryfield=&quot;id&quot; /&amp;gt;
    &amp;lt;property name=&quot;name&quot; type=&quot;string&quot;/&amp;gt; 
    &amp;lt;property name=&quot;title&quot; type=&quot;string&quot; multilang=&quot;yes&quot; table=&quot;net_nemein_news_article_i&quot; /&amp;gt;
    &amp;lt;property name=&quot;content&quot; type=&quot;longtext&quot; multilang=&quot;yes&quot; table=&quot;net_nemein_news_article_i&quot; /&amp;gt;
  &amp;lt;/type&amp;gt;    
&amp;lt;/Schema&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Other fields like &lt;em&gt;author&lt;/em&gt; or &lt;em&gt;publication date&lt;/em&gt; do not need to be defined in the MgdSchema as Midgard automatically extends all records with &lt;a href=&quot;http://www.midgard-project.org/documentation/mgdschema-metadata-object/&quot;&gt;a set of metadata properties&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Install it&lt;/h2&gt;

&lt;p&gt;Place the MgdSchema XML file to &lt;code&gt;/usr/share/midgard/schema&lt;/code&gt;, and then create the database tables based on it by running:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$ midgard-schema midgard
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Where &lt;code&gt;midgard&lt;/code&gt; is the name of your &lt;a href=&quot;http://www.midgard-project.org/documentation/unified-configuration/&quot;&gt;Midgard conf.d file&lt;/a&gt; that defines the database access parameters like database type and password.&lt;/p&gt;

&lt;h2&gt;Enjoy the free API&lt;/h2&gt;

&lt;p&gt;These steps are all you need to do to have new Midgard objects at your disposal. Now you can access and manipulate them using for example Python or PHP. With PHP, the API looks like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;?php
// Create a new person
$reporter = new midgard_person();
$reporter-&amp;gt;firstname = 'John';
$reporter-&amp;gt;lastname = 'Smith';

// Save it to the database
$reporter-&amp;gt;create();

// Now it has an UUID
echo $reporter-&amp;gt;guid;

// And it can be fetched from the database
$qb = midgard_person::new_query_builder();
print_r($qb-&amp;gt;execute());
// This would print an array of midgard_person objects containing &quot;John Smith&quot;

// We have multiple ways to query objects
$qb-&amp;gt;add_constraint('lastname', 'LIKE', 'Smi%');
print_r($qb-&amp;gt;execute());

// Create a new article
$article = new net_nemein_news_article();
$article-&amp;gt;title = 'MidCOM is cool';
$article-&amp;gt;metadata-&amp;gt;authors = $reporter-&amp;gt;guid;
$article-&amp;gt;create();

// Extend the article with new properties
$article-&amp;gt;parameter('namespace', 'key', 'value');

// Localize the article to Finnish
mgd_set_lang('fi');
$article-&amp;gt;title = 'MidCOM on ältsin magee';
$article-&amp;gt;update();

// Delete the Finnish translation
$article-&amp;gt;delete();

/// etc
?&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;A dynamic admin interface&lt;/h2&gt;

&lt;p&gt;Midgard comes with &lt;a href=&quot;http://bergie.iki.fi/blog/building_a_new_admin_interface_for_midgard.html&quot;&gt;Asgard&lt;/a&gt;, an automated administrative interface which provides a full editing tool to all our installed MgdSchemas. If your define a tree model for your storage, it will even provide a nice navigation tree for them. For example:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;Schema xmlns=&quot;http://www.midgard-project.org/repligard/1.4&quot;&amp;gt;
  &amp;lt;type name=&quot;net_nemein_news_article&quot; table=&quot;net_nemein_news_article&quot; parent=&quot;midgard_topic&quot;&amp;gt;
    &amp;lt;property name=&quot;id&quot; type=&quot;integer&quot; primaryfield=&quot;id&quot; /&amp;gt;    
    &amp;lt;property name=&quot;name&quot; type=&quot;string&quot;/&amp;gt;
    &amp;lt;property name=&quot;title&quot; type=&quot;string&quot; multilang=&quot;yes&quot; table=&quot;net_nemein_news_article_i&quot; /&amp;gt;
    &amp;lt;property name=&quot;content&quot; type=&quot;longtext&quot; multilang=&quot;yes&quot; table=&quot;net_nemein_news_article_i&quot; /&amp;gt;
    &amp;lt;property name=&quot;topic&quot; type=&quot;integer&quot; link=&quot;midgard_topic:id&quot; parentfield=&quot;topic&quot;/&amp;gt;
  &amp;lt;/type&amp;gt;    
&amp;lt;/Schema&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;After this the &lt;code&gt;net_nemein_news_article&lt;/code&gt; objects would be stored under topics, and could be browsed in the topic tree hierarchy.&lt;/p&gt;

&lt;p&gt;Asgard understands linked properties, datetime fields, and other MgdSchema field types and provides appropriate editing tools for them. For example, linked fields automatically become search-based choosers.&lt;/p&gt;

&lt;p&gt;At this point you can already start entering content to your new application using the Asgard tool.&lt;/p&gt;

&lt;h2&gt;Design your URLs&lt;/h2&gt;

&lt;p&gt;A clean URL space is important in a modern web framework, and with Midgard clean URLs have been the norm even since the 90s.&lt;/p&gt;

&lt;p&gt;In MidCOM your application URL space is set up as something called &quot;routes&quot;. They are entered in YAML format to the component's configuration file, in this case &lt;code&gt;net_nemein_news/configuration/defaults.yml&lt;/code&gt;. The routes follow the &lt;a href=&quot;http://www.ietf.org/internet-drafts/draft-gregorio-uritemplate-02.txt&quot;&gt;IETF URI template draft&lt;/a&gt; format.&lt;/p&gt;

&lt;p&gt;For example, a route for displaying a particular article could be defined as:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;show:
    controller: net_nemein_news_controllers_article
    action: show
    route: /{$name}/
    content_entry_point: nnn-show-article
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;In this case, the URL to a news article would be &lt;code&gt;/foldername/articlename&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The routes define many things about what MidCOM should do with the request. First of all, they define which controller PHP class, and which action method in it will deal with the request. Additionally the route can define a &lt;code&gt;template_entry_point&lt;/code&gt; or &lt;code&gt;content_entry_point&lt;/code&gt; to choose which template files will be used for displaying the page. Other things like templating language and MIME type can also be defined in the configuration file.&lt;/p&gt;

&lt;p&gt;Routes are stored in configuration file so that they can be easily overridden on per-site, or even per-folder basis. This means that migration from some other CMS system is quite easy as the site can be configured to retain the old URL formats.&lt;/p&gt;

&lt;h2&gt;Write your controllers&lt;/h2&gt;

&lt;p&gt;Each controller is responsible for doing one of two things: Populating a &lt;code&gt;data&lt;/code&gt; array with content of the requested page, or raising an exception like &lt;code&gt;midcom_exception_notfound&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The controller class in this case would be stored to &lt;code&gt;net_nemein_news/controllers/article.php&lt;/code&gt; and could look like the following:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;public function action_show($route_id, &amp;amp;$data, $args)
{
    $qb = net_nemein_news_article::new_query_builder();
    $qb-&amp;gt;add_constraint('name', '=', $args['name']);        
    $articles = $qb-&amp;gt;execute();        
    if (count($articles) == 0)
    {
        throw new midcom_exception_notfound(&quot;Article {$args['name']} not found.&quot;);
    }
    $data['article'] = $articles[0];
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;After the controller has produced the data it will then be passed to the MidCOM templating system according to the entry points defined for the route.&lt;/p&gt;

&lt;h2&gt;Design your templates&lt;/h2&gt;

&lt;p&gt;MidCOM uses the &lt;a href=&quot;http://phptal.motion-twin.com/manual/en/&quot;&gt;Template Abstraction Language&lt;/a&gt; (TAL) for its templating purposes. TAL is a very powerful templating system in the sense that it allows designers to build the site XML or XHTML templates and fill them with example data that will then be replaced with the real data when TAL is run.&lt;/p&gt;

&lt;p&gt;In this case our template would be placed in &lt;code&gt;net_nemein_news/templates/nnn-show-article.php&lt;/code&gt;. It could contain something like:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;div class=&quot;hentry&quot;&amp;gt;
    &amp;lt;h1 tal:content=&quot;net_nemein_news/article/title&quot; class=&quot;entry-title&quot;&amp;gt;Headline&amp;lt;/h1&amp;gt;

    &amp;lt;div tal:content=&quot;net_nemein_news/article/metadata/published&quot; class=&quot;published&quot;&amp;gt;2007-08-01&amp;lt;/div&amp;gt;

    &amp;lt;div tal:content=&quot;structure net_nemein_news/article/content&quot; class=&quot;entry-content&quot;&amp;gt;
        Content
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The XHTML attributes in the &lt;code&gt;tal&lt;/code&gt; namespace &lt;a href=&quot;http://phptal.motion-twin.com/manual/en/#tal-namespace&quot;&gt;contain the rules&lt;/a&gt; used by TAL for replacing the example data with the real data from the controller. The data array of the controller is exposed to tal using the component name, in this case &lt;code&gt;net_nemein_news&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The default template supplied by the component &lt;a href=&quot;http://www.midgard-project.org/documentation/concepts-page_and_style/&quot;&gt;can be overridden&lt;/a&gt; by placing an element named &lt;code&gt;nnn-show-article&lt;/code&gt; to either the site main style, or as an element of the current folder.&lt;/p&gt;

&lt;h2&gt;This is just the surface&lt;/h2&gt;

&lt;p&gt;This has been a very quick overview of the MidCOM framework. The third version framework is still very much evolving, but the &lt;a href=&quot;http://www.midgard-project.org/documentation/midcom&quot;&gt;earlier versions&lt;/a&gt; are already very rich with existing tools and features.&lt;/p&gt;

&lt;p&gt;However, in near future MidCOM 3 will feature rich signal-based I/O event handling, Access Control Lists, caching and many other things useful to web developers.&lt;/p&gt;

&lt;p&gt;Everybody interested in MidCOM 3 is welcome to install a &lt;a href=&quot;http://www.midgard-project.org/nightly/&quot;&gt;Midgard 1.9 nightly&lt;/a&gt;, &lt;a href=&quot;http://repo.or.cz/w/midcom.git&quot;&gt;get a git checkout&lt;/a&gt; of MidCOM 3 and &lt;a href=&quot;http://repo.or.cz/w/midcom.git?a=blob_plain;f=midcom_core/documentation/usage.txt;hb=HEAD&quot;&gt;start playing&lt;/a&gt;.&lt;/p&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=KhepDKF&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=KhepDKF&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=uP5FmDF&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=uP5FmDF&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=QIu5A3f&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=QIu5A3f&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~f/bergie?a=Mq9KLxf&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/bergie?i=Mq9KLxf&quot; border=&quot;0&quot;&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/bergie/~4/253672277&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
    </item>
</rdf:RDF>
