Motorcycle Adventures and Free Software

Weblog: Archive

2004-11-01 - 2004-11-30

Midgard 1.6: Power, Flexibility, Out of the box

Posted on 2004-11-02 17:21:52 UTC to . 0 comments.

midgard-16-frontsmall.png

After much hard work by Piotras and the rest of the Midgard team, Midgard 1.6 is now the stable release of the Midgard CMS.

This is very cool since it brings lots of new features like MultiLang and datagard available for the Midgard population. The release announcement says about the new data package:

The revised Midgard-data package provides an out-of-the-box setup complete with Aegir and Spider administration tools and the MidCOM component framework. Aegir is a comprehensive and powerful administration tool targeted at Midgard power users. Spider provides similar administrative features in accessible way, allowing disabled users and simpler web browsers to manage websites. In addition to the Midgard applications, midgard-data also ships several command-line utilities including the yamp packaging scripts useful to Midgard application developers and the datagard Midgard database and virtual host setup tool.

MidCOM 1.4.0 is a full component framework which enables site builders to construct their web sites from ready-made and configurable site features, or components. All MidCOM components provide uniformal and localized ways for configuration and content management. The configuration system allows site developers to fully control the way the components behave, including their output templates and content structure and form field definitions.

We will hopefully get started with rolling the release out to client servers late this week, and will make the UTF-8 and MultiLang conversions after a bit of internal upgrade testing.

Binary packages are already available for Debian unstable, with RPMs and Debian testing .debs expected tomorrow.

In related news, Midgard usage on public sites grew 11% during October, according to SecuritySpace.

Sponsored links

Microsoft Certification Exams save money using, phone card

This is the New Nemein

Posted on 2004-11-03 21:23:33 UTC to . 0 comments.

While the new visuals are nice, the even bigger change is in the information architecture. Much of the site is now driven by our internal IT systems, including the automatically updated client lists and news postings.

The publication of the new site marks the final stages of Nemein's transformation from a venture-funded proprietary software company to an Open Source consultancy. Now we focus more on our client cases and the possibilities of the Midgard technology instead of our product portfolio.

Nemein team members are also given their own voice on the site through weblogs and shared bookmarks. In addition, some previously confidential information like our standard pricing and internal IT policy is now publicly available.

In the other news, Torben has now started implementing MidCOM filesystem migration, as mandated by the recently passed mRFC 0006. I've already seen a running system of the new filesystem-based MidCOM code, and it seems substantially faster. Next interesting thing will be to get actual Siege results and see how the component migration will be actually done.

Updated 2004-11-04: Kaukola has now started testing the filesystem MidCOM version, and apparently it is easy to integrate to midcom-template. Cool! It starts to look like I was right to endorse this approach.

New apartment

Posted on 2004-11-06 18:17:28 UTC to . 0 comments.

Our new apartment is located in the Five Corners district of Helsinki. A nice two-room flat on 7th floor with view over the roofs of the city. It had been renovated for the previous inhabitant, so it is in almost brand new shape - even though the building was constructed in the 60s.

Five_Corners.jpg

I liked my previous apartment on Eerikinkatu, but 21 square meters was simply too small for the two of us.

Kerttu_morning_five_corners.jpg

Yesterday we borrowed Rambo's Land Rover after the work and drove enough stuff here so we can stay at the new place: futon, Internet connection, clothes and kitchen utensils. We'll move the furniture and rest of the stuff later with a bigger car.

Kerttu_banana_box.jpg

Filesystem MidCOM going strong

Posted on 2004-11-08 16:16:42 UTC to . 0 comments.

The filesystem migration of the MidCOM component framework has now progressed enough that it actually powers this site, as reported by the HTML generator meta tag:

Midgard/1.5.0/SG MidCOM/1.9.0+cvs.2004.11.05 PHP/4.3.9-1

If things are going this smoothly, the following will only be needed before we can replace the old MidCOM 1.4.x tree with the mRFC 0006-compliant version:

  • The rest of the components need to be converted
  • midcom-template needs some modifications to the <(code-global)> element(s):
    // We don't need old snippet-based MidCOM
    // mgd_include_snippet("/midcom/midcom");
    
    // Use midcom-fs instead
    define ('MIDCOM_ROOT', '/path/to/midcom/lib​');
    define ('MIDCOM_STATIC_ROOT', '/path/to/midcom/sta​tic');
    define ('MIDCOM_STATIC_URL', '/midcom-static');
    require(MIDCOM_ROOT . '/midcom.php');
  • We'll need a "midcom-remover" repligard package that will remove the MidCOM snippets from the database and create a compatibility snippet to /midcom/midcom

Torben has reported an approximate 25% performance improvement from the filesystem migration, but we'll have to wait for the siege results.

In the other news...

mRFC 0008, the time-based release process for Midgard entered voting today and passed in 20 minutes. This means that we will implement a release process modeled after the one GNOME project uses. I'll post more about this and other talking points for the Midgard Gathering that will be hosted by AnyKey in Sweden this weekend.

In addition, we helped Taya and Guram from Qartu in Georgia (საქართველო) deploy their first Midgard server last week. They've already had their first customer demos and we're looking forward to helping with them in localizing Midgard to Kartuli.

Talking points for the Midgard Gathering

Posted on 2004-11-10 18:06:46 UTC to . 0 comments.

On thursday afternoon the Nemein team together with Edi from Dialogi will pack into Rambo's Land Rover and take the Midgard-powered ferry to the Midgard Gathering in Linköping, Sweden.

The meeting agenda has been available for a while now. To complement it, here is my list of talking points:

MgdSchema is the new object abstraction back-end for Midgard proposed by Alexander and being developed by Piotras. With MgdSchema the Midgard content types would be defined using XML schemas instead of hardcoded into the Midgard libraries. While MidCOM datamanager already allows site developers to freely define their own content types, their storage using Midgard's parameters API causes performance issues.

The new model would solve the performance problem by translating schemas into database tables when Midgard is loaded. It would also make Midgard object types accessible from other programming languages by using the libdba and GObject technologies from the GNOME project. Alexander was able to create Python, Ruby and .Net/Mono bindings to his proof of concept during the Poznan meeting.

mRFC 0008 was passed this week, we also have to talk about implementing the new Midgard release process. I want to have a list of TODO items assigned to people by the time we leave Linköping. So far I see the following items:

  • Set up the Midgard release calendar to midgard-project.org
  • Create a translators' area on the site
    • Consolidate and update translation instructions for Aegir, MidCOM and Spider
    • Start gathering a list of translators with their assigned languages
    • Create a report showing completion percentages for the different translations
  • Schedule a "translation test drive" to try to get a number of languages to an acceptable 60-70% level
  • Work out how to migrate 1.6 installations for the new filesystem-based MidCOM in 1.7

Since Piotras is attending, we will also take a look at solving the Midgard Core bug affecting the net.nemein.registrations component. The new mgd_debug_* functions in Midgard 1.6 should make that easier.

Updated 2004-11-12 from Linköping: Due to AnyKey's designer Robert Renling being linked with the GNOME Journal community, another important focus point for the gathering will be discussion on GNOME integration. As MgdSchema will essentially bring GNOME technologies to the server it would make sense to get the two communities communicate. The Open Source desktop severely needs server and groupware integration, and Midgard can help there.

New look at NemeinQuiz

Posted on 2004-11-11 13:00:40 UTC to . 0 comments.

NemeinQuiz is an online exam tool originally developed for Pharmaceutical Information Centre for their pharmaceutical sales courses. We published the package as Open Source with some quick setup instructions.

While setting up a Midgard-powered site for the Student Union of Helsinki School of Economics (KY), I decided to take another look at NemeinQuiz to see how well it would integrate into the MidCOM template site as the online questionnaire.

Some quick screenshots how it looks like (in Finnish, sorry):

ky-quiz-fill.jpg

ky-quiz-stats.jpg

The old instructions were mostly valid for usage with MidCOM as well. Here is what I did:

  • Created a new prefixed host /quiz under the site, using same style as the main host
  • Set the root page of the prefixed host to be active
  • Created root-level topic named __NemeinQuiz and managed by a "Quiz users" group
  • Put the following code to the page's <(code-init)> element:
    <?php
    // Midcom-template compatibility
    $GLOBALS["midcom_site"]["uri"] = "/";
    
    // Which language to use, currently localized to finnish and english
    $nemein_net['language']="fi";
    
    // Try to instance the root topic
    $GLOBALS["midcom_site"]['root_topic'] = mgd_get_object_by_guid("e03d770ca230df1f11137badfd6ae1a4");
    
    // Single sign-on with the live site
    if (!$midgard->user) {

    // Allow single sing-on with the main site
    $auth_conf['host_override'] = '';
    $auth_conf['path_override'] = '/';

    // Include the NemeinAuthentication library
    mgd_include_snippet("/Nemein_Authentication/Init");

    // Refresh existing session from user's cookies
    $login_error = auth_by_cookies();
    }

    // Support for anonymous submission, add correct
    // account information
    if (!$midgard->user && $argv[0] != "edit") {
    mgd_auth_midgard("quizuser","password",0);
    $midgard = mgd_get_midgard();
    }

    // Don't log missing localization strings
    $localize_save_nonexistent=0;

    // Which group owns the __NemeinQuiz topic?
    $nngroup = mgd_get_object_by_guid("d70f026e977819dda67851dc377e73ea");

    // Start the Quiz application
    mgd_include_snippet("/NemeinQuiz/UI/URL-Parser");
    ?>
  • Put the following code to the page's content:
    <?php
    mgd_include_snippet($nemeinquiz['header_snippet']);
    mgd_include_snippet($nemeinquiz['content_snippet']);
    ?>
    
  • In addition, created an <(edit-this-page)> element to provide better UI-level compatibility with MidCOM:
    <div class="edit-this-page">
    <?php
    if (!$GLOBALS["midgard"]->user) {
      echo "<a href=\"/midcom-admin/?midcom_site[redirect]=".$GLOBALS["midgard"]->uri."\">Login</a>\n";
    } else {
      if ($argc > 0 && $argv[0] == "view") {
        echo "<a href=\"".$GLOBALS["midgard"]->self."edit/both/".$argv[1].".html\">Muokkaa sivua</a> | ";
      }
      echo "<a href=\"".$GLOBALS["midgard"]->self."edit/\">Luo sivu</a>\n";
    }
    ?>
    </div>
    

In addition to NemeinQuiz, KY is also using the new net.nemein.quickpoll component for running simple, "Slashdot-like" selection quizzes on the front page.

NemeinQuiz is also available as questionnaire tool bundled in the TownPortal package.

Why do we need MgdSchema?

Posted on 2004-11-13 09:30:30 UTC to . 0 comments.

MgdSchema is the new way for defining Midgard's object types in XML being worked on by Piotras. So, why are we sponsoring this development? Here are some blue-sky points brainstormed in our hostel during the first evening of the Linköping gathering:

  • List optimization gives ability to tune SQL queries with custom limiters for faster lists
  • Extension of Midgard objects with arbitrary fields without current parameter-induced performance loss is possible
  • Inheritable access control of both read and write permissions can be set for groups on per-object level

Bonus items:

  • Maintainability of the C code is better without having to maintain separate function sets for each object type
  • Scriptability of the new GObjects and Gnome-DB based core provides Midgard connectivity to programming languages like Python and Ruby
  • Bringing GNOME technologies to the server links Midgard more closely with an active community
  • Standard metadata is available for all MidgardObjects including creator, revisor and locking
  • Database independence provided by Gnome-DB enables administrators to set up Midgard with any database they want

So far these are only ideas but hopefully today's meeting will give more form for them.

The connected gathering

Posted on 2004-11-13 09:52:06 UTC to . 0 comments.

We're now in the Midgard Gathering in Linköping. Since Sweden has been too far for many Midgard community members, we're trying to make the event as connected as possible.

So far it is possible to follow the event live from two web cams:

roofcam.jpg

The web cams are available here and here. To see the image log in as guest/guest.

In addition to the web cams, there are tons of photos from the event. Expect first ones to be posted to Midgard Gallery later today. We've also shot some interviews on video. The plan is to edit those on the drive back to Stockholm tomorrow and publish them soon.

As Torben wants to attend the meeting from Bavaria we're also thinking of rigging up a TeamSpeak system and we'll also be available on the IRC channel. Discussion is also available as IceCast broadcast.

So most the event will be available for online participation. With the important exception of beer.

Some MgdSchema notes

Posted on 2004-11-13 16:35:28 UTC to . 0 comments.

Here are quick notes from today's MgdSchema discussions with Piotras.

  • The idea is to define Midgard objects in XML the same way as Repligard does
  • Current status of MgdSchema is an app that parses the schema and displays it as debug info
  • The object definitions will be reloaded every time Midgard is started
  • MgdSchema will provide the object types as GObjects
  • The GObjects are stored using the Gnome-DB abstraction layer
  • When mgd_get_article() is called, the PHP binding will get the GObject from Midgard core instead of making its own queries

On the database backend, the object would be split to three or five tables. GUIDs will be used for linking same record between tables:

schema's own table (based on the XML file, same name as schema) with all the properties from the schema.

net_nemein_article
guidtitlecontent
abcCool newsBlah blah blah...

metadata table with Midgard ownership and metadata info:

metadata
guidcreatorrevisor...

membership table for tree structures and ownerships:

membership
guidparentextra

record_extension table (parameter API)

record_extension
guiddomainnamevalue

localization table (for MultiLangable fields)

localization
guidlanguagepropertyvalue

The way forward:

  1. Schema loading/parsing
  2. GObjectization of the schema
  3. Object persistence through Gnome-DB
    • Query API (query and fetch)
    • Storage API (create and update)
    1.7 release
  4. PHP5 bindings for the object
  5. Object serialization
    • Repligard-like tool based on MgdSchema
  6. More complete database handling
    • Modification of database tables based on loaded schemas
  7. Complete "Classic Midgard" schemas
  8. 1.x compatibility API written in PHP (Midgard Lite like)

Updated 17:27: Since the gathering has been mostly on agenda, and my talking points are mostly handled, we can focus the main thing of any Midgard event:

koff-roofcam.jpg

Project GNOMEgard

Posted on 2004-11-14 12:44:42 UTC to . 0 comments.

gnomegard.png

Session notes from Linköping Midgard Gathering by Henri Kaukola.

The problem of the Open Source desktop systems is that they are designed only for one user per time. There's very little information sharing. Integration between server software and desktop world is the key to Open Source world domination.

  • Document management system must support WebDAV
  • News pages must provide RSS syndication and some remote editing API

The current Midgard/MidCOM applications are doing pretty nicely in the integration sense.

We should be able to connect Midgard to Gnome with MgdSchema. The current data storage in Gnome is the Evolution data server. One way to move towards Gnome integration would be to hack the Midgard library to provide API towards Gnome. The first thing would be ensure that Nautilus and Gnome Blog would be able to connect with Midgard. We should also investigate how to get Tomboy working with Midgard. Apparently there is some work on implementing a Wiki remote posting API for it.

Action items:

  • Blogs for Robert, Edi and Piotras and get the blogs planetized (Planet Midgard and with Robert, Planet GNOME)
  • Branding of Midgard into Gnomish-style, start from the Web site and applications
  • Edi could use Dialogi's image bank to get some Finnish landscape images, delivery to Robert
  • Set up Gnome on Bergie's laptop and debug why Gnome Blog and Nautilus have issues with Midgard APIs
  • Keep Tim Ney informed and ask TigerT for a beer :)

Milestones:

  • Branding, easy to start by making Midgard look like Gnome. The branding should be done to all Midgard applications (MidCOM, OpenPSA, etc.)
  • We should follow the Gnome Human Interface guidelines where applicable
  • Communicate with the Gnome community -> we need a double-agent who'd have good presence in both Midgard and Gnome communities. Post more screenshots, the Gnome community is very visual. Also, we should post stuff about the possibilities of the Gnome-Midgard co-operation.
  • We should adapt Evolution style for the OpenPSA Web site
  • Try to get gnome.org or some Gnome sites run on Midgard. Gnome Journal could be a start as Robert is involved with that
  • Integrate parts of the Gnome desktop apps to Midgard (Nautilus, Gnome Blog, Tomboy)
  • Make cool examples of Midgard integration, make the Gnome community aware
  • We want Gnome developers to use Midgard tools
  • The focus should be on the fact that one is rarely sitting next to Gnome desktop, with Midgard one could have Gnome desktop available over Internet. Midgard should be marketed as the platform for Gnome Web Services
  • We need a new way to replicate information also outside Midgard (Repligard is only usable between Midgard installations). One should be able to keep her files/information in sync between computers (client/server ideology i.e. in stationary computer and laptop sense). This could be done with SyncML (the last save will apply, thinking of incremental replication)

We should also think beyond the Gnome. It should run on any platform and sync with any desktop. The re-write of the Core could make it more Windows-friendly.

Midgard should be made look more Gnome-like (icons, colors, terminology, fonts, etc.). Easy to start from the button/icons.

Beagle and Lucene search tools could be integrated.

Weekend in Ukraine

Posted on 2004-11-24 07:27:19 UTC to . 0 comments.

We spent last weekend in Lviv (Львів, Lwow, Löwenburg, Leopolis), Ukraine together with Taya from Georgia and Nata, Ania and Monika from Poland. I had seen them last time in Caucasus, and the reunion was very nice. We also got to do some business planning regarding bringing Midgard to the Georgian market.

Lviv_opera_front.jpg

Lviv is a former Polish city given to Ukraine at the end of World War 2. The old town shows Polish architecture of 18th and 19th centuries very nicely, and listed on the UN World Heritage registry. There are old military buildings, an Armenian church and a rococo-styled opera building.

Lviv_Rynok_square.jpg

We spent most of the weekend just sightseeing and enjoying the company. On sunday night we went to see a performance of Verdi's Aida opera in the old theatre. A very traditionalistic performance where carpenters started hammering the set together every time the curtains fell. Before the opera we dined in an Uzbek restaurant.

Lviv_Aida.jpg

The only thing shadowing the gathering was the Ukrainian presidential elections held during on sunday. As reported by all major news outlets, the elections were heavily rigged for the ruling party's candidate, and civil unrest was feared as a result.

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 squere 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.

Lviv_demonstration.jpg

The demonstrations stayed quite peaceful during monday, and I got my plane to Vienna in the afternoon. At the same time black cars were ferrying businesspeople to their private jets out from the city. Since then, the situation has escalated quite a bit, with city of Lviv refusing to accept the election results, and reputedly barricades being constructed on the National Square of Kyiv. Having seen the situation develop, I will definitely monitor the news about it.

Updated 2004-12-27: After weeks of demonstrations and international attention, the Ukrainians held new elections yesterday. This time Yushchenko won clearly. However, Yanukovych has challenged the result.

Franchising as Growth Model for Open Source Business

Posted on 2004-11-26 18:00:45 UTC to . 0 comments.

Open Source business is a services industry. As in all service industries, the big question is the standard investor question of "How do you make money while you sleep?"

We've been thinking about this for a while, considering different growth strategies. One model that would seem very viable is franchising. According to WikiPedia:

Franchising is a method of doing business wherein a franchisor licenses trademarks and methods of doing business to a franchisee in exchange for a recurring royalty fee.

In our case this would mean giving other Midgard consultancies the right to use the Nemein brand and working model in their operations. In return, they would pay a franchising royalty to us. According to World Franchising, this royalty is typically 3-6% of revenue.

What would be the benefits to the franchisor? There are several:

  • Established name in Midgard solutions
  • Strong client portfolio
  • Direct technical support from several main developers of Midgard
  • Good management systems and clear IT policy
  • Training period on working models together with the Nemein team
  • Clear technology strategy
  • Marketing and sales support

For the clients this would also be an advantage as they could be sure they're getting real Midgard competence. From a chat with a potential franchisee:

The idea with all this is that we can work together more efficiently and that clients will have a consistent experience. Essentially the big mac will taste the same everywhere.

Being less risky than starting overseas offices, this model is certainly very compelling. We are now piloting the approach with two companies, one in an established western market, and one in an emerging CMS market. If this works out, we might soon see the golden arches of Midgard spread around the world.

Updated 2005-01-03: Hiisi.fi comments "Not a bad idea. Might work once you have first found a way to become a reputable business" and points to two other related posts: Dan Bricklin and Frank Hecker

F.U.D. trailer available

Posted on 2004-11-27 07:52:52 UTC to . 0 comments.

The trailer of the Wyona Pictures movie F.U.D. - Fear Uncertainty Doubt documenting the Open Source community is now available. A BitTorrent client is needed for downloading.

fud-bergie.jpg

As written by Chregu, the movie has been shot in two locations, OSCOM 4 in Zürich and ApacheCon 2004 in Las Vegas.

Filesystem-enabled MidCOM-template now available

Posted on 2004-11-29 16:34:47 UTC to . 0 comments.

Testing the new filesystem-enabled version of MidCOM is now easier than ever, with the new forked and fs-enabled version of midcom-template:

  1. Get fs-midcom from CVS
  2. Install the new fs-enabled midcom-template from CVS
  3. Install fs-midcom under /usr/share/pear/midcom
    Note: you can change this path from /midcom-admin/settings
  4. Symlink the static directory to your DocumentRoot. For example:
    ln -s /usr/share/pear/midcom/static /var/websites/www.ruutukuningatar.net_80/html-data/midcom-static

...and you're done. My site now runs this new midcom-template. The transition was very easy.

Back