Plasma Photo Collage

ide Collage of random photos from my collectionToday while going through some parts of my photo collection, I’ve created a collage of some photos. It was actually more or less accidental since I was choosing photos to be printed and framed, but I couldn’t keep myself from arranging the photos nicely on my desktop. I’m using a dual screen setup on my desktop, and while browsing the photos on the left screen, I dragged the photos I’d evaluate for printing onto the other screen, creating Picture frame widgets displaying them when dropping the photos (this even works for remote files, pretty cool). The work-flow this way is actually pretty close to how I’d do it with real physical object, browsing through stacks of photos and putting a selection aside for further investigation.

The photos I happened to choose are taken in various parts of the world, there’s the old ship in Jamaica, the entry sign to Bora Bora in Brazil, Edinburgh’s castle, the entry hall of a spa in Budapest, a Spanish rooftop, Kevelaer’s basilique and of course a bunch of photos taken in Nijmegen, my home town — notably the perfectly boiled egg.

What kind of fun work-flows did you discover while using Plasma?

Getting Email Done: The Stack and the Heap of Lion Mail

In my previous article on this subject, I have introduced Akonadi as the personal information beehive on your computer, explained how it works, how it is designed and what the migration process to an Akonadi-based Kontact looks like. (openSUSE users should also take a look here.) In this article, I will dive into the workspace parts we’re introducing on top of Akonadi, notably the new email notifier system in Plasma – Lion Mail.
The Lion Mail email notifier is at its base your "you’ve got mail" icon in the panel. For users with more complex and high-traffic email habits, it offers a basic set of workflow tools to manage the daily stream of emails more efficiently and ergonomically. In this article, I’m describing some of the design concepts behind Lion Mail’s email notifier and its workflow features.

In the panel, you can quickly see if there are new emailsComplex email workflows are something I wanted Lion Mail to excel at. The idea is to make dealing with email as flexible as we can, so you can project your workflow onto it and have it make the daily flow of email more manageable, and less disturbing in the real work you want to get done. By default, the Lion Mail email notifier shows up in your panel when a new email arrived in your inbox, by clicking on it you can access the list of your latest unread emails in a small popup-window. The basic use-case is quickly checking if you’ve got new email. I will not dive too much into implementation details, as this article is all about work-flows and how it affects the user experience.

The idea is that, at all times you can see if there’s email to deal with. but not have it jump in your face. In order to be able to quickly dismiss something as "I’ll deal with that one later", or "ok, got it", there’s two queues in Lion Mail, the stack and the heap of Lion Mail.

The Stack — Incoming Emails

The popup shows a list of the new emailsThe stack is your incoming emails queue, it lists new emails in one or more folders. By default, that’s your inbox, but you can configure it to monitor any folders you like (yes, combining them from multiple folders is built-in). The incoming emails queue is a transient thing, it’s your stream of incoming emails, and the first time a new email gets your attention (but doesn’t shout for it). The stack allows you to dismiss new emails, or mark them as read or important. The idea is that new emails might fall into the following categories:

  • "Not right now" – A new email will get your attention later. You take notice of its existence now, but don’t have time right now to tend to it. It stays marked as unread, you’ll get back to it later.
  • "This I really have to deal with, later" — If you don’t respond to this email, the world implodes into dark matter, or your head gets torn off by zombie-chinchillas. You mark the email as important, for extra attention, you can leave it marked as unread.
  • "I am bored enough" — An email you deal with right away, either because it’s important or more interesting than what you’re currently doing, or maybe because it’s quicker to reply right now. In those cases, you open the email in your mail client to read it and possibly reply.
  • "OK" — You notice an email and know enough by peeking at it. It can drown in your inbox from here on, you mark it as read.
  • "v14gra on loan" – Something slipped the spam filters. You just want it gone. You hit the delete button and it won’t bother you again.

These are a couple of possible reactions to new emails. By offering the tools to deal with such situations at hand, in the context of these incoming emails, we can pre-sort the stream of mail while we receive it.

The Heap — Important Emails

Important emails are accessible in a separate listThis is where the heap comes in. The heap is an optional second list of emails you can show in the Lion Mail email notifier. It simply shows the important emails in your monitored folders. This way, it offers you a list of things you need to deal with, in essence your to-do list of emails. By putting them into a separate list, we have two overlapping categories of emails you want to deal with. Lion Mail can either display those important emails in a combined list, or using separate tabs for new and important emails. The latter is likely to appeal to David Allen fans, Lion Mail certainly is inspired by some of his ideas.

In the setup you can specify which folders to monitor and wether or not to show important emails

Email Items

The individual email items in the heap or stack offer a couple of options to open emails in your mail client, for marking emails as read and as important, and for deleting it. Needless to say that these buttons operate directly on the email, so the moment you mark an email in Lion Mail, it’ll change in KMail (or any other Akonadi-based email client) as well. When an email doesn’t satisfy the criteria for the heap of stack anymore, it fades out over a period of 5 seconds, so you get some "undo grace-time" if you clicked wrongly. The emails themselves show by default subject, sender, date and flags, you can expand to show some of the body as well. Email items employ a hover interface, when you move the mouse over an email, it reveals three controls as an overlay which offer flagging and trashing an email. Clicking on the icon opens the email in your mail client, you can also drag an email from these lists into your email client or Plasma workspace. I’ve chosen for a hover interface mainly for two reasons: less clicks and more discoverability. The emails don’t have a context menu right now, but there are a couple of useful options we could add there, for example forwarding or replying.

Emails can be sorted using flags directly from the popup

Excerpts — NLP people, listen up!

If someone comes up with a clever and useful implementation for email excerpts, I’m all open. Right now, I’m just showing the first couple of hundred characters in order to not blow the size of the widget beyond what’s reasonable in a small popup. As you can deduct, I’m not the most inspired mind in the world of language processing. In the UI, I’d rather avoid having to use scroll bars inside the expanded email body, as the list already might have scroll-bars. Nested scroll-bars will lead to annoying behaviour for mouse-wheel and flick-scrolling, so that should be avoided. The most elegant thing to do here is excerpting the interesting parts of the email, by skipping empty lines and possibly line-breaks, by removing reply-quoted parts, and so on. K9-Mail (a really good email client for Android) does this quite well, it’s often possible even from one line to judge an email’s content. We can easily fit 5 lines into the expanded email widget, and possibly even more, so I’d expect that with the right algorithm, we could do excellent there. If you’re into that kind of stuff, send me a piece of code that turns an email body (as QString, if you want) into a 200-300 character long excerpt, it should be LGPLed code and you’ll be properly credited. Sounds like a nice small, self-contained hacking project for a fall evening, no?

Otherwise, I wonder if "the other Sebastian"’s recent Nepomuk accomplishments in excerpting documents play into our collective hands, or we’re in his of course. :-)

Emails as first-class citizens in your workspace

There’s if course a lot more in the pipeline. In principle, Lion Mail can hold any email collection, existing folders, but also virtual collections, such as search folders or combinations of multiple folders. Lion Mail represents itself as an icon in the panel’s notification area, you can enable it in the notification area’s settings. It’s also possible to put Lion Mail widgets on the dashboard, desktop or netbook’s new page, you can of course add multiple Lion Mail applets holding different collections one one or different activities, and this way depending on what you are doing, think of showing your work’s inbox in your "work" activity, showing private emails in your "freetime" activity or showing neither in your hacking activity. In Lion Mail itself, that would be very easy to do, It’s built in mind with showing arbitrary sets of emails, the new email and important email queues are just specialized version of a generic email list.Email lists can be put on the desktop, and switched depending on your activity

Drag and drop is also one of the things that got a little bit of attention while developing Lion Mail. You can drag emails from Lion Mail into KMail for example to move or copy them to another folder. Plasma is also receptive to dropping mails (and in the future mail folders) onto the desktop. Lion Mail includes a Plasma widget showing an individual email. It can take different sizes, so you can either have a bunch of small emails floating around, or individual emails with full text on your desktop or dashboard for reference while working, as it often comes handy to have a related email available for a quick check if you’re looking into something.Single emails can be put on the desktop as well, for quick reference

Release plans and test-driving

In its current state, Lion Mail email notifier is already quite usable. The work to make it release-ready consists of completing some features, refreshing of monitored folders directly from the applet, and trashing emails. There’s also some smaller interaction glitches I’ll fix before it can make its way into Plasma cq. Kontact 4.6.0. There’s suspending removing items under your mouse (or finger) so you don’t accidentally click on the wrong email, some display funkiness here and there (spot the lack of space underneath emails in the screenshots), and the excerpts extraction I invited input to above. You’re already most welcome to try it and give feedback. It’s currently located in playground and will eventually move through the kdereview process into one of the released modules — I haven’t figured out which one would be the most suitable exactly. If you want to build it right now, I have to admit that it’s not completely trivial from scratch, as it requires kdelibs and kdepimlibs from trunk. If you have a reasonably recent 4.6 (trunk) snapshot installed, you should be good to go. Lion Mail does not offer the option to configure email accounts, you can do that from KMail2 or akonadiconsole.

Famous last words

The heap and the stack of Lion Mail offer the opportunity to create a more efficient workflow with your emails. By dealing with emails effectively as they come in, but without a context-switch to the full email application, it offers more workflow-based email management. The underlying idea behind Lion Mail is that emails become first-class object in your user experience, to integrate them as artifacts of your interesting information, rather than banning them into a monolithic application like traditional email clients. "Light-weight email work" can be done directly from the workspace, referencing emails in other tasks becomes a lot easier, the traditional email reader still serves as the work horse for most email reading (as opposed to noticing and referencing). Lion Mail provides the usual feature set in a more elegant and context-rich way. It is also heavily optimized for people with larger amounts of emails, and integration these streams of new and interesting emails deeper into the workflow of the user.

Got published, too!

Desktop Search in KDE 4.4 articleLike Aurelien, I had a surprise in my (physical) mailbox yesterday, and a very similar one to Aurelien’s, even. Some months ago, I had written an article for the German edition of Linux Magazin User explaining how the semantic desktop works in KDE’s applications and Plasma. It’s a very user-centric article that also gives some background information about how Nepomuk (KDE’s semantic and search technology) goes way beyond what desktop search provides. The article, while focusing on KDE SC 4.4, which is already a good 8 months old is still largely valid, though performance and usefulness of various Nepomuk components has gone up quite a bit, here and there it even has become second nature when using my desktop or laptop. I’m especially pleased by the on-demand scanning of metadata in Dolphin, so you don’t have to index all your potentially interesting files, just to get metadata. When writing articles, the wordcount now shown in Dolphin is a must, when editing images, the size of the image displayed in Dolphin is one big time-saver.

The copy of the magazine I got in the mail yesterday was an English translation of the German article, and already got published in June. The mag must have been stuck in the mail queue for a while, as I’ve only got it now. Nice surprise, though.

House Hacking.

(Almost) no KDE in this blog entry, you can happily skip it if you’re not interested in anecdotes about my life outside of Free software. :)

I’ve been quite busy lately with some non-coding stuff. Kim and I bought a house in Nijmegen (about 10 minutes by bike from our current place), and we got the keys two weeks ago. The house is in pretty good shape, but still needs some improvements to make it really ours (I call it the "bonding process"). The biggest one is renovating the roof under which my new home office will be located. As I work from home, and quite a lot so, that room is really important to me. As for the really important stuff, you should get a professional, we looked around and recruited a small company that’s specialized in this kind of renovation projects. Ton Brink has since then stripped the top floor, added a window to the north-east and isolated everything around it with 8 cm thick glass wool. Big energy saver. the roof was previously not isolated at all (the house was built in second half of the 60s, and the top floor wasn’t used anyway so the whole floor was used as isolation layer albeit with a gaping hole — the staircase). A No-No by today’s standards. Besides that, the climate in the Netherlands is as such that it’s either too cold or too hot, and that’s doubly so under the rooftop. (I know everything about it, since our current apartment is also top-floor, so it cools out relatively quickly, and is very hot in those couple of weeks of summer we usually get — in a record night last summer, it stayed above 29 degrees centigrade with all windows open. Complaining about the weather is also a very typical Dutch habit I’ve acquired over the years.). So, isolation is important to keep the place both warm and cool. The south-west side of the roof (its back side) gets an extended roof window (a "dormer") over the full width adding quite some volume to the room itself. That window goes to the south-west, and will get electric sun-screens to block out direct sunlight. That one is rather important the windows are huge, the desk will be near the windows and direct sunlight on the screens is an ergonomic nightmare putting a lot of strain on the eyes. The room will otherwise be warmed and cooled with an air-conditioning unit, as it doubles as shelter for the too warm nights in the summer. Interestingly, when considering heating options, it turned out that the air-conditioning will be the more efficient way to keep the room warm than the currently installed central heating unit. Out the door goes the big radiator, in goes a book-shelf full of geek literature.
There’s a nice 3-seater sleeping couch on the shopping list for my home office as well, so it triples as guest room with king-size bed for friends or fellow hackers for sleep-overs. The couch is located right under the window, so spacing out there is will be fun, as you can watch the stars during longer compile jobs. What would an office without a comfy couch be, anyway? I was quite amazed to see the room going from its original state to a stripped-down version and now gaining features again, such as the new front window and isolation layer today (good timing, this afternoon was the ‘dry period of the week’). There’ll be closets and drawers in the dead corners, which can house piles of hardware and cabling to unclutter sebas’ hacking space.

One of the things I haven’t figured out yet is what the best lighting option for the room would be. I’d like not-too-direct light there, and it should be reasonable warm-coloured. I’ve been looking a bit into the direction of LED lamps, but I’m not quite happy with the options. Most common are LED elements with a couple of LEDs combined into a halogen-style fitting. Prices begin at 15€ per element, so they’re not exactly inexpensive, and prices rise quickly. There seem to be big differences in quality among those elements, and they’re not by nature dimmable as well. There are dimmable LED lamps on the market though, so that’s probably solvable. What I don’t find enough information about is about the light colour. I certainly don’t want blue-white light in the room. The thing I really like about the idea of LED lighting in my office is that it’s ridiculously energy efficient, and it rubs my geek nipples in just the right way. My impression though is that LED lighting is not quite mature yet in terms of mainstream market availability, and that I therefore might not get what I’d want the result to be. The energy efficiency might actually backfire if you just put LED elements into halogen fittings, the power supply for those lamps is probably made for consumption of about 10 times as much juice, I guess loss during the transformation down to consumable voltages adds up quite a bit. (Correct me if I’m wrong, I didn’t pay as much attention during physics lessons back at school.) Also, I didn’t find a lot of new applications of LEDs, as you can more easily spread the light over a larger source area, I’d imagine some new cool and more useful shapes for lamps should be possible. If anyone reading me can shed some light on this, please leave a comment.
An alternative option is of course halogen lighting. Downsides: less geeky, more Watts. Upsides: lot of choice on the market, suitable colouring and dimming capabilities. (I’m quite happy with the halogen lamps we’re currently using.)

I’m myself mostly occupied with sanding and painting (proof, note the cheesy comment: "even if I’m painting white, I’m still the man in black" follows the "official meloenstraat renovation sound-track Johnny Cash, Pearl Jam, Madonna and Tiesto) slightly more boring, but also a lot closer to my improving skill-set. I’ve actually been enjoying the painting and fixing up of the house so far, it’s a nice change from my usual activities, which involve far less physical exercise (if traveling isn’t counted as "physical exercise"), but just about the same amount of attention to detail. As a side-effect, I’m losing a bit of weight, which is also welcome as I’m slightly overweight (only slightly, really :P). By the end this house-hacking exercise, I’ll likely be stable around normal weight for a person of my length, so that’s a nice bonus. It means I can gain weight again, which usually involves fun. :-)

Tonight, Kim and me have varnished a bunch of door frames with a medium dark grey. I’m not a 100% sure if that’s the perfect tone against the white walls, but then the idea is to add color by printing and framing some of the nicer photos I’ve taken over the past years, it might just all look very neat in the end. Tomorrow, wallpaper will be delivered which we’re applying towards the end of the week on three walls spread over two rooms. The master bed room gets a relatively flashy photo-wall, Kim’s room is in for a "modern 70s-style" 3d-ish pattern. My realistic expectation is that the rooms will look kick-ass with walls like that, and that the large photo wall adds both depth and a good amount of colour to the room. It’ll otherwise stay relatively sober (it’s a bedroom). That of course only if we manage to apply the wallpaper neatly enough. I’ll post photos of the result to the FlickR stream.

There’s a lot more things to do, the floors and both staircases will get new floors, most likely linoleum as that’s easy to maintain, long-lasting and very sustainable in general, being made of fast-growing natural materials and fully bio-degradable after its supposedly 20-25 years lifetime. (It’s also convenient since it offers less of a target for the cat’s claws — still soft and warm enough to sleep on.

I often compare (as the subject of this entry already suggests) the renovation with a hacking project. In the beginning, we have a vague idea of what I want the end result to be. Then we started planning and doing some research, but also quickly started doing things. Along the way we find out how to solve things, and by putting in hours it becomes apparent how things work out, and what part of the plans and ideas need changing. This is also pretty much how I get into new exciting hacking projects. I start off with an idea what the end result roughly should be. Then I do some research, which often involves getting some feedback from others if the overall idea is sound, and what kind of problems I can expect that I hadn’t thought of myself. This is an important part of the process, since it actually helps with getting things accepted by others when it’s done, and communicates plans so you don’t end up working in parallel with someone else on the same thing without knowing of each other’s efforts. Then I start to tag along with filling in parts of what needs doing, concentrating on overall progress, but much more working out the details. And those take time, for example, I’d not imagined (naive as I can be), how much time painting heating pipes can be, or cleaning out the used brushes afterwards. In the end, you ship your project (or move into the house), and then you’ll inevitably start seeing small and bigger things that still need doing. The maintenance process starts, but also the period where you really make it yours, and where your work-flows and living habits adapt to the new environment. (After all, the hacking project also started to scratch an itch.)

We’re moving in the last weekend of October, and much needs to be done still. It should all be finished by the first week of November, so that I can clean my head again for more work- and KDE-related things. The idea is really to turn the house into something we can comfortably live in, and and for me personally to create some space for myself that offers a relaxed environment for doing creative things and being productive.

In November, my fellow KDE e.V. board members come over to Nijmegen (where also Adriaan lives) for one of our regular board meetings. This time around we chose Nijmegen as location, since it’s very easy to reach from inter-continental flights into Amsterdam (having Celeste go through 3 lay-overs is probably not very helpful for a productive meeting), and by train from Berlin (for Claudia) and southern Germany for Cornelius and Frank. There’s a well-equipped (food, drinks, power plugs) ICE stopping in Arnhem, which is just 15 minutes from Nijmegen. So I hope to get everything done in time for the meeting, so we can warm the house with some KDE love =)