Planet Nemein is a collection of blog entries from the Nemein team.

Sources:

Nemeinin blogit

Nemein Oy
+48 60 840 8212

Faster MidCOM static files.

27.11.2008 20:38:18

Better late then never, but just today I realized that MidgardEngine directive from Midgard apache module can not work inside Directory one. Not because module has a bug. But because with midgard apache module, apache won't be able to check if it's serving file from such directory. It is the main purpose of midgard module. Serve data from database, not from filesystem.

Of course, MidgardEngine will work in virtaul host scope. But in directory scope -will never work.

How to set MidgardEngine to Off for specific directory then? Use Location. I configured it simply for my virtual host:

<Location /midcom-static/>
    MidgardEngine Off
</Location>

Summer of Code works

21.11.2008 13:06:43

COSS - Finnish Centre for Open Source Solutions

Prompted by a recent COSS news release, I thought to write about two Summer of Code success stories:

Not bad!

Technorati Tags: , , , , ,


Maemo.org goes Ragnaroek

18.11.2008 18:54:52

Maemo.org, the community site for Nokia's mobile Linux environment has this week been upgraded to 8.09.2 Ragnaroek, the much faster and long-term supported version of the Midgard framework. Thanks to Niels and Piotras for working with me on this!

in October, I spent quite a bit of time optimizing this release, shaving off an estimated 60-70% of queries through some smart caching and removed redundancies. In addition, a new database server is now in place. Together, these should get us quite far in the "Fast Server" agenda.

Maemo on Nov 18th

We're however still not done, and now we will do more optimizations that will be part of 8.09.3, due next week, and will move static files (images and javascript) to a separate lighttpd instance to remove that load from the normal Apache. When all this is done, the Maemo community should have infrastructure that will be able to serve it for a long time.

In addition to optimization, we've been working on some other features related to the website:

Midgard is a big and complex piece of software. If you notice any issues related to this upgrade, please let us know. And if you have any ideas on improving the website, be sure to file those too!

Technorati Tags: , , , ,


On innovation, and how choice is not always good

16.11.2008 22:55:33

JP Rangaswami is writing about how innovation should happen as a dialogue between the developers and the users of the product. As an example of how innovation used to happen, he dug up Henry Ford's early automobiles and assembly lines.

With these early Fords, the customer choice was limited to having your car "in any color as long as it is black". And judging how since then cars have diversified to come in so many different forms, specialities and colors, this thinking must be flawed, no?

As Tim O'Reilly pointed out, JP Rangaswami's blog talks about enhancing the consumer experience in markets that are already out there and are mature. In less established fields, the lone inventor must still press on:

In a talk I attended many years ago, Joseph Campbell said that the Knights of the Round Table were the archetypal myth of Western civilization, the idea that each of us, alone, must go off into the deepest, darkest part of the forest, populated by monsters, on a quest to make the world a better place.

An interesting comparison with Ford at another, still quite immature and emerging field is Apple. Apple provides a full range of computers from servers to mobile phones and in most cases seeks to control the experience through the whole way. The devices are beautifully designed and work well as long as you use them as intended, and not for anything else.

This is a big contrast to the rest of the computing world, where everything comes with a bewildering number of choices. And these choices rarely work so well with each other. And so Apple is able to utilize their singular vision and attention to detail to make very good business.

In the free software world, the same distinction has traditionally been between the GNOME and KDE projects. GNOME has focused on a controlled environment with strong usability and accessibility, while KDE has been about the freedom to tinker and configure.

At some point users will want to manifest their personality or a tribal identity through how they set up their computers. But at the moment I believe we still need more the working systems that we can use, don't have to spend too much time configuring, and that let us focus on whatever we want to accomplish.

This is what originally drove me from my HP Linux laptop to an iBook four years ago. When I ran Linux I found myself constantly tweaking settings and installing new interesting applications that were supposed to improve my life. With Mac, once some basic necessities had been set up, I have very rarely touched any settings.

Now the iPhone experience has got me to feel the downsides of Apple's total control, and I'm again looking over the fence to see if free software is greener on the other side. While with Linux I would have full control of my environment, the whole synchronized release business keep things fresh enough. Given that a new GNOME desktop and a new Ubuntu would be out in just a few months, I should be able to fight the urge to start upgrading bits and pieces on my own, ruining productivity and potentially breaking my work environment.

If SubEthaEdit wasn't locking me to OS X, I would definitely be trying this out.

As an afterthought

All this talk of Ford got me to think a little about the car problem. Cars make cities unlivable and pollute the world, but at the same time they let people accomplish and experience things that they couldn't without personal transport.

Now the conventional thinking seems to be that what the world needs is more energy efficient, cleaner cars. But to my point of view, that is quite close to what Ford said:

If I'd asked people what they wanted, they'd have said "faster horses"

So how about solving the problem in some other way? Segways tried and failed to make mobility more even more personal and less space-requiring - but not very appealing in chilly Helsinki weather. But how about making the world require less mobility in the first place? Maybe World of Warcraft, Skype and Second Life - the field of telepresence - are better answers to the car problem than Prius or Tesla.

Technorati Tags: , , , , , , ,


Nemein is going to Ubuntu Server

14.11.2008 11:37:34

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

Ubuntu and Midgard

The reasons for this are quite simple:

While not everybody is happy about the way Ubuntu has established itself in the market, there seems to be a strong gravitation towards switching to it, on both desktop and server.


Nemein Oy
+48 60 840 8212

Sauna, suana, sauna or Midgard Gathering

12.11.2008 20:24:26

I was to blog earlier but this issue made me busy. On monday, me and solt came back to Poland from Midgard Gathering. Second gathering this year. I must say I think I am getting older as it's getting hard to focus when there are so many people and sauna time ends very late night :)

Bergie's blog describes gathering very nice and with more details.

Anyway, few very interesting points:

And as Vinland requirements clarified a lot, I am looking forward to see Midgard2 as a gateway for Gnome to web servers and services world.


Nemein Oy
+48 60 840 8212

ap_get_module_config and RHEL5

12.11.2008 19:18:22

This is an issue. I couldn't find why Midgard apache module refused to work on RHEL5.It just started to segfault. What's even more interesting, it started to segfault when trying to access read only data provided by apache. If you are familiar with apache modules' internals you probably know that all routines are registered as hooks. Even that ones which holds server and directory config. In normal case you register hook and get configuration later, when it's needed.

Just like this:

midgard_directory_config *dcfg = 
    (midgard_directory_config *)ap_get_module_config(r->per_dir_config, &midgard_module);

I found these two posts quite interesting. First because it affected also midgard-apache module few years ago, and the second because it clearly shows there something odd happens. Why odd? Because you never sets directory or server config explicitly. You just register function and it's up to the server implementation when it's invoked.

In my case ap_get_module_config(r->per_dir_config, &midgard_module) returned NULL all the time. So I added debug messages which showed that server and directory configuration hooks are invoked. Spent plenty of time trying to figure it out.

  1. Your hooks are working very good (the same code works with older version of Midgard)
  2. Hooks are invoked. For sure.
  3. ap_get_module_config returns NULL.

Three facts which made me think it's something wrong with Apache. Not the module itself. And after many trials and errors, I found guilty AM_CFLAG: -D_FILE_OFFSET_BITS=64. Also interesting fact, this flag is able to slow down PHP itself.


Meme: Ten years

12.11.2008 00:59:22

Ten years ago, 1998

  1. Started my first "real job" as a site building in an ad agency
  2. Moved out of the commune
  3. We were running already the first production Midgard site
  4. Was in process of handing Harmaasudet over. By spring 1999 I would be out

Five years ago, 2003

  1. Did my first motorcycle trip to Russia
  2. Co-organized a very nice conference in the Harvard university
  3. The relationship started in 1998 ended
  4. Had been running my own business for two years, and it was finally cash-positive

Three years ago, 2005

  1. Learned to fly
  2. Spent the summer holiday on a Viking ship in Russia
  3. Visited Rome, Brazil and the cave city of Vardzia for the first time
  4. Had a cat

Year ago, 2007

  1. Released my first mobile application
  2. Changed homes and motorcycles
  3. Got robbed twice, for a total of about 15,000 EUR
  4. The company got an AAA credit rating

This year so far

  1. Got black belt in Haedong Kumdo, a Korean sword art
  2. Moved partially to Istanbul, and then didn't
  3. Saw Midgard2 finally become a reality
  4. Did not motorcycle or fly almost at all, but traveled quite a lot

Yesterday

  1. Recovered from the Midgard Gathering
  2. Returned the rented white tie suit
  3. Did some customer support duty

Today

  1. Upgraded some Midgard servers to Ragnaroek, with varying degrees of success
  2. Got my local development environment back up-and-running
  3. Missed two after-work meetings

Tomorrow

  1. Will go to Haedong Kumdo after a long break
  2. Wear my black christmas hat for the first time this season
  3. Do some calendar digging for missing hour reports

Next year, 2009

  1. Get out of debt caused by the disasters of 2007
  2. Get back into the motorcycle adventurer mode
  3. Learn to sail on modern boats

Via Tiuku.


Midgard Gathering 2008

07.11.2008 16:42:25

The second Midgard Gathering of 2008 is this weekend in Otaniemi, Espoo. Happened so far:

Thursday

Friday

Saturday

  • Saturday started with waking up the various Midgardians sleeping in OK20
  • Alexander gave a presentation on how Midgard's internals could be ported from straight C into Vala
  • We discussed reorganizing Midgard's documentation and appointed Solt and Neithan to be in charge of it. I expect to see lots of documentation-related bugs in Trac
  • Split in MidCOM between "core" and "contrib" components was clarified and we made an updated list of core components and discussed some components we hope to promote to core soon
  • Midgard 9.03 feature list is now decided. With 9.03 we will focus on the persistent storage and MVC layers of Midgard, and plan to add the CMS features on the application level around 9.09
  • Rambo, in his role as a VCS Tyrant started reorganizing Midgard's SVN
  • We started planning a foundation to govern the Midgard project. This will not be a big thing like Mozilla and GNOME foundations, but mostly a practical instrument for handling copyrights and Midgard Gathering arrangements
  • In the evening we went to Kaisla for some beers to celebrate the fact that Midgard actually did compile (though not run) on Windows

Some pictures on Flickr.


Not everything goes according to plan

06.11.2008 22:57:19

Damn. As Slate put it:

Distance also magnifies the impact of negative feelings like longing and suspicion; according to one study, intercity lovers are more likely to be depressed

What next? I don't know, maybe focus on some core competencies...

Royal Enfield somewhere in Poland


Finland, freedom, censorship

04.11.2008 09:05:15

According to recent Helsingin Sanomat poll, 73% percent of Finns aged 55-64 years wanted to "control" the Internet, removing freedom of speech as necessary, in the light of the recent school shootings.

I've got very little to say to them, except:

"Those who would sacrifice freedom for security deserve neither" - Benjamin Franklin

Every knee-jerk reaction like this only fights the symptoms, not the causes of problems our society is facing. And at the same time, little by little, we erode away the values European culture has been built on.

Europe got ahead by applying new ways of thinking during the Age of Enlightenment. Now, facing global competition, is it really a good time to become like China?


Midgard: benefits of synchronized releases

03.11.2008 17:28:05

From the Midgard Project:

The Midgard Project switched to a new synchronized release model with the 8.09 "Ragnaroek LTS" release. Synchronized release model means that a major release of Midgard will happen every six months, tuned to be part of the larger Linux software ecosystem as described by Mark Shuttleworth:

WHAT IF you knew that the next long-term supported releases of Ubuntu, Debian, Red Hat and Novell Linux would all have the same major versions of kernel, GCC, X, GNOME, KDE, OO.o and Mozilla. Would that make a major difference for you? I’m willing to bet not - that from a customer view, folks who prefer X will still prefer X. A person who prefers Red Hat will stick with Red Hat. But from a developer view, would that make it easier to collaborate? Dramatically so.

...


The same model has been employed very successfully by major projects like GNOME, Eclipse and the Ubuntu distribution. As Midgard relies on many GNOME technologies, being in the same release cycle with them helps our development immensely, and makes Midgard more easy to install because we have a more stable set of dependencies.

Midgard and content filtering

01.11.2008 13:46:58

Gadgetopia has a post on how CMS's should provide an API for content filtering. Since Midgard is persistent storage API first, and CMS only second we obviously have nice APIs for doing exactly this.

In this case we're running a query and checking if a different user is allowed to see something, as specified by Gadgetopia:

Hey, CMS, I have this list of content IDs here… How did I get them? Yeah, well, that’s not that important right now…

Anyway, can you look at this and tell me which ones I can show Nathaniel Snerpis? Here, just take them all, and give me back the ones I can show him.

With Midgard you do this by fetching the objects first with Query Builder, and then checking their permissions via MidCOM auth service. When user is logged in, his ACLs are already automatically applied to the results so no checks are needed.

<?php
// In this example we have some pre-gathered list of GUIDs
$guids_array
(
    '35c2b080736b11dd935ab300c51623d723d7',
    '18aa22ee736b11dd935ab300c51623d723d7',
);

// Instantiate a query builder
$qb = midcom_db_article::new_query_builder();
$qb->add_constraint('guid', 'IN', $guids_array);

// Get the articles
$articles = $qb->execute();

// We need Nathaniel Snerpis' GUID to perform the ACL check
$nathaniel = $_MIDCOM->auth->get_user_by_name('nathaniel');

// Loop through the articles and check permissions
foreach ($articles as $article)
{
    // Check if Nathaniel is allowed to see this
    if ($_MIDCOM->auth->can_do('midgard:read', $article, $nathaniel))
    {
        // Show the article to Nathaniel
    }
}
?>

You can see here that we're using GUIDs, not IDs to refer to content. This is because GUIDs (compliant with the UUID spec) are replication-safe, and you can trust them to be the same on every system in your Midgard cluster.

Note: in this case the API example was in PHP. But with Midgard 9.03 you will be able to use the exact same APIs with Python and Mono.


Summer versus autumn identity

31.10.2008 19:41:15

As I didn't go to LatinoWare this year, the extended summer is now officially over, and therefore it is time to change to autumn garb, also on my online identity. Background remains the same:

Summer BergieAutumn Bergie

I remember seeing somebody's blog change its background image according to weather outside, showing sunny or rainy scenery. Maybe I should follow similar idea, changing color scheme and avatar automatically based on location and temperature?


Some talking points for the Midgard Gathering

31.10.2008 18:51:21

Since the Midgard Gathering is next week, I thought it would be time to write down some conversation starters related to it.

Clear vision

One important thing we need to settle on is a clear vision for Midgard. It should be a vision everybody in the community can agree with, and a vision that will benefit the user base.

I believe that "your data, everywhere" is the right idea. We should target Midgard for the replicated world where your application data can be easily transferred between multiple devices, served on the web, and shared with your friends.

While some believe that soon you will "never be offline", I think that level of ubiquitous connectivity is either unattainable or at least very far off in the future. What we need instead is to be able to have our data with us, wherever we go.

Unique visual identity

What really sets Apple's products apart is the "fit and finish," the ultimate impression that results from thousands of tiny decisions that go into a product's development. Take Apple's pioneering work in injection molding. It's part science, part art, and plenty of trial and error. (Who Is Jonathan Ive?)

Design is often what differentiates winners from the mass. Apple's beautiful laptops and cell phones are a good example of how you can beat a crowded market by focusing on design and details.

While we should have distinctive visual elements to build our user interfaces from, I don't mean only that. By design I mean that we really need to think hard of what our users need, and design beautiful interfaces that make things easy for them.

On the visual end, the Midgard colors of grey, orange and brown should stand out quite well. We have excellent icons done in the Tango style, and many other design elements coming from Ilkka Martio's work on Midgard2 styling. These should be cornerstones of the new visual user interface. In '99 Midgard had a strong, distinctive visual identity. We need to rebuild that.

Content management

Content management: This is the everything that happens with a piece of content after its created and until it dies. This includes the permissions, workflows, versioning, check in/out, task management, reporting, archiving, administrative searching, language translation, and any other action involved in keeping this content relevant, current, effective, and general under control. (The Four Disciplines of Content Management)

Midgard's origins have been in web publishing, and through strong templating and component systems this is where we've been quite good at. But content management we haven't done that well. At least, if content management is taken to a wider meaning than just "making stuff editable and published on the web".

With the new Midgard we have the delightful opportunity to rethink this all. Thanks to our active consulting companies and the powerful MVC framework we shouldn't focus on actual components this time - they will appear for sure through various client projects. Instead, we should concentrate on the basic ideas of content management.

This means that we should think of how the content is actually edited and published, and how it lives on in a service. Handling and connecting of content fragments, managing inter-document linkage, and versioning are all important features. Similarly, we should make it easy to send documents to commenting and approval rounds, and to serve them in multiple variants.

An important piece for this would be making the notification service that in older Midgard existed as a separate component an integral part of the system. Any Midgard application should be able to store and show notifications for users. If this is utilized from core up, then workflow between different parties working on a site or a document will be much easier.

To ensure consistency between components, and that components are as easy to develop as possible, MidCOM should provide a good set of controller baseclasses for typical content management activities.

Replication everywhere

Before his retirement as Microsoft's chairman, Bill Gates suggested that a so-called pervasive desktop would be a focus of Windows 7, giving users a way to take all their data, desktop settings, bookmarks, and the like from one computer to another--presumably as long as all those computers were running Windows 7. (PC World)

Even though Midgard has supported replication since 2000, it has always been a bit of an extra feature. Most installations have still been on the server end, with the server acting as an isolated island.

Following our "your data, everywhere" vision, this must change. Replication tools must be shipped with every Midgard installation, be it on server, on desktop, or on a mobile device. And they must be integrated with the user interfaces. Anywhere you edit something, you should be able to share it with others, and see where that piece of content originally came from, and who it has been shared with.

When online, the sharing and synchronization must happen instantly. When offline, the changes to be replicated must be collected into a local spool, and then sent over when connectivity is available.

Separating content objects from internal objects

...load-bearing walls in content management — those things that require a content editor to call a developer to change them. Where do you draw the boundaries? (Load-Bearing Walls in Content Management)

Everything in Midgard is an MgdSchema object, be it permission, site template, user, or an article. This is good in the sense that it allows familiar programming interfaces to be used on every level of the system. But it also means that internal objects sometimes end up being used as content objects, causing confusion.

For instance, persons and groups are often used as on-site content. But they differ from other pieces of content on many levels, for instance because they have so many other objects connected to them through permissions and metadata. Because of this they work with different rules regarding to deletion and approval than others, which many users can find frustrating.

We should see to have stronger differentiation between content objects of different types to ensure smoother usage and replication.

Quality

Quality criterias - Portability: Easy to configure in new environments, Few OS and webserver dependencies, Few and documented version dependencies (language version, database version, external libraries), Able to survive environment updates (Quality in PHP Projects Beyond Unittests)

Like many other pieces of free software, Midgard has been riddled by quality issues. While our bugs haven't meant gaping security holes, changing APIs and memory leaks have caused many grey hairs to our users.

To improve quality in the Midgard software stack we have already taken some steps. The new synchronized release model ensures that Midgard and MidCOM play well together and that component developers can start using new interfaces and features more quickly. It also makes Midgard more predictable to users, helping them to plan their upgrades well ahead.

The openSUSE Build Service has also increased the quality of Midgard software. Now we can provide prebuilt binaries to most popular Linux distributions, making installing and upgrading Midgard easier. The new datagard tool makes setting up a Midgard site a single shell command, which is also an important step here. In the future we should aim also for the virtualized systems by using tools like SUSE Studio.

Quality and backwards compatibility of commits is also important, as are coding standards in a major project like this. To that end, our new VCS Tyrant should be able to help our contributors in their work. Similarly, the newly-revitalized issue tracker with its clear milestones make tracking the development work easier.

Finally, better software testing is a major step to strive for. Regressions have hurt us in the past, and the only way to get rid of them is to to implement a good test suite. For this, we will have an unit testing workshop on the first day of the Gathering.

Documentation

If our intent is to encourage people to use these tools and to contribute their time to the development of these tools, we need to spend more energy on introductory documentation. Engineers who look at Sourceforge are looking either for solutions to problems or are looking for interesting tools. In either case the Web site needs to convey the important details in a short form to enable the reader to gauge their level of interest. Obscurity in documentation benefits no one as it annoys potential users and non-users alike. (Is Documentation Holding Open Source Back?)

Midgard's documentation wiki is currently in a horrible shape. As Midgard's capabilities have grown, and versions changed, new stuff has been added. But all of the old stuff is also there. And users, stumbling there either through the navigation or a google search, will have few ways to tell whether a document is up-to-date.

Developers clearly feel this frustration, and as result much of the newer documentation, especially for Midgard2 is available only in blog format.

Because of this, we really need to put an effort to improving the level of documentation. And important first step would be to take the current wiki content into control. Old information must be either removed or tagged to the version it belongs. Templates must be tuned so that they show clearly if something is current or historical information. And the new materials must be collected from the various blogs in order to be published on the site.

After this is done we must rethink the way the wiki is maintained. Maybe we need a "documentation master" just like we now have a "bug master" and a "VCS tyrant". Maybe we must switch to MediaWiki. Or maybe we must make the wiki a replicated system that we all can run and edit also on our own machines. As I am not quite sure of the right solution this must be discussed well in the Gathering.

Virtual servers

One of the more successful technologies to have been developed is virtualization. Broadly speaking, to virtualize is to make a single piece of hardware function as multiple pieces. Different user interfaces isolate portions of the hardware, and make each one operate as a separate entity. As applied to data centers, installing virtual infrastructure allows more operating systems and applications to run on fewer servers, which reduces overall energy use and cooling requirements. (Ecopreneurist)

In the past Midgard has been hurt much by the fact that root access is required. Less advanced content management systems have surpassed us in popularity by many orders of magnitude because anybody can set them up in just some web space.

But now I believe things are changing. Virtual servers are becoming cheaper and cheaper, and as they allow much larger degree of freedom than shared web hosting, companies and even individuals are now buying them instead. And on a virtual server you can run Midgard easily.

If we want to really benefit from the wide popularity of virtual servers, we must take some steps. First of all, Midgard must be very easy to install, as it is now thanks to datagard and OBS. And secondly, we should provide preconfigured "virtual appliance" images that hosting providers running Xen or VMware can set up just as easily as they would an off-the-shelf Debian or RHEL.

The replicated network setup should also take this into account. Users should be able to easily keep adding new virtual servers into their cluster and have that instantly start sharing data with their other servers.


On Vikings and Free Software

29.10.2008 19:45:49

Harmaasudet, the living history group we started in mid-90s, and the reason why I originally got into software, recently migrated back into the Midgard platform.

Harmaasudet website

Their webmaster and Nemein alumnus Heikki asked me for some history of Midgard, and this is what I wrote:

Well, original Midgard was completely programmed in order to run the Grey Wolves site. We hacked it together with @jlz in Helsinki Capital of Culture offices in Etelaranta at night time.

Before Midgard, the site had run on a SGML pipelines -based publishing system we called SusiSGML, and member registry on some custom Perl stuff. Then we wanted more dynamic functionality, and Midgard was born. At first @jlz was intending to write it in Scheme, but then chose the C+PHP extension.

For administration, we wrote the “Midgard Admin” tool, traces of which can still be seen in SpiderAdmin.

Midgard was intended to be a one-off, but then as my employer Stonesoft clearly needed some system I deployed there. Then @jlz was hired to my team, and we decided to open source Midgard before any IPR issues would rise with our employer, which was after all a proprietary software vendor.

When the original Midgard-based Grey Wolves site launched in early 99, we had the great example of what things can be: Hiiden Hirven Hiihto photos and reportage were live only couple of hours after the event ended. And this was before we had digital cameras…

Jukka Zitting, the original Midgard lead developer also added some points:

Architecturally SusiSGML was pretty much like early versions of Apache Cocoon, only with SGML and DSSSL instead of XML and XSL. Had we been at it a few years later, Midgard might have been based on Cocoon. :-)

The Midgard project will turn 10 years old next May, and so it is great time to collect some odd bits and pieces of Midgard folklore.


LinkedIn Applications: automatic data into your resume

29.10.2008 19:19:30

LinkedIn, the popular resume maintenance tool just got a little smarter: they added an applications catalogue that can make your profile there more dynamic. This is good as then potential business partners can find out more about myself from a single source, and I need to do less work to keep it up-to-date.

I immediately added three apps, displaying my latest conference presentations, upcoming trip plans and posts on my blog:

LinkedIn Applications on my profile

This is great as the applications already were part of my workflow. However, in general it is not a good idea to trust web apps to be the only place where you keep your things.

In my case, I'm using my Midgard-powered website as the backup where I automatically gather information I publish on other services like Jaiku or Flickr. This means that I can use the convenience and collaborative features of social web applications but still remain in control of my data. In the future I may move this to an even more replicated setup...


Midgard2 at FSCONS: Your data, everywhere

27.10.2008 15:02:19

Last weekend we went to the Free Society Conference and Nordic Summit in Gothenburg to talk a bit about the new direction Midgard has been taking: making it a general replicated persistent storage library for multiple programming languages. The CMS itself is just an application using the library.

The basic idea is that the cloud is a trap that will move your data, and your applications beyond your control to proprietary data servers and web applications run by multinational corporations. If free software doesn't provide a compelling answer to that, we risk irrelevance.

A replicated, peer-to-peer system of synchronizing and sharing your data could be the answer. And Midgard2 is a framework providing just that. Bindings to different languages like PHP, Python and Mono, interprocess communications via D-Bus and XMPP, replication, and ability to run the same software from big server clusters to Nokia internet tablets should all help us get there.

Bergie in FSCONS: Midgard tackling the mobility challenge

In the conference we focused on outlining the big vision, and then ran a workshop where we showed some practical aspects of this. We set up Midgard2, and built a web application that allowed user to input a RSS feed address. This was stored to the database via midgard-php. Then a midgard-python process got notified about this via D-Bus, fetched the items and stored them to the database. The web front-end then displayed the articles. A clean example of interprocess communications.

Tero in FSCONS: Midgard 2 architecture

Peer-to-peer replication we demonstrated in Ville Sundell's XMPP workshop where we built a Python replication daemon monitoring for database changes via D-Bus and transmitting them via Jabber to other Midgard boxes. Quite promising! But still many things need to be written before we are in the "your data everywhere" utopia...

Oh, and for those wondering: Midgard2 is very much GNOME software, running on top of GLib, libgda, D-Bus and so forth.


Feeling down

27.10.2008 11:53:33

Had a great weekend, but still feeling down. Been listening to Jenni Vartiainen "Ihmisten edessä" album whole morning and noticed once again that for a long time, that's one of few albums that I can really relate myself to. Whole album is pretty melancholy, what might be the reason. What's strange, this started a long time ago and I haven't really found a way to get over it. I somewhat counted that past weekend would have lifted myself up, but as soon as the weekend was over, I got the same feeling back again. And it's not that I wouldn't like to be at the office, or anything like that. It's just feels like I can't finish anything, things to do just keep piling up in every part of my life.

Well, maybe I just need to get a hang of myself and roll up my sleeves and start from the beginning.

Following lyrics from Jenni's song describes quite well my feeling at the moment.
"Väkijoukossa
mua kalvaa yksinäisyys.
Viel' nuoreen vereeni
on kirjoitettu iäisyys.
Kun kiihkosta huudan,
teen sen kuiskaten.
Kaiken uskon sinuun laitan,
vaikka epäilen.

Tuhannet mun kasvot
ja ne vaihtuvat vaan."


Real-world example of a free software project handover

25.10.2008 19:14:12

I wrote earlier how a free software project never stops as long as there are people interested in it. Looking at Midgard's Ohloh analysis, I found a nice example:

Ohloh: MidCOM handover from Torben

Can you see a change when former MidCOM lead developer Torben withdrew from the project?