Motorcycle Adventures and Free Software

Weblog: Archive

2004-01-01 - 2004-12-31

New features in Nemein.Net Sales

Posted on 2004-03-19 09:49:51 UTC to . 0 comments.

These include:

  • Sending notification when any company belonging to a group is changed. Configured by setting parameter to the group:
    NemeinNet,sendNoticeOnChange,email
  • Notes field for companies
  • Extranet user account editing for persons
  • Sending email to campaigns
These changes can be found from the latest nightly.

Sponsored links

Microsoft Certification Exams โนเกีย Nokia มือถือ Online Project Management save money using, phone card
Reviews มือถือ Mobile All Apps

TMV switches to MidCOM

Posted on 2004-03-19 19:19:24 UTC to . 0 comments.

The new website is powered by MidCOM 1.2.0 and midcom-template.

Most of the site is static content but they are already utilizing some of the nice dynamic features, including an automatic RSS 2.0 feed of their news items.

Leaks and neighbors

Posted on 2004-03-19 20:33:41 UTC to . 0 comments.

Apparently the pipes in the apartment had failed and started leaking.

So now I'm stuck with no shower for at least a week, except for the nearby sauna place.

Joys of living in an old house...

Dashboard: Managing contact relationship

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

Integrating Dashboard support to Nemein.Net might be interesting. NN already stores information related to persons in several places, including:
  • Contacts database
  • Sales projects
  • Support requests
  • Project contacts
In addition to those, we will probably have to start connecting Calendar entries to persons from the Contacts database. The Calendar API already supports connecting any person records to the entry, but there is no user interface to this.

With Dashboard Nemein.Net users could very easily display all relevant information about a customer service contact or a sales prospect, showing details like "emails sent by the person", "IRC chats with the person" and "support requests sent by the person" in one simple window.

It might even be possible to query and display this information dynamically when reading email or receiving a phone call from that person.

While Nemein has switched from GNOME on the desktop to OS X, this kind of application would still be interesting to experiment with.

Some documentation on Dashboard is available. The front end applications (email or VOIP client, IM application) tell backend systems to look up information related to a person or concept by sending a cluepacket. Documentation on writing the backend interfaces is available.

Marc Andreessen: Why Open Source Will Boom

Posted on 2004-03-22 15:39:59 UTC to . 0 comments.

  1. "The Internet is powered by open source."
  2. "The Internet is the carrier for open source."
  3. "The Internet is also the platform through which open source is developed."
  4. "It's simply going to be more secure than proprietary software."
  5. "Open source benefits from anti-American sentiments."
  6. "Incentives around open source include the respect of one's peers."
  7. "Open source means standing on the shoulders of giants."
  8. "Servers have always been expensive and proprietary, but Linux runs on Intel."
  9. "Embedded devices are making greater use of open source."
  10. "There are an increasing number of companies developing software that aren't software companies."
  11. "Companies are increasingly supporting Linux."
  12. "It's free."
There is some discussion on Slashdot.

RSS as Business Notification Tool

Posted on 2004-03-23 13:43:18 UTC to . 0 comments.

"...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."
This is an interesting concept. Since RSS feeds are automatically generated by the MidCOM newsticker component, I've started monitoring the news items of our clients and partner companies in my NetNewsWire RSS aggregator.This helps me keep up-to-date with what they are doing a lot easier.

The next logical step would be to take RSS implementation even further in MidCOM and Nemein.Net. Already components like newsticker, photos and rss provide RSS output, but same could be done for discussion, events and many others.


Finland's Regulations on Freedom of Speech on Web

Posted on 2004-03-25 22:42:18 UTC to . 0 comments.

The law defines web publication as a periodic publication created from materials collected by the publisher. This definition would make the law apply to blogs, mailing lists, discussion forums and news sites, but not necessarily to regular organizatorial websites.

The "Application of Freedom of Speech in Mass Media" law can apply even to personal blogs, but is slightly eased for publications that are produced by individuals instead of organizations.

Here are some examples of the restrictions:

Responsibilities

  • Publisher must name a responsible editor for the publication
    • The responsible editor must be over 15 and not insolvent
    • The publication must carry notice on the identity of the publisher and the responsible editor - everybody is entitled to get the information on identity of responsible editor
    • Responsible editor can be fined for publishing information that breaks Finnish laws
  • All published materials must be stored for 21 days
    • Everybody has right to get the stored information if they feel false information has been posted about them or they wish to post a correction
  • The publication must carry any notices provided by Finnish government if they are important for saving human lives, health, environment or remarkable amounts of property

Corrections

  • If an individual can see himself as having been insulted by a message in the publication, he has the right to get an answer posted in the same publication
  • Individuals and organizations have the right to get false information posted about them in the publication corrected
  • The correction or answer must be posted without cost and delay
  • The responsible editor must help in the technical implementation of the answer or correction if required

Anonymity

  • Publisher has the right to keep source of a message anonymous
  • Administrator of servers the publication resides on must provide all identification information on a message to Finnish authorities if required

This all brings a heavy burden of responsibility for both the editor of the publication (or mailing list moderator) and the server maintainer. Not only they have to keep logs of many things, but they can also become legally responsible for something published by an external user - for example as a blog comment.

Essentially this means that running a public forum where posts appear without moderator approval is always a risk. This all certainly makes TypeKey sound more appealing.

I wonder how the laws would apply to many of the websites I run. Most of them are maintained at least partially by Finnish citizens, but are physically located offshore.

Some links

Law for Application of Freedom of Speech in Mass Media (Laki sananvapauden käyttämisestä joukkoviestinnässä - in finnish)

EFFi statement on the law (in finnish)

Finnish parliament's proceedings over the law (in finnish)

MikroPC column: The Autumn of Censorship (in finnish)

Updated 2004-04-28: Helsingin Sanomat, the main Finnish newspaper ran with the story, although with a sensationalistic approach.

Rides Through Ghost Town

Posted on 2004-03-27 12:13:57 UTC to . 0 comments.

"Motorcycling is a great hobby of mine. I ride all my life and I owned different bikes and I ended with big kawasaki ninja. This motorbike has matured 147 horse powers, some serious bark, it is that fast like a bullet and comfortable for a long trips. I travel a lot and my favorite destination lead through so called Chernobyl "dead zone" It is 130kms from my home. Why favourite? because one can ride there for hours and not meet any single car and not to see any single soul. People left and nature is blooming, there are beautiful places, woods, lakes. Roads haven't been built or repaired since 80th but in places where they haven't been ridden by trucks or army technics, they stay in the same condition as 20 years ago. Time do not ruin roads."

Updated 2004-03-31: We swapped some riding stories with Elena on the Sport-Touring board, and she gave the contact info for Crazy Hohols, an Ukrainian biker club. It would be interesting to meet some local bikers on the trip there next July. Visiting Pripyat also has some appeal...

Updated 2004-03-04: Elena's story is moving up. She was featured on April 1st on USA Today, and has rumoredly been contacted by at least BBC and some film crew for making a documentary. The site itself is up at 1.3 million visits.

Updated 2004-04-28: Aftonbladet is claiming Elena's story a hoax (in Swedish). In addition, Daily Telegraph tells that Chernobyl is becoming a tourism hot spot.

Scoble: The Corporate Weblog Manifesto

Posted on 2004-03-30 07:18:26 UTC to . 0 comments.


Netcraft on Blogs and Wikis

Posted on 2004-03-31 19:32:19 UTC to . 0 comments.

"The current excitement over blogs is curious, since they amount to little more than personal Web pages. Although a standard history of blogging dates the phenomenon to 1997, the key attributes of the blog - a page of selected links and comments in reverse chronological order - can be found as far back as June 1993 on the NCSA What's New site, one of the most popular destinations of the nascent Web world."

Link from Doc Searls.

Jose is Back

Posted on 2004-03-31 23:19:34 UTC to . 0 comments.

Pretty interesting stories; hanging from a cliff hands bleeding and meditating under a tree for days. Makes me really look forward to the official show-and-tell evening on Saturday in Parnell's.

Also, the photos of his Enfield were simply sexy. Oh well, then we have a new member at Routa MC.

Updated 2004-04-04: For Jose's new life style of short sleep and daily meditation, there are instructions on rating a guru. Via Doc Searls.

Open Source and Usability

Posted on 2004-04-02 11:18:00 UTC to . 0 comments.

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 platforms
  • Site setup is difficult: we should integrate sitegroup creation, host creation from template, style creation, site initialization and VirtualHost setting into one simple "Create website" dialog
  • Content editing is difficult: managing content is still quite difficult. However, the process on fixing MidCOM AIS usability flaws is going on

Fixes to Authoring Interface System

Usually the Midgard installation and setup is done by a technical solution provider, so the usability issues there are not as urgent. However, AIS is what the end-user sees, making it the prime usability fixing target.

Several improvements are being made, or discussed to the MidCOM AIS:
  • Back to page: link returning from AIS to the "view" side of the site. With this we can get rid of all the ugly returnurl hacks
  • Power User: hiding all confusing settings from non-power users. Power user setting should be shared with Aegir
  • Consistent UIs: the user interface for managing all components should be made consistent. Buttons should look the same and behave similarly, and components should share UIs for creating and deleting pages, etc
Actually, it looks like I should write a Midgard Request for Comments on this.

Update 13:25: Started working on mRFC 0003, "MidCOM AIS User Interface Guidelines". I'll try to get Nico and Kaukola to collaborate on this.

10th Anniversary of Harmaasudet

Posted on 2004-04-04 13:18:00 UTC to . 0 comments.

We arranged a "HC Susi" contest with meep for the event. In the contest the teams had to arrange performances with themes like "Why Grey Wolves suck - view of the ordinary live-roleplayer" or "Headlines of Grey Wolves' gossip column for the coming years", and recognize obscure items and faces from the history of the association.

The prize of special "HC Susi" t-shirts and a huge bottle of Koskenkorva was collected by team "Kellareiden kasvatit", captained by Nino.

Feedback received for the contest was mostly very positive, and it apparently worked as a really good ice breaker between the different generations of Grey Wolves. Thanks to meep and Kerttu for making the thing work!

Best speeches were held by Juho and Yaroslav. I especially liked Juho's ironic speech:
"In the beginning the Gods created The Grey Wolves. They were told to oppose things like fantasy, live-roleplaying, cyberpunk, the modern age... <snip long list>

...While all these battles have been lost, the fighting still continues..."
Skoll also made a very improvised speech, ending with "I promised to say three words, but I'll only say two: Fuck you [all]".
Arwen was absent, and so her speech was read by Lettu.

The whole event was much more festive than expected, with all participants dressed in their best. Skoll and Luihu looked really cool in their white suits, and Jose in his tuxedo. A tuxedo is certainly something to consider for future cigar evenings.

There are blog entries about the event from Yaroslav and Juho (in Finnish).

After the main event, the party continued at Ateljé, Pub Pete and Highlight, ending somewhere around 5am. When making farewells, we decided with many people to meet again after another ten years.

Updated 2004-04-14: Finally had time to post my photos online. Rambo's photos are also available.

Caucasus Reading List

Posted on 2004-04-04 14:19:46 UTC to . 0 comments.

Now I'm reading Nicholas Griffin's "Caucasus - Mountain Men and Holy Wars".

Other books I've been thinking about include:
  • Panttipataljoona (Jokipii, 1968) - Finnish volunteers fighting for German SS in Caucasus
  • Hadji Murad (Tolstoy, 1904) - Story of a Chechen warlord fighting with and against the legendary Imam Shamil
Let me know if you have any thoughts. As usual, I prefer historical accounts over Lonely Planet.

Popularizing World Live Web

Posted on 2004-04-04 22:52:47 UTC to . 0 comments.

The rare spots where I've been able to explain the benefits of RSS have been:
  • Keiretsu situations - displaying the news headlines from partner companies on a website
  • Intranet headlines - displaying latest news items from the public site, running on separate server
However, this is still quite far from getting people from bloated news site browsing to the lean and efficient World Live Web.

I'm currently subscribed to 51 channels with my NetNewsWire. I've found that since starting to get my news updates through RSS my actual web browsing has dropped to maybe 20% of what is was, while I actually get much more useful information than I used to.

Many of the RSS feeds I subscribe to are profilic Connectors, who specialize in sharing information on different IT and web topics. In addition, there are some special interest topics like motorcycling and Change Logs of software projects I participate to. I also follow some special areas like OSCOM and PHP by subscribing to their Planet combination feeds.

The RSS aggregator works on the background, refreshing information from the feeds on a regular schedule. Every morning or lunch break I can go through the overview of new posts, and read the interesting ones.

Quite many blogs nowadays provide the full post content in their RSS feed, so I can read it even offline. For those who don't, pressing enter or clicking the post title opens the story on a new Firefox window.

RSS and the newer Atom are very useful standards. OSCOM should do more to push their adoption in every Open Source CMS. For example, quite many MidCOM components already provide RSS output by default.

When most CMSs and news sites are providing good quality RSS content, getting users on the board should be quite trivial. However, as Jon Udell pointed out, there are still issues left to solve:
  • Politics - End users are not interested in whether a feed is RSS 0.9, RSS 1.0, RSS 2.0 or Atom. They just want to subscribe to a feed that works in their aggregator
  • Subscription - subscribing to a feed should be easier. All desktop RSS aggregators should be able to support the same URL type for subscription. In addition, all feeds should be available under the same term or icon, regardless of their type. Maybe RSS autodetection and hooking up with the web browser will help here
  • Explanation - The concept is new, and so we have to wait until mass media gets it explained to the general public. Before that the message will have to get clearer
  • Software - Users will need to find a good, working aggregator for their platform. As Udell pointed out, the web based Bloglines.com service is a good way to get started
Now, if Yaroslav would just add RSS support to Miki, I might get to subscribe to some diary feeds from my old and new friends from Harmaasudet. Submitted feature request on this.

Linux Greenhouse goes MidCOM

Posted on 2004-04-06 13:14:06 UTC to . 0 comments.

The original Linux Greenhouse class convened in Seoul, Korea in June at the Global Linux 2000. Nemein has been providing eRiding services to LGH since spring 2001.

The site design was made by Airton Jordani from loulouejordani.com.

Kirkkonummen Seurakunnat in Midgard CMS

Posted on 2004-04-08 10:12:13 UTC to . 0 comments.

The site design and development was done by Henri Kaukola and hosting is provided by Finnish Teleservice Center.

On Silence

Posted on 2004-04-13 09:26:41 UTC to . 0 comments.

It was suprising how much he was able to communicate with simple pantomime and gestures. When the silence ended at midnight, he told us there had been only three occasions when he would've wanted to explain something but couldn't.

Of course, the sign language alphabet we learned back in commune days to irritate the rest of our flat mates helped.

Year of the Penguin

Posted on 2004-04-13 19:00:26 UTC to . 0 comments.

Still back in 1999 it was a struggle to get my employer to run a Linux server. Two years later their own main product ran only on Linux.

However, "Year of the Penguin"? There have been many of those...
Good things are happening in the Linux community all the time, so partly it must be true. Could be difficult for the Chinese horoscopes, though.

Nick Wreden: Rules for Corporate Blogs and Wikis

Posted on 2004-04-15 13:24:37 UTC to . 0 comments.

Despite its critics, knowledge management (KM) has not been over-promised; rather, vendors have under-delivered. Blogs can address the gap between KM promise and requirements by letting local expertise emerge. Here’s a good background on blogs and how Lucent is using them in KM.

Updated 2004-04-15: Oops, the guidelines were not actually from AMA. Instead, they were response to AMA's instructions on the matter. Time to remember how to RTFA. ;-)

Taking a Look at SpiderAdmin

Posted on 2004-04-15 18:51:31 UTC to . 0 comments.

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 first glitches we've noticed have been the "This is the place where we will put a DocBook created HTML documentation for SpiderAdmin" message and some oddities with move commands.

All in all, very good work! I'll keep this updated on how our "living without Aegir" project with OpenPSA development goes.

A cool little factoid that the original project name "Odin" is still kept in use in SpiderAdmin internals. Very Midgard-like :-)

OpenPSA Project Started

Posted on 2004-04-15 19:08:20 UTC to . 0 comments.

Work done today:
  • Creating the OpenPSA project website at www.openpsa.org
  • Setting up new, clean development database with Nemein.Net nightly build and SpiderAdmin
  • Moving localization libraries from under NemeinLocalization to their correct module snippetdirs
  • Switching old Evaluation Key system into Testimonials registration system
  • Setting up the OpenPSA project at Tigris
  • Started collecting beta participants
TODOs for tomorrow:
  • Change all instances of Nemein.Net to OpenPSA in the application
  • Make first CVS commit
  • Add first documentation to the website
  • Add first screenshots to the website
  • Add initial product descriptions to the website
  • Release first beta
  • Subscribe the RSS aggregator on website to Kaukola's and Rambo's blog feeds
Updated 2004-04-15: We're still looking for some beta testers. Let me know if you're interested. OpenPSA requires a working Midgard installation to run.

EU Aims to Make Web Shops Illegal

Posted on 2004-04-16 13:16:44 UTC to . 0 comments.

This would make building any kinds of web stores or shopping carts require a patent license.

I guess European Union has decided to move Internet back to stone age, then. Competitiveness with American software business, indeed.

It is still not too late to do something.

No ePatents!

Link via Kaukola and GNU Project.

Accessible Forms with XHTML Labels

Posted on 2004-04-16 15:33:14 UTC to . 0 comments.

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 resources

About.com HTML Guide: <label />
XHTML 1.0 schema: Label
DevGuru XHTML Tag: Label

OpenPSA Now in CVS

Posted on 2004-04-16 17:19:22 UTC to . 0 comments.

There were some issues with getting the yamp Perl plugins to work with our UTF-8 encoded development database, but from now commits should work fine.

A Real Sunday

Posted on 2004-04-18 18:25:35 UTC to . 0 comments.

The Sailor's pub, situated in the trendy Herttoniemenranta suburb was a very good choice. We were able to sit in sunshine and watch the boats in the harbour, while enjoying our H.Uppmanns. Before going to the pub I also got to see my friend's new Fabarm shotgun.

After the pub visit there was time for cruising leisurely in the suburbs. I eventually ended up watching some aircraft landings at the Helsinki-Vantaa airport and then the exhibitions at the Finnish Aviation Museum.

The museum visit was very nice, with lots of nostalgic planes and photos from the pioneering era of aviation, and the second world war. I was the only customer and it was interesting to wander in the huge, quiet halls filled with all kinds of airplanes.

Having seen the museum, I continued my sunday cruise to the twisty backroads of Vantaa. After some enjoyable riding it was time to return back to Helsinki, and enjoy ice cream in the Seurasaari open air museum.

To complete the picture, I'm going next to the Tennispalatsi megaplex to see if any tickets are available to to premiere of Kill Bill vol. 2, and maybe watch Starsky & Hutch.

Some pictures from the ride are on the Routa MC site.

New OSCOM Interview

Posted on 2004-04-22 14:11:42 UTC to . 0 comments.

Here is the interview in English:

WebDevMagazine: Can you tell me ore about OSCOM. What is the organization aim?

OSCOM has two purposes, marketing and technical. On the marketing side, we aim to raise the public awareness in the availability and feasibility of Open Source Content Management Systems. This is what our first conferences focused on, and the reason why we maintain the CMS Matrix. On their own the different OSCMS projects do not have the weight required for reaching the mainstream users. However, with a central organization like OSCOM it is possible.

On the technical side we aim to improve the different Open Source CMSs, and get them to interoperate. We see that there are different phases of Content Management implementations, and at some of these phases a different CMS might be the optimal solution. Implementation of common standards makes it easier for users to switch It also reduces the need to waste effort by reinventing the wheel across all the projects.

The main activity on the technical side is arranging interoperability implementation events, Sprints, where people from different Open Source CMS projects come to implement some common standard or tool into their project.

To support this OSCOM also hosts some Open Source tool projects, the latest of these being the Kupu XHTML editor and the BXE XML editor. The criteria for hosting such projects under the OSCOM brand is that they must be useful across many or all CMS projects.

We also provide a news aggregation system focused on topics of Open Source CMS interest named Planet OSCOM.

WebDevMagazine: How can become a member of this organization and are you interested in covering new countries?

Members are selected from people participating actively in the OSCOM activities. The selection is done by the members of the association. To get involved with OSCOM, the easy first steps are:
  • Subscribe the OSCOM mailing list
  • Start providing an OSCOM topic RSS feed from your website for Planet OSCOM
  • Participate in OSCOM events or projects
  • If you work with an Open Source CMS project, start working on implementing some of the OSCOM-endorsed standards and tools
At the moment OSCOM mostly operates on an international basis. There also is a recently founded suborganization called OSCOM Germany, working to create OSCOM resources and materials focused on that language and area. Similar country organizations could be possible in other places as well, if there is enough interest.

WebDevMagazine: Is the Microsoft an enemy for you (OSCOM)

As the provider of a proprietary CMS system, they certainly are a competitor to all the Open Source Content Management System projects.

However, with the arrival of .Net and Web Services Microsoft also seems to be opening up to common standards and interoperability. If this trend continues, Microsoft could even become a de-facto partner of the OSCOM community.

WebDevMagazine: OSCOM meeting next year in Bulgaria, is this possible?

Well, we're certainly interested in finding good venues for the OSCOM Sprints and conferences. Eastern Europe could be a good place for such event, enabling us to tap into the large local Open Source developer community.

The key for arranging such an event would be to find a good local organizer partner, or arrange the OSCOM event as a track in an existing conference. This way we can keep the logistics at minimal and instead focus on putting together as good program as possible.

WebDevMagazine: Please tell me more about you (hobby, ...etc)

I've been working with the web since 1994, and for the last six years have been involved with the Midgard CMS project. In addition, I run my own Open Source consultancy company, Nemein.

My key to taking some time off the Internet is motorcycle traveling. We have a small group of friends doing some annual motorcycle adventures. Last summer we traveled in Western Russia and Estonia, and this summer's plan is to head to Black Sea and the Caucasus mountains. We maintain a website with photos and stories at www.routamc.org. I ride a British Triumph motorcycle

Updated 2004-04-26: Looks like the interview is now up on spisanie.com, but only for subscribers so far.

Pictures from Pamplona

Posted on 2004-04-22 15:28:58 UTC to . 0 comments.

We went there in 2001 to attend the bull run festival held there every July. It was odd to see from Rodrigo's photos how empty and sleepy the city looks like outside the San Fermin festival.

Our interrail trip through Europe to the festival was one of the really good ones. We slept mostly in parks, and had lots of interesting discussions with strangers over beer. We even got thrown out of train couple of times, and crossed the Pyrenees in moonlight in a taxi, with Moonspell's Wolfheart playing.

A short-cut on the trip took us from Copenhagen's Christiania to Linz, Austria and to Verona. When finally in Pamplona most of our gear was stolen in the first night as we were sleeping outside near the back wall of the bull fight arena.

Losing our luggage was not really a big deal, and so the trip continued with less to carry. However, we learned the very useful Spanish phrase "Los ladrones cogieron mis calzoncillos" (the thieves stole my underwear).

After running with the bulls on two mornings, and spending several days in the intense festivities of Pamplona, we travelled to the small city of Plasencia, Extramadura to meet the local Korean martial arts teacher.

I have some pictures from the trip on my site.

Some OpenPSA TODOs

Posted on 2004-04-22 15:58:53 UTC to . 0 comments.

Here's a quick list:
  • OpenPSA Calendar
    • Hide starting and ending hours for multi-day events of the start/end date is not the one being displayed
    • Differentiate events that allow overlapping from regular events in some way (for example, blue instead of red bar in the week view)
  • OpenPSA Sales
    • Country and state/region are missing from Campaign CSV exports
    • Add option to display persons that have been removed from a campaign in the listing
    • Show additional attributes (like datamanager parameters) of the MidgardEventMember record in the listing and CSV export
  • OpenPSA Core
    • Make the auth_conf values host_override and prefix_override configurable to enable single sign-on between OpenPSA and other Midgard sites
Updated 2004-04-27: Patch to include country and state information to CSV exports is now in CVS

Supporting International Characters

Posted on 2004-04-26 16:19:27 UTC to . 0 comments.

While many pieces of web software already support unicode and other character-encoding standards theoretically, their way of interoperating using them might be disfunctional.

Freedesktop.org runs the Project UTF-8, a resource for advocating unicode support in Open Source software. Maybe OSCOM should also do something in this space.

Joel Spolsky has published a short how-to on what every programmer should know about unicode. This is a very good starter on working with different character sets, as is Sam Ruby's i18n survival guide.

The Midgard CMS project has supported UTF-8 since late 1999, but still ships with latin-1 as the default. While this will change with the 1.6.0 release, a common habit of rawurlencode()ing document names can still lead to funny-looking URLs, as can be seen on the www.silja.ru site. This problem is fixed by MidCOM's requirement of stricter URL policy.

JPEG hassles

Posted on 2004-04-27 08:37:50 UTC to . 0 comments.

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 were:
-colorspace rgb +profile "*"

Bug has been filed on adding support for these to the image datatype in MidCOM datamanager.

As an addition, it looks like JPEG is now having patent issues, like the GIF format some years ago. Time for inventing a patent-free photography format?

B2B Advocacy Kit

Posted on 2004-04-27 09:12:10 UTC to . 0 comments.

B2B websites must support a more complex buying process than B2C sites. Three key goals are to make a buyer's shortlist, offer a downloadable advocacy kit, and build a reputation for great service.

Some of these ideas, combined with business blogging could be the way Nemein will communicate in the future. We're an Open Source consultancy, and helping potential clients convince their bosses on the viability of OS software is very important.

Open Source Public Relations

Posted on 2004-04-28 17:45:57 UTC to . 0 comments.

Daniel Carrera from the OOo team has posted a very good summary on the stories.
This is very topical now that OpenPSA is going public on May 8th.

Motiva Runs MidCOM

Posted on 2004-04-29 10:03:46 UTC to . 0 comments.

Motiva is using the yamp-based staging/live scripts and the filesystem cache engine from MidCOM 1.2.x. The site is available in three languages: Finnish, English and Swedish.

The server signature is also quite interesting:
Apache/1.3.29 (Unix) Midgard/1.6.0/Repository/MultiLang PHP/4.2.3

MidCOM provides many nice new features for the site, including:

The site conversion from the old NemeinNavBar system to MidCOM was handled by Henri Kaukola from Nemein.

First OpenPSA beta available

Posted on 2004-04-29 17:40:09 UTC to . 0 comments.

This is a semi-public beta, in the way that the package can be downloaded by anyone, but we've invited some organizations to try it out. The software is available under GNU GPL.

We're mostly interested in the following beta testing areas:
To get started with the OpenPSA beta test,
  • Install Midgard
  • Install OpenPSA
  • Log into OpenPSA Manager
  • Create a new company
  • Initialize OpenPSA for the company
  • Log into OpenPSA
  • Create users and grant permissions
  • Start using the system
It would be great to handle possible problems and questions on the OpenPSA user mailing list.

Another Good Vappu

Posted on 2004-05-03 09:23:01 UTC to . 0 comments.

This Vappu went according to tradition: we watched Havis Amanda get the student hat together with some Austrian exchange students, had a sunny picnic in Kaivopuisto and Vappu herring lunch in Ateljé.

What we did first time this year was to outsource the picnic food production to a local Subway, so we could concentrate on more important (and usually Koff-branded) affairs.

The sunday was spent recovering, with visit to boffer swordfighting session, motorcycle trip down the Kuninkaantie to Porvoo with a stroll on the riverside enjoying a pipe, and finally some evening sauna in Saunabar.

Thunderbird 0.6 is available

Posted on 2004-05-03 09:44:50 UTC to . 0 comments.

New default theme for Mac OS X, Pinstripe looks quite nice, as does the new Thunderbird logo.

The Mac OS X downloadable required some manual renaming before it worked, but it seems to be fixed now.

What remains to be seen is if the new version fixes the broken Offline extension.

Dip in Midgard Usage

Posted on 2004-05-03 11:12:38 UTC to . 0 comments.

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 1998
  • Code quality in 1.6.0 alphas and in some major modules like Aegir is really bad
  • The competition is getting tougher
  • Installation is still horribly difficult
However, even despite of these, we decided there is no reason to get too alarmed. In experienced hands, Midgard 1.x is still fairly competitive, and the work being done on Midgard 2.x and MidCOM 2 is promising, especially with the EU support. The recent focus on usability should also help.

Also, if we get 1.6.0 stabilized in this weekend's Poznan meeting, things should look a lot brighter, with bunch of new things:
Of course, it should be noted that SecuritySpace survey isn't the whole truth on CMS market shares. (thanks for reminder, Alexander!)

Updated 13:30: Tarjei gave his list of issues:
  • There are too many administrative user interfaces, but they all share the same weaknesses. Solutions could be:
    • Unify the UIs to Aegir 2 and MidCOM 2
    • Add WebDAV support to make development more file-based
  • Aegir* and Nemein* libraries are too hard to access, making it difficult to build on top of them. Solution:
  • Midgard does not support read-level access controls
  • Midgard must get closer to the PEAR and PHP communities
  • Midgard lacks a package format that would enable deleting packages

Roadmap to Web Standards

Posted on 2004-05-03 12:13:31 UTC to . 0 comments.

This method of web design is becoming increasingly popular, and for good reasons. For those who don't see the technical beauty of the solution as good enough reason, there are significant business benefits as well.

We've worked on migrating our projects to standards-based design since last December, and the results look quite good. The only major issue is the mark-up produced by our WYSIWYG editor. To fix this, we could either start using OSCOM Kupu, or run the content through HTML Tidy.

Pictures of Helsinki

Posted on 2004-05-03 13:16:58 UTC to . 0 comments.


Working with Build Buddy

Posted on 2004-05-04 09:30:04 UTC to . 0 comments.

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

After reading all documentation available, I decided that Build Buddy is the right tool for publishing our Open Source software which has been created in the last years. A perfect test object is the Midgard Application Server for which several people have contributed specialized packages for their systems, but no official binary releases exist where the RPM build does the same as the Debian installation, etc.

In addition to the actual tutorial, I look forward to seeing the packages he will produce.

New Features in OpenPSA Support

Posted on 2004-05-04 13:57:24 UTC to . 0 comments.

There are several new features in the CVS version:
  • Ticket locking: edit view displays if somebody else is editing the ticket
  • Archiving of old closed tickets to separate topic
  • SLA handling: notifications if ticket is due to be handled. The service levels can be configured on per-type basis, but can be changed for individual tickets
SLA selector in ticket editor:

Lock and SLA notification display in ticket list:

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

Posted on 2004-05-05 18:47:45 UTC to . 0 comments.

Midgard Project - 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 :-)

OpenPSA 1.9.0 Released - Open Source Management Software for Consultancies

Posted on 2004-05-08 15:03:41 UTC to . 0 comments.

The web-based OpenPSA suite was originally developed in 2001 under name Nemein.Net. The name was changed to OpenPSA as the application was moved to Open Source licensing.

The OpenPSA is suitable for consultancies and service organizations ranging from 1 to 400 users. The software package is now available in English, Finnish and Italian, and it is easy to translate to other languages. Support is available from the OpenPSA community, and commercially from Nemein.

In addition to regular corporate usage, the OpenPSA also supports the possibility to provide the system as a hosted Application Service Provider solution. The software can be configured easily to support the service provider's brand image with colors and logos.

OpenPSA 1.9.0 is available from http://www.openpsa.org/download/

OpenPSA runs on the LAMP (Linux, Apache, MySQL and PHP) platform using the Midgard Framework. Midgard is an Open Source Content Management Framework powering thousands of sites ranging from simple corporate intranets to major eGovernment portals.

Development of the OpenPSA package is coordinated in the Tigris.org Open Source community. The development resources and issue tracker can be found from http://openpsa.tigris.org/

More information:

OpenPSA Project
http://www.openpsa.org/

Henri Bergius, Nemein
henri.bergius@nemein.com
+358-20-198 6032

Commoditizing Information Technology

Posted on 2004-05-11 18:09:03 UTC to . 0 comments.

Other companies are finding that commoditization is a great weapon to use against an archenemy. Sun Microsystems, for instance, is heavily promoting StarOffice, its inexpensive open source alternative to the ubiquitous Microsoft Office. Sun knows that if it can commoditize basic business apps, it can begin to break Redmond's stranglehold on the PC desktop.

The same pattern can be seen in the content management scene, where Open Source CMSs are driving the prices of a CMS solution down. This is visible at least in Finland, where several proprietary CMS vendors seem to be ready to forgo any license prices to just distribute their app.

Hopefully our OpenPSA package can do the same to the Professional Services Automation scene.

Via Scripting News.

Open Source Success Factors

Posted on 2004-05-11 18:16:09 UTC to . 0 comments.

  • rapid release schedule
  • regression tests
  • do one thing well
  • avoid over-design
  • a central vision
  • documentation
  • avoid standardsism
  • up and running in ten minutes or less!
  • developer responsiveness
  • easily update-able wiki pages

Points like these are important as we restructure the Midgard Project to address recent popularity concerns.

Via Gregor J. Rothfuss.

Back from Poland

Posted on 2004-05-11 18:31:54 UTC to . 0 comments.

We drove to Poland following E67, the Via Baltica. I've now driven the road in three summers, and the improvements are quite visible. Roads are getting better all the time, and now that the Baltic countries are in EU border checks were a breeze. Another big improvement is in credit card acceptance. Visa was accepted everywhere in Baltic countries so we didn't have to withdraw any local currency.


The actual Midgard developer meeting started in friday afternoon, and continued until sunday. There was much piwo and good discussion. Especially Alexander's Ragnaroek presentation was impressive. Hopefully he will finish the white paper based on session notes soon. We also enjoyed some Cuban cigars to celebrate Kaukola's graduation. The local restaurants like Sphinx and Ali Baba were quite nice. Poland is certainly the place to go for eating ;-)


Poznan had a very nice looking old city, but unfortunately there was little time for tourism. Maybe in June, if a project proposal works out.


On the return trip we picked up Luihu from Berlin and drove 22 hours straight to Stockholm. From there we took the Midgard-powered ferry back to Helsinki. Sauna on the ferry was excellent medicine for aching muscles from the long drive. The Land Rover worked again quite well as a road trip vehicle, despite having to change a tyre in Denmark at 5am.

Some photos are available on the Midgard site.

Persistence of Free Software

Posted on 2004-05-17 17:32:06 UTC to . 0 comments.

WordPress is Free Software. Its rules will never change. In the event that the WordPress community disbands and development stops, a new community can form around the orphaned code. It’s happened once already. In the extremely unlikely event that every single contributor (including every contributor to the original b2) agrees to relicense the code under a more restrictive license, I can still fork the current GPL-licensed code and start a new community around it. There is always a path forward. There are no dead ends.

Movable Type is a dead end. In the long run, the utility of all non-Free software approaches zero. All non-Free software is a dead end.

Via Miguel de Icaza

Strategies for Open Source Adoption

Posted on 2004-05-17 18:38:41 UTC to . 0 comments.

For instance, OSS offers enterprises the opportunity to be more self-reliant through source code modification. It allows incremental project and upgrade schedules, free rein in integration decisions, and direct interaction with the OSS community. It creates the opportunity to implement projects in a way that is consistently mindful of enterprise goals, rather than the goals of a proprietary software vendor. OSS allows enterprises to select from a broader range of hardware and software vendors and service providers than proprietary solutions. For these and other reasons, the pace of Linux and OSS adoption continues to accelerate.

Via Slashdot

Over 200 OpenPSA Downloads

Posted on 2004-05-17 18:59:07 UTC to . 0 comments.

In addition there were 40 downloads of the beta package.

All in all, not too bad for a first public release of specialized server-side business software.

Most referrals came from Freshmeat, Midgard Updates and Newsforge.

New Blogs and Employees

Posted on 2004-05-18 15:13:40 UTC to . 0 comments.

I almost got my hands on something I'm familiar with, PHP-code. Bergie had a meeting and I was doing some debugging and fixing with Kaukola though I learned that it's not something to tell to a customer. The correct word was deploying or something...

The eventual plan is to activate the Midgard community to build up an active Planet Midgard resource, much like the one used by the GNOME community. Blogs, or in this case, Plogs are a great way to keep the community aware of new developments.

Juhana is a computer engineering student from Helsinki Polytechnic, and has worked previously as a grave digger. The plan is to familiarize him with Midgard and MidCOM in the next few weeks, and then give him actual client projects as the summer holiday season begins. We did the same process with Kaukola, and it seems to have worked well. ;-)

Cell Phone Down

Posted on 2004-05-18 16:19:51 UTC to . 0 comments.

Before everyone had cell phones we would always schedule meetings to some easy-to-access place, like the railway station. But now it is so easy to arrange meetings on the fly, and so nobody plans them ahead. However, without mobile phone this is impossible.

What makes the situation increasingly funny is that the customer service lines of this telco are blocked in phone booths, which are operated by another telco. Good luck trying to fix the problem, I guess...

This makes me think how handy would a combine SMS/instant messaging system be. If I'm online, the messages would go to my computer, and when offline to my cell phone. With scenario like that this would've been a complete non-issue.

Multimedia messages (MMS) already have a system like this where people who don't have a MMS-capable cell phone can receive their messages through a web interface.

Explaining RSS/Atom Syndication

Posted on 2004-05-21 06:56:58 UTC to . 0 comments.

As an analogy, the news reader acts like a customizable newspaper. You can pull a variety of content from a growing number of sources into one place, to be read however you choose. Sources like major news media outlets (BBC, Reuters, Washington Post) to non-news content providers (Apple’s iTunes Music Store, the Government of Canada, USGS’ World Earthquake updates) to smaller independent voices (BoingBoing, VanEats, Sidesh0w). The only stipulation is that the source must provide a feed; many are.

Both RSS and Atom are content management standards recommended by OSCOM.

Updated 11:28: There is now a more linking-friendly URL to the description at http://www.mezzoblue.com/subscribe/about/

Economist on Homebrew Coders

Posted on 2004-05-21 10:47:25 UTC to . 0 comments.

Before Henry Ford unleashed the practice of mass production on the world, every little town had a few dozen artisans who made the lives of citizens easier. A cobbler made the shoes, a tailor sewed suits and a carpenter built furniture. Mass production sounded the death knell for many specialist craft jobs, and the rise of computerised supply chains finished off most of the rest. But now, a century later, the trend is reversing itself. The new craftsmen do not stitch leather, cut cloth or saw wood: instead, they write software.

Via Ranchero Software.

I've thought for quite a while that small teams of developers collaborating with each other by using Open Source software can create much better solutions than huge monolithic organizations. This was also a central theme in Eric Raymond's Cathedral and the Bazaar.

Some OSCOM Site Updates

Posted on 2004-05-21 12:43:03 UTC to . 0 comments.

  • MidCOM has been upgraded to the latest 1.3.0 release
  • Aegir has been upgraded to latest 1.0.3 nightly
  • Removed unnecessary buttons from the "Edit this page" editor and added button for inserting images
  • HTML <title />s on both OSCOM and Kupu front pages are now more descriptive, as supported by midcom-template
  • CSS has been fixed to show correct font size for tables also on IE
  • Planet OSCOM now has a handy sidebar, including information on how to subscribe to it
  • Board listing has vCard and FOAF output

In addition, the new Kupu logo was added to the kupu.oscom.org layout earlier.

Style and Accessibility for HTML Forms

Posted on 2004-05-22 08:24:41 UTC to . 0 comments.

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

For usability and accesibility reasons, every form element on a page should have an associated label. Not only do labels let you focus a form element by clicking on its label text (no more fiddling around clicking on the exact circle that is the radio button), but they enable non-visual browsers to create an association between the label text and the form element, allowing each distinct item to be more readily identified.

We have been looking at making the MidCOM editing forms more accessible. This solution is starting to look really good. Time to post a bug?

Examples like the columnar form also throw Rambo's notion that OpenPSA couldn't be built using MidCOM datamanager because it uses very strict form layouts out of the window.

Via Web Standards Project.

Updated 9:56: Posted bug #50 to get MidCOM datamanager to support this way of building forms.

Updated 2004-05-24: Torben accepted this enhancement into the roadmap for MidCOM 1.4.0

Story on Vis

Posted on 2004-05-24 14:47:52 UTC to . 0 comments.


The BBC article mostly concentrates on the British historical aspects of the island.

Vis, nearly thirty miles south of Split off the coast of Dalmatia, has had an interesting half century. It was where Tito made his headquarters in World War II: soon afterwards, he seized control of Yugoslavia, which he ruled autocratically until his death in 1980.

Via Volodja Vorobey.


The Routa MC website has bunch of photos from the Summer Source event.

Hopefully there will be opportunities to visit the island again...

CMS Collegiality - A Practical Approach

Posted on 2004-05-24 17:16:48 UTC to . 0 comments.

The idea with collegiality is that badmouthing and competing in cut-throat fashion is not productive. What the competing systems should do instead is evaluate each others' strenghts and weaknesses objectively and embrace common protocols and standards for interoperability.

This interoperability would enable users to build their own "Frankenstein CMS" by selecting best building blocks from different Open Source CMSs, or to replace an old solution as their needs evolve.

What would then be good interoperability targets? For example, to be honest, the standard discussion forum component for Midgard CMS sucks. Why are people not using phpBB instead, then?

The reasons for this are quite simple. While both run on the LAMP platform, it lacks integration in several areas:

  • It doesn't use Midgard's layout templates
  • Features like "Latest comments" or "Comments on this page" are difficult to pull from phpBB into a Midgard page
  • User accounts and permissions have to be managed separately

Layout management

Keeping layouts synchronized between different systems used to be difficult. However, as the new school of standards based web design is gaining popularity this problem can finally be solved.

Web site components do not have to carry any layout information, just provide a needed set of <div /> elements. The actual layout can then be loaded dynamically as a separately and centrally managed CSS file.

Of course, the problem here is that every CMS and web script will still use its own set of class names and IDs. But maybe some conventions can be developed, like has been done in the CSS Zen Garden.

Comments listing

With the advent of syndication formats like RSS and Atom, sharing news or comments listings between different servers and CMSs has become really easy. The only thing we really have to ensure is that all the different systems provide RSS feeds of their content, support RSS auto-discovery and make it easy to aggregate content from other sources into them.

This way a news posting done in the Midgard newsticker could easily list related posts from a Planet feed, and provide a "comment on this page" functionality that is actually served by phpBB.

User management and authentication

Sharing users and groups across different systems is not easy. While some universal and "proper" solutions like LDAP and Liberty exist, they are generally too heavy to be practical. Centralized solutions like Passport and TypeKey are also ruled out because CMSs should be able to work self-sufficiently.

There have been some more lightweight but language-specific solutions like PHP-Universal, but these are not interoperable enough for OSCOM purposes.

FOAF import and export could be one way to share information about user accounts across systems. FOAF is an RDF-based XML format for describing people and their relations, which would sort also group and permission sharing. However, it doesn't solve the question of single sign-on.

Link and media management

Another typical problem is handling connections between links and media files between different systems. For example, if images used on a Plone site are managed in Midgard's photo gallery, how to enable users to select them in Plone's content editing UI?

The Kupu XHTML editor team has a good approach here. As their editor is used in several different CMSs, they had to come up with a CMS-agnostic XML format describing images and links available for the editor. These XML files could easily be pulled from all different CMS and web scripts running on the server and and parsed by Kupu into a nice "Insert image" dialogue.

This format should be made a CMS standard endorsed by OSCOM.

Wrap-up

The basic premise here is that interop between Open Source CMSs and web scripts is possible and can bring huge benefits for the end-users. However, the interop standards should be lightweight and easy to implement. In addition, they should still allow the different systems to stay self-sufficient.

Supporting standards well could also gain lots of positive attention for a CMS project, much like WordPress is now experiencing with Movable Type migrations.

OSCOM has a conference coming in fall. Maybe there could be a Sprint session to expand these ideas.

OSCOM's Challenge Loop

Posted on 2004-05-24 19:06:30 UTC to . 0 comments.

One often forgotten aspect in OSCOM is that involvement in the process forces CMSs to evolve through a set of positive challenges.

For example, the Midgard RSS aggregator used to suck until there was proposal that Planet OSCOM could be implemented with another solution. This lead me to improve the aggregator to a level where it works acceptably well.

From #oscom:
daveb: darn! doesn't seem to have category-level feeds. I'll have to fix that.
gregor: hehe
gregor: i like how this forces us all to improve our wares
gregor: ask bergie sometime
bergie: well, there is always the challenge mentality in positive sense.
bergie: "Fix your solution or I'll implement it with *my* CMS"

Similar challenge from Bob Doyle to implement the OSCOM 3 site with skyWriter was what lead us to the Frankenstein CMS concept in the first place.

Indonesian Midgard Blog

Posted on 2004-05-25 17:56:31 UTC to . 0 comments.

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 also ideologically closer to many NGOs than proprietary software.

Another thing about NGOs is that they also seem to be giving back to the community by sharing their experiences and documentation. The Wilderness Society documented their deployment into the NGO Geeks website.

Thanks to Uung H.R. Bhuwono for informing be about the WALHI blog.

Tactical Tech is working to bring NGOs and the Open Source community closer to each other. Their Summer Source event brought Open Source developers and NGO techies together to learn and discuss common problems. They also package NGO-in-a-box, a distribution targeted at providing the whole NGO software environment with Free Software.

On CDG Terminal 2E Collapse

Posted on 2004-05-26 15:39:38 UTC to . 0 comments.

What makes this tragedy a bit more personal is that I spent six hours in the terminal on my February trip to South Africa, and was quite impressed by the futuristic architecture:



Nat Friedman writes in his blog:

An architect in Cambridge, Brad Bellows, is quoted as saying: "We don't want to purge the world of future Golden Gate bridges, Notre-Dame cathedrals, and Concordes. It should not be lost in the aftermath of its failure that Terminal 2E was a gorgeous piece of work."

Having read Lost Europe: Images of a Vanished World last week I can only echo that. So much great architecture gets destroyed either in wars or in the name of progress.

Spread of the Creative Commons

Posted on 2004-05-27 19:19:09 UTC to . 0 comments.

To celebrate these developments, my website is now available under the Creative Commons Attribution-Sharealike license 2.0. This can be identified in the "Some rights reserved" link in bottom of each page, and in machine-readable RDF metadata included in the pages.

At least the mocCC extension for the Mozilla Firefox browser identifies my site licensing correctly:

Apparently, not everybody is completely happy about the new licenses. Luis Villa writes:

Was cool to see that Creative Commons released new licenses, and I updated my stuff, but there is no longer an option to do non-attribution licenses, which makes them fairly non-free, DFSG-wise. That is unfortunate.

DFSG is the Debian Free Software Guidelines, a set of rules on what kind of software licenses can be allowed to the Debian GNU/Linux distribution.

RSS Feed of Midgard-User Posts

Posted on 2004-05-30 16:55:06 UTC to . 0 comments.

The RSS feed is courtesy of the Midgard-User Yahoo! Group.

Direct URL to the Midgard-User RSS feed is:
http://rss.groups.yahoo.com/group/midgard-user/rss

Thanks to Dave Winer for notifying that Yahoo! Groups now provide RSS feeds for all public group discussion lists.

OpenPSA Campaigns Support Event Registrations

Posted on 2004-06-01 13:40:14 UTC to . 0 comments.

To support this, a type selector was added to the OpenPSA campaign editor:


Success of WordPress: PHP vs. Java

Posted on 2004-06-02 12:36:30 UTC to . 0 comments.

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 to set up, maintain. Why do Java programmers insist on putting more logic in standard Java classes that make me have to touch ant, wait for compile and many times reboot my web server in order to test?

I think it's because PHP programmers want to get stuff done and Java programmers are geeks who want do stuff the "right" way. I'm getting sick of being in the latter camp.

Another reason is that WordPress is quick to set up and provides lots of features out-of-the-box, as noted by Matt Croydon:

It's set up for mutli-author blogging out of the box. It does trackback, pings weblogs.com, and does all of the basic things that I can think of out of the box

Harry Fuecks found some interesting design decisions in WordPress as well:

What interests me about Wordpress is the decisions taken in it's design, such as using using PHP itself as a template language, backed with HTML rendering functions. Classes come into play when dealing with "architectural domain" issues such as XML-RPC and i18n.

Using plain PHP and the Midgard Style Engine for templating has been the approach I've advocated for the Aegir community after we ran into scalability issues with FastTemplates.

Positioning a Consultancy on the Web

Posted on 2004-06-08 07:52:53 UTC to . 0 comments.

While it’s tempting to project a grandiose image of being a large multi-faceted company which is internationally sought-after, the problem with doing so is that you miss out on a lot of smaller work since it’s assumed you’re too expensive. If you are in fact a large company, the smaller work might be of little concern. If you’re not and you enjoy working on projects that require less of your time, then you may wish to reconsider the message you’re putting forward. The market is large, and getting larger; there is a need for all levels of skill and experience.

These are good points as we're preparing to redesign the Nemein corporate site. Nemein is now purely an Open Source consultancy focused on Midgard CMS and OpenPSA development and deployments, and so the site should match that.

Updated 18:00: Stopdesign's recently redesigned corporate site has lots of good ideas that we will most likely utilize in the nemein.com redesign. These include a nice portfolio and a page explaining the company's philosophy.

More specifically, our site should feature:

  • Interconnected solution descriptions (content management, project tracking, ...) and case studies
  • Personnel bios connected to personal blogs and a "Planet Nemein" aggregator
  • Corporate principles area which explains our model of working; outsourcing, Open Source, standards, security, etc.
  • Partners area where we list all the companies we work with. Communities like OSCOM, Midgard Project and Linux Greenhouse should also be mentioned
As we're all quite busy, the site should be constructed so that it will only feature basic descriptions and some screenshots on different things, and point to actual project sites for more information. Solution and case descriptions should be short and atomic, explaining only one solution per document instead of a whole application. This way the information should stay manageable.

Some Caucasian Visa Research

Posted on 2004-06-08 13:23:09 UTC to . 0 comments.

The planned travel route is:

Of these countries, I will need a visa to Russia, Ukraine, Georgia and Armenia. Unfortunately only the visas to Russia and Ukraine are available from Lähialuematkat, and take 12 business days to get. Georgian and Armenian visas need to be applied to in embassies of those countries.

The closest Georgian embassy is in Moscow. The travel bulletin on Georgia issued by Foreign Ministry of Finland claims:

Finnish citizens require a visa for entry. Visas can be bought from the airport when entering the country. Visas can also be bought from land borders of Georgia.

However, I'm inclined to doubt this. Especially as Georgian embassies in UK and USA don't say anything about it.

I guess the best course of action is to apply for Russian and Ukrainian visas now. I should also get in touch with both the Georgian embassy in Moscow and my Georgian contacts from Summer Source, Nata and Taya.

I'm not currently sure of whether to skip Armenia completely. While they sell visas over the web, the travel bulletin on Armenia tells that the border between Armenia and Turkey is closed. The history of that country would be very interesting, though.

While researching this, I found a Finnish travel journal of a similar trip done in 2002 with a car. Interesting story which also brings hope for actually accomplishing all the required paperwork. However, they also encountered some red tape:

After the good roads, tourists and gorgeous mountains of Turkey we crossed the Georgian border at night. The crossing involved a collection of dubious payments and intense arguing with bribe collecting border officials. (typical border crossing fees in East Europe include disinfection fees, road taxes, registration fees, car fees, fees for printing out documents, fees for the official to stamp a paper, fee for the border guard to open the final gate...)

So far I've never had to bribe anybody when traveling in East Europe, but maybe I've been just lucky. Most border officials and cops also seem to consider my motorcycle so cool that they don't bother with bribes.

If everything goes well, the trip will start directly after GUADEC. Looks like a group of my friends will come to Saint Petersburg for couple of days of good time, and to say farewells. We had lots of fun on similar trip to escort Jose to his Asian tour.

Updated 18:00: None of the embassy phone numbers I've found online seem to work. Hopefully my email to Nata and Taya gives some leads, otherwise it will be up to trying to get working numbers from my telco's number service.

Updated 2004-06-23 16:15: Taya sent some information on this:

georgian visa is available at border, and it costs 2 times more then if you take it somewhere else, . it's about 80 USD at border and must less in georgian consulate.. so i think you should drop by georgian embassy in moscow..

Thanks!

Take the Web Standards Survey

Posted on 2004-06-08 22:51:17 UTC to . 0 comments.

From their blog entry:

Here is your chance to let our project team members know who you are and which challenges you encounter when working with or using web standards.

WaSP deals with the client side standards of web, while OSCOM deals with the server side standards. Both are important for building scalable, accessible and enduring web solutions.

Bonus points to WaSP for providing Midgard as the second example of a content management system in the survey.

Via Mezzoblue.

Sailing on Viking Ship in 2001

Posted on 2004-06-08 23:37:54 UTC to . 0 comments.

The voyage started from the ancient castle in Viborg. After Visotsk where all necessary papers were signed, Heimlosa Rus took course to Finland. Good favorable wind allowed to cover 40 sea-miles and next morning we came to Lapuri. In 1976 wrecks of a ship were found there and then they served as a model for the Heimlosa Rus. After 6 years of sailing around Europe the ship came back home.

The captain's notes on the 2001 trip can be found from the project site. In addition, I have bunch of photos online.

I was originally planning to participate in the 1998 trip across the mediterranean, but couldn't because of too much work. In 2001 I also had to leave the ship already in Loviisa because of the trip to the Pamplona bull run.

Sailing on Heimløsa Rus was very memorable, and reading about it got me to miss the sea again. Time to talk again with Mikael about a sailing trip...


Open Source Consulting for the Government

Posted on 2004-06-09 15:33:53 UTC to . 0 comments.

Here in Finland the government has been pushing Open Source for a while already.

The Ministry of Finance started an Open Source examination project back in 2001, and made openness of code and interfaces a recommendation for governmental information systems (also in Finnish).

In addition, the Ministry of Interior is funding the Finnish Center for Open Source Software (COSS), an Open Source advocacy group.

The number of areas where Open Source products and solutions are applicable, is increasing steadily. COSS aims at recognizing the key sectors where needs and possibilities for Open Source are most urgent, and directs its efforts towards them.

COSS contacted me last week, and we will have to see how Nemein could work together with them. Cooperation with Open Source business incubators like Linux Greenhouse could also be interesting.

Midgard has already made some inroads to government use, including running the New Zealand eGovernment portal (see case study).

The Other Side of Pitkäsilta

Posted on 2004-06-09 16:00:54 UTC to . 0 comments.

Kallio is the "worker area" of Helsinki, with a very colorful reputation. It is also a very lively place, with its share of bars, public saunas and ethnic restaurants. Kallio is also the center of socialist 1st of may celebrations.

The album has many snippets of information on Kallio in Finnish, and features old photos from beginning on 20th century, with comparisons to how Kallio looks today.

Paska-G's Sprint Rally

Posted on 2004-06-10 22:08:22 UTC to . 0 comments.

The rally will start tomorrow from Helsinki and hopefully end up to Hammerfest, Norway, near the North Cape. Of course, with such cars nothing will be certain.

Our car, dubbed Muerte Despacio is a black eighties Fiat Uno. We painted the car yesterday, with the Paska-G logo, red stripes, flowers and flames (courtesy of Kerttu).

If the car holds up, we should be back around sunday. But before that there should be a reasonable number of adventures, poetry in west Finland and swim in the Arctic ocean.

Each car's team will be maintaining a travel log via SMS:
The SMS gateway has shown a tendency of crashing, but Kaukola has promised to monitor it over the weekend. Thanks!

At the time of writing, weather is +6C in Hammerfest. You can monitor it with this:
Helsinki weather Hammerfest weather

Updated 2004-06-14 11:06: The Sprint ended yesterday. We won. When the SMS gateway worked it was very cool, but there were some stability issues.

Paska-G's Sprint is Over - We Won

Posted on 2004-06-13 14:31:57 UTC to . 0 comments.


Our main advantage in the rally were the tight, coordinated pit stops. The longest stop with refueling, refreshing the team and washing the windscreen took 2 minutes and 39 seconds. In total there were six gas breaks. Our black leather team clothes must also have helped in winning.

The race was at its best when we had some very tight chase scenes with the Fc Smurffit team. Especially the turning point in Hammerfest was exciting.

All cars finished the race successfully, with the last team arriving to finish almost 10 hours behind us.

Berners-Lee Gets the Millenium Technology Prize

Posted on 2004-06-14 21:02:56 UTC to . 0 comments.

The honor, which is accompanied by one million euros, is bestowed by the Finnish Technology Award Foundation as an international acknowledgement of outstanding technological innovation that directly promotes people's quality of life, is based on humane values, and encourages sustainable economic development.

While many people in Finland have commented that this kind of vanity awards are a waste of public money, I believe that in this case it went to the right person. In addition to being the inventor of WWW, Berners-Lee also directs the World Wide Web Consortium (W3C).

I heartily recommend his book Weaving the Web on the background story of how the Web was formed.

In the meanwhile, Finnish industry has just donated additional 10 million euros to the technology award foundation, and advocate the government to raise the total sum to 25 million.

Updated 2004-06-17: Digitoday reports that Berners-Lee's technology prize has gotten much media attention in USA and nine European countries. For example, International Herald Tribune writes:

If Tim Berners-Lee had decided to patent his idea in 1989, the Internet would be a different place.

...

That is why some people think it is fitting - or about time - that he finally becomes wealthy, with the award Tuesday of the world's largest technology prize, the Millennium Technology Prize from the Finnish Technology Award Foundation. The E1 million, or $1.2 million, prize for outstanding technological achievements that raised the quality of life is supported by the Finnish government and private contributors.

OSCOM 4 Is Coming

Posted on 2004-06-15 15:15:15 UTC to . 0 comments.

The theme of OSCOM.4 is "Cross-Pollination". This will be a conference with assistance from the Apache Software Foundation for the ApacheTracks content.

The Open Source content management community is rich and varied with many projects such as OpenCMS, Plone, Midgard, Cofax, Drupal, and many others. Almost all Open Source CMS rely on software from the Apache Software Foundation (ASF), and we look forward to lots of cross-pollination between the Apache and CMS communities. In addition, market awareness is rapidly growing, with several Open Source CMS and ASF projects being mentioned favorably in recent analyst reports.

While I will mostly be working as an organizer, I'm also planning to submit a proposal on a Practical CMS interop sprint.

Updated 18:42: Apache sessions will be called ApacheTracks instead of ApacheCon Europe.

Minor Blog Updates

Posted on 2004-06-15 19:06:34 UTC to . 0 comments.

Commenting was implemented with the net.nemein.discussion component using the methods described on Midgard site. Since I'm starting to get overwhelmed with spam, commenting my blog posts might be a good way to reach me.

So far all commenters will only be identified as "Anonymous Poster". I might provide some friends later with their own accounts to make moderation easier.

There have also been some background changes, including wider CSS layout box for the MidCOM authoring interface, upgrade to Aegir 1.0.3 nightly and nicer configuration for the HTMLAREA editor. Now the toolbar includes image insertion and <blockquote /> support:


Updated 2004-06-16: Here is the toolbar configuration snippet from /sitegroup-config /midcom.helper.datamanager.widget_html /config:
<?php

$nav = new midcom_helper_nav($GLOBALS["view_contentmgr"]->viewdata["context"]);
$leafid = $nav->get_current_leaf();
$leaf = $nav->get_leaf($leafid);
$leaftrueid = explode('/',$leaf[MIDCOM_NAV_URL]);
$leaftrueid = $leaftrueid[1];

$result = <<<EOF

// FIELD {$this->_fieldname} HTMLAREA init script START
var {$this->_fieldname} = null;

function {$this->_fieldname}_init() {

if (!document.getElementById("{$this->_fieldname}")) {
return;
}

config = new HTMLArea.Config();
config.imgURL = "{$prefix['images']}";
config.popupURL = "{$prefix['htmlarea']}popups/";
config.bodyStyle = "background-color: #fff;";
config.statusBar = false;
config.formatblock = {
"Heading 2": "h2",
"Heading 3": "h3",
"Normal": "p",
"Quote": "blockquote",
"Formatted": "pre"
};

config.registerButton("insertimage2", "Lisää kuva", "29eda1118f1e58028a3198e2a9c77271/ed_image.gif", false,
function(editor, id) {

chooser = window.open("/aegir/rcs/image/popup/?type=article&id=$leaftrueid&htmlarea=Y&hostid=", "chooser","height=450,width=400,modal=yes");
chooser.ifield = editor;

}
);

config.toolbar = [
[ "formatblock", "bold", "italic", "separator",
"justifyleft", "justifycenter", "justifyright", "separator",
"insertorderedlist", "insertunorderedlist", "outdent", "indent", "separator",
"createlink", "insertimage2", "inserttable", "htmlmode","popupeditor"]
];

{$this->_customconfig}
{$this->_fieldname} = new HTMLArea("{$this->_fieldname}",config);
{$this->_fieldname}.generate();
};

// FIELD {$this->_fieldname} HTMLAREA init script END

EOF;
?>

Porkkalan Meripelastajat now in Midgard CMS

Posted on 2004-06-16 11:03:25 UTC to . 0 comments.

Midgard CMS and MidCOM enable the organization to easily maintain their information, announcements and photos on the website.

The site layout was designed by Henri Kaukola and implemented in XHTML and CSS using standards based web design methods.

Hosting for the website is provided by our partner Finnish Teleservice Center. User training is handled by TMV-Vision.

TMV-Vision has a news release in Finnish about the site launch.

OpenPSA User Documentation Online

Posted on 2004-06-16 16:35:36 UTC to. 0 comments.

The most complete sections are Personnel, Projects and Sales.

Whole OpenPSA documentation section is Open Content available under a Creative Commons license.

On Oracle's CMS Patent

Posted on 2004-06-17 16:10:35 UTC to . 0 comments.

The patent abstract explains how a Web CMS works:

A web site creation and maintenance system permits distributed control and centralized management of a web site. The physical implementation of the web site resides on a database maintained by a database administrator. The web site system permits a site administrator to construct the overall structure, design and style of the web site. This allows for a comprehensive design as well as a common look and feel for the web site. The web site system permits content for the web site to originate from multiple content contributors...

This is all clearly stuff that Midgard CMS and other CMSs have been doing for a long time before the patent was filed. There was even an Oracle port of Midgard available at almost the same time the Oracle guys applied for their patent.

Normally ludicrous American software patents like this wouldn't worry me, but now that they will also start to apply in European Union, it is a bit scarier.

Midgard CMS was released to public in May 8th 1999, and the Oracle patent was filed in March 31st 2000, so we have easily provable prior art.

There is some discussion on midgard-user on what to do about this. One way would be to approach The Public Patent Foundation. As the problem applies to all database-based content management systems and not only Midgard, it might even make sense for OSCOM act on it.

No ePatents!

Making Web Scripts Validate

Posted on 2004-06-20 23:05:35 UTC to . 0 comments.

When standards-conscious designers validate their XHTML and CSS templates, everything is nicely compliant up until the point where they start tying in the necessary automated systems like ad software, CMSes, or e-commerce apps. The tools then get in the way and code is needed to fix validation, but a lot of designers don’t code.

This is a serious issue if we want to enable standards-based web design or web browsing with wider range of devices like mobile phones and screen readers.

Most Open Source CMSs seem to either make it impossible or difficult to create valid websites with them. For example, when implementing my personal website, I had to make several patches to different MidCOM components to make it validate. And even now some pages have issues, not to mention that the content created with my current WYSIWYG editor doesn't go through any validation or clean-up loop.

This used to be an issue CMS developers didn't think much about. However, as XHTML is becoming more common the level of importance is rising. Dave Shea gives some ideas on how to improve the situation:

What we need is to start working together like this on a larger scale. You’ve gone to lengths to programmatically fix improperly nested tags? Great, write it up. You have a killer PHP function for parsing out raw ampersands that can be copied and pasted into a site-wide header? Perfect, share it. You can make a bad tool better? Do it! We don’t have to keep re-inventing the wheel for every new site, we can build common code bases that make validation painless and share them.

Valid XHTML output will be important step in the practical CMS interop plan. XHTML and CSS are not yet listed as standards endorsed by OSCOM. While most CMSs deal with more than just the web, these should be the base output standards used for that particular medium.

Tampere Experience

Posted on 2004-06-21 07:12:56 UTC to . 0 comments.

On friday we ate well in the Viking restaurant Harald, and enjoyed some beers in the Plevna microbrewery. Walking around in the Finlayson area of 19th century industrial architecture was also very nice.

Unfortunately the Center party had their national convention in the city during the weekend, and we had trouble finding accommodation. With luck we were finally able to get what was probably the last free double room in Tampere from Hostel Uimahallin Maja. 54€ per night was quite reasonable for a large room with capacity for up to four people and view to the park near Pirkankatu.

We started the saturday with coffee and strawberries on a pier and listening to a brass band. After that we visited the Lenin museum.

The main event for the day was visiting the Vapriikki museum complex, where there were three very interesting exhibitions: Samurai - Thousand Years of Cults and Culture, Life in the Past Lane - Motorcycles from the 50s and Palace of Knowledge - Treasures from Kunstkammer, St. Petersburg. All three can be visited with a single ticket and are highly recommended.



All in all, a very good Tampere experience.

Planets and Reading Lists

Posted on 2004-06-21 19:37:53 UTC to . 0 comments.

My full weblog is aggregated to Planet Midgard, Summer Source Blogs and Midgard developers on OSCOM.

In addition to aggregating all posts, the Midgard category is aggregated to Planet PHP, the Business category to Linux Greenhouse Blogs and the OSCOM category to Planet OSCOM. OpenPSA News are generated from my OpenPSA category.

These aggregators combined with people reading the weblog with news readers has ensured that RSS is by far the most popular way of accessing my website.

RSS is also my main method of accessing news and weblog postings. Currently my NetNewsWire Lite is following 83 different news feeds, mainly from the technical and web design communities.

I've now made my subscription list public in OPML format. This file can be imported into a news reader to get started with a good set of web and CMS related subscriptions.

Standard Labels in XHTML Layouts

Posted on 2004-06-21 19:56:50 UTC to . 0 comments.

Using standard CSS classes was one of the ideas I posted on practical CMS interop. If different Content Management Systems and web scripts could standardize on these keeping layouts synchronized between them would be very easy.

In his follow-up, Andy provides a more detailed list and structure of IDs to use. This could well be the starting point for standardization.

Updated 2004-06-23 16:20: Gregor J. Rothfuss followed up on the idea, and proposed an OSCOM skin repository of CSS styles for the common elements.

The story was also picked up by CMS Watch.

Updated 2004-08-11 14:24: Thorsten Scherler will hold a session on CSS naming conventions on Sep. 29th in the OSCOM 4 conference in Zürich, Switzerland.

Nemein's New Visual Guidelines

Posted on 2004-06-23 15:28:20 UTC to . 0 comments.

Over half of the new business Nemein gets comes through the Web site, so it makes sense to put some effort into improving it. The old site was very product-focused and didn't really communicate how the company works.

Design goals for the new site included:
  • Highlight solutions instead of the (Open Source) products behind them
  • Highlight Nemein's client list and some case studies
  • Explain why Open Source and Open Standards are important
  • Replace boring press releases with more current blog postings from Nemein consultants
  • Showcase how Nemein works on pro bono basis with some NGOs and Open Source projects
Some example layouts:
We would be very happy to get some feedback on the designs as weblog comments.

The site will be implemented with Midgard CMS using Web standards like XHTML and CSS.

Content Creation with SMS

Posted on 2004-06-30 20:06:17 UTC to . 0 comments.

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

Then the SMSs are handled by a Midgard page which has the following code:

<?php
/*
Routa MC Travel Journals
SMS logbook upload handler

Henri Bergius <henri.bergius@iki.fi>

Based on snippet /TechSupport/UI/Handlers/Email-import
from OpenPSA (www.openpsa.org)

2004-06-30: Adapted from the Paska-G:n Sprintti upload handled (bergie)

Each topic to be handled by this system must have parameters
RoutaSMS/number/name set for matching the incoming SMSs to
articles and authors.

If notifications are required, they are handled by adding
parameters in format RoutaSMSsubscribe/name/email to the
root topic.

Note: the mail transfer agent expects to receive uppercase
OK when the mail has been successfully processed. If that is
missing or uppercase ERROR has been transmitted the email
will not be removed from server.
*/

// GUID to the topic where log topics reside
$routasms_topic_guid = "c4b2f1bead1f8a25f4c553ef4fe5a546";

// GUID of article where unrecognized messages are sent or NULL
$routasms_misc_article = null;

// User account for updating log articles
$routasms_username = "USERNAME";
$routasms_password = "PASSWORD";

// SMS receiver email address to remove from messages
$routasms_email_receive = "gateway@myorganization.org";

// Whether to enable email notifications
$routasms_notifications_enabled = true;
$routasms_notifications = array();

// Start buffering for the log
header("Content-type:text/plain");
ob_start();
echo "=================================================\n";
echo "DEBUG: Started email handling on ".date("Y-m-d H:i",time())."\n";
echo "DEBUG: User-Agent: ".$_SERVER['HTTP_USER_AGENT']."\n";

// Load the log topic
$routasms_topic = mgd_get_object_by_guid($routasms_topic_guid);
echo "DEBUG: Loaded topic ".$routasms_topic->name." (#".$routasms_topic->id.")\n";

// Function for logging the output
function routasms_log() {
$data = ob_get_contents();
//write the contents to a file
$fp = fopen("/tmp/routasms-upload.log","a");
fwrite($fp,$data);
fclose($fp);
// Output the status
ob_end_flush();
}

// Don't bother to even initialize anything if we don't have anything to process
if (!$_REQUEST["mailbody"]) {
echo "ERROR: No body received\n";
routasms_log();
exit();
} else {

// Check that we got the whole email
echo "DEBUG: got body, reported size=".$bodysize."b actual size=".strlen($mailbody)."b\n";
if ($_REQUEST["bodysize"] != strlen($_REQUEST["mailbody"])) {
echo "ERROR: Reported and actual bodysize different, transfer error ?\n";
routasms_log();
exit();
}

// Load Mail class from OpenPSA
mgd_include_snippet("/Nemeinnet_Core/Mail");

// Load NemeinRCS revision control script
mgd_include_snippet("/AegirCore/config/config");
global $rcsroot;
$rcsroot = $set["rcsroot"];
if (!$rcsroot) {
$rcsroot = "/var/lib/aegir/cvs";
}
echo "DEBUG: Set revision control root to ".$rcsroot." (got ".$set["rcsroot"]." from Aegir)\n";
mgd_include_snippet("/AegirCore/lib/rcs_functions");

// Load NemeinJournal classes
mgd_include_snippet("/NemeinJournal/Core/init");

// Authenticate the user if needed
if (!$midgard->user) {
mgd_auth_midgard($routasms_username, $routasms_password, 0);
$midgard = mgd_get_midgard();
if (!$midgard->user) {
echo "ERROR: No user authenticated (or authentication error)\n";
routasms_log();
exit();
}
}
$user = mgd_get_person($midgard->user);
echo "DEBUG: Authenticated user ".$user->name." (#".$midgard->user.")\n";

// Parse the email
$mail=new nemeinnet_mail();
$mail->body=$_REQUEST["mailbody"];
$mime=&$mail->mimeDecode();
echo "DEBUG: decoded body size ".strlen($mail->body)."b\n";

// Get the sending phone number
$name_preg="/[\"']?([^<@\"']*)[\"']?/";
preg_match($name_preg, $mail->from, $name_matches);
$routasms_number = preg_replace("/\.|_/", " ", $name_matches[1]);
echo "DEBUG: SMS sent by number ".$routasms_number."\n";

// Get the log message
$routasms_message = $mail->body;

// Remove receiver email address from message
$routasms_message = str_replace($routasms_email_receive." ","",$routasms_message);

// Get the log time
// TODO: read from the email
$routasms_time = time();

// Log article object
$routasms_log = false;

// Name of the sender
$routasms_sender = false;

// Load the log topics
$log_topics = mgd_list_topics($routasms_topic->id);
if ($log_topics) {
while ($log_topics->fetch()) {

// Load phone numbers
$number_params = $log_topics->listparameters("RoutaSMS");
if ($number_params) {
while ($number_params->fetch()) {

// Match with sending number
if ($number_params->name == $routasms_number) {
echo "DEBUG: SMS number matched with topic ".$log_topics->title." (#".$log_topics->id.")\n";
$routasms_sender = $log_topics->parameter("RoutaSMS",$number_params->name);

$routasms_log_topic = mgd_get_topic($log_topics->id);

// Load notification subscriber list
$notification_params = $routasms_log_topic->listparameters("RoutaSMSsubscribe");
if ($notification_params) {
while ($notification_params->fetch()) {
$routasms_notifications[$notification_params->name] = $routasms_log_topic->parameter("RoutaSMSsubscribe",$notification_params->name);
}
echo "DEBUG: Loaded ".count($routasms_notifications)." notification subscribers\n";
}

// Check if sender wants to create new entry
if (stristr(substr($routasms_message,0,6),"NEWLOG")) {

// Read the title of the new entry
$routasms_newlog_title = substr($routasms_message,7);
echo "DEBUG: Received NEWLOG command for entry \"".$routasms_newlog_title."\"\n";

// Create new NemeinJournal entry
$routasms_newlog = new journal_entry();
$routasms_newlog->topic = $routasms_log_topic->id;
$routasms_newlog->title = $routasms_newlog_title;
$routasms_newlog_id = $routasms_newlog->save();
if ($routasms_newlog_id) {
echo "DEBUG: Created new NemeinJournal entry #".$routasms_newlog_id."\n";

// Send notifications on the new journal entry
if ($routasms_notifications_enabled && count($routasms_notifications)) {
foreach ($routasms_notifications as $name => $email) {
// Send the notification in format supported by Nemein's SMS gateway
mail('"'.$name.'" <'.$email.'>','New journal entry '.$routasms_log->title.' ('.$routasms_log_topic->name.') was created by '.$routasms_sender,$routasms_log_topic->name.": New entry \"".substr($routasms_message,7)."\"",'From: "'.$routasms_topic->extra.'" <'.$routasms_email_receive.'>');
echo "DEBUG: mailed notification to \"".$name."\" <".$email.">\n";
}
}


// Entry has been created, exit
echo "OK\n";
routasms_log();
exit();
} else {
echo "ERROR: Failed to create NemeinJournal entry, reason ".mgd_errstr()."\n";
}

} else {
// Fetch the latest log entry article
$log_topics_articles = mgd_list_topic_articles($routasms_log_topic->id);
if ($log_topics_articles) {
if ($log_topics_articles->fetch()) {
echo "DEBUG: Loaded latest NemeinJournal entry #".$log_topics_articles->id."\n";
$routasms_log = new journal_entry($log_topics_articles->id);
}
} else {
echo "ERROR: No NemeinJournal entries found in topic\n";
// TODO: create empty log item??
}
}
}

}
}

}
} else {
echo "ERROR: No log topics under root topic\n";
routasms_log();
exit();
}

// Load the misc article if possible
if (!$routasms_log && $routasms_misc_article) {
echo "DEBUG: SMS number didn't match, loading misc article\n";
$routasms_log = mgd_get_object_by_guid($routasms_misc_article);
}

// Default to sending number as sender name
if (!$routasms_sender) {
$routasms_sender = $routasms_number;
}

// Store the message to the log
if ($routasms_log) {
// Start the message block
$routasms_log->content .= "<p>\n";
// Store message
$routasms_log->content .= $routasms_message;
// Store date
$routasms_log->content .= "\n <em>(".date("Y-m-d H:i",$routasms_time);
// Store sender
$routasms_log->content .= " - ".$routasms_sender.")</em>\n";
// End the message block
$routasms_log->content .= "</p>\n";
// Save the log
if (get_class($routasms_log) == "journal_entry") {
// NemeinJournal uses save() method instead of Midgard's standard update()
$status = $routasms_log->save();
} else {
$status = $routasms_log->update();
}
if ($status) {

// Send notifications on the journal entry update
if ($routasms_notifications_enabled && count($routasms_notifications)) {
foreach ($routasms_notifications as $name => $email) {
// Send the notification in format supported by Nemein's SMS gateway
mail('"'.$name.'" <'.$email.'>','Journal entry '.$routasms_log->title.' ('.$routasms_log_topic->name.') updated by '.$routasms_sender,$routasms_log_topic->name.": ".$routasms_message,'From: "'.$routasms_topic->extra.'" <'.$routasms_email_receive.'>');
echo "DEBUG: mailed notification to \"".$name."\" <".$email.">\n";
}
}

// Update revision control information
rcs_update($routasms_log);

// Message was saved successfully, say OK
echo "OK\n";

} else {
echo "ERROR: Failed to save log article, reason ".mgd_errstr()."\n";
}
} else {
echo "ERROR: No log article found\n";
routasms_log();
exit();
}
}
// Log status
routasms_log();
?>

The phone has had a tendency to crash, but Rambo is looking to fix that.

More African Photos Online

Posted on 2004-07-01 16:40:08 UTC to . 0 comments.



The photos still need to be titled and added to appropriate travel journal entries, but that might have to wait until I return from the Black Sea.



134 of my 391 photos are now available. The rest are quite repetitious and will probably remain offline. All photos are of course available under the Creative Commons license.

To the Black Sea

Posted on 2004-07-02 20:46:00 UTC to . 0 comments.

Back from Caucasus

Posted on 2004-08-11 14:11:28 UTC to . 0 comments.

Bergie on Georgian Military Highway

The 11,000km trip was amazing, including diverse places like St. Petersburg, Crimea, Georgia, Istanbul and Kosovo.

Part of the 900 photos I took from the trip are available online.

MidCOM and HTTP Conditional GET

Posted on 2004-08-12 14:14:51 UTC to . 0 comments.

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:

torben: bergie: the midcom cache does include last modified and expires headers by default, so http head requests in a cached system already work fine with browser caches
torben: at least with nathan-syntronics.de i have a greatly reduced bandwith through this
torben: bergie: apart from that i would wait with further stuff until mrfc 6 has been implemented (or rejected), now that you are here, we can actually start discussing it again

MidCOM's caching engine can be enabled in the "MidCOM Site Settings" interface in the MidCOM site template (midcom-template).

In addition to providing the correct expiry headers, the NGO Geeks provided Midgard Caching Headers patch to the original "Simple Dynamic Site" template that have since been included to midcom-template.

Here is the settings interface:

midcom-template cache settings UI

It would be nice to get some actual testing figures on how well the current HTTP Conditional GET code in MidCOM works.

On a related note, this weblog has been upgraded to latest CVS HEAD of MidCOM 1.4 technology preview today. This brings new features, like the latest HTMLAREA goodness.

Helsinki Business Polytechnic goes MidCOM

Posted on 2004-08-12 16:38:30 UTC to . 0 comments.

The conversion was done by Nemein consultant Henri Kaukola. The old site had been powered by the NemeinNavBar system. Conversion to MidCOM was handled using my nnb2midcom.php script. MidCOM offered several advantages to the old setup:
  • Clean, file-like URLs
  • "Edit this page" integrated authoring tool
  • Availability of different components, or site features
  • Easily configurable metadata fields for content
As the site was going to be upgraded anyway, we took the opportunity to convert Helia's layout to table-free XHTML and CSS. This reduced the size of the site front page from 16,88KB to 9,37KB, a 45% saving. Approximately same saving should apply to all pages on the site.

The new layout should help with page download times, server load and scaling the site down to mobile devices and screen readers.

Midgard and UTF-8 Instructions

Posted on 2004-08-17 11:18:23 UTC to . 0 comments.

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 Ruby's Atom Unicode test. There are now problems like MidCOM bug #78 reports.

Eric Sink on Software Pricing

Posted on 2004-08-17 12:05:35 UTC to . 0 comments.

Some ISVs use no-cost products or open source strategies quite effectively. For example, SleepyCat is a very successful small ISV that developed its own software. At SleepyCat, they use an open source strategy. Their product is wildly popular.

However, it's easy to forget just how expensive it is to build software. The ideal loss leader is something that is quite cheap. Although the cost of goods on software can be zero, software development is really expensive. If you are building a piece of software for the specific purpose of giving it away, you are accumulating a lot of costs that need to be repaid in some other way.

The way Nemein works is that we sell and contribute to existing Open Source projects. The initial cost of building the application has already been carried by somebody else, like in the case of Aegir by Hong Kong Linux Center and in case of MidCOM by Link-M.

Our clients get the application itself for free, and only pay for deployment, training and support. If modifications or improvements are needed we will either do them ourselves or outsource the work to one of our Midgard partners. In these cases the client will pay normally for the project.

Even OpenPSA, which was built from ground-up by Nemein has been mostly project-financed. One client paid for the first CRM version, one for the Project Tracker, one for the Group Calendar, etc. And since then smaller improvements have almost always been financed by some deployment project.

Running OpenOffice.org on Mac OS X

Posted on 2004-08-17 17:45:05 UTC to . 0 comments.

The tutorial seems to solve the main problems I've had with OOo on my iBook, including keyboard mapping and PDF generation. What it doesn't help with, though, is the horribly slow start-up time.

Another interestion option would be NeoOffice/J, a Java port of OpenOffice 1.0.3 that runs natively on Mac OS X. As an X11 server won't be needed the start-up times should be noticeably faster.

NeoOffice is still under development. The project page states:

As this is a development project, NeoOffice/J is intended for software engineers and is not yet complete enough for regular users.

In the related Slashdot discussion however, someone commented:

I think NeoOfficeJ is a fantastic implementation of OpenOffice. I switched to it because NeoJ will load associated files when you double click them. OpenOffice in its current OS X X-window implementation doesn't do this very consistently. On top of that the integration with OS X is just so much cleaner and friendlier.

OSCOM 4 with ApacheTrack - Time to Register

Posted on 2004-08-18 10:25:24 UTC to . 0 comments.

More information can be found from the event press release:

Open Source CMS Conference 4
ETH Zurich, Switzerland
Wed, Sept. 29th - Fri, Oct. 1st, 2004

OSCOM is proud to announce that registration for OSCOM.4 is now open, at $500 for three days. OSCOM.4 is a conference on open source content management with assistance from the Apache Software Foundation for the ApacheTrack content.

The conference program includes several interesting sessions, including corporate blogging, business planning for Open Source CMS and several PHP technology presentations.

OSCOM 4 with ApacheTrack banner

Disclaimer: I'm member of the OSCOM 4 organizing committee.

Elisa's Network is Down

Posted on 2004-08-19 15:14:02 UTC to . 0 comments.

The connection went down first time around noon, and returned after 2pm. Now the connection has been down since around 3:45pm.

When trying to reach Elisa's Network solutions site to find out when things will start working again, the ColdFusion server only responds with:

An error occurred while attempting to establish a connection to the server.

The most likely cause of this problem is that the server is not currently running. Verify that the server is running and restart it if necessary.

Unix error number 146 occurred: Connection refused

Finnish Teleservice Center (FTC) has an announcement about the situation. Elisa hasn't given any information on when the network will be up again, and their announcements page is also silent on the issue.

This outage has again reminded me about the importance of having local copies of data. For example, I can't send any invoices because our OpenPSA installation is in the affected network. Time to create a replicated setup of the important data? That would help offline working as well.

Luckily my blog is hosted by Nehmer.net in Germany instead.

Finnish Championship of Fireworks

Posted on 2004-08-20 10:05:57 UTC to . 0 comments.



We watched the contest from Kaivopuisto near Cafe Ursula. The whole central Helsinki was very crowded, but by lane splitting a bit with my motorcycle we could easily find a good viewing point.

The contest has been set up in the memory of the shelling of Viapori by a British and French fleet during the Crimean war in 1855. The citizens of Helsinki gathered to the Kaivopuisto area to watch the 46 hour long bombardment of the sea fortress, and the flare rockets shot by the fleet at night. Two of the firework shows re-enacted these scenes by simulating cannon shots from the walls of the fortress.

This year the contest was won by Tähtiraketti with their show Evolution. Spectator SMS votes went for Ilotulitus with their show, The Art, Science and Technique.

Hunting a PHP segfault

Posted on 2004-09-01 10:22:12 UTC to . 0 comments.

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 output with a flush() call. In the net.nemein.registrations component a workaround is still pending.

Piotras is looking at the issue, and has decided to delay the Midgard 1.6.0 release until a solution has been found.

He writes on the Midgard developer list:

The source of last reported segfaults (and more not reported yet) is zend_register_list_destructors_ex called in PHP_MINIT_FUNCTION.
static void _midgard_list_fetch_dtor(zend_rsrc_list_entry * rsrc)
{
midgard_res * res = (midgard_res*)rsrc->ptr;
// here we get random garbage from Zend (perk...e!)
if (res != NULL) mgd_release(res);
}
Looks like rscr struct passess some garbage which is not NULL so there is no easy way to check it in mgd_release or even earlier.

According to some Google findings, the same segfault is in both PHP4 and PHP5. Chat log about the issue from #midgard is also available.

Updated 2004-09-17: Piotras found a solution to the problem and committed the fix to Midgard CVS on September 6th.

Che Guevara's Motorcycle Diaries

Posted on 2004-09-06 10:43:25 UTC to . 0 comments.

First part of the movie tells a very appealing and realistic tale of a motorcycle road trip in the third world. Many of the scenes and situations feel very familiar with my own road trips.

After the sad demise of their '39 Norton the movie gets more serious, and describes the Che's Siddhartha-like enlightment through views into the poverty and plight of the Indians and rural workers. The stories of despair and unemployment in the fifties are very similar to the descriptions in Ted Simon's mid-seventies Jupiter's travels.

The movie was based on the Che's and Alberto's personal travel journals and photos. Che Guevara's The Motorcycle Diaries is available via Amazon.

Disclaimer: the links to Amazon include my associate ID, so possible generated sales may give me gift certificates there.

Wagner's Ring of the Nibelung

Posted on 2004-09-08 08:47:15 UTC to . 0 comments.

Kerttu and Bergie in the opera. Photo taken with the crappy Nokia 6820 cameraThe Nibelung's Ring series is based on a combination of Nordic mythologies and medieval German stories. A central part is played by the ring of power forged by dwarf Alberich from the stolen Rhine gold. The struggle for the ring eventually brings about Ragnarøk, the end of the Norse gods. Wagner composed the series in mid-19th century.

While we did not appreciate the modernized, angular settings of the plays, lots of the performances were very pleasant. I especially liked Sieglinde in Die Walküre and Hagen in Götterdämmerung. Wotan was also very good in the first two operas.

Watching the whole 16 hour series in one week was quite an excercise, but we still were able to enjoy it and go for some after-opera beverages in Ateljé.

Endorsing MidCOM's Migration to File System

Posted on 2004-09-08 12:12:28 UTC to . 0 comments.

Current situation

To 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 on the application layer. With MidCOM, the actual point applications, or components are written following a strict set of coding standards and stored in the Midgard snippet tree. The components must provide a standardized set of interfaces, and all input and output with them is controlled by the MidCOM framework.

The fact that all application code is stored in the database causes several problems, the topmost being lack of good development tools and difficulty of version control. Torben explains these points well in the "Current problems" section of the mRFC.

Additional issue is performance. A component framework is a big thing, and its services and interfaces require many code libraries to be loaded. It has been calculated that an average MidCOM page request causes 2000 database queries. With careful optimization we could probably get the number down to about 1300, but that is still a lot. If we move the libraries to file system, only database I/O will be actual content and template queries. Also, if the code is stored in the file system, it can be compiled into faster byte code using tools like Zend Optimizer.

Reasoning for the old way

With all these issues, why did we do the illogical thing of putting our code into the database in the first place? The code snippet system was added to Midgard in the 1.4.0 cycle, and there were several reasons:
  • At that time most Midgard applications were much smaller
  • Storage in Midgard database provides metadata support. Licensing information, documentation and icons can be stored into the code objects themselves
  • Code can be replicated together with the site data
  • Editing code does not require filesystem access
  • Permissions come from Midgard's group system
An important consideration is also that the lack of file system access makes Midgard much more secure, as noted by Alexander Bokovoy in his Midgard 5th anniversary presentation. When the whole system accesses only the database, and even that only through the Midgard libraries, this cuts down the risk of security holes through bad coding. In its 5 years of history, there hasn't been a since publicized security hole in Midgard. And this even though many high-profile hacking targets like large organizations, military, financial institutions and governments run Midgard.

Changing deployment models

Back with Midgard 1.4.0 almost all Midgard applications were built in-house and were not distributed. This way version control of the code was more closely connected with the general staging/live routines of the developers. For this the fact that code could be replicated with content was advantageous.

Now most applications like MidCOM and its components are being developed in centralized fashion by the Midgard Community. In this setup code is developed and tested on separate systems, and then release versions are deployed widely across production servers. This way version control of the code between a content staging and live is not so important, as both will share the same component versions, and will differ only in versions of templates, configuration and local code.

Separated concepts

Moving MidCOM to file system not only makes development easier, but will also make the separation of centralized "system" code and local scripts clearer. MidCOM and its components are a part of the Midgard Framework, and are installed by the system administrator and not modified by a site developer. The things that a site developer will modify will be local and specific to a website, organization or a server environment, and so are stored into the Midgard database. This includes local configurations, output templates and local scripts.

The new way

If mRFC 0006 gets implemented, all MidCOM core code and components will be developed just like any PHP application, using the file system and include() statements. This means that version control and development will become substantially simpler.

However, what we lose there is the ability to install a whole MidCOM component or the framework from a single repligard .xml.gz file. I have proposed using the PEAR installer for this, and Torben has promised to include it to the mRFC.

The PEAR installer uses an XML configuration file for defining the files shipping with a package, and enables server administrators to install new software with a single, Debian APT-like command regardless of the operating system. The PEAR installer is available by default on PHP 4.3.0 and newer releases.

Using the common PHP installation methods of the PEAR community would make The Midgard Project far better connected with the PHP community in general and promote code sharing.

To promote this even further, the Midgard Community should fully embrace the PEAR Coding Standards, and use the same code documentation tools.

Theoretically MidCOM could even move to the PEAR repository, but it would probably be seen as too Midgard-specific by the PEAR community. It provides a quite generic component architecture, but all components and its methods like the URL parser depend heavily on the midgard-php extension.

mRFC status

Torben has still left the proposal to Draft state, and some things will have to be polished before it can be voted on.

If the mRFC passes the actual transition should be relatively simple. We can just use the Aegir FileSync AddOn to copy all code snippets of the MidCOM core and component directories to the file system, and then programmatically change all mgd_include_snippet() calls in the system to use MidCOM's internal $midcom->include() method.

The PEAR package description files should be easy to generate automatically. In addition, we should create a "MidCOM uninstaller" Repligard file that would include delete calls for all objects in the MidCOM 1.4.0 release.

The actual MidCOM sites will be easy to migrate, as most of them contain only a single mgd_include_snippet("/midcom/midcom") call. This could be either changed to a filesystem require() call, or the MidCOM system could ship a stub snippet for this.

Updated 13:20: There is some discussion about this on the midgard-dev mailing list.

Updated 2004-10-28: The vote on mRFC 0006 passed today, so we can finally start implementation.

Getting used to the new office

Posted on 2004-09-09 10:01:32 UTC to . 0 comments.

Rambo in the office, photo taken with Nokia 6820

We had been "practicing" cohabitation with the two companies since early June, with the Innopoli2 office mostly serving as a mailbox, and so the move was quite painless. Some of the office infrastructure was changed, like installing our network printers and adding more desks.

The office has much less capacity than the combined number of employees in the three companies, but that is not a problem since most people are always at a client.

The business synergies are quite good. We build web solutions and business applications on Open Source software, TMV provides network solutions and Linux support, and FTC hosts sites with Midgard CMS.

Sepetlahdentie 9 D entrance

The office is located in Matinkylä, Espoo quite near the Iso Omena shopping center.

Introducing Suicide Surfers

Posted on 2004-09-09 16:06:49 UTC to . 0 comments.

Joe and Jay have never surfed, but nevertheless left their regular life and will head soon to Australia to learn surfing. Why? Joe explains in a recent diary entry:

Most of the people I've talked about my plans for the coming year have had these strange ideas about leaving to somewhere. They've been saying things like "I'd like to do that too, but I have all these commitments to handle." Facts are:

1. (Geography) We have maybe the worst climate in the world. No real summer and last decent winter was -98.

2. (Technical knowledge) Only thing to be proud of is a company, that technically isn't finnish and abandoned its corecompetencies by selling the branch which manufactured rubber boots. Result: finnish are proud of mediocre cellphones, which are made in china and generally thought to be japanese.

3. (Culture) Our best placement in Eurovision song contest is 6th place from 70's. Luckily other europeans have decided, that there is no point to come to the contest every year, if you lose. So finnish singers have to embarrass themselves only once in two years.

4. (Food) Most of the recipes we have inherited from our grandparents are practically uneatable. Take mämmi, traditional easter dish, for example. What kind of pervert would like to eat something that resembles shit of carnivorus animal after it has been laying on freezen walkway for two nights?

5. (People) Peaople just suck.

You may enjoy doing same things 9to5 every day with same people, at same places in same shitty climate. But I'm off.

The site's IA is also interesting; in addition to posting photos, videos and diary entries, the site also collects data on when they got lucky last time. And it is all nicely in XHTML and CSS. All frequently updated areas provide handy RSS 2.0 feeds for subscription.

Currently they provide a guestbook for commenting, and are planning a discussion forum.

This project will be amusing to follow.

I'm Moblogging Now

Posted on 2004-09-10 14:54:09 UTC to . 0 comments.

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 camera
  • Select "sent" from the options -> "send as MMS"
  • Type the photo caption to the MMS
  • Select "send as email"
Then the photo gets sent via GPRS to an IMAP box reserved for this purpose. My server has a fetchmail script polling the inbox that will forward the messages to Midgard using the supportmda.pl script from OpenPSA.

Midgard reads the messages in and converts them to MidCOM de.linkm.newsticker compatible articles with the photo stored as an "image" type attachment that has a generated thumbnail.

This weekend will be the acid test for this concept, as I will spend it in a combat exercise arranged by MPKRy.

In the other news, I turned 25 today. Quarter of a Century is the release name for today's midcom-template ;-)

New Thunderbird and Firefox

Posted on 2004-09-14 11:07:00 UTC to . 0 comments.

In addition, there is now a new promotional website, spreadfirefox.com in beta release. Spread the word.

Firefox - The browser you can trust

Upgrading both Firefox and Thunderbird from earlier releases went quite painlessly on my Mac OS X box. And now Thunderbird has a cool RSS reader so following my blog will be easier than ever ;-)

Updated 2004-09-15 18:48: The Firefox upgrade actually had some issues. It refused to open a browser window after the installation. Only deleting my profile using the Firefox Profile Manager helped.

Why Web Standards Matter

Posted on 2004-09-14 15:14:39 UTC to . 0 comments.

In addition, Jakob Nielsen has posted an interesting piece on standard elements in web design. His recommendations include several conventions, like always placing a logo link to top-left corner and the search box to top-right corner.

Reviving the Old Psion Series 5

Posted on 2004-09-15 01:21:44 UTC to . 0 comments.

psion-series5.jpg

The Series 5 has two major advantages when compared to laptops: it is small and has a very long battery life. In addition, I happen to have a spare one lying around.

We've used this palmtop previously for keeping the travel journals of two motorcycle trips, the 2002 European tour and the 2003 Russian tour. The journals were written using Psion Word and transferred via FTP to the web server where Midgard imported them as HTML files using the psiconv utility.

Similar system could be used here for importing the study notes into a MidCOM-driven website for easier browsing and searching.

The only question is connectivity. I can see several options here:

  • We're using a CompactFlash memory card for storing the data on the Psion. This card could be read on my iBook using a USB CompactFlash reader. Then the files could be uploaded via a web form
  • I could get a USB IrDA adapter for a Linux box and copy the files over using the plBeam application to provide IrOBEX support on the Psion. The Linux end should be easy to script to publish the materials into Midgard
  • Or we could transfer the files via FTP or something similar and a GSM modem connection
  • The ease of use with these has to be investigated. As she will be making several notes each day the transfers must be easy and semi-automated.

Since she also intends to keep her study calendar on the Psion the vCal Psion Calendar to vCalendar converter might be useful. Rambo is working on vCalendar import to OpenPSA Calendar so the events could also be synchronized to the web.

Updated 09:34: After playing a bit with psiconv settings it seems to create quite good XHTML of the Psion Word files. However, it totally loses the possible Sketch images attached to the documents. Any ideas on how to get them included? For biology studies it would be very useful to be able to attach simple drawings to the notes.

Updated 2004-09-24: Kerttu has now been using the S5 on several lectures and seems happy with it. It has been dubbed "Ancestor", as it is the ancestor of a Nokia Communicator, and because it resembles the "Ancestor" in the Moomin series. Next task will be to start using the web integration stuff, but she will need a website for that.

OpenPSA demo available

Posted on 2004-09-16 10:02:13 UTC to . 0 comments.

OpenPSA is an Open Source Professional Services Automation system built on top of Midgard and PHP. The system provides management tools for software companies and consultancies. The modules include project management, CRM, help desk and group calendaring.

Using Weblog Editors with Midgard CMS

Posted on 2004-09-23 12:53:13 UTC to . 0 comments.

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 and mobile weblog editors for updating the news items. The "Remote editing tools" support can be switched off in configuration but I've left it on as default.

I've now tested the system with two desktop blogging tools for Mac OS X, ecto and MarsEdit, and it works quite well. I can prepare my blog posts offline, and publish them whenever I have access. In addition, the cool "Post to Weblog" feature in NetNewsWire works with both.

Setting up the desktop blog editors is very simple, simply go to their "New account" or "New weblog" dialogue and give the URL to your newsticker-powered topic. The weblog editor will get all required settings by autoprobing the RSD file provided in the HTML headers. You will be polled only for your username and password and the editing environment should be ready.

If the RSD auto-probing fails for some reason, the XML-RPC interfaces are available in "rpc/metaweblog/" under the newsticker topic. So for example the RPC URL for this blog would be "http://bergie.iki.fi/blog/rpc/metaweblog/".

The MetaWebLog API patch requires the PEAR XML-RPC package to be installed. It is available by default in all PHP 4.3.x installations.

Here are screenshots of the setup and blogging procedure in ecto:

ecto-new-blog.jpg

ecto-new-blog-settings.jpg

ecto-new-blog-username.jpg

ecto-new-blog-name.jpg

ecto-blog-entries.jpg

ecto-new-post.jpg

There are some features missing from the remote editing support that I miss:

  • For some reason MetaWebLog API doesn't let me edit the article abstracts separately
  • Categorization support is still missing from the implementation
  • MetaWebLog API supports only storing images with the topic, not with the article

Anyway, this is a big step forward in making Midgard a good blogging tool. I will try to make all posts in the near future using these desktop tools to get possible details and glitches tracked down.

Here are some screenshots of MarsEdit editing the same blog:

marsedit-new-blog-username.jpg

marsedit-edit-post.jpg

Updated 13:20: I would be more than happy to receive testing reports of using this feature with other desktop blogging tools. Please send them to the midgard-user list. You can also blog your results and just send the URL.

Almost too perilous

Posted on 2004-09-23 15:35:16 UTC to . 0 comments.

My friend and colleague Kaukola got hitched last weekend. We had a good time in the bachelor party last August, involving military exercises, zorb balls, sauna and aerobatics.

However, the actual wedding celebrations provided me with the scariest experience so far during the year. I've hiked in the arctic, fallen under a train in Russia, faced angry elephants and climbed mountains in Africa, participated in a car race and visited several war zones during my summer holidays. However, none of these were as scary as having to dance waltz. But I did it :-)

Wedding dance

Good luck and all the best for the newlywed!

Rambo took some rather nice pictures:

Kerttu and Bergie at the weddingHeli and Henri in rice showerPromises

This is now Unicode

Posted on 2004-09-27 10:44:15 UTC to . 0 comments.

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 it fine, but MarsEdit reports XML parsing problems when fetching the latest entries.
I've now posted a bug to the MarsEdit issue tracker, but frankly I suspect this is an issue with either the PEAR XML-RPC library or my MetaWebLog implementation.

Updated 2004-09-29: The issue with blogging tools was resolved by commenting out the following lines in Apache configuration:

#   php_value default_charset UTF-8
#   php_value mbstring.func_overload 7
#   php_value mbstring.internal_encoding UTF-8
#   php_value mbstring.detect_order UTF-8

Torben has told me to use these lines in his HOWTO, but as suggested by Piotras, they are not necessary for correct usage of Midgard with UTF-8. In addition, not using them resolves the MetaWebLog API problem.

Urban Combat Basics

Posted on 2004-09-27 14:02:51 UTC to . 0 comments.

Entry stack during training (photo by Tero Pennanen)

Some quick notes:

  • Outside old city centers the buildings made after beginning of 60s have so thin walls that they provide essentially no cover
  • There are aerosol weapons which shoot a gas-filled projectile into a room. The projectile then fills the room with an explosive gas
    Chechens have learned to combat this by moving their positions inwards in the buildings and lighting a bonfire in the room next to the window. This makes the aerosol gas burn safely before reaching explosive stage
  • Upper floors of buildings are not a good place for defensive positions as they are easily collapsed. Fire spreads very quickly upwards
  • Safest place for supply and deployment routes is underground using cellars, sewage pipes etc.

Updated 14:40: Here are some photos moblogged live from my phone camera. Quality is abysmal, as always

unnamedunnamedunnamedunnamed

Off to OSCOM4

Posted on 2004-09-28 03:17:20 UTC to . 0 comments.

Today will be filled with arrangement practicalities, and the actual conference starts tomorrow at 9:15 am.

All the previous OSCOM events I've attended have been fun, and I'm expecting an interesting three days filled with discussion, new CMS ideas, and quite a few presentations.

OSCOM 4 with Apache Track

Despite the early departure the flights went without incident, and I had time to read some new RFPs and get started on the time-based release plan mRFC for Midgard. I was online in the Wyona office already before 11am.

Today was spent mostly by writing a new Wiki component, net.nemein.wiki for MidCOM. It will be used as a collective notepad by both OSCOM 4 and Linux Greenhouse people in upcoming events. So far the Wiki is very simplistic but should still fit the requirements. OSCOM's Wiki is already online.

I will be staying during the conference in Michi's place. This place is becoming a geek camp with more than five more people staying here after tomorrow. Now I'm trying to follow a Spanish conversation about Apache Lenya and CSS naming conventions.

First day of OSCOM 4

Posted on 2004-09-30 08:42:18 UTC to . 0 comments.

OSCOM4_ApacheTrack_Audience.jpg

This conference is smaller than OSCOM 3 held in Harvard university and in about the same range as OSCOM 2 in Berkeley. However, this just means that this time most people attending are developers instead of end-users, and discussion ranges from interoperability topics to cultural issues.

I'm chairing the Apache Track of the event. The first day was mostly Jakarta topics, and so not that interesting to me personally. Day two will be focused on PHP and so closer to my interests. However, day one brought forward several interesting projects:

  • HttpUnit - Web application unit testing framework
  • Lucene search engine and its Perl port, inspiring to post MidCOM bug #107
  • FlowScript, Cocoon's JavaScript-based session control system
  • OS Web Design provides free web templates. We have to think about how to include them when planning the CSS naming conventions
  • We're planning to try integrating BXE WYSIWYG XML editor to MidCOM as widget_xml, with an XSLT transforming datatype_xml
  • Pubcookie, a single sign-on system for Apache and IIS

In addition,

After the event and some beers we had a nice Italian dinner outside in slight rain in the old city of Zürich, and continued to caipirinhas and cigars in a Brazilian bar.

Second day of OSCOM 4

Posted on 2004-09-30 16:48:06 UTC to . 0 comments.

OSCOM4_Innovation_Panel.jpg

After bit of thinking I decided that a session on MidCOM - Midgard's Component Framework for PHP would be a good match for the technical crowd here.Because of this most of my has been spent on setting up latest MidCOM on my iBook, tweaking my South AfricanMidgard training slides in SlideML to fit this conference, and marveling how slow the iBook is for running a full-blown CMS.
My session will be tomorrow at 9:15 in room E1.2 in the ETH main building.

In addition I gave a 20 minute interview for the Open Source community related movie Michael Wechner is working on. Quote from there:

[Finnish culture promotes collaboration and Open Source because] Finland is a cold country. If we didn't work together we would all freeze to death and get eaten by polar bears.

Some stuff from today's discussions:

  • JSR-170 is an API for Java that aims to standardize how CMSs store their content into a repository. There is also a PHP port under construction
  • I installed Webalizer to OSCOM's web server today, and the access statistics are abysmal. How could we get CMS projects to link to OSCOM?
  • Chregu has promised to upgrade Planet OSCOM from net.nemein.rss to the same software that drives Planet PHP
  • OpenOffice.org has an active community of thousands of people who are not programmers but instead market OOo actively. For them being involved is the reward. Spread Firefox also is a good example of that
  • There is now first draft of mRFC 0008, the time-based releases proposal for Midgard

The planned Town Hall on Open Source and Ethical Capitalism with Kit Blake and Michael Wechner got rasmussed by the very interesting panel on open innovation.

In the evening there will be the conference dinner in Les Halles. We also planned a meeting about CSS namespacing with Thorsten, but this didn't happen because of all other discussion going on.

OSCOM4_Dinner.jpg

Amusing note: Everybody starts their first conversation with me by saying "I've read about your motorcycle adventures in your blog". :-)

Last day of OSCOM 4

Posted on 2004-10-01 13:19:15 UTC to . 0 comments.

Chalu_GNU.jpg

Apart from my own session, I went to see Danese Cooper's session on Corporate Blogging, which focused on how Sun uses blogs and other collaborative tools to aid in a cluetrainish transformation to a more customer focused and open organization. The related policies and success stories were a good starting point for convincing other companies to do the same.

The session of legal issues of Open Source was also interesting, highlighting the recent German court ruling that upheld GPL and the risks arising from the fact that liability from neglecting potentially harmful issues in the software can't be waived with a license in most European countries.

The Tiki session also provided some interesting ideas, including visually mapping a Wiki using the Graphviz package and rendering location information usingMapServer and its PHP extension.

We're also discussing how to make OSCOM more visible and work better. Some ideas:

  • Loosen the restrictions on getting feeds aggregated on Planet OSCOM and try to get more feeds there. Theoretically all CMS and web related content would be acceptable, but we still don't want any cat pictures
  • Present OSCOM more clearly as a "common specifications" project for CMSs, like Freedesktop.org does for GNOME, KDE and other desktops
  • Create a "We participate in OSCOM" link button campaign and try to get Open Source CMSs to link there
    Concern: Why would CMS projects want to link to their competitors? Maybe we should remove the CMS matrix and be more a specifications and interop body

To support making Planet OSCOM more active, Chregu installed the software running Planet PHP there. The old net.nemein.rss powered aggregator will be replaced by this after Christian has time to add some features and tweak the CSS to better shape.

The big problem for Planet OSCOM has constantly been how to find more interesting feeds to be aggregated there. One solution there would be to use the relationship mapping features of Frassle to find new relevant feeds. After some planning with Shimon Rura, this could work in the following way:

  • Planet OSCOM sends its list of subscriptions every night to Frassle in OPML format
  • Frassle would download and parse the feeds, and try to find related content (based on common links)
  • Frassle would return a list of new feeds found to Planet OSCOM, which would automatically subscribe to them

This would all require a bit of hacking, both in adding import/export capabilities to Frassle and in ensuring Planet OSCOM gets good feeds, but it would be a very interesting proof-of-concept for mapping related feeds. If it would work out, it could provide a model for all news aggregators on how to find new content.

After the actual conference program we brainstormed with Thorsten Scherler to the OSCOM Wiki about CSS naming conventions that would enable different designs to be used with same XHTML DIV structure.

In the evening we had a nice dinner followed by quite a few beers in El Lokal, a leftist pirates' hideout styled place. Discussion ranged from participatory budgets and other democratic innovations in Brazil, and the state of Bolivian Navy after the Guano wars of late 19th century to Open Source business models and travel in Russia.

El Lokal closed around 2am, and we continued to a party in a creepy 70s styled factory building in the tech area of Zürich. On saturday I'll fly back to Helsinki.

A Day in IT Sales

Posted on 2004-10-04 20:13:52 UTC to . 0 comments.

I'm now sitting in an old, creaking commuter train, surrounded by beautiful Finnish autumn colors. Today has been a pretty typical day for me in IT sales, starting with back luck with train schedules that forced me to sit most of the day in this old train instead of the fancier InterCity trains that come with power outlets and cafeterias. What has happened so far:

  • Wake up
  • Make finishing touches to a customer-specific Intranet demo
  • Arrange some meetings for the rest of the week
  • Check out appropriate train schedule to another city
  • Because of some last-minute CSS modifications almost miss the train, forcing to lane-split with the motorcycle to the railway station
  • Make it to the train, the demo front page still broken because of the CSS fixes
  • Connect your laptop over the slow Bluetooth-GPRS connection and fix the CSS
  • Reread the RFP and note that you've forgotten one feature, call colleague and ask him to implement it
  • Reach the target city and take a taxi to the client
  • Exchange some awkward pleasantries with CEO of a competing company at the door
  • Hold the demo and discussions with the client, experience some issues with both the latest Firefox and the client's proxy
  • Take taxi and train back
  • Provide quotes for some new projects to partners over the phone

The connection problems in this process got me thinking again about better offline access to my data. Most of our back-end systems run using the Midgard Framework and OpenPSA, and there would be several options. Now I use the lightweight solution where:

  • Apple iCal keeps a read-only version of my OpenPSA Calendar
  • I can blog using MarsEdit and post when back online

What other data would be convenient to have available offline? At least contacts and email spring to mind.

Contacts could probably be synchronized one-way by downloading a vCard file of all contacts from OpenPSA Sales, as Apple Address Book automatically receives and imports them. The problem here would be the same as with calendar: not being able to sync the data back to the server.

As to email, Thunderbird has kind of offline mode available, but I would have to keep the inbox quite minimal to be able to use it. Maybe a more aggressive folder usage strategy would help here. Essentially I should archive all interesting documents to folders specifically created for each customer or project. TODO items I can easily drag-and-drop to our support mailbox which gets imported to OpenPSA Support.

Making Open Source Content Management Suck Less

Posted on 2004-10-05 16:45:12 UTC to . 0 comments.

His notion might have backgrounds in only looking at the projects listed on OpenSourceCMS.com, 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 improve the projects started by others, and so the wheel has been invented a huge amount of times. OSCOM seeks us to improve that by advocating collaboration and usage of common standards.

Let's take a look at how the improvement recommendations apply to Midgard CMS:

Make it easy to install. Your tool will see better adoption if you stop to consider the out-of-the-box experience before you ship it.

This has traditionally been the weak point in Midgard. There have been many dependencies to solve and packages to compile. However, Midgard 1.6.0 is a big improvement to this.

The Debian packages made by Piotras and Daniel's packages for most RPM based distributions made with Build Buddy will make the actual installation very easy and having MidCOM environment available out-of-the-box helps too.

Make it easy to get started. Give first-time users a series of quick wins that become increasingly complex. When I first log in, I want to create a Web page.

Even after installation it has been difficult to figure out how to get started. Now MidCOM and Aegir are bundled in the midgard-data package and so the Getting Started guide should be easy to follow. Midgard 1.6.0 also provides a friendly Welcome Page.

On a longer term there will also be the Midgard Site Creation Wizard.

Write task-based documentation first. Most systems have installation instructions that are quite good: "First do this, then do this, this, and this." But when it comes to actually using the CMS, they revert to feature-based docs, carefully outlining what each feature does, and typically from a back-end perspective.

We're mainly guilty as charged. The new documentation chapters Getting Started and Using Midgard CMS seek to help with this, though.

Separate the administration of the CMS from the editing and managing of content.

Midgard does this already. MidCOM Authoring Interface System (AIS) is the end-users' content management interface that is provided as part of the website itself. For site developers and administrators there is the Aegir interface which provides access to users, templates and code.

Users of a public web site should never - never - be presented with a way to log into the CMS.

This really depends of preferences. Maintainers of small business websites like to have the login link handy so they don't have to remember or bookmark it, whereas bigger organizations usually want to hide it, and potentially disable access to the editing interface from public network completely.

In MidCOM Site Template there are three possibilities here, depending on site settings (/midcom-admin/settings):

  • Login link is always displayed (default)
  • Login link is never displayed
  • Login link is displayed only for specific port (internal staging port, SSL etc)
Stop it with the jargon already. I don't know what a portlet is. Or a component, module, block, or snippet.

Good point. Being mostly techies themselves, CMS developers usually fall into using jargon. And since there is no standardized vocabulary for content management, the jargon may vary greatly between projects. Jargon should not be allowed in marketing descriptions for the CMSs, and even elsewhere it should be documented or accompanied with a description.

Why do you insist Web sites have "columns"? I've used quite a few systems now that have the notion of a 3-column layout. They give me the ability to turn columns off and on, and put "portlets" into "content-slots". Where does this assumption come from?

The three-column layout is a very typical convention in blog engines, community CMSs and portal systems modeled after Slashdot. Most real CMSs provide a less cookie-cutter like approach.

In other news, Piotras reported that according to SecuritySpace Survey, Midgard usage grew 40% during September. Apparently we're doing something right.

Work Shift Planning with OpenPSA

Posted on 2004-10-06 19:26:34 UTC to . 0 comments.

  • All work positions will appear as resources in the group calendar
  • Doctors can apply for a particular shift by making a reservation
  • Email notifications will be generated monthly about unallocated shifts and sent to all doctors
  • After each day the times of the work shift will be copied by the system to the doctors' hour reports
  • The doctors check the generated hour reports and modify or add details as necessary
  • The hour reports will be used for invoicing and customer reports

This way the doctors can easily control their availability and make their preferences on positions and shifts visible to the management. The management will also have a clear view into distribution of work loads, doctor availability and the filling of the shifts. Since hour reports will be automatically populated from the work plan, this will also reduce the amount of duplicate reporting needed.

Some modifications will be required to OpenPSA to make it work better with shift planning.

  • Coloring tentative reservations differently from final reservations in the resource and week calendar views
  • Enabling linking calendar events with tasks or processes
  • Creating the copying tool for populating hour reports from the calendar events

Documentation about particular work positions or locations will be stored as attachments to the tasks. This enables doctors to quickly access them from the OpenPSA front page.

In addition to using Projects and Calendar, the client will also start using some other parts of OpenPSA, including Sales for managing new business projects and Discussion for company's internal chat.

To help make the system more popular the Horde webmail application will also be integrated to the OpenPSA interface.

The organization works in a very virtual and distributed way, and so OpenPSA will provide them with all the communication and management tools they need for efficient operation. Other reasons why the chose OpenPSA included a very good feature match, a friendly user interface, and cheap hosting costs.

Back from the North

Posted on 2004-10-11 21:45:22 UTC to . 0 comments.

Bergie_Lapland_Pipe_Break.jpg

Since this was our first hunting trip we concentrated mostly on getting familiar with the forest area and what game can be found there. We slept the night in a Finnish teepee (laavu) with a fire to keep warm.

During the reconnaissance trips we saw rabbits, reindeer, swans and several species of arctic birds. I got close enough to try to shoot a willow ptarmigan (riekko) from about 35 meters but unfortunately missed. We also got close enough to a rabbit but decided not to shoot because we had too light shots loaded into our shotguns.

Some points for the next trip:

  • Driving 12 hours each way was quite tiring. We should consider taking the car train to Kolari instead
  • Camping in middle of the hunting area probably scared some game away. Next time we could camp elsewhere or rent a cabin from Muonio
  • We should take a rifle in addition to the shotguns. We could've shot at least one black grouse (teeri) with a longer range weapon
  • We should try to find a general purpose shotgun cartridge. Something around 3mm shots could work for both grouse and rabbits
  • We need to find more about the game we're trying to hunt. Activity periods, habitats etc. to make them easier to find
  • Some Skeet shooting would be good for accuracy

Some photos can be found from the Muonio gallery.

OpenPSA Documents supports WebDAV

Posted on 2004-10-14 14:22:31 UTC to . 0 comments.

WebDAV is an HTTP based file transfer protocol supported by most major operating systems and Microsoft Office. WebDAV support now makes OpenPSA Documents a much more useful document repository.

The WebDAV server was implemented with the PEAR HTTP_WebDAV_Server package. So far I've only tested it as a network filesystem for Mac OS X and Windows XP and with the Goliath and DAV Explorer WebDAV applications. On Mac everything works quite smoothly but there can still be some glitches with Linux and Windows.

I would be happy to receive more test reports with other DAV clients. To try it out you need the following:

Once all these are installed and running you can try the WebDAV server by pointing your DAV client to the /docstore_dav/ subdirectory of your OpenPSA system (note: the actual OpenPSA system, not OpenPSA Manager). For example, http://www.example.com/openpsa/docstore_dav/.

In Mac OS X Finder this happens by clicking Go -> Connect to Server or pressing Command-K. On Windows XP this happens via going to My Network Places and adding a new one.

Now the server stores quite verbose debugging information to /tmp/docstore-webdav.log. If you encounter issues, please mail me the relevant pieces of that log file. Logging will be turned off by default in a more stable release.

Caveats

  • Folder copy/move action support is very hacky
  • The WebDAV server does not yet support the access control system in Documents
  • There are problems with special characters in file names
  • Locks are currently used only for information, following them is up to the client
  • Looks like WinXP allows only MS Office to directly open and save documents to an SSL-encrypted Web Folder, other applications require a local copy
    The WebDrive application solves this by mapping the encrypted Web Folder to a drive letter.
    As pointed out by Alan, Novell WebDrive provides a free tool for the same (Tomi noted that the license says it is free only if used together with other Novell products. Can anyone confirm?).
    Unencrypted Web Folders can be mounted without external tools.
  • Nautilus 2.6.3 seems to have problems with the whole DAV connection

Here is log file of the current implementation being tested with the WebDAV litmus test tool.
Note: this file was first saved to our OpenPSA repository and then inserted from there to this blog post via MarsEdit. Desktop integration rocks!

Minor Midgard Blogging Tool Updates

Posted on 2004-10-18 21:55:29 UTC to . 0 comments.

Categorizing Midgard posts in MarsEdit

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 per post (as is currently used on this blog):

"category" => array (
"description" => "Category",
"datatype" => "text",
"location" => "parameter",
"widget" => "select",
"widget_select_choices" => array (
"cat1" => "Category 1",
"cat2" => "Category 2",
),
),

Note: the category field must be stored in parameter location for MetaWebLog API support to work.

Now that this works well, I was able to set my MarsEdit to complain if I try to save an entry without setting a category. Categorization is important on this blog as it is used by the different Planet aggregators.

This means that now I can almost completely manage this blog from a desktop client. Only thing remaining would be handling the separate abstract fields, but I might as well make my next layout do without them.

Bloglines setting in net.nemein.rss

The other new thing is that the net.nemein.rss news aggregator for Midgard CMS now has preliminary support for the Bloglines API. Bloglines is a popular web-based news aggregator that can be used as a central syndication server to reduce RSS-induced congestion.

It is easy to set net.nemein.rss to fetch it news from Bloglines instead of querying the servers independently:

  • Register to Bloglines and subscribe to the feeds you want to aggregate
    Note: you can populate the Bloglines subscription list by uploading the OPML list of subscriptions you get by accessing /channels.opml in net.nemein.rss
  • Create a topic handled by net.nemein.rss
  • Go to Settings and select Bloglines from Subscription mode
  • Enter your Bloglines username and password to net.nemein.rss

The infrastructure for this seems to work. Unfortunately I was unable to test this with a real production setup because Bloglines Web Services seem to respond extremely slowly today, causing MagpieRSS to timeout.

Updated 22:33: After adding some debugging calls I found out that the reason for problems with getting feeds from Bloglines was with HTTP Basic authentication. Bloglines uses email addresses as usernames.

While fopen happily opened such an URL after the email address was rawurlencoded, the Snoopy library in MagpieRSS was a different case. As I found out, it uses PHP's parse_url function which doesn't support @-signs in usernames.

I fixed this by a quick hack to the Snoopy fetch method:

$URI_PARTS = parse_url($URI);
if (!empty($URI_PARTS["user"])) {

  // PATCH for Bloglines support, @ in usernames (bergie)
  if (strstr($URI_PARTS["user"],"%40")) {
    $URI_PARTS["user"] = str_replace("%40","@",$URI_PARTS["user"]);
  }
  // END PATCH

  $this->user = $URI_PARTS["user"];
if (!empty($URI_PARTS["pass"]))
  $this->pass = $URI_PARTS["pass"];

To make things easier I upgraded net.nemein.rss to include latest MagpieRSS. This means that Atom feeds should be supported now as well.

Even though the Bloglines API support works now, it still seems to be phenomenally slow, at least with my 100 subscriptions.

OSCOM's Visual Identity

Posted on 2004-10-19 13:04:45 UTC to . 0 comments.

We were thinking in OSCOM 4 about how to get the different Open Source CMS projects to feel more connected with the OSCOM process. One part of this was to get some link buttons that would make it easier for the projects to link to OSCOM.

Marc Infield from Infield Design responded quickly to Gregor's request. Here are his OSCOM "stamps":

OSCOM stamps by Marc Infield

Note: this logo is not under the open content license used on my weblog

The usage policy for these is still unresolved. Some ideas would be, though:

  • The winged stamp would be the official OSCOM logo, usable only by the OSCOM association
  • The other stamps could be used by individuals, projects and companies as a badge showing participation to the OSCOM process
  • We could have similar logo policy as Debian has

This way the OSCOM stamp would be a quality criteria for CMS projects, telling that they are committed on working on implementing common standards in their system and developing the field of Open Source CMS in general. It would also enable end-users to distinguish real Open Source projects from proprietary ones, a bit like the OSI keyhole does for licenses.

Comments?

Test install of Midgard 1.6.0rc2

Posted on 2004-10-19 18:30:39 UTC to . 0 comments.

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 failed to give correct include path for that. After a bit of investigation, I found out that this was broken it this commit.
Rambo pointed out that this was due to incorrect Perl string comparisons in the code. Fixed now.

Next change to the installation notes was that configure for midgard-php4 needed to have the apxs path specified:

$ ./configure --with-midgard-config=/usr/local/midgard/bin/midgard-config\
   --with-apxs=/usr/local/apache/sbin/apxs

Another thing to note was that since Midgard's Apache module has changed its name, the old module must be commented out from httpd.conf if you have an earlier Midgard version installed.
Also, in that case apachectl restart won't be enough. You have to run:

/usr/local/apache/sbin/apachectl stop
/usr/local/apache/sbin/apachectl start

After the successful Midgard installation the next thing was to turn to midgard-data. Midgard 1.6.x series have a new database setup tool, datagard. Unfortunately it didn't run on Mac at first, but Piotras helped me with that and promised to fix some Fink-related path issues in CVS.
Here's how datagard looks like:

midgard-160rc2-datagard.jpg

When datagard had upgraded my old Midgard database to the new MultiLang format, I was ready to access my Midgard Welcome Page. It greeted me with:

midgard-160rc2-welcome-setup.jpg

Next I'm testing setting up a new database with datagard.

All in all, Midgard installation on Mac OS X is still a bit difficult because of the dependencies. Chris Stephens pointed me to an interesting project that could help here:

MAMP is a Mac OS X installer (or disk image) package that installs the whole Apache, MySQL and PHP combo into the Applications folder and provides a Quartz application for running the processes. If we could get Midgard installed into this, it would make things a lot smoother.

New ways for Midgard coding

Posted on 2004-10-22 12:01:14 UTC to . 0 comments.

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 toolkit, making it difficult to install
  • The other solution was synchronizing code snippets to filesystem using the Aegir FileSync AddOn. However, this didn't work for creating new snippets in the file space

But yesterday I wrote a new Midgard WebDAV Server class, initially with only snippet editing support. With this system the Midgard snippet library space can be exposed as a network filesystem, or a Web Folder in Windows. This means that the code snippets can be managed completely with all the regular editors and IDEs.

Here's how browsing the /net/nemein MidCOM component space looks like on my OS X box:

macos-browse-snippets.jpg

The WebDAV Server class can be found from src/php-libs/webdav directory of the Midgard CVS repository. It requires PHP 4.3+ and the PEAR HTTP_WebDAV_Server package. To use it, create an active and authenticated page with empty style and the following content:

<?php
mgd_include_snippet("/MidgardDav/Server");
?>

Since this seems to work quite well (although tested only on Mac), we wanted to see how we could improve our development work using WebDAV. The first solution that came to mind was using the ultra-cool collaborative editor SubEthaEdit. With it we can easily see what the others in the Nemein team are doing, and get comments and review done. It really makes pair programming much more efficient.

As I write this I'm sitting in a WiFi-capable cafe, hacking on some components together with Kaukola. Here's how it looks (we were adding a new feature to the de.linkm.taviewer component):

Collaboration with SubEthaEdit - Click to enlarge

The lines with blue background have been last edited by me, and the ones with pink background by Kaukola.

Standardized CSS layouts with Midgard

Posted on 2004-10-26 14:07:34 UTC to . 0 comments.

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 it. Simply paste it to the <(ROOT)> element of your style, and then add the CSS formatting to the <(css)> element.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="&(midcom_site["site_language"]);" lang="&(midcom_site["site_language"]);">
  <head>
    <title><(page-title)></title>
    <meta http-equiv="Content-Type" content="text/html; charset=&(midcom_site["site_encoding"]);" />
    <style type="text/css">
      <!--
        <(css-local)>
        <(css-extra)>
      -->
    </style>
    <link rel="stylesheet" href="&(midcom_site["uri"]);style.css" type="text/css" />
    <(head-extra)>
  </head>
  <body<(bodytag-extra)>>
    <div id="container">
      <div id="branding">
        <div class="grouplogo">
          <!-- Insert logo here -->
        </div>
        <div id="branding-tagline">
          <?php echo $GLOBALS["midcom_site"]['site_welcome']; ?>
        </div>
        <div id="branding-trail">
          <(breadcrumb)>
        </div>
      </div>

      <div id="nav">
        <div id="nav-main">
           <(navi)>
        </div>

        <div id="nav-language">
         <!-- Language switching links -->
        </div>

        <div id="search">
          <div class="search-input">
          </div>
        </div>
      </div>

      <div id="content">
        <div id="content-main">
          <(content)>
        </div>
      </div>

      <div id="siteinfo">
        <div id="siteinfo-credits">
          Created by <a href="http://www.nemein.com/">Nemein Oy</a>.
          Powered by <a href="http://www.midgard-project.org/">Midgard CMS</a>.
        </div>
        <div class="lastmodified">
          <(last-updated)>
        </div>
        <div class="siteinfo-legal">
         <!-- Copyright disclaimer and possible licensing -->
        </div>
        <div id="feedback">
        </div>
        <(edit-this-page)>
      </div>
    </div>
  </body>
</html>

The places with comments are ones I'm still thinking how to pull dynamic content into.

New OpenPSA Campaign Query Tool

Posted on 2004-10-26 18:59:55 UTC to . 0 comments.

Eero has been working on OpenPSA Sales lately to support the CRM deployment Helsinki Business Polytechnic (Helia) is now doing.

Helia will be using OpenPSA for managing all their corporate connections, including students' work orientation periods and their service sales.

However, some of the screens in Sales have been left with quite an industrial look by Eero. One of the worst was the campaign query tool, which is used for searching contacts to be included to a campaign (mass mailing, event registration etc). This query form was quite hideous to begin with, but with addition of some new fields it simply didn't scale.

I've now reorganized it for better clarity:

openpsa-sales-new-campaign-query.jpg

Previously the query fields were organized quite randomly, but now they're in four separate groups:

  • Area selectors (country, post codes)
  • Company type selectors (business area, number of employees)
  • Connection type selectors (products offered to them, sales project statuses)
  • Result criteria (sorting etc)

Also, the screen now allows direct creation of new campaigns.

Planet Midgard updates

Posted on 2004-10-28 15:34:52 UTC to . 0 comments.

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 popular in the Midgard community)
  • Hackergotchi support: if your feed has been marked to contain a "hacker head", it will be displayed together with your posts. See Planet GNOME for a good example on this

So, with these updates I would like to call for two things:

First of all, if you're a member of the Midgard community (contributor or active user), please get your blog aggregated on Planet Midgard. If you already have a blog, just mail me the URL to your RSS or Atom feed.

And if you don't have a blog, please start one. Blogs are a great way to communicate your ideas and stuff you're working on.

It is very easy to start blogging, either just create a new Midgard topic powered by the de.linkm.newsticker component, or sign up to one of the free services like Advogato or Blogger.

Note that we can also aggregate news releases from Midgard companies, and blog postings in languages other than English. Planet Midgard already aggregates Nico's posts in German, Alexander's posts in Russian and WALHI's posts in Indonesian.

Second, if you're already aggregated on Planet Midgard, please make a hacker head image of yourself. This gives a face to your posts, adding to the community feeling. If you see who is posting, it is easier to feel it as a conversation:

bergie-hackergotchi-planet-midgard.jpg

The hacker head (or hackergotchi) is an approximately 65 pixel wide and 85 pixel high transparent PNG image showing your face detached from its surroundings and added with a drop shadow. See some examples in Planet GNOME.

Once you have your hackergotchi image done, upload it somewhere and mail me the link (you can also mail me the image itself).

If you don't have the necessary graphics skills, mail URL to image you want to have it made from here and somebody will help you out.

BTW, for those with RSS aggregators (like NetNewsWire or Thunderbird), Planet Midgard is available at http://www.midgard-project.org/planet/rss.xml

Updated 2004-12-14: Hackergotchis displayed on Planet Midgard are now displayed also on a separate collection page.

Anttila won the Finnish Quality Award 2004

Posted on 2004-10-29 18:10:36 UTC to . 0 comments.

Major Finnish retailer Anttila was given the Finnish Quality Award 2004 yesterday by Speaker of Parliament Paavo Lipponen. Excellence Finland has an announcement on the award in Finnish.

I've worked together with Virpi Mikkonen and the rest of the Anttila team in several related projects, and they are really committed to the quality process. The projects we've implemented have included management of customer feedback using OpenPSA Support and process diagram integration into their Midgard-powered Intranet.

Congratulations to everybody involved!

Midgard 1.6: Power, Flexibility, Out of the box

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

midgard-16-frontsmall.png

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

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

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

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

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

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

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

This is the New Nemein

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

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

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

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

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

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

New apartment

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

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

Five_Corners.jpg

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

Kerttu_morning_five_corners.jpg

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

Kerttu_banana_box.jpg

Filesystem MidCOM going strong

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

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

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

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

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

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

In the other news...

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

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

Talking points for the Midgard Gathering

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

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

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

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

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

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

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

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

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

New look at NemeinQuiz

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

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

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

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

ky-quiz-fill.jpg

ky-quiz-stats.jpg

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

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

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

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

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

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

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

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

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

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

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

Why do we need MgdSchema?

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

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

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

Bonus items:

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

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

The connected gathering

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

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

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

roofcam.jpg

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

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

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

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

Some MgdSchema notes

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

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

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

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

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

net_nemein_article
guidtitlecontent
abcCool newsBlah blah blah...

metadata table with Midgard ownership and metadata info:

metadata
guidcreatorrevisor...

membership table for tree structures and ownerships:

membership
guidparentextra

record_extension table (parameter API)

record_extension
guiddomainnamevalue

localization table (for MultiLangable fields)

localization
guidlanguagepropertyvalue

The way forward:

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

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

koff-roofcam.jpg

Project GNOMEgard

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

gnomegard.png

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

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

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

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

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

Action items:

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

Milestones:

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

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

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

Beagle and Lucene search tools could be integrated.

Weekend in Ukraine

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

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

Lviv_opera_front.jpg

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

Lviv_Rynok_square.jpg

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

Lviv_Aida.jpg

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

We caught the first signs of the unrest in sunday evening. All ATMs had been emptied of cash and marked squares were filled with muttering groups in their fur hats. In the opera an old woman asked from us with tears in her eyes why we had come there in such sad times.

Next morning I escorted the girls to the railway station and airport at 6 am, early enough to avoid most of the demonstrations. When I returned to the center they had already started. The hotel keeper pointed out to the Rynok squere and commented laconically: "Revoluzija". I decided to take a closer look, and spent next hours in an old Austrian-style cafe overlooking the Svoboda street where most of the supporters of the opposition candidate, Yushchenko were gathered.

Lviv_demonstration.jpg

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

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

Franchising as Growth Model for Open Source Business

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

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

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

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

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

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

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

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

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

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

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

F.U.D. trailer available

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

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

fud-bergie.jpg

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

Filesystem-enabled MidCOM-template now available

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

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

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

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

Testing Ubuntu, blogging on GNOME

Posted on 2004-12-01 16:12:52 UTC to . 0 comments.

Kerttu needs a computer to accompany the Psion notepad for her biology studies. Since I didn't want to get a desktop system, I took one of the old company HP Omnibook 500 laptops and set up Linux on it. This gave me a perfect opportunity to try the new Ubuntu distribution.

The first installation was a problem because the system had some data from an old Red Hat 8 installation that I wanted to preserve. Ubuntu refused to install on the existing filesystem, and only worked after I copied the data to my iBook and let the Ubuntu installer format the hard drive. Other than that the installation was very smooth. Ubuntu probed all the hardware correctly, including my D-Link WLAN card and the display. However, on startup X refused to work.

To solve this I had to manually install the xserver-xfree86 and xbase-fonts packages.

After that the system has behaved nicely, presenting a very attractive desktop with a good set of tools preinstalled, including Firefox and Openoffice.org. The only problem that still lingers is that the Omnibook display tends to turn white after a while of use. This is a known hardware problem apparently caused by loose display connector.

Blogging on GNOME

Having a new GNOME installation in front of me allowed me to finally test the blogging functionality of the desktop.

By default Ubuntu doesn't include any blog-related tools, but they were easily available from the universe repository. Simply edit the /etc/apt/sources.list file and uncomment the two lines pointing to universe. You can probably also enable them in the Repositories window of Synaptic.

After editing the APT sources list, I fired up Synaptic package manager, which is the default package installation tool for Ubuntu. The three packages relevant to blogging were blam, an RSS news reader, gnome-blog, a simplistic blog poster and blogtk, a slightly more comprehensive weblog editor.

Blam is an RSS news reader. It uses a three-pane layout where the subscribed channels and their unread item counts are shown on left, headlines of current channel on top and the content at the bottom. Blam also adds a notification icon to the GNOME panel reporting when new items are available. Unfortunately Blam doesn't do too well in comparison to the popular Mac OS X newsreader, NetNewsWire. The UI feels much clunkier and simple tasks like removing multiple subscribed feeds are not possible. Integration with desktop blogging tools is also missing.

The blogging tools, gnome-blog and BloGTK also fare quite badly against the common Mac OS X or Windows tools for the task like MarsEdit and ecto. Neither application supported RSD auto-probing of MetaWebLog settings, or uploading of attachments using the metaWeblog.newMediaObject API. Gnome-blog aims to be a quick tool for blogging notes, and its simplistic interface integrated with the GNOME panel fits this paradigm well. However, with BloGTK the editing of existing posts has been needlessly hidden under a menu item. The email-like paradigm used by MarsEdit would work much better, as would initiating the edit calls from Blam.

Note: There was an issue preventing the GNOME desktop blogging tools from being used with Midgard CMS. A single line fix was committed today based on my tests. Now blogging from the GNOME desktop to Midgard should work. Another small step in the GNOMEgard program.

This post has been made using BloGTK and then edited using MidCOM AIS to add images and categorization.

Housewarming party

Posted on 2004-12-06 21:08:25 UTC to . 0 comments.

Kerttu and I held the housewarming party for friends last night in our new home. A very nice evening with over 20 guests. The dishes were well received, with caipirinhas and salmon rolls being the most popular offerings. Producing the caipirinhas from cachaça given by Tim was somewhat of a show, as we had to use a bokken sword for breaking the ice cubes.

Housewarming_lounge.jpg

We themed the evening around dishes from Russia and nearby countries. This meant lots of smetana, sour cucumbers, suhariki, churcheklas and pancakes topped with condensed milk. On the beverage side we served all kinds of improvised drinks based on Ukrainian pepper vodka, Georgian chacha and Polish zubrowka. To our surprise, several people actually confessed to liking chacha. Churcheklas, the Georgian sweets produced from nuts and grape juice were also consumed with great enthusiasm after initial confusion on whether they were sausages or peppers.

Housewarming_bedroom.jpg

It was very nice to meet so many old acquaintances during the evening. Maud's avec Unto was an old live-roleplaying friend from mid-90s, Arwen had returned from her studies in Sweden, and the Midgard project founder Jukka is starting his own company. It was also pleasant to see my brother Ville and his wife before they depart to Brazil for the winter.

All in all, a very good evening and trial run for the apartment. Last guests left around 3am.

Today we woke up late in the afternoon, and lit the customary two candles to the windowsill to celebrate Finland's 87th indepencence day. On our way to dinner we saw the torch parade of student unions on the market square.

Independence_day_candles.jpg

New blog layout

Posted on 2004-12-06 22:02:21 UTC to . 0 comments.

I've finally implemented the planned year 2005 layout on my home page this weekend. Due to arranging the housewarming party yesterday it is still somewhat unfinished, but still nicer than the old one.

bergieikifi-20041204-thumb.jpg

Main reasons for revising the site layout was that I needed more space for some intended metadata. In addition, Kerttu has been bugging me about how boring the old layout was. Some new metadata planned include linking all content items to location, weather and related items based on categorization. Current location can be reported with a simple SMS interface.

The header image is a photo of the Caucasus ridge in evening taken from Shilda, Georgia northeast to Dagestan.

Thanks to Adam Douglas for helping me fix some issues with clearing floating elements.

Please tell me how you like the new layout.

Getting closer to Windows

Posted on 2004-12-10 13:21:23 UTC to . 0 comments.

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:

Having Midgard available for the Windows platform would lower the barrier of entry into the project. Web developers could easily check the system out by installing it on their desktops and smaller companies could run their Intranets with MidCOM or OpenPSA installed on their Windows-based file or print servers.

In addition to server usage, the Windows port would ensure that Midgard is available on all major desktop operating systems (Windows, Mac OS X and Linux). This would bring interesting possibilities with replication, including offline usage of Midgard-based business applications like OpenPSA.

With the new mRFC, the situation sounds quite promising. Some key quotes from my chat with Daniel:

bergie (13:30:52): dsrbo: BTW, there has been win32 discussion again on midgard-user. Where did that thing end up in the end?
dsrbo (13:32:13): that ended on my win32 partition i've not used for months now :( although it could be patched to work again with little changes
bergie (13:32:42): so it actually works?
tarjei (13:33:06): cool
dsrbo (13:33:19): the project workspaces for visual studio need some updates, and this should be it.
... dsrbo (13:38:06): we could have one installer with apache2, php4 plus midgard and all apps done, it's just a matter if time. write a draft what you would like to have included in a midgard win32 distribution and make it mRFC, then I can implement it by the book :-)
bergie (13:40:22): dsrbo: what kind of schedule do you think would be possible?
dsrbo (13:42:39): bergie: I will be busy with earning money until 21st Dec. Afterwards I have two weeks time for such a thing. So, if you can draft a complete mRFC until then, I could make it my new years present

Preparing for OpenPSA usability day

Posted on 2004-12-14 13:47:53 UTC to . 0 comments.

Tomorrow has been marked as the Beautiful OpenPSA Day in our corporate group calendar. The idea is to gather the whole team together to fix OpenPSA usability and eye candy issues. The date was set down when we decided to move Midgard CMS closer to the GNOME desktop usability-wise in an effort known as Project GNOMEgard.

Here are some ideas on what we should get started tomorrow:

  • Usability
    • Migrating forms to more accessible model using XHTML labels and fieldsets
      • This will be a long road. The login screen and some individual screens now implement this
    • Implementing access keys for switching between different tabs in OpenPSA applications
      • Access keys in top menu are:
        • 1: My summary
        • 2: Calendar
        • 3: Sales or Contacts
        • 4: Projects
        • 5: Documents
        • 6: Personnel
        • 7: Reports
        • 8: Support
        • 9: Email
        • 0: Logout
    • Implementing as much as GNOME Human Interface Guidelines as is practical
  • Eye candy
    • Switching Documents to use GNOME document icons
    • Adding GNOME stock icons to buttons where appropriate
    • Selecting identifier icons for several different resource types in OpenPSA
      • Person
      • Company (or department)
      • Document (attachment)
      • Event (calendar reservation)
      • Project
      • Task (or TODO item)
    • Using GNOME palette for the default UI colors

I'll update this document as we go. If you have any additional items, please let me know.

The icons above are deep linked from their authors' sites. I know this is the wrong approach but I'm in a bit of haste. Sorry.

Updated 2004-12-15 14:35: There have been quite many CSS and API changes today, including a complete overhaul of the UI colors to GNOME palette and introduction of the openpsa_icon() interface for easily using icons from library in the applications.

Before:
personeditor-old.jpg

After:
personeditor-new.jpg

This is a good start, but getting OpenPSA to the GNOME level of usability will still be a long road.

Managing nanocorporations with OpenPSA

Posted on 2004-12-14 22:48:22 UTC to . 0 comments.

There was an interesting story in a recent Yrittäjä magazine about a concept called nanocorporations, or networked small businesses.

Nanocorporations are formed by one or two individuals around a core competence. They are able to manage growth and larger projects by networking with other similar units, which again can network with other units. This all forms a fine mesh of interconnected and dedicated companies which should be able to react more swiftly to changes of business climate.

This concept should sound familiar to most readers of my blog. While Nemein slightly exceeds the maximum size of a nanocorp, our operational model still closely resembles it. We focus very tightly on building web based information systems on top of the Midgard platform. To provide more complete solutions we then work together with individual programmers, graphical designers, media consultancies and hosting providers. Most of these are also companies of similar scale and working model.

The big question is how to manage projects efficiently when such a big number of subcontractors are involved. In most cases this is handled by setting up a single project area in OpenPSA where all are given accounts. However, this forces the contractors to manage the work using our system instead of their own.

I'm now trying to figure out a good way to handle this so that each organization could manage their part using whatever management system they prefer, but so that all could also see the work being done by others. For now this could be called a Keiretsu model.

The basic idea is that we should have a technology-neutral but tightly specified API systems could use for communicating with each other. To make things easy we could build it on top of the XML-RPC layer. When such API would be available it would then be up to the different systems to implement it. As support from larger financial or ERP systems is highly unlikely, plugins could be developed by third parties.

The API should be relatively generic:

  • Project Management
    • List projects or tasks
    • Modify a project or task
    • Create a project or task
    • List hours reported to a task
    • Add hour report to a task
  • Sales
    • List sales projects
    • Modify a sales project
    • Create a sales project
    • List contacts in a sales project
    • Modify a contact in sales project
    • Add a contact to sales project
    • List activities in a sales project
    • Modify an activity in sales project
    • Add an activity to sales project
  • Support
    • List support tickets
    • Modify a support ticket
    • Create a support ticket

All operations would be run with an user account, letting the system in the other end handle access control. This would also allow desktop tools to utilize the same API for communicating with the server. For example, it would be easy to imagine GNOME Planner and Gnome Time Tracker communicating this way with back-end project management systems.

For calendaring an existing API like SyncML or GroupDAV could work better.

As a side note, nanocorporation seems to be a fairly new word. Google lists only 19 hits. The main proponent of the term is the Sohodojo portal.

Historical Helsinki-Malmi Airport Threatened

Posted on 2004-12-17 11:07:17 UTC to . 0 comments.

efhf-small.jpg

The secondary airport of Helsinki and an important historical monument, Helsinki-Malmi (EFHF) is now under threat of demolition from the City planning council. This would rid Helsinki of its only airport accessible to smaller planes and effectively kill a whole branch of Finnish aviation industry.

Threat to aviation and security

Closing Helsinki-Malmi would remove Finland of its second-busiest airport. In addition to being a busy private and small aviation airport, Helsinki-Malmi is also the main center for pilot training in Finland. In the unifying Europe travel and communications are increasing in importance. Especially to remote countries like Finland it is very urgent to ensure a smoothly operating flight industry in order to not get isolated from centers of politics and commerce. This is not viable if flight training has to be dispersed to more remote and expensive locations.

Helsinki-Malmi also operates as the secondary airport to Helsinki-Vantaa in case of strikes or catastrophes. If Helsinki-Vantaa would be temporarily closed for some reason, like it was during a strike in late 80s, Helsinki-Malmi provides a convenient location. Routing the flights in such situation to Pirkkala or some other airport would make air travel difficult.

In addition to the hard values, Helsinki-Malmi is an important recreational area for citizens of Helsinki. Parachutists, private aviators and flight enthusiasts would lose the only location for their hobby near the capital. Closing Malmi would make Helsinki one of the few major European cities not accessible by smaller aircraft.

Helsinki-Malmi is also an important base for rescue helicopters and the Finnish border guard. The state has recently made huge investments into the border guard helicopter base in EFHF, and these investments would now be lost.

Historical value

As one of the few operational examples of 30s functionalist architecture, and such is listed as one of the 100 most endangered sites by the World Monuments Fund.

As the previous main airport of Helsinki, Helsinki-Malmi has also played its part in several events in Finnish history. It has housed Finnish and German fighters protecting Helsinki from Soviet bombers in WWII, and was the site where Mannerheim's funeral procession started.

The value of Helsinki-Malmi is not only in the round terminal building, but in the whole, functioning airport milieu. Destroying that would be irreversible and completely pointless. It reminds of other cases where regimes have destroyed important heritage for the purpose of vanity.

Unrealistic housing plans

Malmi was originally selected as the site of the new Helsinki airport contrary to recommendation from pilot hero Charles Lindbergh because of its unsuitability for housing. The whole airport has been built on top of a swamp, making the construction process very expensive. In the end a new main airport had to be constructed to Pakkala because the landing strips couldn't take the weight of new, heavier passenger aircraft.

The swamp would make house construction too expensive to be viable still today. The city planning council is proposing development of small private apartments to the area. The heavy-duty foundations required when building on such area to prevent houses from sinking would make the apartments very expensive.

At the same time there are several far more suitable locations available nearby. Only few kilometers northeast of the airport begin the drier forests of Sipoo. In addition, the city is gaining new housing areas as Port of Helsinki moves to the new Vuosaari harbour. There are also plans to evict the military from the Santahamina island just few kilometers from the center.

This all proves that Helsinki is not running out of viable construction space. And it has to be also noted that the population numbers in the capital have been shrinking lately, even further removing the need for new housing.

Dubious legality

Helsinki-Malmi was rented to the Civil Aviation Administration for 99 years back in the 30s. Now the City of Helsinki wants to evict them on the clause that the airport must be used for civil aviation. For some reason City of Helsinki chooses not to recognize that private aviation and flight training are also counted as civil aviation. This is a very dubious legal standpoint.

The democratic commitment of the city must also be questioned. The decision and talks about the future of Malmi were pointedly scheduled after the recent city council elections, and all major parties declined to comment the issue. This is understandable as the city wants to close the airfield against the will of a vast majority of residents of Helsinki. This is not how democracy is supposed to work, but then again we live in another system called "representational democracy".

Not too late to act

The current decision was only been a recommendation from the city planning council. The actual actions still have to be ratified by the city council. Apparently the decision will be made before Christmas.

It is not too late to save Malmi. Sign the petition, contact your city councillor and follow the news on the matter. Closing the Helsinki-Malmi airport would be an irreversible action affecting aviation safety and training possibilities, and destroying an important historical milieu.

Sign up now

Note: I have some bias on the matter as I'm currently attending a Private Pilot License course arranged by Malmi Aviation Club and Flying Club of Finnair. I also enjoy going to Helsinki-Malmi to watch vintage aircraft like AN-2 and Tiger Moth which make EFHF their home airport.

Updated 12:37: Helsinki City council will decide the fate of Helsinki-Malmi on Monday Dec 20th. There will be a demonstration at 15:30 in front of the City hall.

Updated 2004-12-20 12:47: I got a reply about this post from Sakari Pulkkinen from the Malmi project team in city planning department. He suggested that I should contact the city council about this which I have now done.

He also made a comment regarding one of the claims in my post. This is a quick translation from finnish:

"The whole airport has been built on top of a swamp" is not true. The area has a clay basis and can be used as regular construction area. The basis is better than soil for exaple in Pikku-Huopalahti or Arabianranta.

Regarding this I have to admit I don't know the truth. My sources were the statement of earlier chief major of Helsinki, Raimo Ilaskivi and the description in History of Helsinki-Malmi.

Anyway, the next point of action is the demonstration starting in 45 minutes.

Two new Midgard buttons

Posted on 2004-12-20 22:26:52 UTC to . 0 comments.

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

midgard-cms.png midgard-cmf.png

Reminded by this, I uploaded a bunch of other Midgard buttons to the project site as well.

In the other news, today's main activity was creating an OpenPSA Sales based storage back-end for a major consumer competition run by A-lehdet. The competition site is completely built in Flash and sends vote and registration data via a HTTP POST to Midgard.

It will be interesting to see how the solution, and especially the campaign user interface in Sales will handle the expected 100,000 registrations. I expect we will have to lighten the campaign member listing screen quite a bit. I'll post some technical notes and code related to this later when the campaign goes live.

The other activity today was a demonstration against closing the historical Helsinki-Malmi airport. There were about 150-200 aviators gathered in front of the city hall, and the air was filled with chants and supporting horns of passing cars. My yesterday's blog post about this got some attention from the city council members, including several very supportive emails. It actually seems to have started a small flamewar within the group.

I've posted some photos from the demonstration. It was also covered in the newscast of Uudenmaan Uutiset and in a brief Helsingin Sanomat article.

Midgard's aggregator now supports multiple encodings

Posted on 2004-12-22 19:57:20 UTC to . 0 comments.

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 will be displayed correctly in both web and the aggregator RSS feed. End-users of course must still have the required fonts installed to be able to display the output:

rss-encodings.jpg

დიდი მაგლობა (big thanks) to Steve Minutillo and the Magpie RSS team for fixing this issue!

Updated 2004-12-23: Another new feature in net.nemein.rss is that now it should tell MidCOM's caching to expire the aggregator pages every half hour, just like the Magpie RSS cache has been set to do. This means that the subscribed RSS feeds will be checked for relevancy once every 30 minutes also if MidCOM's cache system is enabled on the site.

While this uses some bandwidth, Magpie RSS utilizes Conditional GET in its queries. If the feeds support the 304 headers they will be downloaded only if they have actually been changed. See the Regular Sucking Schedule blog for more information.

Contrary to earlier reports, the RSS feeds generated out of MidCOM components like de.linkm.newsticker do not yet support Conditional GET. Bug #143 has been filed on this.

Bourgeois Christmas

Posted on 2004-12-24 10:48:17 UTC to . 0 comments.

This Christmas breaks away from an old tradition honored by a group of my friends. Since '96 we've gathered to spend the holidays together, eating and drinking vast quantities. As the Suicide Surfers are away, this Xmas will be different. Joe complains:

Relating to traditions, I just heard yesterday, that some pigs have lost their wings and adapted to the middleclass with intentions of having christmas somewhere else than in Drunkenland of Flying Pigs and Suicide Surfers. But our team keeps flying.

All the best to the 'Surfers who are spending their holidays drunken and homeless on the beach.

As I write this, Kerttu is baking and I'm waiting for the oven to free up so I can put our ham there. Yesterday we decorated the Christmas tree.

Bergie_Xmas_blogging.jpg

Kerttu_Xmas_tapiiri.jpg

Merry midwinter feast to all!

iSync woes with Sony Ericsson K700i

Posted on 2004-12-28 12:54:20 UTC to . 0 comments.

My old Nokia 6820 phone had a weird issue that made it keep the backlight of the keyboard lit all times. This made the battery run out in less than a day, which was very irritating.

As Kaukola had praised the Sony Ericsson K700i I decided to buy one for myself. Obviously the first thing I tried with it was synchronizing my calendar and contacts with it using iSync. Both had issues.

Calendar synchronization worked without any major hurdles. The only big complaint is that it doesn't support timezones. My Mac is configured to be in the EET timezone (GMT +2), and so was my phone. Unfortunately the phone expected that the incoming events would be in GMT when they were in EET, and so moved all of them by two hours. This was solved by setting the phone to the GMT timezone, which is obviously not a pretty solution but has to pass for now.

One theory on why this goes wrong is that the events in my calendar originate from OpenPSA Calendar, which doesn't add any timezone information to its vCal entries. Here's a typical entry:

BEGIN:VEVENT
UID:ead00e1735d94f14a5c21d1888a5c48f@midgard
SUMMARY:Midgard site wizard
CLASS:PUBLIC
DTSTART:20041228T090000
DTSTAMP:20041228T090000
DTEND:20041228T180000
DTCREATED;TZID=US-Eastern: 19700101T020000
DTLAST-MODIFIED;TZID=US-Eastern: 19700101T020000
CATEGORIES:MEETING
LOCATION:Home
END:VEVENT

I've posted bug #22 to OpenPSA about this and it has been fixed in the 1.10 release.

Contacts synchronization started out just fine, but somehow mystically broke overnight. When I tried to synchronize again this morning iSync aborted with some error. I then removed the K700i device from iSync, and re-added it. But then it created duplicates of all entries, so both my phone and my Mac had entries as "firstname lastname" and "lastname firstname".

I was able to delete all contacts from my phone and remove the duplicates from the Mac Address Book. However, even after this iSync persistently tried to "salvage" the duplicate entries from a Backup Conduit. After some struggle I decided to keep from synchronizing contacts between the two for now. Very aggravating! I've posted an iSync bug about this.

In the other news, I've finally added Midgard CMS to the CMS Matrix. Several people have mailed me and asked for this, but unfortunately their submission form didn't work on Firefox earlier. See the entry on Midgard.

Updated 2004-01-08: The calendar synchronization has been working pretty well for two weeks already, but I haven't yet braved trying to get Contacts synchronization working.

Minor annoyance has been that the phone doesn't allow turning shutter sound off. This is a firmware setting that can't be overridden even by setting the phone volume to silent.

Today we've migrated our OpenPSA installation to UTF-8. To stress test the OpenPSA - iCal - K700i synchronization, I created a calendar reservation that mixed Scandinavian, Cyrillic and Georgian characters. Both OpenPSA and iCal showed them correctly, and the phone showed things correctly with the limitation that Ericsson hasn't installed Georgian fonts, so boxes were shown instead of those characters. Quite cool level of internationalization!

Adding location awareness to blogs

Posted on 2004-12-28 23:30:07 UTC to . 0 comments.

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.

bergie-blog-location-20041228.jpg

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 city and country information to my website. This "ends" the previous location entry and creates a new one.

At the moment I'm content with granularity of storing location on city basis and time on per-day basis. However, far more detailed information could be added by connecting a GPS navigator to the system. While this would allow for cool new information like linking photos to maps, it would force me to carry and connect a bulky device, and cause potential privacy issues.

I'm also including the METAR weather information pulled in using the Services_Weather PEAR package. For now the weather displayed is the current one, but I'm thinking of storing the weather conditions on entry posting time to Midgard. That way you could see the temperature and other details related to a photo, for example.

Where have you been?

Posted on 2004-12-29 15:32:59 UTC to . 0 comments.

Related to yesterday's geolocation post, these maps seems to be the current meme on Planet Debian:

countries-20041228.gif

This summer's trip added another 9 to the sum. Create your own visited countries map.

The map is very similar to the ones generated by the World66, an open content travel guide.

In the other news, Separator, a native Mac OS X hex viewer application by Alexey Zakhlestine's Milk Farm Software is now available. First time I've ever translated a non-Midgard app.

Happy new year!

Posted on 2004-12-31 17:37:34 UTC to . 0 comments.

Happy new year to everybody, especially in the Midgard community! I was going to post something about how the Midgard world will look like in 2005, but Kaukola got ahead of me. This year has been a very good one for the project, and the next promises even greater advances and exciting new technologies.

There are also looks at PHP in 2004 and in 2005. The look back for the Midgard community was posted already in May in preparation for the 5th anniversary of the project.

But anyway, please enjoy the new year celebrations! While this fireworks picture is from the summer it should still depict the mood:

We spent the last new year in Клуб Fireball, St. Petersburg. This year will be more traditionally in Ravintola Ateljé.

Updated 2005-01-01: We had a good time in Ateljé, with drinks, cigars, board games and a big group of friends. Thanks to everybody for attending!

unnamed unnamed unnamed

...and in the morning we went with Kerttu to Cafe Ursula on the Kaivopuisto shore to watch sunlight play on the winter sea.

unnamed unnamed

Back