The mobile-first Web

The growth of mobile web users is staggering. While some of us have been browsing the web on mobile devices for nearly ten years, most of the world population is only now getting there.
cover image for Automated linking with rich text editors

Automated linking with rich text editors

The web is built of links, of pages linking to other resources on the internet. But making those links manually is tedious. This is another area where modern inline editors could do better.
cover image for Why WordPress needs to get Decoupled

Why WordPress needs to get Decoupled

Couple of days ago there was an interesting post on the Dire State of WordPress, talking about the issues developers have when working with this hugely popular content management system:
cover image for Create.js in 2013

Create.js in 2013

It is now 2013, and the IKS project, started back in 2009 to improve content management systems through semantic technologies, has ended. Alongside Apache Stanbol and VIE.js, the Create.js inline editing toolkit was one of the major outcomes of this European Union funded effort.

Interview: Create.js and VIE in CMSs

Create.js and VIE were recently added to the core of Drupal 8. Just like with TYPO3 Neos, I’ll write a longer post on how things went later.
cover image for TYPO3 Neos and Create.js

TYPO3 Neos and Create.js

The relation between Create.js and the TYPO3 team goes back a long way. They were present in the IKS event in February 2011 in Vienna where I presented Create for the first time.
cover image for Internet as your application blueprint

Internet as your application blueprint

With Lukas Smith we gave the Monday keynote in this year’s International PHP Conference, titled The Internet is your application blueprint. The video is now online:
cover image for Making Create.js more international

Making Create.js more international

We’re now making good progress at releasing the big 1.0 of Create.js soon. The various CMS integrations - from Symfony CMF to TYPO3, and possibly Drupal and many others - have brought us a lot of new features and bug fixes, and will ensure a wide international audience for this inline editing toolkit.
cover image for Better collections with Create.js

Better collections with Create.js

Copenhagen has been the last stop of the current Create.js tour. In here we’ve been integrating VIE and Create into TYPO3 Phoenix, the next major version of this popular CMS.
cover image for Drupal and cross-CMS collaboration

Drupal and cross-CMS collaboration

I spent the last week in DrupalCon Munich followed by FrOSCon, and gave a talk on the Decoupled Content Management story in both.
cover image for A history of Midgard visuals

A history of Midgard visuals

As far as open source CMSs or web frameworks go, Midgard is one of the oldest ones. We started the work on it somewhere between 1997 and 1998, and the first version was launched in May 1999. Over the years our communications and visuals have changed quite a bit, and this post aims to show some of that evolution.
cover image for Modernizing MidCOM

Modernizing MidCOM

For those who haven’t been following the Midgard-land, there have been some interesting developments recently. The long-term supported Ragnaroek branch of Midgard1 is slowly fading away, and much of the recent activity has focused on making Midgard2 available via the PHPCR standard, and on the new Create.js inline editing tool.
cover image for Create.js hackathon in Berlin

Create.js hackathon in Berlin

Last week we at IKS organized a two-day hackathon for developers interested in Create.js, VIE, and in new tools for editing websites semantically.
cover image for Video: Decoupling Content Management

Video: Decoupling Content Management

Our concept of Decoupled Content Management, together with the VIE and Create.js is really taking off. I’ve spent in various conferences this summer speaking about them.
cover image for Never lose content

Never lose content

One important part of writing web content is reliability. Since everybody has had bad experiences with their current tools, the current level of trust in web editing tools is low. We’ve all been there, maybe the browser crashed, or the server-side session expired. But suddenly the article you’ve spend an hour writing is gone.
cover image for Notes from Symfony Live 2012

Notes from Symfony Live 2012

This is a liveblog from the Symfony Live 2012 event, and will be updated as the conference progresses. You can also follow the #Symfony_live Twitter hashtag
cover image for Running Symfony CMF with Midgard2

Running Symfony CMF with Midgard2

I’ve written about Decoupled Content Management before. As the Symfony Live event in Paris is nearing, I thought to give Symfony CMF a spin. Symfony CMF is a new approach at building PHP content management systems, and adheres quite well to the principles of decoupled CMS:

Decoupled Content Management on tour

It seems the idea of Decoupling Content Management is gaining momentum. On the user interface side, many projects have already adopted the VIE interaction framework and widgets from Create, and in the content repository space projects like PHPCR move forward and there are also interesting new ideas like Apache Oak. While much of this has been made possible by the...
cover image for Open Advice

Open Advice

I seem to have not blogged about this, but Open Advice, our book on Free and Open Source Software: what we wish we had known when we started, was published last month. The book was edited by Lydia Pintscher and includes essays from 42 authors, many of whom you'll recognize if you tend to go to FOSS conferences. The LWN...
cover image for VIE and Create: an update

VIE and Create: an update

It is again time to write an update on the state of IKS's two main components for the semantic editing part of Decoupled Content Management: VIE is the base semantic interaction library that handles the site's content model through RDFa annotations and Backbone.js synchronization Create is a new kind of web editing interface built on top of that. As the...

CreateJS is moving forward

As you probably know, we at IKS have been working to decoupled content management through semantic technologies. CreateJS, together with the VIE library provide the user-facing part of this approach.

Midgard2 PHPCR provider hits 1.0

I'm happy to announce that we were able to release the first stable version of the Midgard2 PHPCR provider yesterday.Simply put, PHPCR is the future of Midgard's PHP API. Instead of having our own repository APIs, we follow the well-documented and tested PHP Content Repository specification. This allows much better compatibility with other projects, and for example the possibility to...

Composer solves the PHP code-sharing problem

In PHP we’ve had a lousy culture of code-sharing. Because depending on code from others as been tricky, every major PHP application or framework has practically had to reimplement the whole world. Only some tools, like PHPUnit, have managed to break over this barrier and become de-facto standards across project boundaries. But for the rest: just write it yourself.
cover image for DNode: Make PHP and Node.js talk to each other

DNode: Make PHP and Node.js talk to each other

If you’ve been following my blog, you might have noticed that lately I’ve started doing quite a lot of Node.js development alongside PHP. Based on conversations I’ve had in various conferences, I’m by far not alone in this situation - using Node.js for real-time functionality, and PHP (or Django, or Rails) for the more traditional CRUD stuff.

VIE 2.0 is starting to emerge

VIE is a JavaScript library that makes RDFa-annotated entities on web pages editable. We started the work towards the next major version of it, codenamed Zart (for Mozart) in a Salzburg IKS hackathon couple of weeks ago.

GObject Introspection is coming to Node.js

GObject Introspection (GIR) is a way to create automatic bindings to GNOME libraries for various different programming languages. I’ve written before about the benefits of bringing GIR to PHP, and now it seems something similar is happening on Node.js.

Embrace and extend

I’m getting worried about Google. Long one of the champions of the open web alongside Mozilla, the rise of social networking silos and the app economy seem to have scared them. And like any scared organism, they lash out.
cover image for Nemein and Infigo merge to create a digital agency focused on web and mobile

Nemein and Infigo merge to create a digital agency focused on web and mobile

Yesterday the contracts were signed to acquire Infigo as part of Nemein. Infigo, is a consulting company focused on mobile development and web using open source tools. You'll probably at least know their CTO, Jerry of the USB finger fame. Even in the ten years of history of our company this is quite a significant move - it allows us to combine Nemein's traditional expertise on...

Flow-based programming for PHP

You may have seen my earlier post about NoFlo, the flow-based programming tool I’ve written for Node.js. It allows you to do quite cool stuff, like a visually controlled web server:

Symfony2 for Midgard Developers

We hosted a full-day Symfony2 workshop for some of the Finnish Midgard developer community today. As I've written before, Midgard is now transitioning to Symfony2 as our PHP web framework of choice, and this workshop was organized to support that. Symfony2 for Midgard Developers View more presentations from Henri Bergius Subjects discussed included: Symfony2 as a central PHP ecosystem Basic...
cover image for Some notes from Desktop Summit 2011

Some notes from Desktop Summit 2011

As usual, Desktop Summit 2011 has been a lot of fun. I’ve been to most of the GUADEC and aKademy free desktop events in the past few years, but this was the first time I didn’t give a talk. Even that way, it was definitely worth spending a week in Berlin.
cover image for Desktop Summit, and some thoughts on Flow-Based Programming

Desktop Summit, and some thoughts on Flow-Based Programming

Like many, I'm currently in Berlin for Desktop Summit, the combined conference of the GNOME and KDE communities. It is a lot of fun to see all the familiar faces, and talk about the different projects going on! Now, one of the things I've talked about with people is NoFlo, my new tool that brings Flow-Based Programming to Node.js. What...

Midgard in the Symfony2 world

So, Symfony2 was released today. Now, you may remember me complaining about the fragmentation in the PHP community, as well as suggesting various technologies that have the power to bring the community together. But what I haven’t talked about is convergence in the area of PHP frameworks.

PHP and GObject Introspection

GObject Introspection is one of the hidden jewels of the GNOME stack: you write a library in C or Vala, and it becomes automatically available to a wide variety of languages and runtimes, including Python, JavaScript, Java and Qt.
cover image for My secret agenda for PHP Content Management Systems

My secret agenda for PHP Content Management Systems

As I’ve written before, I’m concerned about the state of the PHP ecosystem. There are lots of good applications written in the language, but there is very little code sharing between different projects, mainly because of framework incompatibilities, but also because of quite a strong NIH culture.
cover image for Midgard Create and VIE in the Aloha Editor conference

Midgard Create and VIE in the Aloha Editor conference

The Aloha Editor Developer Conference is happening this week in Hacker Dojo, Mountain View. While some other events may steal a bit of focus from this one, there seems to be a good amount of energy here. The event opened with Haymo Meran's keynote on the state and roadmap of Aloha Editor. As part of this there was an interesting...

Want to do something similar to PostRank?

So, Google acquired PostRank, the service calculating impact of blog posts and other items in social media. If you want something similar but without the Google tie-in, then a good option is my social impact calculator which is fully free software written in PHP. It was originally written in 2007, but the newer version has been cleaned of Midgard dependencies...

Going to San Francisco

This weekend, after Falsy Values, I will be flying to San Francisco for a couple of weeks. There are some conferences: MeeGo Conference, May 23-25 Aloha Editor dev con, June 6-8 However, as there is quite some time between these two events, it would be interesting to meet cool people and/or projects. So if you're in the area, drop me...

PHP can perform better than Node.js

My previous post about using Silex and AppServer-in-PHP similarly to ExpressJS generate quite a bit of interest. In the Hacker News thread there was a question about memory usage, and so I put the AppServer under siege. Memory usage stayed constant at: 13958 bergie 20 0 125m 10m 2136 S 1 0.6 0:00.28 php 13959 bergie 20 0 125m 10m...

Silex is like ExpressJS for PHP

We had the PHP Content Repository workshop at Liip in Zurich earlier this week. During the time we also discussed some other code reuse, like utilizing parts of the Symfony2 framework in Midgard. The Liip guys mentioned Silex, a cool micro-framework written on top of Symfony2. It greatly resembles the ExpressJS framework that we already use in some of our...

Join the PHP Content Repository Workshop on May 8th

The IKS Project and Liip are organizing a PHP Content Repository Workshop in Zurich, Switzerland on May 8-9 2011. If you're working on PHP-based content management technologies, this event should be a very useful one to join or at least follow. What is a content repository? Content Repository is a programming interface for connecting with various persistent data stores. On...

PHP Content Repository - the other part of CMS decoupling

A while back I wrote about decoupling content management. The post generated lots of good reactions, and since then our VIE library has been adopted by multiple CMSs to achieve decoupling on the UI level. Now it is time to focus on the other side of decoupling - the relation between a web framework and a content repository. I've written...

The beginning of a JavaScript journey

While PHP remains my primary programming language for various reasons, my recent projects have involved quite a bit of JavaScript development. And I have to say I like it: the event-driven paradigm is quite elegant, closures are a joy to work with, and tools like Node.js and jQuery really open up the possibilities of the language. But there is one...

Calculate the impact of your posts

Today on HN there was a thread on how to get the Facebook share counts for a URL. Turns out that with Facebook, just like with most social web services this is quite easy. And actually I've been doing this since 2007 to calculate news item relevance on Maemo News. Of course the social web landscape has changed quite a...

On cross-project collaboration

There is currently quite stern discussion going on between GNOME, Canonical and KDE about collaboration on the free desktop. Angry words have been written, and I believe much of the tension arises from the situation with MeeGo. Suddenly many developers and projects feel much more marginalized than what the future looked like, pre-112. Hopefully cooler heads will prevail before the...

VIE - Decoupled content management moves forward

My posts on Decoupling Content Management, and especially the introduction to the "build a CMS, no forms allowed" approach we took with Midgard Create have generated a lot of interest. When I first presented the approach in the recent Aloha Editor Developer Conference, many CMSs wanted to do something similar. And so we decided to strip the Midgard-specific parts out...

Event-driven programming with PHP5 and Midgard2

Event-driven programming is a paradigm that is especially familiar for GUI and JavaScript programmers. For example, it is the style used in Node.js. In the traditional PHP space it hasn't been utilized that much, but here is an example how to do it with GObject signals as provided by Midgard2. Connection events First of all we prepare a Midgard connection:...
cover image for Introducing the Midgard Create user interface

Introducing the Midgard Create user interface

You may have noticed that quite a lot is happening in the Midgard land. Nowadays Midgard2 itself is a generic content repository that can be used for both desktop and web applications. Midgard MVC is a generic web framework for PHP5 that can be used with Midgard2 or without it. And then there is Midgard Create, the new content management...
cover image for Ten years of Nemein

Ten years of Nemein

Today it is ten years since my company, Nemein, started operating. Our team had been doing the internal Midgard-based information systems at Stonesoft, but as parts of that company were being sold, our team would've been split up. So instead we started our own business with Henri Hovi and Johannes Hentunen, with the idea that our Midgard expertise would be...

GObject Introspection is coming to PHP

In the next-generation Midgard Content Repository we decided to focus on GObject Introspection for providing bindings to various programming languages like Python and JavaScript. The advantages for automatically generated bindings are quite obvious when compared to the situation with older Midgard versions where we had to maintain them manually. Unfortunately PHP didn't have GObject Introspection support, but that is about...
cover image for Decoupling Content Management

Decoupling Content Management

Traditional content management systems are monolithic beasts. Just to make your website editable you need to accept the web framework imposed by the system, the templating engine used by the system, and the editing tools used by the system. Want to have a better user interface? Be prepared to rewrite your whole website, and to the pain of having to...

Literate programming with PHP

noweb.php is a PHP implementation of the tool needed for literate programming. Wikipedia says the following about literate programming:

WSGI for Python

Python specification for a Web Server Gateway Interface has been accepted, with quite ambitious goals: If middleware can be both simple and robust, and WSGI is widely available in servers and frameworks, it allows for the possibility of an entirely new kind of Python web application framework: one consisting of loosely-coupled WSGI middleware components. Indeed, existing framework authors may even...

Join the IKS Semantic Editing hackathon in February

IKS, the EU-funded effort to add semantic capabilities to open source CMSs, will organize a semantic editing hackathon in Vienna this winter: We invite you to join us at next month's IKS Semantic Interaction Hackathon in Vienna taking place over 3-days February 24th-26th, 2011. The goal of the hackathon is to provide a framework, that enables CMS developers to exploit...
cover image for Midgard in 2010

Midgard in 2010

Wow, 2010 was quite a hectic year in the Midgard world. Here is a quick summary: We held three Midgard Gatherings: one in Lodz, Poland in April, one in Tampere, Finland in July and one in Gothenburg, Sweden in November. In April we announced the new directions of the project. The project completed a migration to Git (and GitHub) for...

Stop using SQL, then

From yesterday's PHP Advent article: PHP has been around nearly as long as there has been a Web to develop for, but it evolves constantly and is a modern programming language by almost any definition. Sure, it might not suit hipsters who only enjoy bands when they can say “you probably have not heard of them; they only formed tomorrow,”...
cover image for Get a preview of the next Midgard content repository

Get a preview of the next Midgard content repository

Midgard 10.12 was released last week as a developer preview of what is coming in the world of content repositories: MidgardCR 10.12 "Hrungnir" is a technology preview of the third generation of the Midgard Content Repository. It is released to allow developers to gain familiarity with the upcoming Midgard storage APIs and RDF storage. MidgardCR is available as a GObject-oriented...
cover image for Using RDFa to make a web page editable

Using RDFa to make a web page editable

As part of the IKS project we're working on semantic web editing. One area there is using RDFa to actually make pages editable. RDFa is a way to embed semantic information to regular HTML pages, and is already supported by some search engines, making this also a way of doing SEO. But in addition to telling search engines what the...
cover image for Why make your projects properly open? Sustainability

Why make your projects properly open? Sustainability

Snapshot from Bertrand's presentation in the Amsterdam IKS workshop: what does being an Apache project bring to the table? The answer is sustainability. IKS is an EU-funded project which will eventually end. Proper project governance handled together with the Apache Software Foundation can help the software to survive and thrive for long after that. Sustainability is something that is critical...
cover image for PHP: Finally getting an ecosystem?

PHP: Finally getting an ecosystem?

One of my main concerns with PHP has been the lack of ecosystem. Almost all libraries and tools are written with a specific framework in mind, creating separate ecosystems around Drupal, Zend Framework, Midgard and others instead of an ecosystem benefiting all users of the language. There have been efforts at this, like PEAR before, but they have mostly stagnated....
cover image for Midgard2 Content Repository library is now in Debian

Midgard2 Content Repository library is now in Debian

This should be great news for developers who want to work with a content repository: Midgard2 just landed to Debian unstable. Note that it is not the classic Midgard CMS what we're talking about here, but instead the content repository / ORM library that the CMS is built on. Midgard2 is a content repository library written on top of the GNOME...
cover image for Help testing the OpenPSA business suite

Help testing the OpenPSA business suite

OpenPSA is an web-based management suite for consulting companies. The GPLd suite includes functionalities like calendaring and contact management, product configurations, sales processes, project management and invoicing. The application was originally developed by Nemein but since 2008 has seen excellent maintenance work by the Content Control team. As a result of last weekend's Midgard developer meeting in FSCONS, the OpenPSA suite has...

MVC without the M

The (¬M)VC post gives some ideas how to improve the Midgard MVC - Content Repository interface.

Towards the geotagged web

There was a pretty interesting snippet in Engadget's coverage of yesterday's Nokia World keynote: "By 2013 800 million people will be using GPS-enabled devices. Soon, everything on the Internet will have a location coordinate. This is a space we intend to own." Indeed, this is a quite possible future, and one for which we with Midgard are quite well prepared...

My interview at dot KDE

Jos Poortvliet did an interview with me for dot KDE in this summer's aKademy and it has been online for a while now. In it we discuss things like Midgard as a storage engine for desktop applications, and Maemo's open QA process for Downloads applications. Some excepts: At we have an appstore for FOSS applications on the Maemo platform....
cover image for Aloha and the art of semantic web content

Aloha and the art of semantic web content

To bring CMS editing to the next level, the IKS project is working on a semantic HTML5 editor. This week we had a hackathon in Helsinki focusing on implementing our ideas with the Aloha Editor. In addition to enjoying the hot summer weather here, we accomplished quite a bit and in the end were able to present the whole pipeline...
cover image for Recent performance improvements for Midgard 8.09

Recent performance improvements for Midgard 8.09

Midgard 8.09 is an industrial CMS that is now in Long-Term Supported stage, with the community maintaining it until 2013. As we all know, performance is a feature, and with a CMS framework that has lived through many changes including transitions from PHP4 to 5.2 and from Classic Midgard era to the modern APIs, there is a lot to do....
cover image for Meet Midgard and GeoClue in aKademy 2010

Meet Midgard and GeoClue in aKademy 2010

We tried to get the combined GUADEC and aKademy conferences to Tampere in 2009, but a warmer place unfortunately won. However, we will be hosting this year's aKademy so at least KDE and Qt fans will get to enjoy this beautiful northern industrial city. The main conference will be held at the Tampere University over the weekend, and then the...
cover image for Midgard Runtime brings our web framework to the desktop

Midgard Runtime brings our web framework to the desktop

Midgard2 10.05.1 was released yesterday, bringing a long-waited feature finally to the Midgard installation packages: the Midgard Runtime. Midgard Runtime is an application that consists of a simple Qt WebKit viewer that, when run, starts a local Midgard web server on the background and connects to it. This means that you'll have the full Midgard MVC stack available on your...

Midgard release names: 1999 to 2010

A bit of folklore... The Midgard releases have usually been named after some current event in the community. If no fitting events have been around, then names have been taken from Viking mythology.

First year of IKS for Midgard

Last year we became a partner in the European Commission -funded Interactive Knowledge Systems project aiming to increase semantic capabilities in Open Source CMSs and vendors.

Midgard2 has moved to GitHub

Now that Midgard2 is at Long-Term Supported stage it was time to finally make the jump and migrate our development efforts to happen on top of Git, the fast version control system. To maximize project visibility and enable easy tool access we chose GitHub as the Git hosting provider. While migrating to Git we also decided to implement the Distributed Version...
cover image for Notes from my first Ubuntu Developer Summit

Notes from my first Ubuntu Developer Summit

Last week was the Ubuntu Developer Summit targeted at planning how the next iteration of the operating system, Maverick Meerkat, targeted at a October 10th 2010 release, would look like. The event was held in a spa resort off in the countryside near Brussels. A place where the developers were comfortably separated from the busy towns by forests and country...
cover image for Ratatoskr is out: Midgard2 Content Repository goes LTS

Ratatoskr is out: Midgard2 Content Repository goes LTS

Midgard2 10.05 "Ratatoskr" was released yesterday, moving the Midgard Content Repository into long-term supported state as outlined in my recent post. Ratatoskr should provide a stable storage system for both desktop and mobile application developers. Web developers will also benefit from Midgard MVC, the PHP framework that already runs services like The release includes: Content Repository API bindings for the...

Future directions for Midgard

Two weeks ago we had the Midgard Gathering in Poland, and some big decisions were made there. I've been meaning to blog about them, but the volcano eruption in Iceland kept me busy by providing an interesting trip through New York and Moscow. Midgard2 The next Midgard2 release, 10.05 "Ratatoskr" will be a long-term support release, intended to provide a...

Content repositories: SQL or NoSQL?

The NoSQL movement seems to be pretty active, advocating a move away from traditional relational databases: ...developers have become crippled by being able to only think of data in terms of Rows and Columns. There's a multitude of database paradigms: Graphs, Trees, Objects, and so on. Furthermore, databases limit developers to SQL, which is great for certain kinds of set...
cover image for Easier templating for Midgard 8.09

Easier templating for Midgard 8.09

For a while now there has been discussion about making template editing easier with Midgard CMS. In the Ragnaroek series we have a very comprehensive template system where all output from the system can be overridden. While the possibilities have not always been easy to discover, things should be better in the next Ragnaroek LTS release. To access the template...

Getting started with the Midgard content repository

I'm doing a talk today in the Bossa Conference about using Midgard as a content repository for mobile applications. As part of my presentation I wrote some simple example code for using the Midgard APIs in Python, and thought they would be good to share to those not attending the event as well. The idea of a content repository is...
cover image for First year of Qaiku, and a travel writing challenge

First year of Qaiku, and a travel writing challenge

Qaiku, the conversational microblogging service that launched a year ago had a refresh that launched today. While it hasn't yet convinced the twittering masses, it has already proven itself as a lot more thoughtful platform for the Finnish online community, and as a valuable workstreaming tool. The new version looks quite nice and fresh. Notice the privacy information on the...

CMS Watch on their Midgard usage

Which CMS does The Real Story Group Use? (Tony Byrne / CMS Watch): The answer is, we use an open-source platform called "Midgard." We picked it nearly ten years ago, and it has held up fairly well.... One of the things we like about Midgard actually makes it rather unsuitable for many simpler publishing scenarios: it is highly object-oriented. This...
cover image for Register and log into using your account

Register and log into using your account

MeeGo is the new mobile Linux platform developed by Nokia and Intel. As the community is forming up, we thought that it would be good to enable people to use their identities also on the MeeGo web services (as well as on any other OpenID enabled website). For this, let me introduce Maemo's OpenID provider. First of all, go...
cover image for Going to the Bossa Conference

Going to the Bossa Conference

Bossa Conference, an event about mobile development with free software technologies will be held on March 7th-10th in Manaus, Brazil. This year I'm speaking about using Midgard as a replicated storage layer in mobile applications, with examples for multiple programming languages and toolkits. The idea behind the Midgard content repository is that instead of coming up with your own file formats you can...
cover image for provides contextual product recommendations provides contextual product recommendations

Last week the Finnish outdoor brand Halti launched a pretty interesting web service. While many outdoor brands focus on extreme sports that don't really have much to do with the reality of most of their customers, Halti connects their product lineup to the needs of the site visitor by utilizing both weather and location. This means where ever they are or...

Direct manipulation interfaces

There certainly is a lot of buzz about Apple's rumored Tablet product. Daring Fireball writes: If you’re thinking The Tablet is just a big iPhone, or just Apple’s take on the e-reader, or just a media player, or just anything, I say you’re thinking too small — the equivalent of thinking that the iPhone was going to be just a...
cover image for Midgard in 2009

Midgard in 2009

2009 was a pretty active year for the Midgard content repository project, and so it is good to take a look at some of the highlights: Midgard2 finally became a reality, bringing us a fully legacy-free modern Midgard implementation. There were two releases: 9.03 Vinland and 9.09 Mjolnir. Midgard2 works just fine also in desktop applications and mobile devices like...

Easy user location with Midgard

Location is an important context that web services can utilize for fun or smarter user interaction. In past getting location used to be difficult, but now thanks to good IP locationing databases and browser geolocation capabilities it is becoming a lot easier. But to be really easy, the framework you're using should provide user's location built-in, without you as an...
cover image for Using MidCOM3 with FirePHP

Using MidCOM3 with FirePHP

Firebug is a Firefox extension all web developers are familiar with. Now when developing with the MidCOM3 MVC framework it is possible to get your debug information straight from Midgard to Firebug: This is built on top of the excellent FirePHP extension, which helps you get data not only from regular web pages but also from AJAX requests. Currently we...

What is a content repository

Joint post of Henri Bergius and Michael Marth cross-posted here and here. Web Content Repositories are more than just plain old relational databases. In fact, the requirements that arise when managing web content have led to a class of content repository implementations that are comparable on a conceptual level. During the IKS community workshop in Rome we got together to...
cover image for Raise the hammer! Midgard2 Mjolnir goes live

Raise the hammer! Midgard2 Mjolnir goes live

Mjolnir, the new major release of Midgard2 Content Repository is now out. Named after the hammer of Thor, this release finally provides a real content repository that can be used by both desktop and web application developers. In addition to being a GObject-powered content repository for PHP, Python and Objective-C, the Mjolnir release provides several significant goodies on top of...

In defence of URLs and the Open Web

An increasing number of web services and applications are emphasising search terms or pre-selected websites instead of allowing users to enter any address they choose. This is worrying, as while searches are more user-friendly, URLs are the heart of an open web where anybody can publish without obscure business dealings or oppressive app store policies. There are many examples of...

Midgard Weekly Summaries are back

Midgard is a very active free software project, and it is quite difficult to keep up with all the changes, decisions and discussions happening around it. Therefore I decided to bring the Midgard Weekly Summaries back. Midgard Weekly Summary #75: October 2nd 2009 MWS has been running before, with 66 issues released between 1999 and 2002, and 8 issues in...
cover image for Fall conference schedule

Fall conference schedule

After a brief summer motorcycling break the fall is shaping up to be quite full with conferences. Here is the current list: September 30th - October 1st: OpenMind and MindTrek in Tampere, Finland I'll give a talk about the Midgard project and how our company has evolved together with it. In addition Linux-tekijä awards, where I was in the awards...

Content management starts with the repository

Gadgetopia makes an argument for building your own CMS: "See — the problem with a full scale Content Management System is that it has too many opinions. Those opinions were though of by somebody other than you and the needs of your organization. The more developed a content management system (or any piece of software, really) the more “opinions” it...
cover image for How Midgard and Midgard2 differ

How Midgard and Midgard2 differ

I had to make some updates to the architecture diagrams, and I thought to publish them here to showcase the difference. Midgard was a CMS framework for PHP: Midgard2 is a more universal content repository where CMS is just one application: Please note that more choice in databases and web servers is not the only goodie provided by Midgard2. You...
cover image for Content repository talk in FrOSCon

Content repository talk in FrOSCon

Content repositories can be useful for your application. In the PHP track of FrOSCon on Aug 22nd there will be a talk about this: Midgard2: Content repository for your PHP application Content repositories allow you to separate the actual front-end of your application from background processing tools. More than just their underlying databases, they impose common rules for data access,...

Will content repositories kill the file?

MDK laments the demise of the simple file in the onslaught of storage services: Sure, the applications still give you a way to share things and take them out of the storage. You can export a contact out of your address book as a vcard file. But the role of The File here is slowly being reduced to a role...

Why you should use a content repository for your application

I gave my Midgard2: Content repository for desktop and the web talk yesterday in GCDS. The slides are available on SlideShare. The main idea was that any application that deals with structured data could benefit from using a content repository like Midgard2 or CouchDB. So, what is a content repository? It is a service that sits between an application and...
cover image for CouchDb and Midgard talking with each other

CouchDb and Midgard talking with each other

CouchDb is a really cool document-oriented map/reduce database that is nowadays an Apache project. Previously we created the distributed CRM application Ajatus on top of the system and ported CouchDb to Maemo. Here in Gran Canaria Desktop Summit CouchDb has been somewhat a hot topic, as the Ubuntu project is planning to use it as the content repository for desktop...

Software patents are silly

Dave Neary summed this up well: ...I fundamentally disagree with discouraging someone from pursuing a technology choice because of the threat of patents. In this particular case, the law is an ass. The patent system in the United States is out of control and dysfunctional, and it is bringing the rest of the world down with it. The time has...
cover image for Ragnaland is coming

Ragnaland is coming

Just a little teaser before we all head out to countryside for the midsummer weekend: Yes, you're seeing the software versions right. The screenshot is from the "About Midgard" screen of Ragnaland, a hybrid setup of Midgard's MidCOM MVC framework from Midgard1 (MidCOM 8.09) and Midgard2 running in an App Builder instance (Midgard 9.09). Still requires some tweaking and bug...
cover image for Contribute your Maemo ideas via Brainstorm

Contribute your Maemo ideas via Brainstorm

Bugzilla isn't really the best place for contributing and discussing new ideas for a software project. Like Ubuntu and openSUSE before us, the Maemo community now also has a better tool for this: Maemo Brainstorm. Maemo Brainstorm, developed as part of our efforts to the April 09 Sprint is a new web service that follows the model of Drupal's IdeaTorrent,...
cover image for Tomboy web synchronization, Conboy and Midgard

Tomboy web synchronization, Conboy and Midgard

Some very interesting developments in desktop wiki land: Tomboy, the popular note-taking application for GNOME and OS X now supports web synchronization. The developers of Tomboy have launched Snowy, a web service that allows you to synchronize and access your notes online. As the API is documented, I decided to add support for it in Midgard too. This way the...

IKS assembly and requirements workshop

This week is the Interactive Knowledge project general assembly and requirements gathering workshop in Salzburg, Austria. My notes from the meeting days can be found on Qaiku: Day 1: general situation, tasks and requirements Day 2: tools, persistent storage, meeting the community As things are happening, it is also possible to follow progress on the #iks-project Qaiku channel or the...
cover image for Google's Rich Snippets will lead us into Semantic Web

Google's Rich Snippets will lead us into Semantic Web

This February I wrote how search engines play an important role in emergence of Semantic Web, and now it is becoming a reality: Google introduced a feature called Rich Snippets which provides users with a convenient summary of a search result at a glance. They have been experimenting with microformats and RDFa, and are officially introducing the feature and allowing...
cover image for First ten years of Midgard

First ten years of Midgard

Ten years is a long time. Exactly ten years ago we were sitting in a cramped office room in Espoo with Jukka Zitting, frantically trying to put a release together. We had been building a web platform for our living history group, and it had become useful for others too. We both were Linux users, and back then the concept...
cover image for Learn about Midgard2, GeoClue and libchamplain in GUADEC 2009

Learn about Midgard2, GeoClue and libchamplain in GUADEC 2009

GUADEC will be arranged this year together with aKademy as the Gran Canaria Desktop Summit on July 3rd - 11th. The event will be an excellent opportunity to learn about some new technologies for the Linux desktop: GeoClue and libchamplain presentation (Sunday morning):GeoClue is the position information service, and libchamplain is a very nice Clutter map widget. Together they provide...
cover image for Midgard2 stable: Generic content repository for web, desktop and mobile

Midgard2 stable: Generic content repository for web, desktop and mobile

After the long wait, Midgard2 was today released to the world. This marks a big change in the scope of what Midgard is. Instead of building a CMS, we've built a generic content repository that can be utilized in web, mobile and desktop applications. As MDK wrote when announcing the Objective-C bindings for Midgard: provides an objectified view to...

Oracle Sun acquisition: time to think about a content repository?

So, Oracle bought Sun, and MySQL with it. Since MySQL runs much of the current web, I'd imagine many developers are now concerned with the future of that database and looking at alternatives like PostgreSQL. But instead of locking yourself to another specific database, how about going with a content repository? Content repositories are services that wrap different storage back-ends...

Situational devices and synchronization

CloudAve reviews the CrunchPad browsing device, and concludes that these days, a single computer is just not enough for all our needs: A tablet for lazy surfing, a netbook for travel, an iPhone for when we don’t even want to carry that much, a full laptop for everyday work, and even a full desktop as the multimedia workhorse: at these...

Eight best Midgard2 posts

Midgard2, the content repository for multiple programming languages that we've all waited for so long is now in beta stage, and some services like Qaiku and St1 ReFuel already run on top of it. To get you started, here are some of the best Midgard2 blog posts out there: Midgard 2: More than just PHP, more than just CMS -...
cover image for Turn Internet trash into money with ReFuel

Turn Internet trash into money with ReFuel

Last night Finnish energy company St1 launched ReFuel, their new biofuel product. ReFuel is interesting in the sense that it is produced from biowaste, and so no farmland is used in its production. To support the product launch we helped to create ReFuel Tehdas, an application for converting internet trash (bad pictures, advertisement banners) into money. To use it, you...
cover image for Come to celebrate the 10th Anniversary of the Midgard Project

Come to celebrate the 10th Anniversary of the Midgard Project

May 8th 1999: The Midgard Project has finally released the first public version of Midgard Application Server Suite. The new release contains Midgard core libraries, a PHP3-based web application server for the Apache platform and the needed web-based administration tools. May 8th 2009: It's time for celebration - Midgard CMS turns ten in May! The decade of Midgard will be...
cover image for Midgard Gathering 2009 in Linköping

Midgard Gathering 2009 in Linköping

As is customary, Midgardians are again meeting in Linköping, Sweden. This time most of the focus is on Midgard 9.03 "Vinland" familiarization, and discussing what shall be done for 9.09. So far discussed: New XML-based element inclusion syntax <mgd:include /> Moving MidCOM3 administrative tools behind a mgd: URL namespace Implementing database views in MgdSchema API Initializing Midgard database in stand-alone...

Midgard and the CMS reality checklist

Via Bertrand there is a meme of CMS vendors analyzing how they are doing with CMS Watch's CMS reality checklist. Here's how Midgard 8.09 copes: 1. Our software comes with an installer program. Yes. First you install Midgard using your distributions's native package management tools, and then let datagard do the rest. It will install all necessary PEAR packages, create...
cover image for We're joining the Qaiku project

We're joining the Qaiku project

I've been beta testing the new conversation-oriented microblogging service Qaiku, and after some negotiations we today signed a cooperation agreement to join in developing the site: Qaiku is a microblogging service, focusing strongly on discussion. Microblogging differs from ordinary blogging by the length of the posts, more topical content and automatically published micromedia, such as Flickr photo stream, Audioscrobbler stream...
cover image for Let your Qaiku be heard across Twitter and Facebook

Let your Qaiku be heard across Twitter and Facebook

Qaiku is the new conversation-oriented microblog that many former Jaiku users are migrating to. While the team is still working on APIs and other features, it is already possible to pipe your qaikus to other social services like Twitter and Facebook. This blog entry will show you how. The first step is to register to, a service that can...

Microblogging: why Qaiku might do what Twitter and Brightkite didn't

Microblogging is all about conversations. About interesting ideas, and the opinions and clarifications to those. About discovering things happening around you. But to be honest, Twitter and its clones like do not do that so well. Ease of posting, and good external tools might be there, but what lacks is the possibility to have real conversations. That is where...
cover image for Free desktop and the cloud

Free desktop and the cloud

Benjamin Otte is asking on Planet GNOME why the GNOME desktop doesn't do more to integrate with the cloud. He reasons that: ...GNOME developers are not “web-enabled”. We’re a bit like Microsoft in the early 90s: We focus on the local computer and ignore the internet. which, to my experience is somewhat true. I went to GUADEC for the first...
cover image for Give the correct status code when you're down

Give the correct status code when you're down

Jaiku, the microblogging service I use, has been frustratingly often down in the last couple of days, apparently kicking off another mass migration towards Twitter and Brightkite. And they report it only in human-readable way, not in fashion a browser, a proxy or a search engine would understand it. While being down, Jaiku still responds with HTTP 200 OK: HTTP...
cover image for Search engines have an important role in Semantic Web

Search engines have an important role in Semantic Web

Thanks to the IKS project, I've spent some thought lately in how to make something practical from the concept of Semantic Web. As always, the big issue is getting the semantic information out there. In a strongly typed CMS like Midgard, many semantics can be gathered from content structure directly, but to really get there we need users to add...
cover image for Debian 5.0

Debian 5.0 "Lenny" released

Good work, Debian Project: Debian GNU/Linux 5.0 is released! As Midgard release manager Piotras wrote in his Jaiku: debian Lenny (5.0) is out. It means vinland will run on stable debian. It means we have php5-xcache in stable debian, we have solr in stable debian. It means we can think about Midgard in official 'squeeze' (debian testing) Big step indeed,...

Midgard and JCR: a look at two content repositories

I've been following the Java Content Repository story since the OSCOM conferences of old. Last week, I took a new look at it as Bertrand Delacretaz from Day held a JCR presentation in the Interactive Knowledge Consortium meeting. And you know what? Midgard and JCR resemble each other quite a lot: Both follow a repository-centric approach, where the content repository...
cover image for Starting the Interactive Knowledge project

Starting the Interactive Knowledge project

I spent this week at Salzburg Research in Austria attending the kick-off meeting of the Interactive Knowledge Consortium, a €6,5m EU-funded project to introduce semantic capabilities into open source content management systems. Nemein is participating in the project as one of the six industrial partners. For the next four years we will be working together with cool CMS companies like...
cover image for See Midgard and GeoClue in FOSDEM

See Midgard and GeoClue in FOSDEM

FOSDEM, held in Brussels on Feb 7th and 8th, is the most important free software event of the year in Europe. While I'm going to Poland instead of there this time, the event is an excellent opportunity to learn more about two projects I'm involved with: Midgard and a replicated P2P filesystem Sun Feb 8th 2009 at 16:20, Room Ferrer...

Midgard in 2008

As it was for the Zend folks, 2008 was quite a busy year also in the Midgard-land. I think the last time there was so much activity and energy in the project must've been sometime in the early days. Here are some highlights from it: Midgard 2: finally a reality The big news of 2008 was that Midgard 2, the...
cover image for Midgard: now with spam filtering

Midgard: now with spam filtering

Frustrated with how some Midgard-powered community sites were being spammed (their fault, not using CAPTCHA or registrations, I know), I decided to add a little feature to MidCOM's forum and page commenting tools: automated spam filtering. To make this happen, I hooked Midgard with the Mollom anti-spam service. When enabled, all posts sent to Midgard either on-site or using the...
cover image for Acting on HTTP errors

Acting on HTTP errors

Since Midgard does now Python nicely alongside PHP, some Midgardians have recently been looking at Django as an optional web framework to use with Midgard's replicated storage system. Looking at other systems than yours every now and then is great, as you can get some ideas. First such idea to come to Midgard from the Django world is error interceptors,...
cover image for goes Ragnaroek goes Ragnaroek, the community site for Nokia's mobile Linux environment has this week been upgraded to 8.09.2 Ragnaroek, the much faster and long-term supported version of the Midgard framework. Thanks to Niels and Piotras for working with me on this! in October, I spent quite a bit of time optimizing this release, shaving off an estimated 60-70% of queries through some...
cover image for Nemein is going to Ubuntu Server

Nemein is going to Ubuntu Server

At Nemein we do maintenance for quite a few servers of our customers. While some customers have their own Linux distribution preference - usually RHEL - in most cases we have a say what distribution runs their servers. So far this has been debian, but now we're going for Ubuntu Server. The reasons for this are quite simple: Ubuntu follows...
cover image for Midgard Gathering 2008

Midgard Gathering 2008

The second Midgard Gathering of 2008 is this weekend in Otaniemi, Espoo. Happened so far: Thursday Sebastian Bergmann gave us a training session on PHP software testing, as as result we now have over 1000 unit tests for the MgdSchema API for PHP. We also looked at Selenium for acceptance testing and deployed a continuous integration server for MidCOM 3...

Midgard: benefits of synchronized releases

From the Midgard Project: The Midgard Project switched to a new synchronized release model with the 8.09 "Ragnaroek LTS" release. Synchronized release model means that a major release of Midgard will happen every six months, tuned to be part of the larger Linux software ecosystem as described by Mark Shuttleworth: WHAT IF you knew that the next long-term supported releases...

Midgard and content filtering

Gadgetopia has a post on how CMS's should provide an API for content filtering. Since Midgard is persistent storage API first, and CMS only second we obviously have nice APIs for doing exactly this. In this case we're running a query and checking if a different user is allowed to see something, as specified by Gadgetopia: Hey, CMS, I have...
cover image for Some talking points for the Midgard Gathering

Some talking points for the Midgard Gathering

Since the Midgard Gathering is next week, I thought it would be time to write down some conversation starters related to it. Clear vision One important thing we need to settle on is a clear vision for Midgard. It should be a vision everybody in the community can agree with, and a vision that will benefit the user base. I...
cover image for On Vikings and Free Software

On Vikings and Free Software

Harmaasudet, the living history group we started in mid-90s, and the reason why I originally got into software, recently migrated back into the Midgard platform. Their webmaster and Nemein alumnus Heikki asked me for some history of Midgard, and this is what I wrote: Well, original Midgard was completely programmed in order to run the Grey Wolves site. We hacked...
cover image for LinkedIn Applications: automatic data into your resume

LinkedIn Applications: automatic data into your resume

LinkedIn, the popular resume maintenance tool just got a little smarter: they added an applications catalogue that can make your profile there more dynamic. This is good as then potential business partners can find out more about myself from a single source, and I need to do less work to keep it up-to-date. I immediately added three apps, displaying my...
cover image for Midgard2 at FSCONS: Your data, everywhere

Midgard2 at FSCONS: Your data, everywhere

Last weekend we went to the Free Society Conference and Nordic Summit in Gothenburg to talk a bit about the new direction Midgard has been taking: making it a general replicated persistent storage library for multiple programming languages. The CMS itself is just an application using the library. The basic idea is that the cloud is a trap that will...
cover image for Real-world example of a free software project handover

Real-world example of a free software project handover

I wrote earlier how a free software project never stops as long as there are people interested in it. Looking at Midgard's Ohloh analysis, I found a nice example: Can you see a change when former MidCOM lead developer Torben withdrew from the project?

Learn more about Midgard in FSCONS

FSCONS is the main Nordic conference on free software and free culture, held on October 24th - 26th in Gothenburg, Sweden. The schedule has lots of interesting stuff, including Wikipedia, Embedded Qt, OpenStreetMap and Jabber. But in addition, there will be two sessions on Midgard: Midgard by Henri Bergius: I will be talking about this long-term open source CMS project...

Long-Term Support for Midgard: Ragnaroek is here!

Midgard CMS switched to a synchronized release model this summer, and the first fruit of it is Midgard 8.09 Ragnaroek, a Long-Term Supported release launched last week: Ragnaroek LTS is a Long Term Support version of Midgard for which bug fixes and minor feature improvements will be supplied by the Midgard community for several years. It is recommended that all...

Where will desktop applications and web services meet?

Midgard follows Ubuntu's synchronized release schedule, and releases packages for that platform, but otherwise we have little to do with the distribution. Still, I found the following in Mark Shuttleworth's Jaunty Jackalope announcement interesting: Another goal is the the blurring of web services and desktop applications. "Is it a deer? Is it a bunny? Or is it a weblication -...
cover image for Ragnaroek is coming

Ragnaroek is coming

With beta2 out today, the new Midgard 8.09, or "Ragnaroek LTS" is finally coming. PHP4 has been dropped, many optimizations made, and now that Prototype has been dropped in favor of jQuery, I think we will finally be able to live with it as the Long Term Support release. But before Ragnaroek is stable a lot of testing has to...
cover image for Freedom Fry on GNU's 25th anniversary

Freedom Fry on GNU's 25th anniversary

The Free Software Foundation's GNU project turned 25 last week, and the English humorist Stephen Fry made a video to commemorate it: Benjamin Mako Hill posted some thoughts on how the first generation of free software developers has grown: Certainly, GNU has matured and accomplished wonderful things in last quarter-century. More importantly perhaps, it's produced wonderful progeny. It has spawned...
cover image for MidCOM 3 and context injectors

MidCOM 3 and context injectors

I know, according to roadmap we all should be now focusing in hammering out bugs in Midgard 8.09, or as we call it, "Ragnaroek" instead of working on MidCOM 3. But Tero had a specific problem he needed to solve, and I wanted to ensure it was done right. And so I ended up adding support for context injectors into...

Some thoughts on green programming, PHP, Midgard and simplicity

Rasmus Lerdorf's excellent talk on PHP and simplicity in FrOSCon introduced me to concept of green programming. To quote the Green Programming blog: Just like we should aspire to use renewable energy sources to help the health of the planet, we should also use reusable software elements to create robust, healthy code for our customers. Eco-friendly practices might be thought...
cover image for Midgard to go Vala?

Midgard to go Vala?

Cross-posting this to Planet GNOME, as it is sure to be interesting to the community there, especially as Midgard is becoming much more than just CMS: There is a project in works by me to rewrite Midgard’s core engine from plain C to Vala. Midgard 8.09’s code is taking huge use of GObject infrastructure and Vala is so good in...
cover image for Part-time Istanbullu

Part-time Istanbullu

A thousand years ago, men from my lands traveled here in search of opportunities and adventure. Now, due to intercontinental relationships and working permits, I follow their footsteps. While Istanbul didn't score perfectly in Monocle's Quality of Life index, I still find it a quite appealing place for a web worker. The lifestyle is more relaxed than in the north,...
cover image for Some notes from FrOSCon 2008

Some notes from FrOSCon 2008

I'm again in the FrOSCon conference in Sankt Augustin, having found the conference last time reasonably big, but relaxed. I will be giving my GeoClue talk again on Sunday (16:30 in HS5). Here are some notes from the conference: PHP 5.3 is going to have alpha2 next week. Namespaces could be nice in MidCOM, but I wonder how well they...
cover image for Using Yahoo! Fire Eagle with Midgard

Using Yahoo! Fire Eagle with Midgard

Yahoo! Fire Eagle, kind of "GeoClue for the Web" was released last week. It acts as a central hub collection position information from services like Plazes and Dopplr, and with a simple PHP script, Jaiku. Services needing user's location can then ask it from Fire Eagle instead of having to support all the services separately. Midgard's positioning framework has been...
cover image for Finding out available MidCOM routes

Finding out available MidCOM routes

MidCOM is a PHP MVC framework where you create a site by building a tree structure and assigning components for the various folders. Each component is its own PHP application that can handle all URL requests under that folder using a set of configured routes. In addition to making normal requests to the various routes available, routes provided by other...

Feature branches in Midgard development with git

The release synchronicity plan was accepted, and therefore Midgard will be switching from SVN to git, and the concept of feature branches. With feature branches the idea is that each feature or bug fix is being developed in its own branch, and only landed to trunk (master in git terminology) when ready. This keeps the trunk clean and easy to...
cover image for Neutron Protocol: Separating UI from the CMS

Neutron Protocol: Separating UI from the CMS

At the moment the prevailing wisdom is that each CMS should have its own user interface, and that user interface should be web-based. But there is also another way: separating the user interface from the CMS using a CMS-neutral protocol called Neutron. According to Sir Tim Berners-Lee, the earliest web browser was also an editor. And the late 90s Netscape...
cover image for Midgard and synchronized releases

Midgard and synchronized releases

I've posted about new directions needed for Midgard's release coordination and marketing. After some discussion, I think it is time to vote and make decisions. The proposal is to switch to synchronized releases. This would make development more predictable, marketing efforts clearer and more focused, and align us with the release synchronicity movement implemented in related projects like GNOME and...

Conferences this fall

Looks like 2008 is forming up to be a quite busy conference year, at least looking at my Dopplr page. Here are the events I'm speaking (or performing as is the case with Haedong Kumdo) in this fall: Aug 2nd: Haedong Kumdo Seminar in Mayo, Ireland: part of the Finnish team Aug 9th - 10th: aKademy in Sint-Katelijne-Waver, Belgium: Location-aware...
cover image for New profile pages on

New profile pages on has been having user profile pages for a while, and now it was time to overhaul their visual design. Here is the new design: In addition to new visuals, the profile page also now displays automatically collected data like user's latest blogs and favourited news items, and allows entering of new data like IRC nickname and multiple email addresses....
cover image for Midgard2: Future in the clouds

Midgard2: Future in the clouds

There has been quite a lot of talk about cloud computing lately. When we had the previous MidCOM3 coding sprint we discussed over beer how Midgard2 could fit into the cloud. As replication has been a core Midgard feature since the early days, that was the obvious angle to start looking from. The way I see Midgard2 in the cloud...
cover image for Midgard releases and marketing

Midgard releases and marketing

The Coccinella IM project published an interesting entry on potential marketing impact of synchronized software releases: How can we copy the marketing successes of Apple and Microsoft to open-source? Some may suggest we need someone like Steve Jobs, whilst others would like to spend more money on launch events. They are both wrong! Trying to copy Steve Jobs or Microsoft's...
cover image for MidCOM 3 and built-in WebDAV

MidCOM 3 and built-in WebDAV

There has been some discussion about the deployment model for the upcoming MidCOM 3 MVC framework for PHP and Midgard 2. My suggestion was to enable WebDAV on all MidCOM servers so content structures, configurations and templates could be moved between them with simple drag-and-drop. This week we're having a MidCOM 3 coding sprint, and now we can already mount...

Big Midgard release day

Today has been an important day for the Midgard Project - development versions of both active Midgard branches were launched: Midgard 1.9.0alpha1 "White Nights" released Midgard 1.9 has been designed as a version easing the transition from Midgard 1.x to Midgard 2. To aid developers, the release includes both the classic Midgard APIs that are now deprecated, and the new...
cover image for Document locking hits MidCOM 2.8

Document locking hits MidCOM 2.8

Latest MidCOM 2.8 has a feature that has been resurrected from earlier in the series: document locking. The point of locking is to prevent accidental simultaneous editing of a document by multiple users. When user starts editing a document via datamanager-powered form, the document will be marked as locked for that user. Other users accessing the document will see a...
cover image for Midgard 2: more than just PHP, more than just CMS

Midgard 2: more than just PHP, more than just CMS

As Midgard 2 is already in alpha stage, I though it would be good to update the architecture diagram to showcase the new Midgard structure. This includes multiple language bindings, MidCOM3, D-Bus interprocess communications and other things. With these changes Midgard 2 can function either as a full-fledged CMS, a PHP MVC framework, or a persistent storage framework for multiple...

SQL-level debugging with Midgard

We're currently in the stage where two branches of Midgard: 1.9 and 2.0 are both in active development. Midgard 2 is the fully legacy-free next generation of Midgard, and 1.9 is a transitional release that provides both Midgard 2 and Midgard 1 APIs to ease migration. The active development status means that bugs are bound to be found in them....
cover image for Midgard 2: Finally legacy-free

Midgard 2: Finally legacy-free

While watching Everaldo work on the upcoming Midgard C# bindings, I decided to try running Midgard 2 with lighttpd. After quite a lot of struggling to get latest SVN checkout to compile on my mac, and some playing with lighty rewrite rules, I was greeted with a working MidCOM 3 page: So, after such a long time, Midgard 2 is...

GitHub for MidCOM 3 developers

Yesterday Arttu Manninen posted notes on how to use git for MidCOM 3 development. In addition to the usage he described, the other way to work on the next generation PHP framework for Midgard is using the GitHub service. Rails on the Run has quite good tutorial. Technorati Tags: midcom, midgard, git, github

Interprocess communications in Midgard: D-Bus comes to the web

In his recent blog post, Piotr Pokora showed how the the D-Bus API will work in Midgard 2. D-Bus is an interprocess communications system that is used heavily in modern Linux desktops like GNOME and KDE. With Midgard, the same system now becomes available for PHP and web applications: midgard_python "service": import dbus.mainloop.glib import _midgard as midgard
cover image for Beyond Google Maps: Mapstraction is a good starting point

Beyond Google Maps: Mapstraction is a good starting point

A List Apart 256 has a very interesting article on Taking Control of Your Maps, explaining how to provide richer and more customized web map solutions using tools like OpenLayers and Mapnik, and the free data provided by OpenStreetMap: For the practical developer who wants to add geospatial information to a site or application, the Google Maps API has been...

MidCOM 3 at a glance

This document has been written as a quick Midgardized version of the nice “Django at a glance” tutorial, in order to explain how the new and upcoming MidCOM 3 framework works. In addition publishing this as a blog post, this document will be maintained in the MidCOM 3 version control tree. MidCOM 3 has been designed to be an extensible...
cover image for Semantic web is here: Yahoo! and microformats

Semantic web is here: Yahoo! and microformats

Semantic web, the platform that could enable new businesses to rival the likes of Google has for a long time been a distant promise. Much of this has been because the standardization bodies have focused on too difficult and impractical technologies instead of building it on top of existing web implementations. Microformats are a more pragmatic approach: by using simple...
cover image for Some Midgard roadmapping

Some Midgard roadmapping

There has been some discussion on how the different items in the Midgard roadmap fit together. Here is my company's view on how we see ourselves proceeding. Baseline: Midgard 1.8, MidCOM 2.8 and PHP 5.2 At least in our company we're trying to consolidate all customers to these version numbers. MidCOM 2.8 is a very capable (if heavy) platform that...
cover image for Yahoo! Fire Eagle knows where my phone moves

Yahoo! Fire Eagle knows where my phone moves

I've been a happy user of the Jaiku S60 client for a while now. It not only allows me to coordinate things with my friends on the move, but also positions my phone using cell IDs. So far I've used the WiFi positioning based Plazes client for updating location on my site, but the thought of also using Jaiku has...

XMPP publish/subscribe for Midgard and Ajatus replication

On the side of FOSDEM we went today to the XMPP devcon held here in Brussels. In there we started formulating our ideas of XMPP publish/subscribe (XEP-0060) based replication for both Midgard and Ajatus.
cover image for Midgard developers in Linköping

Midgard developers in Linköping

Last weekend a group of European Midgard developers gathered to Linköping, Sweden for the Midgard developer meeting of winter 2008. Over the last four years Linköping seems to have established itself as the place to hold the winter meeting, with summer meetings differing in place. In 2006 we went to Poznan, Poland and in 2007 to Otaniemi, Finland. The meeting...
cover image for Maemo and Midgard go well together

Maemo and Midgard go well together

We're in Linköping, Sweden for the Midgard developer meeting, and I suddenly realised the Midgard community really likes Nokia's internet tablets. Not only does run on Midgard (earlier this week "sideported" to MidCOM 2.8), but many Midgardians are also active Tableteers. So no wonder over the course of the meeting we saw the maemo application manager display an interesting...
cover image for Conferences this spring

Conferences this spring

While last autumn was more quiet, this spring seems to have a number of events that I'm going to: Feb 15th - 17th: Midgard developer meeting in Linköping, Sweden. Lots of hacking and talking about Midgard 2 and MidCOM 3 Feb 22nd - 24th: FOSDEM in Brussels, Belgium. I'm going for Open Business Organisations of Europe (OBOOE) meeting on behalf...
cover image for Some plans for MidCOM 3

Some plans for MidCOM 3

MidCOM is the PHP framework used for building sites with Midgard CMS. Over years it has accumulated lots of components and features, and currently weights around half million lines of code. At the same time the design, while being well designed, suffers from having to work around lots of limitations in PHP4 and the old Midgard API. In preparation for...
cover image for Consolidating your online identity

Consolidating your online identity

If you're using multiple social web services, you will also have multiple online identities. For creating a comprehensive online persona, consolidation between the various profiles would be useful. To aid in this, and to enable social network portability, Google has started aggregating social networking data marked up in the XFN and rel=me microformats to build a comprehensive social graph. Having...
cover image for The Nemein team on a map

The Nemein team on a map

We're in the process of publishing the new corporate website today. While our web needs are actually quite simple, the site includes some nice features. As we're involved in GeoCMS development, one such feature is the active team map: The OpenStreetMap gets automatically updated as we move around. This doesn't however mean that we've GPS collared our employees, but instead...
cover image for Sun acquires MySQL

Sun acquires MySQL

MySQL, the world’s most popular open source database has today been bought by Sun Microsystems. Congratulations to Monty and the rest of the team! Billion dollars, quite a deal in the free software space.
cover image for TKK goes Midgard

TKK goes Midgard

Helsinki University of Technology (TKK), the oldest university of technology in Finland launched their new site today:
cover image for Calculating attention with Midgard

Calculating attention with Midgard

Last week I was pondering how to add attention profiling support to the Midgard framework, and now it is there. Midgard is able to gather user’s interests and attention from multiple sources: listened trackssocial news favoriting...and other imported APML sources What remains to be seen is how this will be used to make websites smarter and more useful...
cover image for Putting Attention to Midgard

Putting Attention to Midgard

Information overload is becoming a major issue, and more sophisticated solutions will be needed to tackle it. With Midgard we’ve already taken some steps into this space by creating tools for calculating newsworthiness of stories in order to present only relevant ones to a user.
cover image for Embedding simple PHP scripts in Midgard

Embedding simple PHP scripts in Midgard

MidCOM, the PHP framework for Midgard CMS has over hundred components for various purposes ranging from blogging to waste management statistics. But even with all of them it is sometimes useful to embed some custom PHP scripts to a site. The old method of doing this was using a custom style for a folder and including PHP files there, which...
cover image for Site structure planning with WriteMaps

Site structure planning with WriteMaps is a handy web-based tool for planning website structures in a mind map -like format. The tool allows for storage and working on the designs in collaborative fashion.
cover image for Yubikey - simple approach to authentication tokens

Yubikey - simple approach to authentication tokens

Simon Josefsson was giving a talk on OpenID in the Scandinavian Free Software Conference. OpenID is a lightweight single sign-on and auto-registration system for web applications. In concept it is quite similar to Shibboleth but easier to deploy.
cover image for VectorMagic: convert bitmaps to vector online

VectorMagic: convert bitmaps to vector online

VectorMagic from Stanford University Artificial Intelligence Laboratory is a pretty interesting tool. You upload a bitmap image, give a few parameters about it, and you get a vectorized version back.
cover image for MidCOM content cache rides again

MidCOM content cache rides again

Midgard is quite a huge framework, and so caching is needed to keep things efficient. To that effect, MidCOM 2.4 in 2005 added a major feature of caching generated pages until they needed reconstructing.
cover image for Midgard and the Law of Karma

Midgard and the Law of Karma

Karma: The total effect of a person’s actions and conduct during the successive phases of his existence, regarded as determining his next incarnation. (wiktionary)
cover image for Asgard welcome page just got useful

Asgard welcome page just got useful

Asgard is the new administrative interface for Midgard we’ve been working on for the 1.9 release. Today its welcome page just got a lot more useful as we added a way of listing recently modified objects of any type and performing mass actions on them:

Midgard and HTML Purifier

Inspired by Kore Nordmann’s post Why are you using BBcodes?, Midgard now has integrated support for the HTML Purifier library. From the HTML Purifier site:
cover image for Undeletion in Midgard

Undeletion in Midgard

A trash can feature for Midgard was discussed originally in the 2006 Komorniki Midgard developer meeting, and the APIs for it made their way into the 1.8.0 release. Yesterday I added trash can browsing and undeletion support into Asgard, the new administrative interface.
cover image for Midgard does the Tango

Midgard does the Tango

As initially instigated by Tuomas and later prepared by Joonas, Midgard has now switched to the Tango icons and colors. This helps to modernize the look-and-feel and make it more consistent across components.
cover image for New user management tool for Midgard

New user management tool for Midgard

In past there have been two types of user management tools for Midgard: the built-in ones that have supplied lists of users, and then custom-made ones. With former the problem has been that when you have thousands of users the HTML views become slow to load and near impossible to use.
cover image for Sometimes a thumbs down is needed

Sometimes a thumbs down is needed

Quim wrote earlier on why red hearts matter in maemo news. The red hearts are important as they bring important news items forward in the maemo social news aggregator. But sometimes there are also news items that are not at all relevant to the maemo community. To solve the problem with them we’ve now added a burying option:

jQuery and CouchDB

CouchDB is a very interesting evolution in open source data storage: an ad-hoc document database with replication support. I heard the first time about CouchDB when Jan Lehnardt was presenting it in FrOSCon a month ago, and became immediately very interested.

Web CMSs: what does Midgard do?

Column Two has an interesting post titled What does a web CMS do? with a table listing features that are integral to a web CMS, and what can be handled separately.
cover image for Position editing widget for Midgard

Position editing widget for Midgard

Midgard has had quite cool GeoCMS features for a while now: any objects can be positioned and retrieved via position, and maps are easy to display anywhere. We also can use cool services like Plazes for automatically positioning new content created by users.
cover image for Creation mode for Midgard's chooser widget

Creation mode for Midgard's chooser widget

Midgard’s datamanager2 form handling library has a very nice jQuery-powered chooser widget which enables search-based selections. This is often used in situations where the data set user is choosing from is large, as is often the case when selecting persons from a large organization for instance.
cover image for Some notes from MidCOM performance workshop

Some notes from MidCOM performance workshop

Today we’ve been hacking in the woods as part of the MidCOM Performance Sprint. Together with yesterday’s bug day this has resulted in quite a few commits.
cover image for Midgard supports OpenID

Midgard supports OpenID

Inspired by a talk in FrOSCon on Sunday, I went and implemented OpenID support into Midgard on the flight back. OpenID is a quite cool system for cross-site single sign-on and auto-registration. With OpenID your user identity is tied to a web address you control, for example Every time I want to log in to an OpenID-enabled website, that...
cover image for Join the MidCOM Performance Sprint on August 30th

Join the MidCOM Performance Sprint on August 30th

MidCOM is the PHP-level framework of Midgard CMS. With its nearly 500K lines of code, it every now and then is good to sit down and focus on performance optimization.
cover image for Maemo Social News launched

Maemo Social News launched

Today has been a big day for not only was the Maemo Community Calendar released for beta testing, but we also launched the new Social News section on the site. Social news is an area where users can easily with one glance see all interesting things happening at the moment in the maemo world.
cover image for Nicer code editing in Asgard

Nicer code editing in Asgard

Asgard is the new administrative interface being built for Midgard. The main objective is to get rid of the legacies of Aegir and SpiderAdmin by replacing them with a smart system that auto-generates admin UIs for all installed MgdSchema types. But small improvements also count, and so we decided to deploy CodePress for code editing:
cover image for Calculating news item relevance

Calculating news item relevance

I’ve started working on a new Social News section for The idea of this area is to provide a centralized view on what is happening at the moment in the maemo community.

Maps in Midgard, abstracted

We had some discussion about what features make CMS a GeoCMS with GeoPress and Drupal geo developers in State of the Map, and a list should be published soon. Based on our discussions I decided that Midgard should also make it easy to actually display positioned data on maps.
cover image for Midgard and international URL transliteration

Midgard and international URL transliteration

Midgard has been an early supporter of internationalization in open source CMSs, adding UTF-8 support already in 1999. Today I however got an innocent request: One thing to be considered is i18n and Unicode support, since the community wiki is the perfect place to host translated docs. I was quite confident that things would work out OK, but knew that...
cover image for Making Midgard Wiki easier

Making Midgard Wiki easier

Since started using the Midgard wiki component there has been discussion on whether it is feature-complete or easy enough to use. Main complaints have been about the “latest changes” view not supporting sub-wikis and missing Markdown documentation.

Midgard uses Trac now

We’ve just switched Midgard and MidCOM to use the Trac project infrastructure. Seems very nice, especially as it uses Midgard site accounts for authentication.

Welcome to the new server

My blog is now running on a virtual Debian box. It should provide much faster response times and better stability for my blog than the older solution. I will be sharing the server with Arttu from

Midgard Weekly Summary #74: May 11th 2007

Asgard reborn. Work has started to build a new administrative interface for Midgard. Asgard is completely powered by Midgard’s new reflection APIs and automatically supports managing all MgdSchema objects installed on a server
cover image for Building a new admin interface for Midgard

Building a new admin interface for Midgard

We had a 19-hour hacking session last Friday with Arttu, Rambo and Jerry to build new “general Midgard admin UI” targeted at replacing Aegir and Spider Admin with something that follows both MgdSchema and MidCOM DBA rules and APIs, and so is compatible with Midgard 2.

Midgard Weekly Summary #73: April 27th 2007

This week has been busy with Midgard-related releases. The MidCOM 2.8 and Midgard 1.8.3 combo is very enticing, as it enables trying out the new replication system.

Updates to the Midgard roadmap

There has been discussion on some changes to the near future roadmap of Midgard and MidCOM. Here are the proposed changes in nutshell:
cover image for More work on Midgard's replication service

More work on Midgard's replication service

Midgard’s new replication service has been under work since January. Now the work is finally starting to bear fruit, as we’re doing the first tests with real production data.

Midgard Weekly Summary #71: April 5th 2007

Midgard developer meeting on June 1st - 3rd. The next Midgard developer meeting will be held in Helsinki University of Technology campus. Both developers and users are most welcome to join the event! There have been some thoughts of combining it with a Midgard seminar during friday the 1st.

The old offline vs. online debate

The rise of web applications like Gmail and Basecamp is bringing the good old offline vs. online debate again into picture.

Bunch of Midgard tutorials appearing

Arttu Manninen upgraded his blog to MidCOM 2.6 and is now on a blogging frenzy together with his padawan Jaakko Tepponen. Lots of good snippets of information about Midgard usage are appearing…

Midgard Weekly Summary #70: March 23rd 2007

I’m back from the arctic hunting trip. One week away from even the cell phone network felt really good and the aurora borealis were simply gorgeous. Now it is time to again catch up with happenings in the Midgard community…
cover image for Midgard and the Finnish parliamentary election

Midgard and the Finnish parliamentary election

Finnish parliamentary election of 2007 was last Sunday. Unfortunately my candidate, Mikko Rauhala from the Liberal party and of Electronic Frontier Finland fame didn’t make it.

Midgard Weekly Summary #69: March 8th 2007

This week’s MWS is a bit thin because of time constraints. This means some interesting things like MidCOM’s new style editor will be left to MWS #70.

Midgard and geotagging via email

Midgard is becoming smarter about tags. Now it not only supports tagging any objects and making tags contextual, but also machine tags:

For a collaborative MWS

MWS, for those who don’t remember it, was a Midgard Weekly Summary. It was published every week from mid-1999 to sometime in 2001, first by me and later by Ken Pooley from the Sewanee University.
cover image for This bunny talks Midgard

This bunny talks Midgard

When this bunny joined our company, I wrote that the plan was to make our CRM system talk to the Nabaztag. Today the first step was taken by making a Nabaztag notifier plugin for the org.openpsa.notifications library.
cover image for Midgard and Flickr

Midgard and Flickr

While my site is publishing a lot of photos, I’m using Flickr as my central photo storage location. The reason for this is simple:

Quick and dirty MidCOM caching with Cache_Lite

If you want to cache your MidCOM site, but are on a chrooted environment and so can’t run Squid, one option is to use the Cache_Lite PEAR package. To do this, you must have access to the page elements used on your site.
cover image for Welcome to my new blog

Welcome to my new blog

This is the latest iteration of my home on the web. I’ve had a website since sometime in 1994, and under this same “iki” address since 2001. This latest design was actually made in spring 2006 after our US trip, but has been waiting in mothballs for the right moment.

Looking for a junior PHP/Midgard consultant

Nemein delivers browser based free software solutions. Our clients include some of the leading advertisement agencies in Finland as well as major private and public companies. Nemein is looking for a junior consultant to join our Midgard deployment team.
cover image for Midgard developer meeting, winter 2007

Midgard developer meeting, winter 2007

This winter's Midgard meeting has been a bit different than the usual fare. Instead of running the session only in one place, the meeting already started last monday with work on the new replication framework and a dinner with Helsinki-based Midgardians. Then after the week spent on replication we packed our team to a Land Rover and drove to Linköping...

Midgard replication service starts to shape up

Midgard has had replication capability since late 1999. First replication was handled with the Repligard command-line tool. Then in 2005 we got the Java-based Exorcist tool that was able to do cross-CMS replication. But both of them suffered from being slightly external of the normal Midgard environment. With Midgard 1.8.1 there is now an integrated Midgard Replicator system that provides...

Getting started with Microformats

Microformats are a cool way of making web content machine-readable. Since the formats rely on classes, they also ensure the content has all the hooks needed for good CSS design. Microformats can be understood by aggregators like edgeio and consumed with software like Firefox 3 and the Tails extension for Firefox 2. We have been introducing Microformats to all sites...

Resource bookings with Midgard

Resource booking component net.nemein.reservations has been finally converted to MidCOM 2.6 technology. The component allows users to browse available resources, their reservation calendar and make new bookings. Default usage scenario for the component was meeting room bookings, but the component has been designed so that adding other types of resources like cars or cabins is just a matter of editing...

Nokia's new N800 Linux Tablet

N800, the successor to Nokia’s 770 Maemo-powered Linux internet tablet was apparently unleashed yesterday by CompUSA. While Nokia’s site is still quiet on the new device, there are already unboxing pictures out there. I’ve been using my 770 quite actively as a mobile internet terminal since I got it in February last year. While the software is occasionally buggy, it...

Midgard in 2007: the year of the web developer

2006 is about to end and the blogosphere is filling up with wish lists and plans for the coming year. Before I go to Saint Petersburg for the new year celebrations I wanted to write something about how I see 2007 for the Midgard CMS project. Software-wise, 2005 and 2006 have been good years for Midgard. MidCOM established itself as...

What is happening in MidCOM 2.7

MidCOM 2.6.0 has been out for a while, with 2.6.1 scheduled for today. While that branch has now been stabilized for bug fixes and small tweaks only, there is work going on in the SVN trunk, or what is to become MidCOM 2.7.
cover image for More photo backlog

More photo backlog

Now, this one has been on my TODO list for a while:
cover image for Clearing the photo backlog

Clearing the photo backlog

Like in some earlier situations, I’ve again gotten a bit backlogged with publishing my photos. In any case, here are some new sets on Flickr:
cover image for Solving logistics of Mamona

Solving logistics of Mamona

I was discussing this IT problem at ESEEI today: Mamona, or Castor oil plant is an oil-producing plant that can be grown in relatively dry areas. Farmers of dry areas in the state of Paraná, Brazil are generally relatively poor. Petrobras has a process where Mamona seeds can be used to produce biodiesel fuel. The IT problem related to this...
cover image for Trying out Maemo Blog

Trying out Maemo Blog

As reported by Inz, Maemo Blog seems to work properly with Midgard CMS now. Cool!

State of the art

I’ve today upgraded the Midgard development environment on my MacBook to a more reasonable software setup: will run Plone

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.

Contact management in semantic web

One big idea we’ve had with OpenPsa has been supporting various standards and Microformats to make the user experience richer.
cover image for Be liberal with input, strict with output

Be liberal with input, strict with output

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

Midgard 2 time

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.

Maemo is migrating to Midgard

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

How much is your Midgard worth?

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.

Managing Changes in Collaborative Innovation Networks

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:

Talk about response times 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.

Midgard's new tagging library

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.
cover image for Optimizing the latest MidCOM

Optimizing the latest MidCOM

I drove from Turku to Helsinki early in the morning with a Land Rover that didn’t have headlights. Since then have been hunting performance issues in latest beta of MidCOM - the component architecture used by Midgard CMS.
cover image for Today is the OneWebDay

Today is the OneWebDay

September 22nd is the OneWebDay. It is a day when users of the World Wide Web are encouraged to show how the Internet affects their lives. The purpose of the event is to globally celebrate online life.
cover image for New feed aggregator for Midgard

New feed aggregator for Midgard

Midgard CMS has had an integrated RSS and Atom aggregator for several years. It has been used for both bringing simple news feeds to portal sites, and for Planet-like large-scale blog aggregation.
cover image for New component selection view for MidCOM

New component selection view for MidCOM

MidCOM, the component framework used in Midgard CMS is rapidly approaching 2.6 stable, and a lot of minor improvements are trickling in. These include a drag-and-drop way to reorganize navigation items and a new view listing MidCOM contributors.
cover image for New login screen for Midgard

New login screen for Midgard

I’ve just committed the new login screen styling for Midgard CMS into the SVN repository.
cover image for We need public access to Geodata in Europe

We need public access to Geodata in Europe

Public Geo Data is sending an open letter to the European council of environment ministers to request that the access to geographical databases would be opened to the public. While some data is open and available, we’re still far behind the US in this issue.
cover image for Return of the Moblog

Return of the Moblog

My moblog hasn’t been updated since GUADEC last July, and some relatives have already been asking about it. The reason why I haven’t updated is that I switched to the Nokia N90 camera phone, and the email format it uses makes Mail_mimeDecode fail.

Page styling and Datamanager schemas

Most Midgard components use a tool called Datamanager to abstract data storage and content editing. With Datamanager, site builders can define multiple schemas to be used at different areas or for different page types, each with a different set of content and editing fields.

Benefiting from the GLib core

Midgard CMS differs architecturally quite much from the typical open source CMSs in that its core is written in C on top of the GLib library.
cover image for Switching to Intel MacBook

Switching to Intel MacBook

Since we have some new members in the team, it was time to grab some new Intel MacBooks. I also decided to switch and recycle my 12” PowerBook to another team member.

OpenPsa sources moved to Subversion

OpenPsa2 source code has now been moved to the Subversion repository used by MidCOM. Since OpenPsa is now a pure MidCOM component system this should aid in cross-project collaboration.
cover image for MidCOM on PHP5, finally

MidCOM on PHP5, finally

Thanks to the efforts by Solt and Piotras, we finally have the MidCOM, the Midgard Component Framework running on top of PHP 5.1.

Big changes in the MidCOM project

Late July sees a lot of changes in the Midgard Components Framework project. Since its appearance in March 2003, MidCOM has established itself as the standard way of building and managing Midgard CMS sites.

Help GNOME choose its CMS

The GNOME desktop project from which Midgard also gets a bunch of libraries is now choosing a CMS for its website.
cover image for Back on duty

Back on duty

Summer holiday is now over, and as Tigert put it, we made it to Gibraltar.
cover image for Synchronization and the Free Software Desktop in GUADEC

Synchronization and the Free Software Desktop in GUADEC

We held the Feeds, Synchronization and the Free Software Desktop talk with Tigert today. Despite the Fluendo party the night before, there was a quite good crowd in the old Museu Balaguer library.
cover image for The Midgard Position

The Midgard Position

I’ve committed the first working version of Midgard’s geopositioning system into CVS today. The library makes it really easy to add location information to users and objects, and to find things that are close to each other.
cover image for Changing schemas on the fly

Changing schemas on the fly

MidCOM datamanager allows you to have multiple page types, or schemas used in a folder. The schemas can provide different editable fields and different styling.
cover image for Midgard Developer Meeting in Komorniki

Midgard Developer Meeting in Komorniki

We spent the last two days driving from Helsinki to Poznan, Poland for the Midgard Developer Meeting. This proved to be a good field test for Maemo 2.0 as we needed to instruct people back home about some project details using Google Talk.
cover image for Navigation items and redirection

Navigation items and redirection

MidCOM has a centralized system for serving navigation information called Navigation Access Point. Typically the navigation UIs on Midgard-powered sites are dynamically constructed using this information.
cover image for Make your site Growl

Make your site Growl

Growl is a very nice notification system for Mac OS X. It displays bubble-styled messages on the screen about various events like new instant messages or emails. We were looking for a new user interface messaging system for the Midgard web toolkit and decided to model it based on the Growl concept:
cover image for MidCOM's new ACL editor released

MidCOM's new ACL editor released

MidCOM has had a comprehensive Access Control Lists system since last summer, but its usage has been hindered by lack of an easy management tool. That is now fixed with the first stable release of the Midgard ACL editor.
cover image for Midgard2 is becoming reality

Midgard2 is becoming reality

Piotras remarked that the process started in East European Midgard Developer Meeting three years ago to build a Midgard 2 on top of the glib library is now a reality.
cover image for Midgard's new toolbar

Midgard's new toolbar

Arttu and others at the office are now tuning the Midgard UI with these goals
cover image for Midgard for Mac

Midgard for Mac

Thanks to Jyrki Wahlstedt there is now a new way to install Midgard CMS on a Mac: DarwinPorts.
cover image for Thinking about GUADEC

Thinking about GUADEC

This year’s GUADEC will be held in Catalonia on Jun 24th - 30th. We’ve left a proposal with Tuomas, so I hope I will be able to attend.
cover image for From mailing lists to forums

From mailing lists to forums

The Midgard mailing lists have been offline for a while because their hosting provider has been having some issues. To fix the problem we decided to move from regular email lists to an online forum powered by the net.nemein.discussion component.

Performance tips for MidCOM 2.5

We just ported a portal containing tens of thousands of documents from Abako Stato to Midgard CMS. Content conversion was done using Exorcist as usual.

MidCOM PEAR channel upgraded

The MidCOM PEAR channel has now been upgraded to the Chiara_PEAR_Server version of PEAR channel serving. The upgrade went mostly painlessly following Greg Beaver’s instructions.
cover image for In EclipseCon 2006

In EclipseCon 2006

The Midgard booth is now all set up in EclipseCon 2006 Open Source Pavilion. If you read this, feel free to drop in to booth 416 and enjoy an M candy and some Midgard talk.
cover image for Why are we going to EclipseCon

Why are we going to EclipseCon

There is a post on Tapestry plug-in weblog analyzing the participants of the EclipseCon Open Source Pavilion. The post is a bit doubtful on Midgard’s participation:

MidCOM and browser cache

Tarjei was experiencing problems with MidCOM’s cache system:

Going to California and Brazil

With these two recent conference invitations, it looks like the spring will be extremely busy.

Get MidCOM from a PEAR channel

Since completing MidCOM’s PEAR 1.4 packaging the main remaining issue of making MidCOM installation user-friendly has been setting up a channel. This is now done, and MidCOM 2.5 can be installed in the following way:
cover image for MidCOM PEAR 1.4 packaging works

MidCOM PEAR 1.4 packaging works

After a bit of discussion and goading from the PEAR community, we decided to package MidCOM for the package.xml 2.0 format and only support PEAR 1.4 or newer.

Midgard Wiki rewritten

I’ve spent some time yesterday and today rewriting the Midgard Wiki software to the new MidCOM architecture. Major changes include:

Happy New Year, and a look back at 2005

We spent the New Year’s Eve at our favorite rock star’s place having sauna, and welcoming the new year with Pikkuoravat, Verka Serduchka and Sovetskoe Shampanskoe. Globalization was really showing through, with SMS messages arriving in several languages and from several different time zones. Some samples:

Looking at the PHP workflow options

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.

PEAR packager tries to be too smart

When trying to PEAR-package MidCOM components with our new pear-package.php utility I ran into this error message:

Midgard's new style engine

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.

Web trends for 2006

It is December now, and my RSS reader is filling up with predictions for the year 2006. Here are snippets from some good ones:

Midgard for media agencies

Codey from Indian Express is wondering about aesthetics and sensibilities of CMS:
cover image for Midgard slides from Curitiba

Midgard slides from Curitiba

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

Midgard and style's attachments

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:
cover image for Pyhä-Luosto goes Midgard CMS

Pyhä-Luosto goes Midgard CMS

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...
cover image for Going to Fórum GNOME

Going to Fórum GNOME

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 -...
cover image for Sketch your website with DENIM

Sketch your website with DENIM

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.

Interested in the Zend PHP Framework

Zend, IBM and others have announced a collaboration project to create a Zend Framework using the following mission statement:
cover image for Midgard meeting in Linköping

Midgard meeting in Linköping

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...
cover image for New event calendar for MidCOM

New event calendar for MidCOM

net.nemein.calendar is the new default calendar in Midgard CMS. It replaces the old component with several clear advantages:

PHP memory problems on Apache 2

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.

Why web designers need a CMS

WebProNews has a story on how the future of web design is content management:
cover image for MidCOM and content update notifications

MidCOM and content update notifications

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.

CMS Watch Kudos of 2005

Content Management market analyst CMS Watch has released its Vendor Kudos and Shortcomings of 2005 list. Midgard CMS gets honorable mentions in two categories:
cover image for Posting pictures from iPhoto to Midgard

Posting pictures from iPhoto to Midgard

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.
cover image for More about positioning on the web

More about positioning on the web

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:
cover image for Midgard on OS X is rolling

Midgard on OS X is rolling

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.
cover image for Minor development setback

Minor development setback

Our development server just died today. This will mean all OpenPsa development is stalled until Rambo gets the new hard drive and Debian installed.
cover image for Kubrick layout for Midgard CMS

Kubrick layout for Midgard CMS

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.
cover image for First look at the new AIS

First look at the new AIS

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.

Midgard Wiki doing fine

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.
cover image for Mapping the Midgard community

Mapping the Midgard community

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:

RSS feed creator library for MidCOM

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.

Midgard wiki now available

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.

Repligard, your days are numbered

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.

HTML Tidy integrated into MidCOM

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.
cover image for Contact display widget for MidCOM

Contact display widget for MidCOM

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.
cover image for Things happening last May

Things happening last May

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, especially as they installed the Kawasaki starter ahead of schedule and under budget!
cover image for Itse Valtiaat website launched

Itse Valtiaat website launched

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.

Packaging MidCOM with PEAR

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.
cover image for MidCOM is becoming the default API

MidCOM is becoming the default API

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.
cover image for Hour approval component for MidCOM

Hour approval component for MidCOM

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.
cover image for Notes from the Russian Open Source Forum

Notes from the Russian Open Source Forum

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.

Going to Russian Open Source Forum

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

Nemein expands to Caucasus

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

Incompetence at German embassy in Tbilisi (updated)

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

Creating reusable styles for Midgard

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

Second day of Nonprofit Technology Conference

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

First day of Nonprofit Technology Conference

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.

Clarifying datagard

I helped Tigert to install Midgard yesterday, and the project was quite non-trivial. The main issues were:

MidCOM indexer setup notes

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

MidCOM search engine in production

We’ve today moved the MidCOM search tool into production together with the development release 2.3. Some statistics from Torben:

Markdown support for Midgard

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

Design new MidCOM UI - Win an iPod Mini

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.

Easier handling of CSS with MidCOM

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.

Multilingual MidCOM sites

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

Enabling PermaLink autodetection

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...
cover image for Jukka back from hiatus, JCR for Midgard

Jukka back from hiatus, JCR for Midgard

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.
cover image for Revised discussion forum for Midgard

Revised discussion forum for Midgard

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.
cover image for Site creation wizard runs

Site creation wizard runs

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

Midgard site creation wizard

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.

Adding categories to a Midgard blog

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

Midgard as the modern-day Hansa

I really like this comment in CMS Watch's latest Web Content Management Marketplace article:

Midgard will have integrated search

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.

Gotchas for new Midgardians

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

Creating custom navigation with MidCOM

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.

Comparing Midgard and WordPress

There has been some discussion on the Midgard IRC channel comparing Midgard CMS to the WordPress blogging system. Adam Douglas commented:

Adding location awareness to blogs

I've today updated my blog to display the location the post was made from. The location is linked to blog postings, photos and moblog entries based on their timestamps. This is done by maintaining a database of locations with the times I've been in them in Midgard CMS. To report a new location I simply send an SMS containing the...

Midgard's aggregator now supports multiple encodings

I've today upgraded the RSS and Atom news aggregator of Midgard CMS, net.nemein.rss to utilize the latest Magpie RSS release. The main new feature in Magpie 0.71 is support for multiple character encodings. This means that news aggregators like Planet Midgard can now safely read feeds whether they are in UTF-8, ISO-latin-1 or some other encoding and trust that they...

Two new Midgard buttons

Alexey Zakhlestine has designed two new "Powered by Midgard" buttons users can display on their site to support the CMS project:

Getting closer to Windows

For years there has been talk of getting Microsoft Windows supported in Midgard CMS. Now the situation seems to be progressing, being lead by Daniel S. Reichenbach from Best off. As most production websites are run on Unix, why are we interested in running Midgard on Windows? The Motivation part of mRFC 0011: Midgard on Windows Platform replies:

Filesystem-enabled MidCOM-template now available

Testing the new filesystem-enabled version of MidCOM is now easier than ever, with the new forked and fs-enabled version of midcom-template: Get fs-midcom from CVS Install the new fs-enabled midcom-template from CVS Install fs-midcom under /usr/share/pear/midcom Note: you can change this path from /midcom-admin/settings 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....

Project GNOMEgard

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 WebDAVNews pages must provide RSS syndication and...

Why do we need MgdSchema?

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:

The connected gathering

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: The web cams are available here and here. To see the image log in as guest/guest. In...

Some MgdSchema notes

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 doesCurrent status of MgdSchema is an app that parses the schema and displays it as debug infoThe object definitions will be reloaded every time Midgard is startedMgdSchema will provide the object types as GObjectsThe GObjects are...

New look at NemeinQuiz

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

Talking points for the Midgard Gathering

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

Filesystem MidCOM going strong

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...
cover image for Midgard 1.6: Power, Flexibility, Out of the box

Midgard 1.6: Power, Flexibility, Out of the box

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

Planet Midgard updates

Planet Midgard is the blog aggregator displaying what's going on in the Midgard community. Planet Midgard is now running latest version of net.nemein.rss aggregator, meaning a bunch of new things: Support for feeds in Atom format (previously we could aggregate only RSS feeds)UTF-8 support, meaning that we can now aggregate blog postings in non-western characters (especially Russian seems to be...

Standardized CSS layouts with Midgard

Based on my earlier blog entry, there was an interesting talk in OSCOM 4 about CSS Naming Conventions. My after-talk discussions with Thorsten Scherler led to development of OSCOM specification for CSS Naming Conventions. I've now used the XHTML skeleton from the specification for some websites, and have been generally quite happy with it. Here is a simple Midgardization of...

New ways for Midgard coding

For years Midgard application development has been constrained by the fact that most of the programming work has had to be made through a browser window. Now there is a solution through WebDAV. Earlier usage of better editors has been possible through two slightly hacky solutions: PHPmole is a nice IDE for PHP. However, it is written using the PHP-GTK...

Test install of Midgard 1.6.0rc2

Midgard 1.6.0rc2 was released earlier today. I decided to try it on my local iBook. Most of the stuff seems to install just like in my earlier installation, except that some packages have been renamed. midgard-lib is now midgard-core and mod_midgard is now midgard-apache1. First problem was that I tried to install Midgard to a custom prefix, /usr/local/midgard, and midgard-config...

Minor Midgard Blogging Tool Updates

Categorization works quite simply; the MetaWebLog API connector for the de.linkm.newsticker looks at its schema definition, and if it finds specific field definitions it will enable categorization. The two options here are: Multiple categories per post: "categories" => array ("description" => "Categories","datatype" => "multiselect","location" => "parameter","multiselect_selection_list" => array ("cat1" => "Category 1","cat2" => "Category 2", ), ), Or single category...

Making Open Source Content Management Suck Less

His notion might have backgrounds in only looking at the projects listed on, which only lists lightweight, mainly PHP-based content management systems, not any of the heavier-duty ones. However, it is true that most Open Source CMSs are not that good. A major cause for that is duplication of effort. Everybody wants to build their own CMS and not...

This is now Unicode

This blog has now been successfully converted to the UTF-8 character encoding. This enables using non-western characters in any part of this site. НЕ РЛОХО! This was all made possible using Torben's handy MidCOM UTF-8 HOWTO. Please report if you note any issues. Note: Newsticker's MetaWebLog API support doesn't seem to work 100% reliably on UTF-8. ecto seems to support...

Using Weblog Editors with Midgard CMS

Inspired by the public betas of MarsEdit and NetNewsWire, I looked up an old MetaWebLog API support patch I had made for the blogging and news ticker tool of Midgard CMS, de.linkm.newsticker. I modernized the patch a bit and committed it to MidCOM CVS. This means that all Midgard CMS installations using the new version will provide support for desktop...

I'm Moblogging Now

The "messaging device" has a crappy CIF camera, but I think that still the ease of taking photos helps to make my site more live.The procedure for posting a photo is the following:Take a photo with the cameraSelect "sent" from the options -> "send as MMS"Type the photo caption to the MMSSelect "send as email"Then the photo gets sent via...

Endorsing MidCOM's Migration to File System

Current situationTo those unfamiliar with Midgard development, Midgard Framework itself has been written as a C system library and a PHP extension. The Framework provides services like authentication, templating and content storage. The actual Midgard applications are written on that foundation in PHP and stored in the Midgard database as pages and "snippet" objects.MidCOM functions as a component system written...

Hunting a PHP segfault

The segfault seems to be triggered on pages that have multiple mgd_auth_midgard() or mgd_unsetuid() calls. In most cases the crash happens only after Midgard request has completed, but before output has been sent to the browser, as reported by Torben.In OpenPSA Personnel this happens when administrator modifies a user record. There we have worked around this by simply exiting the...

Midgard and UTF-8 Instructions

To make implementing UTF-8 in Midgard easier in the mean while, Torben Nehmer has posted a handy UTF-8 with MidCOM guide.More information about internationalization in Midgard can be found from Midgard Documentation.Of course, even after Unicode is the default encoding in Midgard we will have to go through many MidCOM components to ensure they conform to test suites like Sam...

MidCOM and HTTP Conditional GET

I wanted to ensure that wouldn't be a problem on sites built with Midgard CMS and MidCOM. On an IRC discussion with Torben Nehmer, I pointed him to Alexander Alapite's Conditional GET support library for PHP.However, it looks like this is not an issue, as MidCOM already supports conditional GET if its server-side caching system is enabled:

Content Creation with SMS

The SMSs are sent to an old Ericsson R520 mobile phone which is connected to a Linux box running gsmsmsd from gsmlib. New SMSs are forwarded to Routa MC as emails, which are imported into Midgard using fetchmail and the OpenPSA mail import script Then the SMSs are handled by a Midgard page which has the following code:

Success of WordPress: PHP vs. Java

One reason is that PHP provides a lightweight way of building efficient web applications. Russel Beattie writes: Once again I ask - why is Java web programming not keeping up? Why are Java web projects so bloated (I've got 5+MB of .jar files in my current web project and I think more are coming). Why are the pages so difficult...

RSS Feed of Midgard-User Posts

The RSS feed is courtesy of the Midgard-User Yahoo! Group.Direct URL to the Midgard-User RSS feed is: to Dave Winer for notifying that Yahoo! Groups now provide RSS feeds for all public group discussion lists.

Indonesian Midgard Blog

WALHI is the Indonesian Forum for Environment. Their CMS implementation will be modelled after the Midgard solution deployed by The Wilderness Society Australia.It is very nice to see NGOs deploy Open Source CMSs, or more specifically Midgard. These organizations have much to gain from efficient communications, and Open Source is the cost efficient way to accomplish that. Open Source is...

Style and Accessibility for HTML Forms

The form styling templates provided in the tutorial utilize two HTML form-specific elements for defining the structure of the form: label and fieldset.

Open Source Success Factors

rapid release scheduleregression testsdo one thing wellavoid over-designa central visiondocumentationavoid standardsismup and running in ten minutes or less!developer responsivenesseasily update-able wiki pages
cover image for Midgard's 5th Anniversary - A Better Web for 5 Years

Midgard's 5th Anniversary - A Better Web for 5 Years

The 5th anniversary meeting will be held in Poznan, Poland. We're going there tomorrow with the whole Nemein team. Now is the time to get a special Midgard 5th anniversary t-shirt and raise a beer glass for the project :-)

Working with Build Buddy

Ximian Build Buddy is a tool for building binary packages for different Linux distributions.

Dip in Midgard Usage

We discussed this trend some days ago with Torben, and came up with several points:Midgard 1.x is starting to show age. The framework was designed back in 1998Code quality in 1.6.0 alphas and in some major modules like Aegir is really badThe competition is getting tougherInstallation is still horribly difficultHowever, even despite of these, we decided there is no reason...

JPEG hassles

The solution was to use the convert utility from ImageMagick to automatically force all images to RGB color space. However, even after this the thumbnails I generated were ridiculously big (500KB instead of 4KB). After some investigation I noticed that some color profiles had been included to the image files. Again, convert was able to fix this.The options used here...

Accessible Forms with XHTML Labels

With the label element, forms would look like:<form method="POST"> <label for="firstname">First name</label> <input type="text" name="firstname" id="firstname" /></form> This would make the connection between a field and its label machine-readable, enabling easier handling for accessibility purposes. Also, this mark-up would be slightly lighter to download that the current <div /> solution. Thanks to Nico for the suggestion. Label HTML Guide:...

Taking a Look at SpiderAdmin

It has to be said that Daniel's team has made amazing progress with the administrative interface. The new UI looks very slick, and Tony Lee's logo design fits it very well.The user interface is also using our NemeinLocalization library. As soon as the language strings are included in the build I will translate them to Finnish.In addition to translations, the...

Open Source and Usability

The discussion on the matter continues on Slashdot thread "Making Things Easy is Hard".With Midgard, there are several major issues affecting usability:Installation is horrible: solution would be to provide prebuilt packages for popular Linux/Unix platformsSite setup is difficult: we should integrate sitegroup creation, host creation from template, style creation, site initialization and VirtualHost setting into one simple "Create website" dialogContent...

RSS as Business Notification Tool

"...automated business systems are being retrofitted to generate data in RSS format. For example, Triple Point uses StarTeam for source control and release management... In the past, developers were required to produce email announcements of each source code change; now that process has been automated via RSS."

MidRepository hacking in OSCOM Sprint Zurich

David Schmitter and Henri Kaukola will be attending the 3rd OSCOM Sprint in Zurich on Jan 23rd to work together on the MidRepository workflow module for Midgard.

Midgard and Project UTF-8 has started a new project for evangelizing and documenting proper Unicode support in free software. It’s called Project UTF-8.

HKLC moves Aegir CMS to GPL licensing

Linux Center (HK) Ltd. has moved the popular Nadmin Studio content management product and its successor, Aegir CMS under the GNU General Public License (GPL). The GPL licensing provides users rights to use, modify and distribute the software as long as the source code is kept available and modifications to the application given back to the development community. The licensing...

Workflow for Midgard

David Schmitter from Dataflow in Switzerland has now released version 0.9 of MidRepository, a versioning and workflow system for Midgard.

TownPortal: Bringing RSS to masses

TownPortal is an Open Source portal package based on Midgard and MidCOM. With TownPortal, local communities can easily manage their public web information, and provide web services for small businesses, clubs and educational institutions in the area. The local organizations gain a simple Content Management interface for managing their basic information, news and event calendars.

Open Source vs. Open Standards

Discussing on how Open Source software might still amount to similar customer lock-in as proprietary systems

Why MidCOM rocks

Essay introducing the key advantages of the MidCOM platform.

Too much free software

Freshmeat has an interesting editorial titled Too Much Free Software dealing with lack of standardization and “not invented here” syndrome in the Free Software / Open Source community causing appearance of multiple versions of same software.

NTLMSSP support added to Midgard

SaM Solutions and Nemein added NTLM Single Sign-on support to mod_midgard I’ve finally added NTLMSSP over HTTP support to mod_midgard (preparser) in CVS. It is pretty isolated from other code but you need to recompile libmidgard/mod_midgard/php module as server config struct in apache.h was changed to include NTLMSSP-related configuration. You need to do it only if you will use libmidgard/mod-preparser...

Benchmarking Midgard performance

There is a thread on Midgard user list about tuning Midgard to support over 100,000 page views per day.

Case study: Building the OSCOM site

OSCOM is an international, not-for-profit organization dedicated to Open Source Content Management. The goal of the organization is to bring together as many great brains as possible to build a network and grow the community of open source content management.

Midgard installfest on Aug 14th 2001

Nemein Solutions, the leading Nordic provider of Midgard solutions arranges a free Midgard installfest on August 14th, starting at 17:00.

Speaking engagements in May/June

I will be speaking in the following seminars and training events during May -June 2000. (16th May. 2000)

The Midgard Project turns one

It is now a year since Midgard 1.0 was first released, taking the development project into public view.

Midgard European tour

have posted the initial plans for the Midgard European tour and developer meeting 2000.

Lack of updates

Bergie apologizes the lack of updates to his website and tries to come up with believable excuses for this one.

Gettin' Stoned ;-)

Bergie switches job and becomes the webmaster of a network security software company.

News back online

The News system of Bergie’s website is back online, after being broken by new version of Midgard.

Midgard launch

The Midgard Project is born.