Weblog: Archive
2005-01-01 - 2005-12-31
Posted on 2005-01-03 16:41:52 UTC to Openpsa. 0 comments.
As Eero has rolled out OpenPSA 1.10, I thought it would be time to update the visual outlook of the project.
Before:

After:

What do you think?
Next we will need a logo for OpenPSA. I will announce a logo contest soon.
Updated 18:06: The new layout is now live. We've also posted 1.10 release announcement.
Posted on 2005-01-05 21:50:39 UTC to Midgard. 0 comments.
There has been some discussion on the Midgard IRC channel comparing Midgard CMS to the WordPress blogging system. Adam Douglas commented:
Don't get me wrong I love Midgard and I'm sure I will even more once I learn more how to do stuff but if we could just get some of it to be similar as WordPress man we would be rocking. It's so damn easy to use and install.
After replying I realized we should probably explain the difference between Midgard and standalone PHP applications better.
WordPress is a great tool when it comes to blogging. It is indeed very easy to set up, and its user interface strives to be simple and user-friendly. While technically Midgard's blogging component, de.linkm.newsticker includes most of the same features like RSS output or desktop blogging tool support, it still doesn't provide as good user experience. Installation is much more involved, and more steps are needed for setting up the website. The user interface is also more complex, with site management functionalities handled by Aegir and content creation by the on-site "edit this page" functionality.
Similarly to WordPress, several other PHP applications like Gallery and phpBB are considered to be the best tools in their categories. Again Midgard has components like net.siriux.photos and net.nemein.discussion providing similar functionalities. And again they are slightly lacking in setup, functionality or user interface sense when compared to their pure-PHP counterparts.
But that is all beside the point of Midgard.
While individual Midgard applications could be inferior to their pure-PHP brethen, their strength lies in sharing the common framework of Midgard CMF and MidCOM. And in many cases, the advantages of the framework vastly outdo the possible shortcomings of the applications themselves. Consider the following:
- Templating. All Midgard applications run within the Midgard templating engine, allowing developers to easily provide common look-and-feel across different parts of their site. Midgard's templating engine was noted as the best in Ideal CMS of 2002 chosen by CMS Watch
- Permissions. With Midgard all applications can share the same group-based permission definitions. For authentication there are several options like PAM and NTLM single sign-on
- Hosting capability. A single Midgard installation can be shared between an unlimited number of organizations using the Sitegroups virtual database system
- Performance. The Midgard core libraries have been written in C, and provide much more efficient Framework for CMS functionalities than interpreted PHP code or the typical htaccess hacks. In addition, Midgard's replication tools make clustering very easy
- Configurability. With MidCOM's configuration engine all components provide an uniform way for changing their settings on either per-organization or per-directory basis
- Multiple instances. MidCOM components are bound to site directories instead of installations, and so the same application can be utilized in different parts of a website
- Security. Most Midgard applications use little or no filesystem access, and as far as I know none access the database directly. This means possible exploits can be prevented already at the Framework level
These benefits should make it easy to choose between Midgard or the different PHP applications depending on what is needed. If only a single functionality, say blogging, is required, a tool like WordPress wins the choice easily. It is simple to install, works on regular web hosting services, and has a very convenient user interface.
However, if more than one set of functionality is needed, or there are plans for growth, then Midgard is a better choice. With the slight initial cost of setting up a heavier system there is suddenly a much more robust framework and all its different integrated functionalities available.
Another point to consider is that in addition to regular web publishing functionalities, the Midgard Framework also provides a set of business tools. With Midgard it is possible to manage projects, sales contacts, help desk requests and product order fulfillment.
Room for improvement
Even though current Midgard and its Framework provide many benefits for organizations using them, this doesn't mean there isn't room (or need) for improvement. There has been talk of approaching the issues from several angles:
These focus areas and the MgdSchema object abstraction system being worked on by Piotr Pokora together promise to make 2005 a very interesting Midgard year.
Issue with communication
Currently the Midgard Project website makes a rather poor job of explaining the differences between regular LAMP CMSs and Midgard. I hope this posting clarifies some of the ideas of using a robust framework in addition to the regular common LAMP tools.
To support this I coined the designation LAMP+M to describe the Midgard Framework when writing the OpenPSA 1.10 release announcement.
Daniel Reichenbach suggested using the phrase Midgard: the glue in LAMP.
Posted on 2005-01-07 20:51:48 UTC to Midgard. 0 comments.
One frequent question I see on #midgard is how to customize the default navigation options shipping with the MidCOM template site. In my opinion, there are two options: Either stick with the existing navigation styles and customize via CSS, or roll your own in PHP.
MidCOM provides a wonderful tool called Navigation Access Point (NAP) for site designers want to create their own custom navigation systems. It provides a PHP programming interface for listing the site structure. First, a bit of NAP terminology:
- Node
- Directory, or subtopic in the MidCOM site structure
- Leaf
- Page, or article under a node
- Children
- Both nodes and leaves under a given node
- Root node
- The first level node, or front page of MidCOM site
Constructing the navigation happens in two steps:
- Figure out where you are:
$current_node = $GLOBALS["midcom_site"]['nap']->get_current_node();
- List the children of the node:
$children = $GLOBALS["midcom_site"]['nap']->list_child_elements($current_node);
The $children array contains both nodes and leaves under the $current_node in NAP array format which you can then traverse:
foreach ($children as $child) {
As we're listing all child elements from the node instead of only nodes with list_nodes() or leaves with list_leaves() we next need to instantiate correct child type for display:
if ($child[MIDCOM_NAV_TYPE] == "node") {
// This is a subtopic, instantiate it as node
$node = $GLOBALS["midcom_site"]['nap']->get_node($child[MIDCOM_NAV_ID]);
// Display the link in whatever way you want
echo "<div><a href=\"".$node[MIDCOM_NAV_URL]."\">".$node[MIDCOM_NAV_NAME]);</a></div>\n";
// This is where you would place a call for listing children of the node
} elseif ($child[MIDCOM_NAV_TYPE] == "leaf") {
// This is an article (or event or some other document type)
$leaf = $GLOBALS["midcom_site"]['nap']->get_leaf($child[MIDCOM_NAV_ID]);
// Display the link
echo "<div><a href=\"".$leaf[MIDCOM_NAV_URL]."\">".$leaf[MIDCOM_NAV_NAME]);</a></div>\n";
}
And there you have a very simple navigation listing of children under your current directory. You can easily modify this to list children of your root node by switching from get_current_node() method to get_root_node() method.
This example also doesn't check for possible content visibility settings. You can check for these using the MIDCOM_NAV_VISIBLE boolean in the node and leaf arrays.
In the other news, if you get error "Apache2(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80" when restarting Apache after addition of a new VirtualHost with datagard, the problem is that you have multiple "Listen 80" directives in your Apache configuration. Comment out the one in /etc/midgard/apache/httpd.conf.
Figured this one when troubleshooting with Robert Guerra from Canada.
Posted on 2005-01-08 19:48:12 UTC to Midgard. 0 comments.
Based on some chats today and yesterday with Privaterra and others, here are couple typical new Midgardian gotchas:
Fatal error: Allowed memory size of 8388608 bytes exhausted when trying to create a subtopic
Currently MidCOM's component listing used in the "Create subtopic" dialog needs quite a bit of memory. While solution is being planned, the easier way is to edit your php.ini and set memory_limit to something like 32M
MidCOM's content authoring interface doesn't look right
If your MidCOM AIS doesn't look like in the screenshots, the most likely reason is that the AIS CSS or images are not getting loaded. To fix this, ensure that your style includes the <(head-extra)> call somewhere within the HTML <head /> section.
In addition, if you're using MidCOM 2.x you need to ensure that the static directory where MidCOM's CSS and image files are stored is symlinked under your DocumentRoot. To do this, run:
ln -s /usr/share/pear/midcom/static /var/lib/midgard/vhosts/www.example.net/80/midcom-static
The MidCOM site template on my site doesn't update when I update the midcom-template package
The Midgard website creation instructions instruct using MidCOM Site Template through Aegir's Template functionality. With this functionality the a site-specific version of the midcom-template gets created. And this obviously will not be updated when you upgrade MidCOM.
You can easily switch the site to using MidCOM Site template in shared mode. To do this log into Aegir as System Administrator, go to Websites, and open your site for editing (you have to click it twice to get the details to the right-hand frame). Then simply change the value of Root page to MidCOM Site Template/template_midcom.
How do I blog with Midgard CMS?
Once you have a MidCOM-powered site set up, creating a weblog is very easy. Just Log in to your site, click Create page and then Create subtopic. You will be presented with the MidCOM topic creation form. Fill in the URL name and Title, and select type as News listing (de.linkm.newsticker).
The MidCOM newsticker is a powerful news posting system with easily customizable templates, and support for features like RSS and remote weblog editors.
If you want to enable user comments, there is a short HOWTO available.
And finally, if you're blogging about Midgard, please let me know. We'll be more than happy to add you to Planet Midgard. Making a hackergotchi of yourself would be a nice bonus :-)
Browser says my site is latin-1. I thought Midgard used UTF-8 as default?
Midgard 1.6+ uses UTF-8 character encoding by default to support better internationalization. However, Apache uses latin-1 encoding by default, and so unless your layout specifies otherwise by having a line like this in the <HEAD /> section:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
The other, and more reliable option is to edit your httpd.conf file and add the line:
AddDefaultCharset utf-8
This will cause Apache to serve all documents as UTF-8 encoded.
Note: It can be dangerous to have the site (as recognized by browser) and Midgard use different character encodings. As the content is also edited through the browser this can cause broken characters to get in. Switch to serving your site using correct encoding as soon as you can!
Posted on 2005-01-11 22:16:27 UTC to Midgard. 0 comments.
Today we secured funding from two clients for developing an integrated search engine into the Midgard CMS. The project will be undertaken by Torben Nehmer and will also improve Midgard's metadata capabilities.
The idea for this new search implementation originates from the Lucene session of OSCOM 4 conference. Instead of running a separate spidering process, MidCOM will update the search index every time content is changed. Search results will be handled as Midgard objects, allowing their respective components to handle display of individual items. This means that photo records in search results can display a thumbnail, and news items publication date.
Other Midgard applications like OpenPSA can also implement the indexing system into their saving routines, making information much more easily available.
This isn't the first time Midgard is going to have an integrated search system. Old, pre-1.0 versions of Midgard implemented SQL LIKE queries for searching, and an old Midgard2 server built by Ami Ganguli had an XML-RPC based indexer. Unfortunately Ami lost the source code for that and it was never deployed outside Stonesoft's extranet.
Posted on 2005-01-12 08:33:39 UTC to Midgard. 0 comments.
I really like this comment in CMS Watch's latest Web Content Management Marketplace article:
Even the open-source project Midgard has found a base of sorts in Scandinavia, and has grown through a loose network of developers around the Baltic Sea into a kind of new CMS Hanseatic League.
(Trend #2, Vikings Cometh?)
When you look at the Midgard Who's Who, most of the active developers really are from the ancient Hansa countries around the Baltic sea. Finland, Sweden, Norway, Russia, Germany, Poland, Belarus. This doesn't limit the developer community only to a particular area, but it shows where Midgard is most widely deployed.
The Hansa comparison works quite well, as the historical Hansa was a network of cities collaborating to provide better security and trade access to their merchants. Similarly the Midgard Community is a network of software developers collaborating to provide a better content management system to their clients.
Some of the other trends sound familiar as well. Midgard has always worked "beyond Internet Explorer" (trend #5), and more so after Midas brought WYSIWYG editing into Mozilla 1.3 in 2003. As reported yesterday, Midgard will also gain repository search (trend #6) in next month or two.
The call and requirement for Simplicity (trend #4) is also there. Midgard user interfaces have grown quite feature-packed, and steps must be taken to simplify and make them more intelligent. Projects like GNOMEgard desktop integration, datagard installer and the site creation wizard aim at this. But in addition to those, the whole Midgard developer community must learn to work more closely with usability guidelines.
Posted on 2005-01-13 22:07:09 UTC to Midgard. 0 comments.
Hot on the heels of my previous Midgard CMS tutorial, "Creating custom navigation with MidCOM, here is a new one about adding categories to a Midgard-powered blog. I've written this in response to Robert Guerra's questions.
Midgard CMS contains a powerful PHP-level data abstraction layer called datamanager. With datamanager it is possible to freely modify the content fields and editing widgets used with any component.
The first thing when adding new categories is to make the category field array. Robert's example was:
"category" => array(
"description" => "Category",
"datatype" => "text",
"location" => "parameter",
"widget" => "select",
"widget_select_choices" => array (
"Privaterra" => "Privaterra",
"Midgard" => "Midgard",
"Travel" => "Travel",
"Security" => "Security",
),
),
While I would use more descriptive keys than cat1 for the categories, the actual field definition looks correct.
What you need to do next is to copy the default de.linkm.newsticker
schema from the
component API reference and add your own field
definition there.
it is the area starting with:
"default" => array (
"name" => "default",
"description" => "News Article",
...
Copy that area into a text editor (or just your clip board), and
add the category block you've made into the "fields" array. A
good place to do that would be between "title" and "abstract".
Then you need to store this new schema definition into your Midgard
setup as a snippet.
Go to Aegir, select the "Snippet" tab from the left, and create
a snippet directory named "sitegroup-config". Then under that create
another snippet directory named "de.linkm.newsticker" by clicking
"New" on the right-hand frame's menu.
This is the default location used for MidCOM's configuration. You don't
need to follow that convention but I'd recommend it.
Now that you have the snippetdirs created, click "New" (again in the
right-hand frame), and create a snippet named "schema-blog", and
paste your schema array there.
Then you need to configure your newsticker to use the new schema. Here
you have two options, either set it to be used by all "newsticker"
folders on your site, or only your blog.
To use it for all newstickers, create another snippet named "config" in the /sitegroup-config/de.linkm.newsticker directory, and in that snippet
place the following:
"schemadb" => "/sitegroup-config/de.linkm.newsticker/schema-blog",
If you want to enable it for only one newsticker folder (or override
the default specified above), you can do this by going to the newsticker
folder on site, and clicking the "Component configuration" toolbar
item. Scroll down the form, and enter your schema's path in the
"Path to the schema database" field:
/sitegroup-config/de.linkm.newsticker/schema-blog
Now your blog should have categories enabled. I'm not sure how
Ecto handles them, but probably the next time you refresh your posting
list there, the category selections should appear to the editor. At
least that is how it works in MarsEdit. The categories will also appear
in the RSS feed generated from your blog. But they won't yet appear
on your site. For that you need to modify the output templates of
your blog, and that is the subject of another lesson :-)
Note: the steps needed for adding simple category support to your
blog might sounds exceedingly difficult. However, it has to be kept
in mind that you can use the exactly same technique for controlling
all data structures on your site (adding new content fields to
articles, photos or whatever). There is more information about
modifying schemas in MidCOM schema documentation.
Posted on 2005-01-14 17:41:37 UTC to Midgard. 0 comments.
After quite some planning, I've today started coding a site creation wizard for Midgard CMS. The goal of this wizard is to make the Midgard learning curve less steep for new users and the site creation process more efficient. The specifications for the wizard can be found in mRFC 0007: Midgard Site Creation Wizard.
The site wizard is being built in MidCOM CVS HEAD, component midgard.admin.sitewizard. Currently the component loads correctly, and lists all regular (non-admin and non-attachment server) Midgard websites in its navigation array. The first form in the wizard, "Select organization" has also been implemented but is so far non-functional.
I expect to get first functional versions of the component done during monday. Before that, this is how it looks like:
And in Finnish:
As the Site Wizard operates as a regular MidCOM component, it enjoys all the regular benefits like configuration, localization and templating. This will enable hosting companies to deploy the site wizard using their own branding and terminology.
Posted on 2005-01-18 09:25:10 UTC to Midgard. 0 comments.
Yesterday I got the mRFC 0007 compliant Site Creation Wizard for Midgard CMS into feature-complete state for phase one.
This enables Midgard users and developers to test and comment the tool while I refine the user interface and help texts. Here's a screenshot tour of the current wizard
1. Organization selection screen. Here the user can either create a new sitegroup or work with an existing one. If no sitegroups exist the latter option is hidden.
The screen also supports defining disk space limits for the new Quota feature if enabled in Midgard installation.
2. Website creation. Next the user will be able to enter the hostname of their new Midgard site. Currently enabled Advanced options are setting a user-defined port and directory prefix. When the host is created the site wizard will also look for an initialization interface in the selected site template and create data structures like a content tree if necessary.
2.1. Website configuration. After the website has been created and initialized the wizard checks if there is a Datamanager compatible configuration interface in the site template. If one exist the user will be directed to the website configuration form. The form enables changing different parameters used by the site template.
3. Style selection. After a website has been correctly set up the user can select a style for their website from a set of templates installed on the server. The selected style template will be created as a inherited style owned by the organization, and will be completely editable by the site administrators.
Plans for the style selection screen include displaying screenshots and licensing details of the templates in the list. The list will also include a Custom style option enabling site builders to start from scratch.
3.1. Style configuration. Just like website templates, the style templates can contain a datamanager compatible configuration interface. Styles can use this configuration interface to enable users to easily change things like colors and images in the layout. If a configuration interface is detected in the style the user will be directed to it after selection.
4. Finish. After style has been correctly configured the new Midgard site should be running, provided that corresponding Apache Virtual Host settings have been made using datagard. In the future this screen should determine the status of the virtual host and give user instructions on what still needs to be done, or simply direct to the newly created website if everything works.
At this stage I would really appreciate comments and testing on both the user interface and functionality. I sent quick setup instructions to the midgard-dev list yesterday.
The basic principles while creating the wizard have been:
- Enable only the UI options the user can actually use at each stage
- Both PHP and JavaScript are used for hiding or disabling options as needed
- Let the site template handle most of the setup logic
- Show sensible error messages to the user
- Roll back and clean up properly in case something fails
The Midgard Site Wizard will be the first UI seen by users after Midgard 1.7 installation, and so should be as clear and usable as possible.
Posted on 2005-01-21 12:34:20 UTC to Politics. 0 comments.
EU ministers of agriculture will have a fishery meeting on Jan 24th. The meeting agenda includes software patents.
The agriculture ministers tried to make a decision on the new European Patent directive earlier, but the Polish agriculture minister, Wlodzimierz Marcinski saved European software business by requesting the withdrawal of patents from the agenda.
I've written the following (in Finnish) to Finland's Minister of Agriculture and Forestry, Juha Korkeaoja and his staff:
Euroopan maatalousministerit kokoontuvat keskustelemaan EU:n
kalastusasioista 24.1.
Samaan tapaamiseen on aikataulutettu neuvottelut EU:n ohjelmistopatenttidirektiivistä, jotka hylättiin jo kerran
käsittelystä Puolan maatalousministerin aloitteesta.
Millä perusteella tämä asia voisi olla maatalousministerien
päätettävissä?
Ohjelmistoalan yrittäjänä olen seurannut huolestuneena miten
EU suurten Yhdysvaltalaisten ohjelmistotalojen lobbaamana haluaa
antaa kuoliniskun oman maanosansa ohjelmistoteollisuudelle.
Patenttien alkuperäinen ajatus oli tuoda uudet innovaatiot koko
ihmiskunnan käyttöön. Porkkanaksi keksijälle keksinnön
dokumentoinnista tarjottiin rajoitettu yksinoikeus keksinnön kaupalliseen hyödyntämiseen.
Ohjelmistopatentit kierouttavat tätä alkuperäistä ajatusta
mahdollistamalla suuryrityksille monopolin toimialan useisiin
tavallisiin ja itsestäänselviin toimintatapoihin. Patentteja
myöntävillä tahoilla ei ole tarvittavaa kompetenssia ymmärtää
ohjelmistopatenttien järkevään toimintaan tarvittavia ainutkertaisuusvaatimuksia.
Täten haluaisinkin tietää miten Suomi voi EU:n jäsenmaana
hyväksyä pienelle ja syrjäiselle maalle elintärkeän pienyritysten
harjoittaman ohjelmistoteollisuuden toimintaedellytysten merkittävän
heikentämisen.
Story via Ronald Bultje.
Updated 2005-01-24: Poland was able to delay the decision again.
Posted on 2005-01-24 13:59:48 UTC to Business. 0 comments.
Expect some future announcements related to this.
The technical side of this localization was very easy, as Midgard's UTF-8 mode worked like a charm and the convert tool helped.
Posted on 2005-01-25 20:29:29 UTC to Life. 0 comments.
During the winter there is no motorcycling to be had, and so I use public transportation. To get to and from urgent meetings I usually take a taxi. The taxis in Helsinki region are usually very nice and high-techy. The drivers use a moving map GPS systems for orienteering, and the taxis can be called via SMS.
The SMS ordering system is very nice because it bypasses the long queues in the taxi center and go directly to the cars. When a driver takes a job you get the an SMS notification with the car number. To order a taxi, send an SMS to number 13170 containing:
CITY STREET NUMBER, for example
Espoo Sepetlahdentie 9
This is all very nice. However, today has not been a good taxi day.
- The first cab driver of the day was visibly drunk, and the whole car stank of old booze
- The second driver drove cheerfully past Rambo and I when we were waiting on the parking lot, and kept driving away from us every time we walked towards it
- ...and finally, the third driver arrived 15 minutes late and needed constant advice to avoid getting lost in the city
Oh well, now on to the flight instrument training that is part of FCF's PPL(A) theory course.
In the other news, Midgard CMS got a new WYSIWYG editor alternative thanks to Nico Kaiser. TinyMCE looks very promising, especially with the integrated XHTML and CSS support. I installed Nico's patch to my test server, and it works quite well although configuration interface is still missing. Thanks, Nico!
Posted on 2005-01-27 21:40:22 UTC to Midgard. 0 comments.
This week I've been working on revising the Midgard discussion forum component to a usable shape. While the old version was OK when dynamically loaded as a comment system for blog postings or photos, it lacked the functionalities needed to make it a real forum.
Main work with this new version was to port the forum to utilize datamanager, MidCOM's data abstraction layer. This enables usage of the communityhtml data type for bbCode support, and makes it possible for the site administrators to add new data fields for comments and threads using a simple configuration format. The complete output of the component can be modified using MidCOM's templating model. The default output templates now provide many hooks for styling via CSS.
In addition to datamanager support, several other features were added:
- Moderators and administrators can now delete posts
- Threads are now shown together with posts in the "latest" view
- Threads have nicer, title-based URL names
- Thread list is now split to subpages, with configurable number of threads per page
- Threads are not listed in site navigation by default
- Subthread support has been removed for better clarity, performance and phpBB compatibility
This new and more usable version of the net.nemein.discussion component is available in MidCOM CVS. However, many more improvements are being worked on.
Tier 1: Better discussion board
- "Notify me of new messages in this thread" subscription system instead of sending new comments to thread author
- Native anonymous posting support similar to the Midgard Wiki
- Datamanager-based configuration UI
Tier 2: External interfaces
- RSS 2.0 output (both all latest comments and per-thread)
- wfw:comments API support
- Gravatar support
- phpBB import and migration tool
- Easier addition of comments support for blogs powered by de.linkm.newsticker
- Skipping MidCOM cache engine in midcom-template when a comment is submitted
Tier 3: Better user experience
- User registration and avatar handling with the net.nemein.personnel component
- Caching number of posts per username
- IP, domain and username blacklisting support
- Providing thread moderation tools
- Allowing thread editing and deleting only for the poster, not all owners
Most of this work will be financed by two of our clients, an ISP and a radio station. I will implement tier 1 and some tier 2 features soon myself, and the rest will wait until Torben gets enough time from his work on Midgard's new integrated search engine.
Now the discussion forum is only 1843 lines of code including layout templates. The reason why it was rewritten only now is that I was unnecessarily intimidated by datamanager's creation mode. However, after a bit of thought it proved to be a surprisingly simple API to work with.
This blog post has been written in Pullman Bar powered by Velkopopovický Kozel and Cohiba Siglo III. Next on the agenda is the radio technology lecture of the PPL(A) course.
Posted on 2005-02-03 10:13:28 UTC to Midgard. 0 comments.
We had a pretty interesting meeting with Jukka Zitting in Ilves last night. Jukka is the original author of the Midgard CMS, and has been on hiatus from the project since 2000. Now he has started his own company, Yukatan with plans of providing JCR-based integration services for Content Management Systems.
JCR, or Java Content Repository is a generalized programming interface for storage back-ends of different Content Management Systems. JCR has been standardized in the JSR 170 specification. The specification is quite new and only implemented in some CMSs so far. Jukka's first contribution to the spec was developing Remote Method Invocation add-on to enable external Java applications to interface with any JCR-compatible CMSs.
While Midgard CMS has been developed in C and PHP, and the JCR specification is quite Java-specific, these two can be connected using JNI, Java Native Interface. This will give Java applications full access into Midgard content and data structures. While PHP will still remain the actual content management interface for Midgard, Java's possibilities for integration and desktop or mobile application development are very promising.
This is what the Midgard architecture will approximately look like with MgdSchema and JCR:
Jukka has already started examining MgdSchema for JCR development possibilities. The development work will start this month, and we expect first running version in March, depending on the state of the MgdSchema project.
The Java Content Repository implementation for Midgard will be funded jointly by Nemein and Yukatan.
Posted on 2005-02-04 12:28:03 UTC to Midgard Oscom. 0 comments.
Lots of Content Management Systems strive to
provide meaningful URLs. With CMSs meaningful URLs usually
mean mapping the internal content structure of the system to a
filesystem-like tree hierarchy, which has the downside tying
the URLs into the site structure.
When the site structure is reordered the links can easily
be
broken. While sensible CMS deployments set up redirectors
for most popular URLs, and a user-friendly 404 not found page,
it is still an annoyance to people linking to the pages. As
cool URIs don't
change, these solutions are not enough.
Here the blog world comes to help by
having introduced the PermaLink concept.
PermaLink is short for Permanent Link, a link that the CMS or
blog system being used ensures will remain current. In blog
systems these PermaLinks are often displayed as a link on the
page, or identified with the pound (#) sign. PermaLinks are
also utilized in syndication specifications like
RSS 2.0 element.
While this helps with aggregation and blog linking, it doesn't
make linking permanently to CMS-powered sites any easier. On
most real sites powered by a CMS it is not desirable to display
words like "PermaLink" in the page templates. So what is needed
instead is a more invicible, and machine-readable solution.
Again, the blog world has already come up with a solution for
this. Several blog systems utilize tags
for
RSS autodetection. For example, the Firefox browser looks
for this tag and
enables feed subscription if it has been detected.
In similar vein, I would like to propose usage of tags for
making PermaLinks machine-readable. Here's what I added to
Midgard CMS
today:
<link rel="bookmark" href="<PermaLink URL>" />
When embedded into the HTML block this way, it is already
recognized by Mozilla and displayed in the "Page Info" window:
Preferably different authoring and content management tools
would become aware of this tag and start looking for it. When
the user would insert a link to a document, the authoring tool
could make a HTTP GET request to the URL, and if the PermaLink
could be found from there link to it instead. That way
permanent linking would be completely transparent to website
authors.
Updated 2005-10-06:
Switched from rel="PermaLink" to rel="bookmark", as suggested by
the Microformats
folks.
Posted on 2005-02-04 15:39:51 UTC to Midgard. 0 comments.
Finland is a
country with three official languages, and many organizations
here want to provide their websites in multilingual format.
While Midgard CMS
supports storing
multilingual content in same content tree, this is still
not widely used. A far more common strategy is to use
language prefix URLs.
With language prefixes each translation of a site has its own
content tree starting from the language name, or 2-letter code.
This has the advantage of allowing slightly different content
structure to be presented on different translations. For
example, a company might want to present products differently
to the domestic and international markets. It also makes it
easy to tell what language the content behind a link is in.
To make a
MidCOM site multilingual there are two steps.
First,
set up the website normally. Then log into the AIS interface and create
top-level topics for each language you want to have on your
site. It doesn't matter what component is used to drive those
topics, but very often it is de.linkm.taviewer. The
URL name of the topics should be the two letter country code.
The top-level country topics are actually the front pages of
different language versions of the site. The site structure can
be created freely under them, although it would be recommended
to make the site structure quite identical between languages.
Then you have to make MidCOM aware of the
language topics. This is done by creating a configuration
snippet (/sitegroup-config/midcom-template/config) for
the MidCOM Site Template.
Log into
Aegir and go to the Snippets tab. There you should
create a sitegroup-config top-level directory to the
same
sitegroup where the site is in. Then create a
midcom-template snippet directory under that. In this
directory you can place the configuration PHP code in a
config snippet.
Configure the languages used on the site:
// Languages enabled on the site, and information about them
// in format "URL prefix" => "Language code"
$GLOBALS["midcom_site"]["site_languages_array"] = array(
"fi" => "fi", // Finnish
"en" => "en", // English
"ge" => "ka" // Georgian
);
// Default language
$midcom_site["default_language"] = "en";
$midcom_site["site_language"] = $GLOBALS["midcom_site"]["site_languages_array"][$midcom_site["default_language"]];
Set MidCOM's language based on the URL prefix:
if ($_MIDGARD["self"] == $GLOBALS["midcom_site"]["uri"])
{
// On-site language
if ($_MIDGARD["argc"] > 0
&& array_key_exists($_MIDGARD["argv"][0],$GLOBALS["midcom_site"]["site_languages_array"]))
{
$GLOBALS["midcom_site"]['site_language'] = $GLOBALS["midcom_site"]["site_languages_array"][$_MIDGARD["argv"][0]];
}
}
elseif ($_MIDGARD["self"] == $GLOBALS["midcom_site"]["uri"]."midcom-admin/ais/")
{
// AIS language
if ($_MIDGARD["argc"] > 0)
{
foreach ($GLOBALS["midcom_site"]["site_languages_array"] as $prefix => $code)
{
$language_topic = mgd_get_topic_by_name($GLOBALS["midcom_site"]["root_topic"]->id,$prefix);
if ($language_topic
&& ($language_topic->id == $_MIDGARD["argv"][0]
|| mgd_is_in_topic_tree($language_topic->id, $argv[0])))
{
$GLOBALS["midcom_site"]['site_language'] = $code;
}
}
}
}
This is all needed to make a site multilingual. With this setup
the root URL of the site can be used for a splash screen
presented to users for selecting language.
As an option, you can also utilize HTTP
Language Negotiation for automatically directing the user
to correct language version of the site. To do this, add the
following to the midcom-template config snippet:
// Language negotiation
if ($_MIDGARD["uri"] == $GLOBALS["midcom_site"]["uri"])
{
if ($_SERVER[HTTP_ACCEPT_LANGUAGE])
{
$langstr = explode(',',$_SERVER[HTTP_ACCEPT_LANGUAGE]);
if (is_array($langstr))
{
foreach ($langstr as $language)
{
$language = substr($language,0,2);
if (array_key_exists($language,$GLOBALS["midcom_site"]["site_languages_array"]))
{
header("Location: ".$GLOBALS["midcom_site"]["uri"].$language."/");
exit;
}
}
}
}
// No language preferences matched, go to default language
header("Location: ".$GLOBALS["midcom_site"]["uri"].$GLOBALS["midcom_site"]['default_language']."/".$suffix);
exit;
}
Date output in MidCOM is tied to the site
language, and uses PHP strftime() function for
output. For this to work your server must have the locale you
need installed on Unix level. On Debian the locales can be
installed via the following command:
/usr/sbin/dpkg-reconfigure locales
Select the locales you need from the list and they will be
installed by dpkg.
Updated 2005-09-27:
This tutorial is now maintained in
the Midgard Wiki.
Posted on 2005-02-07 08:50:39 UTC to Life. 0 comments.
Hiidenhirven hiihto is the annual relay biathlon race between different historical re-enactment clubs in Finland. Kerttu was skiing this year in the Harmaasudet team, and so I went to watch the competition.
The Hiidenhirven hiihto biathlon is arranged annually by Sommelo. The idea in the race is to ski around Sommelo's Pukkisaari village island with Viking-age equipment, and then try to hit a model elk with two arrows. The competition is arranged as a relay of four-person teams, one which has to be female.
I've seen previously the 1999 race, which Harmaasudet won. Since then the competition has gotten tougher. This year's race was especially difficult as the there wasn't enough ice and the competition had to be held inside the island.
This year the race was won by Smolensk, Russia based team Viking-Nevo, with last year's winners, the Indian re-enactment club Torahammas finishing second. Harmaasudet were fourth of nine teams, rising two positions from 2004.
It was very nice to see the camaraderie between the different historical associations after the game. All were gathered around a bonfire in the reconstructed village swapping stories over traditional Finnish pea soup.
After the event we went to Tamminiementien kahvila for some coffee, pastries and chat. Arwen and Kerttu looked definitely out-of-place sitting in their Viking clothes in the 19th century surroundings.
I was invited to the Harmaasudet team party, and we spent the evening in Pena's sauna singing, having snow fights and toasts.
Unfortunately my camera battery went dead right in the beginning, so all pictures are taken with the relatively crappy phone camera.
Posted on 2005-02-16 16:05:00 UTC to Business Openpsa. 0 comments.
Centre for Open Source Software (COSS) has published a very nice case study in Finnish about utilizing OpenPSA for resource and work shift planning.
Here are quick translations of some key quotes:
The Open Source application OpenPSA turned out to be the best solution when Pihlajalinnan lääkärit Oy, a company renting medical doctors was looking for a resource planning tool.
"We were able to immediately choose the modules we needed and leave out all the unnecessary features from OpenPSA. Customization work required much less programming than in closed solutions", said board member Heikki Aatola from Pihlajalinnan lääkärit Oy board.
Nemein, the consultancy that deployed the OpenPSA solution gets praise from the client.
"Cooperation with Nemein went well. Right from the beginning they were able to explain the solution clearly. We understood immediately how OpenPSA works, what customization would be required, and how much the needed operations would cost. This is unfortunately not what can be said about most other service providers", said doctor Ville Ojanen.
OpenPSA is a freely available Professional Services Automation system built on top of the Midgard Framework.
Posted on 2005-02-21 17:40:17 UTC to Midgard. 0 comments.
The Midgard style templating system was designed back when site layouts were still mostly in-line HTML tables. As such this caused some problems with the new standards-based school of web design, as there it is desirable to place the layouts into separate, linked style sheets.
The obvious solution to this was to make Midgard's style elements URL-addressable. I made first commit adding this feature to midcom-template last week.
MidCOM site template now serves elements from the site style under /style subdirectory. For security reasons the elements must have a parameter midcom/allow_serve set to true. If the element names have a .css or .js suffix the system will also set correct mime types for them automatically.
This way it is easy to serve as many linked CSS or JavaScript files as needed from the Midgard style system. Here's how it looks like in Aegir's style manager:
Next up will be supporting Flash cross domain policy files in /crossdomain.xml if set. These are often needed in web campaign setups where Flash front-end and Midgard back-end reside on different servers.
Oh, and according to the latest blog meme:
Privateers, privately owned vessels licensed by government to attack enemy commerce, seized the mails, held them for ransom and robbed them of any gold or silver they contained.
From Conquerors of Time by Trevor Fishlock.
Posted on 2005-02-24 10:12:34 UTC to Business Openpsa. 0 comments.
I've spent the last two days in the Digital Business Ecosystem (DBE) Workshop arranged by Hermia Science Park in Tampere. DBE is an EU-funded Open Source technology for enabling small and medium-sized enterprises to work together in P2P fashion.
DBE basics
The DBE website is quite bogged by acronyms and marketese, but what the project actually boils down to is an application called DBE Servent written in Java. The Servent communicates with other DBE installations using a P2P protocol and some intelligent networking tools. The DBE Servent is used by business applications for communicating with each other using a set a defined Web Services.
DBE itself doesn't define these Web Services, it only provides the "wire protocol" for the Web Services to talk with each other, and ensures that different nodes in the network find each other, and find the services they require. The actual services are provided as SOAP Web Services conforming to a specified WSDL definition. This means that the applications utilizing DBE should be developed following the Service-Oriented Architecture model.
DBE is part of the €16 billion EU Framework Project 6. EU's interest in the DBE project is fostering a heavily localized Open Source business applications market, and support European SMEs in networking. The idea is that "an ecosystem of networked SMEs can evolve and adapt faster and more safely than the huge corporations". Participants in the DBE project include Sun, IBM, T6 and Soluta.net.
The development phase of the DBE project will end in 2006. Prior to that the project will make a first release of the 4Mb Java-based DBE Servent in April 2005. The participants are planning to move the project to SourceForge after this first release.
OpenPSA possibilities
With OpenPSA, the case for using DBE would be quite clear. We've already been thinking of implementing Web Services to make it easier for networked companies to work with each other more easily, and what DBE would add on top of those would include caching and asynchronous RPC support. In practice this would be we would only need to define the APIs used for the different services in OpenPSA, and then pass those to DBE. The Servent would then handle the actual connections between the different installations and dealing with nodes that are offline.
This way OpenPSA would enable organizations to manage all their operations with parners and subcontractors using DBE-compatible applications transparently. DBE-enabled OpenPSA would look approximately the following:
Supporting the Service Oriented Architecture would be a major change in OpenPSA code. We would have to encapsulate all data handling parts of the system with classes that would be able to store and fetch information using both local Midgard storage and remote Web Service APIs.
DBE risks
While the DBE concept sounds promising, it is still an unreleased piece of software. Additionally, it has not been tested outside academic circles, so the promises of scalability and automatic networking might not materialize in the real world.
Another problem is standardization of the Web Service interfaces used for different business scenarios or transactions. It has traditionally been a big problem to get an industry to work together on developing standard vocabularies and APIs, and DBE doesn't really address that. As the developers say, it is only the "TCP for business applications".
This might or might not be a problem. We could easily define a set of APIs using the taxonomies familiar in OpenPSA, and the rest of the industry could just follow us. This is what has pretty much happened with the different ad-hoc standards defined by the blogging world. However, it would require that our API would be generic enough, and that the developers of different project applications would find it easily. This all would hinge on the popularity of the DBE platform.
Project possibilities
The risks and non-existing user base of DBE are somewhat alleviated by EU funding for first companies developing services for the platform. We haven't yet made any decisions but we'll definitely think about utilizing DBE. OpenPSA needs some kind of Web Services interface to support networked business, and despite risks this would be a quite appealing solution.
Posted on 2005-02-27 13:50:04 UTC to Flying. 0 comments.
I had my first flying lesson yesterday. We went to the Helsinki-Malmi airport with Kerttu in the morning to fly with the simulator, and to listen for the MIK flight training briefing. I had booked the first flight for tuesday, but surprisingly there was a cancellation and my instructor agreed to take me for a spin.
I've been attending a Private Pilot's License theory course arranged by MIK and Finnair Flying Club since November, and I was originally planning to fly the required 45 hours with them as well. But when it started to seem like the amount of students would make for some capacity issues with MIK I accepted an offer from BF-lento, a private flight school. This enabled me to start flying already now, instead of waiting until I finish the ground exam.
The first flight was quite simple. We took off from EFHF, and the instructor flew us out of the DEGER reporting point, and gave the control to me. I then flew around for 20 minutes off the shore of Porvoo before taking us back to DEGER. I was surprised how small movements were needed for controlling the plane, and of how easy it was to follow the airspace with the radio. The plane felt easier to keep going in right directions than the simulator.
The snow sparkled in the late February sunshine, and the world looked really nice. While the flight was short it made me very enthusiastic about the training, and about hopefully attaining the pilot's license in the future.
Posted on 2005-02-28 21:54:35 UTC to Midgard. 0 comments.
Nemein is sponsoring a contest to design a new user interface to the Midgard Open Source Content Management System. The winning designer will receive an iPod Mini portable music player.
The Authoring Interface System is the main editing and administrative interface seen by users of Midgard CMS. While several accessibility and usability improvements have been made, the current AIS interface looks quite boring and industrial:

To fix this situation we're looking for a new, standards-compliant design of the interface. The design should follow these points:
Go to the contest page to get more information.
Posted on 2005-03-01 21:49:00 UTC to Openpsa. 0 comments.
-
Design your product or service. This is the single most important step for business success. You should be clear enough about what you offer to be able to explain it in couple of sentences.
-
Select the target market. Then either manually or by buying from some marketing firm acquire a list of companies and their contact persons. Import this to OpenPSA Contacts.
-
Create a campaign from your contacts in OpenPSA and approach them either by phone, email and regular mail. Usually a combination of these works. If your offering is a relevant one expect about 3-8% response rate.
- Start sales projects in OpenPSA Sales for the companies that show interest and start arranging meetings. Handle all contacts and documents related to the process in OpenPSA and monitor how your sales are doing by checking out the pipeline report.
-
Once you get contracts add the delivery tasks to OpenPSA Projects together with the pricing information. Track the projects by scheduling them to the Calendar and then reporting hours, expenses and mileages into OpenPSA. You can also store the project documentation in OpenPSA Documents.
-
Invoice your work based on the information in OpenPSA Reports. You can also design your custom invoice templates there. Track the payments either manually or using some financial software package.
-
Make support or maintenance contracts with the clients and handle their questions and problems using OpenPSA Support. Keep track of response times and customer satisfaction by setting SLAs and monitoring the Support reports.
-
Profit!
This has originally been written as an insert for a PHP Magazine article. Powered by a Dominican El Credito cigar and some Velkopopovicky Kozel in Pullman Bar.
Posted on 2005-03-02 20:14:25 UTC to Midgard. 0 comments.
Midgard CMS has now support for the Markdown text-to-HTML conversion tool. Markdown is an useful tool for writers that allows creation of web content with a simple text syntax.
Markdown is available in MidCOM's CVS repository as datatype_markdown. The tool utilizes Michel Fortin's PHP Markdown parser.
To use Markdown for a content field in your MidCOM site, edit the datamanager schema and set the field to use the markdown datatype. For example:
"content" => array (
"description" => "Content",
"datatype" => "markdown",
"location" => "content",
),
My blog is still powered by htmlArea, but I'm planning to start migrating new entries to Markdown as soon as I upgrade the blog's version of MidCOM. I'll blog about that later.
Updated 2005-03-03: The blog is now using Markdown as the default editing system for new blogs. As I didn't want to modify existing blog posts, I made two copies of the schema, and named them "default" and "html". Then I ran the following query through my blog entries:
$blog_topic = mgd_get_topic_by_name($GLOBALS["midcom_site"]["root_topic"]->id,"blog");
$blogs = mgd_list_topic_articles($blog_topic->id);
if ($blogs) {
while ($blogs->fetch()) {
$blogs->parameter("midcom.helper.datamanager","layout","html");
}
}
This ensured that the old posts will be using the "html" schema, freeing the "default" schema to be used with Markdown. Now when I post through Metaweblog API (using Marsedit), the post formatting will be Markdown, and when I create posts through the web I can choose between Markdown and HTML:

Posted on 2005-03-07 19:41:10 UTC to Politics. 0 comments.
Against the decision of European Parliament, the EU Council has approved the software patent directive against its own rules.
This was a clear example of how big business lobbies can thwart the democratic process, in this case threatening local IT innovation and opening the door to ridiculous US-style intellectual property lawsuits.
This is a sad day for the European economic sphere, the IT industry, and the Open Source movement. Lessig comments:
This struggle continues to astonish me. There's no good economic evidence that software patents do more good than harm. That's the reason the US should reconsider its software patent policy.
But why Europe would voluntarily adopt a policy that will only burden its software developers and only benefit US interests is beyond me.
But maybe there would still be time to do something about this?

Posted on 2005-03-11 20:59:16 UTC to Flying. 0 comments.
We visited the city of Turku in west Finland yesterday with the OH-PRT Piper Lance aircraft flown by Ilkka Koho from MIK. The weather was perfect for aviation, and the snowy Finnish countryside looked beautiful.

Here's our home from the air:

Tigert has more good pictures.

Thanks to Ilkka and Tuomas for inviting us!
Nummijärvi Fly-in
On saturday we flew to the Nummijärvi Fly-In meeting with the Alpha-Yankee C172. Very interesting event arranged on a airport built on lake ice, I even got on a short spin in a Morane Rally. Tigert has again a bunch of pictures.
In the other news...
This is my first blog post using the new Midgard support for the Markdown syntax. Really nice and productive! It is even possible to configure MarsEdit to use Markdown for previews.
Posted on 2005-03-16 20:47:41 UTC to Midgard. 0 comments.
We've today moved the MidCOM search tool into production together with the development release 2.3. Some statistics from Torben:
M-P.org needs 242 MB (Apache+PHP+data) to do a complete reindex, which means
that PHP used around 220 MB of memory for this. It didn't bother the indexer
much, it stayed at around 20 MB memory load.
During the complete reindex, which ran around 10-15 minutes we indexed 1,583
articles and perhaps one or two hundred attachments.
Not bright, but could have been worse, especially if a reindex should be
neccessary very rarely.
Once the initial reindexing has been run all new changes in the Midgard database will be automatically indexed. This means that the search tool will always have fresh results, even if new documents have been added, or old ones have been changed or deleted.
Other advantages from this new search system include the fact that the search results are component-aware, enabling us to display thumbnails for image results etc. The searches are also aware of the Midgard permission system, ensuring that users will get results from all documents they're allowed to see. The possibilities of the Lucene search syntax are also promising.

Try out the new tool by searching the Midgard site. It can also be deployed by installing the indexer and setting MidCOM template to use the xmltcp indexer plugin. I've already done this for my site and it seems to work really well.
Great work, Torben!
In the other news, I was interviewed today about flight training for the Finnish youth TV program Buusteri. The show should air on week 14.
Posted on 2005-03-17 14:47:32 UTC to Midgard. 0 comments.
Here are short notes on how I installed the MidCOM indexer for a client. The client has an intranet site running on Midgard 1.6 and MidCOM 2.1.0 on Red Hat Linux 7.3.
Install MidCOM 2.3
Download MidCOM 2.3 and install it:
# cd /usr/local/share/midgard/
# wget http://www.midgard-project.org/midc...1c9/MidCOM-2.3.0.tar.bz2
# tar jxvf MidCOM-2.3.0.tar.bz2
# ln -s /usr/local/share/midgard/MidCOM-2.3.0 /usr/local/share/midgard/midcom
Install the PHP Compat PEAR package:
# pear install PHP_Compat
Upgrade the MidCOM template site installation:
# repligard -a -i MidCOM-2.3.0/midcom-template/midcom-template.xml
Note: if you are using a MultiLang-formatted database you need to install the package via Datagard installer instead.
Install the indexer
Download and install the Java 1.4.2 runtime:
# ./j2re-1_4_2_07-linux-i586-rpm.bin
# rpm -i j2re-1_4_2_07-linux-i586.rpm
Download and install Apache Lucene search engine:
# mkdir /usr/local/share/midgard/indexer
# cd /usr/local/share/midgard/indexer
# wget http://apache.intissite.com/jakarta/lucene/binaries/lucene-1.4.3.jar
# mv lucene-1.4.3.jar lucene.jar
Download and install the MidCOM indexer:
# wget http://www.nathan-syntronics.de/midc...80b/indexer.jar
# wget http://www.nathan-syntronics.de/midc...116/xml-communication-response.dtd
# wget http://www.nathan-syntronics.de/midc...c3c/xml-communication-request.dtd
Deploy the indexer
Start the indexer daemon:
# /usr/java/j2re1.4.2_07/bin/java -jar indexer.jar
Set the site to use the indexer:
- Point your browser to http://www.example.net/midcom-admin/settings/
- Log in as administrator
- Set Which indexer backend to use to xmltcp
Reindex the site:
- Point your browser to http://www.example.net/midcom-exec-midcom/reindex.php
Note: the current indexer seems to give a big number of iconv() errors if the site is in latin-1 encoding. Switch to UTF-8 instead or wait until bug 201 is resolved.
I needed to also install the mbstring PHP extension for the indexer to work.
Deploy the search engine
Once the site has been reindexed, the only thing needed for setting up the search engine is to create a new topic handled by the midcom.helper.search component.
After that, just run searches and enjoy!
Note: if content is edited outside MidCOM using tools like Aegir, you might want to run the reindexing command from cron periodically to prevent search index corruption. Content edits made in Aegir do not currently update the index.
Posted on 2005-03-18 08:31:17 UTC to Midgard. 0 comments.
I helped Tigert to install Midgard yesterday, and the project was
quite non-trivial. The main issues were:
"repligard" binary was missing in the repligard debian package (fixed now in 1.6.3-1)
Datagard didn't change the host names of Aegir, Midgard welcome page etc. to the name of the virtualhost we created
MidgardPageCache didn't work at all, causing 404s. This was caused by having both Apache2 and Apache1 Midgard modules installed simultaneously. The DEBs should prevent this from happening
1 and 3 were clearly packaging problems, and 2 was a datagard bug. Having seen Jarkko's Fedora packages, I know the Midgard binaries
can be made to work "out of the box". Now we just need to push
the DEBs into the same standards.
Besides the host naming bug, the questions in Datagard appeared quite
confusing.
Some ideas regarding that:
Datagard could start with a "simple mode" where the system would
simply set up the database as "midgard" on localhost. Then there
would be an option for switching to "expert mode" where different
DB hosts and DB names would be possible
Datagard could also query whether the user can manage databases
without supplying a password. On some distros root can do that
with MySQL, and in those cases asking the MySQL root username/password
shouldn't be necessary
The wording of the different questions in Datagard should be fixed
to be more explanatory. Here are two mockups done by Tigert:
Installation mode selection:
[x] Easy installation - your Apache and
MySQL run on the same computer and
you just want to get things up and
running with good default settings.
Recommended for most users.
[ ] Custom installation - For people
familiar with Midgard. This lets
you customize the installation
parameters. Also you need to choose
this if your database is on a
separate server host.
[ Cancel ] [ Continue > ]
Midgard DB host selection:
Midgard Database Host
Midgard needs a MySQL database to work.
This can be either on the same server
host as Midgard itself, or it could be
a separate computer.
If you have both on the same computer,
you can just leave the field empty,
otherwise enter the hostname or IP
address of your MySQL database server.
Database host: [________________________]
[ Cancel ] [ Continue > ]
Another big point would be clarifying the different usernames and passwords used with Midgard. There are three separate:
- MySQL root account used for creating the databases
- Midgard's MySQL account used by Midgard-Apache and Repligard when connecting to
the database
- Midgard's administrator account used for logging into Aegir and SpiderAdmin
Both better wording and some automation could help with all of these three. Datagard can probe whether MySQL root password is needed, the Midgard MySQL account can default to "midgard" and a generated password, and the administrator account is by default admin/password.
I know Jarkko has been reordering datagard lately, so we could possibly fit these improvements into that work?
Posted on 2005-03-22 23:51:17 UTC to Business. 0 comments.
I'm traveling to the Nonprofit Technology Conference in Chicago, USA tomorrow to present Midgard CMS in the Open Source Content Management "SpeedGeeking" session.
Looking forward to meeting fellow Summer Sourcers and other interesting NGO people in the event...
Posted on 2005-03-24 16:51:19 UTC to Midgard. 0 comments.
The first day of Nonprofit Technology Conference 2005 started with a breakfast session where Mena Trott of Six Apart was telling about community building with blogging tools. Her examples included Save Karyn and the Star Wars Kid raising money through popularity in the weblog world.

The main idea with weblogs is to capture the personal voice of the author, and to make publishing that as easy as possible. Most blogging tools are either inexpensive or Open Source, and allow easy publication of media rich content. Another important point is that all blogs share some common user interface elements like archives, RSS feeds, comments and posts arranged by date. This makes it easier for readers to use and follow the site. The presentation ended with a demo how Ryan Jacobs from Ungana-Afrika (yes, a familiar organization) created a blog for himself in couple minutes.
The TypePad blog creation UI is quite similar in concept to the Midgard Site Wizard:
- You create an user account (in Midgard, an organization)
- You give a name to the website
- You select a layout from set of templates provided
- You select whether the blog is public or password protected
...and that's it, then you're online and ready to publish. Now the challenge for the Midgard Community is to ensure that this all happens out-of-the-box with the upcoming 1.7 release.
Another interesting point regarding blogging would be the usage of moblogs to report the field work of NGOs. For example, my roommate Jacob Patton from Free The Slaves saw this as an interesting opportunity for reporting in real time how freed slaves and human trafficking victims are being rehabilitated.
Data security
The next session of the day was Data Security in High Risk Organizations held by fellow Midgardian, Robert Guerra from Privaterra and Matt Kestian from Microsoft. An important point made in the presentation is that security is not only computer security, but also physical security.

Defense in Depth is the concept of building several layers of security. For example, one layer is the perimeter of an internal network, then comes the security of actual applications, and then things like backups and disaster security. However, data security is still just one layer. For example, one network security company I've visited had a very strongly firewalled working environment where online access would've been difficult. However, backup tapes containing all the confidential data were just lying on shelves in corridor near the office lobby. It would've been childishly easy to walk in, grab a tape, and then examine it in good time.
It is important to know what devices and services run in the network of a company, and to periodically check that they're present, working and not tampered with. It is also important to scan the network to see that nothing unknown has popped in there. The question to ask about each asset is "Is this a device I can trust?"
All devices should be examined to ensure they have all required protection like automated security patches, antivirus software, host-based firewalls and that they run only services that are really needed. It is also a good idea to keep in mind that it is usually possible to switch insecure or troublesome applications to more secure ones, like switching from Internet Explorer to Firefox.
Email communications can be secured easily by running the email protocols encrypted by SSL. Most email applications support encryption in their preferences. While this secures the communication between the email application and the server from password sniffers, it doesn't actually protect email transmitted between organizations. Solution to that is to encrypt the actual emails using tools like S/MIME or GPG. For human rights groups there is also a special-purpose email-like bulletin system named Martus.
After lunch
After lunch I helped Robert to set up SSL encryption for his Midgard sites running on Ubuntu. I also briefly met Ben Ramsey who criticized us of making Midgard too hard to install.
In the evening we went to a dinner with some people from EngenderHealth to discuss possibilities of using OpenPSA for project portfolio management in NGOs. Apparently this would require a higher-level tracking of targets and initiatives in a Balanced Scorecard-like fashion. However, as my fortune cookie reminded, "Too much confidence has deceived many a one."
After the lunch the evening ended in the Microsoft party in House of Blues. A night walk through the center of Chicago showed the old skyscrapers very beautifully.
Posted on 2005-03-25 21:36:36 UTC to Midgard Oscom. 0 comments.
The friday started with Esther Dyson's breakfast talk about the importance of Internet for philanthropy and human interaction. After that we had the Online Publishing and Content Management with Open Source Software session chaired by Ryan Ozimek. Ryan and Usha Venkatachallam of Beaconfire opened the talk by introducing the audience to Open Source Content Management in general and then we had the SpeedGeeking introductions of the different CMSs present.

What is the Matrix?
What surprised me was that Usha and Ryan recommended the OpenSourceCMS.com service as a definitive resource on Open Source Content Management. In reality that service showcases only a very narrow selection of CMS tools, all of which are low-end PHP and MySQL systems. The service also more or less feels like just an advertisement for OpenSourceHost, the company hosting some of those systems.
It should always be remembered that Open Source CMS is much more than just the lightweight tools like PostNuke and Drupal. A service like OpenSourceCMS.com misses all of the major systems like Zope, Midgard, Lenya and OpenCMS. When I refuted Usha's point on OpenSourceCMS.com being a definitive resource we ended up in argument about what then would be the recommendable resource. Unfortunately the OSCOM CMS Matrix is in really bad shape, so only service we came up with is CMS Matrix. It would be good if OSCOM could rise up to provide a better comparison service.
The Midgard Points
The SpeedGeeking model meant giving a short 5 minute "elevator speech" presentation about the system to circling groups. As the time was short, we had to keep to the point. I decided to focus on the points that differentiate Midgard from the other systems, an approach familiar to my earlier blog posts. The main ones were:
- Midgard uses PHP for scripting but provides its own Application Server that is provided as an Apache module
- The application server enables us to do cool things like NTLM single sign-on with Windows networks
- Midgard's replication system enables offline usage in low-connectivity environments like Africa, and supports real staging/live setups with multiple servers
- Besides PHP, Midgard also has native Java and Ruby support
- The "Edit this page" model reduces overhead with publishing content
- All modifications in Midgard are stored in RCS version control repository
I also introduced the group to the Exorcist concept of migrating content between different CMSs using the Java Content Repository standard.
Open Source Project Management
The CMS discussion continued over lunch, and I was invited to speak in the How to make a successful open source project panel in place of Karl Fogel of Subversion fame who had had to cancel.

The challenges of building an Open Source community include:
- Keeping the project goal clear
- Providing support and documentation
- Making the software installable
- Predictability, providing a believable roadmap and release schedule
- Ensuring that the application or component is attractive to developers
The question of roles is also important. In a balanced project there would be not only developers, but also project managers and usability experts. However, that rarely happens in a for-free Open Source projects. Developers ready to work on pro bono basis usually want to be free from the constraints of typical commercial development projects. The easiest way to ensure the availability of also non-coding resources in an Open Source project is to pay for them. The OpenUsability project tries to bring usability expertise into Open Source projects, but its impact will remain to be seen.
All Open Source projects need a selection of tools. There should at least be a bug tracker, version control system and a mailing list. Wikis can be very useful for developer conversations and user documentation. In several projects Planet-aggregated weblogs and instant messaging are beginning to override mailing list as the communication medium. Project management tools like BaseCamp could also be useful.
To get the project really rolling:
- Invest into making a working version 1.0, then recruit volunteers
- Get people who know the community the project is for
- Built usability into the development process
- Enable users and beta testers to get feedback directly to the developers
The question of documentation and "final polish" has traditionally been difficult for Open Source projects. One way to make things easier is to get the consultancies and value added resellers utilizing the projects to contribute good-quality documentation. Extreme usability sprinting can also help.
Wrapping up NTC
NTC was a nice event. Much bigger and more commercial than the typical Open Source conferences, it still had lots of interesting people and conversations to offer. However, the scope of the event being everything related to technology in NGOs, the discussions fragmented quite easily.
I've only moblogged the event, but for better pictures, there is the nten05 Flickr tag.
Tomorrow would be the Chicago Penguin Day. However, my flight is leaving quite early, so I probably will rather do some sightseeing instead. The historic skyscrapers of the center are really begging to be photographed...
Posted on 2005-04-01 15:32:09 UTC to Openpsa. 0 comments.
We're now spending a week in Rome to get a major OpenPSA development project started. The project is done for the Italian regional competence centers together with the local Midgard consultancy, Ware.it. This project will add much more granular access controls into OpenPSA, and will enable its usage as a more general project communication tool.
While we sit in the meetings with Alessio from Ware.it, Kerttu is touring the sights of the city. We're looking forward with Rambo to also doing the tourist thing this weekend. However, we'll have to see how much the trouble brewing in Vatican will affect our options, as countless pilgrims and mourners flock to the city.

Yesterday we went through the list of new features needed for OpenPSA. These include:
- Switching from hierarchical departments to more flexible concept of "workgroups"
- Having different access levels to all data, including "private", "workgroup private" and "public"
- Versioning and indexing of documents
- Jabber Instant Messaging presence notifications
- Discussion forum integration
To make these happen, we have defined a new object-oriented architecture for OpenPSA and will migrate all main modules to use it. You can also check out Ware.it's conceptual demo for CRC.

The new OpenPSA architecture will help also with the eventual MgdSchema migration.
Posted on 2005-04-01 17:19:44 UTC to Business. 0 comments.
We get asked often about the background of the name Nemein we chose for our Open Source consultancy. As Malarkey is running a thread about this, I took the time to write the explanation down:
We went with Nemein, an ancient Greek word for "to distribute, manage" for our consultancy.
The idea was to build Open Source software to enable organizations to manage their increasingly distributed and mobile, nomadistic workforce and projects.
And of course, nemein.com was free :-)
Nemein has common origin with nemesis, and is connected with the word nomad.
Here's the original company logo:

Would I choose a different name if I were to start the company today?
Probably yes. The name should be more easily pronounceable ("Nemain? Nimein? Nemes?") and should start with an A. It could also reflect the business we're in in a less cryptic way.
But anyway, Nemein has already quite good recognition in Finland and sounds different from the competitors, so I guess it isn't too bad.
At least it isn't directly from the New Media Company Generator...
Posted on 2005-04-04 14:08:01 UTC to Midgard. 0 comments.
Midgard 1.7 alpha release is now under work, and will ship the Midgard Site Wizard with a new default way for creating websites. The Site Wizard enables developers to create layout templates that can be reused and customized when creating new websites.
When a user runs the Site Wizard to create a new website, they will be presented with a list of installed style templates together with their screenshots and descriptions. When they select a style, a child style will be created into their sitegroup to allow modifications, and the site will be set to use it.
The style template can also allow itself to be configured by using a datamanager schema. This way the template designer can let users to change the colors of the template and upload their own images into it.
Here's a quick HOWTO on making templates:
- Create the template as a new style named template_Stylename
- Add your credits to the template using parameter named midgard.admin.sitewizard/template_credits
- Add a short description of the template using parameter named midgard.admin.sitewizard/template_description
- If you want to include a screenshot with the template, add it as an attachment to the style as a 130 pixel wide JPEG with name __preview.jpg
After this your style should appear in the "Select style" dialog of the site wizard:

Updated 2005-10-24: It is also a good idea to add the Display/Shared, YES parameter for at least some Aegir compatibility.
Posted on 2005-04-10 17:55:51 UTC to Midgard. 0 comments.
Taya and Lasha from Nemein Georgia were coming to Helsinki to attend some Midgard training and the MgdSchema Workshop this week. As Finland has no representation in the country, they applied for schengen visas in the German embassy.
As planned, they flew to Moscow to take their connecting flight to Helsinki, but were refused to board. The reason, as it turned out was that the German embassy had made a mistake with their visas, marking them for March instead of April. So instead of getting to the Midgard events here, they must wait in transit for another day to get a flight back to Tbilisi, the Georgian capital.
I can only imagine the frustration and inconvenience of getting turned back from the plane. This trip had been in planning since early winter, and we had all waited eagerly for it. I feel really sorry for them.
Taya writes:
we had very lots of troubles here in moscow, but finaly we changed ticket to tbilisi and get another russian visa (to stay one more day here in moscow till next flight to tbilisi, very awful and terrible situation. noone wanted to help us.
When I heard of the problem I immediately checked the visa invitations we'd sent to the embassy, and they had the correct date for April (underlined):

So the mistake indeed was at the German end. I wonder how the embassy will compensate Taya and Lasha for their troubles, and all the accumulated travel costs. The best course might be to sue the German foreign ministry.
It is really a shame that the Germans handled this so incompetently, especially as it comes on heels of a recent deportation of 52 Georgians that the Finnish frontier guard ran in a very degrading manner.
Update 18:41 UTC: As a last ditch effort, I called the "emergency line" of Finnish embassy in Moscow, and the helpful lady there arranged it so that Taya and Lasha can get new Finnish visas tomorrow morning. If this works out, the German mistake only delayed them for one day, and they can get to Helsinki tomorrow afternoon. We can only hope...
Update 2005-04-11 11:48 UTC: I just got a message from Taya that the Finnish embassy indeed delivered what they promised, and that they'll arrive today. Cool!
YES! we have visas and in several hours we will fly to helsinki
Posted on 2005-04-14 14:44:46 UTC to Business Midgard. 0 comments.
We've just announced something interesting, an expansion to the Georgian market. This new development follows the franchising strategy I've outlined earlier.
This should produce some very interesting business opportunities, and let us focus on internationalization even more strongly than earlier. We already have a translation of the website and OpenPSA to Georgian, with Midgard CMS localizations to follow...
Welcome to the team, Taya!
Posted on 2005-04-14 15:44:45 UTC to Life. 0 comments.
Torben fixed a bug in the MidCOM gallery that prevented me from uploading large sets of photos, and so I am again able to publish the more easily. To celebrate this, I've made the photos from the recent trip to Rome available online in the photo gallery.
Enjoy!


Other galleries posted were photos of Chicago and flights to Nummijärvi ice field and Turku.

Posted on 2005-04-17 11:52:11 UTC to Midgard. 0 comments.
Midgard Query Builder
Jukka developed a new query builder addition to the MgdSchema system that enables Midgard developers to easily optimize the SQL queries used in their applications.

Currently the Query Builder is available in the Midgard C API, and the PHP mapping should be relatively easy to do. Piotras or Jukka will implement it next week.
The PHP API will provide a MidgardQueryBuilder class which works like the following:
<?php
// Instantiate the Query Builder for seeking MidgardArticles
$query = new MidgardQueryBuilder("MidgardArticle");
// Next add the SQL constraints you need
// List articles only from specific topic
$query->addConstraint("topic", "=", $topic->id);
// List only articles that have been approved since some timestamp
$query->addConstraint("approved", ">", $starting_time);
// Order the articles based on their approval time
$query->addOrder("approved", "DESC");
// Get only 20 articles for this particular view
$query->setLimit(20);
// Start from the Nth page of this article list
$query->setOffset($_REQUEST["startfrom"]);
// Execute the query returning an array of matching MidgardArticle objects
// The MidgardArticles are the full article objects with all regular methods
$articles = $query->execute();
if (!$articles)
{
// Handle error
}
// And then display your articles
print_r($articles);
?>
Once the Query Builder is available for PHP, we can start really developing Midgard2. One of the tasks I'm eager to begin is developing a compatibility layer of the Classic Midgard API in PHP. Midgard Lite already has a 70% complete implementation of the API in pure PHP that will be easy to modify to use the Query Builder instead of DB_DataObject. And when we have the API implemented in PHP, we can start removing huge chunks of legacy code from midgard-php.
Java in Midgard
While PHP is still the web development language of choice in Midgard CMS, Java programming language support is also rising. Jukka has already implemented support for the Java Content Repository standard. JCR has been originally developed by Day Software in Switzerland as a generic content management API, the "JDBC of Content Management Systems".

JSR-170, the Java Content Repository
With JCR, the content repository is divided into workspaces that in Midgard are represented by Sitegroups. JCR spec also defines a method for copying content between workspaces that is not yet implemented in midgard-java. However, this could be interesting future way to implement staging-live.
Within the workspace the content is managed as a tree. With Midgard, there is a virtual root node, and under that are the content roots like topic and style trees. Non-hierarchical structures are stored as references.
JCR provides an API for traversing the content hierarchy, and making modifications to different properties. The modifications can be collected into a set of atom operations that can be saved together. JCR would also provide real transactions, but these are not yet supported by Midgard.
Midgard JCR support also supports XPath queries and XML import/export we already utilize in the Exorcist cross-CMS content migration tool. JCR also has an introspection system that can be used by clients for creating custom administrative interfaces that automatically support all new content types in the repository.
With the JCR Server system, the Midgard repository is also available through RMI and WebDAV.

The big question with JCR is whether the standard will be adopted by different CMS developers. If it catches up, the benefits will be big especially in creating cross-CMS tools. IBM has already announced support for the standard, and it has also been noted by OSCOM.
Midgard-java installation
The suggestion for making JCR installation easier would be to add it to the Midgard Core package. The Java Native Interface would then be compiled by default, and server administrator could simply enable JCR by installing a Java Virtual Machine.
Another consumer for a JVM in Midgard is the Lucene-based indexing system in MidCOM, and the installation locations and dependencies should be synchronized between the two.
Jukka will try to produce an installation HOWTO for setting up midgard-java together with the JCR Server next week.
MidCOM indexing with Lucene
MidCOM uses a Lucene-based indexer for providing a full-text search system that provides a "live" index into the site data. All MidCOM components notify the indexer every time they change the data, meaning that all searches made in the system will return current content.
With the search system, users can easily query either text from anywhere in the Midgard content structure, or using advanced syntax for searching based on specific content fields or value ranges.

Documents are organized within the MidCOM index based on their resource identifier, which is typically the object GUID. The fields are indexed separately, but they are also combined into the content field for the regular full-text search of all data. For native MidCOM content, the topic field is also stored into the index. External indexed data like OpenPSA content should not utilize that field.
The index also contains metadata like creation, revision and indexing timestamps. These can be used for limiting searches.
Indexing is handled by PHP class midcom_services_indexer_document, and its more contextual children for handling datamanager documents and file attachments:
<?php
// Get the indexer service from MidCOM
$indexer = & $GLOBALS["midcom"]->get_service('indexer');
if ($_REQUEST["action"] == "update")
{
// Pass your datamanager data array to be indexed
$indexer->index($datamanager);
}
elseif ($_REQUEST["action"] == "delete")
{
// Drop the document from the index
$indexer->delete($article->guid());
// Delete the actual content object
midcom_helper_purge_object($article->guid());
}
?>
The datamanager schemas can contain some hints for the indexer on how to handle them.
MidCOM indexer is relatively easy to set up, but needs yet to be integrated into Midgard packages. The suggested directory for the index is $MIDGARD_PREFIX/share/midgard/indexer/$INDEX_NAME.
The index can be accessed in two different ways. The midcom.helper.search component provides a normal site search engine with both a simple interface and an advanced search with support for limiting the search based on content types, topic trees and modification dates. The simple search form can be easily included into the site layout using MidCOM's dynamic_load method.
The other method is by using the midcom.services.indexer API. For example, to list all images in a photo gallery taken with ISO rating 400, the code would be:
<?php
// Search for value "400" in schema field "ISO"
$query = "ISO:400";
// Search only in photo galleries
$query .= " AND __COMPONENT:net.siriux.photos";
// Search only photos taken since $date
$query .= " AND __CREATED > $date";
// Execute the query with Lucene
$result = $indexer->query($query);
// $result contains all matches as midcom_services_indexer_document objects
// sorted by relevance
print_r($result);
?>
At the moment the indexer is only available within MidCOM context, but Torben is working on adding support for external Midgard/PHP applications.
Posted on 2005-04-23 09:27:59 UTC to Flying Motorcycles. 0 comments.
After the starter engine of my Triumph Legend signed off the contract last week, I've been stranded without a working motorcycle. As most of the days it has been snowing heavily, this hasn't been much of a problem. However, I thought it would be time to do something.
As the bike dealership didn't seem much concerned about the problem, I came up with another idea. My friend Jose bought a nice fifties-style Royal Enfield motorcycle from his Indian adventure last spring, but unfortunately broke his leg shortly afterwards and so the bike was built into running state but never registered.

Yesterday afternoon I then went to Rambo's garage, and started the engine without any problems. The Engine ran fine while I rode it to an inspection station near to the Helsinki-Malmi airport, and yet again fine when riding to another inspection station after a flying lesson.
However, the inspectors had very little sympathy for the machine. They said it wouldn't pass into Finnish registry because its chassis lacked some EU stamps, even though similar bikes are being sold constantly by the Enfield Finnish importer. No final conclusions were reached, though, as some members of Bullets MCC, the Finnish Royal Enfield Club claimed to have the required certificates acquired from the Indian factory.
A bit taken back but not yet accepting defeat, I started the bike at the station. It started on the first kick, but when I took it off the centre stand, it stopped. The fifties look of the bike quickly gathered several helpers, but the bike refused to start in the half hour we spent playing with it. After a while we figure out that the batter was empty, and that in turn had fouled the spark plug. Changing the plug we were able to get the bike running in a way, and return to the airport.

At the airport cafeteria we sat down with Erkki, the pilot of the huge Soviet forties An-2 biplane freighter owner by the Lennuklubi. He had helped me back at the inspection station together with Matti from HHRA, and as my second flying lesson of the day got cancelled because of hail, we took a look at the Antonov.
A fire extinguisher pipe in the plane had to be replaced, and after that and the other startup rituals, we went for a short spin together with two Russian mechanics. As the Antonov is very expensive to operate, we only flew a very short route, but even with that I was amazed at the stability of the big plane, and even got to take a short turn at the controls.

After the flight we cleaned up the plane from the liters of oil that the engine had spewed out, and I returned to try again starting the Enfield. Unfortunately it again had issues with getting the ammeter to the positive side, and when it finally started, it happened with a loud bang that shot the airbox cover open and the headlight off. With this setup I limped the bike to the nearest gas station, drained the gas tank and cleaned the carburetor.
With new gas in tank the bike finally ran acceptably, as long as I kept the electricity usage as down as possible. For example, if I wanted to use both braking light and turn indicators at the same time, I had to rev up the engine or it would die. But even then, I got the bike home without incident.

Now the battery is charging, and I hope that this will cure the ignition problems. Once they're fixed it is time to change the speedo broken by the shipping company, and then return to the inspection station with loads of more papers.
Posted on 2005-04-24 13:42:24 UTC to Business Midgard. 0 comments.
I'm leaving on tuesday to speak in the Open Source Forum in Moscow, Russia. The event will be held in the Radisson SAS Moscow from April 27th to 29th, and I will be back in Helsinki on 30th.
My talk, TownPortal: IT Village Project for Danish Communities is scheduled at 5pm on thursday. I will talk both about the actual TownPortal application, a limited CMS system specialized for local communities, and the realities of running such Open Source development project from overseas.
This is the first time I've held an actual presentation on the TownPortal project, although there was a BoF session in the OSCOM 3 conference held in Harvard University.
Current version of TownPortal is a stable and easy-to-use system built on top of Midgard CMS. Besides community portals, it is being used for other interesting applications. However, it still runs on the MidCOM 1.x series, and should be ported to the new MidCOM 2.x architecture.
I will try to do this in preparation for the event.
Besides the conference, I'm also looking forward to meeting Alexander, the Belarusian Midgard developer who is now living in Moscow.
Posted on 2005-04-28 14:33:28 UTC to Business Midgard. 0 comments.
Russian Open Source Forum was a gathering of local software companies, Open Source developers and government IT people that brought together about 1500 participants. The event's celebrities were Jon "Maddog" Hall from Linux International and Larry Wall, the Perl creator.
Prior to the event I took a walk. from the Moscow white house to the Kremlin and the "chinatown" neighborhood. The whole center of the city was preparing for the Victory Day celebrations with posters and flags everywhere.

The first day of the event introduced the exhibition hall set up in Radisson Moscow to the speakers, and there was an evening gala in a floating restaurant on the river.
Ideas for Midgard's future
After the gala winded down we went to a nearby cafe with Alexander Bokovoy, the Belorussian Midgard developer now working for IBM's Linux Competence Center. Alexander was very happy to hear about the new Midgard 2 developments, and maybe a bit smug about the stuff he proposed three years ago finally becoming a reality.

The recent advances in Midgard got us talking about the long-term vision, and obviously Alexander had a bunch of ideas:
Alexander's view of computing includes most processing moving to be grid-handled web services. The Open Source infrastructure for building grid-able services already exists in the form of the Globus toolkit. Globus enables web services to be built in C or Java, and supports things like Kerberos authentication between the grid scheduler and the service providers.
Another idea was to enable Midgard to use the new Git version control system as a distributed storage system. Currently Git is available only as a set of command-line tools but once the format stabilizes, a libgit could make this kind of work easy. Git repositories would know from which system each modification was coming from, and make Notes-like multi-direction replication possible. LWN has more information about Git.
We also talked about the problems of making Midgard bindings into different languages due to the inability to remove classes that have been declared once during runtime, and messy C APIs. Alexander had the idea of implementing the Midgard 2 API natively only for PHP and Java, and handling other languages through Web Services passed either remotely or via D-BUS. There are already D-BUS bindings to both Python and .Net (Mono), which would make creating Midgard bindings for them relatively easy.
Free Software and economy

Maddog's keynote dealt with how local economies benefit from Open Source. The basic nature of Free Software is that it enables local service companies and software developers to easily create IT solutions without expensive licensing costs. Currently Brazil funnels a billion dollars every year out of their economy in software license fees. With Open Source, this money could be kept in the local circulation, and the solutions could be created by the local experts.
Free software also enables software users to localize the software for their own language, character set and cultural environment. In the proprietary world, American companies have very little incentive to translate their tools to Icelandic or some of the hundreds of Indian languages, but with Open Source this is happening constantly.
Open Source also means better security and longevity of solutions. Companies go out of business and change their product lines, but Free Software stays in running order as long as somebody still has interest in it.
Other projects
Other interesting talks included Michael Sparks' talk about how BBC Research & Development is developing Open Source video and audio streaming tools like the Dirac video codec. They have archive of hundreds of thousands of hours of footage, and moving that to a digital format and making publicly available might provide a really interesting service. Their Kamaelia tools are currently built in Python using the Unix toolkit methodology where different pieces of the system can be changed easily.

Rob Page was presenting the product strategies of the Zope Corporation. His presentation used the old Gartner OS CMS report as a source on market positioning, and mentioned that in the last year the number of Zope deployments have doubled to about 58k, probably due to Plone. Zope Corp itself is not an Open Source company. Instead, their products are distributed following a visible source model where end customers get the source code but are not allowed to redistribute it. Most of Zope Corp's revenue is generated through hosting (40%) and product licenses (30%).
The professional services of Zope Corporation are fairly similar to the ones Nemein provides for the Midgard platform: Support with possibility of Service Level Agreement, feature development including projects split between multiple clients, localized documentation, and so on.
Community building
Larry Wall's very funny talk, Building Open Source Communities dealt with building a thriving ecosystem for a Free Software project. Building a successful community is much more difficult than making a successful engineering product, and few developers are really familiar how the communities really work.

One major question is about the personalities involved, who will be interested in the project, who will be excluded, etc? The what questions included the goal of the community, and what the contributors will get out of it. In the where space, the questions deal on locations and services needed for running the community. When is a question of project maturity, and of when to allow community to form. Also, when the different project services should be opened, and when, if ever, the project should be terminated. Why is also relevant. Why should contributors join up, and also, why to release the project as Open Source.
The structure of the community should not be made too complex, or too designed before the actual community forms. People are all individuals, and as they succeed and fail, enter and leave, the community should be still able to function.
In general, communities succeed if they have a good habitat, plentiful food, they're healthy, and practice plentiful cross-fertilization. Similarly, they die if one of these aspects fails. "A community needs to share a set of core values, but also allow honest differences of opinion on side issues."

On thursday evening we had a very nice dinner with most of the speakers in a Georgian restaurant on the Old Arbat street. Especially the roasted khinkali and khatchapuri were very good.
Posted on 2005-05-03 07:31:57 UTC to Geo Oscom. 0 comments.

One thing I've been thinking about quite a bit is adding location awareness to web content. On my site this is currently being done on city level, and the info is attached to all items: blog posts, photos, moblogs etc.
However, this level of accuracy doesn't yet allow us to do the really interesting things. For that, we'd need an easy way to input coordinates together with the data.
Rich Bowen writes:
I was talking about Geocaching, as well as other applications of GPS technology, including integration with blogging. Henri is talking with the GeoURL people about creating standards for encoding coordinate information in other data. For example, there are apparently cameras now that will encode the coordinates into the image, in the meta-data headers. So then, imagine if you could have a search engine where you could search for all photos taken within 1 mile of a certain location, between certain dates. Or, if people have location information in the blog entries, you could search for blog entries about a particular location on a particular day, and build a composite picture of a particular event from multiple individuals. I think it’s an idea with a ton of potential, if there was an easy way for people to obtain location information. It’s a bit painful right now, and even someone as fascinated with the idea as myself tends not to go through the pain every time.
Besides the question of obtaining accurate coordinate information, and how to easily input it to the system, another big question is privacy. Content creators should be able to state what level of accuracy they're comfortable with:
- Full coordinates
- Coordinates with last few digits removed
- City information
- Country information
This level of privacy could also be connected to time. For example, I might be uncomfortable about announcing my location in real-time, but would have no problems in revealing the coordinates after a week or two.
I need to think about this a bit and try to hack a proof of concept using the MidCOM metadata system.
If content is revealed only on city level, it could be converted back to coordinates using the open source cities of the world database. Geo Tags seem to have all the actual HTML meta tags we'd need for these different levels:
<meta name="geo.position" content="49.2;-123.4" />
<meta name="geo.placename" content="London, Ontario" />
<meta name="geo.region" content="CA-ON" />
This would probably work better in this concept than the GeoURL-style ICBM tag that is limited to only coordinate information.
Posted on 2005-05-06 10:31:41 UTC to Flying. 0 comments.
I flew my first solo flight today as part of PPL(A) pilot training. The morning was sunny with calm wind.
The flight was in traffic circuit of RWY 36 of the Helsinki-Malmi airport with Cessna 152 OH-COF. As the weather was smooth the 6 landings were quite easy.
This was an important step in the training program. I have now 21h35 in my log book. More solo flights are planned for the weekend...

Updated 2005-05-07: I did two more solo flights today, on OH-KLS and OH-CTH respectively. There was quite heavy traffic including gliders and a DC-3 on EFHF, and so both flights were to the practice area on Sipoo bay. Very nice weather with about 6 knots of wind from east and the runway 09 in use.
I got to practice some VOR navigation using to PORVOO beacon to circle the Kilpilahti oil refinery and HEL beacon to pinpoint correct angle to the NOKKA reporting point. The photo above is from the first flight and was taken above Kalkkiranta.
Posted on 2005-05-09 19:49:12 UTC to Motorcycles. 0 comments.
In what is becoming a regular spring ritual, the Triumph Legend is again having electric problems, this time with the starter engine.
A bike shop had already promised to fix the bike, but then they screwed up. So, if you know a bike maintenance shop in Helsinki region that could help with the Triumph, please drop me a line.

Updated 2005-05-24: I finally found a mechanic and after a bit of
wait, the bike was towed away today. The verdict: the starter engine had melted.
So now began the wait for a new starter...
How long this will take is anybody's guess. So far the delivery times for parts from Triumph have been anything between week and over a month.
Updated 2005-05-31: In a surprising turn of events, Mp-Asennus got the bike fixed in a day using a spare Kawasaki starter. Great work, thanks! Now the bike is running without problems.
Thanks to everybody for their good ideas and suggestions!
Posted on 2005-05-12 17:47:36 UTC to Midgard Openpsa. 0 comments.
Following Kaukola's Support ticker viewer and kindly financed by our friends at Protie, we now have a Midgard CMS component that allows customers to view and approve OpenPSA Projects hour reports.
The web user interface is fairly simplistic at the moment, simply listing unapproved hour reports for all projects where the user's company has been marked as the customer (screenshot without any CSS):

When the user approves some hours, or simply submits the form, an email will be sent to the project manager listing the user's comments and which hours were approved or not approved:

Another nice addition to the Professional Service Automation cycle...
The net.nemein.hourview component requires latest CVS MidCOM and OpenPSA to work.
Posted on 2005-05-13 18:37:11 UTC to Midgard. 0 comments.
Looking at the recent developments in Midgard CMS space, it looks like the MidCOM, the Midgard Component Framework developed by Torben Nehmer has finally established itself as the default Midgard development framework for PHP.
While I already forecasted this in my April 2003 article Why MidCOM rocks, it is still not a surprise that this has taken so long. MidCOM requires very different and much stricter development style than "pure Midgard" applications have used to follow. However, the advantages are substantial:
MidCOM provides standardized services like authentication, localization, debugger, templating, caching and configurable object editors (via datamanager)
MidCOM's filesystem oriented approach for code makes version control and distribution easy
MidCOM is a standardized way to build applications with midgard-php, meaning that it is much easier to get contributions to the code
MidCOM mandates using a strict coding and code documentation standard (although all code has not yet been ported to it)
MidCOM provides the indexing service that allows building interesting views to data
...and finally, MidCOM is always available with Midgard
In the most recent developments, OpenPSA 2.0 is being written using MidCOM, and similar plans are also around for a Aegir rewrite.
Of course, even if most application development has moved to MidCOM, this doesn't yet force site maintainers to convert. But even for that, there are some attractive benefits:
Another point to consider here is that after "MidCOMizing", your
sites will no longer be custom-made, but instead using a shared
and commonly maintained platform.
This means that ideally it will be the last conversion hassle you have
to face as from then on you can live easily with future MidCOM versions,
or even convert to other CMS using Exorcist if required. MidCOM's
content model is the defacto standard, so there will definitely
be conversion tools for it, no matter how much Midgard's structure
will change.
Posted on 2005-05-17 18:21:55 UTC to Midgard. 0 comments.
The number of components and libraries in MidCOM is raising rapidly, especially as both Aegir and OpenPSA are being rewritten on it. As now all MidCOM packages ship in the distribution, this causes lots of unnecessary clutter on systems.
New packaging policy
I'm now proposing to improve the situation by packaging MidCOM using the PEAR package format. This would enable us to change the distribution strategy so that
- MidCOM framework ships as its own package
- Each component has its own package
- MidCOM distribution includes a meta package that depends on a set of core components
- The core components would be chosen from the best quality and most general MidCOM components, and would include things like de.linkm.taviewer
- Rest of the components could then be installed one-by-one using the PEAR installer
Besides removing clutter, PEAR packaging would also enable components and libraries to clearly state their dependencies from both MidCOM world and PEAR packages. This would promote code reuse and closer cooperation with the PEAR community.
Proof of concept
To test this approach, I created a package definition for the net.nemein.personnel component. It seemed quite easy to define the component in PEAR's format, although the package name had to use underscores instead of dots as class path separator, making it net_nemein_personnel.
The package seemed to work quite well:
$ pear package-validate package.xml
Validation: 0 error(s), 0 warning(s)
$ pear package package.xml
$ sudo pear install net_nemein_personnel-1.0.tgz
install ok: net_nemein_personnel 1.0
$ ls /usr/lib/php/midcom/lib/net/nemein/personnel/
admin.php locale navigation.php viewer.php
config midcom style
$ ls /usr/lib/php/docs/net_nemein_personnel/documentation/
CHANGES
$ sudo pear uninstall net_nemein_personnel
uninstall ok: net_nemein_personnel
With this experience, it looks like we should be able to quite easily create the package definitions for MidCOM files, and possibly also automate part of this work using the PEAR PackageFileManager tool or some custom script.
The only real change required in MidCOM to make the PEAR packaging work would be to change midcom-template to load MidCOM by default from the PEAR installation directory.
Distribution mechanisms
Once the packages have been done we have several options for distributing them:
- Just providing them as downloads on the Midgard site
- Setting up our own PEAR 1.4 channel
- Contributing the packages to the actual PEAR repository, and midgard-php to PECL
The first of these options would be the easiest, and is probably the right way to start. We can consider the others with better time.
In the other news: congratulations, Torben!
Posted on 2005-05-20 12:45:36 UTC to Midgard. 0 comments.
The Finnish Broadcasting Company launched today the website for Itse Valtiaat, a popular political satire cartoon series. The site user interface has been built with Flash to provide an interactive and animated world familiar from the series.

The Flash site has been built by Joonas Kallioinen from Piippunaakka, and it uses Midgard CMS as the back-end. Different site areas are introduced by familiar characters from the series.
Midgard CMS provides all content used on the site, and allows users to interact by voting their favorite episodes for reruns.

The Flash front-end communicates with Midgard using XML requests to unique URLs of different content resources. The XML communications have been developed following the Ajax model.
Midgard CMS provides a web-based content authoring interface used for all updates on the site, including video and image uploads.

The Flash interface retrieves some parts of site content using RSS, and the feeds may be opened to public at a later date.
Site's hosting is provided by Nebula's Midgard Web Hotel service.
Posted on 2005-05-25 07:20:22 UTC to Openpsa. 0 comments.
The development of version 2.0 of OpenPSA, an open source management system for consultancies is now moving rapidly forward. Contrary to original plans, the system is being written using the MidCOM component architecture.
The component architecture will provide several benefits, including easily customizable data entry forms for things like companies and tasks. It will also mean that the whole OpenPSA system will be developed following strict coding standards that will make the code much more readable and easier to contribute to.
PEAR packaging of OpenPSA and support for initializing new installations using the Midgard Site Wizard are also part of the plan.
Here's the first running OpenPSA 2.0 screen, a datamanager schema driven company editor.

Iframes have been removed, and the whole UI uses standards-based XHTML and CSS layout. The toolbar floats on the top, and will contain all action buttons, including the Save button for current view.
Ajax will be used for user interaction where it pays off, including the hour reporting view.
Posted on 2005-06-01 16:34:21 UTC to Life Midgard. 0 comments.
Finally the summer has started here in Finland and it is warm enough to spend time at the summer cottage and swim in the lake. At the same time, my trusty Triumph Legend is again running after its starter problems. Big thanks to Mp-Asennus.com, especially as they installed the Kawasaki starter ahead of schedule and under budget!
I've been too busy to blog about all the stuff happening last month, so here are some quick updates.

Exorcism at work
One major problem with Content Management Systems has been that it has been very difficult to switch between systems as needs change or vendors go out of business. The Portable Site Information project was started to create an XML format for inter-CMS content transfers, but it failed to get traction.
Our concept for solving this problem is the Exorcist migration tool, developed by original Midgard CMS founder and Java Content Repository guru Jukka Zitting. Exorcist provides an XML pipeline system for exporting content from a system, then transforming it to an appropriate format, and finally importing to another system. The XML transformations can be made either point-to-point, or using the PSI format.
Point-to-point transformations have the advantage of being relatively loss-less, as they can map the features of different systems quite accurately. PSI on the other hand provides a generic format that all Exorcist-compatible systems must support as the lowest common denominator.
Some time ago we performed the first Exorcism, successfully transferring three sites from EasySiter to Midgard CMS. All content and users were imported without problems, and only the site layout had to be manually converted. Exorcist uses the Midgard-Java bindings to access the Midgard content structure.

New Nemein team member
Topi Tuominen joined the Nemein team today. He has a long background in content management and has worked with many different new media companies. At Nemein his main responsibility will be tuning the company's project model to be more efficient.
We're also thinking about different solutions for unit testing our Midgard solutions. Recently we've encountered some regression issues with MidCOM upgrades, and an automated test suite would bring some peace of mind there, especially if combined with the planned PEAR packaging.

Midgard indexing
As Topi will inherit my old iBook, I got a new 15" PowerBook G4 today. Tiger seems really sweet, especially with the fast Spotlight search tool. This has reminded me of the plan that MidCOM's indexer system could be plugged in to a native search system if the platform offers one.
Miguel de Icaza wrote that Wikipedia has adopted similar approach and is now using the Lucene.net technology familar from GNOME's Beagle search tool:
As of last Friday, Wikipedia started using Mono for indexing and searching the Wikipedia, it was tested first on one server and it is now being used on all three servers.
Wikipedia's search backend uses Mono and dotLucense, the same search backend that is used by Beagle Desktop Search. Previously, Wikipedia had been using GCJ and Lucene to do the searches but after some tuning, Mono became the new engine.
While Spotlight's file-oriented approach would make developing a Midgard indexer plugin difficult, the benefits would be big. After that documents in the local Midgard database would appear in regular desktop searches, and Midgard wouldn't require a separate indexer to be installed.

OpenPSA synchronization
As noted by Jan Schneider, OpenPSA is now using Horde libraries for providing SyncML support. The current OpenPSA release uses the stable Horde release, and supports syncing only with some Sony-Ericsson phones. However, Horde CVS has changed quite a bit, and upgrading to it would provide benefits like Outlook synchronization.
Jan Schneider writes:
We have DevInf (Device Information) support now, which means that adding support for a SyncML client that is not supported by default, because it "speaks" a variant of the standard implementation, is as easy as writing a small class that extends the default DevInf class. So far we have support for the P800/P900/P910 class of mobile phones and Sync4j. Several people are currently trying to get Nokia phones, Blackberry, and Synthesis clients for PocketPC and Palm working.

In the other news, congratulations, SmallOne! It seems that the Midgard family is indeed growing quickly.
Posted on 2005-06-06 11:04:35 UTC to Business. 0 comments.
Dave Neary has published a short essay reasoning how investments in Open Source software are five or six times more valuable than investments in US-produced proprietary software:
And this is where all the TCO arguments coming out of Redmond fall flat on their face. Let's say, for arguments sake, that installing and supporting GNOME is 20% more expensive overall for the first 5 years you use it. It's cheaper afterwards, but play along with me for a sec.
So when you spend $100M on Windows, $80M of that leaves the country. You get $20M working for the local economy. When you spend $120M supporting GNOME with local companies, $120M stays in the economy.
I've always thought Open Source is local business, which is why we see franchising as the viable growth option, and others seem to agree.
And it is also why the Russian government is investing into building a strong local Open Source business network.
Posted on 2005-06-16 08:52:23 UTC to Openpsa. 0 comments.
The first Driver workshop for companies integrating open source business applications to the Digital Business Ecosystem was held this week in Tampere.
Nemein is one of the companies participating in the project. The plan is to integrate the OpenPSA project management system into the framework together with Jukka Zitting from Yukatan. Once this integration has been done, companies can use OpenPSA to distribute tasks and report hours with their business partners.
The workshop tutorial was run by Bob and Pablo from Techideas in Barcelona. Based on it, Jukka blogged a nice DBE summary.
I didn't have much to contribute to the technical discussion, as it dealt with Java and Jini specifics, but at least I coded the DBE example service, and Jukka's laptop was able to query the current date from my powerbook over the Fada P2P network.
In addition to the technical content, Dr Mary Darking from London School of Economics talked about the community structure of the project, and the possible governance models. When we were interviewed for the Drivers project, we gave some complaints about the lack of openness in the project, and it seems that things are improving.
While DBE has lots of challenges ahead of it, including the fact that the funded part of the project is ending quite soon, the possibilities are also very interesting.
Look for more updates in Planet DBE.

Posted on 2005-06-17 21:09:09 UTC to Openpsa. 0 comments.
OpenPSA rewrite to the MgdSchema database back-end and MidCOM component architecture is progressing well. The current goal is to release a feature-limited alpha next week to get more feedback. Before that, here are some quick screenshots:
Calendar week view. No tables, reservations scaled based on their real duration:

Calendar month view. No images, past days are grayed out

Calendar reservation editor with date widget. Participants chosen using AJAX live search, whole editor customizable using datamanager schemas:

Contacts person view. New features include belonging to multiple organizations, easier account editing and datamanager-handled features like the photo:

Contacts chooser. This is the new datamanager widget used everywhere in OpenPSA 2 for connecting persons to documents, projects and calendar reservations. Type a search into the field, and it will query the Contacts database FOAF interface using AJAX and list results below. Select a contact and she will be added to the list above. As can be seen from the Georgian name, this is fully internationalized:

The user interface concept is still somewhat unfinished, and is being worked on by Arttu. But even at this stage there seem to be several benefits:
- Much more natural usage style, especially with the AJAX features
- Scaling to different window sizes easily
- The floating toolbar keeps all form controls handy
- The web-oriented (as opposed to desktop-oriented) design allows us to show data and help texts in more friendly way
In addition to these, the new OpenPSA will be orders of magnitude faster than the current releases because of the MidgardQueryBuilder.
Posted on 2005-06-23 01:54:05 UTC to Openpsa. 0 comments.
ESPOO, Jun 23rd 2005 -- The first Preview release of the OpenPSA management suite is now available. This release showcases the new user interface
concept and completely rewritten technology architecture.
This release depends on bleeding-edge tools, and so there is still some
way to go before it will be Perfect Software. Breakage and misfeatures can occur on all levels of the stack: Midgard Core, MidCOM, OpenPSA components and the AJAX-powered user interfaces. Once you encounter them, please use the issue tracker.
Major features
The main things to try out in this release are:
- Access Control Lists
- Document searching
- AJAX-based hour reporting (note problem with bug #246)
- Calendar user interface
- The person-organization-suborganization connection
- Workgroup filtering
Limitations
As a complete rewrite the OpenPSA 2 preview does not yet provide all the features that were available in the OpenPSA 1.x series. Some major features missing are:
- OpenPSA Projects reporting engine
- Sales project handling
- Sales campaign handling (mass mailing)
- Support and help desk ticket management
- Expense and mileage reporting
- Calendar WebCAL support
- Documents WebDAV repository
There also isn't yet a tool for migrating data between OpenPSA 1.x and OpenPSA 2 installations. This will be provided later based on the Exorcist data migration tool.
In addition to these, the idea is to modify the markup of the application's display widgets to utilize microformats like hCard as widely as possible.
The default OpenPSA 2 layout has not yet been tested on other browsers than Mozilla Firefox. It will be tuned to support MS Internet Explorer and Safari later in July.
The development server is x86 Debian Sarge with Apache 1.3.33, development browser Mozilla Firefox on MacOS X, some AJAX based widgets are known to act up in Internet Explorer.
Installation
Database and Core setup
- Install latest CVS version of Midgard and set up a
fresh database with datagard
- Import the SQL files (though not the _delete ones, they're for backtracking)
from org.openpsa.core to your Midgard database
- Configure your midgard-apache to use the MgdSchema from org.openpsa.core
- Note: the schema file must be copied to MIDGARD_PREFIX/share/midgard/schema and must be referred via full path.
MidCOM setup
OpenPSA setup
- Install the layout-openpsa.xml style file using datagard
- Install the OpenPSA components, best way to keep up to date is to make
a CVS export of the OpenPSA source tree and symlink MIDCOM_ROOT/lib/org/openpsa
to src/fs-midcom/openpsa directory of OpenPSA.
- Using Spider Admin or similar create root level group
'__org_openpsa'
- Again in Spider create under group '__org_openpsa' group
'__contacts'
- Still in Spider create root level event '__org_openpsa_calendar'
set owner as '__org_openpsa'
- Create a new MidCOM site with the Midgard Site Wizard
- Select the OpenPSA v2 layout from the list (or set manually later if
it doesn't appear)
- Set parameter
midcom, require_valid_user, 1 to the root topic of the site
- Set up subtopics for the OpenPSA components you're going to use
- You can also use regular MidCOM components side-by-side with OpenPSA
- The root topic should run the org.openpsa.mypage component
Download
OpenPSA 2 preview releases are available in:
If you want to use the stable OpenPSA 1.x release instead, it is available in:
To keep up with the development, subscribe to the OpenPSA news feed at http://www.openpsa.org/news/
Credits
OpenPSA version 2 is a complete rewrite of the OpenPSA professional services automation suite. The work has been mainly done by Eero af Heurlin and Henri Bergius from Nemein.
The project has been kindly sponsored by Ware.it.
We would like to thank Torben Nehmer, Piotr Pokora and Jukka Zitting for their efforts on Midgard 2 that have made this project possible. We are also grateful to Arttu Manninen his work on user interface design.
Posted on 2005-06-24 07:45:03 UTC to Life. 0 comments.
I'm joining the Shnjaka expedition in east Carelia this weekend. Shnjaka is a viking ship built without a single nail using the old sowing techniques.
At the moment the expedition team is somewhere near the town of Pudoszh on the east side of lake Onega, preparing for the ship launch, scheduled monday. I'm traveling with some friends to St. Petersburg and plan to catch a train to Petrozavodsk during the weekend, and then a boat from there to carry me across the lake.
Most of the Shnjaka crew is Russian, but participating in the expedition is also Fredrik Koivusalo, the captain of the Finnish viking ship replica Heimlösa Rus. I participated to the 2001 expedition of the ship from Vyborg, Russia to Loviisa, Finland. The accompanying photo is from that trip.
After the hard work leading to the OpenPSA 2 preview, I'm really happy to get to do something not at all related to computers. While there are still challenges facing me joining the expedition, it should turn out to be a fine adventure.
2005-06-24 05:56Z: We're leaving for the border soon. Unfortunately the SMS gateway seems to be
unable to receive messages so I won't be able to update this log until it is fixed.
I'll try to instruct Topi to fix the GW as soon as I get some ideas from
Rambo on what is wrong.
2005-06-24 11:35Z: Again the border crossing was a challenge. My friends had visa problems and had to turn back. I'm hitch hiking to Vyborg
2005-06-24 12:50Z: Lunch in Vyborg amid decaying old Finnish art nouveau buildings. Then to the gentle care of Russian state railways
2005-06-24 20:25Z: The Russian nu metal club was steamy enough to warm a beer pint in ten minutes to boiling point. After that, cooling off on Malyi Sadovaya feels pleasant
2005-06-25 08:40Z: The day ended with beer in a park and midsummer fireworks over Neva. Now we're sitting in Sveta's bike shop, waiting for my train.
2005-06-25 16:55Z: Syväri. The Murmansk train brings the luxuries of trains like Repin into a new light. Sweating in my small cot I watch Carelia swoop by.
2005-06-25 20:12Z: Saturday night on the beach bulevard of Petrozavodsk looks like Finnish vappu. Air is filled with mosquitoes and smoke from shashlik stalls.
2005-06-26 03:50Z: Sun peeks behind the clouds. I got tickets for KOMETA-11 to Shala. I hope I can buy breakfast from there as here everything is closed.
2005-06-26 04:30Z: This will be the last message in a while, as apparently there is no cell coverage in east of Ääninen. I'll try to post updates later.
2005-06-26 07:25Z: Arrived to town of Pudozh after bumpy ferry trip and even bumpier bus ride. I've now hired a lada to take me to Kuganovolok and the ship.
2005-06-27 10:25Z: We fetched the ship from Lake Vodla National Park in police convoy. It'll be launched in Kashino and then we'll set out to Lake Onega.
Continue to the sailing report
Posted on 2005-06-27 19:45:07 UTC to Life. 0 comments.
2005-06-27 17:45Z: Anchored for the night at N61.49,45 E36.06,73. We have made a tent out of the sail and wait on river Vodla for the forecasted SE wind.

2005-06-28 06:25Z: As forecasted, the wind turned in the morning. After a few miles of rowing, we're finally under sail in a small rain.
2005-06-28 10:45Z: When the headwind died we were able to row out of the river. Now we'll head slowly into north towards Povenets

2005-06-28 16:55Z: We've covered 32km during the evening sailing and plan to continue overnight before wind turns against us. Pos N62,03 S35,38
2005-06-29 06:50Z: The night's sailing has been succesful, and now when the wind died we float near the north end of Onega.

2005-06-29 12:05Z: During the day the wind died and we've been floating and cooking food on Povenets bay 29km from city. Disturbing thunder in the south.
2005-06-29 14:30Z: After rowing out of the rain we caught a brisk north wind carrying us towards the mouth of Stalin's channel. Position N62.42' E35.05'
2005-06-29 15:05Z: When a boat of locals came to check us out, our old believer (Staroverts) Feodosi told them we're tatars sailing north from Astrakhan.
2005-06-29 16:45Z: Povenets in sight. An impregnable wall of dragon-shaped rainclouds speed at us from south and a big fishing boat came to check us out.

2005-06-29 20:00Z: We're now anchored in Povenets right next to the mouth of the White Sea - Baltic channel (Belomorkanal). Fredrik will camp on the shore. Pos N62.50,10' E 34.50,07'
2005-06-30 10:10Z: We need to be towed through the Stalin's channel and arranging that will take some days, so I'll leave the ship here and head home.

2005-06-30 10:30Z: Before departure we need to get Fredrik's moped out and the strong north wind prevents us from rowing ashore.
2005-06-30 10:30Z: The trip on Shnjaka has been a very rewarding one. I doubt if similar ships have sailed here since Viking raids a thousand years ago.
2005-06-30 14:25Z: Povenets was the east frontier of the WW2 Great Finland. I'm looking for a ride to Medvezhegorsk, thus ending the Viking adventure.

2005-06-30 21:40Z: The lady at the railway station was most helpful, arranging me tickets in the sold out St. Petersburg train and allowing me to recharge.
See photos from the trip.
Posted on 2005-07-04 14:07:17 UTC to Business. 0 comments.

Our support and maintenance partner, Protie Ltd has just acquired 60% majority in Finnish Teleservice Center.
This deal happens hot on the heels of Protie buying a minority stake in Nemein, and cements Protie's presence in the Finnish Open Source applications and hosting (ASP) market.
FTC has been a major Midgard CMS and OpenPsa hosting company since 2003. Coupled with Protie's popular support and training services this will create a powerful player.
Protie's announcement on the deal.
Posted on 2005-07-06 15:58:41 UTC to Business Politics. 0 comments.
In a smashing victory for European software business, the EU parliament has voted 648-14 against the controversial software patent directive. Thanks to everybody involved!
As I said in last month's Tietokone interview on Open Source business (subscription required), software patents would have been a great threat to the Open Source movement, and European business in general. The only ones benefiting from the absurdity would have been big American software companies.
Not only would such directive been destructive to European economy, but in addition it was being driven using very dubious and undemocratic methods. It is great to see common sense reign after all the dirty play.
In April 2004 I wrote:
FFII is reporting that the whole concept of web shops is patented under the proposed European Patent Directive. This would make building any kinds of web stores or shopping carts require a patent license.
I guess European Union has decided to move Internet back to stone age, then. Competitiveness with American software business, indeed.
In June 2004:
This is all clearly stuff that Midgard CMS and other CMSs have been doing for a long time before the patent was filed. There was even an Oracle port of Midgard available at almost the same time the Oracle guys applied for their patent.
Normally ludicrous American software patents like this wouldn't worry me, but now that they will also start to apply in European Union, it is a bit scarier.
And in March 2005:
Against the decision of European Parliament, the EU Council has approved the software patent directive against its own rules.
This was a clear example of how big business lobbies can thwart the democratic process, in this case threatening local IT innovation and opening the door to ridiculous US-style intellectual property lawsuits.
This has been a major victory, but we still need to be careful. Boing Boing adds:
Software patents have been staked through the heart before, but they keep rising from the grave. There's too much monopoly rent waiting to be extracted by anti-competitive companies for them to simply give up and go home. The price of liberty is eternal vigilance.
(the accompanying EU flag is from the European Union symbols site and follows their copyright clause)
Posted on 2005-07-07 22:50:02 UTC to Politics. 0 comments.
John Robb explains what happened:
Al Qaeda ("The Secret Organization of Al Qaeda in Europe" -- via their Web site that has been shut down) has purportedly claimed an attack on London's transportation system. 4 coordinated attacks -- 3 on the Underground subway's Circle line and 1 on a double decker bus -- has incapacitated the metropolis during the morning rush hour.
Ben Saunders is shocked:
An hour later, at the recovery yard, I sat with a cup of tea in my hands, mesmerised by the dusty TV in the corner of the portakabin office. I never realised how much I loved London until I saw the red bus, blown apart. The kind of bus I catch all the time. I’ve been shaking all day.
Richard Rutter feels defiant:
So thanks then, terrorists. You’ve just succeeded in bringing the families of millions of Londoners that bit closer together, giving them an increased love of their city and an enhanced appreciation of their way of life. You might have destroyed the lives of several hundred people, but – and this is stating the bloody obvious you fuckwits – you’ve achieved nothing.
And finally, Dom Lachowicz digs at the reasons:
I don't condone attacks against civilian targets, be they done by terrorists or the US military. I don't necessarily think that all of the things we've done above were "wrong" decisions. And I don't think that non-involvement in the region will be a panacea either. But I won't pretend that those actions weren't controversial. Try walking a mile in their shoes. If I were in a Saudi's shoes, I might want to blow shit up. I'd imagine that most people would feel the same.
Luckily everything seems to be OK with my kin living in the city.
Posted on 2005-07-11 15:42:15 UTC to Midgard Openpsa. 0 comments.
There are several places in OpenPsa where persons are displayed in some list: Search results, campaigns, buddy lists, project participants, etc. To make them more informative, I've now implemented a contact widget library that can be used anywhere in MidCOM.
With this library the listings provide all the basic contact information in a nicely formatted manner:

The nice part about this is that the output is in the hCard microformat, enabling it to be machine-readable, and easily converted into vCards.
In addition to hCard support, the widget has also integrated support for photos from Gravatar and Jabber instant messaging presence from Edgar. The Edgar server can also be installed and used locally. Other ideas I've had include blog RSS integration.
To use the org.openpsa.contactwidget library, add it to the _autoload_libraries array of your component interface class. Then to display a person object, do the following:
// Fetch the person
$person = new MidgardPerson($id);
// Display the contact
$contact = new org_openpsa_contactwidget($person);
$contact->show();
Updated 2005-08-02: This is now documented and maintained in the Midgard Wiki.
Posted on 2005-07-12 13:01:51 UTC to Midgard. 0 comments.
I've today integrated John Coggeshall's Tidy PECL extension into Midgard CMS. This means that all WYSIWYG-edited content should now be stored in proper, cleaned and indented XHTML.
The way this works is that widget_html, the Datamanager widget for the HTMLAREA editor checks if the Tidy PHP functions are available, and if they can be found runs the HTML through the cleaner.
The commit didn't quite make it to the MidCOM 2.4.3 release so get it from CVS or patch manually if you want to try it out.
There are still some things I would like to do using the Tidy extension, including displaying possible content accessibility warnings, and making the Tidy options configurable. Now the Tidy options used are:
- show-body-only
- output-xhtml
- enclose-block-text
- drop-empty-paras
- indent
- break-before-br
- drop-font-tags
- drop-proprietary-attributes
- bare
I had planned to do this integration much earlier, but always had issues getting the tidy extension to compile. The reason for this was that the binaries distributed on the tidy site don't include the shared libraries and compiling tidy was needed. Some Linux distributions apparently provide packages for the tidy libraries.
Posted on 2005-07-14 22:24:37 UTC to Midgard. 0 comments.
Focus of the Midgard developer community is swiftly moving to the Midgard2 architecture, and this means that changes will be coming to the rest of the framework.
One obvious victim is the Repligard database replication and packaging tool. While Repligard works acceptably for its intended purpose, stretching it to situations like filtered staging/live and database structure conversions has caused issues with both reliability and performance. And in addition to this, Repligard is not yet able to work with MgdSchema objects.
Clearly something needs to be done about the situation. What could be the viable replacement is Exorcist, the cross-CMS replication tool created by Midgard Project co-founder and JCR contributor Jukka Zitting. Not only is Exorcist built on much more robust model, it also communicates with Midgard using the Midgard-Java bindings that are built directly on top of the MgdSchema and Query Builder.
Pros for making Exorcist the Repligard replacement:
- Possibility to create workflow and content filters using XSLT
- Cross-CMS capabilities, replicate between Midgard and other CMSs using either one-to-one bindings or Portable Site Information
- Real possibility for multidirectional replication
- P2P replication using the Digital Business Ecosystem network
- Project could be shared between different CMSs
- No need to separately port it to support new Midgard features
And cons:
- Existing scripts and working habits based on Repligard will cease to work
- More Java dependency (although we recommend it already now)
Posted on 2005-07-20 16:02:01 UTC to Midgard. 0 comments.
Andy Smith has noticed he doesn't like frameworks:
Frameworks suck because they are an avatar of enterprise, frameworks suck because they take away your freedom, frameworks suck because they build walls between coders, frameworks suck because they make you fit your project to the toolset rather than the toolset to the project, and frameworks suck because they take the fun out of programming, long live the library.
Being actively involved with some frameworks, I can both agree with his interoperability concerns, and disagree about the usefulness of having a consistent framework dozens of applications run seamlessly in.
The nice thing about MidCOM is that nowadays building cool applications from scratch requires only writing the business logic layer, and telling the framework how to handle the rest. And when the component is done, it can be used together with other components in a consistent and integrated fashion.
Updated 2005-07-21: Seems that having frameworks around Planet PHP is also chafing some people.
Posted on 2005-07-21 15:31:53 UTC to Midgard. 0 comments.
The documentation on the Midgard Content Management System is now moving to wiki format. This will make it much easier for people to contribute documentation into the Midgard site instead of posting it in their own blogs or documentation and tutorial sites.
To get started with contributing to the Midgard wiki, contact me to get an account on the site.
Useful reading:
To make things nicer, I've added some linking features from the WordPress SimpleLink plugin to the Midgard Wiki software. However, some work still remains.
Updated 18:10: There is now RSS 2.0 feed of latest updates to the wiki.
Posted on 2005-07-22 07:30:40 UTC to Midgard. 0 comments.
I added Kai Blankenhorn's FeedCreator PHP Class into the MidCOM CVS yesterday as purecode component de.bitfolge.feedcreator. The library is already being used by the Midgard Wiki for its RSS output of latest modifications.
With this LGPLd library it is very easy to add RSS, Atom and other feeds into MidCOM components.
See documentation in Midgard wiki.
Updated 07:46: Other nice new tutorials in the wiki are:
Posted on 2005-07-25 09:21:28 UTC to Business Openpsa. 0 comments.
The makers of the Basecamp project communication software, 37signals have made an interesting post on targeting software at microcorporations:
When you think small business, think 1-10 people not 50-100. There’s an endless supply of 1-10 person companies. Who cares about the Fortune 500? It’s time to care about the Fortune 5,000,000. Forget the enterprise market. Forget the mid-sized company market. Build for the smallest of small companies and you’ll find a thirsty, neglected market waiting for you.
Of course, this is exactly the market OpenPsa and the Digital Business Ecosystem are designed for. The post adds:
The big office suites aren’t for them. The big project management apps aren’t for them. The big heavy spreadsheets aren’t for them. The bloated accounting and payroll apps aren’t for them. What they crave are low/no-learning curve, simple focused tools that let them get their work done quickly and then get out of their way. And I believe they’ll increasingly prefer that these apps will be hosted by someone else — who has time for IT, or installs, or update patches, or…?
Updated 09:17: Several of the comments deal with the problems of sales and revenue models of products targeted at the small business. As 'half empty' writes,
if you charge $50/month for an app, you have to get 200 users to pay your bills and pay yourself. In order to get modestly rich you need 2000 users. Are there even 2000 users in your niche? Are you financially prepared to wait around for 2000 people to sign up? Are you financially prepared to wait around for 200 people to sign up? It doesn’t happen overnight… or even in the next 6 months.
Posted on 2005-07-25 22:17:26 UTC to Midgard. 0 comments.
Midgard 1.7, the first release sporting Midgard2 features like MgdSchema and Query Builder was released today. To celebrate this, I made a new design for the website, following the "Prepare for the New Day" slogan:

The photo in the bottom right corner is from our climb to Drakensberg with the Ungana-Afrika people.
While posting the layout to the site, I was reminded about the xplanet maps the GNOME and Debian communities have. After thinking about this for a moment, I decided it would be easy to generate the same information from the Midgard Who's Who.
Here's a small example, with also bigger ones available:

If you're interested in doing something similar, I've posted a quick tutorial.
Posted on 2005-07-26 18:33:20 UTC to Openpsa. 0 comments.
Midgard 1.7 and the development release of MidCOM, version 2.5.0 are now available. Using these, it should be much easier to test OpenPsa 2.x.
To do this, get the latest CVS version of OpenPsa. The particularly interesting thing to test are the access controls.
Posted on 2005-07-27 10:17:09 UTC to Life. 0 comments.
I've plugged this before, but taivasalla.net continues to chronicle the life in Helsinki with the beautiful photos of Niklas Sjöblom.
Not only are the pictures amazing, but they're also available under a Creative Commons license.
Some examples:
In similar vein, Adam Douglas pointed out the photos of Poland by Maciej Pokora, Piotras's brother. And MIK's photos are moving to a Midgard-powered gallery.
Posted on 2005-08-02 15:09:54 UTC to Midgard. 0 comments.
While not everybody agrees, it really feels like the Midgard Wiki way of generating documentation is working. The idea was to make the documentation more consistent, and to lower the barrier of submitting new content.
The feedback we've got about using Markdown as the wiki authoring format with some extended linking syntax has been very positive. Besides the main wiki, Aegir 2 development notes are now also using the same model.
Examples of completely new documentation areas submitted thanks to the wiki include:
I was initially very skeptical about wikis, but Wikipedia really opened my eyes to the opportunities of the model. It is far more important to have easily updated and cross-linked documentation available than to fret about semantics or different publishing formats.
Before wikis we went the route of DocBook SGML - DocBook XML - XHTML, and none of the formats really met our requirements. DocBook produced very controlled documentation, but since contributing content for it was difficult most developers simply didn't document their changes.
For Midgard documentation the wiki format also makes sense because we can use our own wiki software for it. Jarkko seems to agree:
jval: the wiki is nice - it supports normal midgard owner permissions, right? - if yes, it is possible to use n.n.wiki even for "normal" site content - think how easy it is to edit compared to ais :)
Posted on 2005-08-02 18:05:43 UTC to Flying. 0 comments.
I had another solo travel flight last weekend, this time with Cessna 152 OH-CWM on route Helsinki - Hanko - Turku - Helsinki. Especially the flight over the Turku archipelago was really nice.
Helsinki south harbor:

The island fortress of Suomenlinna:

The village of Rosala, with the Viking Centre in the bottom-right corner:

The island of Lövö with Kasnäs on the foreground:

More pictures in my gallery. See also some old Viking re-enactment photos from Rosala in 1997 and 1998.
Posted on 2005-08-03 16:25:26 UTC to Midgard. 0 comments.
AIS, the Authoring Interface System in Midgard CMS is now getting a new look. The tables and old HTML are now gone, replaced by much more streamlined XHTML and CSS.
Technology is not the only change, however. We've now recognized the two different uses of the system, and provide different UI styles for them. A button for switching between them is available, and the interface remembers the user's preference
Aegir style is a comprehensive content and site administration tool used
by administrators. It will contain both the authoring features and the
administrative capabilities of old Aegir CMS
Simple style is a further simplification of the current AIS targeted
mainly at users who are hopping in and out of the administrative mode using the
Edit this page links on their MidCOM site
I did some basic CSS work for the Simple version of AIS today.
The main view of AIS now combines the different toolbars into a unified item, and hides the navigation by default to give more room for the content being edited. Typography comes from the site style.

To go to manage another part of the MidCOM site, user can expand the navigation by clicking the "location arrow".

Get the new AIS from MidCOM CVS.
Posted on 2005-08-04 12:32:10 UTC to Midgard. 0 comments.
Our development server just died today. This will mean all OpenPsa development is stalled until Rambo gets the new hard drive and Debian installed.
This will mean some delays in Campaigns component development, as we have to rebuild the testing environment. Luckily all relevant code was in CVS. Lesson from this is: "Commit early, commit often".

Updated 11:20: It seems the problem is actually with the motherboard, so we're off to get a new box. From #midgard:
rambo is just about ready to burn the devel box in a big thermite fire
(Ed. note: Rambo is a licensed pyrotechnician, and really does things like thermite fires as a hobby.)
Updated 2005-08-05 12:35: All systems are finally go, and the full development and testing environment is operational. Balance is that we lost slightly over a working day in the crash.
Posted on 2005-08-04 17:40:54 UTC to Midgard. 0 comments.
Because of the dead development server I had a bit of downtime today. To compensate for it, I decided to finally port the elegant Kubrick template to Midgard CMS.
Kubrick is a style template designed by Michael Heilemann for the WordPress weblog system. While Midgard's range of functionalities is much wider than those of a blog system, the template still fit quite well:

To make the template work more nicely out-of-the-box, I'm utilizing the new midcom_helper_find_node_by_component() helper function from MidCOM to automatically populate designated places in the layout with things like latest news items or photos.
This level of component integration is acceptable, but in the future it would be very good to also include component-specific CSS rules into the templates to make the components fit the layout even better. This is made easier as more and more components are embracing standard microformat class semantics.
To get the new Kubrick template for Midgard download it from CVS, and install via datagard. Once this has been done it should appear in the style selection dialog of your Site Wizard:

Next up would be to make the Site Wizard actually create MidCOM site structures based on user-selected "site type". This way user could say "I want a blog", and automatically get newsticker with comments enabled, etc. The feature was in original Site Wizard specs but hasn't quite been designed yet.
Now a blank Kubrick-powered site created by Site Wizard looks like this.
Posted on 2005-08-09 07:35:39 UTC to Openpsa. 0 comments.
Despite some schedule setbacks, we've been recently working on a new component to handle direct marketing in OpenPsa. Previously the Campaigns mass mailer was integrated in the contact manager, and was used with some large campaigns including the Telvis awards.
The old mass mailer was functional, but a bit difficult to maintain and extend, especially with its HTML mail templating. With the new component, org.openpsa.directmarketing, we've been able to learn the lessons from the old system and utilize Datamanager and MidCOM templating to provide a customizable and user-friendly templating and content selection system.

The idea with the new component is that mailing lists are collected as Campaigns that can be either generated by hand-picking members to them, or by making queries to the Contacts component. If the campaigns have been populated by a query, they can also be made as a Smart Campaign where the members are automatically updated when query results change.
When campaign has been populated, its member contact list can be downloaded in CSV or vCard (and of course hCard) format for making regular postal campaigns. In addition, the system enables regular emails, HTML emails, customized newsletters, and SMS and MMS messages to be sent to the campaign members.
The mailing functionality uses Datamanager schemas for different types of content input, enabling developers to easily create new message templates. SMS and MMS messages will be sent using the Tambur HTTP API.
I'm going to a friend's wedding in St. Petersburg today, and will head toward the Budapest Red Bull Air Race afterwards, but Rambo will be working on the component. Commits can be watched in the CVS repository.
Posted on 2005-08-12 16:35:05 UTC to Flying. 0 comments.
After returning from the wedding at 5am this morning and a brief nap I went to the Helsinki-Malmi airport to do the check flight for my Private Pilot's License. After waiting the morning for VFR conditions we were finally able to depart at 11:30am amid rather low and rainy clouds.
The check flight took hour and half, during which we did some navigation and stall practices, as well as simulated forced landing and engine malfunction. The result of all this was that the check flight passed. Now the Flight Safety Authority will analyze my papers, and if everything is OK I should have my license within next two weeks.

I'll post more about my path to becoming a pilot later.
Posted on 2005-08-13 21:33:55 UTC to Life. 0 comments.
Unfortunately I got ill after returning from the wedding in St. Petersburg, and so can't make it to Budapest for 20th.
This means I'll work still couple of days next week before heading for Poland with my motorcycle. And hopefully there will be another air race in Hungary next year.
2005-08-24: My saddlebags were packed, and I was about to leave yesterday morning, when I got the message that my mother had suffered a subarachnoid hemorrhage at night. This is a very serious condition, and so I'm staying here. She will be operated tomorrow, with all wishes for her recovery...
Posted on 2005-08-21 02:00:45 UTC to Desktop Midgard. 0 comments.
The Mac OS X packages of Midgard made by Robert Guerra were released on August 15th. Since then it has been listed by both VersionTracker and Download Squad. Six hundred people have already downloaded the 500 meg disk image containing both Midgard CMS 1.7 and Fink.
This is very good start for introducing Midgard to the Mac world, especially as the installer is so smooth:

The obvious next step will be to complete the Fink packaging so that the installer will be smaller and fit right together with the regular Fink installation.
I can really recommend OS X users to try the packages out. The installation experience is even nicer than with Jarkko's excellent Fedora packages. Once the installer has been run, simply create a site with the Site Wizard and start entering your content.
Download Squad writes:
The real news is that they finally released a slick OS X installer for Midgard. In case you've never heard of it, Midgard is a great (open source) CMS that runs on Linux, or many UNIX systems. The OS X installer is brand new, so expect some potential bugs. Midgard boasts a feature set you'd expect from any decent CMS: web-based authoring, image asset management, clean URL's, roll-back, and a built-in search engine. Midgard only recently came to OS X and I'm glad they finally released an easy installer.
Updated 2005-08-22: Updated download count from 300 to 600.
Posted on 2005-08-26 18:16:47 UTC to Midgard. 0 comments.
I've posted thoughts about using location information on the web and my blog has been associating position information and weather on city level into all documents there since last December. However, this data isn't very useful yet as such. As the city-level information doesn't contain coordinates, I can't:
- Find blog entries or photos from nearby
- Make the blog entries searchable by systems like GeoURL
- Place the photos on a map
To fix these problems I need to switch to storing locations based on coordinates, and make the positions more accurate than just the city. This brings me to the big problem location information, just like all metadata has: cost of producing it. If I need to figure out and manually type the current location every time I post an entry, I won't do it. So, the procedure has to be more automated than that.
I think the approach I've been taking so far with location information of entries is pretty good, as the information is stored centrally (I was in Helsinki from July 17th to 21st), and then entries get their position by matching my track to their creation timestamp. Now my system does this only on per-day level, but it would be easy to match on actual timestamps.
As a person can be only in one place at a time, this system should be quite foolproof. Also, it makes it easy to "mass-locate" data, and to correct location information afterwards.
Currently I maintain the position information via SMS. But for more accurate reporting, this would obviously become expensive and bothersome. When we were in Moscow Rich Bowen had an idea about getting the location information based on current network, and now there actually is a service for doing this. Plazes uses a small desktop applet called Launcher for storing current network identifier, which then is connected to a location. As your Plazes information can be queried via a WhereAmI web service, it would be easy to set up a cron job to update the position data in Midgard using this information:

While Plazes can solve the problem of positioning entries made when in normal network or office environments, for more adventurous locations importing GPX logs from a GPS device might be optimal.
Updated 16:42: One point to consider however, is that this approach just marks items posted from a location, not necessarily about a location.
Posted on 2005-08-26 19:19:02 UTC to Openpsa. 0 comments.
After a bit of thought we've returned the Group Calendar module of OpenPsa 2 to using horizontal layout for days. The earlier versions used a vertical layout designed with Tigert that proved to be a problem with larger number of resources. This should solve the scalability issue:

In addition to being more flexible, the new calendar layout provides the events in the hCalendar microformat. The vertical layout of org.openpsa.calendarwidget will be modernized into similar state and made into a configuration option useful for small organizations. Alan's XUL calendar interfaces could also be useful although OpenPsa already integrates with desktop calendars and mobile phones.
Besides regular group calendar usage, OpenPsa Calendar is being used for things like airplane reservations and work shift planning of medical staff.
Posted on 2005-08-29 12:04:54 UTC to Desktop Midgard. 0 comments.
Photon, Jonathan Younger's nice photoblogging plugin for iPhoto was released under LGPL last thursday. The tool officially supports Wordpress, MT, TypePad and Blojsom, but actually posts using the standard MetaWeblog API that Midgard also supports.
Here's how to use it with Midgard:
Install the plugin

Check the MetaWeblog URL of your blog
MidCOM's blog component supports MetaWeblog API by default. The URL for it is the blog's URL, with rpc/metaweblog/. So in my case when the blog URL is http://bergie.iki.fi/blog/, the RPC URL is http://bergie.iki.fi/blog/rpc/metaweblog/.
Edit the Photon settings
Photo's settings can be found in the Share menu item in iPhoto. In addition to the regular items like File Export and Web Page, there should be a new Weblog tab.

Here you should select the Weblog Settings... to add your Midgard-powered blog into the list.
Unfortunately since Midgard is not yet an officially supported blogging system in Photon, the Autodiscover feature does not work an so you need to input your blog's information manually. Blog ID doesn't matter with Midgard, but the Access Point should point to your blog's RPC URL. Select Blojsom as the Platform, as that makes Photon use standard MetaWeblog API instead of Movable Type API.
Entry creation preferences
Photon allows you to configure what information is stored into what standard Metaweblog entry field. The selections here depend on how you have configured your content schema, but these are fairly good defaults:

Posting photos
After the setup has been done, simply select a photo in iPhoto, possibly write title and keywords for it, and select Share-Export (Shift-Command-E). If you are using categories with your blog you can select them here:

And that's it. Now your photo should appear in the blog:

While this is already nice, it would be even nicer to be able to add Photon support into MidCOM's photo gallery component. Since Photon source is now open and it is easy to see what it actually does this should be fairly simple and require only porting the MetaWeblog handlers from newsticker.
Thanks to Daikini Software for Open Sourcing this great tool!
Posted on 2005-09-02 13:24:20 UTC to Life Oscom. 0 comments.
Taya pointed me to Software Freedom Day on September 10th:
Software Freedom Day is a global, grassroots effort to educate the public about the virtues and availability of Free and Open Source Software. Over 200 teams are registered so far, and they have plans to celebrate Free Software at schools, universities, parks, and many other public places.
As it happens, it is also my birthday :-)
There is also an effort to organize the event in Finland.
Posted on 2005-09-09 08:41:32 UTC to Midgard. 0 comments.
Content Management market analyst CMS Watch has released its Vendor Kudos and Shortcomings of 2005 list. Midgard CMS gets honorable mentions in two categories:
- Templating
- Page Assembly & Renditioning
These have both been traditionally Midgard's strong points. However, this completely leaves the advances that have happened with Midgard's integrated search, accessibility features and the localization capabilities that allow publishing in Arabic, not to mention everything else changed through MidCOM.
This is of course understandable considering that CMS Watch is still living in Midgard 1.5 world, but it brings the question of how we should communicate the big changes that have happened in the Midgard 1.7 series, and are happening in the 1.8 space.
Very little of the "classic" Midgard remains, and even that is going away as MidCOM is being rewritten to the new database interfaces and access controls. At the same time both Aegir and MidCOM's own Datamanager editing interface are changing through AJAX and other new UI concepts.
Updated 14:00Z: eWeek has a recent story about Open Source CMS that mentions Midgard:
Don't think, by the way, that Byrne is an open-source Luddite. CMS Watch, the leading Web-based portal on CMSes, was first built on LAMP (Linux, Apache, MySQL and PHP) using the Midgard open-source CMS.
Posted on 2005-09-09 20:34:58 UTC to Business Life. 0 comments.
I booked the tickets today for a Sep 22nd - Oct 3rd visit to Nemein Georgia in Tbilisi. The purpose of the trip is to help Taya with MidCOM site building and hopefully persuade some Georgian ISPs to host Midgard CMS.
In addition to the serious part of the trip, I'm really looking forward for spending some time in the country. We had lots of fun the last time, and this should be good diversion especially after this summer's missed trip.
This should also be a good chance to pick up some more Georgian language and excellent local wine. Thanks to Taya and Lasha for the invitation!
Updated 20:48Z: WikiMedia Commons has some beautiful 19th century photos by Sergei Mikhailovich Prokudin-Gorskii from Russia and the Caucasus region.
Posted on 2005-09-15 07:51:45 UTC to Midgard. 0 comments.
Torben published a new MidCOM feature called watcher yesterday. It enables Midgard CMS components and libraries to register to receive notifications about changes to Midgard objects of different types.
As this coincided with the launch of Google Blog Search which automatically refreshes its search index by following the Weblogs.Com list of blog changes, I decided to make a new weblog pinger utility based on the watcher feature.
The net.nemein.ping library is built on Rogers Cadenhead's Weblog_Pinger library. It will monitor article changes in components like newsticker and wiki, and ping a set of defined XML-RPC ping services on all updates. This should help make blogs powered by Midgard CMS more visible.
Updated 07:56: This is what the pinger library stores into the MidCOM debug log:
Sep 14 23:52:07 [debug] midcom_services_cache::initialize: Pinging Ping-o-Matic...
Sep 14 23:52:08 [debug] net_nemein_ping_pinger::ping: Successfully pinged rpc.pingomatic.com
Sep 14 23:52:08 [debug] midcom_services_cache::initialize: Pinging Technorati...
Sep 14 23:52:08 [debug] net_nemein_ping_pinger::ping: Successfully pinged rpc.technorati.com
And as can be seen, the response from Google is quite fast (the article was in searches much earlier than 1 hour after posting, but I didn't realise to take a screenshot):

The current implementation of pinger has two limitations. First of all, as the pings are now run during the HTTP request that saves an article, the request can become slow if there is heavy traffic at one of the services. The solution for this would be to store the notifications into a temporary record, and then process them via MidCOM's new cron service.
Secondly, it now supports only the basic Weblogs.Com ping and not the extended ping that would provide URL to the RSS feed in addition to the regular weblog URL.
In the other news, our new mRFC 0020 on date and time handling in Midgard2 is now short of one +1 vote by a Midgard contributor to be passed.
Posted on 2005-09-15 18:45:00 UTC to Openpsa. 0 comments.
Flash designer Joonas Kallioinen of Itse Valtiaat fame contributed a minor refresh to the OpenPsa 2 style:

Compare with the OpenPsa 1 Calendar and the previous OpenPsa 2 design. The new design is also much more IE-friendly.
This is just the default style. OpenPsa 2 can be run with any Site Wizard template.
Posted on 2005-09-21 13:39:43 UTC to Business Midgard. 0 comments.
WebProNews has a story on how the future of web design is content management:
This is somewhat of a call out to all web design companies. If you cannot offer content management to your clients, you may be left in the dust within a few years. The more affordable content management becomes, the more in demand it will be. Without giving your prospects this crucial option, you may lose a great chunk of your potential clients to the next web design company that has a fully automated system that states: "all the consumer has to do is login and get started."
The New Media agencies at least here in Finland seem to have noticed this, and are actively dumping their in-house systems in favor of more established players. While no data is available, at least the feeling I get when touring them is that the big winners are Midgard CMS as the Open Source option, and Ch5 Navigo as the proprietary one.
This is obviously good news to us, and means that the Midgard Site Wizard automatic site creation tool and Exorcist, the cross-CMS content migration tool are getting good use.
Story via Column Two.
In the other news, Centri Regionali di Competenza and Kotikissa.info are first two live sites powered by OpenPsa 2, and by extension Midgard2. CRC Italia is a project collaboration extranet, and Kotikissa.info is a webzine for a real estate agent chain utilizing the direct marketing tools for targeted newsletters.
Posted on 2005-09-25 11:16:57 UTC to Life Midgard. 0 comments.
Day zero: In transit
I left for the Amsterdam flight after hacking on a cottage database for the Pyhä-Luosto website and a sushidonburi lunch at Len's with Kerttu. The WiFi at Helsinki-Vantaa worked and I was able to chat over some recruitment issues with Topi prior to leaving.
Flying weather was excellent, and I was able to follow our route easily. The views over familiar places from motorcycle trips like Puttgarden and the Kiel canal were clear and easily recognizable. The short stopover in Amsterdam didn't unfortunately allow for any touring there, but that will be redeemed on the return trip.
The KLM flight for Georgia left at sunset and we flew over Europe illuminated by the star-like clusters of city lights. The Tbilisi approach goes over the whole city following the Mtkvari river, which gave a nice view. Compared to the torturously hot 6 hour wait in Poti harbour on the previous trip, the border was easy and efficient. I was practically the only one going for the "International passports" queue, as everybody else was either Georgian or US military. The only question asked was if this was my first visit, and then I was stamped in.
Lasha was waiting for me, and we drove to his and Taya's place where I am sleeping in the "computer room".
Day one: Ubuntu publicity
Having arrived at 4am, I slept quite late, waking up to the sounds of Tiko watching the Soviet classic cartoon Nu, pogodi!. We drove Tiko to Taya's parents and continued to the Open Society Institute office where Taya and the other eRiders are headquartered.


We quickly fixed the local Midgard installation issues and prepared to go on a tour, as a group of demonstrators closed the office driveway. They were supporters of the late Zviad Gamsakhurdia who were demonstrating against us "Imperialist swine". They gave way to our car, however, and we were able to drive to the first meeting of the day.
The eRiders were setting up Kubuntu to the "First School" of Georgia where most of the national leaders have graduated. While waiting for the installations to complete we were given a tour of the premises, which were still being renovated after the Georgian civil war. While short of its former glory, the school included several computer rooms, museum, and even a chapel.
After the school installations we went to meet the IT people of Georgian parliament and Georgian Computer Society. We demoed Ubuntu installation for them, and talked about Midgard CMS. Especially the possibilities of Midgard in eLearning sector would be very promising. The tools in Midgard have already been partially localized to Georgian, leaving availability of hosting as the main issue for success.


For dinner we went to a khinkali place Kolkheti on the Mtkvari river with Ia and Zviad.
Day two: Sightseeing
Saturday was a day off from regular Midgard work, and we started the day by driving to Hypermarket Goodwill to buy supplies for a basturma barbeque later in the weekend. The market also supplied a staggering number of different wines, and even the local rarity: dark beer. We chopped the meat, onions and peppers and left them to stew together, and drove to a special bean restaurant near the ancient capital of Mtskheta.
After stuffing ourselves with beans and khachapuri we went to the 11th century Sveticxoveli church. The church was being renovated after decades of neglect during the Soviet times, and was bustling with activity. In addition to a mass there was a constant procession of weddings going on. Some of the old murals were interesting, showing monsters, alleged UFOs and Christ surrounded by signs of the Zodiac.


The next location for the tour was the old monastery nearby. There we were unable to enter the church because of my shorts, but we saw the graveyard and the garden where holy oil comes from the ground. Everywhere old beggars were selling bottles of this oil of claimed miraculous properties.
We also climbed to the ruins of a fortress guarding the Georgian Military Highway leading up to Kazbegi and Ossetia in the north. The view over the valley was very pleasant and there was a group of children playing and climbing all over the old walls.


As it was getting late we drove to the shore of the Tbilisi Sea reservoir and watched the sun fall behind the hills covered by old Soviet beach-side resorts now occupied by Abkhazian refugees.
Day three: Barbeque on the hills
On sunday we decided to take it easy with the touristic thing, and leave for the Kharitonashvilis' under-construction datscha in the hills surrounding Tbilisi. The concrete structure of the house was in a small village behind about twelve kilometers of very bumpy road, with very beautiful views down to the forested hills and Tbilisi below.
Cows and stray dogs were touring the grounds while we prepared the fire and roasted some basturma meat we'd made earlier on skewers. This proved to be delicious when eaten together with Georgian bread, fried aubergines and fresh vegetables.


In the evening we drove back over the potholes, enjoying the view at the lights of Tbilisi as we descended towards it.
Day four: Evening in Biergarten
In the morning we met some people from Deer Leap, the Georgian school computerization project named after the local name of the Milky Way and modeled after Estonia's Tiger Leap. They were interested in possibilities of building a learning portal for teachers of public schools. Since we've done some similar tools for Finnish educational organizations we were able to offer some advice on how to do it with a proper CMS.
Taya needed to handle some paperwork related to obtaining a passport for Tiko. Ever curious, I wanted to see how the Georgian bureaucratic machine worked. First we drove to an office to get a driver's license with changed surname for Taya. Then we had to pay some registration fees at a bank, and after that visit another office to get Tiko's paperwork running.
There however the lady running the office went through the papers and noticed that in one of them, Taya's birth-date had a typo in it. With this information we had to drive fifteen kilometers to another office to request it to be fixed. However, they declined to make the fix, as we did not have a written request for fixing by the previous office.


At this point most of the day had already been spent, and so we had to return to the Soros building to set up the first public Midgard server there. We met the GRENA system administrator, and he helped us set the server's network settings. We also fixed some booting issues by properly setting up apmd on the system.
For dinner we went to Stelze, a German biergarten -style place. There we enjoyed some beers from Munich together with roasted pork leg and some Drupal versus Midgard talk. We also met our host-to-be for the coming weekend's trip to the cave city of Vardzia.
Day five: eLearning plans
Tuesday was a quick dash of short meetings. eLearning possibilities, conversion of the eRiders website to Midgard, some khatchapuri for lunch, and finally a dinner in an Irish bar.
We laid out a plan about a Midgard-powered portal for the Deer Leap people. How the portal project would be organized, how it should work, and finally, how to make its community and management as self-sufficient as possible.
To be continued...
Posted on 2005-09-28 11:29:51 UTC to Midgard. 0 comments.
We've gotten several problems of memory leaking with MidCOM used with PHP4 and Apache2 on both Fedora and Debian platforms. At first memory leaks on Midgard 1.7 were suspected, but after extensive testing this theory was discarded.
Then we received reports of similar problems on Moodle running on Apache 2, which seems to point at some specific PHP function utilized by both leaking.
Good ideas about which function this is would be appreciated, but before that it is possible to work around the issue by setting MaxRequestsPerChild in <IfModule prefork.c> to about RAM/10. For example:
MaxRequestsPerChild 67
Thanks to Jarkko for seeking out the issue on non-Midgard systems! I'll be sure to post details as soon as we find out what function causes this.
Written in the pleasant WiFI-equipped Cafe Sans Souci in Tbilisi Old Town.
Updated 2005-10-12: Some additional memory leaks were found and fixed in Midgard 1.7.2. This should improve the situation.
Posted on 2005-10-03 11:21:07 UTC to Life. 0 comments.
We had amazing time in the medieval Georgian cave cities of Vardzia and Vanis kvabebi last weekend. I've already contributed some information on Vardzia to WikiPedia, and plan to write more about both later on.

The monastery consisted of over six thousand apartments created as protection from Mongols into the hidden thirteen floors high complex. The city included a church, throne room, and a complex irrigation system watering terraced farmlands. Only access to the complex was through some well hidden tunnels near the Mtkvari river.

An earthquake in Samtskhe destroyed approximately two thirds of the city in 1283, exposing the caves to outside view and collapsing the irrigation system. The church was reinforced and an externally visible bell tower added during the reign of Bektha Jakheli in the thirteenth century.
Thanks to Irakli from Info-Tbilisi for being our guide for this trip, and especially for encouraging us to climb up the "impossible" rabbit holes into the white church of Vani's caves. And thanks obviously to Taya and Lasha for the whole time in Georgia!
The UNDP Samtskhe-Javakheti office was also most helpful.
Posted on 2005-10-06 17:47:48 UTC to Oscom. 0 comments.
It seems that Google is now autodetecting PermaLinks of dynamically-generated pages using the rel="PermaLink" syntax. Here's one of the results for my blog:

This is probably a really good idea, as it allows their search result links point to correct document even if the target site has been reorganized, combatting linkrot. Of course cool URLs don't change, but as they're titles too they can change during reorganizations, creating the need for permanent links.
Making the PermaLink of a page machine-readable is really easy, as shown by WikiPedia:
Permalinks can be displayed on the system using a HTML link element. This way authoring tools can automatically detect the permalink and use that for linking instead of the regular URL. The Link element should include two attributes:
<link rel="bookmark" href="<PermaLink URL>" />
Updated 16:00: Tantek from #microformats pointed me to an even earlier convention for making PermaLinks machine-readable: rel="bookmark".
Midgard CMS has now been updated support rel="bookmark" as it is outlined even in the HTML spec.
Posted on 2005-10-22 13:47:17 UTC to Midgard. 0 comments.
net.nemein.calendar is the new default calendar in Midgard CMS. It replaces the old de.linkm.events component with several clear advantages:
- Repeating events support (different rules, weekly, daily, monthly etc)
- Storage of the events is MidgardEvent instead of MidgardArticle, meaning that the
DB queries are more optimal, storage more semantic, and the structure supports
things like event participants
- Output is by default in the hCalendar microformat.
The calendar uses the OpenPsa Calendar libraries to provide its features. This means that it is easy to add new capabilities like publish/subscribe webcal feeds and SyncML as we go.

I've deployed the new calendar for Midgard events. Converting events from de.linkm.events to the new format was done with a simple PHP script. Prior to running this script inside a Midgard style I installed OpenPsa and the latest net.nemein.calendar.
The hCalendar feed can be subscribed to iCalendar-aware applications using the X2V application. Unfortunately as X2V doesn't yet support iCalendar UIDs, Evolution will not display the calendar. But here is what it looks like on Apple iCal:

Posted on 2005-10-23 09:06:29 UTC to Life. 0 comments.
Business Opportunities Weblog has a funny tool for calculating blog's worth:
The tool bases its calculations into some research about the AOL - Weblogs Inc. deal:
In acquiring Weblogs Inc., AOL has now provided us with some numbers traditional media are willing to pay for a blog. Looking at the numbers above, one can try to guess at the value of a link from an external site. a single link on the weblogsinc network represents 0.002258559942180087 percent of the overall network.
However, things are unfortunately not quite so sunny:
Should we now assume that traditional media companies are willing to pay between $500 and $1000 per site that links into a blog?
Not quite. The incremental value is in the size of the network and the underlying tools. Jason and Brian have been working on developing a blog authoring technology, called BlogSmith, that sits at the core of their network and one has to believe that AOL saw some value in the software too. However, one can easily say that blog valuations are going to be easier to make after this deal since it provides the first yardstick in that space.
Via Billmon.
While numbers like this are obviously irrelevant, I'm still quite happy how my blog's visitor counts have climbed from dozen to over 1000 visits per day between when I switched from static website to a blog in March 2004 and now.
Posted on 2005-10-27 12:10:57 UTC to Openpsa. 0 comments.
Something interesting is going to happen with OpenPsa and Digital Business Ecosystem:

The DBE integration can be seen in action in Linköping Midgard developer meeting this weekend, or in Tampere DBE workshop on monday.
Posted on 2005-10-29 20:08:21 UTC to Midgard Openpsa. 0 comments.
This weekend is being spent in the Midgard developer meeting hosted by Anykey Solutions in Linköping, Sweden. Besides the ferry Suicide Tequila episode reported by Edi, the time has been both productive and fun.
Happened so far:
Tarjei ran a pretty interesting demo and presentation on the Aegir 2 project. It seems that once the object browser is done, we can safely remove both old Aegir and SpiderAdmin from the distribution.

After some initial bugs had been hammered out, we also were able to run the promised demo on managing subcontracted projects with OpenPsa 2 over the DBE P2P network. I'll try to post screenshots of the whole project workflow after the Tampere demo on monday.
Another result of the demo was that everybody agreed heartily that Exorcist should replace Repligard as Midgard's replication system of choice. This will make replication faster, easier to handle two-way, and push the use of Java Content Repository in Midgard CMS.
We also had a very good discussion about refining Midgard's style engine to work on a clearer stack model. This will make MidCOM's style template system integrate transparently into Midgard's powerful page composition system, and make the eventual page transition of MidCOM much easier.

Also, the annoying MySQL 4.1 typecasting bug got fixed, Midgard 1.9 feature requirements got decided, and many people wrote their first MidCOM component based on Tarjei's tutorial.
In the saturday evening we had a thai dinner in the SmallOne Mansion.
Posted on 2005-11-02 09:57:59 UTC to Openpsa. 0 comments.
As hinted earlier, we have integrated the OpenPsa project management system with the Digital Business Ecosystem P2P network.
This allows organizations to manage projects handled with subcontractors or a Keiretsu using tools that can communicate across corporate boundaries.
See my slides from the Tampere workshop
Posted on 2005-11-02 12:46:14 UTC to Life. 0 comments.
We went with Kerttu to a fencing lesson for the first time yesterday. The sabre course feels interesting, and the connections to Kendo, the other sword sport I've practiced are definitely visible.
A very small course at Ylioppilasmiekkailijat, so we practically get private instruction.
Before Kendo I've also practiced Iaido, the art of drawing the Japanese sword, and of course Viking swordfighting. Kerttu has some experience with the foil.
Posted on 2005-11-09 08:06:20 UTC to Life Politics. 0 comments.
The riots in France are running for the 12th night, and the country is now in state of emergency. John Robb of Global Guerillas is analyzing the situation:
The open source war in France continues to rapidly evolve (as of Sunday night). Not only did it increased in scale (the torched car index reached 1408 cars on Sunday) it has also increased in scope (982 of those torched cars were outside Paris and Germany/Belgium reported their first incidents). The tactics of this new Blitzkrieg are also evolving. Higher value commercial targets are being torched and policemen are being engaged in wasting attacks -- incidents that engage and tie up forces. There are even signs that bazaar transactions are present: a commercial bomb factory, with 150 incendiaries on the "factory" floor, was found.
Meep, Our correspondent in Toulouse writes:
The situation is turning into more serious also here. Last night a car had been pushed to the metro tracks, forcing me to call monsieur to pick me up after I got out from the lecture at eight. Today they said that metro would be running until six p.m., but the doors were closed already after four. I spent one hour walking the four metro stations to the first working train, getting at least some exercise. Buses are not running at all in the city, as one had been torched last evening.
No word from Lettu in Paris yet.
Updated 15:10Z: Got message from Lettu later today. Seems like she hasn't really encountered any of the riots, except via news:
From my point of view, the whole riots could be a media trick, as nothing unusual has been seen or heard.
Apparently there have been some problems with trains going to the airport, as they cross the northern suburbs where the troubles are centered. Stonings, armed guards, and other interesting things. However, I still live in my safe little bubble. ... Reminds me of old-fashioned village life.
Posted on 2005-11-09 17:43:53 UTC to Business. 0 comments.
O'Reilly Radar comments on ZDNet UK's Is Open Source A Bubble Ready To Burst? article:
I've always viewed VC funding of open source as being like telco investment in infrastructure: even if the telco can't figure out how to make it work, the copper's still in the ground, the fibre's still laid to the home, the source is still available for people to continue building upon. What's insane is promoting VC funding of closed source companies: if they go south, their software is either sold at bargain basement prices to a competitor (net improvement to world: bugger all) or ends up locked in a trunk in an investment company unlikely to ever see life.
While Venture Capitalists are getting hesitant to fund Open Source business, software entrepreneurs are also finding that they need less money to get things done. This and the dwindling exit market make VCs feel the squeeze.
It is interesting to follow the venture market now that we're wondering how to get the Digital Business Ecosystem applications out to the market more effectively. The market has definitely changed since we started in 2001.
Via Boing Boing and Signal vs. Noise.
Updated 2005-11-10: Apparently Open Source investing is really picking up. Via Bob Sutor.
Posted on 2005-11-10 18:12:34 UTC to Business. 0 comments.
The yearly meeting for COSS members was held in connection with the OpenMind conference in the auditorium of Werstas, the proletariat's central museum of Tampere. As Nemein participates actively in several COSS projects like the Digital Business Ecosystem, I left the Espoo office early to take the bullet train north.
In addition to the official agenda, the meeting contained several presentations about current Finnish Open Source initiatives.
COSS in 2006
The Centre for Open Source Software has been performing accordingly to the targets set for 2005, and will continue to operate from within the Hermia Technology Center. The complete operating budget for 2006 will be estimated at 300k€, compiled from member organizations and Finnish public funding.
The focus areas for COSS in 2006 will be lobbying Open Source and Open Standards in the Finnish public sector, helping member companies in their business development, and acting as a central international contact point for the Finnish Open Source industry.
Open Source business research
OSSI is a research project funded by Tekes and run by HUT, Kauppakorkeakoulu, and other research organizations. Its 800k€ budget makes it one of the largest OSS research projects in European public sector. The project is now in early stage, with its website and blog expected to open soon.
OSSI's sister project ServOSS is a development project for building internationalized Open Source professional services business. The project is mainly funded by Tekes, and is still looking for corporate partners operating in the OSS services industry. Participation fee for companies is 2500€.
Localization issues
Finnish OSS localization project, "Kotoistaminen", got organized in summer 2005. Keeps "volunteer" localization work of OSS projects open, but tries to fund the trouble spots. Currently normal desktop environments and major applications like OpenOffice.org and Firefox are localized, but the quality differs.
The localization project aims to build a bounty system to allow end-user organizations to fund translation work. In addition to actual user interfaces, help texts and documentation should be translated, but this process is still severely lagging.
One idea for boosting localization efforts would be to utilize the Rosetta web-based translation tool from Ubuntu's Launchpad project. Rosetta allows different translations for a string to be submitted, and then project owner can choose the best option. Rosetta would be an excellent tool for Midgard's localization as well, but this would require the proposed transition to Gettext.
Finnish Ministry of Justice will be piloting usage of OpenOffice.org 2.x in 2006, and for them the quality of localizations will be important. Spell checking is also imperative. Currently Finnish spell checking can be handled through the Soikko application, but it doesn't run on Windows.
Hunspell-fi aims to create a spell and grammar checker that supports difficult languages like Finnish and Hungarian on multiple platforms, and could be a Soikko replacement.
OpenSynchro
OpenSynchro is a GPLd integration tool developed by SmileHouse, a proprietary web store vendor for connecting web stores with warehouse management, procurement systems, ePayment systems, etc. The idea with OpenSynchro has been to make eBusiness system integration easier with it than with regular EAI tools.
OpenSynchro can be used for transferring product, order or customer information across different systems. It can also be used for ad-hoc data migration needs, placing it to similar usage area as the Exorcist migration tool for Content Management Systems.
OpenSynchro was developed with public funding, and its Open Sourcing decision was partly based on desire to give something back to the community. SmileHouse also sees it as a better marketing method than making it another proprietary product.
The target users of OpenSynchro are in the SME sector, as there eBusiness integration is most severely lacking. Being based on Java, MySQL and Tomcat makes it quite platform agnostic. It includes several component plugins like XSLT, SMTP and others. The base architecture is familiar from Exorcist, providing source (exporter), converter (transformer) and target (importer) parts. The system can be configured over the web.
Nokia 770
N770 is the Linux and Open Source usage pilot for Nokia. It is also Nokia's entry to the broadband device business. It is sold directly from Nokia.com, bypassing the traditional reseller channel. The target market is portal companies and broadband network providers.
Boot time is about 38 seconds. After that, online access can be handled either via WLAN, or using bluetooth connection to a mobile phone. The device can be controlled by some buttons, and a stylus stored inside the hard case. For typing the options are a virtual on-screen keyboard, or a bluetooth keyboard. For easier reading, the whole screen of N770 supports zooming.
The left-hand bar provides the access buttons to the main use cases; web bookmarks, email and other applications. The idea is that the device is a web browser, not a full computer or a smart phone. However, other applications can be installed as .deb packages, and they will appear in the "Others" menu.
Maemo is the Open Source community kicked up by Nokia to support third-party developers building applications for the N770. The next product for the series will be a software package adding VoIP support. The Hildon user interface is based on the GNOME libraries. Nokia tries to work actively together with the Open Source communities their tools are based on.
N770 could prove to be an interesting tool for keeping meeting notes and handling OpenPsa tasks on the road. With a Bluetooth twiddler, text entry could be quite fast. N770 ships for 369€, compared to the 745€ Communicator.
Laika is an Eclipse development environment built by Helsinki University of Technology for N770 application development.
In the evening we will be meeting Bob Sutor, the IBM Vice President of Standards and Open Source.
Posted on 2005-11-11 13:24:38 UTC to Midgard. 0 comments.
If you get this error message when trying to start Apache, then you're out of semaphores:
# apachectl start
Ouch! ap_mm_create(1048576, "/var/run/httpd.mm.22903") failed
Error: MM: mm:core: failed to acquire semaphore (No space left on device): OS: Invalid argument
/usr/sbin/apachectl start: httpd could not be started
The easy fix is to just remove all semaphores owned by Apache:
# /usr/bin/ipcrm sem $(/usr/bin/ipcs -s | grep apache | awk '{print$2}')
Got the fix from cacti forum.
Posted on 2005-11-13 15:50:57 UTC to Midgard Oscom. 0 comments.
Zend, IBM and others have announced a collaboration project to create a Zend Framework using the following mission statement:
- Keep PHP competitive among other technologies including Ruby-on-Rails, Spring, .NET, etc..
- No framework today supports extreme simplicity
- Provide "clean" IP to enable commercial use
- Structured development process will lead to uniform code base
- Take full support of PHP 5
The general community feeling on Planet PHP seems to be quite scared, as the new framework "threatens" to change the way PHP applications are developed, by providing a common set of tools and development methodologies. This is obviously a big change for everybody used to work either in the free-form fashion, or using one of the community-built frameworks.
The need for consistency
However, even though I'm a developer in one of the PHP application frameworks, I see the need for some standardization. Now the common ground shared between all the different PHP frameworks is just the language itself, forcing all projects to focus on building lots of low-level plumbing infrastructure instead of focusing on the features that could differentiate the applications.
Each application project or framework having to write their own low-level services means that by large the applications are not compatible with each other. If you want to for instance run a site that would contain blogs (using Wordpress), forums (using SM Forum) and photo galleries (using Gallery), each of them would most likely use different user and permission system, style templates and configuration tools.
This kind of inconsistency has lead to the state where each framework and CMS rolls their own instead of using the best-of-breed PHP applications. This means huge amount of wasted effort, and an opportunity for other programming environments like Ruby on Rails to pass PHP frameworks in functionality and appeal.
This situation is similar to the effort wasted by all the different Linux desktop environments in the past. However, instead of two or three serious contenders, the ease of PHP development has given rise to hundreds of different frameworks and content management systems. In the desktop environment scene, the different projects are already collaborating on lots of the base infrastructure, and are now starting to do the same in the look-and-feel space.
If done well, the Zend Framework could do the same for PHP projects. If done badly, it would merely introduce a yet another framework to the space.
Midgard point-of-view
Looking at the still-vapourwareish Zend Framework from the point-of-view of the Midgard Project, I see the possibility of benefitting from it. Currently MidCOM 2.5 framework is about 75k lines of code. Much of this is because functionalities like ACL and style engine have not yet been rolled into the Midgard Core, but also because lots of other base infrastructure like localization must still be done by MidCOM.
Now, if you think about Midgard, it consists of several separate parts:
Data abstraction layer
MgdSchema allows developers to abstract the database storage, and use query tools, access controls and extensibility with it. As common database abstraction is one of the Zend Framework goals, the way to access these tools would possibly change for PHP-level Midgard. But as Midgard's scope extends outside the PHP world also to Java Content Repositories, using a straight SQL abstraction system would be out of question. It remains to be seen, if Midgard's database abstraction layer could be used as a storage provider for the Zend Framework.
Style Engine
Templating and page assemply have traditionally been the strong points of Midgard, as often noted by CMS Watch. The power of it was slightly broken by the double standard imposed by MidCOM, but this is now getting wrapped back together.
The style engine and URL handling of Midgard is definitely something that should be still possible to keep as-is, even if something like Zend Framework would be used beneath.
User interfaces
The user interface layer would benefit a lot of collaboration and shared tools. We're planning to follow Tango visuals and the GNOME Human Interface Guidelines to quite a big degree in Midgard. This part of UI is best collaborated using shared CSS rules and XHTML naming standards like Microformats.
However, form handling and AJAX are something where the Zend Framework could make things easier, consistent and more secure.
Development tools
The Zend Framework also has the possibility of making Eclipse the standard development environment for PHP development. As this is already the recommendation for Midgard developers, we are obviously eager to see the rise of better PHP tools for it.
So, what's going to happen?
The Zend Framework project seems to be still a quite early stages, and despite claims that some code and specs exist, they still remain to be seen by the PHP developer community. Even in this stage, it would be crucial for the Zend Framework project to be available for peer review. Otherwise, it will be seen as just a corporate intrusion into the formerly open PHP framework space. Statements like this don't help much:
We're now working on setting up the collaboration infrastructure and engagement guidelines. We expect to have them ready by January 2006. In the meantime, we will use this medium to share progress on the project development.
I feel some urgency in seeing what is going on and planned in the project. The Midgard community is now starting to refactor the MidCOM framework to work on PHP5, and to utilize new language features like interface classes and exceptions. At the same time we're starting to utilize functionalities moved from MidCOM to Midgard Core. This would be the optimal spot to take the Zend Framework into mind if it was available, making MidCOM even more consistent with the KISS ideology.
As we in Midgard community have quite a bit of experience with PHP component architecture, and with following strict coding standards, we could have some things to contribute to the PHP Collaboration Project, but unfortunately the process is still closed.
Posted on 2005-11-13 17:07:49 UTC to Business Midgard. 0 comments.
Here are the Midgard CMS slides we presented to two major potential Finnish customers on friday:
Midgard presentation in Finnish (256 KB PDF)
While the slides were made half-asleep on an early morning train from the Tampere COSS meeting and are so not very presentation Zen ish, they try to focus on couple of key points with Midgard and Nemein:
- Midgard's standard integration interfaces like Java Content Repository
- Connectivity to Midgard from different client tools; mobile phones, browsers, etc
- Nemein's strong client portfolio
It went across quite well to both organizations. Expect to hear some announcements related to that later on.
Posted on 2005-11-13 19:33:12 UTC to Midgard Oscom. 0 comments.
DENIM is an interesting, BSD-licensed desktop application from University of Washington. It allows web developers to sketch site and page structures easily with a stylus. Pages can be interlinked, and contain operable components like forms.
DENIM is available for Linux, Windows and Mac. I downloaded the OS X version, and scribbled with it for a while. Obviously the results would be nicer if I had a stylus or an I-pen...

This could be the perfect tool for rapid web prototyping. Once the site sketch has been created it can be exported as a set of HTML imagemaps for easier sharing.
However, to make DENIM a really useful prototyping tool for Midgard CMS, we would need to create a set of custom DENIM components for typical MidCOM components like news lists and event calendars so that users could really grasp how the site is put together by running different components (or their dynamically loaded representations).
Even nicer would be if the resulting DENIM file could be imported into Midgard to generate some of the site automatically. The DENIM file format is an XML file, so it might be possible to extract the page names, relations, and components shown on a page out of it. If so, the DENIM files might be convert-able via Exorcist to something that could be imported as a MidCOM site structure.
This would truly make DENIM a tool that would beat the usefulness of paper prototyping while retaining the ease-of-sketching.
Found DENIM via Maemo.
Posted on 2005-11-15 16:42:20 UTC to Openpsa. 0 comments.
OpenPsa appears on Best help desk software guide:
We have made our OpenPSA demo server publicly available. Get the address and user accounts from the OpenPSA demo page. OpenPSA is an Open Source Professional Services Automation system built on top of Midgard and PHP. The system provides management tools for software companies and consultancies. The modules include project management, CRM, help desk and group calendaring.
The site seems quite a lot like a splog to me.
Posted on 2005-11-16 08:03:57 UTC to Midgard. 0 comments.
The budgetary question for Air New Zealand's Intranet seems to be:
Does it make the planes fly?
Of course it doesn't. Avgas, kerosene, maintenance and the pilot do (ok, aerodynamics have something to do with it too). However, a properly executed and used Intranet can make the operations safer and more efficient by helping staff to find the information they need. But it is important to remember the business focus, as James Robertson reminds:
What I love though, is this the great clarity of business focus. At the end of the day, the fundamental purpose of Air New Zealand is to fly people from A to B. If the intranet can't assist the airline to deliver this service, then is it really providing enough business value?
It is easy to end up doing technology projects for their own gain, making reminders like these valuable.
While Midgard CMS doesn't explicitly make planes fly, it at least assists in the business of keeping some planes in the air through the use of web-based reservation calendars and other tools.
Posted on 2005-11-16 19:28:32 UTC to Midgard Oscom. 0 comments.
Tigert has been sketching some Tango-styled UIs for the new Aegir admin interface of Midgard CMS:

Now this is all still Inkscape-level stuff, but once we get a bit further we plan to contribute the core parts of the CSS design back to the Tango project.
Tango is a project to develop a common style that could be used across GNOME and KDE desktops. The idea is that using the shared outlook applications between different systems (and third-party applications that don't originate from either desktop environment) would fit together quite seamlessly. With Freedesktop handling much of the technical interoperability, Tango could solve the UI consistency.
The same could be done between the different Open Source CMS systems and web tools. Tango could easily be something for OSCOM to push as an interop project.
Posted on 2005-11-17 11:43:07 UTC to Midgard Openpsa. 0 comments.
I'm traveling next week to the Fórum GNOME conference in Curitiba, Brazil. The actual conference is held together with Latinoware Mercosul on November 26th - 27th.
My two sessions in the event are:
Saturday 26th: 14:00 - 18:45
- Midgard CMS - four hour tutorial for building your first Midgard-powered web site
Sunday 27th: 16:00 - 17:00
- Digital Business Ecosystem - Manage your projects and subcontractors with OpenPsa in a P2P network
This will be my first time in that part of the world, and I really look forward to both the conference and seeing Brazil.
Updated 2005-11-22: It seems we're also going to the OpenBeach open source event in Florianópolis on Dec 3rd - 4th.
Updated 2005-11-25: Updated the schedule from here in Curitiba. The venue will be the Centro Politécnico da Universidade Federal do Paraná.
Posted on 2005-11-18 15:57:36 UTC to Midgard. 0 comments.
Pyhä and Luosto, two skiing centers in Lapland are now powered by Midgard CMS. Their websites are portals containing both general travel information and the sub-sites of hundreds of local hotels, restaurants and other businesses.

The portals were designed by advertisement agency Linnunrata and mainly built by Arttu Manninen from Protie. The Midgardization was supervised by Nemein. Hosting for the portals is provided by Nebula's Midgard Webhotel service.
Updated 2005-11-21: Arttu has posted his viewpoint on the project, particularly dealing with the delays, compromises and learning curve associated with such a major project. As always, setting priorities is difficult:
Custom development is that murky world where a customer tells you what to build, and you say, "are you sure?" and they say yes, and you make an absolutely beautiful spec, and say, "is this what you want?" and they say yes, and you make them sign the spec in indelible ink, nay, blood, and they do, and then you build that thing they signed off on, promptly, precisely and exactly, and they see it and they are horrified and shocked, and you spend the rest of the week reading up on whether your E&O insurance is going to cover the legal fees for the lawsuit you've gotten yourself into or merely the settlement cost. Or, if you're really lucky, the customer will smile wanly and put your code in a drawer and never use it again and never call you back.
Luckily the situation wasn't quite that bad in this project, and the portal is actually up and running. Some performance optimization still remains to be done, including an upgrade to MySQL 4 with its query cache.
Posted on 2005-11-22 16:55:56 UTC to Life Politics. 0 comments.
A year ago, I spent a Weekend in Ukraine and saw the Orange Revolution begin:
We caught the first signs of the unrest in sunday evening. All ATMs had been emptied of cash and marked squares were filled with muttering groups in their fur hats. In the opera an old woman asked from us with tears in her eyes why we had come there in such sad times.
Next morning I escorted the girls to the railway station and airport at 6 am, early enough to avoid most of the demonstrations. When I returned to the center they had already started. The hotel keeper pointed out to the Rynok square and commented laconically: "Revoluzija". I decided to take a closer look, and spent next hours in an old Austrian-style cafe overlooking the Svoboda street where most of the supporters of the opposition candidate, Yushchenko were gathered.

Ukraine marks the anniversary of the revolution today.
Posted on 2005-11-24 09:28:11 UTC to Midgard. 0 comments.
Arttu was exploring the advantages and disadvantages of the different ways of serving images and other remote files connected to a Midgard CMS layout. At first he switched from the legacy Aegir attachment server to the MidCOM attachment server:
After learning this I have been adapting the knowledge to multiple sites and they run a bit faster. It is not only that pictures are loaded, but MidCOM attachement services use also MidCOM cache engine. So, no more excessive loading of every picture and no more pictures left into binary space.
For even higher performance, the obvious solution would be to get the whole image serving out of Midgard and PHP space, and into regular Apache Document Root:
This of course makes it more diffucult - in a sense - to update CSS. But when a site is in production, there usually shouldn't be need to update these elements constantly.
The main advantages are
Piotras replied to this with the idea of using Midgard's built-in feature of serving files attached to pages very efficiently:
And I wonder what is faster ( I mean someone's work and page request time ) and easier?
- Upload image (
myfavourite.png) attaching it to some object. Find its GUID. Write path: /attachment/[sitegroup GUID]/[attachment GUID]/myfavourite.png
- Upload image (
myfavourite.png) attaching it to page and write path: /page/myfavourite.png
Second case requires only 1 (say: one) select from database.
The latter solution of using pages as the attachment server certainly sounds appealing for all style-related file serving needs. Now it is obviously quite difficult, but the upcoming page-based MidCOM will make it easier. Still, to make it work, the following would need to happen:
- The new Style Editor Tarjei is working on should provide pages (site root page?) as the default storage location for style's attachments
- We must ensure the page-based attachment server sends all the correct caching headers
Posted on 2005-11-26 20:59:23 UTC to Midgard. 0 comments.
I had my Midgard tutorial in Fórum GNOME today, and it turned out to be a near disaster. English is not very widely spoken in Brazil, and my audience couldn't really follow my talk.
Luckily GIMP developer João Bueno came to the rescue and acted as an excellent Portuguese translator. This saved the session and enabled me to have meaningful interaction with the attendees. It will be interesting to see how Midgard turns out in here. Anyway, thanks again, João!
Midgard slides in English (432KB PDF)
Here are also some quick snapshots from the event:



Posted on 2005-11-29 00:37:33 UTC in 25° 25.668 S 49° 16.386 W Curitiba, BR to Business Openpsa. 0 comments.
My DBE tutorial in Fórum GNOME went quite well. Learning from the translation issues in Saturday's Midgard tutorial, this time the presentation was held in the main auditorium of LatinoWare Mercosul with simultaneous translation.
The presentation generated lots of interest in the Digital Business Ecosystem, and I was asked to give a short briefing on the subject for students of the ESEEI university together with Nathan Wilson from DreamWorks.
Digital Business Ecosystem slides in English (392KB PDF)
DBE was also being presented in the World Summit on the Information Society, and the Brazilian delegation including Minister of Culture Gilberto Gil got interested in bringing the concept to their country. The Free Software movement is very strong in the area, and it will be interesting to watch where they will be able to take DBE.
Some local developers are already waiting for a stable OpenPsa 2 release to become available so that they can start experimenting the the DBE connectivity. One Brazilian blog has a photo of me discussing DBE with Nathan and Jon "Maddog" Hall after my speech.
Updated 2005-11-30: I will be presenting DBE also in SOLISC tomorrow.
Also there are two photos of my talk on the LatinoWare site.
Posted on 2005-12-02 20:24:50 UTC to Flying Life. 0 comments.
Here are some updates while reading the news in the SOLISC speakers' room: Yesterday's session on DBE went well, with Anahuac doing the translation. The session was held in a slot shared with Izabel's GNOME talk. After the days' programs we returned to the Dolphin House for dinner.

Some interesting blog posts found in my NetNewsWire summary while waiting for tonight's beach barbeque and tomorrow's OpenBeach...
Jon Udell is dreaming about Peer-to-Peer air travel:
Fallows invites us to imagine a fleet of air taxis -- essentially winged SUVs, safe, ultra-reliable, highly-automated, super-efficient -- that redistribute some of the traffic away from our failing hubs to a network of smaller airports. If this is going to work, the air taxi itself, which companies like Eclipse Aviation are busily inventing, is only half the technological challenge. The other half lies in the information systems. You'd need to be able to aggregate demand in real-time, so that if two passengers in Keene, NH, two in Rutland, VT, and two in Albany NY are headed to LA (say, to Pomona's Ontario airport) on a given day, you can allocate an air taxi to make those three pickups and then fly direct to the destination. These air taxis would need to be able to steer clear of conventional air traffic, as well as each other.
Could make a very interesting DBE business case.
Joe Suicide wants to route next summer's Death Monkey tour through the Pamplona bull run:
...Just by moving our starting date by four days, we will be able to run with the bulls at Pamplona. Some of us, including all current full members, have already done it at least once, but since the adrenaline rush you get by running is incredible and we happen to be there at the right time, we will do it again.
Last time at San Fermin all my dirty underwear were stolen by spanish while our group slept in a park. 2006 I will be prepared. I won't take any underwear with me. That should solve the problem.
Tommi Rissanen from DBE is talking about Christopher Columbus -style management:
In short, SME Business Management is sadly similar to Christopher Columbus deeds:
- He left but didn't know where he was going
- He got there, but didn't know where he was
- He came back but didn't know where he had been
- And he did it 3 times in 7 years.
Pekka Pekkala from Helsingin Sanomat is analyzing some blog reader statistics (in Finnish, sorry):
Uskollisia lukijoita löytyy esimerkiksi yhtiöistä Andritz-Ahlstrom, Suomalainen Kirjakauppa, Raha-automaattiyhdistys, Suomen Lakimiesliitto, Amnesty International, Alliance Capital Limited, Patentti- ja rekisterihallitus, Smartner Information Systems Oy, Hantro Products Oy, Sampo, VVO-Yhtyma Oy ja Verohallitus (hui!). Eli ainakin joku on onneksi löytänyt säännöllisesti seuraamisen arvoista sisältöä täältä.
Obviously, the Google Analytics stats are not very accurate for blogs, as they do not carry information on RSS subscribers.
Edd Dumbill is thinking about opinionated software:
Desktop environments -- GNOME 2.0: The move from GNOME 1.0 to version 2.0 was highly opinionated (Mac users, think OS 9 to OS X). Complexity of user interface was thrown out in favour of sensible defaults.
Web standards -- CSS, RDF, XHTML: not only is there a right way to do things, but it turns out to be better too! I don't automatically fall in love with everything that emerges from the W3C, but some things are so obviously the right way it's impossible not to love them -- warts and all.
Good stuff to think about as we prepare for Midgard 2.
Posted on 2005-12-02 21:19:46 UTC to Midgard. 0 comments.
Codey from Indian Express is wondering about aesthetics and sensibilities of CMS:
If I remember right, way back in the dotcom boom era, someone had tried convincing Zdnet India to shift to Zope/Plone, since it was meant to be absolutely rocking from a geek point of view. That experiment did not go down well with the end users and it ended pretty much there. Being sexy from a geek’s point of view is very different from what it looks like from the end-user’s point of view. Case in point: there are a lot more of users on Blogger than Freeflux, though the latter is better for a geek any given day.
In the past four months, I have been pretty much doing the reinventing business at the new jig. I had evaluated most of the free/open source options and found none of them, other than the exception of Midgard, to be good enough to fit our needs. Most were either too complex or were too simple and I would rather have my team work with a set of known problems than have them dig around nested directories of endless libraries which might or might not break every time I want to customize the site or add a new feature, which would require hacking the existing code.
He also mentions the classic Open Source support question:
Eventually, when you take your product proposal to the management and tell them the best avenue for technical support for your solution is an IRC channel, don’t be surprised if they totally freak out on you, which is why a lot of media organizations sign up for outrageously priced Microsoft-based solutions.
We are currently deploying Midgard for a major Finnish media agency. It would be interesting to compare notes. Oh, and there actually is commercial support available for Midgard CMS.
Posted on 2005-12-07 07:44:14 UTC to Life. 0 comments.
Noise has reviewed Surma's second demo:
Ehdottomuuden ja perinteen syrjästä kiinni pitävä Surma on melko tuore tapaus Suomen mustemman metallin bändikatalogissa. Nyt ilmestynyt Veren tytär on toinen demo, josta voidaan käyttää demo-nimitystä vain sen mitättömän seikan takia, ettei Surma ole vielä onnistunut saamaan levy-yhtiötä taakseen. Veren tyttären toteutus on nimittäin niin julmaa tasoa, että monen jo levyttävänkin yhtyeen soisi ottavan oppia tästä paketista.
Surma is the Finnish metal band that Skoll and Jay Surfer play in.
Posted on 2005-12-09 15:02:34 UTC to Midgard. 0 comments.
Edi ran into some issues with link prefetching and MidCOM administrative interface:
The whole idea is to prefetch links. Well what if we have som ajax stuff there, and forms etc. It of course tries to prefetch them also. When this is done, they trigger functions, and this ends up to (at least) these nice situations like:
- article control in Midcom
- approve / unapprove => when sent several times, it messes up the system. try reloading the page and see what happens, it's like russian roulette
- hide / unhide: the same as with approvals
This is the classic idempotent GET issue that surfaced last spring with Google Web Accelerator. We've tried to take this into account with OpenPsa and use only POST requests for things that actually change something.
Luckily Edi reported this quickly, and we were able to identify and fix the problem. The initial way to fix this was to block prefetching entirely in AIS so that we can take the time and fix the couple of places affected by this so that they will use POST.
Another major discussion in the community has been the style engine unification proposal. The idea has simply been to merge Midgard's style engine and MidCOM's style engine to provide better consistency and performance.
However, the style engine in Midgard has traditionally been considered one of the best in the industry, and any changes to it obviously make tensions run high in the mailing list.
At the moment the path forward seems to get Midgard's grand old guru Jukka to arbitrate and provide a new neutral spec to work on. After that we must work swiftly to implement the spec across core, MidCOM and the new Style Editor so that there will be actually something concrete for people to experiment with.
Posted on 2005-12-09 19:32:21 UTC to Midgard. 0 comments.
It is December now, and my RSS reader is filling up with predictions for the year 2006. Here are snippets from some good ones:
37signals challenges webmasters to make their sites smaller:
See what you can say in 3 pages instead of 6. Do you really need that extra page? Do you really need to add one more paragraph? Can’t you explain that in 2 sentences instead of 4? Be wiser, not a know-it-all. Be the one who choses their words carefully, not the one who never shuts up.
Cameron Moll makes guesses at what is in and what is out in web design. Two on the "ins":
The fluid layout - I actually anticipated more wide-scale adoption of fluid layouts in 2005, but they didn’t take hold as firmly as expected. Though I’ve got hopes for 2006. So much so, in fact, that my case study site for CSS Mastery is a fluid one.
JavaScript & DOM scripting - I’ve been able to get by the last few years with my measly JavaScript skills, you know where you just copy and paste existing scripts? Yeah, those skills. That’ll change in 2006. The traditional role of “web designer/developer” will add JS/DOM to the existing XHTML/CSS mix. Those of us with sorry skills will expect to see a copy of Jeremy Keith’s DOM Scripting under the tree this Christmas.
Andy Budd talks about the visual design trends:
Designs will soften, with more rounded corners, pastel colours and hinted boxes. Drop shadows and gradients will remain, but in a much subtler form to avoid visual clutter. 2006 will also be a year of transparency, with a profusion of fade effects and the PNG becoming the rightful heir to the image crown.
I find myself agreeing with many of these. In the latter half of 2005 I've noticed myself starting to pay a lot more attention, and actually use things like AJAX, Javascript, fluid layouts, CSS versions for handhelds, and obviously, rounded corners.
The main complaint for the AJAX hype has been that the technology has been around for a long time already. But just like with CSS and RSS, it took a while before there was enough knowledge and compelling case examples of AJAX around for people to actually trust in the technology. Javascript incompatibilities bit web developers badly in the old days, and it takes a while to get over it.
As for Midgard predictions for 2006, it is actually a bit difficult to pick the right trends. So huge amount of stuff happened in 2005 that we never could anticipate. What I'd like to happen though would be:
Simplification - Removing all the unnecessary UIs and other legacy cruft as we near the 2.0 release
Clarification - Making the strong points of Midgard like the templating system, editable content schemas and the plethora of components more clearly visible for end users
Connectivity - Starting to really use tools like RSS, microformats and DBE for connecting sites and servers with each other
Performance - The metadata system in MidCOM 2.4 hurt Midgard's performance quite badly, and we really need to get it back
These, together with all the application development projects into the OpenPsa suite we've been contracted to do will make 2006 quite a busy year.
Posted on 2005-12-10 13:43:42 UTC to Business Politics. 0 comments.
Sun's Jonathan Schwartz is talking about the environmental impact of the Internet:
On the negative, remember California's power crisis? Who was partly to blame? The computing industry. We create computers that draw enormous amounts of power, throw off huge amounts of heat, which requires the world to build power plants and install power hungry air conditioners. Here's a little known fact for you: Google's and Yahoo!'s second largest operating expense - after the people they employ is... electricity. That's why they're building datacenters next to smelting plants. Seriously. Read this.
Three MILLION people a week are joining the internet. If each gets a Dell PC, consuming 200 watts, that's 10-20 GIGAwatts of new power draw and a massive impact on the planet. If we're serious about creating technologies developing companies and economies can afford, something has to change.
...
And both bet on a simple premise. Over my lifetime, I will consume roughly three times the power my parents consumed - and they, roughly three times their parents. As that trend continues, energy efficiency will become a competitive advantage for Sun (alongside Toyota, Boeing and GE) - and an environmental imperative for governments and voters. You may not care about it in your den, but multiply your den by three million, and I guarantee you, there's a lot to care about. Whether you're in rural Minnesota, or rural India.
This is exactly why Nemein is involved in making the web infrastructure for Energy Saving Projects, Motiva and Green Net Finland. These organizations are doing important work in promoting energy efficiency and building a more environment-friendly industry.
I know at the moment our organization has a quite heavy ecological footprint and I wonder if we should pursue a Green Office Certification to become more aware of it.
Posted on 2005-12-14 13:04:36 UTC to Midgard. 0 comments.
As a way to resolve the style engine dispute in the Midgard community, I asked Jukka to arbitrate. He posted his proposal for the Midgard Style Engine V2.0 yesterday, and after a bit of discussion it entered mRFC process. The proposal was accepted today with 7 +1 votes from the developers.
I'm really looking forward to seeing this happen. What I want from the new style engine, is that it would mainly work like the old one, but with two new features:
- MidCOM folders must be able to override elements of site style
- Site style must be able to override elements of MidCOM components (so you
can easily make a "global" show-article for your style template for example
In the other news, it is a beautiful early winter day here in Helsinki. Sun is shining through a thin veil of clouds. There is no snow to mention yet, but the streets, buildings and trees are all covered with a thin layer of frost. When riding the bus to work across the Lauttasaari bridge half of the bay already had ice.
Posted on 2005-12-14 14:27:29 UTC to Midgard. 0 comments.
When trying to PEAR-package MidCOM components with our new pear-package.php utility I ran into this error message:
Error: PHP5 packages must be packaged by php 5 PEAR
Now, it seems that the PEAR 1.x packager tries to be a bit too smart and sniff if files contain PHP5 OOP features like abstract or interface classes. That is all good and well, except that the packager doesn't really parse the PHP code, it just looks for words like abstract in the file.
This taken into account, guess what happens with code like this (coming from Midgard's MetaWebLog API interface):
if ($key == "mt_excerpt") {
$article->abstract = $value->scalarval();
}
A quick fix for this is to edit the PEAR/Common.php file of your installation and comment out the following:
if (version_compare(zend_version(), '2.0', '<')) {
if (in_array(strtolower($data),
array('public', 'private', 'protected', 'abstract',
'interface', 'implements', 'clone', 'throw')
)) {
PEAR::raiseError('Error: PHP5 packages must be packaged by php 5 PEAR');
return false;
}
}
This should be quite safe to do, as MidCOM doesn't run on PHP5 yet, and so can't contain any PHP5 files.
No idea if PEAR 1.4 fixes this.
Updated 14:58: The MidCOM packages themselves work now. Pretty cool! See my posting to dev.
Updated 2005-12-27: The decision has been made to package using PEAR 1.4 only. Read the mRFC 0021 for details.
Posted on 2005-12-15 11:36:31 UTC to Politics. 0 comments.
The feared and invasive Data Retention directive passed yesterday in the European Parliament. So What's wrong with data retention?
The proposal to retain traffic data will reveal who has been calling and e-mailing whom, what websites people have visited and even where they were with their mobile phones. Telephone companies and internet services providers would be ordered to store all traffic data of their customers. Police and intelligence agencies in Europe would be granted access the traffic data. Various, competing proposals in Brussels mention retention periods from 6 months up to four years.
Data retention is an invasive tool that interferes with the private lives of all 450 million people in the European Union. Data retention is a policy that expands powers of surveillance in an unprecedented manner. It simultaneously revokes many of the safeguards in European human rights instruments, such as the Data Protection Directives and the European Convention on Human Rights.
It will be interesting to watch how ISPs foot the costs on this one.
This and the super-DMCA we got here in Finland are starting to make digital life in Europe quite scary. For years we've been able to laugh at the silly legislation the Americans have to live with, but now EU is starting to get to the same level.
I guess it is time to set up a Tor Internet Anonymizer server at the office and start using it. Just like encryption, anonymity works best if used as a general policy instead of just in the occasions where it really is needed.
Posted on 2005-12-16 10:28:30 UTC to Midgard Openpsa. 0 comments.
We have recently been contracted to develop a new workflow engine on top of OpenPsa to support different pharmacovigilance and drug regulatory processes from the viewpoint of a drug manufacturer.
The specification process is still ongoing, but for now the main requirements seem to be:
- Definition of workflows through an UI (or possibly via an XML import)
- Handling roles through Midgard Groups
- Connecting alarms and escalations to schedules of some processes ("this step must be completed in 10 days")
- Making the actual activity handling easy and GTD-ish (complete with filtering based on contexts)
- Supporting deliverables that may be objects or actions in other MidCOM components ("Write a new Word document with this template")
Since workflow is a big topic, it would be great to be able to share some of the development efforts with other PHP-based applications. Galaxia is a PHP workflow system that is shared between projects like TikiWiki and Xaraya.
The problem with Galaxia is however that it uses direct SQL for its data storage, whereas we would like to use MgdSchema and Query Builder. We'll have to see whether it will be easier to write our own, or adapt the Galaxia system to our framework. Also, the UI would probably require quite much tuning to fit our concept.
Another issue of consideration is how to fit the workflows into our Social Network of Projects model of using OpenPsa within a network of contractors connected via DBE.
Posted on 2005-12-16 14:27:06 UTC to Politics. 0 comments.
Kai Puolamäki from Electronic Frontier Finland (EFFI) has a very good blog post in Finnish summarizing the recent developments in digital rights:
Ensiksikin, nyt ollaan säätämässä uuden tietoyhteiskunnan perustuslakeja. Onkohan koskaan aikaisemmin niin suurista asioista päätetty näin vähällä ymmärryksellä?
Toiseksi, perusoikeudet voivat huonosti. Ne tuntuvat unohtuvat heti, kun tarpeeksi suuri ja vakuuttava taloudellinen eturyhmä sitä pyytää. Tai kun viranomainen ilmoittaa haluavansa lisää valtuuksia todellisen tai kuvitellun uhan torjumiseen. Ketään ei tunnu kiinnostavan, onko lisävaltuudella mitään merkitystä väitetyn ongelman ratkaisussa.
Eurooppalainen demokratia on lamaantunut. Maailma on muuttunut niin nopeasti, että monet poliitikot ja kansalaiset ovat pudonneet totaalisesti kärryiltä. Valta on siirtynyt viranomaisille, asiantuntijoille ja kaupallisille etujärjestöille. Tilannetta pahentaa, että monet tärkeät päätökset tehdään käytännössä julkisuudelta piilossa erilaisissa ministerineuvostoissa ja kansainvälisissä järjestöissä.
I've written about the same things before. Digital rights issues are understood by only very few Finnish politicians, enabling the powerful media business lobby to push whatever legislation they want.
ITviikko has another good column on the subject:
Toisen esimerkin kaupallisesta sensuurista tarjoaa tuore tekijänoikeuslaki. Se kieltää sellaisten teosten maahantuonnin, joita ei ole julkaistu Euroopan talousalueella. Maahantuojat siis päättävät, mitä suomalaiset saavat lukea, katsoa ja kuunnella. Jos viranomaisille annettaisiin vastaavat valtaoikeudet, siitä nousisi valtava kohu.
Valtaoikeuksien lisäksi yrityksille siirretään myös viranomaistehtäviä. Esimerkiksi Euroopan unioniin suunnitellusta teletunnistetietojen tallentamisesta vastaisivat viranomaisten asemesta operaattorit. Kumpaan te luotatte enemmän, Soneraan vai rikospoliisiin?
Now, personally I'm strongly against piracy, as erosion of copyright protection also erodes the advantage free software has against proprietary products. If Office can be obtained for free, why would you use OpenOffice.org?
But still, the fight against piracy shouldn't be fought by removing civil rights from all. All this makes me want to switch to Happy News instead.
Updated 2005-12-22: There is now an action plan for a civil disobedience campaign against the crazy copyright law. At least here things are not as bad as in UK.
Wired's The Transparent Society is a very interesting mid-nineties story on the eroding privacy in the society. Via Slashdot
Posted on 2005-12-16 15:57:42 UTC to Business Midgard. 0 comments.
Slashdot has an interesting editorial by OSDL's Dave Rosenberg on why Open Source business must own its Intellectual Property:
It's easy to dismiss LinuxCare as "ahead of their time", which is definitely true. But the fundamental and fatal flaw was that they based their products on someone else's IP, with no IP of their own. When the market tanked abruptly, LinuxCare didn't have the money to weather the storm and didn't have consistent alternative revenue streams to combat the lack of services income.
I agree that to be successful on the long term, an Open Source company must definitely be a leader or major contributor in the project their business is built on. Leeching can work for a while, but it makes it easy for competitors to establish them as the better provider in the market.
This is a major reason why Nemein invests heavily in the communities its solutions are based on. We employ several Midgard and OpenPsa developers, and actively contract work to other members of the community.
Even though anybody can start offering competing services in the Midgard space, our level of commitment and expertise guarantees that we still get a fair share of the projects.
Of course, this might be better to call presence or merit instead of Intellectual Property, as the term can be argued to be a bit murky.
Posted on 2005-12-18 23:50:47 UTC to Life Mobility. 0 comments.
Karoliina Salminen talks about WikiPedia and Nokia 770 being the real Hitchhiker's Guide to the Galaxy:
However, Douglas Adams didn’t probably have in mind what would be really possible today, a joke that was written back then is now reality. What is 770 + Internet + Wikipedia? Quite much same as Hitchhiker’s Guide to Galaxy. An electronic device that can answer to all your questions anywhere anytime. It is not Sci-Fi anylonger, but Nokia 770 Internet Tablet…
I fully agree that there is the potential. I've been long thinking about something like this, but I still feel that an offline version would be important. You might need information about places when traveling, or answers to some question that popped in a conversation. And Internet connection might just not be available.
If the full WikiPedia would take too much storage space, the device could possibly use a text-only version. And even then the contents downloaded for offline usage could be optimized based on some smart categorization and for example based on the user's current location that could be gotten through sources like a Bluetooth GPS receiver, or a network's Plazes information.
Maybe something like the FBReader e-book reader, as suggested by Internet Tablet Users could work together with an RSS-like system to update content from WikiPedia to the tablet.
The user interface would be quite obvious: text saying Don't Panic in big, friendly letters, a search box, and list of probable pages of interest based on location.
Now what is especially cool about the N770 and WikiPedia combination is that there is no central authority to convince to be able to build this. WikiPedia is open content, and Nokia 770's platform is fully open, meaning that anybody can just sit down and implement this.
Of course, in projects like this is important to remember that WikiPedia is an encyclopedia, not the full sum of human knowledge:
But Jimmy Wales reminded me that Wikipedia is meant to be an encyclopedia, not a library replacement. It should be the first source of information, not the last. It should be a site for information exploration, not the definitive source of facts.
Maybe this "Hitchhiker's Guide" could be the killer app 770 needs?
Updated 2005-12-20: Some other posts on the same subject:
Posted on 2005-12-22 15:24:49 UTC to Business. 0 comments.
We are now doing some reorganization in cooperation with the support provider Protie. Part of the change is to split our team more clearly between OpenPsa development and CMS deployments. To make things easier and support the community documentation efforts, we're planning to implement a new policy: RTFM.
RTFM is an initialism for the statement "Read The Fucking Manual". This instruction is usually given in response to a question which the responder knows or believes can be answered easily by reading relevant documentation, and suggests that the inquirer may be wasting people's time.
The idea with RTFM is that when the guys from the deployment team need to ask something, we have to be able to reply by giving them an URL in Midgard Wiki or OpenPsa Documentation.
As lots of stuff is not available in the online docs, this means that we will have to add it to be able to send a link. Will be interesting to see how well this works.
Posted on 2005-12-26 12:55:44 UTC to Life. 0 comments.
We had the traditional Xmas party last night, and despite Joe's earlier angst almost the whole family attended, including Joe Suicide, Johnnie-Boy and our favorite rock star, Skoll of Surma fame. Jay Surfer was planning to come, but got lost somewhere in the way between Vallila and Ullanlinna.
We made a turkey filled with onions, minced meat and peppers, and had the fridge stocked with Punikki (red guard) beer. After the dinner Kerttu treated us with a tandoori apple pie.
It was very nice to see the "family" come together after last year's bourgeois period.
Happy holidays to everybody! Today the plan is to take things easy and go watch King Kong in the evening...


Updated 2005-12-27: Joe Suicide has blogged his version of the story.
Posted on 2005-12-26 13:43:21 UTC to Oscom. 0 comments.

Seems like the RSS/Atom syndication world is finally uniting around a common feed icon, the Mozilla one.
This should help to make the "World Live Web" less confusing to users. Some One Click Subscription magic will still be needed, but things are at least moving to a better direction.
I like the way Safari handles the default feed reader selection, too.
Spread the word!
Posted on 2005-12-27 17:19:09 UTC to Openpsa. 0 comments.
We wanted to make the beta release of OpenPsa2 this week. However, there are two
issues preventing this for now:
As to the installation part of this, you all can help by commenting the new packaging proposal in mRFC 0021.
And if you want to install it anyway, read the OpenPsa 2 installation instructions.
Back