LGM2010 writeup

This weekend I attended Libre Graphics Meeting in Brussels, and got to meet a bunch of great people from lots of different projects. Got to meet people working on similar things (at least in the same ballpark) as MyPaint, like Krita, GIMP and Nathive. Also got to meet and hang out with some of the awesome people on the Durian Open Movie project. They were using, and were more fond of, MyPaint than I thought.  Also chatted with several other users, some of which were using MyPaint as a part of their workflow in a professional environment. Good stuff.

The entire conference was very professionally executed, no technical or organizational problems, yet they were able to maintain a nice cosy atmosphere. The only thing I didn’t quite like was the food, but thats mostly a matter of personal preference (they only served vegetarian, and I’m a quite dedicated carnivore).

There were plenty of good talks, and if you’re interested in them you should check out the video recordings done by River Valleys. I also attended some workshop/BoF sessions, here is my take on them:

OpenRaster BoF

The OpenRaster BoF turned out to be quite different from what I expected. I expected only a couple of people from Krita, GIMP and MyPaint to show up. But no, we had lots of people attending, even professional standards people from Adobe, w3c and Opera! I also somewhat suprised myself (ok, I know that I like to talk and am not afraid to do so, but still), by taking an active role. We did get useful things done, like consensus on that we want to define a minimal baseline standard, and to have fallbacks for things extending upon the baseline. The concrete specs have not been settled, but hopefully we (MyPaint+Krita people mainly) can take care of that pretty soon.

I hope to try out some implementation ideas for fallbacks soon, and to improve the GIMP implementation, but school is keeping me very busy now a days. In fact, the first evening in Brussels was spent finishing my bachelors thesis report, and sunday was spent on my final report in my english class. And its far from over yet…

A Libre Graphics Foundation?

There was a birds-of-a-feather session for a potential “foundation” to support and promote libre graphics projects. Apparently these ideas have come up before, but this year it seems to be gathering some traction so it might actually happen. Different people have different views on what exactly it should be about of course; some are looking in the direction of Blender Foundation/Institute, doing open projects, funding developers, and having official teaching; others are more interested in having common documentation about libre graphics software for users. In any case, a common resource and face for libre graphics projects would be good. But in the end it will boil down to what people step up and make happen, I suspect. Discussions are ongoing on the create @ freedesktop.org mailinglist, so jump in if this tickles your fancies.

LGM2011

In the discussion during the last day, Montreal and Vietnam were proposed as locations for the next LGM. I’d love to go either way, haven’t been to Asia nor North-America. Perhaps even do a talk of my own? Still, it’s much further away, so it might require a very interesting program, depending what I’m doing at that time and how busy I am. We’ll see. If if turns out to be more of an end-user conference, and less of a developer/contributor meeting I’d love to have David Revoy and/or Ramon Miranda do MyPaint workshops. That would be beyond awesome.

In the meantime, it looks like GUADEC will be my next conference, only 8 weeks away. I’m already excited!

It’s a tragedy

It’s a tragedy, that some hide behind a mask.
Pretending that everything is good,
pretending to be someone else.
It’s a tragedy, that the mask is never dropped.
Not for friends,
not for family.

It’s a tragedy, that some find life so hard
That a quick end seems the best solution.
It’s a tragedy, and it happens every day.

To H.

Hello Openismus, Hello Berlin

Openismus

Looks like I will be joining Openismus in Berlin from July, as one of three trainees! There is much to learn, but that’s gonna be half the fun. The other half will be working with something I really like, free and open source software, and with great people in a very good environment.

Going from living in my childhood home with my parents, studying at the local college, to my own place in a big city in a foreign country training/working as a software developer is going to be a big change. But I feel like a change, and I don’t think it could have gotten much better than this.

But before that; Hello bachelors thesis completion and Hello exam preparations!

Grapikslabor, MyPaint meetup, attending LGM2010

Very sorry about the wall-of-text-with-no-images. I’ll do better in the future, promise.

While on my trip to CERN I spent a couple of days in the area of Zürich. On Sunday 2th of May I traveled from Geneva to Zürich (coming directly from a night-shift, ugh). There I attended Grapiklabor, which is a series of workshops on graphics using free software held by Alessandro Rimoldi, a Scribus community member. On the schedule that day was vector based graphics with Inkscape. It was a very useful workshop for me, I now have at least a pretty good idea of how to use Inkscape to solve real problems.

MyPaint developer meetup

In Zürich I also meet up with Martin Renold, the creator of MyPaint. In addition to attending Grapiklabor with me, he was kind enough to let me stay in his home in Winterthur for a couple of days. On Monday we went for a longer hike in a nearby forest, an I got a tour of the city. Of course, with the two most active developers together, the meeting also involved some MyPaint hacking:

– We did some design for our oldest bug; adding some sort of fixed size image functionality. The challenge is doing that without compromising on MyPaints  infinite canvas feature, but still being intuitive and efficient for users, and being able to inter-operate with other applications in a good way.
– We also approached the usability issue with the current brush settings dialog, got a significant improvement committed, and a even better solution, in my opinion, sketched out.
– Also committed was support for layer visibility attributes in OpenRaster, both in MyPaint and in GIMP.

I’m going to LGM 2010!

I’ve now also confirmed that I’m going to Libre Graphics Meeting in Brussels, plane tickets have been ordered and everything. It will be my first LGM, heck, my first conference of any sort! There I will meet up with Martin, Alessandro and many other great people in the free software graphics community. Drafts of the program has been published on the create mailing list, and I’m really looking forward to both the social and technical aspects of the conference. Great things have come out of LGM before, I bet this year will also have some in store.

I might also have another, exciting trip abroad upcoming. If so, more on that later 😉

Back from CERN

Bad blogger me, late as usual.
On Thursday I got back from a longer trip to CERN, Geneva. The purpose of the trip was to sit shift for the HLT subsystem in ALICE, on behalf of the University of Bergen. While not a prerequisite for completion, its was part of my senior project.

Due to the whole volcano ash thing, we had to take the train from Tønsberg, Norway to Geneva, Switzerland(!!). Actually we didn’t have to, but we wanted to go, and after 4 days of “ash clouds, maybe there will be a flight, maybe there wont” we decided to just get there on our own.
The trip turned out a bit less smooth because the ordinary night trains from Copenhagen to Basel were full, so we had to wait 8 hours in Copenhagen and switch between several small regional trains in Denmark in the middle of the night. But hey, we got to see Copenhagen also 😉

The mainline news coverage of the volcano ash business has been all but sickening, but the following little comic made me laugh hard. Especially because of the supposed-to-look-icelandish language used:

'Put 30 billion euro in the garbage can infront of the icelandish embassy tonight, and we will turn off the vulcano! Don't call the police!'

‘Put 30 billion euro in the garbage can in front of the Icelandic embassy tonight, and we will turn off the volcano! Don’t call the police!’

Down at CERN, most of the shifts were pretty uneventful as there was seldom “stable beams”. The beam refers to the particles being accelerated (in the LHC in ALICEs case), and stable means that collisions are happening in a controlled manner so that you can actually start data-taking.
So, when you’re not taking data, sitting shifts mostly means noting down problems that occur with your subsystem, and possibly notifying the on-call expect if deemed serious enough. Actually, being a shifter on HLT should be like that all the time, as it is supposed to be a completely autonomous system in this aspect.
I got to work a bit on my senior project, a bit on MyPaint, a bit on other things, but didn’t really get to be as productive as I would have liked. Especially on the night-shift, I found it hard to do any serious work. Strange, as I often have my most productive times after midnight when at home.

One thing I regret the most is packing too much clothes, and not bringing a camera. Even if we didn’t really do a lot of very exciting stuff, it still would have been nice to have pictures; Capturing the moment, binding the state of mind at that instant to something physical, for easier retrieval at a later time.

Springtime

I know spring is here when:

  • Exams are so close I go to school on Saturdays
  • I can go mountain-biking without having to use long tights and jacket, and most of the snow is gone on the trails
  • Work at the bikeshop is so busy that I don’t have time to greet my colleagues until 5 minutes past closing time
  • Allergies are starting to kick in

Spring is great, mostly cause it means summer is close; soon schools out and the weather apt for swimming.

Hardware passthrough in LXC (or: running a desktop in a cgroup)

At home I have a physical server that runs as a virtualization host (with kvm, lxc, qemu, libvirt and nfs), while the actual services I use run in virtualized servers, mostly as LXC containers.

One of these runs MPD and outputs music to the sound card of the host in addition to a web stream that I can access from anywhere in the world. Since the host and guest are using the same kernel, passing the soundcard on to the guest was as simple as bind mounting /dev/snd of the host into the root filesystem of the guest. I’m not quite sure how ALSA handles concurrent access, but it could be that this also works if several guests (or the host+guests) are playing to the same device.

But what is required to have working Xorg inside a cgroup/lxc container? Can we just do something similar? Turns out we can. Basic Xorg with the vesa driver and the old style input (no hal input hotplugging) works if you bind mount in /dev/tty7 (or another tty), /dev/mem, /dev/dri and /dev/input. Here is the obligatory screenshot:

Xorg running on the host graphics card from within a cgroup

Xorg running on the host graphics card from within a cgroup

So whats my motivation for trying this out? Curiosity mostly, but in a multi-seat system it could be nice to have each seat run as separate OS in a lxc container. It would allow each seat to run different distributions (within certain limits) and make sure that resources (CPU time, memory) are distributed evenly. And to provide isolation for security reasons.

That we need access to /dev/mem is currently a deal breaker as far as security goes, because it means that whoever gains root access in one of the guests will have control over the host (and thus the other guests) because they can modify the physical memory. There has been some interest in running Xorg as a unprivileged user, and that might address this issue. Locking it down with SELinux or similar might also be possible.

Obviously for multiseat you will need multiple screens somehow, either by using multiple cards or by sharing a single card (using one output each). I don’t immediately see any reason why the former should pose any problems, and with Dave Airlies recent work on multiple X servers on a single card that might also be possible in combination with cgroups/lxc.

I plan to test that this also works with the Intel driver, and perhaps also the Nvidia propriatary one with time. And perhaps try to get input with hal hotplugging working.

LVM snapshot merging avaliable

After being asked by a user in #ubuntu-no on Freenode IRC if there was a method of restoring his system, I researched if the underlying things needed to implement this was present (always curious…). While LVM has had snapshots for a long time, being able to merge a snapshot back into its origin has been missing. Some 15 minutes of googling showed that initial work on this was done in August 2008, so strange if it hasn’t been completed yet? Turns out it has, so the strange part is that none of the Linux news sites have written about it (that I’ve seen).

The required kernel bit, a “merge target” in the DM layer, was merged in the just released linux 2.6.33 and the lvm parts are there from 2.02.58.  LVM can now do snapshot merging with lvconvert –merge! I’m assuming here that the device-mapper code thats in between those two components has also been finished and released, which ought to be a safe assumption.

This makes me wonder why Fedora has chosen to base their System Rollback feature for Fedora 13 on btrfs instead of LVM, which would work on any file-system. There are probably good reasons.

Mypaint, OpenRaster, et.c. update

OpenRaster

I managed to the GIMP OpenRaster plug-in into mainline GIMP. This means that GIMP 2.7.1 and forward will have rudimentary saving and loading support out-of-the-box. Users of GIMP 2.6 or 2.7.0 can download and install the plug-in from here.

Luka Čehovin started work on a reference library (libora) for OpenRaster. Hopefully this will, along the way, make it easier to provide OpenRaster support in applications. Perhaps it can also help solve some performance issues we currently have in MyPaint when saving large images.

MyPaint

In late January we released MyPaint 0.8.0. The release was delayed a couple of months from the initial planning, and we did not get to integrate as much as we’d like from external git branches, but it was about time to get the changes we do have out in a stable version.  It was very nice to have a Windows installer ready from day 1, and that we were able to translate it into 12 languages! This weekend we also released MyPaint 0.8.1, which fixed a nasty memory leak and some minor issues. No Windows installer or DEBs yet tho.

Just recently, MyPaint has also been successfully built and run on Mac OSX, pressure sensitivity and all. Hopefully we can make it solid and easily available to end users with time.

I’m also hoping that we’re able to get 0.8.1 into official Ubuntu Lucid repositories. Sadly we missed the deadline for being imported from Debian, and I’m not sure who or how to approach this, but at least we got an issue for it filed on Launchpad. If we also got into the spring releases of Fedora, OpenSUSE, Mandriva et.c. that would be great, but thats of lesser importance.

More important is documentation, we are currently way behind on end-user documentation. I started a skeleton for a manual, and I suspect that I’ll be the one to do finish it also as no-one else has shown an interest in working on it. If I get motivated I might also do some screen-casts showing and explaining some features. Another area of documentation is making sure potential contributors have the information they need to easily be able to contribute, and I’m hoping to make all the relevant information available from the Development page on our wiki. And I’ll probably document up some of the code also, eventually. Lots of things to be done in a software project besides writing code!

As a side note, Krita 2.2 (due in early May) will include a MyPaint brush-engine, which is very cool. And apparently a commercial OS X application (that I cant remember the name of) already uses the it!

Going to Libre Graphics Meeting?

I’m looking at going to LGM in Brussels this year, to meet with MyPaint, GIMP, Krita and developers of free and open source graphics software.  Sadly its on 27th to 30th of May, which really is a bad time for me; May 27th being the dead-line for my senior project report and on June 2nd is my first exam.  But we’ve planned completion of the report 2 weeks before that and I’m trying to prepare in advance for my exams, so I’m hoping that I can go.

To make this event happen and enable developers to go  a money-raising campaign has just been launched on Pledgie: http://pledgie.com/campaigns/8926  Please support this effort if you are able!
Click here to lend your support to: Libre Graphics Meeting 2010 and make a donation at www.pledgie.com !

Musical highlights of 2009 – wrap up

Have you ever basically completed an email but not sent it, forgot about it and then, when you remember it again, procrastinated on sending it because you didn’t send it right away? Well, then you understand this post.  😉

There has been at least 1000 metal, prog and hard rock albums released in 2009, which should amount to something like 1 months worth of music. I don’t have access to any reliable statistics but it seems to me to be a significant increase over last year? I obviously haven’t listened through all that, but I have in fact sneaked a peak of most of them. As usual there is a lot of shit (in particular like 70% seems to be run-of-the-mill crappy death-ish metal), but there was a couple of goodies.

Ups

Besides ‘Irepress – Sol Eye Sea I’, my most favorite album of the year has to be ‘Mastodon – Crack the Skye’.  I cannot put my finger on any obvious special/original influences, but somehow it’s not like any other album I know.  Especially the sound. If anyone knows of anything like it, let me know.  ‘My Universe – Infinite Spaces’ was a notable instrumental album for me, one I actually enjoyed! It’s not often that I feel that instrumental songs can convey a story.
As usual I’ve kept most to metal, but a notable non-metal release was ‘Fejd – Storm’ (modern folk-inspired music, actually made by metalheads).  I’m not sure I’ll come back to this album much but I absolutely loved it for a while.  Cute right?

Other nice discoveries that I’ve made this year:

  • Animals as Leaders – Animals as Leaders
  • Blind Ego – Numb
  • Black Sun Aeon – Darkness walks beside me
  • Hourglass – Oblivious To The Obvious
  • Agnosia – Trace Decay

A lot of the albums I anticipated also turned out great:

  • Indukti – Idmen
  • Isis – Wavering Radiant
  • Mew – No More Stories Are Told Today, I’m Sorry, They Washed Away
  • OSI – Blood
  • Porcupine Tree – The Incident
  • Riverside – Anno Domini High Definition
  • Shadow Gallery – Digital Ghosts

Downs

As a ‘concert year’ 2009 was pretty terrible for me. Which is my fault entirely: I went to no festivals and few concerts. Off the top of my head I can only recall two small Susperia gigs and Opeth+Ihsahn in Oslo + a couple of concerts with local/acquainted bands. In particular I regret not going to Porcupine Tree, Mew and Paradise Lost when I had the chance. Hopefully I’ll make up for it in 2010!

As for albums ‘Pure Reason Revolutions – Amor Vincit Omnia’ was by far the biggest disappointment. It’s something else than their previous album (the Dark Third) entirely; upbeat with driving rhythms and vocals. For me it ends up feeling a lot simpler and more “popped”, and much less polished.  It’s not really a bad album, it’s just very far from what I expected and wanted. ‘Scar Symmetry – Dark Matter Dimensions’ is a quick runner up, highly anticipated but every part of that turned out lame. I suspect I am victim of several biases here, but it seems to me that everything Nuclear Blast touches turns to shit after a short while…

Other major disappointments include:

  • Amorphis – Skyforger
  • Queensryche – American Soldier
  • Stratovarius – Polaris
  • Dream Theater – Black Clouds & Silver Linings
  • Megadeth – Endgame

And even though 2009 is over I have not made up my mind about all the albums yet. Here are some releases that I might very well end up loving, but don’t quuite know yet:

  • Callisto – Providence
  • Epica – Design Your Universe
  • Katatonia – Night is the New Day
  • Anekdoten – Chapters
  • Phideaux – Number 7
  • Redemption – Snowfall on Judgement Day
  • Tombs – Winter Hours
  • Paradise Lost – Faith Divides us, Death unites us
  • Seven – Cymatics

I’ve realized that I have a bad habit of not listening enough to albums and moving on to the next one way to fast. * For me at least, it takes quite a bit of listening to really “get” an album.  Takes a while before all the sounds turn into the known melodies, awesome rhythms and familiar words that you can actually dig. Even more so for those albums that have be potential to be mind-blowing, because they are often very different from what I’m used to.

*Not quite as horrible as my tendency to sometimes fast-forward in movies though….