<?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, 13 Mar 2010 22:39:58 +0000</lastBuildDate>
        <generator>FeedCreator 1.7.6(BH)</generator>
        <language>en</language>
        <managingEditor>henri.bergius@iki.fi</managingEditor>
        <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>
        <item>
            <title>What is a content repository</title>
            <link>http://bergie.iki.fi/blog/what_is_a_content_repository/</link>
            <description><![CDATA[
<p>Joint post of <a href="http://bergie.iki.fi/">Henri Bergius</a> and <a href="http://michaelmarth.blogspot.com/">Michael Marth</a> cross-posted <a href="http://dev.day.com/microsling/content/blogs/main/contentrepositories.html">here</a> and <a href="http://bergie.iki.fi/blog/what_is_a_content_repository/">here</a>.</p>
<p>Web Content Repositories are more than just plain old relational databases. In fact, the requirements that arise when managing web content have led to a class of content repository implementations that are comparable on a conceptual level. During the <a href="http://www.iks-project.eu/">IKS</a> community <a href="http://www.iks-project.eu/civicrm/event/info?reset=1&amp;id=3">workshop in Rome</a> we got together to compare JCR (the <a href="http://jackrabbit.apache.org/">Jackrabbit</a> implementation) and <a href="http://www.midgard-project.org/">Midgard</a>'s content repository. While in some cases the terminology might be different, many of the underlying ideas are identical. So we came up with a list of common traits and features of our content repositories. For comparison, there is also <a href="http://couchdb.apache.org/">Apache CouchDB</a>.</p>
<p>So, why use a Content Repository for your application instead of the old familiar RDBMS? Repositories provide several advantages:</p>
<ul><li>
<p><em>Common rules for data access</em> mean that multiple applications can work with same content without breaking consistency of the data</p>
</li>
<li>
<p><em>Signals about changes</em> let applications know when another application using the repository modifies something, enabling collaborative data management between apps</p>
</li>
<li>
<p><em>Objects instead of SQL</em> mean that developers can deal with data using APIs more compatible with the rest of their desktop programming environment, and without having to fear issues like SQL injection</p>
</li>
<li>
<p><em>Data model is scriptable</em> when you use a content repository, meaning that users can easily write Python or PHP scripts to perform batch operations on their data without having to learn your storage format</p>
</li>
<li>
<p><em>Synchronization and sharing</em> features can be implemented on the content repository level meaning that you gain these features without having to worry about them</p>
</li>
</ul><table class="tblGenFixed" border="1" cellspacing="0" cellpadding="2"><thead><tr><th class="s0">feature</th> <th class="s1">JCR / Jackrabbit</th> <th class="s2">Midgard</th> <th class="s3">CouchDB</th>
</tr></thead><tbody><tr><td class="s4">content type system</td>
<td class="s5">In JCR structured or unstructured nodes are supported and can be mixed at will in a content tree.</td>
<td class="s5">Content types are defined in MgdSchema types. All content must be stored to an MgdSchema type, but types can be extended on content instance level using the "parameter" triplets</td>
<td class="s6">Type-free</td>
</tr><tr><td class="s7">type hierarchy</td>
<td class="s8">Structured node types support inheritence of types, additional cross-cutting aspects can be added with "mixins". Node types can define allowed node types for child nodes in the content hierarchy.</td>
<td class="s8">MgdSchemas allow inheritance, and an extended type can be instantiated either using the extended type or the base type</td>
<td class="s9">Type-free</td>
</tr><tr><td class="s4">IDs</td>
<td class="s5">Nodes with mixin "referenceable" have GUID. In practice the node path is often used to reference nodes.</td>
<td class="s5">Every object has a GUID used for referencing. Objects located in trees that have a "name" property can also be referred to using the path</td>
<td class="s6">All objects can be accessed via a UUID</td>
</tr><tr><td class="s7">References</td>
<td class="s8">Nodes can reference each other with hard link (special property type) or soft link (by referring to the node path)</td>
<td class="s8">MgdSchema types can have properties linking to other objects of same or different type. A link of "parentfield" type places an MgdSchema type in a tree.</td>
<td class="s9">No reference support built-in</td>
</tr><tr><td class="s4">content hierarchy</td>
<td class="s5">All content is hierarchical / in a tree</td>
<td class="s5">Content can exist in tree, or independently of it depending on the MgdSchema type definition</td>
<td class="s6">flat structure</td>
</tr><tr><td class="s7">interesting property types</td>
<td class="s8">Multi-valued (like an array), binary properties (e.g. for files), nodes have an implicit sort-order</td>
<td class="s8">Binary properties stored using the Midgard Attachment system</td>
<td class="s9">Support for binary properties</td>
</tr><tr><td class="s4">transactions</td>
<td class="s5">Multiple content modifications are written in transactions.</td>
<td class="s5">Transactions can be used optionally.</td>
<td class="s6"></td>
</tr><tr><td class="s7">events</td>
<td class="s8">JCR Observers can register for content changes on different paths and/or for different node types and/or CRUD, receive notification of changes as serialized node</td>
<td class="s8">All transactions cause both process-internal GObject signals, and interprocess DBus signals</td>
<td class="s9">Support for one external event notification shell script</td>
</tr><tr><td class="s4">workspaces</td>
<td class="s5">Workspaces provide separate root trees.</td>
<td class="s5">No workspaces support in Midgard 9.03, coming in next version</td>
<td class="s6">Multiple databases within one CouchDB instance</td>
</tr><tr><td class="s7">import and export</td>
<td class="s8">nodes or parts of the repository (or the whole repo) can be imported or exported in XML. 2 formats: docview for human-frindly representation, sysview including all technical aspects</td>
<td class="s8">Objects can be exported and imported in XML format. There are tools supporting replication via HTTP, tarballs, XMPP, and the CouchDB replication protocol</td>
<td class="s9">JSON serialization is the standard way of accessing the repository. CouchDB replication protocol supports full synchronization between instances</td>
</tr><tr><td class="s4">versioning</td>
<td class="s5">Checkin/checkout model to create new versions of nodes, optionally versions complete sub-trees, supports branching of versions.</td>
<td class="s5">No versioning</td>
<td class="s6">All versions of content are stored and accessible separately, no branching</td>
</tr><tr><td class="s7">locking</td>
<td class="s8">Nodes can be locked and unlocked</td>
<td class="s8">Objects can be locked and unlocked</td>
<td class="s9"></td>
</tr><tr><td class="s4">object mapping</td>
<td class="s5">Not in standard, but implemented in Jackrabbit. Rarely used in practice.</td>
<td class="s5">Object mapping is the standard way of accessing the repository</td>
<td class="s6">All content is accessed via JSON objects</td>
</tr><tr><td class="s7">queries</td>
<td class="s8">In JCR1 Sql or XPath, in JCR2 also QueryBuilder.</td>
<td class="s8">Query Builder</td>
<td class="s9">Javascript map/reduce</td>
</tr><tr><td class="s4">access control</td>
<td class="s5">Done on repository level, i.e. all access control is independent of application. In Jackrabbit: pluggable authentication/authorization handlers.</td>
<td class="s5">No access control in Midgard repository, usually implemented on application level. Midgard proves a user authentication API</td>
<td class="s6">No access control</td>
</tr><tr><td class="s7">persistence</td>
<td class="s8">In Jackrabbit different Persistence Managers can be plugged in (RDBMS, tar file, ...)</td>
<td class="s8">libgda allows storage to different RDBMS like MySQL, SQLite and Postgres</td>
<td class="s9">CouchDB has its own storage</td>
</tr><tr><td class="s4">architecture</td>
<td class="s5">Jackrabbit: library (jar), JEE resource, OSGi bundle or standalone server</td>
<td class="s5">Library</td>
<td class="s6">Erlang-based daemon</td>
</tr><tr><td class="s7">APIs</td>
<td class="s8">Standard: Java-based, PHP coming up. In Jackrabbit: also WebDAV and HTTP-based API</td>
<td class="s8">C, Objective-C, PHP, Python</td>
<td class="s9">HTTP+JSON</td>
</tr><tr><td class="s4">full-text search</td>
<td class="s5">Included in repository. In Jackrabbit: Lucene bundled</td>
<td class="s5">No (SOLR used on application level)</td>
<td class="s6">Plugin for using Lucene, not installed by default</td>
</tr><tr><td class="s7">standard metadata</td>
<td class="s8">All nodes have access rights, jcr:primaryType and jcr:mixinTypes properties. JCR 2.0 standardizes a set of optional metadata properties.</td>
<td class="s8">All objects have a set of standard metadata including creator, revisor, timestamps etc</td>
<td class="s9">No standard properties</td>
</tr></tbody></table>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.1712 24.9326</georss:point>
            <category>desktop</category>
            <pubDate>Thu, 19 Nov 2009 10:02:03 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1ded4f2966e0490d4f211deaeaf87e99efcee8aee8a</guid>
        </item>
        <item>
            <title>Raise the hammer! Midgard2 Mjolnir goes live</title>
            <link>http://bergie.iki.fi/blog/raise_the_hammer-midgard2_mjolnir_goes_live/</link>
            <description><![CDATA[
<p><a href="http://www.midgard-project.org/updates/midgard2_9-09-mjolnir-released/">Mjolnir, the new major release of Midgard2</a> Content Repository is <a href="http://www.midgard-project.org/download/9-09/">now out</a>. Named after the <a href="http://en.wikipedia.org/wiki/Mjolnir">hammer of Thor</a>, this release finally provides <a href="http://bergie.iki.fi/blog/why_you_should_use_a_content_repository_for_your_application/">a real content repository</a> that can be used by both desktop and web application developers.</p>
<p><img src="http://bergie.iki.fi/static/1/1ded443591ef040d44311deaedd1725f0bcefd2efd2_mjolnir-narrow-png.jpg" border="0" alt="mjolnir-narrow.png" title="mjolnir-narrow.png" /></p>
<p>In addition to being a <a href="http://blogs.nemein.com/people/piotras/view/1247082537.html">GObject-powered</a> content repository for PHP, Python and Objective-C, the Mjolnir release provides several significant goodies on top of the older Midgard2 series:</p>
<ul><li><a href="http://blogs.nemein.com/people/piotras/view/1246881867.html">MgdSchema Views</a> provide a way to define joined data types</li>
<li><a href="http://trac.midgard-project.org/ticket/790">MgdSchema types can be extended</a> with subclasses and <a href="http://blogs.nemein.com/people/piotras/view/1255005390.html">additional information</a></li>
<li><a href="http://blogs.nemein.com/people/piotras/view/1246966442.html">Transactions are available</a> for storage engines that support them</li>
<li><a href="http://www.midgard-project.org/development/mrfc/0045/">New authentication API</a> provides support for different types like OpenID and OAuth</li>
<li>...and there are a lot more unit tests, helping to safeguard against regressions</li>
</ul><p>We've been testing running the <a href="http://www.qaiku.com/">Qaiku microblogging service</a> with Mjolnir. The <em>exactly same PHP code</em> that we used with <a href="http://www.midgard-project.org/midgard/8.09/">Midgard 8.09 LTS</a> performs <em>20-60% better</em> when running on Mjolnir.</p>
<p><a href="http://www.midgard-project.org/download/9-9/">Get Midgard2 9.09 Mjolnir</a> while it is hot! Builds for various Linux distributions are already <a href="http://download.opensuse.org/repositories/home:/midgardproject:/mjolnir/">starting to hit OBS repositories</a>...</p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.1712 24.9326</georss:point>
            <category>desktop</category>
            <pubDate>Wed, 18 Nov 2009 13:21:07 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1ded4453adae678d44511debc5fb5c90c2607a507a5</guid>
        </item>
        <item>
            <title>Will we learn to hide the complexity in Open Source?</title>
            <link>http://bergie.iki.fi/blog/will_we_learn_to_hide_the_complexity_in_open_source/</link>
            <description><![CDATA[
<p><a href="http://factoryjoe.com/blog/2009/11/07/open-source-design-and-the-openofficemouse/">Chris Messina has a pretty good stor</a>y comparing <a href="http://www.apple.com/magicmouse/">Apple's Magic Mouse</a> and the recently announced <a href="http://www.openofficemouse.com/">OpenOfficeMouse</a> that was targeted to power users of <a href="http://why.openoffice.org/">OpenOffice.org</a>:</p>
<blockquote>At base, these products represent two polar opposite ends of the spectrum: Apple prefers to hide complexity within the technology whereas the open source approach puts the complexity on the surface of the device in order to expose advanced functionality and greater transparency into how to directly manipulate the device. Put another way, the reason that people would buy the $69 Apple MagicMouse is because they want Apple’s designers to just “figure it out” for them, and provide them with an instantly-usable product. The reason why someone would pay $75 for this mouse is because it strictly keeps all the decision-making about what the mouse does in the hands (pun intended?) of the purchaser. <br /><br /> What I worry about, however, is that pockets of the open source community continue to largely be defined and driven by complexity, exclusivity, technocracy, and machismo. While I do support independence and freedom of choice in technology — and therefore open source — I prefer to do so <em>inclusively</em>, with an understanding that there are many more people who are not yet well served by technology because appropriate technology <em>has not been made more usable for them</em>.</blockquote>
<p>More <a href="http://bergie.iki.fi/blog/on_innovation-and_how_choice_is_not_always_good/">focus on usability and clarity</a> would be needed with most Open Source projects, but there are already some bright spots. GNOME, for example, has good tradition in simple interfaces. I recently made the jump from Mac OS X to <a href="http://www.canonical.com/projects/ubuntu/unr">Ubuntu Netbook Remix</a>, and have generally been quite happy with it.</p>
<p>But for Open Source projects the challenge is more difficult than for proprietary products. On the other hand we want to provide a nice, usable experience, but we also want to let our users delve deeper into the functionality, to make changes and maybe even become contributors to the project. This is where new tools like <a href="http://wiki.laptop.org/go/OLPC_Human_Interface_Guidelines/The_Laptop_Experience/View_Source">OLPC's View Source button</a> can do wonders if implemented more widely.</p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.1712 24.9326</georss:point>
            <category>desktop</category>
            <pubDate>Sun, 08 Nov 2009 10:15:37 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1decc4fa8bc3d52cc4f11deac00c5960fbda233a233</guid>
        </item>
        <item>
            <title>Got a mystery book</title>
            <link>http://bergie.iki.fi/blog/got_a_mystery_book/</link>
            <description><![CDATA[
<p>When returning from lunch today I found a package on my office desk. The handwriting on the envelope looked familiar from pictures I had seen on Qaiku before, so it was clear: I had <a href="http://www.qaiku.com/channels/show/Mysteerikirja/view/1dec2ecb7672c70c2ec11de9a9e4180e9a28cda8cda/">received my own mystery book</a>:</p>
<p><img src="http://bergie.iki.fi/static/1/1dec324852f9570c32411deb5a29f762cafab34ab34_mystery_book-png.jpg" border="0" alt="mystery_book.png" title="mystery_book.png" /></p>
<p>Mystery books have been received by many <a href="http://www.qaiku.com/community/">prominent Qaiku members</a> before. They are beautifully handcrafted notebooks personalized for the recipient, often containing hints about Qaiku involvement, like having the inner covers made in printed version of that user's profile background. There is no information about the sender or the reason for making them. All are sent from random Turku post offices.</p>
<p>My copy of the mystery book is a mobile notebook, a bit in <a href="http://en.wikipedia.org/wiki/Moleskine">Moleskine</a>-like style. The inner covers have <a href="http://www.emersonkent.com/images/europe_1810.jpg">a map of Europe from 1810</a>, fitting my interest in history and geography spot-on. The book came with a pen, and had been sent from <a href="http://www.verkkoposti.com/e3/TOPIinternetServlet?STATE=1&amp;lang=fi&amp;LOTUS_encoding=UTF-8&amp;TOPI_key=20100&amp;TOPI_hae=Hae">Turku 10</a> at 12:02 yesterday.</p>
<p>Several Qaiku members have posted pictures of their books on Flickr with tag "<a href="http://www.flickr.com/photos/tags/mysteerikirja/">mysteerikirja</a>", and there is <a href="http://www.qaiku.com/channels/show/Mysteerikirja/">a Qaiku channel</a> about it. It remains to be seen whether the books are some viral marketing campaign, or have been made by some individual with <a href="http://en.wikipedia.org/wiki/Am%C3%A9lie">Amélie</a>-like tendencies. Anyway, quite a delightful surprise!</p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.1712 24.9326</georss:point>
            <category>desktop</category>
            <pubDate>Tue, 27 Oct 2009 18:27:06 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1dec32654a5e39ec32611de84b11998bbe5d005d005</guid>
        </item>
        <item>
            <title>Microfeed could be to status updates what Telepathy is to instant messaging</title>
            <link>http://bergie.iki.fi/blog/microfeed_could_be_to_status_updates_what_telepathy_is_to_instant_messaging/</link>
            <description><![CDATA[
<p><a href="http://microfeed.org/">Microfeed</a> is a new D-Bus service for handling <a href="http://en.wikipedia.org/wiki/Microblogging">status updating and microblogging</a> entries from various services. Just like <a href="http://telepathy.freedesktop.org/wiki/">Telepathy</a> allows various applications to utilize instant messaging connections, Microfeed does the same for microblogging:</p>
<blockquote>Microfeed is a specification and a reference implementation of client-server architecture providing access to various information sources that have a feed-type interface. Examples of those feed sources include micro-blogging services, such as Twitter, Facebook, Jaiku, Qaiku, and Laconi.ca. By utilizing Microfeed architecture, a client application can focus on user interface, while the actual feed fetching is done in the background independently. The communication between a local Microfeed server publishing information about feeds and a client application displaying that information to an user is done with the D-Bus messaging following the publisher-subscriber principle.</blockquote>
<p><img src="http://bergie.iki.fi/static/1/1dec20ee98e2016c20e11deacd1ed2738b715511551_microfeed-png.jpg" border="0" alt="microfeed.png" title="microfeed.png" /></p>
<p>Microfeed service already is the power behind <a href="http://www.henrikhedberg.net/">Henrik Hedberg's</a> new <a href="http://talk.maemo.org/showthread.php?t=30637">Mauku microblogging interface</a> for Maemo 5. Here you can see a stream of updates from both <a href="http://www.qaiku.com/">Qaiku</a> and Twitter:</p>
<p><img src="http://bergie.iki.fi/static/1/1dec20eba3e024ac20e11deb6f2bb012b9e7a607a60_mauku_twitter_qaiku-png.jpg" border="0" alt="mauku_twitter_qaiku.png" title="mauku_twitter_qaiku.png" /></p>
<p>If you're implementing a tool that deals with microblogging services, please consider using microfeed for it. Advantages from this include:</p>
<ul><li>User accounts to various services need to be entered only once and can be reused</li>
<li>You don't need to concern yourself with the particular features or quirks of a microblogging service API, just use the D-Bus interfaces provided by Microfeed</li>
<li>Twitter? Qaiku? StatusNet? Facebook? You can let your users choose what services they want to use, without overhead of having to implement the protocols for each of them</li>
</ul><p>More information from <a href="http://microfeed.org/">http://microfeed.org/</a></p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.163601 24.928101</georss:point>
            <category>desktop</category>
            <pubDate>Mon, 26 Oct 2009 09:12:23 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1dec20fac4adc5cc20f11deacd1ed2738b715511551</guid>
        </item>
        <item>
            <title>Open Source and why forking is good</title>
            <link>http://bergie.iki.fi/blog/open_source_and_why_forking_is_good/</link>
            <description><![CDATA[
<p>
<a href="http://www.fakesteve.net/2009/10/trouble-with-android-contd.html">Fake Steve Jobs on the Trouble with Android</a>:
</p>

<blockquote>
Um, hello? Folks, the whole point of doing open-source code is to let it fork. The idea is to accelerate evolution by encouraging weird mutations. Creating an open source program and hoping it won't fork is like decorating your house with a zillion Christmas lights and a forty-foot inflatable Santa and hoping nobody stops to look at it.
</blockquote>

<p>
This is an interesting way to look at Open Source. Traditionally <a href="http://fsfe.org/about/basics/freesoftware.en.html">freedom to fork</a> has been seen as a safeguard against dead projects or vendors, as <a href="http://bergie.iki.fi/blog/free_software_at_work-openpsa2_is_making_a_return/">a way to hand maintainership over</a> to parties that are still interested. 
</p>

<p>
But what FSJ is talking about is forks being beneficial by themselves. This is the model that <a href="http://carsonified.com/blog/web-apps/why-you-should-switch-from-subversion-to-git/">Distributed Version Control Systems like git</a> also promote: every developer has their own fork of the software, and <a href="http://whygitisbetterthanx.com/#any-workflow">merges to "blessed" repositories</a> happen under the watchful eye of a maintainer.
</p>

<p>
This is quite a different model than the traditional centralized way of working with projects. Merging between forks <a href="http://blogs.gnome.org/bolsh/2009/09/28/estimating-merge-costs/">has its costs</a>, but if we embrace this model we gain lots of new developer flexibility and possible new workflows. DVCSs haven't been with us for a long time yet and so it takes some time for this new <a href="http://blog.pdark.de/2009/02/05/distributed-software-development-with-git/">distributed way of working</a> to take root.
</p>
]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.1712 24.9326</georss:point>
            <category>business</category>
            <pubDate>Wed, 14 Oct 2009 09:28:57 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1deb8a3ffb4500ab8a311dea680092a1a1ab494b494</guid>
        </item>
        <item>
            <title>Fall conference schedule</title>
            <link>http://bergie.iki.fi/blog/fall_conference_schedule/</link>
            <description><![CDATA[
<p>
After a <a href="http://bergie.iki.fi/blog/on_to_new_motorcycle_adventures/">brief summer motorcycling break</a> the fall is shaping up to be quite full with conferences. Here is <a href="http://www.dopplr.com/traveller/bergie/trips">the current list</a>:
</p>

<ul><li>September 30th - October 1st: <strong><a href="http://www.openmind.fi/">OpenMind</a></strong> and <strong><a href="http://www.mindtrek.org/2009/">MindTrek</a></strong> in Tampere, Finland<br /> I'll <a href="http://www.openmind.fi/programme">give a talk</a> about <a href="http://bergie.iki.fi/blog/midgard2_stable-generic_content_repository_for_web-desktop_and_mobile/">the Midgard project</a> and how <a href="http://www.slideshare.net/bergie/nemein-ja-midgard-yritys-open-source-projektin-keskipisteess">our company has evolved together with it</a>. In addition <a href="http://www.flug.fi/linuxtekija/">Linux-tekijä awards</a>, where I was in <a href="http://www.flug.fi/linuxtekija/2009/">the awards committee</a>, will be announced<br /><br /></li>
<li>October 9th - 11th: <strong><a href="http://maemo.org/news/events/maemo_summit_2009/">Maemo Summit</a></strong> in Amsterdam, the Netherlands<br /> While I'm not giving a talk in the event it will be great to meet the rest of the maemo.org team, and <a href="http://talk.maemo.org/showpost.php?p=330630&amp;postcount=1">the community around the project</a><br /><br /></li>
<li>October 17th: <strong><a href="http://www.finhack.org/">Finhack</a></strong> in Forssa, Finland<br /> A free-form hacking event for the Finnish free software community. Expect some progress with <a href="http://bergie.iki.fi/blog/xmpp_publish-subscribe_for_midgard_and_ajatus_replication/">Midgard's XMPP capabilities</a><br /><br /></li>
<li>October 23rd - 25th: <strong>Midgard Gathering</strong> Helsinki, Finland<br /> Midgard users and developers get together to learn about the new capabilities of <a href="http://www.slideshare.net/bergie/midgard2-content-repository-for-desktop-and-the-web">Midgard 9.09 Mjolnir</a> and discuss the roadmap for the next release<br /><br /></li>
<li>October 29th: <strong><a href="http://www.nluug.nl/activiteiten/events/nj09/index-en.html">The Open Web</a></strong> in Ede, the Netherlands<br /> NLUUGs conference on new web technologies where <a href="http://www.nluug.nl/activiteiten/events/nj09/programma-en.html">I'll be speaking</a> both about <a href="http://www.slideshare.net/bergie/locationaware-desktop">GeoClue</a> and the <a href="http://www.slideshare.net/bergie/midgard2-content-repository-for-desktop-and-the-web">Midgard Content Repository</a><br /><br /></li>
<li>November 11th - 13th: <strong><a href="http://www.iks-project.eu/civicrm/event/info?reset=1&amp;id=3">Semantic Search workshop</a></strong> in Rome, Italy<br /> Together with a general meeting of IKS Project participants<br /><br /></li>
<li>November 13th - 15th: <strong><a href="http://www.fscons.org/">FSCONS</a></strong> in Gothenburg, Sweden<br /> The annual Nordic free software gathering where <a href="http://www.fscons.org/schedule">I'll be speaking</a> about <a href="http://bergie.iki.fi/blog/how_midgard_and_midgard2_differ/">Midgard2</a></li>
</ul><p>
<img src="http://bergie.iki.fi/midcom-serveattachmentguid-1deab7ea36b0f1eab7e11de8ca11d7dd48aeed5eed5/bergie-signals-gcds.jpg" height="287" width="400" border="1" hspace="4" vspace="4" alt="Explaining signals at Gran Canaria Desktop Summit" title="Explaining signals at Gran Canaria Desktop Summit" /></p>

<p>
Looking forward to all the interesting discussions and ideas that will surely come up from these events. If you will be around in one of those, make sure to <a href="http://bergie.iki.fi/">look me up</a> and we can chat. The events will also be covered in <a href="http://www.qaiku.com/home/bergie/">my Qaiku stream</a>.
</p>
]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.1712 24.9326</georss:point>
            <category>desktop</category>
            <pubDate>Sun, 27 Sep 2009 15:58:47 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1deab7ea456f76cab7e11de8f173730f66003330333</guid>
        </item>
        <item>
            <title>On to new motorcycle adventures</title>
            <link>http://bergie.iki.fi/blog/on_to_new_motorcycle_adventures/</link>
            <description><![CDATA[
<p>
Like <a href="http://www.routamc.org/">many</a> <a href="http://www.deathmonkey.org/">years</a> <a href="http://bergie.iki.fi/blog/when_a_holiday_gets-interesting/">before</a>, it is again time to head out on a motorcycle trip. This time we're traveling together with <a href="http://www.qaiku.com/home/ihmis-suski/">Suski</a> on my old <a href="http://www.flickr.com/photos/bergie/tags/triumph">Triumph Legend</a>, the bike that has taken me <a href="http://www.routamc.org/journal/europe-motorcycle-tour-2002/">around Europe</a> and <a href="http://www.flickr.com/photos/bergie/sets/72157601177213555/">the Black Sea</a>, and has been out of commission for last three years. But now it runs again.
</p>

<p>
<img src="http://bergie.iki.fi/midcom-serveattachmentguid-1de8403df96d6d2840311de9f95479a41517d057d05/triumph-caucasus-sunset.jpg" height="254" width="400" border="0" hspace="4" vspace="4" alt="Motorcycling in a Georgian sunset" title="Motorcycling in a Georgian sunset" /></p>

<p>
Tonight we're taking the <a href="http://www.finnlines.com/index.php/passenger_eng/routes_and_timetables/gdynia_helsinki">ferry to Gdynia</a>, and then <a href="http://www.dopplr.com/traveller/bergie">the idea</a> is to head south through Poland, Slovakia, Hungary, Serbia and Bulgaria towards Asia Minor and the Caucasus. There are no strict plans or schedules, except that we must be back in Finland by the beginning of September.
</p>

<p>
You can follow our trip <a href="http://www.qaiku.com/home/bergie/">on Qaiku</a> (<a href="http://www.qaiku.com/feeds/qaikus/1de04e7a425656e04e711de8b8b03b7a324e879e879">feed</a>) and <a href="http://www.flickr.com/photos/bergie/">Flickr</a>. If you are somewhere on that prospective travel route, feel free to send me <a href="http://bergie.iki.fi/">an SMS</a> and maybe we can have a beer :-)
</p>



<p style="text-align:right;font-size:10px;">Technorati Tags: <a href="http://www.technorati.com/tag/adventure" rel="tag">adventure</a>, <a href="http://www.technorati.com/tag/motorcycle" rel="tag">motorcycle</a></p>


]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.1754 24.9193</georss:point>
            <category>desktop</category>
            <pubDate>Sat, 08 Aug 2009 10:11:45 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1de8403e0d8d3f6840311deb9aef7be0cfda139a139</guid>
        </item>
        <item>
            <title>Will content repositories kill the file?</title>
            <link>http://bergie.iki.fi/blog/will_content_repositories_kill_the_file/</link>
            <description><![CDATA[
<p>
<a href="http://www.mdk.org.pl/">MDK</a> <a href="http://www.mdk.org.pl/2009/7/30/the-great-demise-of-the-file">laments the demise of the simple file</a> in the onslaught of storage services:
</p>

<blockquote>
Sure, the applications still give you a way to share things and take them out of the storage. You can export a contact out of your address book as a vcard file. But the role of The File here is slowly being reduced to a role of an intermediate storage medium. The business card is temporarily put in the .vcf file before it gets injected into somebody else’s database (another address book?).
<br /><br />As more and more applications operate on databases, the computer is becoming a monolithic black-box that “has things”. How exactly (and where) the data is stored is becoming less clear. The application and the interface becomes united with the user data. It becomes one.
</blockquote>

<p>
This echos the sentiments of <a href="http://al3x.net/">Alex Payne</a> when he <a href="http://al3x.net/2009/01/31/against-everything-buckets.html">warned against what he calls Everything Buckets</a>:
</p>

<blockquote>
Computers work best with structured data. Everything Buckets discourage the use of structured data by providing a convenient place to commingle “structureless” data like RTF and PDF documents. Rather than forcing the user to figure out the rhyme and reason of their data (for example, by putting receipts in a financial management application and addresses in an address book), Everything Buckets cry: “throw it all in here! Search it! Maybe I’ll corrupt my proprietary database, but maybe I won’t and you’ll have the joy of sifting through a mire of RTF documents. Doesn’t that sound great?”
</blockquote>

<p>
And yes, I agree that obscure application-specific databases are not really better than obscure proprietary file formats.
</p>

<p>
This is exactly why I've <a href="http://bergie.iki.fi/blog/why_you_should_use_a_content_repository_for_your_application/">been talking about content repositories</a>, services like <a href="http://www.midgard2.org/">Midgard2</a> and <a href="http://couchdb.apache.org/">CouchDb</a> that not only can provide superior content storage and organization, but do it in a way that multiple applications can share. You can easily write your own scripts to perform batch operations on the data, and receive <a href="http://teroheikkinen.iki.fi/blog/midgard_workshop_at_fscons/">D-Bus notifications</a> when something changes.
</p>

<p>
And good repositories also provide <a href="http://bergie.iki.fi/blog/couchdb_and_midgard_talking_with_each_other/">easy synchronization tools</a> so you can have your data available on all of your computers, and even <a href="http://bergie.iki.fi/blog/tomboy_web_synchronization-conboy_and_midgard/">on the web</a>. If they can also do peer-to-peer sharing, we're close to achieving the <a href="http://bergie.iki.fi/blog/free_desktop_and_the_cloud/">fully free cloud</a>.
</p>



<p style="text-align:right;font-size:10px;">Technorati Tags: <a href="http://www.technorati.com/tag/couchdb" rel="tag">couchdb</a>, <a href="http://www.technorati.com/tag/gnome" rel="tag">gnome</a>, <a href="http://www.technorati.com/tag/midgard" rel="tag">midgard</a></p>


]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.1754 24.9191</georss:point>
            <category>mobility</category>
            <pubDate>Thu, 30 Jul 2009 17:10:24 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-df3a9fe07d2b11deb3003d1acb6d517d517d</guid>
        </item>
        <item>
            <title>Attention is difficult</title>
            <link>http://bergie.iki.fi/blog/attention_is_difficult/</link>
            <description><![CDATA[
<p>
<a href="http://www.salon.com/books/review/2009/04/29/rapt/">Why can't we concentrate?</a> is an excellent book review about <a href="http://www.amazon.com/Rapt-Attention-Focused-Winifred-Gallagher/dp/1594202109">Rapt</a> on Salon:
</p>

<blockquote>
"Immersing myself in a book or a lengthy article used to be easy," he wrote. "Now my concentration often starts to drift after two or three pages. I get fidgety, lose the thread, begin looking for something else to do. I feel as if I'm always dragging my wayward brain back to the text." For my own part, I now find it challenging to sit still on my sofa through the length of a feature film. The urge to, for example, jump up and check the IMDB filmography of a supporting actor is well-nigh irresistible, and once I'm at the computer, why not check e-mail? Most of the time, I'll wind up pausing the DVD player before the end of the movie and telling myself I'll watch the rest tomorrow.
</blockquote>

<p>
Exactly the same symptoms I'm having. This is the reason I've written some of my best code while offline <a href="http://bergie.iki.fi/blog/finding-resources-automatically-in-openpsa/">at the countryside</a> or on <a href="http://bergie.iki.fi/blog/the-midgard-position/">a road trip</a>, and why it was so relaxing to be <a href="http://www.qaiku.com/home/bergie/show/1de694641318910694611deb9b6b1a176d9982f982f/">without a phone</a> for a week recently.
</p>

<p>
How to solve the issue of constant distractions? Maybe we'll need to be <a href="http://bergie.iki.fi/blog/the_old_offline_vs-online_debate/">sometimes offline</a>. And even while connected, we need <a href="http://bergie.iki.fi/blog/putting_attention_to_midgard/">attention profiling</a> and <a href="http://brianwill.net/blog/2009/07/20/reinventing-the-desktop-for-real-this-time-part-1/">better user interfaces</a>. Something for the developers of the <a href="http://bergie.iki.fi/blog/the_uncanny_valley_of_free_desktops/">future free desktop</a> to consider.
</p>

<p>
<em>Confession: I must've switched browser tabs a dozen time while reading the Salon article. Concentration indeed...</em>
</p>



<p style="text-align:right;font-size:10px;">Technorati Tags: <a href="http://www.technorati.com/tag/attention" rel="tag">attention</a></p>


]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.1754 24.9191</georss:point>
            <category>desktop</category>
            <pubDate>Wed, 22 Jul 2009 22:13:18 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-dbe65dae770c11deaf5465588409b26cb26c</guid>
        </item>
        <item>
            <title>The uncanny valley of free desktops</title>
            <link>http://bergie.iki.fi/blog/the_uncanny_valley_of_free_desktops/</link>
            <description><![CDATA[
<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-78b3deca724111dea5136de2c725b405b405/moblin2-myzone.jpg"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-7beac130724111de912091fb61b5ef85ef85/moblin2-myzone-tm.jpg" height="152" width="260" border="1" align="right" hspace="8" vspace="4" alt="Myzone in Moblin 2.0" title="Myzone in Moblin 2.0" /></a>
<br /><a href="http://daringfireball.net/2009/07/chrome_os_context">Discussing Google's yet-vaporware Chrome OS</a>, Daring Fireball said:
</p>

<blockquote>
Early versions of Gnome and KDE were pretty much just clones of the Microsoft Windows UI. They’ve diverged since then, and I’d say Ubuntu’s default Gnome desktop is in most ways better from a design and usability standpoint than Windows Vista. But it’s still fundamentally a clone of Windows — menu bars within the window, minimize/maximize/close buttons at the top right of the window, the ugly single-character underlines in menu and button names. At a glance it looks like Windows with a different theme. The idea being that if you want Windows users to switch to Gnome or KDE, you’ve got to make it feel familiar. But that’s not how you get people to switch to a new product. People won’t switch to something that’s just a little bit better than what they’re used to. People switch when they see something that is way better, holy shit better, wow, this is like ten times better.
<br /><br />So I think Gnome and KDE are stuck with a problem similar to the <a href="http://en.wikipedia.org/wiki/Uncanny_valley">uncanny valley</a>. By establishing a conceptual framework that mimicks Windows, they can never really be that much different than Windows, and if they’re not that much different, they can never be that much better. If you want to make something a lot better, you’ve got to make something a lot different.
</blockquote>

<p>
This is a good point to consider as <a href="http://www.osnews.com/story/21242/GNOME_3_0_To_Get_GNOME_Shell_Zeitgeist">GNOME moves towards 3.0</a> with the promising <a href="http://blogs.gnome.org/marina/2009/07/05/gcds-and-the-gnome-shell-sneak-peak/">GNOME shell</a>. <a href="http://plasma.kde.org/cms/1029">KDE's Plasma</a> has taken some steps also, but really, the examples we should look at here are <a href="http://moblin.org/documentation/moblin-netbook-intro/how-get-around-moblin-netbook-ui/myzone">Moblin 2.0</a> and <a href="http://www.sugarlabs.org/index.php?template=gallery&amp;page=gallery">the Sugar desktop</a>. Both of them have largely discarded the traditional "Windows model" in favor of more <a href="http://worrydream.com/MagicInk/">contextual and information-oriented</a> user interfaces.
</p>



<p style="text-align:right;font-size:10px;">Technorati Tags: <a href="http://www.technorati.com/tag/gnome" rel="tag">gnome</a>, <a href="http://www.technorati.com/tag/kde" rel="tag">kde</a>, <a href="http://www.technorati.com/tag/moblin" rel="tag">moblin</a>, <a href="http://www.technorati.com/tag/sugar" rel="tag">sugar</a></p>


]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.1754 24.9191</georss:point>
            <category>desktop</category>
            <pubDate>Thu, 16 Jul 2009 19:47:28 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-7e3a180a724111dea08c378e51fcd273d273</guid>
        </item>
        <item>
            <title>OSM2Go: wonderful mapping tool for Maemo</title>
            <link>http://bergie.iki.fi/blog/osm2go-wonderful_mapping_tool_for_maemo/</link>
            <description><![CDATA[
<p>
Today in the <a href="http://www.stateofthemap.org/">State of the Map conference</a> I gave a lightning talk introducing Till Harbaum's <a href="http://maemo.org/downloads/product/OS2008/osm2go/">OSM2Go</a>, a wonderfully simple tool for contributing to <a href="http://www.openstreetmap.org/">OpenStreetMap</a>.
</p>

<p>
<img src="http://bergie.iki.fi/midcom-serveattachmentguid-8b6d28406ee611de8035cb79cd71fd15fd15/osm2go-hietalahti.jpg" height="240" width="400" border="1" hspace="4" vspace="4" alt="OSM2Go editing Hietalahti, Helsinki" title="OSM2Go editing Hietalahti, Helsinki" /></p>

<p>
If you want to contribute to a <a href="http://wiki.openstreetmap.org/wiki/Main_Page">freely available map</a> of the world, <a href="http://maemo.org/downloads/product/OS2008/osm2go/">download OSM2Go</a> to your tablet and start mapping! My slides are <a href="http://www.slideshare.net/bergie/osm2go">available on SlideShare</a>.
</p>

<p>
See also my Qaiku notes for <a href="http://www.qaiku.com/home/bergie/show/1de6deb22dfa6fa6deb11deabb8212a204002190219/">SoTM day 1</a> and <a href="http://www.qaiku.com/home/bergie/show/1de6eb847238f686eb811de829a43bf11fea6d3a6d3/">SotM day 2</a>. Really amazing to see how far the project has advanced since the 2007 conference. Much of <a href="http://wiki.openstreetmap.org/wiki/Mapping_projects#By_Country">Western countries is already mapped</a>, and many NGOs are working to get the developing world mapped, in many places for the first time ever in digital format.
</p>



<p style="text-align:right;font-size:10px;">Technorati Tags: <a href="http://www.technorati.com/tag/maemo" rel="tag">maemo</a>, <a href="http://www.technorati.com/tag/openstreetmap" rel="tag">openstreetmap</a>, <a href="http://www.technorati.com/tag/sotm09" rel="tag">sotm09</a></p>


]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>52.3629 4.90694</georss:point>
            <category>desktop</category>
            <pubDate>Sun, 12 Jul 2009 13:13:01 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-b9ca44bc6ee511de86888bcb2608776b776b</guid>
        </item>
    </channel>
</rss>
