<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.6(BH)" -->
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Nemein blogs</title>
    <subtitle>Company blogs from Nemein</subtitle>
    <link rel="alternate" type="text/html" href="http://nemein.com/fi/news/"/>
    <id>http://nemein.com/fi/news/</id>
    <updated>2008-12-01T19:55:06+00:00</updated>
    <author>
        <name>sales@nemein.com</name>
    </author>
    <generator>FeedCreator 1.7.6(BH) (info@mypapit.net)</generator>
    <link rel="self" type="application/atom+xml" href="http://nemein.com/fi/news/atom.xml" />
    <entry>
        <title>Maemo.org goes Ragnaroek</title>
        <link rel="alternate" type="text/html" href="http://nemein.com/fi/news/maemo-org_goes_ragnaroek.html"/>
        <published>2008-11-18T16:54:52+00:00</published>
        <updated>2008-11-18T16:54:52+00:00</updated>
        <id>http://nemein.com/fi/midcom-permalink-a359ef7eb59611ddbbb34be4caac98fb98fb</id>
        <author>
            <name>henri.bergius@iki.fi (Henri Bergius)</name>
        </author>
        <category  term="feed:d697c44bd2cdceb1c72d08693bb1639e" />
        <content type="html"><![CDATA[

<p>
<a href="http://maemo.org/">Maemo.org</a>, the community site for Nokia's <a href="http://en.wikipedia.org/wiki/Maemo_Platform">mobile Linux environment</a> has this week been upgraded to <a href="http://www.midgard-project.org/updates/midgard_8-09-2-bosporus_queries-released/">8.09.2 Ragnaroek</a>, the much faster and <a href="http://www.midgard-project.org/midgard/8.09/">long-term supported version</a> of the <a href="http://en.wikipedia.org/wiki/Midgard_(software)">Midgard framework</a>. Thanks to <a href="http://maemo.org/profile/view/xfade/">Niels</a> and <a href="http://maemo.org/profile/view/piotras/">Piotras</a> for working with me on this!
</p>

<p>
in October, I spent quite a bit of time optimizing this release, shaving off an estimated 60-70% of queries through some smart caching and removed redundancies. In addition, a new database server is now in place. Together, these should get us quite far in the "<a href="http://wiki.maemo.org/Task:Fast_Server">Fast Server</a>" agenda.
</p>

<p style="text-align:center;">
<img src="http://bergie.iki.fi/midcom-serveattachmentguid-9d50a136b59111dd9e2295aaed6df9f9f9f9/maemo-20081118.jpg" height="230" width="298" border="1" hspace="4" vspace="4" alt="Maemo on Nov 18th" title="Maemo on Nov 18th" /></p>

<p>
We're however still not done, and now we will do more optimizations that will be part of <a href="http://trac.midgard-project.org/milestone/8.09.3%20Ragnaroek">8.09.3</a>, due next week, and will move static files (images and javascript) to a separate <a href="http://www.lighttpd.net/">lighttpd</a> instance to remove that load from the normal Apache. When all this is done, <a href="http://maemo.org/profile/list/">the Maemo community</a> should have infrastructure that will be able to serve it for a long time.
</p>

<p>
In addition to optimization, <a href="http://wiki.maemo.org/Maemo.org_Sprints/November_08">we've been working</a> on some other features related to the website:
</p>

<ul><li>Many new activities, such as <a href="http://maemo.org/profile/list/category/itt_thanks/">Internet Tablet talk</a> and <a href="http://maemo.org/profile/list/category/mediawiki_edits/">Maemo Wiki</a> now count towards karma, with <a href="http://wiki.maemo.org/Karma#Proposed_improvements">more karma refinements</a> on the way</li>
<li>Issues with <a href="http://trac.midgard-project.org/ticket/286">weird email formatting</a> in <a href="http://maemo.org/community/maemo-users/">Maemo forums</a> has been fixed and will be part of 8.09.3</li>
<li>Per-module karma listings are now showing correctly, making it possible to see the top contributors to different aspects of the community</li>
</ul>

<p>
Midgard is a <a href="http://www.ohloh.net/projects/midgard/analyses/latest">big and complex</a> piece of software. If you notice any issues related to this upgrade, please <a href="https://bugs.maemo.org/enter_bug.cgi?classification=maemo.org%20Website">let us know</a>. And if you have any ideas on improving the website, be sure to <a href="https://bugs.maemo.org/enter_bug.cgi?classification=maemo.org%20Website">file those</a> too!
</p>

<p style="text-align:right;font-size:10px;">Technorati Tags: <a href="http://www.technorati.com/tag/lighttpd" rel="tag">lighttpd</a>, <a href="http://www.technorati.com/tag/maemo" rel="tag">maemo</a>, <a href="http://www.technorati.com/tag/midcom" rel="tag">midcom</a>, <a href="http://www.technorati.com/tag/midgard" rel="tag">midgard</a>, <a href="http://www.technorati.com/tag/ragnaroek" rel="tag">ragnaroek</a></p>
]]></content>
        <summary type="html"><![CDATA[

<p>
<a href="http://maemo.org/">Maemo.org</a>, the community site for Nokia's <a href="http://en.wikipedia.org/wiki/Maemo_Platform">mobile Linux environment</a> has this week been upgraded to <a href="http://www.midgard-project.org/updates/midgard_8-09-2-bosporus_queries-released/">8.09.2 Ragnaroek</a>, the much faster and <a href="http://www.midgard-project.org/midgard/8.09/">long-term supported version</a> of the <a href="http://en.wikipedia.org/wiki/Midgard_(software)">Midgard framework</a>. Thanks to <a href="http://maemo.org/profile/view/xfade/">Niels</a> and <a href="http://maemo.org/profile/view/piotras/">Piotras</a> for working with me on this!
</p>

<p>
in October, I spent quite a bit of time optimizing this release, shaving off an estimated 60-70% of queries through some smart caching and removed redundancies. In addition, a new database server is now in place. Together, these should get us quite far in the "<a href="http://wiki.maemo.org/Task:Fast_Server">Fast Server</a>" agenda.
</p>

<p style="text-align:center;">
<img src="http://bergie.iki.fi/midcom-serveattachmentguid-9d50a136b59111dd9e2295aaed6df9f9f9f9/maemo-20081118.jpg" height="230" width="298" border="1" hspace="4" vspace="4" alt="Maemo on Nov 18th" title="Maemo on Nov 18th" /></p>

<p>
We're however still not done, and now we will do more optimizations that will be part of <a href="http://trac.midgard-project.org/milestone/8.09.3%20Ragnaroek">8.09.3</a>, due next week, and will move static files (images and javascript) to a separate <a href="http://www.lighttpd.net/">lighttpd</a> instance to remove that load from the normal Apache. When all this is done, <a href="http://maemo.org/profile/list/">the Maemo community</a> should have infrastructure that will be able to serve it for a long time.
</p>

<p>
In addition to optimization, <a href="http://wiki.maemo.org/Maemo.org_Sprints/November_08">we've been working</a> on some other features related to the website:
</p>

<ul><li>Many new activities, such as <a href="http://maemo.org/profile/list/category/itt_thanks/">Internet Tablet talk</a> and <a href="http://maemo.org/profile/list/category/mediawiki_edits/">Maemo Wiki</a> now count towards karma, with <a href="http://wiki.maemo.org/Karma#Proposed_improvements">more karma refinements</a> on the way</li>
<li>Issues with <a href="http://trac.midgard-project.org/ticket/286">weird email formatting</a> in <a href="http://maemo.org/community/maemo-users/">Maemo forums</a> has been fixed and will be part of 8.09.3</li>
<li>Per-module karma listings are now showing correctly, making it possible to see the top contributors to different aspects of the community</li>
</ul>

<p>
Midgard is a <a href="http://www.ohloh.net/projects/midgard/analyses/latest">big and complex</a> piece of software. If you notice any issues related to this upgrade, please <a href="https://bugs.maemo.org/enter_bug.cgi?classification=maemo.org%20Website">let us know</a>. And if you have any ideas on improving the website, be sure to <a href="https://bugs.maemo.org/enter_bug.cgi?classification=maemo.org%20Website">file those</a> too!
</p>

<p style="text-align:right;font-size:10px;">Technorati Tags: <a href="http://www.technorati.com/tag/lighttpd" rel="tag">lighttpd</a>, <a href="http://www.technorati.com/tag/maemo" rel="tag">maemo</a>, <a href="http://www.technorati.com/tag/midcom" rel="tag">midcom</a>, <a href="http://www.technorati.com/tag/midgard" rel="tag">midgard</a>, <a href="http://www.technorati.com/tag/ragnaroek" rel="tag">ragnaroek</a></p>
]]></summary>
    </entry>
    <entry>
        <title>Nemein is going to Ubuntu Server</title>
        <link rel="alternate" type="text/html" href="http://nemein.com/fi/news/nemein_is_going_to_ubuntu_server.html"/>
        <published>2008-11-14T09:37:34+00:00</published>
        <updated>2008-11-14T09:37:34+00:00</updated>
        <id>http://nemein.com/fi/midcom-permalink-e6c84f0ab22e11dd9e562bbc15f4546f546f</id>
        <author>
            <name>henri.bergius@iki.fi (Henri Bergius)</name>
        </author>
        <category  term="feed:d697c44bd2cdceb1c72d08693bb1639e" />
        <content type="html"><![CDATA[

<p>
At <a href="http://nemein.com/">Nemein</a> we <a href="http://nemein.com/en/solution/support/">do maintenance</a> for quite a few servers of our customers. While some customers have their own Linux distribution preference - usually <a href="http://www.redhat.com/rhel/">RHEL</a> - in most cases we have a say what distribution runs their servers. So far this has been <a href="http://www.debian.org/">debian</a>, but now we're going for <a href="http://www.ubuntu.com/products/whatisubuntu/serveredition">Ubuntu Server</a>.
</p>

<p style="text-align:center;">
<img src="http://bergie.iki.fi/midcom-serveattachmentguid-dc0c34eab22f11dd8f337d2ee1ced3e7d3e7/ubuntu_midgard.png" height="104" width="400" border="0" hspace="4" vspace="4" alt="Ubuntu and Midgard" title="Ubuntu and Midgard" /></p>

<p>
The reasons for this are quite simple:
</p>

<ul><li><a href="https://wiki.ubuntu.com/TimeBasedReleases">Ubuntu follows</a> the same <a href="http://bergie.iki.fi/blog/midgard_and_synchronized_releases/">synchronized release model</a> as <a href="http://www.midgard-project.org/">Midgard</a> does, offering a predictable upgrade schedule</li>
<li>In many cases the <a href="http://www.ubuntu.com/products/whatisubuntu">stable Ubuntu</a> version has newer <a href="http://php.net/">PHP</a> and <a href="http://www.gnome.org/">GNOME</a> packages than <a href="http://www.debian.org/releases/stable/">debian stable</a>. As these are <a href="http://www.midgard-project.org/documentation/midgard-source-installation-dependencies/">Midgard dependencies</a> this makes our life easier</li>
<li>Ubuntu is one of the <a href="http://en.opensuse.org/Build_Service/cross_distribution_package_how_to">distributions supported</a> by the <a href="https://build.opensuse.org/">openSUSE Build Service</a></li>
<li>Ubuntu is still basically the same familiar <a href="http://www.ubuntu.com/community/ubuntustory/Debian">rock solid platform that debian is</a></li>
</ul>

<p>
While not everybody is happy about <a href="http://www.jonobacon.org/?p=1381">the way Ubuntu has established itself</a> in the market, there seems to be a strong gravitation towards switching to it, on both desktop <a href="http://arstechnica.com/news.ars/post/20081009-wikipedia-adopts-ubuntu-for-its-server-infrastructure.html">and server</a>.
</p>
]]></content>
        <summary type="html"><![CDATA[

<p>
At <a href="http://nemein.com/">Nemein</a> we <a href="http://nemein.com/en/solution/support/">do maintenance</a> for quite a few servers of our customers. While some customers have their own Linux distribution preference - usually <a href="http://www.redhat.com/rhel/">RHEL</a> - in most cases we have a say what distribution runs their servers. So far this has been <a href="http://www.debian.org/">debian</a>, but now we're going for <a href="http://www.ubuntu.com/products/whatisubuntu/serveredition">Ubuntu Server</a>.
</p>

<p style="text-align:center;">
<img src="http://bergie.iki.fi/midcom-serveattachmentguid-dc0c34eab22f11dd8f337d2ee1ced3e7d3e7/ubuntu_midgard.png" height="104" width="400" border="0" hspace="4" vspace="4" alt="Ubuntu and Midgard" title="Ubuntu and Midgard" /></p>

<p>
The reasons for this are quite simple:
</p>

<ul><li><a href="https://wiki.ubuntu.com/TimeBasedReleases">Ubuntu follows</a> the same <a href="http://bergie.iki.fi/blog/midgard_and_synchronized_releases/">synchronized release model</a> as <a href="http://www.midgard-project.org/">Midgard</a> does, offering a predictable upgrade schedule</li>
<li>In many cases the <a href="http://www.ubuntu.com/products/whatisubuntu">stable Ubuntu</a> version has newer <a href="http://php.net/">PHP</a> and <a href="http://www.gnome.org/">GNOME</a> packages than <a href="http://www.debian.org/releases/stable/">debian stable</a>. As these are <a href="http://www.midgard-project.org/documentation/midgard-source-installation-dependencies/">Midgard dependencies</a> this makes our life easier</li>
<li>Ubuntu is one of the <a href="http://en.opensuse.org/Build_Service/cross_distribution_package_how_to">distributions supported</a> by the <a href="https://build.opensuse.org/">openSUSE Build Service</a></li>
<li>Ubuntu is still basically the same familiar <a href="http://www.ubuntu.com/community/ubuntustory/Debian">rock solid platform that debian is</a></li>
</ul>

<p>
While not everybody is happy about <a href="http://www.jonobacon.org/?p=1381">the way Ubuntu has established itself</a> in the market, there seems to be a strong gravitation towards switching to it, on both desktop <a href="http://arstechnica.com/news.ars/post/20081009-wikipedia-adopts-ubuntu-for-its-server-infrastructure.html">and server</a>.
</p>
]]></summary>
    </entry>
    <entry>
        <title>Midgard Gathering 2008</title>
        <link rel="alternate" type="text/html" href="http://nemein.com/fi/news/midgard_gathering_2008.html"/>
        <published>2008-11-07T14:42:25+00:00</published>
        <updated>2008-11-07T14:42:25+00:00</updated>
        <id>http://nemein.com/fi/midcom-permalink-a0b764fcacd811ddaf8859e8fb1281538153</id>
        <author>
            <name>henri.bergius@iki.fi (Henri Bergius)</name>
        </author>
        <category  term="feed:d697c44bd2cdceb1c72d08693bb1639e" />
        <content type="html"><![CDATA[

<p>
The <a href="http://www.midgard-project.org/community/events/midgard_gathering_2008/">second Midgard Gathering of 2008</a> is this weekend in <a href="http://plazes.com/plazes/92748_otakaari_20">Otaniemi, Espoo</a>. Happened so far:
</p>

<p>
<strong>Thursday</strong>
</p>

<ul><li><a href="http://sebastian-bergmann.de/">Sebastian Bergmann</a> gave us a training session on <a href="http://www.phpunit.de/">PHP software testing</a>, as as result we now have over 1000 unit tests for the <a href="http://www.midgard-project.org/documentation/mgdschema-in-php/">MgdSchema API</a> for PHP. We also looked at <a href="http://selenium.openqa.org/">Selenium</a> for acceptance testing and deployed a <a href="http://www.martinfowler.com/articles/continuousIntegration.html">continuous integration</a> server for <a href="http://bergie.iki.fi/blog/midcom_3_at_a_glance/">MidCOM 3</a> development</li>
</ul>

<p>
<strong>Friday</strong>
</p>

<ul><li>We gave my <a href="http://bergie.iki.fi/blog/midgard2_at_fscons-your_data-everywhere/">Midgard replication talk</a> and Tero's <a href="http://teroheikkinen.iki.fi/blog/view/midgard_workshop_at_fscons.html">PHP-Python signaling workshop</a> from <a href="http://fscons.org/">FSCONS</a></li>
<li>Then we discussed new UI and visual guidelines for Midgard 2</li>
<li>...and hacked new MidCOM 3 features like component inheritance</li>
<li>Solt and Piotras started working on getting Midgard to compile on Windows</li>
<li>In the evening was <a href="http://vuosijuhla.tky.fi/en/">TKY's 136th anniversary party</a>, and sauna evening at the Midgard Gathering facilities</li>
</ul>

<p>
<strong>Saturday</strong>
</p>

<ul><li>Saturday started with waking up the various <a href="http://flickr.com/photos/bergie/3011742627/">Midgardians sleeping</a> in OK20</li>
<li>Alexander gave a presentation on how <a href="http://boids.name/empty/articles/2008/08/27">Midgard's internals could be ported</a> from straight C into <a href="http://live.gnome.org/Vala">Vala</a></li>
<li>We discussed reorganizing <a href="http://www.midgard-project.org/documentation/">Midgard's documentation</a> and appointed <a href="http://www.midgard-project.org/community/whoswho/solt/">Solt</a> and <a href="http://nemein.com/en/people/neithan/">Neithan</a> to be in charge of it. I expect to see lots of documentation-related bugs in Trac</li>
<li>Split in MidCOM between "core" and "contrib" components was clarified and we made an updated list of core components and discussed some components we hope to promote to core soon</li>
<li>Midgard 9.03 feature list is now decided. With 9.03 we will focus on the persistent storage and MVC layers of Midgard, and plan to add the CMS features on the application level around 9.09</li>
<li><a href="http://www.midgard-project.org/community/whoswho/rambo/">Rambo</a>, in his role as a <a href="http://www.midgard-project.org/discussion/developer-forum/proposal-new_midcom_commit_policy/">VCS Tyrant</a> started <a href="http://lists.midgard-project.org/pipermail/dev/2008-November/001025.html">reorganizing Midgard's SVN</a></li>
<li>We started planning <a href="http://flossfoundations.org/">a foundation</a> to govern the Midgard project. This will not be a big thing like <a href="http://www.mozilla.org/foundation/">Mozilla</a> and <a href="http://foundation.gnome.org/">GNOME</a> foundations, but mostly a practical instrument for handling copyrights and <a href="http://bergie.iki.fi/blog/some_talking_points_for_the_midgard_gathering/">Midgard Gathering</a> arrangements</li>
<li>In the evening we went to <a href="http://www.oluthuone.com/kaisla.html">Kaisla</a> for some beers to <a href="http://flickr.com/photos/bergie/3013378655/">celebrate the fact</a> that Midgard actually did compile (though not run) on Windows</li>
</ul>

<p>
Some <a href="http://flickr.com/photos/tags/midgardgathering08/">pictures on Flickr</a>.
</p>
]]></content>
        <summary type="html"><![CDATA[

<p>
The <a href="http://www.midgard-project.org/community/events/midgard_gathering_2008/">second Midgard Gathering of 2008</a> is this weekend in <a href="http://plazes.com/plazes/92748_otakaari_20">Otaniemi, Espoo</a>. Happened so far:
</p>

<p>
<strong>Thursday</strong>
</p>

<ul><li><a href="http://sebastian-bergmann.de/">Sebastian Bergmann</a> gave us a training session on <a href="http://www.phpunit.de/">PHP software testing</a>, as as result we now have over 1000 unit tests for the <a href="http://www.midgard-project.org/documentation/mgdschema-in-php/">MgdSchema API</a> for PHP. We also looked at <a href="http://selenium.openqa.org/">Selenium</a> for acceptance testing and deployed a <a href="http://www.martinfowler.com/articles/continuousIntegration.html">continuous integration</a> server for <a href="http://bergie.iki.fi/blog/midcom_3_at_a_glance/">MidCOM 3</a> development</li>
</ul>

<p>
<strong>Friday</strong>
</p>

<ul><li>We gave my <a href="http://bergie.iki.fi/blog/midgard2_at_fscons-your_data-everywhere/">Midgard replication talk</a> and Tero's <a href="http://teroheikkinen.iki.fi/blog/view/midgard_workshop_at_fscons.html">PHP-Python signaling workshop</a> from <a href="http://fscons.org/">FSCONS</a></li>
<li>Then we discussed new UI and visual guidelines for Midgard 2</li>
<li>...and hacked new MidCOM 3 features like component inheritance</li>
<li>Solt and Piotras started working on getting Midgard to compile on Windows</li>
<li>In the evening was <a href="http://vuosijuhla.tky.fi/en/">TKY's 136th anniversary party</a>, and sauna evening at the Midgard Gathering facilities</li>
</ul>

<p>
<strong>Saturday</strong>
</p>

<ul><li>Saturday started with waking up the various <a href="http://flickr.com/photos/bergie/3011742627/">Midgardians sleeping</a> in OK20</li>
<li>Alexander gave a presentation on how <a href="http://boids.name/empty/articles/2008/08/27">Midgard's internals could be ported</a> from straight C into <a href="http://live.gnome.org/Vala">Vala</a></li>
<li>We discussed reorganizing <a href="http://www.midgard-project.org/documentation/">Midgard's documentation</a> and appointed <a href="http://www.midgard-project.org/community/whoswho/solt/">Solt</a> and <a href="http://nemein.com/en/people/neithan/">Neithan</a> to be in charge of it. I expect to see lots of documentation-related bugs in Trac</li>
<li>Split in MidCOM between "core" and "contrib" components was clarified and we made an updated list of core components and discussed some components we hope to promote to core soon</li>
<li>Midgard 9.03 feature list is now decided. With 9.03 we will focus on the persistent storage and MVC layers of Midgard, and plan to add the CMS features on the application level around 9.09</li>
<li><a href="http://www.midgard-project.org/community/whoswho/rambo/">Rambo</a>, in his role as a <a href="http://www.midgard-project.org/discussion/developer-forum/proposal-new_midcom_commit_policy/">VCS Tyrant</a> started <a href="http://lists.midgard-project.org/pipermail/dev/2008-November/001025.html">reorganizing Midgard's SVN</a></li>
<li>We started planning <a href="http://flossfoundations.org/">a foundation</a> to govern the Midgard project. This will not be a big thing like <a href="http://www.mozilla.org/foundation/">Mozilla</a> and <a href="http://foundation.gnome.org/">GNOME</a> foundations, but mostly a practical instrument for handling copyrights and <a href="http://bergie.iki.fi/blog/some_talking_points_for_the_midgard_gathering/">Midgard Gathering</a> arrangements</li>
<li>In the evening we went to <a href="http://www.oluthuone.com/kaisla.html">Kaisla</a> for some beers to <a href="http://flickr.com/photos/bergie/3013378655/">celebrate the fact</a> that Midgard actually did compile (though not run) on Windows</li>
</ul>

<p>
Some <a href="http://flickr.com/photos/tags/midgardgathering08/">pictures on Flickr</a>.
</p>
]]></summary>
    </entry>
    <entry>
        <title>Midgard: benefits of synchronized releases</title>
        <link rel="alternate" type="text/html" href="http://nemein.com/fi/news/midgard-benefits_of_synchronized_releases.html"/>
        <published>2008-11-03T15:28:05+00:00</published>
        <updated>2008-11-03T15:28:05+00:00</updated>
        <id>http://nemein.com/fi/midcom-permalink-5f64e5a2a9bc11dda08f4f004b1fdb71db71</id>
        <author>
            <name>henri.bergius@iki.fi (Henri Bergius)</name>
        </author>
        <category  term="feed:d697c44bd2cdceb1c72d08693bb1639e" />
        <content type="html"><![CDATA[

<p>
<a href="http://www.midgard-project.org/updates/on_synchronized_releases/">From the Midgard Project</a>:
</p>

<blockquote>
<a href="http://www.midgard-project.org/">The Midgard Project</a> switched to a <a href="http://bergie.iki.fi/blog/midgard_and_synchronized_releases/">new synchronized release model</a> with the <a href="http://www.midgard-project.org/midgard/8.09/">8.09 "Ragnaroek LTS"</a> release. <a href="http://coccinella.im/synchronized-releases">Synchronized release model</a> means that a major release of Midgard will happen every six months, tuned to be part of the larger Linux software ecosystem <a href="http://www.markshuttleworth.com/archives/159">as described by Mark Shuttleworth</a>:
<br /><br /><em>WHAT IF you knew that the next long-term supported releases of Ubuntu, Debian, Red Hat and Novell Linux would all have the same major versions of kernel, GCC, X, GNOME, KDE, OO.o and Mozilla. Would that make a major difference for you? I’m willing to bet not - that from a customer view, folks who prefer X will still prefer X. A person who prefers Red Hat will stick with Red Hat. But from a developer view, would that make it easier to collaborate? Dramatically so.
<br /><br />...</em>
<br /><br />The same model has been employed very successfully by major projects like <a href="http://live.gnome.org/ReleasePlanning/TimeBased">GNOME</a>, <a href="http://wiki.eclipse.org/Ganymede_Simultaneous_Release#Goal">Eclipse</a> and the <a href="https://wiki.ubuntu.com/TimeBasedReleases">Ubuntu</a> distribution. As Midgard relies on <a href="http://blogs.nemein.com/people/piotras/view/1223463209.html">many GNOME technologies</a>, being in the same release cycle with them helps our development immensely, and makes Midgard more easy to install because we have a more stable set of dependencies.
</blockquote>
]]></content>
        <summary type="html"><![CDATA[

<p>
<a href="http://www.midgard-project.org/updates/on_synchronized_releases/">From the Midgard Project</a>:
</p>

<blockquote>
<a href="http://www.midgard-project.org/">The Midgard Project</a> switched to a <a href="http://bergie.iki.fi/blog/midgard_and_synchronized_releases/">new synchronized release model</a> with the <a href="http://www.midgard-project.org/midgard/8.09/">8.09 "Ragnaroek LTS"</a> release. <a href="http://coccinella.im/synchronized-releases">Synchronized release model</a> means that a major release of Midgard will happen every six months, tuned to be part of the larger Linux software ecosystem <a href="http://www.markshuttleworth.com/archives/159">as described by Mark Shuttleworth</a>:
<br /><br /><em>WHAT IF you knew that the next long-term supported releases of Ubuntu, Debian, Red Hat and Novell Linux would all have the same major versions of kernel, GCC, X, GNOME, KDE, OO.o and Mozilla. Would that make a major difference for you? I’m willing to bet not - that from a customer view, folks who prefer X will still prefer X. A person who prefers Red Hat will stick with Red Hat. But from a developer view, would that make it easier to collaborate? Dramatically so.
<br /><br />...</em>
<br /><br />The same model has been employed very successfully by major projects like <a href="http://live.gnome.org/ReleasePlanning/TimeBased">GNOME</a>, <a href="http://wiki.eclipse.org/Ganymede_Simultaneous_Release#Goal">Eclipse</a> and the <a href="https://wiki.ubuntu.com/TimeBasedReleases">Ubuntu</a> distribution. As Midgard relies on <a href="http://blogs.nemein.com/people/piotras/view/1223463209.html">many GNOME technologies</a>, being in the same release cycle with them helps our development immensely, and makes Midgard more easy to install because we have a more stable set of dependencies.
</blockquote>
]]></summary>
    </entry>
    <entry>
        <title>Midgard and content filtering</title>
        <link rel="alternate" type="text/html" href="http://nemein.com/fi/news/midgard_and_content_filtering.html"/>
        <published>2008-11-01T11:46:58+00:00</published>
        <updated>2008-11-01T11:46:58+00:00</updated>
        <id>http://nemein.com/fi/midcom-permalink-dec8986ea81011dd9740cd9f5cc6483c483c</id>
        <author>
            <name>henri.bergius@iki.fi (Henri Bergius)</name>
        </author>
        <category  term="feed:d697c44bd2cdceb1c72d08693bb1639e" />
        <content type="html"><![CDATA[

<p>
Gadgetopia has a post on how CMS's <a href="http://gadgetopia.com/post/6607">should provide an API for content filtering</a>. Since Midgard is <a href="http://bergie.iki.fi/blog/introduction_to_midgards_database_abstraction_system/">persistent storage API</a> first, and <a href="http://www.midgard-project.org/documentation/getting-started/">CMS only second</a> we obviously have <a href="http://www.midgard-project.org/documentation/reference/#3855e6325f5459c1d4f3b9863bc7debe">nice APIs</a> for doing exactly this.
</p>

<p>
In this case we're running a query and checking if a different user is allowed to see something, as specified by Gadgetopia:
</p>

<blockquote>
Hey, CMS, I have this list of content IDs here… How did I get them? Yeah, well, that’s not that important right now…
<br /><br />Anyway, can you look at this and tell me which ones I can show Nathaniel Snerpis? Here, just take them all, and give me back the ones I can show him.
</blockquote>

<p>
With Midgard you do this by fetching the objects first with <a href="http://www.midgard-project.org/documentation/midgardquerybuilder/">Query Builder</a>, and then checking their permissions via <a href="http://midgardwiki.contentcontrol-berlin.de/index.php/Midcom.services.auth">MidCOM auth service</a>. When user is logged in, his ACLs are already automatically applied to the results so no checks are needed.
</p>

<pre>
&lt;?php
// In this example we have some pre-gathered list of GUIDs
$guids_array
(
    '35c2b080736b11dd935ab300c51623d723d7',
    '18aa22ee736b11dd935ab300c51623d723d7',
);

// Instantiate a query builder
$qb = midcom_db_article::new_query_builder();
$qb-&gt;add_constraint('guid', 'IN', $guids_array);

// Get the articles
$articles = $qb-&gt;execute();

// We need Nathaniel Snerpis' GUID to perform the ACL check
$nathaniel = $_MIDCOM-&gt;auth-&gt;get_user_by_name('nathaniel');

// Loop through the articles and check permissions
foreach ($articles as $article)
{
    // Check if Nathaniel is allowed to see this
    if ($_MIDCOM-&gt;auth-&gt;can_do('midgard:read', $article, $nathaniel))
    {
        // Show the article to Nathaniel
    }
}
?&gt;
</pre>

<p>
You can see here that we're using <a href="http://www.midgard-project.org/api-docs/midgard/core/cvs/group__guid.html">GUIDs</a>, not IDs to refer to content. This is because GUIDs (compliant with the <a href="http://www.midgard-project.org/development/mrfc/0018/">UUID spec</a>) are <a href="http://bergie.iki.fi/blog/midgard2_at_fscons-your_data-everywhere/">replication</a>-safe, and you can trust them to be the same on every system in your <a href="http://bergie.iki.fi/blog/midgard2-future_in_the_clouds/">Midgard cluster</a>.
</p>

<p>
<strong>Note:</strong> in this case the API example was in PHP. But with <a href="http://trac.midgard-project.org/milestone/9.03%20Vinland">Midgard 9.03</a> you will be able to use the exact same APIs <a href="http://bergie.iki.fi/blog/midgard_2-more_than_just_php-more_than_just_cms/">with Python and Mono</a>.
</p>
]]></content>
        <summary type="html"><![CDATA[

<p>
Gadgetopia has a post on how CMS's <a href="http://gadgetopia.com/post/6607">should provide an API for content filtering</a>. Since Midgard is <a href="http://bergie.iki.fi/blog/introduction_to_midgards_database_abstraction_system/">persistent storage API</a> first, and <a href="http://www.midgard-project.org/documentation/getting-started/">CMS only second</a> we obviously have <a href="http://www.midgard-project.org/documentation/reference/#3855e6325f5459c1d4f3b9863bc7debe">nice APIs</a> for doing exactly this.
</p>

<p>
In this case we're running a query and checking if a different user is allowed to see something, as specified by Gadgetopia:
</p>

<blockquote>
Hey, CMS, I have this list of content IDs here… How did I get them? Yeah, well, that’s not that important right now…
<br /><br />Anyway, can you look at this and tell me which ones I can show Nathaniel Snerpis? Here, just take them all, and give me back the ones I can show him.
</blockquote>

<p>
With Midgard you do this by fetching the objects first with <a href="http://www.midgard-project.org/documentation/midgardquerybuilder/">Query Builder</a>, and then checking their permissions via <a href="http://midgardwiki.contentcontrol-berlin.de/index.php/Midcom.services.auth">MidCOM auth service</a>. When user is logged in, his ACLs are already automatically applied to the results so no checks are needed.
</p>

<pre>
&lt;?php
// In this example we have some pre-gathered list of GUIDs
$guids_array
(
    '35c2b080736b11dd935ab300c51623d723d7',
    '18aa22ee736b11dd935ab300c51623d723d7',
);

// Instantiate a query builder
$qb = midcom_db_article::new_query_builder();
$qb-&gt;add_constraint('guid', 'IN', $guids_array);

// Get the articles
$articles = $qb-&gt;execute();

// We need Nathaniel Snerpis' GUID to perform the ACL check
$nathaniel = $_MIDCOM-&gt;auth-&gt;get_user_by_name('nathaniel');

// Loop through the articles and check permissions
foreach ($articles as $article)
{
    // Check if Nathaniel is allowed to see this
    if ($_MIDCOM-&gt;auth-&gt;can_do('midgard:read', $article, $nathaniel))
    {
        // Show the article to Nathaniel
    }
}
?&gt;
</pre>

<p>
You can see here that we're using <a href="http://www.midgard-project.org/api-docs/midgard/core/cvs/group__guid.html">GUIDs</a>, not IDs to refer to content. This is because GUIDs (compliant with the <a href="http://www.midgard-project.org/development/mrfc/0018/">UUID spec</a>) are <a href="http://bergie.iki.fi/blog/midgard2_at_fscons-your_data-everywhere/">replication</a>-safe, and you can trust them to be the same on every system in your <a href="http://bergie.iki.fi/blog/midgard2-future_in_the_clouds/">Midgard cluster</a>.
</p>

<p>
<strong>Note:</strong> in this case the API example was in PHP. But with <a href="http://trac.midgard-project.org/milestone/9.03%20Vinland">Midgard 9.03</a> you will be able to use the exact same APIs <a href="http://bergie.iki.fi/blog/midgard_2-more_than_just_php-more_than_just_cms/">with Python and Mono</a>.
</p>
]]></summary>
    </entry>
    <entry>
        <title>Some talking points for the Midgard Gathering</title>
        <link rel="alternate" type="text/html" href="http://nemein.com/fi/news/some_talking_points_for_the_midgard_gathering.html"/>
        <published>2008-10-31T16:51:21+00:00</published>
        <updated>2008-10-31T16:51:21+00:00</updated>
        <id>http://nemein.com/fi/midcom-permalink-9e519bc2a77111dd97ef21119ded0de20de2</id>
        <author>
            <name>henri.bergius@iki.fi (Henri Bergius)</name>
        </author>
        <category  term="feed:d697c44bd2cdceb1c72d08693bb1639e" />
        <content type="html"><![CDATA[

<p>
Since <a href="http://www.midgard-project.org/community/events/midgard_gathering_2008/">the Midgard Gathering</a> is next week, I thought it would be time to write down some conversation starters related to it.
</p>

<p>
<span style="font-size:14pt;"><strong>Clear vision</strong></span>
</p>

<p>
One important thing we need to settle on is a clear vision for Midgard. It should be a vision everybody in the community can agree with, and a vision that will benefit the user base.
</p>

<p>
I believe that "<a href="http://bergie.iki.fi/blog/midgard2_at_fscons-your_data-everywhere/">your data, everywhere</a>" is the right idea. We should target Midgard for the replicated world where your application data can be easily transferred between multiple devices, served on the web, and shared with your friends.
</p>

<p>
While some believe that soon you will "<a href="http://www.37signals.com/svn/posts/347-youre-not-on-a-fucking-plane-and-if-you-are-it-doesnt-matter">never be offline</a>", I think that level of ubiquitous connectivity is either unattainable or at least very far off in the future. What we need instead is to be able to <a href="http://bergie.iki.fi/blog/the_old_offline_vs-online_debate/">have our data with us, wherever we go</a>.
</p>

<p>
<span style="font-size:14pt;"><strong>Unique visual identity</strong></span>
</p>

<blockquote>
What really sets Apple's products apart is the "fit and finish," the ultimate impression that results from thousands of tiny decisions that go into a product's development. Take Apple's pioneering work in injection molding. It's part science, part art, and plenty of trial and error.  (<a href="http://www.businessweek.com/magazine/content/06_39/b4002414.htm">Who Is Jonathan Ive?</a>)
</blockquote>

<p>
Design is often what differentiates winners from the mass. Apple's beautiful laptops and cell phones are a good example of how you can beat a crowded market by focusing on design and details.
</p>

<p>
While we should have distinctive visual elements to build our user interfaces from, I don't mean only that. By design I mean that we really need to think hard of what our users need, and design beautiful interfaces that make things easy for them.
</p>

<p>
On the visual end, the Midgard colors of grey, orange and brown should stand out quite well. We have excellent icons done in the <a href="http://tango.freedesktop.org/Tango_Icon_Theme_Guidelines">Tango style</a>, and many other design elements coming from Ilkka Martio's <a href="http://www.flickr.com/photos/quimgil/481034884/">work on Midgard2 styling</a>. These should be cornerstones of the new visual user interface. In '99 Midgard had a strong, <a href="http://flickr.com/photos/bergie/1107841998/">distinctive visual identity</a>. We need to rebuild that.
</p>

<p>
<span style="font-size:14pt;"><strong>Content management</strong></span>
</p>

<blockquote>
Content management: This is the everything that happens with a piece of content after its created and until it dies. This includes the permissions, workflows, versioning, check in/out, task management, reporting, archiving, administrative searching, language translation, and any other action involved in keeping this content relevant, current, effective, and general under control. (<a href="http://gadgetopia.com/post/6186">The Four Disciplines of Content Management</a>)
</blockquote>

<p>
<a href="http://bergie.iki.fi/blog/on_vikings_and_free_software/">Midgard's origins</a> have been in <a href="http://gadgetopia.com/post/252">web publishing</a>, and through <a href="http://www.cmswatch.com/Feature/48-Midgard-1.4">strong templating</a> and component systems this is where we've been quite good at. But content management we haven't done that well. At least, if content management is taken to a wider meaning than just "making stuff editable and published on the web".
</p>

<p>
With the new Midgard we have the delightful opportunity to rethink this all. Thanks to our active consulting companies and the <a href="http://bergie.iki.fi/blog/midcom_3_at_a_glance/">powerful MVC framework</a> we shouldn't focus on actual components this time - they will appear for sure through various client projects. Instead, we should concentrate on the basic ideas of content management.
</p>

<p>
This means that we should think of how the content is actually edited and published, and how it lives on in a service. Handling and connecting of content fragments, managing inter-document linkage, and versioning are all important features. Similarly, we should make it easy to send documents to commenting and approval rounds, and to serve them in multiple variants.
</p>

<p>
An important piece for this would be making the <a href="http://bergie.iki.fi/blog/notification-management-in-openpsa-2/">notification service</a> that in older Midgard existed as a separate component an integral part of the system. Any Midgard application should be able to store and show notifications for users. If this is utilized from core up, then workflow between different parties working on a site or a document will be much easier.
</p>

<p>
To ensure consistency between components, and that components are as easy to develop as possible, MidCOM should provide a good set of controller baseclasses for typical content management activities.
</p>

<p>
<span style="font-size:14pt;"><strong>Replication everywhere</strong></span>
</p>

<blockquote>
Before his retirement as Microsoft's chairman, Bill Gates suggested that a so-called pervasive desktop would be a focus of Windows 7, giving users a way to take all their data, desktop settings, bookmarks, and the like from one computer to another--presumably as long as all those computers were running Windows 7. (<a href="http://www.pcworld.com/article/152683-4/15_hot_new_technologies_that_will_change_everything.html">PC World</a>)
</blockquote>

<p>
Even though Midgard has supported replication since 2000, it has always been a bit of an extra feature. Most installations have still been on the server end, with the server acting as an isolated island.
</p>

<p>
Following our "<a href="http://bergie.iki.fi/blog/midgard2_at_fscons-your_data-everywhere/">your data, everywhere</a>" vision, this must change. Replication tools must be shipped with every Midgard installation, be it on server, on desktop, or on a mobile device. And they must be integrated with the user interfaces. Anywhere you edit something, you should be able to share it with others, and see where that piece of content originally came from, and who it has been shared with.
</p>

<p>
When online, the sharing and synchronization must happen instantly. When offline, the changes to be replicated must be collected into a local spool, and then sent over when connectivity is available.
</p>

<p>
<span style="font-size:14pt;"><strong>Separating content objects from internal objects</strong></span>
</p>

<blockquote>
...load-bearing walls in content management — those things that require a content editor to call a developer to change them. Where do you draw the boundaries? (<a href="http://gadgetopia.com/post/6313">Load-Bearing Walls in Content Management</a>)
</blockquote>

<p>
Everything in Midgard is <a href="http://www.midgard-project.org/documentation/mgdschema-in-php/">an MgdSchema object</a>, be it permission, site template, user, or an article. This is good in the sense that it allows familiar programming interfaces to be used on every level of the system. But it also means that internal objects sometimes end up being used as content objects, causing confusion.
</p>

<p>
For instance, persons and groups are often used as on-site content. But they differ from other pieces of content on many levels, for instance because they have so many other objects connected to them through permissions and metadata. Because of this they work with different rules regarding to deletion and approval than others, which many users can find frustrating.
</p>

<p>
We should see to have stronger differentiation between content objects of different types to ensure smoother usage and replication.
</p>

<p>
<span style="font-size:14pt;"><strong>Quality</strong></span>
</p>

<blockquote>
Quality criterias - Portability: Easy to configure in new environments, Few OS and webserver dependencies, Few and documented version dependencies (language version, database version, external libraries), Able to survive environment updates (<a href="http://www.slideshare.net/mayflowergmbh/quality-in-php-projects-beyond-unittests-presentation?type=powerpoint">Quality in PHP Projects Beyond Unittests</a>)
</blockquote>

<p>
Like many other pieces of free software, Midgard has been riddled by quality issues. While our bugs haven't meant gaping security holes, changing APIs and memory leaks have caused many grey hairs to our users.
</p>

<p>
To improve quality in the Midgard software stack we have already taken some steps. The new <a href="http://bergie.iki.fi/blog/midgard_and_synchronized_releases/">synchronized release model</a> ensures that Midgard and MidCOM play well together and that component developers can start using new interfaces and features more quickly. It also makes Midgard more predictable to users, helping them to plan their upgrades well ahead.
</p>

<p>
The <a href="https://build.opensuse.org/">openSUSE Build Service</a> has also increased the quality of Midgard software. Now we can provide prebuilt binaries to most popular Linux distributions, making installing and upgrading Midgard easier. The new datagard tool makes setting up a Midgard site <a href="http://bergie.iki.fi/blog/long-term_support_for_midgard-ragnaroek_is_here/">a single shell command</a>, which is also an important step here. In the future we should aim also for the virtualized systems by using tools like <a href="http://www.susestudio.com/">SUSE Studio</a>.
</p>

<p>
Quality and backwards compatibility of commits is also important, as are coding standards in a major project like this. To that end, our new <a href="http://www.midgard-project.org/discussion/developer-forum/proposal-new_midcom_commit_policy/">VCS Tyrant</a> should be able to help our contributors in their work. Similarly, the <a href="http://trac.midgard-project.org/roadmap">newly-revitalized issue tracker</a> with its clear milestones make tracking the development work easier.
</p>

<p>
Finally, better software testing is a major step to strive for. Regressions have hurt us in the past, and the only way to get rid of them is to to implement a good test suite. For this, we will have an unit testing workshop on the first day of the Gathering.
</p>

<p>
<span style="font-size:14pt;"><strong>Documentation</strong></span>
</p>

<blockquote>
If our intent is to encourage people to use these tools and to contribute their time to the development of these tools, we need to spend more energy on introductory documentation. Engineers who look at Sourceforge are looking either for solutions to problems or are looking for interesting tools. In either case the Web site needs to convey the important details in a short form to enable the reader to gauge their level of interest. Obscurity in documentation benefits no one as it annoys potential users and non-users alike. (<a href="http://www.devx.com/opensource/Article/11839">Is Documentation Holding Open Source Back?</a>)
</blockquote>

<p>
Midgard's <a href="http://www.midgard-project.org/documentation/">documentation wiki</a> is currently in a horrible shape. As Midgard's capabilities have grown, and versions changed, new stuff has been added. But all of the old stuff is also there. And users, stumbling there either through the navigation or a google search, will have few ways to tell whether a document is up-to-date.
</p>

<p>
Developers clearly feel this frustration, and as result much of the newer documentation, especially for Midgard2 is available only <a href="http://teroheikkinen.iki.fi/blog/view/some_documentation_about_installing_midgard_2.html">in blog format</a>.
</p>

<p>
Because of this, we really need to put an effort to improving the level of documentation. And important first step would be to take the current wiki content into control. Old information must be either removed or tagged to the version it belongs. Templates must be tuned so that they show clearly if something is current or historical information. And the new materials must be collected from the various blogs in order to be published on the site.
</p>

<p>
After this is done we must rethink the way the wiki is maintained. Maybe we need a "documentation master" just like we now have a "bug master" and a "VCS tyrant". Maybe we must switch <a href="http://midgardwiki.contentcontrol-berlin.de/index.php/Main_Page">to MediaWiki</a>. Or maybe we must make the wiki a replicated system that we all can run and edit also on our own machines. As I am not quite sure of the right solution this must be discussed well in the Gathering.
</p>

<p>
<span style="font-size:14pt;"><strong>Virtual servers</strong></span>
</p>

<blockquote>
One of the more successful technologies to have been developed is virtualization. Broadly speaking, to virtualize is to make a single piece of hardware function as multiple pieces. Different user interfaces isolate portions of the hardware, and make each one operate as a separate entity. As applied to data centers, installing virtual infrastructure allows more operating systems and applications to run on fewer servers, which reduces overall energy use and cooling requirements. (<a href="http://ecopreneurist.com/2008/02/07/virtualization-a-boon-for-green-computing/">Ecopreneurist</a>)
</blockquote>

<p>
In the past Midgard has been hurt much by the fact that root access is required. <a href="http://www.opensourcecms.com/">Less advanced content management systems</a> have surpassed us in popularity by many orders of magnitude because anybody can set them up in just some web space.
</p>

<p>
But now I believe things are changing. Virtual servers are becoming cheaper and cheaper, and as they allow much larger degree of freedom than shared web hosting, companies and even individuals are now buying them instead. And on a virtual server you can run Midgard easily.
</p>

<p>
If we want to really benefit from the wide popularity of virtual servers, we must take some steps. First of all, Midgard must be very easy to install, as it is now thanks to datagard and OBS. And secondly, we should provide preconfigured "<a href="http://susestudio.com/">virtual appliance</a>" images that hosting providers running Xen or VMware can set up just as easily as they would an off-the-shelf Debian or RHEL.
</p>

<p>
The replicated network setup should also take this into account. Users should be able to easily keep adding new virtual servers into their cluster and have that instantly <a href="http://bergie.iki.fi/blog/midgard2-future_in_the_clouds/">start sharing data with their other servers</a>.
</p>
]]></content>
        <summary type="html"><![CDATA[

<p>
Since <a href="http://www.midgard-project.org/community/events/midgard_gathering_2008/">the Midgard Gathering</a> is next week, I thought it would be time to write down some conversation starters related to it.
</p>

<p>
<span style="font-size:14pt;"><strong>Clear vision</strong></span>
</p>

<p>
One important thing we need to settle on is a clear vision for Midgard. It should be a vision everybody in the community can agree with, and a vision that will benefit the user base.
</p>

<p>
I believe that "<a href="http://bergie.iki.fi/blog/midgard2_at_fscons-your_data-everywhere/">your data, everywhere</a>" is the right idea. We should target Midgard for the replicated world where your application data can be easily transferred between multiple devices, served on the web, and shared with your friends.
</p>

<p>
While some believe that soon you will "<a href="http://www.37signals.com/svn/posts/347-youre-not-on-a-fucking-plane-and-if-you-are-it-doesnt-matter">never be offline</a>", I think that level of ubiquitous connectivity is either unattainable or at least very far off in the future. What we need instead is to be able to <a href="http://bergie.iki.fi/blog/the_old_offline_vs-online_debate/">have our data with us, wherever we go</a>.
</p>

<p>
<span style="font-size:14pt;"><strong>Unique visual identity</strong></span>
</p>

<blockquote>
What really sets Apple's products apart is the "fit and finish," the ultimate impression that results from thousands of tiny decisions that go into a product's development. Take Apple's pioneering work in injection molding. It's part science, part art, and plenty of trial and error.  (<a href="http://www.businessweek.com/magazine/content/06_39/b4002414.htm">Who Is Jonathan Ive?</a>)
</blockquote>

<p>
Design is often what differentiates winners from the mass. Apple's beautiful laptops and cell phones are a good example of how you can beat a crowded market by focusing on design and details.
</p>

<p>
While we should have distinctive visual elements to build our user interfaces from, I don't mean only that. By design I mean that we really need to think hard of what our users need, and design beautiful interfaces that make things easy for them.
</p>

<p>
On the visual end, the Midgard colors of grey, orange and brown should stand out quite well. We have excellent icons done in the <a href="http://tango.freedesktop.org/Tango_Icon_Theme_Guidelines">Tango style</a>, and many other design elements coming from Ilkka Martio's <a href="http://www.flickr.com/photos/quimgil/481034884/">work on Midgard2 styling</a>. These should be cornerstones of the new visual user interface. In '99 Midgard had a strong, <a href="http://flickr.com/photos/bergie/1107841998/">distinctive visual identity</a>. We need to rebuild that.
</p>

<p>
<span style="font-size:14pt;"><strong>Content management</strong></span>
</p>

<blockquote>
Content management: This is the everything that happens with a piece of content after its created and until it dies. This includes the permissions, workflows, versioning, check in/out, task management, reporting, archiving, administrative searching, language translation, and any other action involved in keeping this content relevant, current, effective, and general under control. (<a href="http://gadgetopia.com/post/6186">The Four Disciplines of Content Management</a>)
</blockquote>

<p>
<a href="http://bergie.iki.fi/blog/on_vikings_and_free_software/">Midgard's origins</a> have been in <a href="http://gadgetopia.com/post/252">web publishing</a>, and through <a href="http://www.cmswatch.com/Feature/48-Midgard-1.4">strong templating</a> and component systems this is where we've been quite good at. But content management we haven't done that well. At least, if content management is taken to a wider meaning than just "making stuff editable and published on the web".
</p>

<p>
With the new Midgard we have the delightful opportunity to rethink this all. Thanks to our active consulting companies and the <a href="http://bergie.iki.fi/blog/midcom_3_at_a_glance/">powerful MVC framework</a> we shouldn't focus on actual components this time - they will appear for sure through various client projects. Instead, we should concentrate on the basic ideas of content management.
</p>

<p>
This means that we should think of how the content is actually edited and published, and how it lives on in a service. Handling and connecting of content fragments, managing inter-document linkage, and versioning are all important features. Similarly, we should make it easy to send documents to commenting and approval rounds, and to serve them in multiple variants.
</p>

<p>
An important piece for this would be making the <a href="http://bergie.iki.fi/blog/notification-management-in-openpsa-2/">notification service</a> that in older Midgard existed as a separate component an integral part of the system. Any Midgard application should be able to store and show notifications for users. If this is utilized from core up, then workflow between different parties working on a site or a document will be much easier.
</p>

<p>
To ensure consistency between components, and that components are as easy to develop as possible, MidCOM should provide a good set of controller baseclasses for typical content management activities.
</p>

<p>
<span style="font-size:14pt;"><strong>Replication everywhere</strong></span>
</p>

<blockquote>
Before his retirement as Microsoft's chairman, Bill Gates suggested that a so-called pervasive desktop would be a focus of Windows 7, giving users a way to take all their data, desktop settings, bookmarks, and the like from one computer to another--presumably as long as all those computers were running Windows 7. (<a href="http://www.pcworld.com/article/152683-4/15_hot_new_technologies_that_will_change_everything.html">PC World</a>)
</blockquote>

<p>
Even though Midgard has supported replication since 2000, it has always been a bit of an extra feature. Most installations have still been on the server end, with the server acting as an isolated island.
</p>

<p>
Following our "<a href="http://bergie.iki.fi/blog/midgard2_at_fscons-your_data-everywhere/">your data, everywhere</a>" vision, this must change. Replication tools must be shipped with every Midgard installation, be it on server, on desktop, or on a mobile device. And they must be integrated with the user interfaces. Anywhere you edit something, you should be able to share it with others, and see where that piece of content originally came from, and who it has been shared with.
</p>

<p>
When online, the sharing and synchronization must happen instantly. When offline, the changes to be replicated must be collected into a local spool, and then sent over when connectivity is available.
</p>

<p>
<span style="font-size:14pt;"><strong>Separating content objects from internal objects</strong></span>
</p>

<blockquote>
...load-bearing walls in content management — those things that require a content editor to call a developer to change them. Where do you draw the boundaries? (<a href="http://gadgetopia.com/post/6313">Load-Bearing Walls in Content Management</a>)
</blockquote>

<p>
Everything in Midgard is <a href="http://www.midgard-project.org/documentation/mgdschema-in-php/">an MgdSchema object</a>, be it permission, site template, user, or an article. This is good in the sense that it allows familiar programming interfaces to be used on every level of the system. But it also means that internal objects sometimes end up being used as content objects, causing confusion.
</p>

<p>
For instance, persons and groups are often used as on-site content. But they differ from other pieces of content on many levels, for instance because they have so many other objects connected to them through permissions and metadata. Because of this they work with different rules regarding to deletion and approval than others, which many users can find frustrating.
</p>

<p>
We should see to have stronger differentiation between content objects of different types to ensure smoother usage and replication.
</p>

<p>
<span style="font-size:14pt;"><strong>Quality</strong></span>
</p>

<blockquote>
Quality criterias - Portability: Easy to configure in new environments, Few OS and webserver dependencies, Few and documented version dependencies (language version, database version, external libraries), Able to survive environment updates (<a href="http://www.slideshare.net/mayflowergmbh/quality-in-php-projects-beyond-unittests-presentation?type=powerpoint">Quality in PHP Projects Beyond Unittests</a>)
</blockquote>

<p>
Like many other pieces of free software, Midgard has been riddled by quality issues. While our bugs haven't meant gaping security holes, changing APIs and memory leaks have caused many grey hairs to our users.
</p>

<p>
To improve quality in the Midgard software stack we have already taken some steps. The new <a href="http://bergie.iki.fi/blog/midgard_and_synchronized_releases/">synchronized release model</a> ensures that Midgard and MidCOM play well together and that component developers can start using new interfaces and features more quickly. It also makes Midgard more predictable to users, helping them to plan their upgrades well ahead.
</p>

<p>
The <a href="https://build.opensuse.org/">openSUSE Build Service</a> has also increased the quality of Midgard software. Now we can provide prebuilt binaries to most popular Linux distributions, making installing and upgrading Midgard easier. The new datagard tool makes setting up a Midgard site <a href="http://bergie.iki.fi/blog/long-term_support_for_midgard-ragnaroek_is_here/">a single shell command</a>, which is also an important step here. In the future we should aim also for the virtualized systems by using tools like <a href="http://www.susestudio.com/">SUSE Studio</a>.
</p>

<p>
Quality and backwards compatibility of commits is also important, as are coding standards in a major project like this. To that end, our new <a href="http://www.midgard-project.org/discussion/developer-forum/proposal-new_midcom_commit_policy/">VCS Tyrant</a> should be able to help our contributors in their work. Similarly, the <a href="http://trac.midgard-project.org/roadmap">newly-revitalized issue tracker</a> with its clear milestones make tracking the development work easier.
</p>

<p>
Finally, better software testing is a major step to strive for. Regressions have hurt us in the past, and the only way to get rid of them is to to implement a good test suite. For this, we will have an unit testing workshop on the first day of the Gathering.
</p>

<p>
<span style="font-size:14pt;"><strong>Documentation</strong></span>
</p>

<blockquote>
If our intent is to encourage people to use these tools and to contribute their time to the development of these tools, we need to spend more energy on introductory documentation. Engineers who look at Sourceforge are looking either for solutions to problems or are looking for interesting tools. In either case the Web site needs to convey the important details in a short form to enable the reader to gauge their level of interest. Obscurity in documentation benefits no one as it annoys potential users and non-users alike. (<a href="http://www.devx.com/opensource/Article/11839">Is Documentation Holding Open Source Back?</a>)
</blockquote>

<p>
Midgard's <a href="http://www.midgard-project.org/documentation/">documentation wiki</a> is currently in a horrible shape. As Midgard's capabilities have grown, and versions changed, new stuff has been added. But all of the old stuff is also there. And users, stumbling there either through the navigation or a google search, will have few ways to tell whether a document is up-to-date.
</p>

<p>
Developers clearly feel this frustration, and as result much of the newer documentation, especially for Midgard2 is available only <a href="http://teroheikkinen.iki.fi/blog/view/some_documentation_about_installing_midgard_2.html">in blog format</a>.
</p>

<p>
Because of this, we really need to put an effort to improving the level of documentation. And important first step would be to take the current wiki content into control. Old information must be either removed or tagged to the version it belongs. Templates must be tuned so that they show clearly if something is current or historical information. And the new materials must be collected from the various blogs in order to be published on the site.
</p>

<p>
After this is done we must rethink the way the wiki is maintained. Maybe we need a "documentation master" just like we now have a "bug master" and a "VCS tyrant". Maybe we must switch <a href="http://midgardwiki.contentcontrol-berlin.de/index.php/Main_Page">to MediaWiki</a>. Or maybe we must make the wiki a replicated system that we all can run and edit also on our own machines. As I am not quite sure of the right solution this must be discussed well in the Gathering.
</p>

<p>
<span style="font-size:14pt;"><strong>Virtual servers</strong></span>
</p>

<blockquote>
One of the more successful technologies to have been developed is virtualization. Broadly speaking, to virtualize is to make a single piece of hardware function as multiple pieces. Different user interfaces isolate portions of the hardware, and make each one operate as a separate entity. As applied to data centers, installing virtual infrastructure allows more operating systems and applications to run on fewer servers, which reduces overall energy use and cooling requirements. (<a href="http://ecopreneurist.com/2008/02/07/virtualization-a-boon-for-green-computing/">Ecopreneurist</a>)
</blockquote>

<p>
In the past Midgard has been hurt much by the fact that root access is required. <a href="http://www.opensourcecms.com/">Less advanced content management systems</a> have surpassed us in popularity by many orders of magnitude because anybody can set them up in just some web space.
</p>

<p>
But now I believe things are changing. Virtual servers are becoming cheaper and cheaper, and as they allow much larger degree of freedom than shared web hosting, companies and even individuals are now buying them instead. And on a virtual server you can run Midgard easily.
</p>

<p>
If we want to really benefit from the wide popularity of virtual servers, we must take some steps. First of all, Midgard must be very easy to install, as it is now thanks to datagard and OBS. And secondly, we should provide preconfigured "<a href="http://susestudio.com/">virtual appliance</a>" images that hosting providers running Xen or VMware can set up just as easily as they would an off-the-shelf Debian or RHEL.
</p>

<p>
The replicated network setup should also take this into account. Users should be able to easily keep adding new virtual servers into their cluster and have that instantly <a href="http://bergie.iki.fi/blog/midgard2-future_in_the_clouds/">start sharing data with their other servers</a>.
</p>
]]></summary>
    </entry>
    <entry>
        <title>On Vikings and Free Software</title>
        <link rel="alternate" type="text/html" href="http://nemein.com/fi/news/on_vikings_and_free_software.html"/>
        <published>2008-10-29T17:45:49+00:00</published>
        <updated>2008-10-29T17:45:49+00:00</updated>
        <id>http://nemein.com/fi/midcom-permalink-a78e920ca5e711ddbb9f899f4e661d741d74</id>
        <author>
            <name>henri.bergius@iki.fi (Henri Bergius)</name>
        </author>
        <category  term="feed:d697c44bd2cdceb1c72d08693bb1639e" />
        <content type="html"><![CDATA[

<p>
<a href="http://www.greywolves.org/">Harmaasudet</a>, the <a href="http://en.wikipedia.org/wiki/Living_history">living history</a> group we started in <a href="http://bergie.iki.fi/blog/2004-04-04-000/">mid-90s</a>, and the reason why I originally got into software, recently migrated back into <a href="http://www.midgard-project.org/midgard/">the Midgard platform</a>. 
</p>

<p>
<img src="http://bergie.iki.fi/midcom-serveattachmentguid-6c18fe48a5e111ddb60d89bcb1a519f719f7/harmaasudet-header-20081029.jpg" height="165" width="397" border="1" hspace="4" vspace="4" alt="Harmaasudet website" title="Harmaasudet website" /></p>

<p>
Their webmaster and <a href="http://nemein.com/">Nemein</a> alumnus <a href="http://nettiapina.fi/blog/">Heikki</a> asked me for <a href="http://nettiapina.fi/blog/2008/10/29/greywolvesorg-goes-back-to-roots/">some history of Midgard</a>, and this is what I wrote:
</p>

<blockquote>
Well, original Midgard was completely programmed in order to run the Grey Wolves site. We hacked it together with <a href="http://jukkaz.wordpress.com/">@jlz</a> in Helsinki Capital of Culture offices in Etelaranta at night time.
<br /><br />Before Midgard, the site had run on a SGML pipelines -based publishing system we called SusiSGML, and member registry on some custom Perl stuff. Then we wanted more dynamic functionality, and Midgard was born. At first @jlz was intending to write it in Scheme, but then chose the C+PHP extension.
<br /><br />For administration, we wrote the “Midgard Admin” tool, traces of which can still be seen in SpiderAdmin.
<br /><br />Midgard was intended to be a one-off, but then as my employer Stonesoft clearly needed some system I deployed there. Then @jlz was hired to my team, and we decided to open source Midgard before any IPR issues would rise with our employer, which was after all a proprietary software vendor.
<br /><br />When the original Midgard-based Grey Wolves site launched in early 99, we had the great example of what things can be: Hiiden Hirven Hiihto photos and reportage were live only couple of hours after the event ended. And this was before we had digital cameras… 
</blockquote>

<p>
<a href="http://jukkaz.wordpress.com/">Jukka Zitting</a>, the original Midgard lead developer also <a href="http://jukkaz.wordpress.com/2008/10/29/flashback-susisgml-midgard-and-cocoon/">added some points</a>:
</p>

<blockquote>
Architecturally SusiSGML was pretty much like early versions of <a href="http://cocoon.apache.org/">Apache Cocoon</a>, only with SGML and DSSSL instead of <a href="http://www.w3.org/XML/">XML</a> and <a href="http://www.w3.org/Style/XSL/">XSL</a>. Had we been at it a few years later, Midgard might have been based on Cocoon. :-)
</blockquote>

<p>
The Midgard project <a href="http://www.linuxtoday.com/developer/1999050701705NWSW">will turn 10 years old</a> next May, and so it is great time to collect some odd bits and pieces of <a href="http://www.midgard-project.org/documentation/midgard-release-names/">Midgard folklore</a>.
</p>
]]></content>
        <summary type="html"><![CDATA[

<p>
<a href="http://www.greywolves.org/">Harmaasudet</a>, the <a href="http://en.wikipedia.org/wiki/Living_history">living history</a> group we started in <a href="http://bergie.iki.fi/blog/2004-04-04-000/">mid-90s</a>, and the reason why I originally got into software, recently migrated back into <a href="http://www.midgard-project.org/midgard/">the Midgard platform</a>. 
</p>

<p>
<img src="http://bergie.iki.fi/midcom-serveattachmentguid-6c18fe48a5e111ddb60d89bcb1a519f719f7/harmaasudet-header-20081029.jpg" height="165" width="397" border="1" hspace="4" vspace="4" alt="Harmaasudet website" title="Harmaasudet website" /></p>

<p>
Their webmaster and <a href="http://nemein.com/">Nemein</a> alumnus <a href="http://nettiapina.fi/blog/">Heikki</a> asked me for <a href="http://nettiapina.fi/blog/2008/10/29/greywolvesorg-goes-back-to-roots/">some history of Midgard</a>, and this is what I wrote:
</p>

<blockquote>
Well, original Midgard was completely programmed in order to run the Grey Wolves site. We hacked it together with <a href="http://jukkaz.wordpress.com/">@jlz</a> in Helsinki Capital of Culture offices in Etelaranta at night time.
<br /><br />Before Midgard, the site had run on a SGML pipelines -based publishing system we called SusiSGML, and member registry on some custom Perl stuff. Then we wanted more dynamic functionality, and Midgard was born. At first @jlz was intending to write it in Scheme, but then chose the C+PHP extension.
<br /><br />For administration, we wrote the “Midgard Admin” tool, traces of which can still be seen in SpiderAdmin.
<br /><br />Midgard was intended to be a one-off, but then as my employer Stonesoft clearly needed some system I deployed there. Then @jlz was hired to my team, and we decided to open source Midgard before any IPR issues would rise with our employer, which was after all a proprietary software vendor.
<br /><br />When the original Midgard-based Grey Wolves site launched in early 99, we had the great example of what things can be: Hiiden Hirven Hiihto photos and reportage were live only couple of hours after the event ended. And this was before we had digital cameras… 
</blockquote>

<p>
<a href="http://jukkaz.wordpress.com/">Jukka Zitting</a>, the original Midgard lead developer also <a href="http://jukkaz.wordpress.com/2008/10/29/flashback-susisgml-midgard-and-cocoon/">added some points</a>:
</p>

<blockquote>
Architecturally SusiSGML was pretty much like early versions of <a href="http://cocoon.apache.org/">Apache Cocoon</a>, only with SGML and DSSSL instead of <a href="http://www.w3.org/XML/">XML</a> and <a href="http://www.w3.org/Style/XSL/">XSL</a>. Had we been at it a few years later, Midgard might have been based on Cocoon. :-)
</blockquote>

<p>
The Midgard project <a href="http://www.linuxtoday.com/developer/1999050701705NWSW">will turn 10 years old</a> next May, and so it is great time to collect some odd bits and pieces of <a href="http://www.midgard-project.org/documentation/midgard-release-names/">Midgard folklore</a>.
</p>
]]></summary>
    </entry>
    <entry>
        <title>LinkedIn Applications: automatic data into your resume</title>
        <link rel="alternate" type="text/html" href="http://nemein.com/fi/news/linkedin_applications-automatic_data_into_your_resume.html"/>
        <published>2008-10-29T17:19:30+00:00</published>
        <updated>2008-10-29T17:19:30+00:00</updated>
        <id>http://nemein.com/fi/midcom-permalink-4c26ba28a5df11dd831c11683f185e215e21</id>
        <author>
            <name>henri.bergius@iki.fi (Henri Bergius)</name>
        </author>
        <category  term="feed:d697c44bd2cdceb1c72d08693bb1639e" />
        <content type="html"><![CDATA[

<p>
<a href="http://www.linkedin.com/">LinkedIn</a>, the popular <a href="http://jobsearch.about.com/od/networking/a/linkedinprofile.htm">resume maintenance tool</a> just got a little smarter: they <a href="http://blog.linkedin.com/blog/2008/10/announcing-appl.html">added an applications catalogue</a> that can make your profile there <a href="http://www.readwriteweb.com/archives/linkedin_applications_your_res.php">more dynamic</a>. This is good as then potential business partners can find out more about myself from a <a href="http://bergie.iki.fi/blog/jaiku-personal_presence_aggregator/">single source</a>, and I need to do less work to keep it up-to-date.
</p>

<p>
I immediately added three apps, displaying my latest <a href="http://www.slideshare.net/bergie/">conference presentations</a>, upcoming <a href="http://www.dopplr.com/traveller/bergie">trip plans</a> and posts on <a href="http://bergie.iki.fi/blog/">my blog</a>:
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-bdf0d55aa5dd11dd986c75d8a19e15b115b1/linkedin-applications-tripit-slideshare.png"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-bf00dcf6a5dd11dd949985473da551b151b1/linkedin-applications-tripit-slideshare-tm.jpg" height="267" width="200" border="1" hspace="4" vspace="4" alt="LinkedIn Applications on my profile" title="LinkedIn Applications on my profile" /></a>
</p>

<p>
This is great as the applications already were part of my workflow. However, in general it is <a href="http://www.guardian.co.uk/technology/2008/sep/29/cloud.computing.richard.stallman">not a good idea to trust web apps</a> to be the only place where you keep your things.
</p>

<p>
In my case, I'm using <a href="http://bergie.iki.fi/blog/welcome_to_my_new_blog/">my Midgard-powered website</a> as the backup where I <a href="http://www.slideshare.net/bergie/manage-your-personal-information-space-with-midgard/">automatically gather information</a> I publish on other services like <a href="http://bergie.jaiku.com/">Jaiku</a> or <a href="http://flickr.com/photos/bergie/">Flickr</a>. This means that I can use the convenience and collaborative features of social web applications but still remain in control of my data. In the future I may move this to an <a href="http://bergie.iki.fi/blog/midgard2_at_fscons-your_data-everywhere/">even more replicated setup</a>...
</p>
]]></content>
        <summary type="html"><![CDATA[

<p>
<a href="http://www.linkedin.com/">LinkedIn</a>, the popular <a href="http://jobsearch.about.com/od/networking/a/linkedinprofile.htm">resume maintenance tool</a> just got a little smarter: they <a href="http://blog.linkedin.com/blog/2008/10/announcing-appl.html">added an applications catalogue</a> that can make your profile there <a href="http://www.readwriteweb.com/archives/linkedin_applications_your_res.php">more dynamic</a>. This is good as then potential business partners can find out more about myself from a <a href="http://bergie.iki.fi/blog/jaiku-personal_presence_aggregator/">single source</a>, and I need to do less work to keep it up-to-date.
</p>

<p>
I immediately added three apps, displaying my latest <a href="http://www.slideshare.net/bergie/">conference presentations</a>, upcoming <a href="http://www.dopplr.com/traveller/bergie">trip plans</a> and posts on <a href="http://bergie.iki.fi/blog/">my blog</a>:
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-bdf0d55aa5dd11dd986c75d8a19e15b115b1/linkedin-applications-tripit-slideshare.png"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-bf00dcf6a5dd11dd949985473da551b151b1/linkedin-applications-tripit-slideshare-tm.jpg" height="267" width="200" border="1" hspace="4" vspace="4" alt="LinkedIn Applications on my profile" title="LinkedIn Applications on my profile" /></a>
</p>

<p>
This is great as the applications already were part of my workflow. However, in general it is <a href="http://www.guardian.co.uk/technology/2008/sep/29/cloud.computing.richard.stallman">not a good idea to trust web apps</a> to be the only place where you keep your things.
</p>

<p>
In my case, I'm using <a href="http://bergie.iki.fi/blog/welcome_to_my_new_blog/">my Midgard-powered website</a> as the backup where I <a href="http://www.slideshare.net/bergie/manage-your-personal-information-space-with-midgard/">automatically gather information</a> I publish on other services like <a href="http://bergie.jaiku.com/">Jaiku</a> or <a href="http://flickr.com/photos/bergie/">Flickr</a>. This means that I can use the convenience and collaborative features of social web applications but still remain in control of my data. In the future I may move this to an <a href="http://bergie.iki.fi/blog/midgard2_at_fscons-your_data-everywhere/">even more replicated setup</a>...
</p>
]]></summary>
    </entry>
    <entry>
        <title>Midgard2 at FSCONS: Your data, everywhere</title>
        <link rel="alternate" type="text/html" href="http://nemein.com/fi/news/midgard2_at_fscons-your_data-everywhere.html"/>
        <published>2008-10-27T13:02:19+00:00</published>
        <updated>2008-10-27T13:02:19+00:00</updated>
        <id>http://nemein.com/fi/midcom-permalink-70a173d0a42b11ddb384519e1dc697989798</id>
        <author>
            <name>henri.bergius@iki.fi (Henri Bergius)</name>
        </author>
        <category  term="feed:d697c44bd2cdceb1c72d08693bb1639e" />
        <content type="html"><![CDATA[

<p>
Last weekend <a href="http://bergie.iki.fi/blog/learn_more_about_midgard_in_fscons/">we went</a> to the <a href="http://fscons.org/">Free Society Conference and Nordic Summit</a> in Gothenburg to talk a bit about the new direction <a href="http://bergie.iki.fi/blog/midgard_2-more_than_just_php-more_than_just_cms/">Midgard has been taking</a>: making it a general replicated persistent storage library for multiple programming languages. The <a href="http://www.midgard-project.org/midgard/8.09/">CMS itself</a> is <a href="http://bergie.iki.fi/blog/some_plans_for_midcom_3/">just an application</a> using the library.
</p>

<p>
The basic idea is that <a href="http://www.guardian.co.uk/technology/2008/sep/29/cloud.computing.richard.stallman">the cloud is a trap</a> that will move your data, and your applications beyond your control to proprietary data servers and web applications run by multinational corporations. If free software <a href="http://itmanagement.earthweb.com/osrc/article.php/3760206/Free+and+Open+Source+Software+vs.+Cloud+Computing.htm">doesn't provide</a> a compelling answer to that, we <a href="http://blogs.eweek.com/brooks/content/open_vs_closed_in_the_cloud.html">risk irrelevance</a>.
</p>

<p>
A replicated, peer-to-peer system of synchronizing and sharing your data could be the answer. And <a href="http://blogs.nemein.com/people/piotras/view/midgard2---flexibility-rocks.html">Midgard2 is a framework</a> providing just that. Bindings to different languages like PHP, Python and Mono, interprocess communications via D-Bus and XMPP, replication, and ability to run the same software from <a href="http://www.cmswatch.com/Trends/163-Midgard-in-Action">big server clusters</a> to <a href="http://bergie.iki.fi/blog/maemo_and_midgard_go_well_together/">Nokia internet tablets</a> should all help us get there.
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-72074370a42711dd990a4f718f22a22fa22f/fscons-bergie-midgard2-mobility.JPG"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-73c7e49ea42711dd9146d3af31a1c875c875/fscons-bergie-midgard2-mobility-tm.jpg" height="247" width="400" border="1" hspace="4" vspace="4" alt="Bergie in FSCONS: Midgard tackling the mobility challenge" title="Bergie in FSCONS: Midgard tackling the mobility challenge" /></a>
</p>

<p>
In the conference we focused on <a href="http://www.slideshare.net/bergie/midgard-2-the-cloud-you-can-control-presentation/">outlining the big vision</a>, and then <a href="http://teroheikkinen.iki.fi/blog/view/midgard_workshop_at_fscons.html">ran a workshop</a> where we showed some practical aspects of this. We <a href="http://teroheikkinen.iki.fi/blog/view/some_documentation_about_installing_midgard_2.html">set up Midgard2</a>, and built a web application that allowed user to input a RSS feed address. This was stored to the database via midgard-php. Then a midgard-python process got notified about this <a href="http://bergie.iki.fi/blog/interprocess_communications_in_midgard-d-bus_comes_to_the_web/">via D-Bus</a>, fetched the items and stored them to the database. The web front-end then displayed the articles. A clean example of interprocess communications.
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-7c0748fca42711dd990a4f718f22a22fa22f/fscons-tero-midgard2-architecture.JPG"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-7c80ad50a42711dd815cb7116bc3b752b752/fscons-tero-midgard2-architecture-tm.jpg" height="275" width="400" border="1" hspace="4" vspace="4" alt="Tero in FSCONS: Midgard 2 architecture" title="Tero in FSCONS: Midgard 2 architecture" /></a>
</p>

<p>
Peer-to-peer replication we demonstrated in <a href="http://fscons.org/events/?action=event&amp;id=96">Ville Sundell's XMPP workshop</a> where we <a href="http://teroheikkinen.iki.fi/blog/view/how_midgard_2_talks_between_between_machines.html">built a Python replication daemon</a> monitoring for database changes via D-Bus and transmitting them via Jabber to other Midgard boxes. Quite promising! But still many things need to be written before we are in the "your data everywhere" utopia...
</p>

<p>
<strong>Oh, and for those wondering:</strong> Midgard2 is very much <a href="http://www.gnome.org/">GNOME</a> software, running on top of GLib, libgda, D-Bus and so forth.
</p>
]]></content>
        <summary type="html"><![CDATA[

<p>
Last weekend <a href="http://bergie.iki.fi/blog/learn_more_about_midgard_in_fscons/">we went</a> to the <a href="http://fscons.org/">Free Society Conference and Nordic Summit</a> in Gothenburg to talk a bit about the new direction <a href="http://bergie.iki.fi/blog/midgard_2-more_than_just_php-more_than_just_cms/">Midgard has been taking</a>: making it a general replicated persistent storage library for multiple programming languages. The <a href="http://www.midgard-project.org/midgard/8.09/">CMS itself</a> is <a href="http://bergie.iki.fi/blog/some_plans_for_midcom_3/">just an application</a> using the library.
</p>

<p>
The basic idea is that <a href="http://www.guardian.co.uk/technology/2008/sep/29/cloud.computing.richard.stallman">the cloud is a trap</a> that will move your data, and your applications beyond your control to proprietary data servers and web applications run by multinational corporations. If free software <a href="http://itmanagement.earthweb.com/osrc/article.php/3760206/Free+and+Open+Source+Software+vs.+Cloud+Computing.htm">doesn't provide</a> a compelling answer to that, we <a href="http://blogs.eweek.com/brooks/content/open_vs_closed_in_the_cloud.html">risk irrelevance</a>.
</p>

<p>
A replicated, peer-to-peer system of synchronizing and sharing your data could be the answer. And <a href="http://blogs.nemein.com/people/piotras/view/midgard2---flexibility-rocks.html">Midgard2 is a framework</a> providing just that. Bindings to different languages like PHP, Python and Mono, interprocess communications via D-Bus and XMPP, replication, and ability to run the same software from <a href="http://www.cmswatch.com/Trends/163-Midgard-in-Action">big server clusters</a> to <a href="http://bergie.iki.fi/blog/maemo_and_midgard_go_well_together/">Nokia internet tablets</a> should all help us get there.
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-72074370a42711dd990a4f718f22a22fa22f/fscons-bergie-midgard2-mobility.JPG"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-73c7e49ea42711dd9146d3af31a1c875c875/fscons-bergie-midgard2-mobility-tm.jpg" height="247" width="400" border="1" hspace="4" vspace="4" alt="Bergie in FSCONS: Midgard tackling the mobility challenge" title="Bergie in FSCONS: Midgard tackling the mobility challenge" /></a>
</p>

<p>
In the conference we focused on <a href="http://www.slideshare.net/bergie/midgard-2-the-cloud-you-can-control-presentation/">outlining the big vision</a>, and then <a href="http://teroheikkinen.iki.fi/blog/view/midgard_workshop_at_fscons.html">ran a workshop</a> where we showed some practical aspects of this. We <a href="http://teroheikkinen.iki.fi/blog/view/some_documentation_about_installing_midgard_2.html">set up Midgard2</a>, and built a web application that allowed user to input a RSS feed address. This was stored to the database via midgard-php. Then a midgard-python process got notified about this <a href="http://bergie.iki.fi/blog/interprocess_communications_in_midgard-d-bus_comes_to_the_web/">via D-Bus</a>, fetched the items and stored them to the database. The web front-end then displayed the articles. A clean example of interprocess communications.
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-7c0748fca42711dd990a4f718f22a22fa22f/fscons-tero-midgard2-architecture.JPG"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-7c80ad50a42711dd815cb7116bc3b752b752/fscons-tero-midgard2-architecture-tm.jpg" height="275" width="400" border="1" hspace="4" vspace="4" alt="Tero in FSCONS: Midgard 2 architecture" title="Tero in FSCONS: Midgard 2 architecture" /></a>
</p>

<p>
Peer-to-peer replication we demonstrated in <a href="http://fscons.org/events/?action=event&amp;id=96">Ville Sundell's XMPP workshop</a> where we <a href="http://teroheikkinen.iki.fi/blog/view/how_midgard_2_talks_between_between_machines.html">built a Python replication daemon</a> monitoring for database changes via D-Bus and transmitting them via Jabber to other Midgard boxes. Quite promising! But still many things need to be written before we are in the "your data everywhere" utopia...
</p>

<p>
<strong>Oh, and for those wondering:</strong> Midgard2 is very much <a href="http://www.gnome.org/">GNOME</a> software, running on top of GLib, libgda, D-Bus and so forth.
</p>
]]></summary>
    </entry>
    <entry>
        <title>Real-world example of a free software project handover</title>
        <link rel="alternate" type="text/html" href="http://nemein.com/fi/news/real-world_example_of_a_free_software_project_handover.html"/>
        <published>2008-10-25T16:14:12+00:00</published>
        <updated>2008-10-25T16:14:12+00:00</updated>
        <id>http://nemein.com/fi/midcom-permalink-43fe9b98a2b211ddb6e099be106033323332</id>
        <author>
            <name>henri.bergius@iki.fi (Henri Bergius)</name>
        </author>
        <category  term="feed:d697c44bd2cdceb1c72d08693bb1639e" />
        <content type="html"><![CDATA[

<p>
I wrote earlier how a <a href="http://en.wikipedia.org/wiki/Free_software">free software</a> project <a href="http://bergie.iki.fi/blog/free_software_at_work-openpsa2_is_making_a_return/">never stops as long as there are people interested</a> in it. Looking at <a href="http://www.ohloh.net/projects/midgard">Midgard's Ohloh analysis</a>, I found a nice example:
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-f47180cea2af11dd852d4d6119caec9dec9d/ohloh-midcom-torben-bergie-handover.png"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-f584398ea2af11dd8376b7642a260b5e0b5e/ohloh-midcom-torben-bergie-handover-tm.jpg" height="84" width="400" border="1" hspace="4" vspace="4" alt="Ohloh: MidCOM handover from Torben" title="Ohloh: MidCOM handover from Torben" /></a>
</p>

<p>
Can you see a change when former <a href="http://www.midgard-project.org/documentation/midcom/">MidCOM</a> lead developer Torben <a href="http://www.midgard-project.org/updates/withdraw-from-midcom/">withdrew from the project</a>?
</p>
]]></content>
        <summary type="html"><![CDATA[

<p>
I wrote earlier how a <a href="http://en.wikipedia.org/wiki/Free_software">free software</a> project <a href="http://bergie.iki.fi/blog/free_software_at_work-openpsa2_is_making_a_return/">never stops as long as there are people interested</a> in it. Looking at <a href="http://www.ohloh.net/projects/midgard">Midgard's Ohloh analysis</a>, I found a nice example:
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-f47180cea2af11dd852d4d6119caec9dec9d/ohloh-midcom-torben-bergie-handover.png"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-f584398ea2af11dd8376b7642a260b5e0b5e/ohloh-midcom-torben-bergie-handover-tm.jpg" height="84" width="400" border="1" hspace="4" vspace="4" alt="Ohloh: MidCOM handover from Torben" title="Ohloh: MidCOM handover from Torben" /></a>
</p>

<p>
Can you see a change when former <a href="http://www.midgard-project.org/documentation/midcom/">MidCOM</a> lead developer Torben <a href="http://www.midgard-project.org/updates/withdraw-from-midcom/">withdrew from the project</a>?
</p>
]]></summary>
    </entry>
</feed>
