<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>News</title>
<link>http://www.openpsa.org</link>
<description>OpenPSA project news</description>
<generator>Midgard Components Framework - net.nemein.rss</generator>
<item>
<title>Where will desktop applications and web services meet?</title>
<description><![CDATA[<a href="http://bergie.iki.fi/blog/"><img src="http://bergie.iki.fi/attachment/1c9911cd91578c9791796c44fea32890/942e3250e9975761a5123a5f8bbc58f3/bergie-hackergotchi.png" align="right" border="0" alt="Henri Bergius" /></a>
<p>
<a href="http://www.midgard-project.org/">Midgard</a> follows <a href="http://www.ubuntu.com/">Ubuntu's</a> <a href="http://bergie.iki.fi/blog/midgard_and_synchronized_releases.html">synchronized release schedule</a>, and <a href="http://download.opensuse.org/repositories/home:/midgardproject:/ragnaroek/xUbuntu_8.04/">releases packages</a> for that platform, but otherwise we have little to do with the distribution. Still, I found the following in <a href="https://lists.ubuntu.com/archives/ubuntu-devel-announce/2008-September/000481.html">Mark Shuttleworth's Jaunty Jackalope announcement</a> interesting:
</p>

<blockquote>
Another goal is the the blurring of web services and desktop applications. "Is it a deer? Is it a bunny? Or is it a weblication - a desktop application that seamlessly integrates the web!" This hare has legs - and horns - and we'll be exploring it in much more detail for Jaunty.
</blockquote>

<p>
This echos quite well with our plans to take Midgard <a href="http://bergie.iki.fi/blog/midgard_2-more_than_just_php-more_than_just_cms.html">much further than just the web</a>. As <a href="http://ecanuto.blogspot.com/">Everaldo</a> often reminds me, Midgard may soon become very interesting to developers of desktop and mobile applications. What we provide to them is:
</p>

<ul><li>A simple <a href="http://bergie.iki.fi/blog/introduction_to_midgards_database_abstraction_system.html">object-oriented persistent storage library</a></li>
<li>Bindings for <a href="http://www.midgard-project.org/documentation/python_midgard/">Python</a> and <a href="http://trac.midgard-project.org/browser/trunk/midgard/apis/mono">Mono</a> in addition to <a href="http://www.midgard-project.org/api-docs/midgard/core/2.0/">the C library</a></li>
<li>Ability to use either SQLite or a "proper database" thanks to <a href="http://www.gnome-db.org/">libgda</a></li>
<li><a href="http://www.midgard-project.org/development/mrfc/view/0030.html">Replication</a> capability, with <a href="http://bergie.iki.fi/blog/xmpp_publish-subscribe_for_midgard_and_ajatus_replication.html">XMPP support</a> on its way</li>
<li><a href="http://bergie.iki.fi/blog/interprocess_communications_in_midgard-d-bus_comes_to_the_web.html">D-Bus signals</a> for inter-process notifications of I/O events</li>
</ul>

<p>
And on top of all this, Midgard comes with a <a href="http://bergie.iki.fi/blog/some_thoughts_on_green_programming-php-midgard_and_simplicity.html">pretty efficient</a> <a href="http://bergie.iki.fi/blog/midcom_3_at_a_glance.html">MVC framework for PHP</a>. This means that the desktop applications can be coupled with <a href="http://www.slideshare.net/bergie/manage-your-personal-information-space-with-midgard/">a nice social web service</a>, all built using same storage and replication mechanisms. Replicated, peer-to-peer applications could be a <a href="http://itmanagement.earthweb.com/osrc/article.php/3760206/Free+and+Open+Source+Software+vs.+Cloud+Computing.htm">free software answer</a> to the risk of cloud <a href="http://www.itbusinessedge.com/blogs/top/?p=282">taking control of your data</a>.
</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/bergie?a=6QBjL"><img src="http://feeds.feedburner.com/~f/bergie?i=6QBjL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=YtsjL"><img src="http://feeds.feedburner.com/~f/bergie?i=YtsjL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=lgVMl"><img src="http://feeds.feedburner.com/~f/bergie?i=lgVMl" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=3h5Sl"><img src="http://feeds.feedburner.com/~f/bergie?i=3h5Sl" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bergie/~4/388054100" height="1" width="1"/>]]></description>
<link>http://feeds.feedburner.com/~r/bergie/~3/388054100/midcom-permalink-b48e463e7eb711dd9b8c735f0c6c25d925d9</link>
<guid isPermaLink="true">http://bergie.iki.fi/midcom-permalink-b48e463e7eb711dd9b8c735f0c6c25d925d9</guid>
<pubDate>Wed, 10 Sep 2008 00:38:56 +0300</pubDate>
<author>webmaster@bergie.iki.fi ()</author>
<source url="http://bergie.iki.fi/blog/rss.xml?de_linkm_newsticker_filter[category]=OpenPSA">Henri Bergius</source>
<category>Henri Bergius</category>
</item>
<item>
<title>Ragnaroek is coming</title>
<description><![CDATA[<a href="http://bergie.iki.fi/blog/"><img src="http://bergie.iki.fi/attachment/1c9911cd91578c9791796c44fea32890/942e3250e9975761a5123a5f8bbc58f3/bergie-hackergotchi.png" align="right" border="0" alt="Henri Bergius" /></a>
<p>
With <a href="http://www.midgard-project.org/updates/view/1220897153.html">beta2 out today</a>, the new Midgard 8.09, or "Ragnaroek LTS" is finally coming. <a href="http://www.midgard-project.org/updates/view/php4_end-of-life_and_midgard.html">PHP4 has been dropped</a>, many <a href="http://www.midgard-project.org/discussion/developer-forum/for_a_more_efficient_midcom_2-9/">optimizations made</a>, and now that <a href="http://www.kaktus.cc/weblog/view/1220703023/">Prototype has been dropped</a> in favor of jQuery, I think we will finally be able to live with it as the <a href="http://www.midgard-project.org/discussion/developer-forum/what_do_you_expect_from_the_lts_version/">Long Term Support</a> release.
</p>

<p>
But before <a href="http://www.midgard-project.org/download/8-9.html">Ragnaroek</a> is stable a lot of testing has to happen, as should polishing here and there. <a href="http://blogs.nemein.com/people/piotras/">Piotras</a> is fixing the <a href="http://bergie.iki.fi/blog/site_creation_wizard_runs.html">site wizard</a>, and I've been adding more information about the installed components.
</p>

<p>
Unlike <a href="http://ez.no/ezcomponents">eZComponents</a> which are just libraries, <a href="http://www.midgard-project.org/documentation/midcom-component-development/">components in Midgard</a> are the building blocks of a website. Each of them is its own PHP application that the <a href="http://www.midgard-project.org/documentation/midcom">MidCOM MVC framework</a> runs when a folder associated with that component is accessed. They all supply their own templates, localizations, and load whatever libraries needed. 
</p>

<p>
Currently we have some 120 components in <a href="http://trac.midgard-project.org/browser/trunk/midcom">the MidCOM repository</a>, and most of them have releases on the <a href="http://pear.midcom-project.org/">PEAR channel</a>. The components range from simple things like a news listing to very specific applications like event registration or invoice processing.
</p>

<p>
One way to make components more visual was to add icons for them. MidCOM has had support for component icons for a while now, but they haven't really been used anywhere. So I made them used more widely:
</p>

<p>
Icons clarify component selection when creating a new folder:
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-d16ba6aa7de211ddb2964516d27a44944494/ragnaroek-midcom-icons-component-selector.png"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-d2b1e0107de211dd9091f96aded6c806c806/ragnaroek-midcom-icons-component-selector-tm.jpg" height="220" width="400" border="1" hspace="4" vspace="4" alt="MidCOM icons in component selector" title="MidCOM icons in component selector" /></a>
</p>

<p>
Icons visualize how many components a developer has contributed to:
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-cfa016e47de211dd88ffd383fec03ce63ce6/ragnaroek-midcom-icons-credits.png"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-d05f45aa7de211ddbf47f7f275e79ffa9ffa/ragnaroek-midcom-icons-credits-tm.jpg" height="221" width="400" border="1" hspace="4" vspace="4" alt="MidCOM icons in Ragnaroek credits screen" title="MidCOM icons in Ragnaroek credits screen" /></a>
</p>

<p>
...and icons also make the localization tool more visual:
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-c41750b27de211dda44301c1d8f6adddaddd/ragnaroek-midcom-icons-babel.png"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-cadfaeee7de211ddb2964516d27a44944494/ragnaroek-midcom-icons-babel-tm.jpg" height="192" width="398" border="1" hspace="4" vspace="4" alt="MidCOM icons in the Babel translation tool" title="MidCOM icons in the Babel translation tool" /></a>
</p>

<p>
Finding good icons for many of the components is quite difficult. We're working with <a href="http://kallepersson.se/blog/">Kalle Persson</a> from the <a href="http://tango.freedesktop.org/Tango_Desktop_Project">Tango project</a> to create new ones as needed.
</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/bergie?a=EBbML"><img src="http://feeds.feedburner.com/~f/bergie?i=EBbML" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=W7zaL"><img src="http://feeds.feedburner.com/~f/bergie?i=W7zaL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=vmnxl"><img src="http://feeds.feedburner.com/~f/bergie?i=vmnxl" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=EWDfl"><img src="http://feeds.feedburner.com/~f/bergie?i=EWDfl" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bergie/~4/386982655" height="1" width="1"/>]]></description>
<link>http://feeds.feedburner.com/~r/bergie/~3/386982655/midcom-permalink-d422a4167de211ddba5e0d02d8091d0b1d0b</link>
<guid isPermaLink="true">http://bergie.iki.fi/midcom-permalink-d422a4167de211ddba5e0d02d8091d0b1d0b</guid>
<pubDate>Mon, 08 Sep 2008 23:15:06 +0300</pubDate>
<author>webmaster@bergie.iki.fi ()</author>
<source url="http://bergie.iki.fi/blog/rss.xml?de_linkm_newsticker_filter[category]=OpenPSA">Henri Bergius</source>
<category>Henri Bergius</category>
</item>
<item>
<title>Freedom Fry on GNU's 25th anniversary</title>
<description><![CDATA[<a href="http://bergie.iki.fi/blog/"><img src="http://bergie.iki.fi/attachment/1c9911cd91578c9791796c44fea32890/942e3250e9975761a5123a5f8bbc58f3/bergie-hackergotchi.png" align="right" border="0" alt="Henri Bergius" /></a>
<p>
The <a href="http://www.fsf.org/">Free Software Foundation's</a> GNU project <a href="http://www.fsf.org/news/freedom-fry/">turned 25 last week</a>, and the English humorist <a href="http://www.gnu.org/fry/">Stephen Fry made a video</a> to commemorate it:
</p>

<p>
<img src="http://bergie.iki.fi/midcom-serveattachmentguid-0e732ce87cfe11dd9a59a57a77692ad52ad5/freedom-fry.jpg" height="352" width="400" border="1" hspace="4" vspace="4" alt="Stephen Fry on 25 years of Free Software" title="Stephen Fry on 25 years of Free Software" /></p>

<p>
<a href="http://mako.cc/">Benjamin Mako Hill</a> posted some thoughts on how <a href="http://mako.cc/copyrighteous/20080906-00">the first generation of free software developers</a> has grown:
</p>

<blockquote>
Certainly, GNU has matured and accomplished wonderful things in last quarter-century. More importantly perhaps, it's produced wonderful progeny. It has spawned hundreds of thousands of free software projects, thousands of free or nearly-free operating systems, and an unbelievably vibrant global free and open source software community. Beyond the software realm, the free culture movement, most free licensing projects, and much of the access to knowledge movement can trace a connection back to GNU. We are living, and building, a new generation of the free software movement.
</blockquote>

<p>
As computers are becoming more and more ubiquitous, and affect more and more every aspect of our lives, <a href="http://www.fsfeurope.org/documents/freesoftware.en.html">software freedom</a> becomes a strong necessity. I personally have been <a href="http://www.ohloh.net/accounts/bergie">involved</a> with free software since late 90s. It gives me the <a href="http://www.debian.org/">operating system</a> for our servers, our <a href="http://www.php.net/">programming language</a>, and <a href="http://www.midgard-project.org/">our toolkit</a>. It also gives me an <a href="http://www.midgard-project.org/community/whoswho">amazing</a> <a href="http://www.fsfe.org/en/fellows">community</a> to work and share ideas with. It is hard to imagine working in a world without them.
</p>

<p>
To support free software, write <a href="http://github.com/">some code</a>, use a <a href="http://www.ubuntu.com/">free operating system</a>, <a href="http://www.fsfe.org/">join the Fellowship</a>, and celebrate <a href="http://softwarefreedomday.org/">the Software Freedom Day</a> on September 20th!
</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/bergie?a=0VMgL"><img src="http://feeds.feedburner.com/~f/bergie?i=0VMgL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=aSOwL"><img src="http://feeds.feedburner.com/~f/bergie?i=aSOwL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=UIrsl"><img src="http://feeds.feedburner.com/~f/bergie?i=UIrsl" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=sLbol"><img src="http://feeds.feedburner.com/~f/bergie?i=sLbol" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bergie/~4/385918870" height="1" width="1"/>]]></description>
<link>http://feeds.feedburner.com/~r/bergie/~3/385918870/midcom-permalink-1137817c7cfe11dd936cdfa109b68c938c93</link>
<guid isPermaLink="true">http://bergie.iki.fi/midcom-permalink-1137817c7cfe11dd936cdfa109b68c938c93</guid>
<pubDate>Sun, 07 Sep 2008 19:57:34 +0300</pubDate>
<author>webmaster@bergie.iki.fi ()</author>
<source url="http://bergie.iki.fi/blog/rss.xml?de_linkm_newsticker_filter[category]=OpenPSA">Henri Bergius</source>
<category>Henri Bergius</category>
</item>
<item>
<title>MidCOM 3 and context injectors</title>
<description><![CDATA[<a href="http://bergie.iki.fi/blog/"><img src="http://bergie.iki.fi/attachment/1c9911cd91578c9791796c44fea32890/942e3250e9975761a5123a5f8bbc58f3/bergie-hackergotchi.png" align="right" border="0" alt="Henri Bergius" /></a>
<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-6d7a06d478fe11dd91c201bb3cfc84878487/context-aware-life-coaching.jpg"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-71401cf478fe11dd9f2e016560e4630b630b/context-aware-life-coaching-tm.jpg" height="254" width="200" border="1" align="right" hspace="8" vspace="4" alt="Context-aware life coaching ad" title="Context-aware life coaching ad" /></a>
<br />I know, according to <a href="http://bergie.iki.fi/blog/midgard_and_synchronized_releases.html">roadmap</a> we all should be now focusing in hammering out bugs in <a href="http://www.midgard-project.org/updates/view/1219823947.html">Midgard 8.09</a>, or as we call it, "<em>Ragnaroek</em>" instead of working on <a href="http://github.com/bergie/midcom">MidCOM 3</a>. But <a href="http://teroheikkinen.iki.fi/">Tero</a> had <a href="http://tepheikk.jaiku.com/presence/43534559">a specific problem</a> he needed to solve, and I wanted to ensure it was done right. And so I <a href="http://github.com/bergie/midcom/commit/1b590f1d9ad9e14dba69bdbe0628cc116935b2d7">ended up adding</a> support for <em>context injectors</em> into MidCOM 3.
<br /><span style="font-size:14pt;"><strong>
<br />What about contexts anyway?
<br /></strong></span>
</p>

<p>
<a href="http://www.midgard-project.org/api-docs/midcom/3.0/midcom_core/midcom_core_helpers_context.html">Context in MidCOM</a> is an object that contains all useful information related to the request at hand: arguments, URL, templating information. And the plan is to make it <a href="http://worrydream.com/MagicInk/#inferring_context_from_the_environment">much more</a>.
</p>

<p>
Context is the main way for controllers to find out about their environment, and for the templating system to decide which views to run and how. As we want to make the new MidCOM <a href="http://bergie.iki.fi/blog/some_thoughts_on_green_programming-php-midgard_and_simplicity.html">lean and efficient</a>, we did not want to stick everything possible into the context. But in order to solve problems developers will need more stuff there. And so the idea of context injectors was born.
</p>

<p>
Context injectors are <a href="http://www.midgard-project.org/discussion/developer-forum/some_midcom3_api_changes_to_come/">a new API</a> components can use to add or modify information in the current context. The injectors will be run in two places:
</p>

<ul><li><strong>Process injectors</strong> will be called before dispatcher loads the component and calls the controller</li>
<li><strong>Template injectors</strong> will be called after controller has finished and before a template is collected and displayed</li>
</ul>

<p>
There are many things you can do there. Some immediate use cases are:
</p>

<ul><li><strong><a href="http://bergie.iki.fi/blog/the-midgard-position.html">Geopositioning injector</a></strong> could add user's <a href="http://google-code-updates.blogspot.com/2008/08/two-new-ways-to-location-enable-your.html">current location</a> to the context so that a controller can fetch nearby data</li>
<li><strong>Theming injector</strong> could switch the template entry point (in old Midgard term's the <a href="http://www.midgard-project.org/documentation/concepts-page_and_style/">ROOT element</a>) according to user's wishes</li>
<li><strong>Mobile optimization injector</strong> could also switch the template entry point if user is accessing the site with an <a href="http://www.apple.com/iphone/">iPhone</a> or <a href="http://www.openmoko.com/product.html">OpenMoko</a></li>
</ul>

<p>
<span style="font-size:14pt;"><strong>
<br />Using context injectors
<br /></strong></span>
</p>

<p>
The way this works is relatively simple. To create an injector, you <a href="http://www.midgard-project.org/documentation/midcom-component-development/">create a component</a> and create an <em>injector class</em> to it. Depending which injector you want to provide, you either implement a <em>inject_process</em> or <em>inject_template</em> public method there. The method will have full access to the current context (in <em>$_MIDCOM-&gt;context</em>) and can add or change things there. The just declare that you have the class in the component's manifest by adding a key <em>process_injector</em> or <em>template_injector</em> with value being the class name.
</p>

<p>
MidCOM will take care of <a href="http://www.midgard-project.org/api-docs/midcom/3.0/midcom_core/midcom_core_component_loader.html">loading the component</a> in question in the right time, and of calling the injector method. This will all happen automatically once the component is installed.
</p>

<p>
If your controller or template uses context information that is not part of the default context data, then make sure to first check that the data is available via an <a href="http://tr2.php.net/isset">isset()</a>. This way your component will be able to work around missing context information if applicable to your scenario, or throw an error.
</p>

<p>
<em>Written outside in the </em><em><a href="http://plazes.com/plazes/153563_platonik">Platonik</a></em><em> waterpipe cafe in </em><em><a href="http://en.wikipedia.org/wiki/Besiktas">Beşiktaş</a></em><em>, Istanbul, while </em><em><a href="http://en.wikipedia.org/wiki/Vitis_vinifera">vine leaves</a></em><em> above keep the air cool enough for working. The picture is from </em><em><a href="http://www.fredshouse.net/2006/04/contextaware_life_coaching_ser.html">the Freds House blog</a></em><em>.</em>
</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/bergie?a=0Z1qWL"><img src="http://feeds.feedburner.com/~f/bergie?i=0Z1qWL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=fEjgLL"><img src="http://feeds.feedburner.com/~f/bergie?i=fEjgLL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=0Kwjol"><img src="http://feeds.feedburner.com/~f/bergie?i=0Kwjol" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=Hp3dMl"><img src="http://feeds.feedburner.com/~f/bergie?i=Hp3dMl" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bergie/~4/381425458" height="1" width="1"/>]]></description>
<link>http://feeds.feedburner.com/~r/bergie/~3/381425458/midcom-permalink-7468a44678fe11dda5853d02f2b36ea26ea2</link>
<guid isPermaLink="true">http://bergie.iki.fi/midcom-permalink-7468a44678fe11dda5853d02f2b36ea26ea2</guid>
<pubDate>Tue, 02 Sep 2008 17:50:16 +0300</pubDate>
<author>webmaster@bergie.iki.fi ()</author>
<source url="http://bergie.iki.fi/blog/rss.xml?de_linkm_newsticker_filter[category]=OpenPSA">Henri Bergius</source>
<category>Henri Bergius</category>
</item>
<item>
<title>Knol: a unit of knowledge</title>
<description><![CDATA[<a href="http://bergie.iki.fi/blog/"><img src="http://bergie.iki.fi/attachment/1c9911cd91578c9791796c44fea32890/942e3250e9975761a5123a5f8bbc58f3/bergie-hackergotchi.png" align="right" border="0" alt="Henri Bergius" /></a>
<p>
Google's <a href="http://www.readwriteweb.com/archives/knol_google_takes_on_wikipedia.php">Wikipedia competitor</a> <a href="http://en.wikipedia.org/wiki/Knol">Knol</a> <a href="http://www.yugatech.com/blog/gooooogle/knol-launched-day-one-spammin-jammin/">launched</a> a while back. It seeks to make writing informative entries more appealing to authors by offering a <a href="http://googleblog.blogspot.com/2007/12/encouraging-people-to-contribute.html">cut of advertisement revenue</a> from the Knol pages. This <a href="http://www.calacanis.com/2006/10/28/wikipedia-leaves-100m-on-the-table-or-please-jimbo-reconsider/">can be a substantial thing</a> as calculations say if Wikipedia had ads the revenue from them would be <a href="http://www.watchmojo.com/web/blog/?p=626">42 million USD per year</a>.
</p>

<p>
Having read Neal Stephenson's <a href="http://en.wikipedia.org/wiki/Snow_Crash">Snow Crash</a> where the <a href="http://en.wikipedia.org/wiki/Snow_Crash#Important_characters">lead character Hiro</a>, a <a href="http://bergie.iki.fi/blog/category/haidonggumdo/">fellow swordfighter</a> and free hacker is making his living by collecting intel to upload onto the <a href="http://en.wikipedia.org/wiki/Snow_Crash#Influence_on_the_World_Wide_Web">CIC library</a>, the concept had some appeal. To test it, I created some pages:
</p>

<blockquote>
<strong><a href="http://knol.google.com/k/henri-bergius/workstreaming/205l6w1dyeyf0/2">Workstreaming</a></strong>
<br />Workstreaming means collecting activities of geographically dispersed team members into a consistent news feed, enabling managers to track process and colleagues to stay up-to-date with the day-by-day happenings.
<br /><br /><strong><a href="http://knol.google.com/k/henri-bergius/developing-p2p-business-applications/205l6w1dyeyf0/3">Developing P2P business applications</a></strong>
<br />Moving business applications to the web has solved many issues like easier deployment and backups, but at same time introduced a single point of failure in the infrastructure. A group of open source frameworks seeks to solve the issue by helping developers to migrate their applications into resilient and scalable peer-to-peer networks.
<br /><br /><strong><a href="http://knol.google.com/k/henri-bergius/haedong-kumdo/205l6w1dyeyf0/4">Haedong Kumdo</a></strong>
<br />Haedong Kumdo is a modern martial art based on ancient Korean sword techniques.
</blockquote>

<p>
This should not detract from my open content activities, as the <a href="http://knol.google.com/k/knol">Knol</a> pages are also <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons-licensed</a>.
</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/bergie?a=uXIubK"><img src="http://feeds.feedburner.com/~f/bergie?i=uXIubK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=YSYDuK"><img src="http://feeds.feedburner.com/~f/bergie?i=YSYDuK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=bStuCk"><img src="http://feeds.feedburner.com/~f/bergie?i=bStuCk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=AFTyzk"><img src="http://feeds.feedburner.com/~f/bergie?i=AFTyzk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bergie/~4/378092827" height="1" width="1"/>]]></description>
<link>http://feeds.feedburner.com/~r/bergie/~3/378092827/midcom-permalink-f8536dee75d011dd9b71b57a3101f8fff8ff</link>
<guid isPermaLink="true">http://bergie.iki.fi/midcom-permalink-f8536dee75d011dd9b71b57a3101f8fff8ff</guid>
<pubDate>Fri, 29 Aug 2008 16:47:07 +0300</pubDate>
<author>webmaster@bergie.iki.fi ()</author>
<source url="http://bergie.iki.fi/blog/rss.xml?de_linkm_newsticker_filter[category]=OpenPSA">Henri Bergius</source>
<category>Henri Bergius</category>
</item>
<item>
<title>Some thoughts on green programming, PHP, Midgard and simplicity</title>
<description><![CDATA[<a href="http://bergie.iki.fi/blog/"><img src="http://bergie.iki.fi/attachment/1c9911cd91578c9791796c44fea32890/942e3250e9975761a5123a5f8bbc58f3/bergie-hackergotchi.png" align="right" border="0" alt="Henri Bergius" /></a>
<p>
<a href="http://en.wikipedia.org/wiki/Rasmus_Lerdorf">Rasmus Lerdorf's</a> excellent talk on <a href="http://talks.php.net/show/froscon08/">PHP and simplicity</a> in FrOSCon introduced me to concept of green programming. To quote the <a href="http://greenprogrammer.blogspot.com/2006/01/what-is-green-programming.html">Green Programming blog</a>:
</p>

<blockquote>
Just like we should aspire to use renewable energy sources to help the health of the planet, we should also use reusable software elements to create robust, healthy code for our customers. Eco-friendly practices might be thought of as applicable to software devlopment. Just as we are concerned with the various biota and climate of the planet, we should be concerned with the over-all health of the software eco-system.
</blockquote>

<p>
How does <a href="http://www.midgard-project.org/">Midgard</a> sit in with these ideas? Well, the current version of it does not. <a href="http://www.midgard-project.org/documentation/midcom">MidCOM 2</a> is a heavy, enterprise-oriented CMS framework that requires big machines, or even clusters to run.
</p>

<p>
But things are quite different in <a href="http://bergie.iki.fi/blog/midgard_2-more_than_just_php-more_than_just_cms.html">Midgard 2 land</a>. We have <a href="http://bergie.iki.fi/blog/some_plans_for_midcom_3.html">rewritten the MidCOM framework</a> from scratch, removing the need to have abstractions on top of abstractions to support the shift from <a href="http://www.midgard-project.org/documentation/reference/#9f42c2021f0b0efedacd0ae9d6801c5c">classic Midgard APIs</a> to the <a href="http://www.midgard-project.org/documentation/reference/#3855e6325f5459c1d4f3b9863bc7debe">new ones</a>, and from PHP4 to <a href="http://tr2.php.net/zend-engine-2.php">more object-oriented PHP versions</a>. We have also focused on simplicity and adaptability, to make MidCOM an easier environment <a href="http://bergie.iki.fi/blog/midcom_3_at_a_glance.html">to work with</a> for site developers.
</p>

<p>
While MidCOM3 is not due to be out before next March, <a href="http://teroheikkinen.iki.fi/">Tero Heikkinen</a>, an early adopter has been building some production sites with it already. And his experiences state that not only the performance is much better, but also it requires much less work from programmers.
</p>

<p>
I know <a href="http://www.sitepoint.com/blogs/2008/08/29/rasmus-lerdorf-php-frameworks-think-again/">Rasmus' argument is that frameworks are evil</a> by requiring developers to adopt to their own concepts, and by introducing unnecessary overhead. But we should look beyond mere server-level productivity, and take programmer productivity into account. A framework makes things much easier for agile teams, enabling people with different competences to work in their isolated environments. Programmers can work on the code, and designers on <a href="http://phptal.motion-twin.com/">the templates</a> for instance.
</p>

<p>
While this makes the actual development and deployment process more efficient, how much performance is lost due to the framework?
<br /><span style="font-size:14pt;"><strong>
<br />Lies, damn lies and benchmarks
<br /></strong></span>
</p>

<p>
Like Rasmus, I used an <a href="http://pecl.php.net/package/APC">APC-cached</a> simple PHP "<em>hello world</em>" file as the baseline for my benchmarks. On my <a href="http://www.marco.org/277">dog slow MacBook Air</a>, the simple PHP file was able to serve <strong>32.91</strong> requests per second.
</p>

<p>
MidCOM3, when run on <a href="http://www.midgard-project.org/updates/view/1219823947.html">Midgard 8.09</a> with APC and <a href="http://www.danga.com/memcached/">memcached</a> was able to serve <strong>8.90</strong> request per second, or in other words performed at 27% of the plain PHP file. Not too good, but considered that much SQL is run to <a href="http://www.midgard-project.org/documentation/concepts-host_and_page/">serve a Midgard page</a>, there are good explanations at this.
</p>

<p>
But compared to <a href="http://drupal.org/">Drupal</a>, which I did not install but instead calculated <a href="http://talks.php.net/show/froscon08/32">the performance</a> based on the difference between my baseline (32.91 r/s) and Rasmus' (611.78 r/s), MidCOM3 was doing quite fine. Drupal would only be serving about <strong>2.5</strong> requests per second on my box. <a href="http://framework.zend.com/">Zend Framework</a>, again calculated from <a href="http://talks.php.net/show/froscon08/29">Rasmus' data</a> would provide <strong>6.5</strong> request per second.
</p>

<p>
And this is not all. <a href="http://blogs.nemein.com/people/piotras/">Piotr Pokora</a> has done a stellar work with <a href="http://bergie.iki.fi/blog/midgard_2-more_than_just_php-more_than_just_cms.html">Midgard2</a>, which <a href="http://bergie.iki.fi/blog/midgard_and_synchronized_releases.html">will come out in spring</a> numbered 9.03. With it, MidCOM's numbers were quite a lot better: <strong>25.37</strong> requests per second, or 77% of the simple PHP file's performance. This is actually faster than the same simple PHP file on my box without APC (24.84 r/s).
</p>

<p>
I believe the MidCOM3 performance story does not end here. <a href="http://www.midgard-project.org/discussion/developer-forum/caching_midgard_requests/">Piotras has been doing experiments</a> with caching Midgard's initial request data to reduce database queries, and MidCOM3 still misses the <a href="http://www.midgard-project.org/documentation/concepts-midcom-specs-subsystems-cache/">extensive caching infrastructure</a> provided by MidCOM2. When these are in place, we may get pretty damn close to the plain PHP numbers.
</p>

<p>
So, with these numbers, I think we can say that Midgard2 will be quite a good framework for doing green programming while still retaining agile team efficiency.
</p>

<p>
<span style="font-size:14pt;"><strong>
<br />Towards a greener future</strong></span>
</p>

<p>
This matters quite a lot, as then Midgard can be run with much smaller virtual machines consuming much less electricity to serve interesting information-rich applications.
</p>

<p>
When Ragnaroek gets out in end of September we will start focusing our efforts to the new platform that already is showing so much promise. A brighter, greener, more efficient future lies ahead!
</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/bergie?a=GNdaHK"><img src="http://feeds.feedburner.com/~f/bergie?i=GNdaHK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=LiwFVK"><img src="http://feeds.feedburner.com/~f/bergie?i=LiwFVK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=TA7L2k"><img src="http://feeds.feedburner.com/~f/bergie?i=TA7L2k" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=QgSkyk"><img src="http://feeds.feedburner.com/~f/bergie?i=QgSkyk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bergie/~4/378013252" height="1" width="1"/>]]></description>
<link>http://feeds.feedburner.com/~r/bergie/~3/378013252/midcom-permalink-e80e368c75bf11ddbba457a6fb04df5cdf5c</link>
<guid isPermaLink="true">http://bergie.iki.fi/midcom-permalink-e80e368c75bf11ddbba457a6fb04df5cdf5c</guid>
<pubDate>Fri, 29 Aug 2008 14:44:58 +0300</pubDate>
<author>webmaster@bergie.iki.fi ()</author>
<source url="http://bergie.iki.fi/blog/rss.xml?de_linkm_newsticker_filter[category]=OpenPSA">Henri Bergius</source>
<category>Henri Bergius</category>
</item>
<item>
<title>Midgard to go Vala?</title>
<description><![CDATA[<a href="http://bergie.iki.fi/blog/"><img src="http://bergie.iki.fi/attachment/1c9911cd91578c9791796c44fea32890/942e3250e9975761a5123a5f8bbc58f3/bergie-hackergotchi.png" align="right" border="0" alt="Henri Bergius" /></a>
<p>
<img src="http://bergie.iki.fi/midcom-serveattachmentguid-60a2239e742911dd8af39301a5d7285f285f/midgard2-bubble.png" height="137" width="128" border="0" align="right" hspace="8" vspace="4" alt="Midgard 2" title="Midgard 2" /><br />Cross-posting <a href="http://boids.name/empty/articles/2008/08/27">this</a> to <a href="http://planet.gnome.org/">Planet GNOME</a>, as it is sure to be interesting to the community there, especially as <a href="http://www.midgard-project.org/">Midgard</a> is becoming <a href="http://bergie.iki.fi/blog/midgard_2-more_than_just_php-more_than_just_cms.html">much more than just CMS</a>:
</p>

<blockquote>
There is a project in works by me to rewrite Midgard’s core engine from plain C to <a href="http://live.gnome.org/Vala">Vala</a>. Midgard 8.09’s code is taking huge use of GObject infrastructure and Vala is so good in expressing GObjects that actual development is much much easier.
<br /><br />It is not surprising that the project itself will be code-named ‘Váli’. It will include both streamlining of Midgard core and use of SpiderMonkey java script language embedded engine (courtesy of Mozilla project) to allow server-side extension of the core. Some might see these changes as an attempt to bring more web developers to Midgard’s Core but as this will anyway happen after Ragnaroek, I think its pure target is to simplify work for remaining gods on a new world for mere humans.
</blockquote>

<p>
I think the <a href="http://www.midgard-project.org/community/events/midgard_gathering_2008.html">Midgard Gathering</a> in November shall be quite memorable, and not only because of the quantities of Polish vodka and sauna that will be present...
</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/bergie?a=7nUW6K"><img src="http://feeds.feedburner.com/~f/bergie?i=7nUW6K" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=itxiBK"><img src="http://feeds.feedburner.com/~f/bergie?i=itxiBK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=SdoKuk"><img src="http://feeds.feedburner.com/~f/bergie?i=SdoKuk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=5Zktlk"><img src="http://feeds.feedburner.com/~f/bergie?i=5Zktlk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bergie/~4/376107935" height="1" width="1"/>]]></description>
<link>http://feeds.feedburner.com/~r/bergie/~3/376107935/midcom-permalink-633e0410742911ddbc24a30bfc0072697269</link>
<guid isPermaLink="true">http://bergie.iki.fi/midcom-permalink-633e0410742911ddbc24a30bfc0072697269</guid>
<pubDate>Wed, 27 Aug 2008 14:14:59 +0300</pubDate>
<author>webmaster@bergie.iki.fi ()</author>
<source url="http://bergie.iki.fi/blog/rss.xml?de_linkm_newsticker_filter[category]=OpenPSA">Henri Bergius</source>
<category>Henri Bergius</category>
</item>
<item>
<title>Part-time Istanbullu</title>
<description><![CDATA[<a href="http://bergie.iki.fi/blog/"><img src="http://bergie.iki.fi/attachment/1c9911cd91578c9791796c44fea32890/942e3250e9975761a5123a5f8bbc58f3/bergie-hackergotchi.png" align="right" border="0" alt="Henri Bergius" /></a>
<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-412d06be737511ddb15dd308be3dc052c052/leanders_tower_by_night.JPG"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-4321c7fc737511dd96079fb9403f8b3f8b3f/leanders_tower_by_night-tm.jpg" height="130" width="396" border="1" hspace="4" vspace="4" alt="Leander's Tower by night" title="Leander's Tower by night" /></a>
</p>

<p>
A thousand years ago, <a href="http://en.wikipedia.org/wiki/Varangians#Varangian_Guard">men from my lands</a> traveled <a href="http://en.wikipedia.org/wiki/Istanbul">here</a> in search of opportunities and adventure. Now, due to intercontinental relationships and working permits, I follow their footsteps.
</p>

<p>
While Istanbul didn't score perfectly in <a href="http://bergie.iki.fi/blog/quality_of_life-helsinki_gets_good_score.html">Monocle's Quality of Life index</a>, I still find it a quite appealing place for a <a href="http://webworkerdaily.com/2006/09/04/going-bedouin/">web worker</a>. The lifestyle is more relaxed than in the north, WiFi-equipped cafes are everywhere, food is good, and the <a href="http://en.wikipedia.org/wiki/Sultanahmet">old city</a> and <a href="http://en.wikipedia.org/wiki/Bosporus">Bosporus</a> are absolutely beautiful.
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-2b87a904737511dd96079fb9403f8b3f8b3f/tophane_mosque_at_night.JPG"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-2def6bc8737511dd8f73eb1418da2fa02fa0/tophane_mosque_at_night-tm.jpg" height="250" width="400" border="1" hspace="4" vspace="4" alt="Tophane mosque at night" title="Tophane mosque at night" /></a>
</p>

<p>
<a href="http://webworkerdaily.com/2006/09/04/bedouins-are-everywhere/">Web working</a> while running <a href="http://nemein.com/">a consultancy</a> in Helsinki is not the easiest thing to do, but with some <a href="http://bergie.iki.fi/blog/scrum_in_management_of_a_small_software_consultancy.html">new processes</a>, and <a href="http://bergie.iki.fi/blog/ididwork-com-simple_workstreaming_solution.html">new tools</a> I think we may be able to cope. The main thing is to learn using <a href="http://en.wikipedia.org/wiki/Telepresence">telepresence</a> tools better than we do now. 
</p>

<p>
At least the <a href="http://webworkerdaily.com/2006/09/10/a-soloists-workflow/">web working</a> test run I did <a href="http://bergie.iki.fi/travels/london-united_kingdom/">in London</a> earlier this month felt very productive. Now the plan is to split my time between Helsinki and Istanbul, and of course the mandatory conference trips. This all will be challenging for regular project work, and so good web working tips will be appreciated!
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-6e3e16b6737511ddac53e1a7911ae038e038/bergie_webworking_in_miscafe.JPG"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-702f97ce737511dd9a233def452ef55bf55b/bergie_webworking_in_miscafe-tm.jpg" height="214" width="398" border="1" hspace="4" vspace="4" alt="Webworking in Miscafe, Besiktas" title="Webworking in Miscafe, Besiktas" /></a>
</p>

<p>
But in any case, my reasons for being in Istanbul go <a href="http://flickr.com/photos/bergie/2708683090/in/set-72157606406011464/">far beyond</a> mere working environment and productivity...
</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/bergie?a=3X6mHK"><img src="http://feeds.feedburner.com/~f/bergie?i=3X6mHK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=2snp9K"><img src="http://feeds.feedburner.com/~f/bergie?i=2snp9K" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=wVwU8k"><img src="http://feeds.feedburner.com/~f/bergie?i=wVwU8k" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=KCmCjk"><img src="http://feeds.feedburner.com/~f/bergie?i=KCmCjk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bergie/~4/375231181" height="1" width="1"/>]]></description>
<link>http://feeds.feedburner.com/~r/bergie/~3/375231181/midcom-permalink-725e1692737511dd96079fb9403f8b3f8b3f</link>
<guid isPermaLink="true">http://bergie.iki.fi/midcom-permalink-725e1692737511dd96079fb9403f8b3f8b3f</guid>
<pubDate>Tue, 26 Aug 2008 16:46:55 +0300</pubDate>
<author>webmaster@bergie.iki.fi ()</author>
<source url="http://bergie.iki.fi/blog/rss.xml?de_linkm_newsticker_filter[category]=OpenPSA">Henri Bergius</source>
<category>Henri Bergius</category>
</item>
<item>
<title>Some notes from FrOSCon 2008</title>
<description><![CDATA[<a href="http://bergie.iki.fi/blog/"><img src="http://bergie.iki.fi/attachment/1c9911cd91578c9791796c44fea32890/942e3250e9975761a5123a5f8bbc58f3/bergie-hackergotchi.png" align="right" border="0" alt="Henri Bergius" /></a>
<p>
I'm again in the <a href="http://www.froscon.org/">FrOSCon conference</a> in Sankt Augustin, having found the conference <a href="http://bergie.iki.fi/blog/speaking_in_froscon_php_room.html">last time</a> reasonably big, but relaxed. I will be giving my <a href="http://docs.google.com/Present?docid=dd4m6zsj_27f793rtgf">GeoClue talk</a> again <a href="http://programm.froscon.org/2008/day_2008-08-24.en.html">on Sunday</a> (16:30 in HS5).
</p>

<p>
<img src="http://bergie.iki.fi/midcom-serveattachmentguid-95bf4cf4711911ddbc4bc7fd4ea3a0d3a0d3/froscon-follow-the-white-frog.jpg" height="143" width="397" border="1" hspace="4" vspace="4" alt="FrOSCon: Follow the white frog" title="FrOSCon: Follow the white frog" /></p>

<p>
Here are some notes from the conference:
</p>

<ul><li><a href="http://wiki.php.net/todo/php53">PHP 5.3</a> is going to have alpha2 next week. <a href="http://blog.felho.hu/whats-new-in-php-53-part-1-namespaces.html">Namespaces</a> could be <a href="http://www.midgard-project.org/documentation/concepts-midcom-specs-architecture-namespacing/">nice in MidCOM</a>, but I wonder how well they will work with the autoloader</li>
<li><a href="http://www.turtle4privacy.org/new/">Turtle</a> is a "friend-to-friend" framework to provide secure P2P data sharing in a trust network. Could be interesting with <a href="http://bergie.iki.fi/blog/xmpp_publish-subscribe_for_midgard_and_ajatus_replication.html">Midgard replication</a></li>
<li>Apache and Lighttpd support the <a href="http://john.guen.in/past/2007/4/17/send_files_faster_with_xsendfile/">X-Sendfile header</a> which we could utilize for simpler, <a href="http://teroheikkinen.iki.fi/blog/view/more_midcom_performance_available.html">fast file serving</a> with Midgard</li>
<li>The <a href="http://en.wikipedia.org/wiki/MINIX_3">MINIX</a> idea of automatically <a href="http://en.wikipedia.org/wiki/MINIX_3#Reincarnate_dead_or_sick_drivers">reincarnated user-space drivers</a> and servers is pretty cool</li>
<li>Lots of <a href="http://wiki.openmoko.org/wiki/Main_Page">OpenMoko</a> <a href="http://www.openmoko.com/product.html">FreeRunner phones</a> here!</li>
</ul>

<p>
Some interesting talks still left, including:
</p>

<ul><li><a href="http://programm.froscon.org/2008/events/194.en.html">Apache Mahout</a> machine learning system</li>
<li><a href="http://programm.froscon.org/2008/events/291.en.html">dropr</a> message queue for PHP</li>
<li>Using <a href="http://programm.froscon.org/2008/events/284.en.html">PEAR installer for website releases</a></li>
</ul>

<p>
Unfortunately the <a href="http://programm.froscon.org/2008/events/213.en.html">Atom Publishing Protocol talk</a> is only in German...
</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/bergie?a=i0hUMK"><img src="http://feeds.feedburner.com/~f/bergie?i=i0hUMK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=2p4HaK"><img src="http://feeds.feedburner.com/~f/bergie?i=2p4HaK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=xzuq6k"><img src="http://feeds.feedburner.com/~f/bergie?i=xzuq6k" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=EvmLik"><img src="http://feeds.feedburner.com/~f/bergie?i=EvmLik" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bergie/~4/372712684" height="1" width="1"/>]]></description>
<link>http://feeds.feedburner.com/~r/bergie/~3/372712684/midcom-permalink-9acb4db0711911ddbd3f27c069ed907e907e</link>
<guid isPermaLink="true">http://bergie.iki.fi/midcom-permalink-9acb4db0711911ddbd3f27c069ed907e907e</guid>
<pubDate>Sat, 23 Aug 2008 16:44:27 +0300</pubDate>
<author>webmaster@bergie.iki.fi ()</author>
<source url="http://bergie.iki.fi/blog/rss.xml?de_linkm_newsticker_filter[category]=OpenPSA">Henri Bergius</source>
<category>Henri Bergius</category>
</item>
<item>
<title>Using Yahoo! Fire Eagle with Midgard</title>
<description><![CDATA[<a href="http://bergie.iki.fi/blog/"><img src="http://bergie.iki.fi/attachment/1c9911cd91578c9791796c44fea32890/942e3250e9975761a5123a5f8bbc58f3/bergie-hackergotchi.png" align="right" border="0" alt="Henri Bergius" /></a>
<p>
<a href="http://fireeagle.yahoo.net/">Yahoo! Fire Eagle</a>, kind of "<a href="http://geoclue.freedesktop.org/">GeoClue</a> for the Web" <a href="http://feblog.yahoo.net/2008/08/14/fire-eagle-is-open/">was released</a> last week. It acts as <a href="http://arstechnica.com/news.ars/post/20080820-fireeagle-ignites-geo-aware-applications.html">a central hub</a> collection position information from services like <a href="http://plazes.com/">Plazes</a> and <a href="http://www.dopplr.com/">Dopplr</a>, and with <a href="http://bergie.iki.fi/blog/yahoo-fire_eagle_knows_where_my_phone_moves.html">a simple PHP script</a>, <a href="http://jaiku.com/">Jaiku</a>. <a href="http://fireeagle.yahoo.net/gallery">Services</a> needing user's location can then <a href="http://fireeagle.yahoo.net/developer">ask it from Fire Eagle</a> instead of having to support all the services separately.
</p>

<p>
<a href="http://bergie.iki.fi/blog/the-midgard-position.html">Midgard's positioning framework</a> has been Fire Eagle compatible <a href="http://bergie.iki.fi/blog/yahoo-fire_eagle_knows_where_my_phone_moves.html">since March this year</a>. Now that the service is open for <a href="http://vilunki.wordpress.com/2008/03/10/youre-invited-to-read-this-blog-post-beta/">a wider audience</a>, I though it would be useful to tell how to activate it with your Midgard-powered site.
</p>

<p>
You need to authorize <a href="http://www.midgard-project.org/">Midgard</a> with your Fire Eagle account. To do this, go to:
</p>

<pre>
http://www.example.net/midcom-exec-org.routamc.positioning/test-fireeagle.php
</pre>

<p>
and follow the authorization instructions. This is due to Fire Eagle using the nice <a href="http://en.wikipedia.org/wiki/OAuth">OAuth protocol</a>.
</p>

<p>
Once this is done <a href="http://midgardwiki.contentcontrol-berlin.de/index.php/Midcom.services.cron">MidCOM cron</a> will start tracking your Fire Eagle location. All objects you have created (photos, blogs, comments, etc) will then be automatically tagged with where you made them.
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-2d746e2a6ec811ddb7764384836d09cf09cf/yahoo-fireeagle-20080820.png"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-2e2a316a6ec811ddb87d8f78c20ba3d3a3d3/yahoo-fireeagle-20080820-tm.jpg" height="330" width="400" border="1" hspace="4" vspace="4" alt="Yahoo! Fire Eagle" title="Yahoo! Fire Eagle" /></a>
</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/bergie?a=24zphK"><img src="http://feeds.feedburner.com/~f/bergie?i=24zphK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=qpiBvK"><img src="http://feeds.feedburner.com/~f/bergie?i=qpiBvK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=LgYsOk"><img src="http://feeds.feedburner.com/~f/bergie?i=LgYsOk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=z0oIKk"><img src="http://feeds.feedburner.com/~f/bergie?i=z0oIKk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bergie/~4/370039345" height="1" width="1"/>]]></description>
<link>http://feeds.feedburner.com/~r/bergie/~3/370039345/midcom-permalink-2ebf4cb46ec811dd91be7d90914bc815c815</link>
<guid isPermaLink="true">http://bergie.iki.fi/midcom-permalink-2ebf4cb46ec811dd91be7d90914bc815c815</guid>
<pubDate>Wed, 20 Aug 2008 17:56:34 +0300</pubDate>
<author>webmaster@bergie.iki.fi ()</author>
<source url="http://bergie.iki.fi/blog/rss.xml?de_linkm_newsticker_filter[category]=OpenPSA">Henri Bergius</source>
<category>Henri Bergius</category>
</item>
<item>
<title>Finding out available MidCOM routes</title>
<description><![CDATA[<a href="http://bergie.iki.fi/blog/"><img src="http://bergie.iki.fi/attachment/1c9911cd91578c9791796c44fea32890/942e3250e9975761a5123a5f8bbc58f3/bergie-hackergotchi.png" align="right" border="0" alt="Henri Bergius" /></a>
<p>
<a href="http://www.midgard-project.org/documentation/midcom">MidCOM</a> is a PHP <a href="http://en.wikipedia.org/wiki/Model-view-controller">MVC</a> framework where you <a href="http://www.midgard-project.org/documentation/howto-midcom/">create a site</a> by building a tree structure and assigning components for the various folders. Each component is <a href="http://bergie.iki.fi/blog/midcom_3_at_a_glance.html">its own PHP application</a> that can handle all URL requests under that folder using a set of configured routes.
</p>

<p>
In addition to making normal requests to the various routes available, routes provided by other folders can be <a href="http://www.midgard-project.org/documentation/midcom-method-dynamic_load/">loaded dynamically</a> anywhere on the site. This is useful for instance for loading five latest news items to front page.
</p>

<p>
To make life easier, I now added a new feature to <a href="http://pear.midcom-project.org/index.php?package=midcom_admin_help&amp;release=1.2.0&amp;downloads">midcom.admin.help</a>, the online help component. Each folder will automatically list their documentation and available routes when you access their URL <em>__ais/help</em>:
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-00b7e1b86ec411ddb87d8f78c20ba3d3a3d3/midcom_admin_help_routes.png"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-0232a2266ec411ddb7764384836d09cf09cf/midcom_admin_help_routes-tm.jpg" height="251" width="400" border="1" hspace="4" vspace="4" alt="midcom.admin.help routes list" title="midcom.admin.help routes list" /></a>
</p>

<p>
To get this feature you only need to upgrade the help component:
</p>

<pre>
# pear upgrade midcom/midcom_admin_help
</pre><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/bergie?a=7TS1hK"><img src="http://feeds.feedburner.com/~f/bergie?i=7TS1hK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=N1fuMK"><img src="http://feeds.feedburner.com/~f/bergie?i=N1fuMK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=DwYBdk"><img src="http://feeds.feedburner.com/~f/bergie?i=DwYBdk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=JYxPLk"><img src="http://feeds.feedburner.com/~f/bergie?i=JYxPLk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bergie/~4/370027297" height="1" width="1"/>]]></description>
<link>http://feeds.feedburner.com/~r/bergie/~3/370027297/midcom-permalink-02d531586ec411dd890a171d7f041cc61cc6</link>
<guid isPermaLink="true">http://bergie.iki.fi/midcom-permalink-02d531586ec411dd890a171d7f041cc61cc6</guid>
<pubDate>Wed, 20 Aug 2008 17:26:43 +0300</pubDate>
<author>webmaster@bergie.iki.fi ()</author>
<source url="http://bergie.iki.fi/blog/rss.xml?de_linkm_newsticker_filter[category]=OpenPSA">Henri Bergius</source>
<category>Henri Bergius</category>
</item>
<item>
<title>Micro-blogging as alternative corporate announcement channel</title>
<description><![CDATA[<a href="http://bergie.iki.fi/blog/"><img src="http://bergie.iki.fi/attachment/1c9911cd91578c9791796c44fea32890/942e3250e9975761a5123a5f8bbc58f3/bergie-hackergotchi.png" align="right" border="0" alt="Henri Bergius" /></a>
<p>
Today <a href="http://www.nebula.fi/">our ISP</a> is having <a href="http://www.nebula.fi/tiedotteet.php">major power failures</a>, and therefore many of our <a href="http://nemein.com/">web services</a> are down. For situations like this, it is good to establish an alternative channel of communications, and for us that is the <a href="http://en.wikipedia.org/wiki/Micro-blogging">micro-blogging</a> platform <a href="http://jaiku.com/">Jaiku</a>:
</p>

<p>
<a href="http://jaiku.com/channel/Nemein">http://jaiku.com/channel/Nemein</a>
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-14b4442c6cfd11dd837fe1d95a0d537b537b/jaiku-channel-nemein.png"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-1684f18e6cfd11dda310f95a2b716fc16fc1/jaiku-channel-nemein-tm.jpg" height="178" width="400" border="1" hspace="4" vspace="4" alt="Jaiku's Nemein channel" title="Jaiku's Nemein channel" /></a>
</p>

<p>
If you are a Jaiku user, feel free to join the channel. Others can follow it via the <a href="http://jaiku.com/channel/Nemein/feed/rss">RSS feed</a>.
</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/bergie?a=ZYfOhK"><img src="http://feeds.feedburner.com/~f/bergie?i=ZYfOhK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=WzzocK"><img src="http://feeds.feedburner.com/~f/bergie?i=WzzocK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=LuqUCk"><img src="http://feeds.feedburner.com/~f/bergie?i=LuqUCk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=ydknhk"><img src="http://feeds.feedburner.com/~f/bergie?i=ydknhk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bergie/~4/367903255" height="1" width="1"/>]]></description>
<link>http://feeds.feedburner.com/~r/bergie/~3/367903255/midcom-permalink-171367986cfd11dd82dfe59736c5a080a080</link>
<guid isPermaLink="true">http://bergie.iki.fi/midcom-permalink-171367986cfd11dd82dfe59736c5a080a080</guid>
<pubDate>Mon, 18 Aug 2008 11:10:16 +0300</pubDate>
<author>webmaster@bergie.iki.fi ()</author>
<source url="http://bergie.iki.fi/blog/rss.xml?de_linkm_newsticker_filter[category]=OpenPSA">Henri Bergius</source>
<category>Henri Bergius</category>
</item>
<item>
<title>Why Finland is different</title>
<description><![CDATA[<a href="http://bergie.iki.fi/blog/"><img src="http://bergie.iki.fi/attachment/1c9911cd91578c9791796c44fea32890/942e3250e9975761a5123a5f8bbc58f3/bergie-hackergotchi.png" align="right" border="0" alt="Henri Bergius" /></a>
<p>
It is not only sauna, cold winters and Koskenkorva that sets us <a href="http://en.wikipedia.org/wiki/Finns">Finns</a> apart, apparently:
</p>

<blockquote>
<img src="http://bergie.iki.fi/midcom-serveattachmentguid-7cc265286bde11dda39ddb9455e69ef19ef1/genetic-map-of-europe-finns-apart.jpg" height="156" width="300" border="1" hspace="4" vspace="4" alt="Genetic map of Europe: Finns stand apart" title="Genetic map of Europe: Finns stand apart" /><br /><br />The map also identifies the existence of two genetic barriers within Europe. One is between the Finns (light blue, upper right) and other Europeans. It arose because the Finnish population was at one time very small and then expanded, bearing the atypical genetics of its few founders.
</blockquote>

<p>
<a href="http://www.nytimes.com/2008/08/13/science/13visual.html?em">New York Times: The Genetic Map of Europe</a> (via <a href="http://science.slashdot.org/article.pl?sid=08/08/16/1311212">Slashdot</a>)
</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/bergie?a=eWTMMK"><img src="http://feeds.feedburner.com/~f/bergie?i=eWTMMK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=teeO1K"><img src="http://feeds.feedburner.com/~f/bergie?i=teeO1K" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=3Xjhgk"><img src="http://feeds.feedburner.com/~f/bergie?i=3Xjhgk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=vXEERk"><img src="http://feeds.feedburner.com/~f/bergie?i=vXEERk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bergie/~4/366803435" height="1" width="1"/>]]></description>
<link>http://feeds.feedburner.com/~r/bergie/~3/366803435/midcom-permalink-7e63c6106bde11dda5f9ff688d87d3efd3ef</link>
<guid isPermaLink="true">http://bergie.iki.fi/midcom-permalink-7e63c6106bde11dda5f9ff688d87d3efd3ef</guid>
<pubDate>Sun, 17 Aug 2008 00:58:43 +0300</pubDate>
<author>webmaster@bergie.iki.fi ()</author>
<source url="http://bergie.iki.fi/blog/rss.xml?de_linkm_newsticker_filter[category]=OpenPSA">Henri Bergius</source>
<category>Henri Bergius</category>
</item>
<item>
<title>Georgia without Russian troops</title>
<description><![CDATA[<a href="http://bergie.iki.fi/blog/"><img src="http://bergie.iki.fi/attachment/1c9911cd91578c9791796c44fea32890/942e3250e9975761a5123a5f8bbc58f3/bergie-hackergotchi.png" align="right" border="0" alt="Henri Bergius" /></a>
<p>
Just some pictures from happier days:
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-31abe72867ea11dda38be36800bd15e815e8/the_kura_river.JPG"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-3a4433a467ea11ddad6ea5a9298382938293/the_kura_river-tm.jpg" height="235" width="400" border="1" hspace="4" vspace="4" alt="Taya and the Mtqvari river" title="Taya and the Mtqvari river" /></a>
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-49bb47b467ea11dda38be36800bd15e815e8/view_over_kakhetia.JPG"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-4b91c9f067ea11ddad6ea5a9298382938293/view_over_kakhetia-tm.jpg" height="265" width="398" border="1" hspace="4" vspace="4" alt="View over Kakhetia" title="View over Kakhetia" /></a>
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-3e34e2d867ea11dd86153fcc9631b985b985/Georgian_and_Finnish_flags_parliament.JPG"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-42d2582a67ea11dd8ce9e75faf23ece6ece6/Georgian_and_Finnish_flags_parliament-tm.jpg" height="242" width="400" border="1" hspace="4" vspace="4" alt="Georgian and Finnish Flags in the Parliament" title="Georgian and Finnish Flags in the Parliament" /></a>
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-5026752467ea11dd8ce9e75faf23ece6ece6/Georgia_without_Russian_troops.JPG"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-53b549cc67ea11ddb36dddfefe9504ba04ba/Georgia_without_Russian_troops-tm.jpg" height="256" width="400" border="1" hspace="4" vspace="4" alt="Sincere wish: Georgia without Russian troops" title="Sincere wish: Georgia without Russian troops" /></a>
</p>

<p>
Best wishes to my friends in <a href="http://en.wikipedia.org/wiki/Tbilisi">Tbilisi</a> in these <a href="http://en.wikipedia.org/wiki/2008_South_Ossetia_war">hard times</a>.
</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/bergie?a=jtMVxK"><img src="http://feeds.feedburner.com/~f/bergie?i=jtMVxK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=cQlLFK"><img src="http://feeds.feedburner.com/~f/bergie?i=cQlLFK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=mPygIk"><img src="http://feeds.feedburner.com/~f/bergie?i=mPygIk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=CISjXk"><img src="http://feeds.feedburner.com/~f/bergie?i=CISjXk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bergie/~4/362308075" height="1" width="1"/>]]></description>
<link>http://feeds.feedburner.com/~r/bergie/~3/362308075/midcom-permalink-57b9460e67ea11dd86153fcc9631b985b985</link>
<guid isPermaLink="true">http://bergie.iki.fi/midcom-permalink-57b9460e67ea11dd86153fcc9631b985b985</guid>
<pubDate>Tue, 12 Aug 2008 00:13:28 +0300</pubDate>
<author>henri.bergius@iki.fi (Henri Bergius)</author>
<source url="http://bergie.iki.fi/blog/rss.xml?de_linkm_newsticker_filter[category]=OpenPSA">Henri Bergius</source>
<category>Henri Bergius</category>
</item>
<item>
<title>Feature branches in Midgard development with git</title>
<description><![CDATA[<a href="http://bergie.iki.fi/blog/"><img src="http://bergie.iki.fi/attachment/1c9911cd91578c9791796c44fea32890/942e3250e9975761a5123a5f8bbc58f3/bergie-hackergotchi.png" align="right" border="0" alt="Henri Bergius" /></a>
<p>
The <a href="http://bergie.iki.fi/blog/midgard_and_synchronized_releases.html">release synchronicity plan</a> was accepted, and therefore Midgard will be switching from SVN to <a href="http://git-scm.com/">git</a>, and the concept of <a href="http://wiki.winehq.org/GitBranches">feature branches</a>.
</p>

<p>
With feature branches the idea is that each feature or bug fix is being developed in its own branch, and only landed to trunk (master in git terminology) when ready. This keeps the trunk clean and easy to test.
</p>

<p>
While the SVN migration will only happen in <a href="http://www.midgard-project.org/discussion/developer-forum/next_midgard_developer_meeting_in_october-november/">next developer meeting</a>, you can already start using git for Midgard development thanks to <a href="http://git.or.cz/course/svn.html">git-svn</a>. Once you have a working checkout, here is how you work with feature branches:
</p>

<p>
Ensure you have the latest stuff:
</p>

<pre>
git svn rebase
</pre>

<p>
Create a new branch:
</p>

<pre>
git branch mynewfeature
</pre>

<p>
Go to the new branch:
</p>

<pre>
git checkout mynewfeature
</pre>

<p>
<em>Hack, add files, commit, test</em>
</p>

<p>
Ensure the diff looks correct:
</p>

<pre>
git diff master..HEAD
</pre>

<p>
Go back to master:
</p>

<pre>
git checkout master
</pre>

<p>
Merge your feature branch:
</p>

<pre>
git merge mynewfeature
</pre>

<p>
Commit to SVN:
</p>

<pre>
git svn dcommit
</pre>

<p>
If you want to also work with other Midgard or MidCOM versions <a href="http://trac.midgard-project.org/timeline">from SVN</a>, check out the <a href="http://www.jukie.net/~bart/blog/svn-branches-in-git">how to track multiple svn branches in git</a> tutorial.
</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/bergie?a=93LHEK"><img src="http://feeds.feedburner.com/~f/bergie?i=93LHEK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=DIGPFK"><img src="http://feeds.feedburner.com/~f/bergie?i=DIGPFK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=4Tq0Vk"><img src="http://feeds.feedburner.com/~f/bergie?i=4Tq0Vk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=nsoSak"><img src="http://feeds.feedburner.com/~f/bergie?i=nsoSak" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bergie/~4/362074213" height="1" width="1"/>]]></description>
<link>http://feeds.feedburner.com/~r/bergie/~3/362074213/midcom-permalink-c4fdd7a467c011dd8dab0fc55be0e95de95d</link>
<guid isPermaLink="true">http://bergie.iki.fi/midcom-permalink-c4fdd7a467c011dd8dab0fc55be0e95de95d</guid>
<pubDate>Mon, 11 Aug 2008 19:15:52 +0300</pubDate>
<author>henri.bergius@iki.fi (Henri Bergius)</author>
<source url="http://bergie.iki.fi/blog/rss.xml?de_linkm_newsticker_filter[category]=OpenPSA">Henri Bergius</source>
<category>Henri Bergius</category>
</item>
<item>
<title>Some notes from aKademy 2008</title>
<description><![CDATA[<a href="http://bergie.iki.fi/blog/"><img src="http://bergie.iki.fi/attachment/1c9911cd91578c9791796c44fea32890/942e3250e9975761a5123a5f8bbc58f3/bergie-hackergotchi.png" align="right" border="0" alt="Henri Bergius" /></a>
<p>
I'm currently in <a href="http://akademy.kde.org/">aKademy</a>, the KDE conference, talking about adding the <a href="http://worrydream.com/MagicInk/#inferring_context_from_the_environment">geographical context</a> into the Linux desktop. <a href="http://geoclue.freedesktop.org/">GeoClue</a>, our solution to this problem is built to be <a href="http://www.freedesktop.org/wiki/">desktop-agnostic</a> <a href="http://en.wikipedia.org/wiki/D-Bus">service</a>, and therefore the same talk has been held in both <a href="http://bergie.iki.fi/blog/notes_from_guadec_istanbul.html">GUADEC</a> and aKademy.
</p>

<p>
Here are some notes from the conference:
</p>

<ul><li>There was quite a good amount of interest in GeoClue. Both Plasma and Marble teams were talking with me, and I also gave an interview for <a href="http://www.linux-magazin.de/">Linux-Magazin Online</a></li>
<li><a href="http://plasma.kde.org/cms/1029">Plasma</a> is interesting tool for integrating widgets into the desktop. Being able to <a href="http://code.google.com/soc/2008/kde/appinfo.html?csaid=F16B9339F86C1ABA">add widgets to the screensaver</a> is also a great idea</li>
<li>Another interesting Plasma idea is offering user widgets that are relevant for the current location coming from GeoClue. This means that when you land in London, you could be offered an <a href="http://www.apple.com/downloads/dashboard/transportation/tubewidget.html">Underground route planner</a> app</li>
<li>In general it seems the desktops <a href="http://fmontesi.blogspot.com/2008/08/are-we-converging-to-service-oriented.html">are moving</a> to a more service-oriented paradigm. With D-Bus your <a href="http://telepathy.freedesktop.org/">instant messaging functionality</a> for instance can be part of any or all applications. This enables making much thinner and <a href="http://clutter-project.org/">experimental</a> applications that still <a href="http://akademy.kde.org/conference/presentation/14.php">integrate</a> well with the desktop</li>
<li><a href="http://edu.kde.org/marble/">Marble</a> is cool! With it, Qt developers can integrate <a href="http://edu.kde.org/marble/#developers">a map widget</a> into any application, making geo-aware tools much more visual</li>
<li><a href="https://build.opensuse.org/">openSUSE build service</a> is about to get new features that will help generating virtual machine images</li>
<li>The beer evening in the <a href="http://www.hetanker.be/en">Het Anker</a> brewery was a lot of fun. Thanks, Nokia!</li>
<li>Speaking of <a href="http://www.nokia.com/">Nokia</a>, they are here really in force. They are the main event sponsor, and have a big bunch of people attending. Their acquisition of <a href="http://trolltech.com/">TrollTech</a> has really changed the situation. Hopefully they'll do the right thing about GeoClue and <a href="http://maemo.org/">Maemo</a></li>
</ul>

<p>
More stuff in my <a href="http://bergie.jaiku.com/presence/42097075">Jaiku notes</a>. My <a href="http://docs.google.com/Present?docid=dd4m6zsj_27f793rtgf">GeoClue slides</a> are also available.
</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/bergie?a=VmtAvK"><img src="http://feeds.feedburner.com/~f/bergie?i=VmtAvK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=dazYYK"><img src="http://feeds.feedburner.com/~f/bergie?i=dazYYK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=gFh9qk"><img src="http://feeds.feedburner.com/~f/bergie?i=gFh9qk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=zkXpwk"><img src="http://feeds.feedburner.com/~f/bergie?i=zkXpwk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bergie/~4/361076688" height="1" width="1"/>]]></description>
<link>http://feeds.feedburner.com/~r/bergie/~3/361076688/midcom-permalink-e7cd1d4a66de11ddb63cc53b5566d574d574</link>
<guid isPermaLink="true">http://bergie.iki.fi/midcom-permalink-e7cd1d4a66de11ddb63cc53b5566d574d574</guid>
<pubDate>Sun, 10 Aug 2008 16:19:04 +0300</pubDate>
<author>henri.bergius@iki.fi (Henri Bergius)</author>
<source url="http://bergie.iki.fi/blog/rss.xml?de_linkm_newsticker_filter[category]=OpenPSA">Henri Bergius</source>
<category>Henri Bergius</category>
</item>
<item>
<title>Neutron Protocol: Separating UI from the CMS</title>
<description><![CDATA[<a href="http://bergie.iki.fi/blog/"><img src="http://bergie.iki.fi/attachment/1c9911cd91578c9791796c44fea32890/942e3250e9975761a5123a5f8bbc58f3/bergie-hackergotchi.png" align="right" border="0" alt="Henri Bergius" /></a>
<p>
At the moment the prevailing wisdom is that each CMS should have its own user interface, and that user interface should be web-based. But there is also another way: separating the user interface from the CMS using a CMS-neutral protocol called Neutron.
</p>

<p>
According to <a href="http://www.w3.org/People/Berners-Lee/">Sir Tim Berners-Lee</a>, the earliest web browser was <a href="http://en.wikipedia.org/wiki/WorldWideWeb#Features">also an editor</a>. And the late 90s <a href="http://en.wikipedia.org/wiki/Netscape_Composer">Netscape Communicator</a> followed this ideal by including a HTML editor that could publish changes to pages using the <a href="http://www.apacheweek.com/features/put">HTTP PUT</a> method. But then the idea of editing via the web browser transformed to clunky forms and Java applet -based WYSIWYG editors, brought about by the rise of content management systems.
</p>

<p>
The problems of the user interface being part of the web page were multiple: it cluttered the produced HTML, it was possible to break by layout changes, sometimes the login and editing options were hard to find. It also meant that each and every CMS would have a completely different user interface. A problem made especially difficult if you had to use multiple systems. For example:
</p>

<p>
If you are <a href="http://maemo.org/profile/view/qgil/">Quim Gil</a>, working for Nokia's <a href="http://maemo.org/">maemo.org</a>, you're living in a world of many, many CMSs. The <a href="http://maemo.org/">marketing and community parts</a> of the website are run by <a href="http://www.midgard-project.org/">Midgard</a>, the <a href="http://wiki.maemo.org/">documentation wiki</a> by <a href="http://www.mediawiki.org/">MediaWiki</a>, your <a href="http://flors.wordpress.com/">own blog</a> by <a href="http://wordpress.org/">WordPress</a>, and the list goes on. While in this kind of corporate setup it has been possible to mostly unify usernames and passwords, it still means each part of your work runs with different UIs, and different usage logic. Back in 2003, I named this syndrome <a href="http://oscom.org/projects/documentation/midgard/case-oscom.html">Frankenstein CMS</a>.
</p>

<p>
In addition to consistency and usability, offline editing has been a big issue with most CMSs. In typical situation, it simply doesn't exist, making copy-and-paste way of taking documents with you to edit on a laptop while traveling.
</p>

<p>
There have been several initiatives in solving these problems. A quite limited, but so far successful example is the <a href="http://universaleditbutton.org/Universal_Edit_Button">Universal Edit Button</a> specification, making rounds earlier this summer. The idea is that CMSs would include metadata on where the editing view of a particular page was in the page itself, and then browsers would display a button leading to it. The approach has been adopted by several big players, including Wikipedia, and we also made it a part of the new CMS that will be built on <a href="http://bergie.iki.fi/blog/midgard_2-more_than_just_php-more_than_just_cms.html">Midgard 2</a>:
</p>

<p>
<img src="http://bergie.iki.fi/midcom-serveattachmentguid-2accbcb265f511ddae75cb6d513f60396039/midcom3-ueb.jpg" height="186" width="260" border="1" hspace="4" vspace="4" alt="Universal Edit Button in MidCOM 3" title="Universal Edit Button in MidCOM 3" /></p>

<p>
Another, also somewhat limited example is the <a href="http://www.xmlrpc.com/metaWeblogApi">MetaWeblog API</a> provided by most blogging platforms. It has enabled vendors to produce great offline blogging software like <a href="http://infinite-sushi.com/software/ecto/">Ecto</a> and <a href="http://www.red-sweater.com/marsedit/">MarsEdit</a> that provide offline editing and work with almost any blogging system out there. As I write this, I'm using Ecto on my MacBook Air, and will later use it to publish this entry to my Midgard server. The <a href="http://www.rfc-editor.org/rfc/rfc5023.txt">Atom Publishing Protocol</a> will likely be the successor of MetaWeblog, but appears to still keep the blog-only focus.
</p>

<p>
Back in the earlier days of <a href="http://oscom.org/">OSCOM</a> we had another initiative called <a href="http://www.oscom.org/projects/twingle/">Twingle</a>. It was a XUL-based desktop CMS client that utilized WebDAV and some XML introspection files to edit and publish data on different CMSs. After a <a href="http://www.oscom.org/events/sprints/1--zurich-march-2003/">March 2003 OSCOM Sprint </a>in Zurich we were able to demo the same client browsing and editing resources on three CMSs, including Zope and Midgard. Unfortunately, then CMS market became so hot that vendors were simply too busy to pick this up and the project died.
</p>

<p>
Luckily <a href="http://www.wyona.com/people/michael-wechner/index.html">Michael Wechner</a>, of OSCOM and <a href="http://lenya.apache.org/">Apache Lenya</a> fame didn't let the idea die. He worked it onwards, naming the protocol used for conversation between the client and the server <a href="http://neutron.wyona.org/">Neutron Publishing Protocol</a>, a play on Atom. He also built a new client, <a href="http://www.yulup.org/index.html">Yulup</a>, as a Firefox extension that could manage content on compatible servers.
</p>

<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-46c28e0665f511ddb69183ca183432173217/michael_wechner_in_horgenberg.jpg"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-4ce43d7a65f511dd9a98255b6b8079727972/michael_wechner_in_horgenberg-tm.jpg" height="249" width="400" border="1" hspace="4" vspace="4" alt="Michael Wechner in Horgenberg" title="Michael Wechner in Horgenberg" /></a>
</p>

<p>
In summer 2007 I saw a demo of Yulup and discussed Neutron with Michi and was impressed. But was back then too depressed by <a href="http://bergie.iki.fi/blog/when_a_holiday_gets-interesting.html">the Czech episode</a> and other personal issues to press on with the idea. Having watched another year of the directions the community is taking Midgard CMS to, and how clients view CMS deployments, I'm starting to think the time would be ripe for going full forward with Neutron.
</p>

<p>
In nutshell Neutron is a metadata layer that allows a CMS to specify the actions user can take, and the methods provided for those actions. The methods can either be full-blown WebDAV, or simpler GET-and-POST that more limited CMSs can support. Neutron also provides its own authentication mechanism, though I would gladly see that overtaken by  a more secure and widely supported standard like <a href="http://oauth.net/">OAuth</a>.
</p>

<p>
Widely-supported Neutron would provide huge advantages: letting the developers of a CMS to focus on the actual management and presentation layers of the system, and allowing more innovation to happen in the client end due to combined efforts from multiple CMS projects. It would allow building of different content management interfaces for different audiences or usage scenarios. Simple editing and publishing clients that could run fully in browser's AJAX space for casual bloggers or wiki editors, workflow tools for gatekeepers of corporate publishing processes, and full-blown desktop content management tools for site editors. Other special cases like mobile content management could also be provided for.
</p>

<p>
So what is needed for this future to become reality? First of all, we need to make CMS developers aware of the possibility. Then we need a killer client that every CMS provider would want to support. And then we can expand the protocol, and build additional clients to cater for special needs.
</p>

<p>
The big question is how this will happen. Industry groups in CMS space are loose or non-existing, and so they lack the muscle to push any standards. Effort by single CMS vendor would probably stay partisan, as developers of different systems are quite suspicious or ignorant of each other. But maybe a combination of the two would work: industry group, such as OSCOM organizing some compatibility hacking events for the developer community, and a company dedicated at building a killer client application. It warrants serious consideration if <a href="http://nemein.com/">Nemein</a> should be that company.
</p>

<p>
<em>This manifesto on transforming how CMSs are used was written in an Eurostar London-Brussels train, sipping Dourthe's Bordeaux white and listening to the Karelia cycle by Sibelius.</em>
</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/bergie?a=QnjulK"><img src="http://feeds.feedburner.com/~f/bergie?i=QnjulK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=uLtCYK"><img src="http://feeds.feedburner.com/~f/bergie?i=uLtCYK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=TdjGtk"><img src="http://feeds.feedburner.com/~f/bergie?i=TdjGtk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=gKKr3k"><img src="http://feeds.feedburner.com/~f/bergie?i=gKKr3k" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bergie/~4/360195375" height="1" width="1"/>]]></description>
<link>http://feeds.feedburner.com/~r/bergie/~3/360195375/midcom-permalink-50c4ea0c65f511ddb86ff73c64b58bf38bf3</link>
<guid isPermaLink="true">http://bergie.iki.fi/midcom-permalink-50c4ea0c65f511ddb86ff73c64b58bf38bf3</guid>
<pubDate>Sat, 09 Aug 2008 12:26:58 +0300</pubDate>
<author>henri.bergius@iki.fi (Henri Bergius)</author>
<source url="http://bergie.iki.fi/blog/rss.xml?de_linkm_newsticker_filter[category]=OpenPSA">Henri Bergius</source>
<category>Henri Bergius</category>
</item>
<item>
<title>ididwork.com: Simple workstreaming solution</title>
<description><![CDATA[<a href="http://bergie.iki.fi/blog/"><img src="http://bergie.iki.fi/attachment/1c9911cd91578c9791796c44fea32890/942e3250e9975761a5123a5f8bbc58f3/bergie-hackergotchi.png" align="right" border="0" alt="Henri Bergius" /></a>
<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-bed0622c647b11ddb2613d9ec4b664eb64eb/ididwork-reporting-interface.png"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-c0455de2647b11dd98d267b909470cf50cf5/ididwork-reporting-interface-tm.jpg" height="206" width="238" border="1" align="right" hspace="8" vspace="4" alt="ididwork.com reporting interface" title="ididwork.com reporting interface" /></a>
<br /><a href="http://www.ididwork.com/">ididwork.com</a>, a simple workstreaming service <a href="http://www.ididwork.com/blog/?p=3">has launched</a> this week. <a href="http://webworkerdaily.com/2007/03/03/workstreaming-the-new-face-time/">Workstreaming</a> means utilizing <a href="http://en.wikipedia.org/wiki/Micro-blogging">micro-blogging</a> services to keep your colleagues aware of what you're doing. This helps with coordinating geographically dispersed teams of <a href="http://webworkerdaily.com/2006/09/04/going-bedouin/">web workers</a>.
</p>

<p>
As part of <a href="http://bergie.iki.fi/blog/scrum_in_management_of_a_small_software_consultancy.html">redesigning our processes</a>, <a href="http://nemein.com/en/">our company</a> has been looking for a workstreaming solution. While <a href="http://www.jeffro2pt0.com/jaiku-launches-channels-feature">private channels</a> support in <a href="http://jaiku.com/">Jaiku</a> would probably be the best option, we will now be testing ididwork.com for our needs.
</p>

<p>
Here is a quick overview of the first launched version of ididwork.com:
</p>

<p>
The good:
</p>

<ul><li>Simple, pleasant user interface</li>
<li>Tagging support (including <a href="http://en.wikipedia.org/wiki/Machine_tag">machine tags</a>), which means we can connect entries with <a href="http://www.ajatus.info/">Ajatus</a> tags</li>
<li>Email reminders for managerial review of entries</li>
<li>Excel export of work reports</li>
</ul>

<p>
The bad:
</p>

<ul><li>Users can be either managers or employees, not both. Managers don't have work to report?</li>
<li>User's own log entries and log entries of colleagues are shown separately</li>
<li>User can only belong to one organization. No multiple teams or projects</li>
</ul>

<p>
The ugly:
</p>

<ul><li>No API</li>
<li>No RSS feeds</li>
<li>No XMPP support</li>
</ul><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/bergie?a=ufr6DK"><img src="http://feeds.feedburner.com/~f/bergie?i=ufr6DK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=UxVssK"><img src="http://feeds.feedburner.com/~f/bergie?i=UxVssK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=rBrCvk"><img src="http://feeds.feedburner.com/~f/bergie?i=rBrCvk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=4g77zk"><img src="http://feeds.feedburner.com/~f/bergie?i=4g77zk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bergie/~4/358360569" height="1" width="1"/>]]></description>
<link>http://feeds.feedburner.com/~r/bergie/~3/358360569/midcom-permalink-c1c94372647b11ddb139c98c4e4b0b270b27</link>
<guid isPermaLink="true">http://bergie.iki.fi/midcom-permalink-c1c94372647b11ddb139c98c4e4b0b270b27</guid>
<pubDate>Thu, 07 Aug 2008 15:24:18 +0300</pubDate>
<author>henri.bergius@iki.fi (Henri Bergius)</author>
<source url="http://bergie.iki.fi/blog/rss.xml?de_linkm_newsticker_filter[category]=OpenPSA">Henri Bergius</source>
<category>Henri Bergius</category>
</item>
<item>
<title>ETech 2009 CFP: Building the peer-to-peer business network</title>
<description><![CDATA[<a href="http://bergie.iki.fi/blog/"><img src="http://bergie.iki.fi/attachment/1c9911cd91578c9791796c44fea32890/942e3250e9975761a5123a5f8bbc58f3/bergie-hackergotchi.png" align="right" border="0" alt="Henri Bergius" /></a>
<p>
<a href="http://en.oreilly.com/et2009/public/content/home">ETech 2009</a>, the O'Reilly conference on emerging technologies now <a href="http://www.boingboing.net/2008/08/04/etech-2009-call-for.html">has a call for papers</a>. Here is my proposal for the <em>"Nomadism &amp; Shedworking"</em> track:
</p>

<blockquote>
The recent direction of business applications has been centralization to web-based systems, easing deployment, upgrades and management of application security. However, at same time centralization provides new risks like the introduction of a <a href="http://www.chrisbrogan.com/when-google-owns-you/">single point of failure</a> for application usage and in most cases inability to work offline.
<br /><br />At the same time, working culture has started so shift more towards networked individuals, or "web workers" forming ad-hoc coalitions to work on various projects. For them, centralized applications might not be desirable due to data ownership and infrastructure requirements.
<br /><br />Moving the applications from centralized web servers to a peer-to-peer network allows web workers to be in control of their own data, stay productive even in unstable connectivity situations, and collaborate easily with their colleagues in an ad-hoc way.
<br /><br />This talk outlines some ways to move forward in building peer-to-peer networked business applications. There are many open source frameworks targeting the problem, including replicated databases like <a href="http://incubator.apache.org/couchdb/">CouchDb</a> and <a href="http://syncwith.us/">Prophet</a>, and application-oriented P2P networks like <a href="http://swallow.sourceforge.net/">Swallow/DBE</a>. These will be discussed together with some real-world examples of business applications built with them:
<br /><br /><a href="http://www.ajatus.info/">Ajatus</a> - a "<a href="http://blogs.law.harvard.edu/vrm/2007/11/16/crm-gets-personal/">Personal CRM</a>" built on top of CouchDb, a RESTful replicated object database
<br /><a href="http://bergie.iki.fi/blog/how-openpsa-uses-dbe.html">OpenPsa</a> - project management system <a href="http://bergie.iki.fi/blog/finding-resources-automatically-in-openpsa.html">doing resourcing</a> over the <a href="http://www.digital-ecosystem.org/">DBE</a> P2P network
<br /><a href="http://syncwith.us/">Simple Defects</a> - a P2P bug tracking system built on top of the Prophet replicated database
<br /><br />The first phase of P2P business applications will likely be services operating in closed networks of users' social networking or instant messaging contacts. But the P2P model can also provide opportunities for wider networking, making it possible to find new project partners or collaborators anywhere in the world. This wider-ranging business network will introduce new challenges like security and reputation management. Some ideas related to this will also be discussed.
</blockquote>

<p>
Other interesting projects in this sphere I did not mention are <a href="http://telepathy.freedesktop.org/wiki/Tubes">Telepathy Tubes</a> and <a href="http://ulno.net/f2f/">F2F</a>. We have also had some ideas for how <a href="http://bergie.iki.fi/blog/xmpp_publish-subscribe_for_midgard_and_ajatus_replication.html">Midgard could do this</a>...
</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/bergie?a=6GBaBK"><img src="http://feeds.feedburner.com/~f/bergie?i=6GBaBK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=6lylbK"><img src="http://feeds.feedburner.com/~f/bergie?i=6lylbK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=vmaWUk"><img src="http://feeds.feedburner.com/~f/bergie?i=vmaWUk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=drhoHk"><img src="http://feeds.feedburner.com/~f/bergie?i=drhoHk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bergie/~4/357572939" height="1" width="1"/>]]></description>
<link>http://feeds.feedburner.com/~r/bergie/~3/357572939/midcom-permalink-f9f2bb5a63d811ddad944d68893d4ea74ea7</link>
<guid isPermaLink="true">http://bergie.iki.fi/midcom-permalink-f9f2bb5a63d811ddad944d68893d4ea74ea7</guid>
<pubDate>Wed, 06 Aug 2008 19:59:04 +0300</pubDate>
<author>henri.bergius@iki.fi (Henri Bergius)</author>
<source url="http://bergie.iki.fi/blog/rss.xml?de_linkm_newsticker_filter[category]=OpenPSA">Henri Bergius</source>
<category>Henri Bergius</category>
</item>
<item>
<title>Black belt</title>
<description><![CDATA[<a href="http://bergie.iki.fi/blog/"><img src="http://bergie.iki.fi/attachment/1c9911cd91578c9791796c44fea32890/942e3250e9975761a5123a5f8bbc58f3/bergie-hackergotchi.png" align="right" border="0" alt="Henri Bergius" /></a>
<p>
<a href="http://bergie.iki.fi/midcom-serveattachmentguid-beda08c662e711dd80d65dd411b113271327/bergie_blackbelt_ballina.JPG"><img src="http://bergie.iki.fi/midcom-serveattachmentguid-c0c2023862e711dda25fa3f6fb7ebe4abe4a/bergie_blackbelt_ballina-tm.jpg" height="346" width="260" border="1" align="right" hspace="8" vspace="4" alt="New Haedong Kumdo black belt" title="New Haedong Kumdo black belt" /></a>
<br />On Saturday I was in <a href="http://en.wikipedia.org/wiki/Ballina,_County_Mayo">Ballina</a>, Ireland, and a <a href="http://bergie.jaiku.com/presence/41501404">bit nervous</a>: there was a <a href="http://haedong-kumdo.org/en/news/1211234116.html">Haedong Kumdo seminar</a> in town, and I was scheduled to test for <a href="http://en.wikipedia.org/wiki/Black_belt_(martial_arts)">black belt</a>. Behind this was years of different sword arts, like <a href="http://www.greywolves.org/toiminta-matto.html">viking swordfighting</a>, <a href="http://en.wikipedia.org/wiki/Iaid%C5%8D">Iaido</a>, <a href="http://en.wikipedia.org/wiki/Kendo">Kendo</a>, <a href="http://en.wikipedia.org/wiki/Fencing#Sabre">sabre fencing</a>, and two years of quite intense <a href="http://www.haedong-kumdo.fi/harjoittelu/">Haedong Kumdo practice</a>.
</p>

<p>
We tested together with two Swedes who already held black belt in the other federation. All three <a href="http://bergie.jaiku.com/presence/41529185">passed</a>.
</p>

<p>
So what is <a href="http://haedong-kumdo.org/en/">Haedong Kumdo</a>?
</p>

<blockquote>
Haedong Kumdo is a Korean martial art based on the use of the Korean curved single edged sword. It is a modern system compiled from the ancient traditional sword techniques of Korea.
<br /><br />The movements are primarily circular and derive their power from centrifugal force of the body. Training develops strength, coordination, balance, focus, stamina, speed and flexibility.
<br /><br />Haedong in old Chinese language means Korea (Hae - sea or sun, Dong - east). Kumdo translates to way of life through the art of sword (kum - sword, do - way of life through martial art).
<br /><br />The Way of the Eastern Sword, Haedong Kumdo, is an exciting and dynamic martial art.
</blockquote>

<p>
This important step done, the practice will intensify. Next I will need to focus on <a href="http://www.youtube.com/watch?v=xJebF-3m0JA">two-sword techniques</a> and the <a href="http://www.youtube.com/watch?v=Sant-SC8NXk">Yedo series</a> of forms. There will also be more <a href="http://www.youtube.com/watch?v=8vZ_oxPPJHU">cutting practice</a>. In September we will <a href="http://haedong-kumdo.org/en/news/korea--2008_haedong_kumdo_performance_on_21st_sep-2008.html">go to Korea</a>...
</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/bergie?a=OG92UK"><img src="http://feeds.feedburner.com/~f/bergie?i=OG92UK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=MFFwJK"><img src="http://feeds.feedburner.com/~f/bergie?i=MFFwJK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=ov0nMk"><img src="http://feeds.feedburner.com/~f/bergie?i=ov0nMk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/bergie?a=wew9dk"><img src="http://feeds.feedburner.com/~f/bergie?i=wew9dk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bergie/~4/356295742" height="1" width="1"/>]]></description>
<link>http://feeds.feedburner.com/~r/bergie/~3/356295742/midcom-permalink-c22f2a6062e711dd929683c5877a4b744b74</link>
<guid isPermaLink="true">http://bergie.iki.fi/midcom-permalink-c22f2a6062e711dd929683c5877a4b744b74</guid>
<pubDate>Tue, 05 Aug 2008 15:12:22 +0300</pubDate>
<author>henri.bergius@iki.fi (Henri Bergius)</author>
<source url="http://bergie.iki.fi/blog/rss.xml?de_linkm_newsticker_filter[category]=OpenPSA">Henri Bergius</source>
<category>Henri Bergius</category>
</item>
</channel>
</rss>
