<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.7.6(BH)" -->
<rss version="2.0"    xmlns:georss="http://www.georss.org/georss/"
>
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>Henri Bergius: category &quot;desktop&quot;</title>
        <description>Motorcycle Adventures and Free Software from Henri Bergius</description>
        <link>http://bergie.iki.fi/blog/</link>
        <lastBuildDate>Sat, 04 Sep 2010 03:04:27 +0000</lastBuildDate>
        <generator>FeedCreator 1.7.6(BH)</generator>
        <language>en</language>
        <managingEditor>henri.bergius@iki.fi</managingEditor>
        <item>
            <title>My interview at dot KDE</title>
            <link>http://bergie.iki.fi/blog/my_interview_at_dot_kde/</link>
            <description><![CDATA[
<p><a href="http://nowwhatthe.blogspot.com/">Jos Poortvliet</a> did <a href="http://dot.kde.org/2010/07/23/henri-bergius-akademy-midgard-open-collaboration-services-and-geoclue">an interview with me for dot KDE</a> in this summer's aKademy and it has been online for a while now. In it we discuss things like <a href="http://bergie.iki.fi/blog/ratatoskr_is_out-midgard2_content_repository_goes_lts/">Midgard as a storage engine</a> for desktop applications, and <a href="http://wiki.maemo.org/Extras-testing#Community_Quality_Assurance">Maemo's open QA process</a> for <a href="http://maemo.org/downloads/Maemo5/">Downloads</a> applications. Some excepts:</p>
<blockquote>At <a href="http://maemo.org/">maemo.org</a> we have an appstore for  FOSS applications on the Maemo platform. This appstore is enabled by  default on all Nokia N900s so we wanted to have some quality control. We  had to create our own appstore approval process, compatible with the  FOSS philosophy. Now any developer can submit an app, and anyone can  test and vote. The whole process is completely transparent, auditable  and visible. And it also provides a feedback channel from testers and  users to the developers!</blockquote>
<p>...</p>
<blockquote>Midgard is a data storage service. Whether you write desktop or web  applications, instead of coming up with your own file format, you just  use Midgard. You can work more easily and object-based. Users have many  different devices these days, so Midgard has strong replication features  to synchronize between different systems. Midgard is built on top of  GObject; we provide bindings to a bunch of different languages so  developers can choose the tools they like - PHP, Python, Javascript.  Currently (as in <strong>now</strong>, while we're talking) Qt bindings are being developed here at Akademy.</blockquote>
<p><a href="http://dot.kde.org/2010/07/23/henri-bergius-akademy-midgard-open-collaboration-services-and-geoclue">Read the whole interview</a>.</p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60 24</georss:point>
            <category>desktop</category>
            <pubDate>Thu, 02 Sep 2010 15:55:28 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1dfb6aa81a547aeb6aa11dfa837c90298d01a921a92</guid>
        </item>
        <item>
            <title>Zeitgeist does location: what did I do while in Brussels?</title>
            <link>http://bergie.iki.fi/blog/zeitgeist_does_location-what_did_i_do_while_in_brussels/</link>
            <description><![CDATA[
<p><a href="http://zeitgeist-project.com/">Zeitgeist</a>, the desktop activity logging engine is now becoming geo-aware. From <a href="http://seilo.geekyogre.com/2010/07/zeitgeist-geolocation-magic/">Seif Lotfy's blog</a>:</p>
<blockquote>
<p>It allows you to ask Zeitgeist stuff like</p>
<ul><li>“Get me the recent files I edited at university”</li>
<li>“Who do I contact most when I am at School?”</li>
<li>“Which pictures did I take in Brazil?”</li>
<li>“Where was I when an Email came in?”</li>
<li>“What files did I open during the conference?”</li>
</ul><img src="http://bergie.iki.fi/static/1/1df94eaba47081894ea11df8003ad955f7114821482_zeitgeist-geoclue.jpg" border="0" alt="zeitgeist-geoclue.jpg" title="zeitgeist-geoclue.jpg" /></blockquote>
<p>As I've been <a href="http://bergie.iki.fi/blog/synchronization-and-the-free-software-desktop-in-guadec/">advocating since 2006</a>, location is important for making applications smarter. While you might not remember where you stored some file, you probably remember where you were when working on it. Then Zeitgeist's location features, powered by <a href="http://en.wikipedia.org/wiki/GeoClue">GeoClue</a>, will be able to get it for you.</p>
<p>This is especially cool since Zeitgeist is <a href="http://picasaweb.google.de/lh/photo/RWiWpFuwOMPQSvgNRFAgKA?feat=directlink">coming for Maemo</a> as well. <a href="http://www.flickr.com/photos/bergie/2845863882/">My laptop</a> is quite mobile, but the N900 is even more so.</p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.1628 24.927799</georss:point>
            <category>desktop</category>
            <pubDate>Wed, 21 Jul 2010 17:16:00 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1df94eba23fe89c94eb11dfbc2f631aa2519adc9adc</guid>
        </item>
        <item>
            <title>My GeoClue talk from aKademy 2010</title>
            <link>http://bergie.iki.fi/blog/my_geoclue_talk_from_akademy_2010/</link>
            <description><![CDATA[
<p><a href="http://akademy.kde.org/">aKademy 2010</a> was hosted in the sunny city of Tampere by the Finnish <a href="http://www.coss.fi/en">Centre for Open Source Solutions</a>, an organization that I'm <a href="http://bergie.iki.fi/blog/in_coss_steering_group/">a steering group member</a> of. In addition to helping a bit with the arrangements and organizing <a href="http://bergie.iki.fi/blog/meet_midgard_and_geoclue_in_akademy_2010/">the Midgard Gathering</a> there, I also gave a talk about <a href="http://en.wikipedia.org/wiki/GeoClue">GeoClue</a>, the positioning framework for Linux desktops.</p>
<p><img src="http://bergie.iki.fi/static/1/1df8b61f149052e8b6111df872e5fe1995d51425142_bergie-geoclue-akademy2010.png" border="0" alt="bergie-geoclue-akademy2010.png" title="bergie-geoclue-akademy2010.png" /></p>
<ul><li><a href="http://home.kde.org/~akademy10/slides/Towards_a_location-aware_desktop-Henri_Bergius.pdf">Presentation slides (PDF)</a></li>
<li><a href="http://home.kde.org/~akademy10/videos/Towards_a_location-aware_desktop-Henri_Bergius.ogv">Video of my talk</a></li>
</ul><p>We initially <a href="http://bergie.iki.fi/blog/synchronization-and-the-free-software-desktop-in-guadec/">started the push</a> for location-aware desktops around 2006, and now the efforts are finally starting to bear fruit. Both <a href="http://gnomejournal.org/article/70/an-introduction-to-gnome-zeitgeist">Zeitgeist</a> and <a href="http://nepomuk.kde.org/">Nepomuk</a> are looking at indexing documents based on where you accessed them, <a href="http://blog.pierlux.com/2009/01/22/empathy-where-are-you/en/">Telepathy can share</a> your location with your friends, and hopefully soon also your desktop clock will switch timezones when you travel.</p>
<p>It is very cool that this development <a href="http://bergie.iki.fi/blog/making_the_gnome_desktop_location-aware/">seems to be happening</a> on both GNOME and KDE at a reasonably similar pace. GeoClue is also<a href="http://meego.com/developers/meego-architecture"> a service in MeeGo</a> and I've been told another major mobile phone manufacturer uses it. Maybe soon <a href="http://www.wired.com/gadgetlab/2009/02/apples-snow-leo/">Mac OS X will not be the only</a> platform with location APIs built in?</p>
<p><em>Photo <a href="http://www.flickr.com/photos/indeyets/4756997067/">by Alexey Zakhlestin</a>.</em></p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60 24</georss:point>
            <category>desktop</category>
            <pubDate>Fri, 09 Jul 2010 14:04:14 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1df8b62db01b1848b6211dfa8e547b41b3e9fa19fa1</guid>
        </item>
        <item>
            <title>Meet Midgard and GeoClue in aKademy 2010</title>
            <link>http://bergie.iki.fi/blog/meet_midgard_and_geoclue_in_akademy_2010/</link>
            <description><![CDATA[
<p>We <a href="http://bergie.iki.fi/blog/tampere_is_a_candidate_for_guadec_and_akademy_2009/">tried to get the combined GUADEC and aKademy conferences</a> to Tampere in 2009, but <a href="http://www.flickr.com/photos/bergie/sets/72157621730088174/">a warmer place</a> unfortunately won. However, <a href="http://www.coss.fi/">we</a> will be hosting <a href="http://akademy.kde.org/">this year's aKademy</a> so at least KDE and Qt fans will get to enjoy this <a href="http://en.wikipedia.org/wiki/Tampere">beautiful northern industrial city</a>.</p>
<p>The main conference will be held at the Tampere University over the weekend, and then the remaining hackweek will be in the nice <a href="http://demola.fi/">Demola</a> facility in the Finlayson district. Expect great connectivity and close proximity to all Tampere nightlife.</p>
<p>I'm involved with two aKademy activities:</p>
<ul><li><a href="http://akademy.kde.org/node/397"><strong>GeoClue presentation</strong></a> on the <a href="http://geoclue.freedesktop.org/">location service</a> that can be used on any Linux desktop and is <a href="http://meego.com/developers/meego-architecture">used in MeeGo</a>. I'll also talk about what desktops can do when location is available</li>
<li><a href="http://www.midgard-project.org/community/events/akademy_and_midgard_gathering/"><strong>Midgard Gathering</strong></a> during Mon-Wed of the hackweek. Midgard provides <a href="http://bergie.iki.fi/blog/why_you_should_use_a_content_repository_for_your_application/">a content repository</a> for applications that should be available also for <a href="http://live.gnome.org/GObjectIntrospection/GObjectConsume">Qt apps through GObject Introspection</a>. With some <a href="http://blogs.nemein.com/people/piotras/view/1274453113.html">proven performance benefits</a> and replication support, Midgard should be interesting for any desktop or mobile app that deals with structured data</li>
</ul><p>In addition there will be a <a href="http://talk.maemo.org/showthread.php?t=56616">Maemo / MeeGo meetup</a> in the Plevna brewery on Friday evening. See you there!</p>
<p><img src="http://bergie.iki.fi/static/1/1df82b418e85d4882b411df8e0f9d54d6b1ca1aca1a_akademy-banner-small.png" border="0" alt="akademy-banner-small.png" title="akademy-banner-small.png" /></p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60 24</georss:point>
            <category>desktop</category>
            <pubDate>Mon, 28 Jun 2010 12:54:47 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1df82b4550448c882b411dfa8a7a196adf2c0e7c0e7</guid>
        </item>
        <item>
            <title>Midgard Runtime brings our web framework to the desktop</title>
            <link>http://bergie.iki.fi/blog/midgard_runtime_brings_our_web_framework_to_the_desktop/</link>
            <description><![CDATA[
<p><a href="http://www.midgard-project.org/updates/midgard2_10-05-1-ratatoskr-lts_released/">Midgard2 10.05.1 was released</a> yesterday, bringing a long-waited feature finally to the Midgard installation packages: the <em>Midgard Runtime</em>.</p>
<p>Midgard Runtime is an application that consists of a simple Qt WebKit viewer that, when run, starts a local Midgard web server on the background and connects to it. This means that you'll have the full Midgard MVC stack available on your own desktop, in a way that is easy to install and easy to run. Get it for your favorite Linux distribution <a href="http://download.opensuse.org/repositories/home:/midgardproject:/ratatoskr/">from OBS</a>!</p>
<p><img src="http://bergie.iki.fi/static/1/1df7ebd0f39e0467ebd11dfb50cc71550a9171e171e_midgard-runtime-ratatoskr-small.png" border="0" alt="midgard-runtime-ratatoskr-small.png" title="midgard-runtime-ratatoskr-small.png" /></p>
<p>As a whole, the Midgard Runtime stack is quite interesting:</p>
<ul><li>SQLite is used as the default storage through the <a href="http://live.gnome.org/ChooseLibgdaSQLite">libgda4 abstraction layer</a></li>
<li><a href="http://bergie.iki.fi/blog/getting_started_with_the_midgard_content_repository/">Midgard2 is used as the content repository</a>, brought to PHP through an extension</li>
<li><a href="http://bergie.iki.fi/blog/midcom_3_at_a_glance/">Midgard MVC</a> provides the web development framework</li>
<li><a href="http://wiki.github.com/indeyets/appserver-in-php/">Alexey Zakhlestin's AppServer</a> is used as the pure-PHP web server</li>
<li>The Qt application starts server processes on the background and displays the site in a WebKit view</li>
<li>Runtime's bundle setup tool uses libraries from the <a href="http://blog.milkfarmsoft.com/2009/08/pake-php5-project-build-system/">Pake build system</a></li>
</ul><p>The AppServer is particularly something that other PHP projects might find useful. Since the server itself is written in PHP you don't have any additional dependencies besides <em>php-cli</em>. It also means your application can use a lot more efficient caching as files have to be loaded only once, and things can be kept in memory between requests. Of course the downside is that if your PHP script dies, then the whole server is down. But that is easy to deal with by a bit of <a href="http://en.wikipedia.org/wiki/Defensive_programming">defensive programming</a>.</p>
<p>At this point the Runtime is targeted at web developers interested in trying out Midgard, but eventually we'll be using the bundle system also for distributing full Midgard-powered web applications to the desktop. The progress on this can be followed <a href="http://github.com/midgardproject">on GitHub</a>.</p>
<p>Compared to <a href="http://www.forum.nokia.com/Develop/Web/">Nokia's Web Runtime</a>, the Midgard Runtime should be more familiar to developers as you'll be able to write also server-side PHP code, not just JavaScript. In addition to PHP, the whole system is <a href="http://devel.akbkhome.com/seed/Midgard.html">also accessible</a> via any language that can handle <a href="http://live.gnome.org/GObjectIntrospection">GObject Introspection</a>.</p>
<h2>So, what can I do with it?</h2>
<ul><li>Install a Midgard environment with <em>$ midgard2-runtime-bundle-simple-install</em></li>
<li>Start the runtime with <em>$ midgard2-runtime-bundle-simple-run</em></li>
<li>Midgard MVC and components are located in <em>~/.midgard2/simple-bundle/</em>. This is where you can also place your own code</li>
</ul>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>47 13</georss:point>
            <category>desktop</category>
            <pubDate>Wed, 23 Jun 2010 12:02:17 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1df7ebf2b33f7627ebf11df825c53b2e93c5f955f95</guid>
        </item>
        <item>
            <title>Notes from my first Ubuntu Developer Summit</title>
            <link>http://bergie.iki.fi/blog/notes_from_my_first_ubuntu_developer_summit/</link>
            <description><![CDATA[
<p>Last week was the <a href="https://wiki.ubuntu.com/UDS-M">Ubuntu Developer Summit</a> targeted at planning how the next iteration of the operating system, <a href="http://www.markshuttleworth.com/archives/336"><em>Maverick Meerkat</em></a>, targeted at a October 10th 2010 release, would look like. The event was held in a spa resort off in the countryside near Brussels. A place where the developers were comfortably separated from the busy towns by forests and country roads.</p>
<p>I went to the UDS with two goals in my mind: to discuss <a href="http://bergie.iki.fi/blog/making_the_gnome_desktop_location-aware/">making the Ubuntu desktop location-aware</a>, and to figure out what sort of role <a href="http://www.midgard2.org/">Midgard</a>, our content repository could play in the Ubuntu space. Normally such things would be better approached by talking to upstream projects and distributions, but as Ubuntu is <a href="http://www.0d.be/2010/05/13/gnome-and-operating-systems/">taking an increasingly active role</a> in developing itself to be a <em>comprehensive and unique operating system</em>, it would be a better place to accomplish such wide-ranging changes.</p>
<p><strong>Location-awareness</strong> was a area that many were interested in. Ubuntu already had considered <a href="http://geoclue.freedesktop.org/"><strong>GeoClue</strong></a>, our location service, to be a component of the distribution in Lucid Lynx, but that <a href="https://blueprints.launchpad.net/ubuntu/+spec/desktop-lucid-gnome-geoclue">plan had been abandoned</a> due to the low-maintained status of the software. However, now that GeoClue has become the <a href="http://jaaksi.blogspot.com/2010/04/meego-is-now-opened.html">geolocation framework for MeeGo</a> things are about to change, and so there is <a href="https://blueprints.launchpad.net/ubuntu/+spec/desktop-maverick-geoclue/">a significant possibility</a> to get GeoClue into Ubuntu as well.</p>
<p>GeoClue by itself will obviously not do much, and so making applications use it is the important thing. Some applications already support location information and could be changed to include those features by default. This includes <a href="http://blog.pierlux.com/2009/06/15/geolocation-in-empathy-now-real/en/"><strong>Empathy</strong></a><a href="http://blog.pierlux.com/2009/06/15/geolocation-in-empathy-now-real/en/"> sharing location</a> information with instant messaging buddies, and <strong>Getting Things GNOME</strong> TODO manager being able to <a href="http://live.gnome.org/gtg/soc/geolocalized_tasks">tag action items with location</a>. <strong>Zeitgeist</strong> is intending to start tagging and searching activity <a href="https://code.launchpad.net/~mortenmjelva/zeitgeist/geoclue-extension">history with location</a>, and <a href="http://patchpanel.blogspot.com/2010/05/ubuntu-1004-my-two-cents.html"><strong>Gwibber</strong></a> also wants to include location sharing to interface with social web services like Brightkite, Qaiku and Google Latitude. Another reasonably low-hanging fruit would be to make the <strong>Ubuntu panel clock</strong> automatically change time zones as you travel.</p>
<p><strong>Midgard in Ubuntu</strong> is a bit trickier question. A lot of Ubuntu has now been developed to <a href="http://www.youtube.com/watch?v=2R1qf5_6Zt4">utilize the <strong>CouchDB</strong> document database</a>, which provides quite <a href="http://bergie.iki.fi/blog/what_is_a_content_repository/">similar storage services as Midgard</a> does. <a href="http://couchdb.apache.org/">CouchDB's</a> cool map/reduce algorithms and replication capabilities have enabled Ubuntu developers to <a href="http://arstechnica.com/open-source/reviews/2009/11/good-karma-ars-reviews-ubuntu-910.ars/6">quickly integrate a content repository</a> into many applications and to provide a cloud storage and synchronization service to users of the operating system.</p>
<p>But at the same time <a href="http://arstechnica.com/open-source/reviews/2010/05/lucid-dream-ars-reviews-ubuntu-1004.ars/9">CouchDB introduces some problems</a>:</p>
<blockquote>CouchDB can't seem to handle the load of Gwibber's messages, leading to excessive CPU consumption and poor performance in certain cases. For example, the overhead of computing the views causes lag when the user switches streams after Gwibber refreshes. The cost of pulling the account configuration data out of the database can also sometimes cause a noticeable lag that lasts up to four or five seconds when opening Gwibber's account manager.</blockquote>
<p>CouchDB has been designed with web servers in mind, and in many situations having a constantly-running Erlang process and having to do HTTP roundtrips to access data are undesirable on more constrained computers. We <a href="http://protoblogr.net/blog/view/finally_got_them_working.html">ported CouchDB to Maemo</a> a few years ago and the performance was terrible. I'd imagine the same issues on netbooks and other small hardware that <a href="http://www.markshuttleworth.com/archives/383">Ubuntu's Light initiative</a> targets.</p>
<p>On such environments <a href="http://twitter.com/sil/status/13782972356">Midgard might be a better option</a>. <a href="http://bergie.iki.fi/blog/ratatoskr_is_out-midgard2_content_repository_goes_lts/">Midgard's recent LTS release</a> uses regular <a href="http://www.gnome-db.org/News">relational databases</a> for fast performance and low footprint, utilizes important pieces of free desktop architecture like D-Bus signalling and <a href="http://live.gnome.org/GObjectIntrospection">GObject Introspection</a>, and has been proven to work well even on low-end devices like the Nokia N900. And yet it provides <a href="http://bergie.iki.fi/blog/why_you_should_use_a_content_repository_for_your_application/">full content repository APIs</a> comparable to CouchDB, and can even handle <a href="http://bergie.iki.fi/blog/couchdb_and_midgard_talking_with_each_other/">replication with Couch</a>. One way to make Midgard possible, then, would be to provide Python <a href="http://www.freedesktop.org/wiki/Specifications/desktopcouch">DesktopCouch APIs</a> to it.</p>
<p>Another interesting technology discussed much in UDS was <a href="http://www.puppetlabs.com/"><strong>Puppet</strong></a>, the  systems administration tool. It enables developers to describe their setups in a <a href="http://docs.puppetlabs.com/guides/language_tutorial.html">object-oriented declarative language</a>, and then just let Puppet to <em>make it so</em>. I attended two Puppet sessions, and picked up a Kindle edition of <a href="http://www.amazon.com/Pulling-Strings-Puppet-Configuration-Management/dp/1590599780">the Puppet book</a> which I read on the train ride <a href="http://www.qaiku.com/channels/show/maemork/view/00ddfcd65e1411dfacfeebea881863c763c7/">to the Netherlands</a>. As my company manages lots of Midgard web servers for our customers, automating system setup and maintenance on top of Puppet and <a href="http://bergie.iki.fi/blog/nemein_is_going_to_ubuntu_server/">Ubuntu Server</a> might save us lots of time and effort.</p>
<p>All in all, quite an enlightening <a href="http://www.qaiku.com/channels/show/ubuntu/view/adaba27e5c2f11dfb0df111cdab35b375b37/">two days in the event</a>. If things work out, I hope I'll be able to spend more time in the UDS targeting the N-series of Ubuntu next fall.</p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60 24</georss:point>
            <category>desktop</category>
            <pubDate>Sat, 15 May 2010 21:09:47 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1df60663161db1c606611dfac05498e607b5d015d01</guid>
        </item>
        <item>
            <title>Ratatoskr is out: Midgard2 Content Repository goes LTS</title>
            <link>http://bergie.iki.fi/blog/ratatoskr_is_out-midgard2_content_repository_goes_lts/</link>
            <description><![CDATA[
<p><a href="http://www.midgard-project.org/updates/midgard2_10-05-ratatoskr-released/">Midgard2 10.05 "Ratatoskr"</a> was released yesterday, moving the Midgard <a href="http://bergie.iki.fi/blog/why_you_should_use_a_content_repository_for_your_application/">Content Repository</a> into long-term supported state as <a href="http://bergie.iki.fi/blog/future_directions_for_midgard/">outlined in my recent post</a>. Ratatoskr should provide a stable storage system for both desktop and mobile application developers.</p>
<p>Web developers will also benefit from <a href="http://bergie.iki.fi/blog/midcom_3_at_a_glance/">Midgard MVC</a>, the PHP framework that already runs services like <a href="http://qaiku.com/">Qaiku.com</a>.</p>
<p>The release includes:</p>
<blockquote>
<ul><li><strong>Content Repository API</strong> bindings for the following programming languages: C, Python, PHP, C# and Vala. D-Bus signals are used to inform different Midgard2 applications about things happening in the repository, enabling for example a PHP website and a Python background process to communicate with each other.</li>
<li><strong>Midgard MVC</strong>, an elegant framework for PHP web applications. Midgard MVC includes interfaces for loadable components, hierarchical sub-requests, a forms system and much more.</li>
<li><strong>Midgard Runtime</strong> that combines the Midgard MVC, a PHP application server and a WebKit UI to provide a full Midgard web development environment on the desktop.</li>
</ul></blockquote>
<p>This release benefits greatly from new technologies happening in the <a href="http://www.gnome.org/">GNOME</a> sphere: some of the language bindings are created using <a href="http://live.gnome.org/GObjectIntrospection">GObject Introspection</a>, <a href="http://live.gnome.org/Vala">Vala</a> has made development of new features faster and <a href="http://www.gnome-db.org/News">libgda4</a> makes all database operations more efficient.</p>
<p>Packages for various Linux distributions are already trickling into <a href="http://download.opensuse.org/repositories/home:/midgardproject:/ratatoskr/">Midgard's OpenSuse Build Service repositories</a> and <a href="http://maemo.org/packages/search/?org_maemo_packages_search%5B1%5D%5Bproperty%5D=name&amp;org_maemo_packages_search%5B1%5D%5Bconstraint%5D=LIKE&amp;org_maemo_packages_search%5B1%5D%5Bvalue%5D=midgard">Maemo Packages</a>.</p>
<p>A good place to start the Midgard2 journey is my <a href="http://bergie.iki.fi/blog/getting_started_with_the_midgard_content_repository/">Midgard2 Content Repository for Python tutorial</a>.</p>
<p><img src="http://bergie.iki.fi/static/1/1df59f95f46c97a59f911df997e7567a2f979277927_ratatoskr.jpg" border="0" alt="ratatoskr.jpg" title="ratatoskr.jpg" /></p>
<p><em>Photo: </em><a href="http://www.flickr.com/photos/aidanmorgan/2447587265/"><em>Squirrel</em></a><em> by John-Morgan on Flickr (the release codename <a href="http://en.wikipedia.org/wiki/Ratatoskr">Ratatoskr</a> is a mythological squirrel)</em></p>
<p> </p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60 24</georss:point>
            <category>desktop</category>
            <pubDate>Fri, 07 May 2010 17:03:21 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1df59fa70e99c9c59fa11df803d83c2bf126d766d76</guid>
        </item>
        <item>
            <title>Ubuntu Lucid brings Qaiku to the desktop</title>
            <link>http://bergie.iki.fi/blog/ubuntu_lucid_brings_qaiku_to_the_desktop/</link>
            <description><![CDATA[
<p><a href="http://www.ubuntu.com/products/whatisubuntu/1004features">Ubuntu 10.04 LTS "Lucid Lynx"</a> was released yesterday. Among other new features it includes the <a href="http://arstechnica.com/open-source/reviews/2010/03/hands-on-ubuntu-goes-social-gains-me-menu-in-1004-alpha-3.ars">Me Menu</a>, bringing your social networks right into the desktop. <a href="http://www.qaiku.com/">Qaiku</a>, the Finnish <a href="http://bergie.iki.fi/blog/microblogging-why_qaiku_might_do_what_twitter_and_brightkite_didn-t/">conversational microblogging service</a> is included:</p>
<p><img src="http://bergie.iki.fi/static/1/1df547838299100547811dfb12ca57deece79d679d6_ubuntu-lucid-netbook-small.png" border="0" alt="ubuntu-lucid-netbook-small.png" title="ubuntu-lucid-netbook-small.png" /></p>
<p>All in all, Lucid seems like a very smooth Linux desktop experience. I'm also happy other changes we've pushed for like <a href="http://articles.sitepoint.com/article/whats-new-php-5-3">PHP 5.3</a> are included. Maybe in the <a href="http://arstechnica.com/open-source/news/2010/04/ubuntu-1010-to-be-codenamed-maverick-meerkat.ars">next release cycle</a> we can start thinking of bringing <a href="http://bergie.iki.fi/blog/making_the_gnome_desktop_location-aware/">geolocation to the desktop</a>...</p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60 24</georss:point>
            <category>desktop</category>
            <pubDate>Fri, 30 Apr 2010 16:53:30 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1df5478e7afea84547811dfa258b3a0a4b691ca91ca</guid>
        </item>
        <item>
            <title>Future directions for Midgard</title>
            <link>http://bergie.iki.fi/blog/future_directions_for_midgard/</link>
            <description><![CDATA[
<p>Two weeks ago we had the <a href="http://www.qaiku.com/go/6myd/">Midgard Gathering</a> in Poland, and some big decisions were made there. I've been meaning to blog about them, but the <a href="http://en.wikipedia.org/wiki/2010_eruptions_of_Eyjafjallaj%C3%B6kull">volcano eruption in Iceland</a> kept me busy by providing an <a href="http://bergie.iki.fi/blog/on_volcanic_ashes_and_international_travel/">interesting trip through New York and Moscow</a>.</p>
<h2>Midgard2</h2>
<p>The next Midgard2 release, <em>10.05 "Ratatoskr"</em> will be <a href="http://bergie.iki.fi/blog/long-term_support_for_midgard-ragnaroek_is_here/">a long-term support release</a>, intended to provide <em>a reliable base for building web and mobile applications</em> utilizing the content repository. It will consist of:</p>
<p><strong>Midgard Core</strong>, the actual content repository library that abstracts database connections, provides <a href="http://bergie.iki.fi/blog/getting_started_with_the_midgard_content_repository/">object-oriented storage and retrieval interfaces</a> and handles things like D-Bus notifications of content changed by other applications.</p>
<p><strong>Midgard PHP and Midgard Python</strong>, language bindings providing the Midgard content repository services to these popular scripting languages. This means the Midgard content repository can easily be used within any PHP web application, Python maemo application or with the <a href="http://github.com/jerryjj/MidgardPyMVC">Pylons MVC framework</a>.</p>
<p><strong>Midgard Mono</strong>, C# bindings to the Midgard content repository allowing better interfacing with Microsoft technologies.</p>
<p><strong>GObject Introspection</strong> allowing us to <a href="http://live.gnome.org/GObjectIntrospection">provide other language bindings</a> including Vala and Javascript.</p>
<p><strong>Midgard MVC</strong>, an elegant framework for PHP web applications. Midgard MVC includes interfaces for loadable components, <a href="http://techportal.ibuildings.com/2010/02/22/scaling-web-applications-with-hmvc/">hierarchical sub-requests</a>, a forms system and much more. You can see it in action for example on <a href="http://qaiku.com/">Qaiku.com</a></p>
<p><strong>Midgard Runtime</strong> that combines the Midgard MVC, a <a href="http://wiki.github.com/indeyets/appserver-in-php/">PHP application server</a> and <a href="http://www.flickr.com/photos/bergie/4071541356/">a WebKit UI</a> to provide a full Midgard web development environment on the desktop.</p>
<p>Once the release is in shape a major focus will be put in ease of installation and documentation. We already have Midgard2 running on Windows in addition to Linux and Mac, but it will remain to be seen if the port makes it in time for release.</p>
<h2>Midgard3</h2>
<p>After having a stable LTS release of Midgard2 out there the community will start working on Midgard3, which takes the concepts from Midgard2 even further with several important additions:</p>
<p><strong>Workspaces</strong>, kind of "layered virtual databases" inside one content repository. These can be used on the CMS level of Midgard a bit like git branches are used.</p>
<p><strong>Binary GUIDs</strong> for more efficient storage of the unique object identifiers in Midgard.</p>
<p><strong>MgdSchemas stored in the database</strong> instead of XML files. This will make schema editing, sandboxing and replication between installations a lot easier.</p>
<p><strong>MidgardQuerySelect</strong>, the new better database select interface to replace Midgard Query Builder.</p>
<p><strong>Midgard CMS</strong>, the content management user interface built on top of Midgard3 and the Midgard MVC. We will provide interesting new concepts like UI constructed fully based on <em>introspecting the CMS-generated pages</em> and a git-like model <em>where anybody can edit</em> but pushing to production requires additional privileges.</p>
<p>Most applications will need to be adapted to work on Midgard3, which is why the LTS release will be there to ease the way, just <a href="http://www.midgard-project.org/midgard/8.09/">like we did with Ragnaroek</a> on the Midgard1 series.</p>
<p>The estimated first release of Midgard3 will be in December 2010.</p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.175201 24.919201</georss:point>
            <category>desktop</category>
            <pubDate>Sun, 25 Apr 2010 23:53:31 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1df50c5c087390a50c511dfbf7d5988809eab0dab0d</guid>
        </item>
        <item>
            <title>On volcanic ashes and international travel</title>
            <link>http://bergie.iki.fi/blog/on_volcanic_ashes_and_international_travel/</link>
            <description><![CDATA[
<p>The past two weeks have been pretty hectic for me - <a href="http://www.qaiku.com/go/6myd/">Midgard Gathering</a> in Poland, some meetings in Berlin, and the <a href="http://events.linuxfoundation.org/events/collaboration-summit">Linux Collaboration Summit</a> in San Francisco. And then, thanks to the <a href="http://en.wikipedia.org/wiki/2010_eruptions_of_Eyjafjallaj%C3%B6kull">Eyjafjallajökull eruption</a> in Iceland and the <a href="http://en.wikipedia.org/wiki/Air_travel_disruption_after_the_2010_Eyjafjallaj%C3%B6kull_eruption">resulting flight cancellations</a>, the trip back became a little bit more complicated.</p>
<p><a href="http://www.flickr.com/photos/bergie/4530323500/"><img src="http://bergie.iki.fi/static/1/1df4ca8ba6c82da4ca811df8865199108a1f11ff11f_view_4530323500_9153bd2bcf_b.jpg" border="0" alt="San Francisco bay" /></a></p>
<p>My original KLM flight on April 17th was cancelled, and as the best offer from the airline was to get me home on 27th I made some quick decisions while still on the San Francisco airport. As it was certain that there would be some days of delay, New York felt like the best place to wait for <a href="http://www.metoffice.gov.uk/aviation/vaac/data/VAG_1271763280.png">the dust</a> to settle.</p>
<p><a href="http://www.flickr.com/photos/bergie/4529689441/"><img src="http://bergie.iki.fi/static/1/1df4ca8be5e16424ca811df8865199108a1f11ff11f_view_4529689441_db673406c7_b.jpg" border="0" alt="Cancelled flights on SFO" /></a></p>
<p>After a failed attempt to get across the Atlantic on an Indian airline, my current plan is to fly tonight to Moscow with Aeroflot, and then hopefully to continue to Helsinki from there, either by plane or train.</p>
<p><a href="http://www.flickr.com/photos/bergie/4536169938/"><img src="http://bergie.iki.fi/static/1/1df4ca8b39292c44ca811df8865199108a1f11ff11f_view_4536169938_e522c885bc_b.jpg" border="0" alt="New York from the Intrepid" /></a></p>
<p>In the meanwhile, thanks to Gregor and Google for graciously providing me with office space while I'm stuck here!</p>
<p><a href="http://www.flickr.com/photos/bergie/4540132904/"><img src="http://bergie.iki.fi/static/1/1df4d2889833be84d2811dfae0ddb37264bd693d693_view_4540132904_0ee21e2d75_b.jpg" border="0" alt="Gregor in Meat Packing District" /></a></p>
<p><strong>As an afterthought:</strong> if such disruptions in flying would continue, that would be a huge boost for high-speed rail, fast ocean liners and telepresence. And that might not be such a bad thing for the future of mankind.</p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>40.789101 -73.975098</georss:point>
            <category>desktop</category>
            <pubDate>Wed, 21 Apr 2010 20:02:14 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1df4d80c7cda5164d8011dfa2b65bd24832efb6efb6</guid>
        </item>
        <item>
            <title>Unitasking has its merits</title>
            <link>http://bergie.iki.fi/blog/unitasking_has_its_merits/</link>
            <description><![CDATA[
<p>One of the <a href="http://gizmodo.com/5458382/8-things-that-suck-about-the-ipad">key complaints about iPad</a> has been its <a href="http://arstechnica.com/microsoft/news/2010/03/unitasking-in-a-sandbox-windows-phone-7-series-philosophy.ars">lack of multitasking</a>. With it you can only run one application at a time, though music for example will still continue to play while you work. This is not how computers have traditionally worked, but it may not only be a bad thing. <a href="http://gigaom.com/2010/04/02/why-ipad-will-change-blogging-for-me/">Om Malik notes</a>:</p>
<blockquote>In many ways, the iPad’s lack of multitasking ability makes it worthy of focusing on just the task at hand. In my brief usage of the device <a href="http://gigaom.com/2010/01/27/my-early-impressions-of-apples-ipad-a-quick-hands-on-review/">at the time of its unveiling</a>, I felt a near-complete interaction with an email or a document or a web page. That was near nirvana when it came to consumption of content.</blockquote>
<p>This is close to the way I work on my <a href="http://www.canonical.com/projects/ubuntu/unr">Ubuntu Netbook</a>. When I use an application - be it a web browser or a code editor - I run it <a href="https://launchpad.net/maximus">maximized</a>, trying to rid my screen of unnecessary distractions. This is what makes the netbook <em>my work machine</em>.</p>
<p>My work machine is not a communications tool. For that I have my <a href="http://maemo.nokia.com/n900/">N900 universal communicator</a>, a second screen with beautiful multitasking capabilities. The <a href="http://bergie.iki.fi/blog/the_universal_communicator/">N900 is the hub</a> of all the potential distractions - whether you call me, IM me, or ping me on IRC, the little <a href="http://www.mynokiaworld.com/2010/01/hacking-the-n900s-notification-lights/">notification led</a> will start to blink. If I don't want to be distracted I simply leave the communicator in my bag.</p>
<p>So yes, in an increasingly distracting world, <em><a href="http://www.ehow.com/how_5351555_stop-multitasking-start-unitasking.html">single-tasking</a> may have a new purpose</em>.</p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.1614 24.936701</georss:point>
            <category>desktop</category>
            <pubDate>Tue, 06 Apr 2010 20:30:23 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1df41bb3a40965241bb11dfbb51b3feb781e2c6e2c6</guid>
        </item>
        <item>
            <title>GeoClue 0.12 is out: Location awareness over D-Bus</title>
            <link>http://bergie.iki.fi/blog/geoclue_0-12_is_out-location_awareness_over_d-bus/</link>
            <description><![CDATA[
<p><img src="http://bergie.iki.fi/midcom-serveattachmentguid-61384bd4f5c711dc9ee53fcc6932dc8bdc8b/geoclue-200.png" border="0" alt="geoclue-200.png" style="float:right;margin-left:10px;" /></p>
<p>After a <a href="http://bergie.iki.fi/blog/geoclue_status_update/">long hiatus</a> there was a <a href="http://lists.freedesktop.org/archives/geoclue/2010-March/000385.html">new GeoClue release 0.12 last week</a>. <a href="http://www.freedesktop.org/wiki/Software/GeoClue">GeoClue</a> is a D-Bus service that Linux applications can use to obtain user's current position and convert between human-readable addresses and coordinates. As <a href="http://www.time.com/time/specials/packages/article/0,28804,1973759_1973760_1973802,00.html">location-aware services</a> are becoming more important and computers more mobile the <a href="http://bergie.iki.fi/blog/making_the_gnome_desktop_location-aware/">free desktops should also be aware of where they are</a>.</p>
<p><a href="http://blog.renevier.net/index.php?post/2010/03/26/new-geoclue-release">Dadadi Blog writes</a>:</p>
<blockquote>
<p>Geoclue has a really nice feature, the <em>master provider</em>. It means geoclue can handle multiple sources of geoinformations. For example, you can get your position with your gps device, or with <a href="http://www.opencellid.org/">OpenCellId</a>, or with webservices that will associate your IP address with a location (such as <a href="http://www.hostip.info/">hostip</a>). Geoclue master provider is able to choose  the  source with the best accuracy.</p>
<p>Geoclue is used at least in <a href="http://live.gnome.org/Empathy">Empathy</a> to publish your location to your contacts, and in <a href="http://webkit.org/">WebkitGtk</a> to support <a href="http://dev.w3.org/geo/api/spec-source.html">html5 geolocation</a>.</p>
<p>It's been the first release in nearly two years, and it's great to see that nice project moving forward again. In this release, <a href="http://nominatim.openstreetmap.org/">Nominatim</a> has been added as a provider for geocoding and reverse/geocoding. It means it's possible to use nominatim service to get the position for a given address, or the opposite. There have been also many bugfixes and code cleaning, including <a href="http://bugs.freedesktop.org/show_bug.cgi?id=22160">a bug I've helped to resolve</a> that prevented master provider from being usable  in some configurations.</p>
</blockquote>
<p>I'm also really happy to see GeoClue again moving on. It is important for the <a href="http://www.freedesktop.org/wiki/">free desktop</a> infrastructure to have such critical tools available as vendor-neutral <a href="http://bergie.iki.fi/blog/geoclue_is_appearing/">D-Bus services</a> instead of <a href="http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Using_Connectivity_Components/Using_Location_API#Using_liblocation">platform-specific libraries</a>.</p>
<p><strong>Update:</strong> ran into <a href="http://live.gnome.org/gtg/soc/python_geoclue">python-geoclue</a>, a very handy Python convenience library for dealing with GeoClue that is a result <a href="http://www.paulocabido.com/gsoc/gsoc-09-aditional-documentation-for-my-work/">from last summer's GSoC</a>. <a href="http://www.qaiku.com/go/69hv/">Seems to work</a> pretty well.</p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.188099 24.8244</georss:point>
            <category>desktop</category>
            <pubDate>Mon, 29 Mar 2010 11:26:54 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1df3b25fa6fd8263b2511dfaec7f30263e94f154f15</guid>
        </item>
        <item>
            <title>First year of Qaiku, and a travel writing challenge</title>
            <link>http://bergie.iki.fi/blog/first_year_of_qaiku-and_a_travel_writing_challenge/</link>
            <description><![CDATA[
<p><img src="http://bergie.iki.fi/static/1/1df2bbe864279c02bbe11df8849b307a0df59445944_qaiku-birthday_mascot.gif" border="0" alt="1st birthday of Qaiku" title="1st birthday of Qaiku" style="float:right;" /><a href="http://www.qaiku.com/">Qaiku</a>, the <a href="http://bergie.iki.fi/blog/microblogging-why_qaiku_might_do_what_twitter_and_brightkite_didn-t/">conversational microblogging service</a> that launched a year ago had a refresh that launched today. While it hasn't yet convinced the twittering masses, it has already proven itself as a lot more thoughtful platform for the Finnish online community, and as a valuable <a href="http://bergie.iki.fi/blog/maemo-org_is_testing_workstreaming_with_qaiku/">workstreaming tool</a>.</p>
<p>The new version looks quite nice and fresh. Notice the privacy information on the right-hand side, which is relevant as Qaiku allows channels and profiles that are private or invitation-only:</p>
<p><img src="http://bergie.iki.fi/static/1/1df2bbd3c08f3262bbd11dfb984e5004382fa3ffa3f_qaiku-onmytravels-small.png" border="0" alt="qaiku-onmytravels-small.png" title="qaiku-onmytravels-small.png" /></p>
<p>Technically the new version is also remarkable as it is the first major website to run fully on top of the legacy-free <a href="http://bergie.iki.fi/blog/raise_the_hammer-midgard2_mjolnir_goes_live/">Midgard2 platform</a>. So yes, every entry you see there is a GObject. And D-Bus signals fly when you post.</p>
<h2>On to the challenge, then</h2>
<p>To highlight Qaiku's threading, conversational nature I started a new <a href="http://www.qaiku.com/go/61gu/"><em>"On my travels, I have"</em></a><a href="http://www.qaiku.com/go/61gu/"> thread</a> for sharing your <em>most extraordinary travel experiences</em>. This is not on Twitter or Buzz as with Qaiku it is so easy to keep the conversation together and accessible for the future as well.</p>
<p>To contribute, <a href="http://www.qaiku.com/settings/registration/">sign up on Qaiku</a>, go to <a href="http://www.qaiku.com/go/61gu/">the thread</a> and add your experiences as a comment. If you have a link or picture to include, you can also do so. My first entry was:</p>
<blockquote><a href="http://bergie.iki.fi/blog/african-miracles/">seen</a> ice descend from the heavens and provide us with cold beer on a hot day in Lesotho</blockquote>
<p>Will be interesting to see what comes out of this :-)</p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>-3.06343 -60.106998</georss:point>
            <category>desktop</category>
            <pubDate>Tue, 09 Mar 2010 21:00:09 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1df2bbebf6658b62bbe11dfb4a947f5df1c12871287</guid>
        </item>
        <item>
            <title>Getting started with the Midgard content repository</title>
            <link>http://bergie.iki.fi/blog/getting_started_with_the_midgard_content_repository/</link>
            <description><![CDATA[
<p>I'm doing a talk today in the <a href="http://www.bossaconference.indt.org/">Bossa Conference</a> about using  <a href="http://bergie.iki.fi/blog/raise_the_hammer-midgard2_mjolnir_goes_live/">Midgard</a> as a content repository for mobile applications. As part of my presentation I wrote some simple example code for using the <a href="http://www.midgard-project.org/documentation/python_midgard/">Midgard APIs in Python</a>, and thought they would be good to share to those not attending the event as well.</p>
<p>The <a href="http://bergie.iki.fi/blog/why_you_should_use_a_content_repository_for_your_application/">idea of a content repository</a> is that instead of coming up with new, isolated file formats or database setups for your application you can just work with objects and signals, and let Midgard handle the rest. This is something that lots of people are doing with  <a href="http://couchdb.apache.org/">CouchDB</a> as well, but we feel Midgard, with its light footprint and native APIs for languages like Python, C, Vala and PHP fits better in the mobile applications context.</p>
<h2>Installing Midgard</h2>
<p>Midgard packages are available for many different Linux distributions through the OpenSuse Build Service. To find the right repository for  your setup, go to the <a href="http://download.opensuse.org/repositories/home:/midgardproject:/mjolnir/">OBS project page</a>.  For example, on my Ubuntu Karmic netbook the URL to add to apt <code>sources.list</code> is  <code>deb http://download.opensuse.org/repositories/home:/midgardproject:/mjolnir/xUbuntu_9.10/ ./</code>. Then I just:</p>
<pre>sudo apt-get update
sudo apt-get install python-midgard2
</pre>
<p>Midgard is also available in <a href="http://maemo.org/packages/search/?org_maemo_packages_search%5B1%5D%5Bproperty%5D=name&amp;org_maemo_packages_search%5B1%5D%5Bconstraint%5D=LIKE&amp;org_maemo_packages_search%5B1%5D%5Bvalue%5D=midgard">Maemo extras</a> and for OS X <a href="http://www.macports.org/ports.php?by=name&amp;substr=midgard2">on MacPorts</a>.</p>
<h2>Defining a schema</h2>
<p>The first thing when developing a Midgard application is to define your storage objects. This is done using the  <a href="http://www.midgard-project.org/documentation/mgdschema-file-properties/">MgdSchema XML format</a>. In this case we're doing a simple "attendee" object that amends Midgard's built-in person record with information related to the conference:</p>
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;Schema xmlns="http://www.midgard-project.org/repligard/1.4"&gt;
    &lt;type name="openbossa_attendee" table="openbossa_attendee"&gt;
        &lt;property name="id" type="unsigned integer" primaryfield="id"&gt;
            &lt;description&gt;Local non-replication-safe database identifier&lt;/description&gt;
        &lt;/property&gt;
        &lt;property name="person" type="unsigned integer" link="midgard_person:id"&gt;
            &lt;description&gt;Person attending the event&lt;/description&gt;
        &lt;/property&gt;
        &lt;property name="registration" type="datetime"&gt;
            &lt;description&gt;Registration date of the attendee&lt;/description&gt;
        &lt;/property&gt;
        &lt;property name="likesbeer" type="boolean"&gt;
            &lt;description&gt;Whether the attendee likes beer&lt;/description&gt;
        &lt;/property&gt;
    &lt;/type&gt;
&lt;/Schema&gt;
</pre>
<p>Then we just save this XML file into <code>/usr/share/midgard2/schema/</code> so that Midgard will find it.</p>
<h2>Initiating the repository connection</h2>
<p>Once the MgdSchema is in place it is time to <a href="http://xkcd.com/353/">import antigravity</a> and start hacking in Python.  The code works pretty much in the same way in other languages Midgard is available for, but Python is used here for the sake of simplicity. First we load the Midgard extension:</p>
<pre>import _midgard as midgard
</pre>
<p>Then we setup the <a href="http://www.midgard-project.org/api-docs/midgard/core/9.9/midgard-connection.html">repository connection</a>. With these <a href="http://www.midgard-project.org/api-docs/midgard/core/9.9/midgard-config.html">settings</a> we will store our content into an SQLite database located in  <code>~/.midgard2/data/midgardexample.db</code>:</p>
<pre>configuration = midgard.config()
configuration.dbtype = 'SQLite'
configuration.database = 'midgardexample'

# Open a Midgard repository connection with our config
connection = midgard.connection()
connection.open_config(configuration)
</pre>
<p>As this is the first time we're interacting with the repository we need to tell Midgard to  <a href="http://www.midgard-project.org/api-docs/midgard/core/9.9/midgard-storage.html">prepare the storage</a> for itself and also for our new <code>openbossa_attendee</code> class:</p>
<pre>midgard.storage.create_base_storage()
midgard.storage.create_class_storage('midgard_person')
midgard.storage.create_class_storage('midgard_parameter')
midgard.storage.create_class_storage('openbossa_attendee')
</pre>
<h2>Interacting with data</h2>
<p>First we create a person <a href="http://www.midgard-project.org/api-docs/midgard/core/9.9/midgard-object.html">object</a> with our attendee:</p>
<pre>person = midgard.mgdschema.midgard_person()
person.firstname = 'Leif'
person.lastname = 'Eriksson'
person.create()
</pre>
<p>Then we create our attendee object and link that with the person we just created:</p>
<pre>attendee = midgard.mgdschema.openbossa_attendee()
attendee.person = person.id
attendee.likesbeer = True
attendee.create()
</pre>
<h2>Querying data</h2>
<p>Later we'll want to find out about all Leifs attending the event. We do this by using the  <a href="http://www.midgard-project.org/api-docs/midgard/core/9.9/midgard-query-builder.html">Midgard query builder</a>:</p>
<pre>qb = midgard.query_builder('openbossa_attendee')
qb.add_constraint('person.firstname', '=', 'Leif')
attendees = qb.execute()
</pre>
<p>The query builder returns us a list of matching attendee objects. We can go through them and also fetch the associated persons:</p>
<pre>for attendee in attendees:
    person = midgard.mgdschema.midgard_person()
    person.get_by_id(attendee.person)
    if attendee.likesbeer:
        print "%s, %s is attending the event" % (person.lastname, person.firstname)
</pre>
<p>Then we can update the persons with their email addresses:</p>
<pre>    person.email = 'leif@vinland.no'
    person.update()
</pre>
<p>For basic data handling, that's it! When you need more, you can extend objects with  <a href="http://www.midgard-project.org/documentation/php_midgard_object_attachments/">file attachments</a> or  <a href="http://www.midgard-project.org/documentation/php_midgard_object_parameters/">parameters</a>. You can also create joined records using <a href="http://blogs.nemein.com/people/piotras/view/1246881867.html">Midgard views</a>.  Midgard provides <a href="http://teroheikkinen.iki.fi/blog/midgard_workshop_at_fscons/">D-Bus signals</a>, <a href="http://blogs.nemein.com/people/piotras/view/1246966442.html">transactions</a>,  <a href="http://www.midgard-project.org/documentation/mgdschema-metadata-object/">centralized metadata</a>,  <a href="http://www.midgard-project.org/documentation/php-midgard_replicator/">synchronization</a> and many other things.</p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>-3.06343 -60.106998</georss:point>
            <category>desktop</category>
            <pubDate>Tue, 09 Mar 2010 15:50:26 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1df2b937abcafba2b9311df8feac5680ae0b314b314</guid>
        </item>
        <item>
            <title>Wallpapers for Ubuntu 10.04: my submissions</title>
            <link>http://bergie.iki.fi/blog/wallpapers_for_ubuntu_10-04-my_submissions/</link>
            <description><![CDATA[
<p><a href="https://wiki.ubuntu.com/LucidLynx">Ubuntu 10.04</a> "Lucid Lynx" is coming and they're <a href="https://wiki.ubuntu.com/Artwork/Incoming/Lucid/Wallpaper_Contest_Planning">looking for suitable wallpapers</a>. I <a href="http://www.flickr.com/groups/ubuntu-artwork/pool/15087210@N00/">made some submissions</a> and was pretty happy to see one of them in the <a href="http://www.techdrivein.com/2010/02/top-15-wallpapers-for-ubuntu-1004-lucid.html">Top 15 wallpapers for Ubuntu Lucid</a> post:</p>
<p><a href="http://www.flickr.com/photos/bergie/321447455/in/pool-ubuntu-artwork"><img src="http://farm1.static.flickr.com/126/321447455_2d54ef237d.jpg" border="0" alt="Shnjaka sailing on lake Onega, Russia" title="Shnjaka sailing on lake Onega" /></a></p>
<p>Here are some other submissions I made:</p>
<p><a href="http://www.flickr.com/photos/bergie/309644595/in/pool-ubuntu-artwork"><img src="http://farm1.static.flickr.com/108/309644595_dab479e233_m.jpg" border="0" alt="Lights of the Itaipu dam, Brazil" title="Lights of the Itaipu dam, Brazil" /></a> <a href="http://www.flickr.com/photos/bergie/2708621916/in/pool-ubuntu-artwork"><img src="http://farm4.static.flickr.com/3098/2708621916_18e17ebcef_m.jpg" border="0" alt="Sunset on the Aegean sea, Turkey" title="Sunset on the Aegean sea, Turkey" /></a> <a href="http://www.flickr.com/photos/bergie/3862191013/in/pool-ubuntu-artwork"><img src="http://farm3.static.flickr.com/2434/3862191013_aff947ecc6_m.jpg" border="0" alt="Motorcycling on mountain roads, Albania" title="Motorcycling on mountain roads, Albania" /></a></p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.167999 24.9263</georss:point>
            <category>desktop</category>
            <pubDate>Wed, 24 Feb 2010 11:03:08 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1df213430bdfef0213411dfb09eaf71f8da25e425e4</guid>
        </item>
        <item>
            <title>Going to the Bossa Conference</title>
            <link>http://bergie.iki.fi/blog/going_to_the_bossa_conference/</link>
            <description><![CDATA[
<p><a href="http://www.bossaconference.indt.org/">Bossa Conference</a>, an event about mobile development with free software technologies will be held on March 7th-10th in <a href="http://en.wikipedia.org/wiki/Manaus">Manaus</a>, Brazil. This year I'm speaking about using <a href="http://midgard2.org/">Midgard</a> as a replicated storage layer in mobile applications, with examples for multiple programming languages and toolkits.</p>
<p>The idea behind the <a href="http://bergie.iki.fi/blog/midgard2_stable-generic_content_repository_for_web-desktop_and_mobile/">Midgard content repository</a> is that instead of coming up with your own file formats you can just <a href="http://bergie.iki.fi/blog/why_you_should_use_a_content_repository_for_your_application/">keep working with objects and signals</a>, and let the repository deal with the rest.</p>
<p><img src="http://bergie.iki.fi/static/1/1df2077771ab4aa207711dfb6718745055195119511_bossaconference-small-png.jpg" border="0" alt="bossaconference-small.png" title="bossaconference-small.png" /></p>
<p>It is always fun to go to Brazil and <a href="http://www.flickr.com/photos/bergie/collections/72157600946258420/">meet the vibrant free software community</a> there. The plan is to fly over this weekend, spend a few days in Sao Paulo and then head for the Amazon. Feel free to <a href="http://bergie.iki.fi/">ping me</a> if you're around.</p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.169899 24.9384</georss:point>
            <category>desktop</category>
            <pubDate>Tue, 23 Feb 2010 12:38:44 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1df2078618248a0207811dfbc30997c9fb3d8eed8ee</guid>
        </item>
        <item>
            <title>Maemo's community involvement infrastructure is what MeeGo needs</title>
            <link>http://bergie.iki.fi/blog/maemo-s_community_involvement_infrastructure_is_what_meego_needs/</link>
            <description><![CDATA[
<p><a href="http://maemo.org/">Nokia's Maemo</a> and <a href="http://moblin.org/">Intel's Moblin</a> are merging to form <a href="http://meego.com/">MeeGo</a>, a development environment for a new class of internet-connected devices ranging from smartphones through netbooks to TV sets. This may be finally what provides the free software world with a consistent and modern alternative to the <a href="http://bergie.iki.fi/blog/ipad_and_information_appliances-a_free_software_angle/">iPhones and iPads</a> that the proprietary world has come up with, the "magical user experiences" Linux Foundation's <a href="http://www.linux.com/news/featured-blogs/158-jim-zemlin/281338-linux-can-compete-with-the-ipad-on-price-but-wheres-the-magic">Jim Zemlin was asking for</a>.</p>
<p><img src="http://bergie.iki.fi/static/1/1df1adcc83389021adc11dfbd6acbf8ba612c7f2c7f_meego-small-png.jpg" border="0" alt="meego-small.png" title="meego-small.png" /></p>
<p><a href="http://developer.android.com/guide/basics/what-is-android.html">Unlike Android</a>, both Moblin and Maemo stacks have been very promising in the sense that <a href="http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Architecture/Top_Level_Architecture">they've been closely aligned with</a> existing and well-known Linux desktop technologies. All RPC communications happen through D-Bus, Qt or Clutter is used as the GUI toolkit, there is <a href="http://telepathy.freedesktop.org/wiki/">Telepathy</a> for integrated VoIP and IM communications, and Moblin even comes with the <a href="http://software.intel.com/en-us/articles/geoclue-location-information-retrieval-for-moblin-20-linux/">GeoClue location service</a>.</p>
<p>So far the discussion about this merge has very much focused on technical terms: what toolkit to use (Qt is recommended), what package manager (RPM) and so forth. However, <a href="http://talk.maemo.org/showpost.php?p=527267&amp;postcount=93">what hasn't been discussed yet</a> is what will happen to Maemo's excellent <a href="http://wiki.meego.com/Maemo_and_Moblin_community_assets">infrastructure for community involvement</a>:</p>
<ul><li><a href="http://maemo.org/community/brainstorm/"><strong>Brainstorm</strong></a> is a tool for proposing ideas and solutions to them, and then voting to qualify them. This is a very good way to gather ideas and feedback from the community, and some brainstorms have even ended up having community-led free implementations available, freeing Nokia from having to write all platform functionality</li>
<li><a href="http://talk.maemo.org/"><strong>Talk</strong></a> is the very popular forum for both Maemo end users and developers. Having an open forum to discuss it all, and having also people from Nokia and Intel there would help to communicate the aims and decisions around the platform a lot better</li>
<li><a href="http://maemo.org/packages/"><strong>Packages</strong></a> and <a href="http://maemo.org/downloads/Maemo5/"><strong>Downloads</strong></a> provide a fully open and crowdsourced "app store experience" where the community is free to develop, upload and install Maemo applications through a consistent service that <a href="http://wiki.maemo.org/Extras-testing">provides quality control</a>, <a href="http://tabletui.wordpress.com/2009/12/22/2010-ui-countdown-9-%E2%80%93-extras-assistant/">nice installers</a> and a <a href="http://blog.karlitschek.de/2009/11/open-collaboration-services.html">free API</a> for browsing the software available</li>
<li><a href="http://wiki.maemo.org/Task:Community_Council"><strong>Community Council</strong></a> and the <a href="http://wiki.maemo.org/Maemo.org_Sprints"><strong>Sprint process</strong></a> have been the way Maemo's community infrastructure has been designed and developed out in the open. The various tasks have been documented in the Wiki, and people have been able to follow the progress through <a href="http://www.qaiku.com/channels/show/maemork/">a Qaiku workstream</a></li>
<li><a href="http://wiki.maemo.org/Karma"><strong>Karma</strong></a> is a way to credit community members for their involvement. The involvement can be technical (for instance, developing a popular Maemo application) or social (publishing popular blog posts or helping people on Talk), and has been used as a criteria for Community Council and other elections. Karma also helps Nokia to qualify community members, to find the people who should have access the developer devices for instance. In a large community it is hard to identify the people who are just loud and the people who are doing actual valuable contributions from each other without such tools</li>
<li><a href="http://maemo.org/news/"><strong>Social News</strong></a> and <a href="http://maemo.org/news/planet-maemo/"><strong>Planet</strong></a> are a way for the community to aggregate and promote important posts around the project. We look at things like social bookmarking, blog links and votes happening on the Maemo site to <a href="http://bergie.iki.fi/blog/maemo_social_news_launched/">determine the most important stories</a> of the day, to provide an "automatic newspaper" for the project</li>
</ul><p>Providing all or some of these services as part of the MeeGo infrastructure would enable the community to feel involvement, and even ownership in the new project that is shaping up. This is critical for a project that has such a big reliance on new innovation and connectivity with the upstream, especially at the time of such big change.</p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.176102 24.920099</georss:point>
            <category>desktop</category>
            <pubDate>Tue, 16 Feb 2010 09:39:35 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1df1adf313a4aec1adf11df91d009c4739223262326</guid>
        </item>
        <item>
            <title>iPad and information appliances, a free software angle</title>
            <link>http://bergie.iki.fi/blog/ipad_and_information_appliances-a_free_software_angle/</link>
            <description><![CDATA[
<p><a href="http://arstechnica.com/apple/news/2010/01/apple-announces-ipad-attempts-to-change-the-world.ars">Apple iPad</a> is certainly interesting. It seeks to <a href="http://mobileopportunity.blogspot.com/2010/01/ipad-attempted-windows-killer_27.html">challenge the concept  of PCs</a> by providing something that is at the same time more personal,  and a lot easier to use. <a href="http://www.techcrunch.com/2010/01/27/ipad/">The personal computer of the future</a>.<br /><br /> Gone is difficult file organization - instead, applications use their  <a href="http://bergie.iki.fi/blog/will_content_repositories_kill_the_file/">own purpose-build content repositories</a>. Instead of seeking software from  many places, all of it is easily available in an App Store, all  <a href="http://www.macworld.com/article/134960/2008/08/appstore.html">quality-controlled by Apple</a>. And same thing with content - <a href="http://bergie.iki.fi/blog/amazon_kindle_could_be_the_library_of_the_working_nomad/">forget about  bookshelves</a> and stacks of CDs, instead simply dowloading all you need  from iTunes.<br /><br /> This sort of user experience obviously <a href="http://www.defectivebydesign.org/ipad">comes with a cost</a>. Important  computing concepts <a href="http://www.theiphoneblog.com/2010/01/27/ipad-multitasking-notifications-tv-subscriptions-camera-tethering-textbooks/">like multitasking are not supported</a>. The  iTunes/App Store experience means that Apple <a href="http://arstechnica.com/tech-policy/news/2010/01/protestors-ipad-is-nothing-more-than-a-golden-calf-of-drm.ars">is in the position to  ensure</a> no software or content competing with its or its business  partners' business model gets on the device. And most of the content you  buy for the device is <a href="http://www.defectivebydesign.org/what_is_drm">DRM'd</a>, meaning that you're only renting it for  the time allowed by content owners, never buying.<br /><br /> Even with the limitations concerned I can see myself buying an iPad. It  would serve as a very nice device for web surfing from the couch and as  an e-reader on business trips. I can also see myself <a href="http://www.readwriteweb.com/start/2010/01/what-the-ipad-means-for-startu.php">running demos</a> and  presentations from it instead of a laptop.<br /><br /> Even with the limitations concerned, it is likely that the iPad will  happen, and will blaze the trail towards a new way of personal  computing. <a href="http://www.stephenfry.com/2010/01/28/ipad-about/">Stephen Fry says it well</a>:</p>
<blockquote>Like the first iPhone, iPad 1.0 is a John the Baptist preparing the way  of what is to come, but also like iPhone 1.0 (and Jokanaan himself too  come to that) iPad 1.0 is still fantastic enough in its own right to be  classed as a stunningly exciting object, one that you will want NOW and  one that will not be matched this year by any company. In the future,  when it has two cameras for fully featured video conferencing, GPS and  who knows what else built in (1080 HD TV reception and recording and  nano projection, for example) and when the iBook store has recorded its  100 millionth download and the thousands of accessories and peripherals  that have invented uses for iPad that we simply can’t now imagine – when  that has happened it will all have seemed so natural and inevitable  that today’s nay-sayers and sceptics will have forgotten that they ever doubted its potential.</blockquote>
<p>The success of iPad will mean more than just a completely new level of App  Store economy. Other companies will certainly seek to emulate the model,  coming up with their own <a href="http://en.wikipedia.org/wiki/Post-WIMP">post-WIMP</a> devices and their <a href="http://www.engadget.com/2009/05/26/nokia-ovi-store-now-live-everywhere/">own content and  software ecosystems</a>. This all will be a challenge for the free software  movement.<br /><br /> The world of free software is still very much stuck in what computing  was in the 90s. We think of desktop computers, we <a href="http://bergie.iki.fi/blog/free_desktop_and_the_cloud/">do not integrate with  the web</a>. And we do not get the transformation that is happening with  personal computers. Taught by smartphones and cloud applications, users  are moving from desktops through simple netbooks towards <a href="http://gizmodo.com/5452501/the-apple-tablet-interface-must-be-like-this">information  appliances</a>.<br /><br /> With information appliances you need <a href="http://bergie.iki.fi/blog/direct_manipulation_interfaces/">a seamless user interface</a>. You need  an ecosystem where content comes alongside the software to utilize it.  You need to move past the old WIMP metaphors and the idea of separation  between data stored in a a file system and the software manipulating it.<br /><br /> So far the first convincing attempt towards this direction I've seen in  the free software world is <a href="http://www.socialdesktop.org/">KDE's Social Desktop initiative</a>. It allows  users to connect with each other straight through the desktop, and it  allows discovery of new applications and content to download and use  straight in the applications. We also use it with <a href="http://danielwilms.wordpress.com/2010/01/27/download-assistant-for-extras-applications/">Maemo's new App  Downloader</a>.<br /><br /> Threatened by the cloud from one end, and closed-ecosystem appliances  from the other, it will be interesting to see how we react. Will we rise  to the challenge and start providing new user experiences? Will we  build a free cloud? Will we integrate with initiatives like <a href="http://www.gutenberg.org/wiki/Main_Page">Project  Gutenberg</a> and <a href="http://creativecommons.org/">Creative Commons</a> to provide the content integration? Will <a href="http://openwebfoundation.org/"> the open web</a> be our safe haven?<br /><br /> Definitely interesting times to be a software developer.</p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.176201 24.9202</georss:point>
            <category>business</category>
            <pubDate>Thu, 28 Jan 2010 09:51:43 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1df0bf2bdda29fa0bf211dfb0f98b2aae0eed19ed19</guid>
        </item>
        <item>
            <title>Direct manipulation interfaces</title>
            <link>http://bergie.iki.fi/blog/direct_manipulation_interfaces/</link>
            <description><![CDATA[
<p>There certainly is a lot of buzz about <a href="http://www.engadget.com/tag/Appletablet/">Apple's rumored Tablet</a> product.  <a href="http://daringfireball.net/2009/12/the_tablet">Daring Fireball writes</a>:</p>
<blockquote>If you’re thinking The Tablet is just a big iPhone, or just Apple’s take on the e-reader, or just a media player, or <em>just</em> anything, I say you’re thinking too small — the equivalent of thinking that the iPhone was going to be just a click wheel iPod that made phone calls. I think The Tablet is nothing short of Apple’s reconception of personal computing.</blockquote>
<p>What I find most interesting are the view that the Tablet may bring new  computer interaction paradigms. <a href="http://daringfireball.net/2010/01/the_original_tablet">Again from Daring Fireball</a>:</p>
<blockquote>Our “desktop” computers’ human interfaces haven’t fundamentally changed since 1984 — keyboard and mouse/trackpad for input, overlapping draggable resizable windows on-screen, and a hierarchical file system where you create and manage “document files”. Have you ever sat back, scratched your chin, and wondered when the computer industry will break free of these current interfaces — which can be a hassle even for experts, and downright confusing (e.g. click vs. double-click) for the non-experts? Surely no one expects the computer interfaces of, say, 50 years hence to be based on these same metaphors and input methods. What’s the next step?</blockquote>
<p>A touchscreen tablet isn't really suited for <a href="http://en.wikipedia.org/wiki/WIMP_%28computing%29">the WIMP paradigm</a> as for example <a href="http://www.macworld.com/article/145609/2010/01/tablet_text_entry.html">text entry is quite difficult</a>, and you probably want larger, thumb-friendly user interface elements. This is where <a href="http://theappleblog.com/2010/01/07/microsofts-slate-exactly-unlike-apples-upcoming-tablet/">Microsoft's Tablet PC initiative failed</a>, trying to bring the regular WIMP user interface to the tablet.</p>
<p>Instead what seems to be happening is that all the Wiis, iPhones, and N900s are now heading us towards a <a href="http://en.wikipedia.org/wiki/Post-WIMP">post-WIMP</a> world. Instead of indirect manipulation by mouse and keyboard we can now interact with our applications using the more natural ways of touching things on screen or moving the device around.</p>
<p>This innovation will not be limited only to mobile APIs, web applications can already now know whether user is accessing them via a WIMP  system or a touchscreen device thanks to <a href="https://developer.mozilla.org/en/css/media_queries#-moz-touch-enabled">CSS  media queries</a> and <a href="http://dougt.org/wordpress/2009/08/orientation/">Javascript  orientation events</a> in <a href="http://www.mozilla.com/en-US/firefox/3.6/releasenotes/">latest  Firefox</a>.</p>
<p>The user interface innovation that is arriving thanks to these new interaction possibilities is quite promising, though it will probably take a while before we know what things actually work, and what are just fun demos.</p>
<p>If you're thinking about new kinds of user interfaces, it might be a good time to read papers like <a href="http://www.useit.com/papers/noncommand.html">Noncommand User Interfaces</a> (<em>Jakob Nielsen</em>, 1993) and <a href="http://worrydream.com/MagicInk/">Magic Ink</a> (<em>Bret Victor</em>, 2006).</p>
<p>I certainly am as we are in the process of <a href="http://www.qaiku.com/go/5ebp">defining a new kind of CMS UI</a> for <a href="http://bergie.iki.fi/blog/raise_the_hammer-midgard2_mjolnir_goes_live/">Midgard 2</a>.</p>
<p><strong>Update:</strong> Gizmodo has a very nice <a href="http://gizmodo.com/5452501/the-apple-tablet-interface-must-be-like-this">article on Jef Raskin's information appliance concept</a> and the evolution of GUIs.</p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.163502 24.927999</georss:point>
            <category>desktop</category>
            <pubDate>Thu, 21 Jan 2010 13:26:44 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1df06909e4e04ce069011dfb6b32b7fb4e242a442a4</guid>
        </item>
        <item>
            <title>Midgard in 2009</title>
            <link>http://bergie.iki.fi/blog/midgard_in_2009/</link>
            <description><![CDATA[
<p><img src="http://bergie.iki.fi/static/1/1def5febc8f9aeef5fe11de9b44cb847ee61f091f09_vali_new_year.jpg" border="0" alt="Vali raising a toast" title="Toast for 2009 from Vali" style="float:right;margin-left:6px;" />2009 was a pretty active year for the <a href="http://www.midgard-project.org/">Midgard</a> content repository project, and so it is good to take a look at some of the highlights:</p>
<ul><li><a href="http://www.midgard2.org/">Midgard2</a> finally <a href="http://bergie.iki.fi/blog/midgard2_stable-generic_content_repository_for_web-desktop_and_mobile/">became a reality</a>, bringing us a <a href="http://bergie.iki.fi/blog/midgard_2-finally_legacy-free/">fully legacy-free</a> modern Midgard implementation. There were two releases: <a href="http://www.midgard-project.org/updates/midgard2-9-3-0-vinland-released/">9.03 Vinland</a> and <a href="http://bergie.iki.fi/blog/raise_the_hammer-midgard2_mjolnir_goes_live/">9.09 Mjolnir</a>. Midgard2 works just fine also <a href="http://bergie.iki.fi/blog/why_you_should_use_a_content_repository_for_your_application/">in desktop applications</a> and mobile devices like <a href="http://bergie.iki.fi/blog/tomboy_web_synchronization-conboy_and_midgard/">the Nokia N900</a></li>
<li><a href="http://www.midgard-project.org/midgard/8.09/">Ragnaroek</a>, the <a href="http://bergie.iki.fi/blog/long-term_support_for_midgard-ragnaroek_is_here/">long-term support version</a> of Midgard1 kept chugging along with four new maintenance releases and total of <a href="http://trac.midgard-project.org/query?status=closed&amp;milestone=8.09.3+Ragnaroek&amp;milestone=8.09.4+Ragnaroek&amp;milestone=8.09.5+Ragnaroek&amp;milestone=8.09.6+Ragnaroek&amp;order=priority">566 issues closed</a>. Ragnaroek will be maintained until October 2013</li>
<li>The <a href="http://bergie.iki.fi/blog/first_ten_years_of_midgard/">Midgard Project turned ten years old</a> in May. A <a href="http://www.midgard-project.org/10/programme/">gala evening</a> and <a href="http://www.flickr.com/photos/bergie/sets/72157617984600444/">party was held</a> in Helsinki, Finland</li>
<li>Midgard's content repository gained bindings to two new programming languages alongside existing PHP, C and Python: <a href="http://www.mdk.org.pl/2009/3/26/midgard-objc-bindings">Objective-C in March</a> and <a href="http://trac.midgard-project.org/browser/trunk/midgard/apis/vala/example.vala?rev=24376">Vala in December</a></li>
<li>Midgard was <a href="http://www.iks-project.eu/team">one of the CMSs</a> admitted to the <a href="http://bergie.iki.fi/blog/starting_the_interactive_knowledge_project/">EU-funded Interactive Knowlegde project</a> that aims to increase semantic capabilities in content management</li>
<li><a href="http://www.qaiku.com/">Qaiku</a>, a <a href="http://bergie.iki.fi/blog/microblogging-why_qaiku_might_do_what_twitter_and_brightkite_didn-t/">conversational microblogging platform</a> powered by Midgard MVC was launched in March</li>
<li>We had two Midgard Gatherings: in <a href="http://bergie.iki.fi/blog/midgard_gathering_2009_in_linkoping/">March in Linköping, Sweden</a> and in <a href="http://www.qaiku.com/channels/show/midgard/view/1debfda2c347a3cbfda11dea31c97423a5855b355b3/">October in Helsinki, Finland</a></li>
<li><a href="http://bergie.iki.fi/blog/ragnaland_is_coming/">Ragnaland</a> became a way to bridge the gap between Midgard1 and Midgard2 by enabling running of MidCOM applications on top of Midgard MVC</li>
<li>Midgard was presented in several conferences including <a href="http://bergie.iki.fi/blog/learn_about_midgard2-geoclue_and_libchamplain_in_guadec_2009/">Gran Canaria Desktop Summit</a>, <a href="http://bergie.iki.fi/blog/content_repository_talk_in_froscon/">FrOSCon</a>, <a href="http://www.qaiku.com/channels/show/seminaarikannu/view/1deadc2a643dd4cadc211de91f513767f63d2b7d2b7/">OpenMind</a> and <a href="http://www.qaiku.com/channels/show/seminaarikannu/view/1ded0f68a907c48d0f611de9405ddb75667e0dfe0df/">FSCONS</a></li>
<li><a href="http://www.qaiku.com/channels/show/midgard/view/1deeca09f359ab4eca011dea74d4f007179bd35bd35/">Founding meeting for an association to support the Midgard project</a> was held in December. The association will provide membership to all active Midgard contributors, and an alumni membership for people who have been part of the project in the past</li>
</ul><p>Happy new year to everybody in the Midgard world!</p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.176201 24.920099</georss:point>
            <category>desktop</category>
            <pubDate>Thu, 31 Dec 2009 11:23:35 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1def5feef2e0fa8f5fe11de9869ffb95a6ee8c4e8c4</guid>
        </item>
    </channel>
</rss>
