<?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</title>
        <description>Motorcycle Adventures and Free Software from Henri Bergius</description>
        <link>http://bergie.iki.fi/blog/</link>
        <lastBuildDate>Sat, 21 Nov 2009 04:25:07 +0000</lastBuildDate>
        <generator>FeedCreator 1.7.6(BH)</generator>
        <language>en</language>
        <managingEditor>henri.bergius@iki.fi</managingEditor>
        <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>In defence of URLs and the Open Web</title>
            <link>http://bergie.iki.fi/blog/in_defence_of_urls_and_the_open_web/</link>
            <description><![CDATA[
<p>An increasing number of web services and applications are emphasising search terms or pre-selected websites instead of allowing users to enter any address they choose. This is worrying, as while <a href="http://www.cabel.name/2008/03/japan-urls-are-totally-out.html">searches are more user-friendly</a>, <a href="http://www.w3.org/Provider/Style/URI">URLs</a> are the heart of <a href="http://www.mozilla.org/about/manifesto.en.html">an open web where</a> anybody can publish without <a href="http://dvice.com/archives/2009/10/net-neutrality.php">obscure business dealings</a> or oppressive app store policies.</p>
<p>There are many examples of this happening, from <a href="http://my.opera.com/coxy/blog/2008/12/17/facebook">Facebook's framing of web</a> to netbooks systems like the <a href="http://www.jolicloud.com/">JoliCloud</a> not having an address bar. Certainly many companies are looking at <a href="http://www.pcworld.com/businesscenter/article/154198/google_deal_produces_91_of_mozillas_revenue.html">Mozilla's search engine revenue</a> and <a href="http://gigaom.com/2009/07/14/the-meteoric-rise-of-the-app-store/">Apple's app store model</a> and want to emulate that, moving the web into silos of their own control. But at the same time, we're thinking of <a href="http://linkeddata.org/">Linked Data</a> and open, interoperable web standards.</p>
<p>Web indeed is <a href="http://www.arcticstartup.com/2009/09/11/the-web-at-a-new-crossroads/">at new crossroads</a>.</p>
<p>Chris Messina predicts <a href="http://factoryjoe.com/blog/2009/11/16/the-death-of-the-url/">the death of URLs</a>:</p>
<blockquote>a future without URLs and without the infinite organicity of the web frightens me. It’s not that I know what we’ll lose by removing this artifact of one of the most generative periods in history — and that’s exactly the point! The URL and the ability for anyone to mint a new one and then propagate it is what makes the web so resilient, so empowering, and so interesting! That I don’t need to ask anyone permission to create a new website or webpage is a kind of ideological freedom that few generations in history have known!</blockquote>
<p>Tim O'Reilly presents <a href="http://radar.oreilly.com/2009/11/the-war-for-the-web.html">a call to arms</a>:</p>
<blockquote>It could be that everyone will figure out how to play nicely with each other, and we'll see a continuation of the interoperable web model we've enjoyed for the past two decades. But I'm betting that things are going to get ugly. We're heading into a war for control of the web. And in the end, it's more than that, it's a war <em>against</em> the web as an interoperable platform. Instead, we're facing the prospect of Facebook as the platform, Apple as the platform, Google as the platform, Amazon as the platform, where big companies slug it out until one is king of the hill.<br /><br />And it's time for developers to take a stand. If you don't want a repeat of the PC era, place your bets now on open systems. Don't wait till it's too late.</blockquote>
<p> </p>]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.1712 24.9326</georss:point>
            <category>business</category>
            <pubDate>Tue, 17 Nov 2009 19:19:36 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1ded3ae250ed850d3ae11deb351377d4b1cd9aad9aa</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>Midgard Weekly Summaries are back</title>
            <link>http://bergie.iki.fi/blog/midgard_weekly_summaries_are_back/</link>
            <description><![CDATA[
<p>
<a href="http://www.midgard-project.org/">Midgard</a> is a very active free software project, and it is quite difficult to keep up <a href="http://trac.midgard-project.org/timeline">with all the changes</a>, decisions and discussions happening around it. Therefore I decided to bring the <a href="http://www.midgard-project.org/updates/mws/">Midgard Weekly Summaries</a> back.
</p>

<ul><li><a href="http://www.midgard-project.org/updates/mws/midgard_weekly_summary-75-october_2nd_2009/">Midgard Weekly Summary #75: October 2nd 2009</a></li>
</ul><p>
MWS has been running before, with <a href="http://lwn.net/Articles/5414/">66 issues</a> released between 1999 and 2002, and <a href="http://www.midgard-project.org/updates/mws/archive/year/2007/">8 issues in 2007</a>. This time we follow the <a href="http://bergie.iki.fi/blog/for_a_collaborative_mws/">idea of a Collaborative MWS</a>.
</p>

<p>
Notices about new published summaries will be sent to the <a href="http://www.midgard-project.org/community/support-discussion/">Midgard user mailing list</a>, <a href="http://www.qaiku.com/channels/show/midgard/">Qaiku #midgard channel</a>, <a href="http://twitter.com/MidgardProject">Twitter @MidgardProject</a> and are available <a href="http://www.midgard-project.org/updates/mws/rss.xml">via RSS</a>. Enjoy!
</p>



<p style="text-align:right;font-size:10px;">Technorati Tags: <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.1712 24.9326</georss:point>
            <category>midgard</category>
            <pubDate>Fri, 02 Oct 2009 12:39:48 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1deaf50abab75b2af5011de83ce535685520c9d0c9d</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>Content management starts with the repository</title>
            <link>http://bergie.iki.fi/blog/content_management_starts_with_the_repository/</link>
            <description><![CDATA[
<p>
<a href="http://www.gadgetopia.com/">Gadgetopia</a> makes <a href="http://www.gadgetopia.com/post/6931">an argument for building your own CMS</a>:
</p>

<blockquote>
<em>"See — the problem with a full scale Content Management System is that it has too many opinions. Those opinions were though of by somebody other than you and the needs of your organization. The more developed a content management system (or any piece of software, really) the more “opinions” it has. And the more “opinions” it has, the more likely one of them is going to really tick you off."</em>
<br /><br />I can relate to this.  We work with one system in particular that makes an astonishing array of presumptions about how you’re going to use it, and if you try to step outside those presumptions, demons fly out of the abyss and try to suck your eyeballs out.
<br /><br />This goes back to a previous discussion we had about <a href="http://www.gadgetopia.com/post/6091">Content Management as an API</a>.  In that post, we had a great experience with hand-rolling a CMS...
</blockquote>

<p>
The term they are looking for is <a href="http://bergie.iki.fi/blog/why_you_should_use_a_content_repository_for_your_application/">Content Repository</a>, a service that provides common APIs for content storage, retrieval, signaling and so forth. With <a href="http://www.midgard-project.org/">Midgard</a> we're <a href="http://bergie.iki.fi/blog/midgard_2-more_than_just_php-more_than_just_cms/">following this approach</a>, providing <a href="http://bergie.iki.fi/blog/midgard_and_jcr-a_look_at_two_content_repositories/">content retrieval</a> and <a href="http://bergie.iki.fi/blog/midcom_3_at_a_glance/">web functionality APIs</a> first, and then building some reusable user interfaces on top of that.
</p>

<p>
In addition to Midgard some content repositories to look at include <a href="http://couchdb.apache.org/">Apache CouchDB</a> and <a href="http://jackrabbit.apache.org/">Jackrabbit</a>. All of them allow you to <a href="http://bergie.iki.fi/blog/why_you_should_use_a_content_repository_for_your_application/">stop worrying about storage and retrieval</a> methods and focus on the actual end user functionalities, while keeping the whole system accessible and scriptable for integration purposes.
</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/jcr" rel="tag">jcr</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.1712 24.9326</georss:point>
            <category>midgard</category>
            <pubDate>Mon, 07 Sep 2009 14:16:47 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1de9bb913c8aef49bb911de99c0e1221457698f698f</guid>
        </item>
        <item>
            <title>How Midgard and Midgard2 differ</title>
            <link>http://bergie.iki.fi/blog/how_midgard_and_midgard2_differ/</link>
            <description><![CDATA[
<p>
I had to make some updates to the architecture diagrams, and I thought to publish them here to showcase the difference. <a href="http://www.midgard-project.org/midgard/8.09/">Midgard</a> was a CMS framework for PHP:
</p>

<p>
<img src="http://bergie.iki.fi/midcom-serveattachmentguid-1de99289822a404992811de891f478df01375907590/midgard-architecture-809.png" height="384" width="332" border="0" hspace="4" vspace="4" alt="Midgard 8.09 architecture" title="Midgard 8.09 architecture" /></p>

<p>
<a href="http://www.midgard2.org/">Midgard2</a> is a more <a href="http://bergie.iki.fi/blog/why_you_should_use_a_content_repository_for_your_application/">universal content repository</a> where CMS is just one application:
</p>

<p>
<img src="http://bergie.iki.fi/midcom-serveattachmentguid-1de992899dba7c8992811de891f478df01375907590/midgard2-architecture-909.png" height="477" width="429" border="0" hspace="4" vspace="4" alt="Midgard2 9.09 architecture" title="Midgard2 9.09 architecture" /></p>

<p>
Please note that more choice in databases and web servers is not the only goodie provided by Midgard2. You also get things like <a href="http://bergie.iki.fi/blog/some_plans_for_midcom_3/">a completely rewritten MVC framework</a>, <a href="http://blogs.nemein.com/people/piotras/view/1246881867.html">database views</a>, <a href="http://blogs.nemein.com/people/piotras/view/1246966442.html">transactions</a> and native <a href="http://blogs.nemein.com/people/piotras/view/1232642360.html">datetime objects</a>. And all of this for multiple programming languages, not <a href="http://bergie.iki.fi/blog/midgard_2-more_than_just_php-more_than_just_cms/">just PHP</a>.
</p>



<p style="text-align:right;font-size:10px;">Technorati Tags: <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.1712 24.9326</georss:point>
            <category>midgard</category>
            <pubDate>Fri, 04 Sep 2009 07:57:34 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1de99289ae52a90992811de891f478df01375907590</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>Content repository talk in FrOSCon</title>
            <link>http://bergie.iki.fi/blog/content_repository_talk_in_froscon/</link>
            <description><![CDATA[
<p>
<a href="http://bergie.iki.fi/blog/why_you_should_use_a_content_repository_for_your_application/">Content repositories can be useful</a> for your application. In the <a href="http://kore-nordmann.de/blog/0092_frsocon_upcoming.html">PHP track of FrOSCon</a> on Aug 22nd there will be a talk about this: <a href="http://programm.froscon.org/2009/events/417.en.html">Midgard2: Content repository for your PHP application</a>
</p>

<blockquote>
Content repositories allow you to separate the actual front-end of your application from background processing tools. More than just their underlying databases, they impose common rules for data access, and keep multiple applications up-to-date on data changes through signaling. Midgard2 provides a flexible content repository that avoids the restrictions of the traditional ORM approach. And not only your PHP web application, but also to possible Python, Objective-C and C# tools you use.
<br /><br />This enables you to split applications into smaller, easily maintainable and scalable pieces that can be run on different systems and platforms as needed. In addition to web, the Midgard2 library can be used for desktop and mobile application development, building software that synchronizes with web services. It is based and engineered fully on the top of the desktop (GNOME) software stack. Being highly modular and having very little dependencies it scales from a note taking application to a full-blown CMS system. Combined with advanced replication capabilities it allows you to synchronize data between offline and online instances of your service.
</blockquote>

<p>
Unlike shown in the program, the talk will be given by <a href="http://www.kaktus.cc/">Arttu Manninen</a> this time, as I will be <a href="http://bergie.iki.fi/blog/personal_passions-motorcycle_travel/">off motorcycling</a> somewhere around Asia Minor. Arttu? Yep, <a href="http://bergie.iki.fi/blog/tank-surfing-on-flickr/">this guy</a>:
</p>

<p>
<a href="http://www.flickr.com/photos/bergie/231727544/"><img src="http://farm1.static.flickr.com/82/231727544_dc4c74b75f.jpg" alt="Tank surfing" title="Tank surfing" /></a>
</p>



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


]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>60.1632 24.9277</georss:point>
            <category>midgard</category>
            <pubDate>Fri, 07 Aug 2009 19:57:56 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1de838c99ca1f64838c11deb1be257802a86df06df0</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>
        <item>
            <title>Why you should use a content repository for your application</title>
            <link>http://bergie.iki.fi/blog/why_you_should_use_a_content_repository_for_your_application/</link>
            <description><![CDATA[
<p style="text-align:right;">
<img src="http://bergie.iki.fi/midcom-serveattachmentguid-c2ca82c86bb311de8b335be47077c124c124/midgard2-bubble-1.png" height="137" width="128" border="0" align="right" hspace="8" vspace="4" alt="Midgard2" title="Midgard2" /></p>

<p>
I gave my <a href="http://www.grancanariadesktopsummit.org/node/210">Midgard2: Content repository for desktop and the web</a> talk yesterday in <a href="http://www.grancanariadesktopsummit.org/">GCDS</a>. The <a href="http://www.slideshare.net/bergie/midgard2-content-repository-for-desktop-and-the-web">slides are available on SlideShare</a>. The main idea was that any application that deals with structured data could benefit from using a content repository like <a href="http://www.midgard2.org/">Midgard2</a> or <a href="http://couchdb.apache.org/">CouchDB</a>.
</p>

<p>
So, what is a content repository? It is a service that sits between an application and a data store. It provides several advantages:
</p>

<ul><li><strong>Common rules for data access</strong> mean that multiple applications can work with same content without breaking consistency of the data</li>
<li><strong>Signals about changes</strong> let applications know when another application using the repository modifies something, enabling collaborative data management between apps</li>
<li><strong>Objects instead of SQL</strong> 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 <a href="http://xkcd.com/327/">SQL injection</a></li>
<li><strong>Data model is scriptable</strong> 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</li>
<li><strong>Synchronization and sharing</strong> features can be implemented on the content repository level meaning that you gain these features without having to worry about them</li>
</ul><p>
<a href="http://www.midgard2.org/">Midgard2</a> is a content repository library that is built on top of <em>glib</em>, <em>libgda</em> and <em>dbus</em>, making it fit the general free desktop infrastructure very well. You can use it in any application that is written in <a href="http://www.midgard-project.org/api-docs/midgard/core/mjolnir/">C</a>, <a href="http://www.mdk.org.pl/2009/3/26/midgard-objc-bindings">Objective-C</a>, <a href="http://www.midgard-project.org/documentation/python_midgard/">Python</a>, <a href="http://www.midgard-project.org/documentation/mgdschema-in-php/">PHP</a>, or soon <a href="http://www.flickr.com/photos/bergie/2439346766/">Mono</a>. Learn more <a href="http://www.slideshare.net/bergie/midgard2-content-repository-for-desktop-and-the-web">from the slides</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>, <a href="http://www.technorati.com/tag/mono" rel="tag">mono</a></p>


]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>28.1292 -15.4513</georss:point>
            <category>desktop</category>
            <pubDate>Wed, 08 Jul 2009 11:37:50 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-c45a20c66bb311de991c5b56e3857f077f07</guid>
        </item>
        <item>
            <title>Personal passions: motorcycle travel</title>
            <link>http://bergie.iki.fi/blog/personal_passions-motorcycle_travel/</link>
            <description><![CDATA[
<p>
Yesterday in <a href="http://www.grancanariadesktopsummit.org/">GCDS</a> there was a <a href="http://blogs.gnome.org/bolsh/2009/07/07/last-minute-schedule-change-personal-passions/">session about personal passions</a>. First <a href="http://www.jonobacon.org/">Jono Bacon</a> gave a <a href="http://marnanel.livejournal.com/1260227.html">talk about the Burnout Cycle</a>, and then various community members talked about what they do outside the sphere of hacking: running, cooking, building experimental airplanes and so forth.
</p>

<p>
I gave a quick talk about <a href="http://www.adventure-motorcycling.com/">adventure motorcycling</a>, speaking about my 2004 trip <a href="http://www.routamc.org/journal/to-the-black-sea/">around the Black Sea</a>, and briefly mentioning <a href="http://www.deathmonkey.org/">the Death Monkey trip</a> on 50cc mopeds from Helsinki to Gibraltar.
</p>

<p>
<img src="http://bergie.iki.fi/midcom-serveattachmentguid-428ed3966bab11dea97d2910dba972827282/georgian_military_highway_hats.jpg" height="300" width="400" border="1" hspace="4" vspace="4" alt="Buying hats from Georgian Military Highway" title="Buying hats from Georgian Military Highway" /></p>

<p>
You can find <a href="http://www.flickr.com/photos/bergie/sets/72157601177213555/">pictures from the Caucasus trip on Flickr</a> and my <a href="http://www.routamc.org/journal/to-the-black-sea/">travel log on Routa MC</a>.
</p>

<p>
<img src="http://bergie.iki.fi/midcom-serveattachmentguid-350c450a6bab11dea5eb5b04fd4fd0b8d0b8/riding_monkey_to_gibraltar.jpg" height="300" width="400" border="1" hspace="4" vspace="4" alt="Riding 50cc Monkey to Gibraltar" title="Riding 50cc Monkey to Gibraltar" /></p>



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


]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>28.1292 -15.4513</georss:point>
            <category>motorcycles</category>
            <pubDate>Wed, 08 Jul 2009 10:38:10 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-6e4f8c1e6bab11de9f811d811c67b63db63d</guid>
        </item>
        <item>
            <title>CouchDb and Midgard talking with each other</title>
            <link>http://bergie.iki.fi/blog/couchdb_and_midgard_talking_with_each_other/</link>
            <description><![CDATA[
<p>
<a href="http://bergie.iki.fi/blog/jquery_and_couchdb-001/">CouchDb</a> is a really cool document-oriented map/reduce database that is nowadays an Apache project. Previously we created the <a href="http://bergie.iki.fi/blog/previewing_ajatus-the_distributed_crm/">distributed CRM application Ajatus</a> on top of the system and <a href="http://bergie.iki.fi/moblog/photo/4756887498ee11dcb5f3d7132ea5e37fe37f/">ported CouchDb to Maemo</a>.
</p>

<p>
Here in <a href="http://www.grancanariadesktopsummit.org/">Gran Canaria Desktop Summit CouchDb</a> has been somewhat a hot topic, as the <a href="https://wiki.ubuntu.com/DesktopTeam/Specs/Karmic/IntegratingWithUbuntuOne">Ubuntu project is planning to use it</a> as the content repository for desktop applications.
</p>

<p>
We had a lunch with <a href="http://twitter.com/janl">Jan Lehnardt</a> today and discussed how to make <a href="http://www.midgard2.org/">Midgard2</a> and <a href="http://couchdb.apache.org/">CouchDb</a> interoperate better, and as it happens, it is actually very easy: CouchDb has a replication protocol that we can support also in Midgard, making the two repositories able to <a href="http://blogs.gnome.org/rodrigo/2009/06/03/desktop-datasettings-replication/">synchronize content</a> with each other.
</p>

<p>
There is now a first test implementation of <em>Midgard-to-CouchDb</em> synchronization support, with better Midgard integration and <em>CouchDb-to-Midgard</em> coming soon. Check out <a href="http://github.com/bergie/org_couchdb_replication/tree/master">the Midgard MVC component on Github</a>. Anyway, already pretty cool!
</p>

<p>
Setting up replication on CouchDb admin UI:
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-03d132266a5611deb15ead0e461af731f731/couchdb-midgard-replication-setup.png"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-07b96ab66a5611deb1db3d42dc4f34d634d6/couchdb-midgard-replication-setup-tm.jpg" height="206" width="400" border="1" hspace="4" vspace="4" alt="Replicating from Midgard to CouchDb" title="Replicating from Midgard to CouchDb" /></a>
</p>

<p>
Midgard record replicated successfully into CouchDb:
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-e7b87a866a5511dea0f259c77bdbe138e138/couchdb-replicated-midgard-person.png"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-eda58e0c6a5511de85376d29cb9c8b358b35/couchdb-replicated-midgard-person-tm.jpg" height="216" width="400" border="1" hspace="4" vspace="4" alt="Replicated Midgard person record in CouchDb" title="Replicated Midgard person record in CouchDb" /></a>
</p>

<p>
I'll talk more about this and <em>repository-oriented application development</em> in my <a href="http://www.grancanariadesktopsummit.org/node/210">Midgard2: Content repository for desktop and the web</a> talk <a href="http://www.grancanariadesktopsummit.org/node/270">tomorrow at 16:45</a>. Be there!
</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/midgard" rel="tag">midgard</a>, <a href="http://www.technorati.com/tag/replication" rel="tag">replication</a></p>


]]></description>
            <author>henri.bergius@iki.fi (Henri Bergius)</author>
            <georss:point>28.1292 -15.4513</georss:point>
            <category>mobility</category>
            <pubDate>Mon, 06 Jul 2009 17:54:34 +0000</pubDate>
            <guid>http://bergie.iki.fi/midcom-permalink-1068a7f86a5611de9505951345ab8a168a16</guid>
        </item>
    </channel>
</rss>
