Motorcycle Adventures and Free Software

Weblog: Archive

2006-10-01 - 2006-10-31

Midgard's new tagging library

Posted on 2006-10-04 22:23:01 UTC to . 0 comments.

I'm spending some time this week on a specification workshop in the countryside. Mostly we're looking at integration points between Midgard, Gforge and Doxygen to provide a complete open source project collaboration environment.

However, as a side result Midgard also has now a new tagging library: net.nemein.tag. This library is aimed at centralizing how tags are handled in various MidCOM components.

Adding tagging interface is as simple as including the following into a Datamanager 2 schema:

'tags' => Array
(
    'title' => 'tags',
    'type' => 'tags',
    'widget' => 'text',
),

Tags may be entered into this field, separated by spaces. In addition to regular simple tags, like midgard, the tagging library also supports multi-word tags surrounded by quotes, like "This is a long tag".

Another feature with tags in the concept of contexts. Context is something that describes the tag you apply. For example, if you are tagging a wiki page that describes a new feature in Midgard 1.8, you might tag it as "new-feature:Midgard 1.8". This way the site builder knows more about the relation and can display it differently.

Displaying tags is reasonably easy. For example, Midgard Wiki displays tags on a page in the following way:

// List tags used in this wiki page    
$tags_by_context = net_nemein_tag_handler::get_object_tags_by_contexts($request_data['wikipage']);
if (count($tags_by_context) > 0)
{
    echo "<dl class=\"tags\">\n";
    foreach ($tags_by_context as $context => $tags)
    {
        if (!$context)
        {
            $context = $_MIDCOM->i18n->get_string('tagged', 'net.nemein.tag');
        }
        echo "    <dt>{$context}</dt>\n";
        foreach ($tags as $tag => $url)
        {
            echo "        <dd class=\"tag\">{$tag}</dd>\n";
        }
    }
    echo "</dl>\n";
}

Sponsored links

save money using, phone card

Talk about response times

Posted on 2006-10-05 21:08:11 UTC to . 0 comments.

net.nemein.ping was the original experimentation ground for MidCOM's content update notifications support. However, it had since fallen into disuse as it waited re-implementation using MidCOM's at service to ensure pings are run asynchronously.

Then I saw this blog post in my RSS reader:

Today we're launching the Google Blog Search Pinging Service, which is a way for individual bloggers and blog platform providers to inform us of content changes. Blogging providers who syndicate RSS/Atom/XML and want to be included in our Blog Search index can now ping us directly.

I immediately saw the opportunity to refactor some old code, and so now net.nemein.ping 1.0.0 is out and available. It supports several blog directories including Google and Technorati, and runs the pings in at service registered for next minute after an article is published or modified.

Note: Even thought Google announced their service, it doesn't seem to be working yet. From MidCOM's debug log:

Oct 05 21:57:13 [debug] net_nemein_ping_pinger::ping: Successfully pinged rpc.pingomatic.com
Oct 05 21:57:14 [debug] net_nemein_ping_pinger::ping: Successfully pinged rpc.technorati.com
Oct 05 21:57:15 [warn] net_nemein_ping_pinger::extended_ping: Error pinging blogsearch.google.com:\
5 Didn't receive 200 OK from remote server.\
(HTTP/1.0 404 Not Found)

Updated 2006-10-06: Google has now fixed their ping interface:

Oct 06 07:54:16 [debug] net_nemein_ping_pinger::extended_ping: Successfully pinged blogsearch.google.com

In somewhat related news, Alexander Schuster has just released beta release of Aegir 1.0.4, the first update to the legendary Aegir administrative interface of Midgard since July 2004. Cool!

Watching movies on the Nokia 770

Posted on 2006-10-19 21:21:08 UTC to . 0 comments.

I returned from a trip to Lapland and Russia today, and noticed that the battery of my Macbook had somehow died while I was away. Now the computer doesn't recognize it at all.

This means I have no possibilities for using the laptop while traveling to Turku for the weekend and to Tampere next week for the OpenMind conference, unless the Mac store is able to replace the battery tomorrow morning.

Since the fate of the computer is uncertain I decided to secure at least some entertainment for the trips in form of watching movies on my Nokia 770. The conversion procedure from DVDs to the format supported by the tiny device is fairly easy using the HandBrake movie converter.

So far the results look quite promising:

Porco Rosso on the Nokia 770

Now what remains to be seen is how long the battery of the Nokia device lasts when watching movies.

Updated 2006-10-22: I watched the 30s classic aviation film Hell's Angels on a train ride from Helsinki to Turku yesterday. The movie was definitely watchable on the 770 screen, and the 2 hour trip used one fourth of the battery (as shown by the indicator).

Managing Changes in Collaborative Innovation Networks

Posted on 2006-10-22 14:42:00 UTC to . 0 comments.

I was one of the people interviewed for Jyrki Wahlstedt's essay Managing Changes in Collaborative Innovation Networks. It deals with how innovation networks like free software projects communicate:

As the project matures, things change. The initial ideas are accepted (otherwise there would be no project), and something has been built. That something has been downloadable for some time, and the software produced in project gets users. The number of users may be very large, for some projects in sourceforge.net, for instance, the number of downloads may be in hundreds of thousands during one day. This leads to a situation, in which defects and enhancement requests surface. When there is pressure to modify the software, change and add features, remove defects, it will be interesting to see, how change management works and is reflected in communication networks.

Midgard, like many other open source projects, is experiencing challenges with the communication infrastructure. We have several different, and partially overlapping channels for communications and change management. This leads to confusion and duplicated information, and is definitely an area where we could do better,

How much is your Midgard worth?

Posted on 2006-10-23 20:13:35 UTC to . 0 comments.

Inspired by the PHP Eats Rails for Breakfast report, I've registered Midgard CMS at Ohloh, a service tracking code contributions in various free software projects.

Even though it only covers the post-filesystem transition MidCOM and not whole Midgard, the Midgard Ohloh report has interesting things to tell:

  • Codebase: 235,264 lines of code
  • Estimated effort to produce: 62 man years
  • Cost to produce: 3,4 million USD
  • Programming languages:
    • PHP: 61%
    • Javascript: 27%
    • HTML: 10%

We'll have to see how the numbers change once I add the main Midgard repository with its accumulated history since 1999.

Tobias Schlitt has more detailed analysis of a MidCOM competitor, eZ components on Ohloh.

Midgard 2 time

Posted on 2006-10-24 13:09:43 UTC to . 0 comments.

Midgard 1.8.0 is out, and so according to the roadmap we can finally start getting rid of legacy Midgard1 features to get into the nice, clean slate of Midgard2.

First casualty of the cleanups is the old MidgardArticle object, which Piotras just removed with the following commit message:

Midgard community says bye.
We spent so long time together.

From now on, MgdSchema and Query Builder will be the only supported ways to access data in Midgard. About time, too:

Midgard is an IT project so we can expect delays. Seven years sounds rather long, but Rome wasn't built in a day and conquerring the world is even more difficult.

Maemo is migrating to Midgard

Posted on 2006-10-24 14:42:12 UTC to . 0 comments.

Maemo, the open source mobile device platform developed by Nokia is switching its web infrastructure to Midgard CMS. Ferenc Szekely writes:

We have conducted a study on migrating/integrating all existing services of maemo.org with the Midgard CMS framework. Based on the study we have decided to go ahead and setup the new environment.

The highlights of the project are:

  • centralized account management using Garage
  • on-line documentation authoring using Midgard
  • proper and robust access control
  • automated API generating/publishing
  • database based Application Catalogue ;)

Nemein is participating in the project as the Midgard expert organization.

Updated 2006-10-26: The project is now well under way. The Midgard layout templates for Maemo and original specifications are available.

Updated 2006-10-29: Tuomas Kuosmanen has a good summary of the project too.

View Source

Posted on 2006-10-29 21:11:05 UTC to . 0 comments.

I love the idea of including a "View Source" key into the OLPC keyboard:

Having "the freedom to view the source" can seem very abstract, and having a "View Source" key makes this feature of the machines clear to the users. Imagine one of these kids visiting an Apple Store1 sometime in the future and innocently asking where the "View Source" key is. "Let you view the source? But that's our property, it belongs to us, you can't have it."

gnome.org will run Plone

Posted on 2006-10-30 17:57:36 UTC to . 0 comments.

The GNOME desktop community has been evaluating different CMS options since July. TikiWiki, Drupal and eZpublish were eliminated because of missing features, and the final was between Plone and Midgard CMS.

The reason for favoring Plone over Midgard was apparently the number of Python developers in the GNOME community over the number of PHP coders:

The reasons for choosing Plone rely more on people than code, since both tools could reach all the requirements with hacking and good will.

Of course, there have been strong opinions about this:

Please, please do not run GNOME.org on Plone. I cannot stress this enough. Not only is Plone remarkably slow (it brought a dual Pentium 3 to its knees), it's hard to hack on and hard to understand, it behaves more like a document management system than an exciting website and is unstable to boot.

From what I've seen, Plone is a quite nice system. But the big question is whether you want the Zope infrastructure or something else.

In any case, while I'm a bit disappointed on the decision, I will watch the deployment project with interest. Especially the concept of using PO files for site content localization is something that could be worthwhile to implement if the process actually works as well as the GNOME i18n guys claim.

Contact management in semantic web

Posted on 2006-10-30 18:38:03 UTC to . 0 comments.

One big idea we've had with OpenPsa has been supporting various standards and Microformats to make the user experience richer.

Today I finally had the chance to take the first step at this direction by adding web site probing support into the OpenPsa Contacts CRM component. Now when you enter a new person or company it does:

  • Check if the contact has a homepage set
  • Register an "at" entry for Midgard
  • Next minute the homepage will be fetched
  • If there is a <link /> to RSS feed that feed will be fetched
  • If the feed includes ICBM metadata the position will be stored accordingly
  • If the feed includes GeoRSS info then the a subscription will be registered
  • ...and at every subscription run the person's position will be updated according to the time of latest RSS entry

End result is that if the contact has a geocoded website (like many do nowadays), the position will be available for the CRM system.

It is of course only the first step. When finally I upgrade my local development box to run PHP5 I can start reading Microformats in via hKit and do cool things like automatically populating employees and contact information.

Be liberal with input, strict with output

Posted on 2006-10-30 22:28:41 UTC to . 0 comments.

Midgard's support for GeoRSS is solidifying with the auto-probing system in OpenPsa and the latest release of org.routamc.positioning.

After a brief consultation with the Andrew Turner from GeoClue I decided to skip the confusing jungle of GeoRSS specifications and follow the good old principle of being liberal with input, strict with output.

This means that now Midgard can import position data from HTML ICBM meta tags, W3C Geo RSS and Simple GeoRSS formats but only outputs it in GeoRSS Simple format. And here's one of the results:

DeathMonkey's GeoRSS-driven position map

Note: This change of approach also means that Midgard can communicate with GeoPress quite easily.

Back