random quote: "If you want the holes in your knowledge showing up try teaching someone."
Alan Cox
|
|
 Yay for Gay.
After Linuxtag had finished, a couple of gearheads went to Berlin Kreuzberg
to grab some food and a drink in a quiet and not to crowded place. That didn't
really work out, as we didn't think of
Christopher
Street Day. We quickly decided that it would be a fine alternative to
have food and drinks in the streets and celebrated with another couple of
hundred people until late at the night. As you can easily see on the photos,
people were more than colourful, and it was a very friendly, laid back and
fun event
Linuxtag itself was quite good, I was mostly there representing KDAB, but
got some FLAs signed and also held a presentation on using KDE 4 on laptops
and netbooks. I think I struck a good balance between technical background
of power management related issues and things that are relevant to those
who want to use KDE on those devices, and just want things to work (and
possibly understand why they don't in some cases). After my own talk, I
attended Will Stephenson's talk who put his salty fingers into some wounds
we still have with KDE 4, and which are a problem for many user's experience
with the desktop. Besides the fact that not all of our cool technologies
haven't yet shown their full potential to the users, Will made a good point
that we're kind of sticking our heads into the sand when it comes to a
really good web experience when using KDE. I agree that we can do much
better, and that we need to do something about Konqueror (or our default
web browser, anyway) not being able to render many web pages people out
there in the real world use.
I'll be staying for another two days in Berlin, then pay a quick visit to
Kim and the pets at home before I'm flying to Gran Canaria for an awesome
summit. See you there!
[ Sun, 28 Jun 2009 16:54:58 +0200 ] permanent link  Yay for FLA.
Protecting KDE from bad things is one of the primary purposes of the
KDE e.V.. As a member of the KDE e.V.'s
Board of Directors I got the special honour today to put one more piece
of the protecting freedom puzzle into place by signing people's Fiduciary
License Agreements (or in short, FLA). The FLA is a means for the KDE e.V.
and the wider Free Software community to be able to relicense code that has
been contributed to KDE by people who are, one way or the other, not able
to "fix the license" anymore. When relicensing code of someone else,
we're bound to pretty strict rules, all has to happen within the principles
of Free Software. I'm not really firm on legal grounds, so I'll invoke
my fellow board member, Nijmegenaar and the new coordinator of the FSFE's
Freedom Task Force (congrats!) to explain those details. Go-go-gadgeto-Ade!
Carlo Piana summarises
the purpose of the FLA in the following words:
Essentially, any developer holds the copyright of the software he/she
authors, which means that for complex projects, any developer would have a say
in any major decision regarding the software, with frequent problems in terms of
flexibility and management (including litigation). The fiduciary licence aims at
simplifying this process, by assigning the copyright to an entity as KDE e.V.
which is not "scalable" and therefore provides sufficient safeguards as to the
possible hijacking of the project for nefarious reasons.
I've signed about 10 FLA's on behalf of KDE e.V. already, with more to
come. If you've contributed code to KDE (even if it's just a little),
please drop by the KDE booth at Linuxtag and sign your copy of the FLA.
I, or our friends from the FSFE (or Ade :-)) can explain to you in more
detail what it means, and why it's important to sign it if you're still
unsure. We'll also be bringing a stack of FLA forms to the Gran Canaria
Desktop summit in a bit more than a week's time, so grab your chance,
and protect your and our Freedom!
Update: Meanwhile, I had the honour to have Matthias Ettrich and
Martin Konold (the two founders of KDE) sign the FLA.
[ Thu, 25 Jun 2009 14:19:32 +0200 ] permanent link  Berlin, and my new job.
I arrived in Tuesday for Linuxtag.
This time, however, I'm not mainly here for KDE, but for
KDAB where I've
started working in May. KDAB is a company focusing on Qt technology -- consultancy,
development and training. It didn't take long getting used to my new colleagues,
as I already knew most of them. Quite some KDE people are working for KDAB (in
fact it was founded by Kalle, one of the first "gearheads"). Working for KDAB is
actually quite interesting, as it's a virtual company. That means that we have
our morning coffee on IRC and jabber, and that most of the people are working
from home. There is this odd group in Berlin who found that an office would
be a cool thing to have, and that it's best situated in Kreuzberg, one of the
more fun parts of the city. As I'm working with some people in Berlin, I'm
plugging into the weekly catch-up-with-everybody meeting via webcam and VOIP,
which works quite well. It does give me that warm, fuzzy feeling of having
actual social contact once in a while, while I still don't have anything to
do with traffic jams, commuting and all that jazz.
Kreuzberg, where our Berlin office is located, is a great place for an office,
it's
very easy to reach, there's plenty of really good and inexpensive food around
at the office, and many cocktail bars. It also makes a great place for hackathons,
and my company is KDE-friendly enough to host regular meetings of all kinds.
Actually, I don't think there's a place that has hosted so many KDE sprints
already, with certainly more to come.
While not all we do is related to Free Software, much of the work I get in
touch with is, and I think that's very cool. Working with and on Free Software
is a great motivator for me, and it's good to see Free Software providing
a viable business model.
So this week, I'll be hanging around at Linuxtag (we have a shared booth with
the Qt Trolls, right next to the KDE booth).
On Saturday, I'll be presenting about KDE on laptops and
netbooks, make sure you don't miss that talk.
After Linuxtag, I'll be staying for a couple of days here in summery Berlin
to catch up more on work-related things, and then I'll pay a brief visit to
Kim, the cat and the chinchilla's only to depart to
Gran Canaria. Thanks to
my employer, flight and hotel is taken care of by KDAB. Thanks!
[ Thu, 25 Jun 2009 10:19:32 +0200 ] permanent link  Metallica in my backyard.
Two or three times a year, the nearby Goffert Park is turned into a concert
arena. There's a large field amidst the trees which is currently surrounded
by fences. Inside, a huge stage is built, and there's space for about 60.000
people.
Today is the Sonisphere Metal festival,
with koRn, Slipknot and as headliner Metallica playing. I used to a really
like Metallica, I actually saw one of their concerts of the "Nowehere else to
roam" Tour in the early nineties. (Support acts were Suicidal Tendencies and
The Cult. That concert was really cool, although I think I've bruised a rib in the mosh pit.
Since they've let the recording industry instrumentalize
Metallica to fight against sharing music, I'm having issues with the band's
politics. Filing lawsuits against your fans is not the way to deal with them,
or new and upcoming media and the failure of large parts of the music and
recording industry in the adoption of the Internet.
So tonight Metallica will be giving a concert within 5 minute walking
distance from my home. I didn't get myself a ticket, but got woken up today
when the festival started.
The concert starts at 20:45, and we'll probably go over to the park, there's
still a lot of place outside the fence, with many people who didn't feel like
buying expensive tickets but still like hanging around in the park -- it's
their (our) park after all. And you get free live music by rather prominent
bands. Other bands that have been performing in my back-yard in the last
years include REM, Live, Red Hot Chili Peppers, Pearl Jam, The Rolling Stones,
and many more. A rocking neighbourhood.
Now playing: koRn - Live at De Goffert, Nijmegen 20 June 2009
[ Sat, 20 Jun 2009 17:42:39 +0200 ] permanent link  Special characters with US keyboard.
I'm using a US keyboard layout on my machine, since that's the most
hack-friendly one I can actually grok and type blindly on. Often, however I need
to type special characters, such as € or letters with a diaresis on top,
such as ü (useful to type my own name ;-)).
Those should be easy to type for me as well. What I did is to
modify my keymap slightly, so that I can use the Right ALT key (ALT Gr on some
keyboards), and get the correct character just by typing Right ALT + a for
example to get an ä). The 5 key already has € printed on it, so I'm
using Right ALT + 5 to type the Euro sign.
I've saved the following settings into a file called ~/.Xmodmap-Umlaut and when
logging in, I'm just running a small script
#!/bin/sh
xmodmap /home/sebas/.Xmodmap.Umlaut
which reads the following file:
keysym u = u U udiaeresis Udiaeresis
keysym a = a A adiaeresis Adiaeresis
keysym o = o O odiaeresis Odiaeresis
keysym e = e E ediaeresis Ediaeresis
keysym i = i I idiaeresis Idiaeresis
keysym s = s S ssharp
keysym 5 = 5 percent EuroSign
Now this is probably not the 100% correct way to do it (email me suggestions for
improvements :)), but it Gets The Job Done and works ergonomically well
enough for me. In case you're getting errors, try replacing ISO_Level3_Shift
with whatever "xev" reports as (keysym 0xff7e, Mode_switch) when you capture the
Right Alt key with it (or map it to anything you like in the same way).
[ Mon, 15 Jun 2009 10:05:55 +0200 ] permanent link  Depeche Mode concert - not quite yet.
I'm a big Depeche Mode fan,
maybe not so much of their rather simple music they made in the
eighties, but with the start of
Violator (1990), they've continued to
impress me with really good electronic music. Depeche Mode, (and
Pink Floyd) are probably among those bands who have been
influential for most of electronic music we're listen to nowadays,
and in my opinion, very rightfully so.
So Kim and I got ourselves two tickets when DM announced the tour they're
holding right now, but got disappointed when they had to cancel
the concert that was supposed to be held week in Düsseldorf,
Germany (quite close to Nijmegen actually). Dave Gahan, their
charismatic singer had to undergo a
cancer surgery to remove a malignant tumor in his bladder.
Fortunately, he seems to be getting back to health quickly.
Just read on the website in the news section that they indeed had
to cancel some concerts, luckily though the one we got tickets
for will be rescheduled, albeit to a yet unknown date. Others have
been cancelled altogether, and seeing how much I'm looking forward
to that concert, I'm feeling sorry for those who'll miss out.
I guess until the concert is rescheduled, I'll just enjoy the silence...
Now Playing: Depeche Mode - Sounds of the Universe
[ Sat, 13 Jun 2009 14:14:13 +0200 ] permanent link  Senlik conference in Istanbul.
This week has brought me to Istanbul, to attend
Senlik, which is a Turkish Linux conference
organized by LKD, the Turkish Linux users
group. I've been invited to this conference by some developers of Pardus Linux,
which is a KDE-focused Turkish Linux distribution. KDE is actually very strongly
represented at this conference, thanks to the work of the gals and guys from
Pardus, who are also wonderful hosts to me and Kim, who accompanies me to enjoy
the city for a bit.
The conference is hosted at Istanbul's Bilgi University, which is not purely
technical but focuses on design and user interaction. I think that makes a great
location for a Free Software conference, as the UI part (artwork and usability)
are often seen as stepchilds in Free Software projects. I'm trying hard to make
sure that people know that we're embracing designers as first class citizens
in our community just like we embrace coders, documentation writers, translators,
promo people and community management folks. The grand scheme is I think that
KDE is moving from being a Free Software project to becoming a Free Culture
project. After all, 'only code' is not enough to conquer the world and make
Free Software the default on most people's machines.
As someone just pointed out to me, I (or rather the organizers of this
conference ;)) have picked the perfect time to visit Istanbul. Temperatures are
at a mild 20 degrees C during the day, the sun is rather warm and nice, but it's
not too hot like it becomes during the summer here in southern Europe. I
really enjoy the Turkish culture of coffee in interesting tastes (had a green
nut coffee last night, which was really tasty, mild coffee) and Nargile, the
traditional water pipe which also comes in interesting flavours, such as apple
or the mint / lemon mix I tried last night. The nargile causes a bit of a "light"
feeling in the head, I figure it's mostly caused by an increased amount of Oxygen
reaching your brain. The pipe's smoke seems rather harmless being filtered by
the water. Food here in Turkey is just awesome. It's very easy to find both snacks
and also more fancy food. There's relatively little in the way of fast food,
but many different options in Turkish food. Vegetarian food options are just
as numerous and good as non-veggie food (which is what I enjoy being a meat
lover).
One thing that really strikes me is the number of women around here. It's really
refreshing to see that a Free Software conference can attract women just in
the same way. Unfortunately, that is not the case across the board yet. It's
something we definitely need to work on. (Although I think that KDE doesn't
do a bad job right now, with core contributors such as Celeste, Lydia,
Alexandra (yeah, all you Alexandras! ;), Chani, ...). Overall, the number
of women involved
in Free Software is still embarrassingly low (around 3% overall :(), so
there's still a long way to go ...
make Free Softare communities a more attractive place for female contributors,
make them feel welcome and taken seriously.
On Wednesday, I'll spend the day at the Pardus office here in Istanbul, where
we planned a workshop for the team. I'll be using this opportunity to learn
more about Pardus Linux which has been continuously impressing me with its
amazing level of integration between desktop and underlying operating system.
The upcoming version of Pardus, dubbed 2009 will be released this summer, and
I can only recommend to check it out. Pardus builds on Python, and most of its
infrastructural bits (package management, network management, ...) but also
the UI are implemented in Python. We'll be looking at how we can improve the
flow of code upstream, and what issues the Pardus developers are facing when
interacting with KDE, both code-wise and community-wise. There's definitely
a lot of interest to work closer together with KDE as an upstream community,
and often it's just a matter of encouraging people to apply for an SVN account
and start committing. That doesn't go without it being explained in the first
place, though often the reaction I see is "Ow, it's *that* low barrier ..."
Some of the Pardus developers will come to Akademy this year, make sure you
check out their stuff!
The coming days, I'll be a bit silent, as I'm taking the opportunity of being
here with Kim to also relax a couple of days as well, something we didn't
get to a lot lately. And there's this long list of different things I still
have to try while being here (turkish bath, Iskender kebap only being two
of the items lined up.
[ Sat, 18 Apr 2009 17:12:17 +0300 ] permanent link  OpenBossa keynote viewable online.
Last month, I gave a keynote at the Bossa Conference in Porto de Galinhas,
Brazil. It has been recorded and is now
up on blip for everyone
who was not able to attend to view it.
There's also an MPEG-4 version of the video
available.
The title of the talk is "Bringing the Free Desktop Onto Mobile Devices".
I'm presenting the bigger picture and examples how the KDE and specifically
the Plasma team works towards more connected and less device-dependant
Free Desktop interface, and how it's accomplished using new technologies
that are avaible in the KDE 4 platform, and new technoligies that are
being worked on. Suspects such as Akonadi, Nepomuk, JolieEnjoy watching it. :)
[ Tue, 07 Apr 2009 01:08:44 +0200 ] permanent link  Akonadi Sprint in Berlin
This weekend has brought me to the wonderful city of Berlin (wonderful in terms
of having the baroque alternative charme that makes Kreuzberg so special). I'm
here for the Akonadi meeting, which is all about the personal information store for
the Free Desktop. Together with about 15 other people, the time from Friday
until Sunday we're trying to advance Akonadi to the next level. I'm mainly here
because I was brave (stupid!?) enough to start writing an email plasmoid after
being infected by Till (who also turns older today) with the Akonadi virus.
During development of Lion Mail,
I've gotten a pretty good
idea of what Akonadi does really well (make it easy to use PIM data in your
application), and what's lacking at this point (searching and sorting being my
main wishes). Yesterday, I presented Lion Mail to the PIM crowd, showed some new
concepts I'm trying to implement using it, and also showing some of the Social
Desktop Plasma stuff I've been working on in the last weeks.
Immediately after my demo, the discussion how to get searching, filtering and
sorting done in Akonadi, which I think is great. Not that it wasn't on the
agenda for this meeting anyway, but it's really nice to see that some of my
wishes are picked up immediately by people like Volker. Other notes from the
discussion are on
Techbase
I'm not mainly here to talk though (although that obviously is very important),
and it would in fact be very disappointing for me if it was all talk-only.
Yesterday, I've sat down with Volker and looked at a couple of immediate issue I
have in Lion Mail, and solutions for those. In my last blog, I was talking about
a performance issue that makes it take 20 seconds until Akonadi returns even
fairly simple query results. This was a local problem with my setup. (For
those in for a good laugh: My Akonadi was incorrectly set up so that it would
fetch all the folders from gmane (about 40.000 :o) and store them. While
my personal cache of gmane certainly could certainly come handy in case I
was dropped onto a lonely island for 30 years, it's not the most common case.
After removing the NNTP resource in Akonadi, query results show up pretty much
instantly now. (And gmane has probably also become a bit faster, ...)
Some other bits that I fixed in Lion Mail include monitoring for changes in
collection statistics (number of emails, number of unread ones), and writing out
the changed information of an email back to Akonadi (or in less technical terms:
marking an email as important, read, new or task now actually works). It's one
of the things where pieces of a puzzle fall into place, since the changes being
written back to Akonadi showed that also change notifications about those items
actually work. That means you flag an email as important, and other applets
showing this email are reflecting that change as well. Nice.
Also, I've done some UI cleanups in Lion Mail, the action icons are now only
shown on hover, making for less clutter in the default view. Yay, because clutter
sucks.
Toma has been working on fetching information from microblogs into Akonadi (such
a thing in akonadi language is called as "resource"). I've spent some cycles
yesterday night to add support for this kind of data to the Akonadi dataengine
in Plasma and finished this in the course of today. While there's a
microblogging dataengine already, storing the data in Akonadi makes a lot of
sense, as it caches the information and makes it easily available to all kinds
of apps (not just Plasmoids). It also makes it very easy to share the data
across applications. It'll also be a lot easier to query the information, for
two reasons: The way you retrieve data from Akonadi is largely unified. Loading
an email from Akonadi works nearly the same as fetching Contact data, or in this
case entries in a microblog.
Now the team is up for a totally different, less collaborative and more
competitive endeavour. Some Trolls from the Berlin office have come over to teach
the PIMsters the necessary Foosball lessons.
And while I had
initially been bragging about my skills (I'm unbeaten Foosball champion in
the KDE e.V. Board-internal competition!), I'm now back to hacking. I'm better at that.
(Which says more about my Foosball skills than anything else.)
Ow, and I'm tainted now. I did my first commit to the kdepim module today. (Though
I snuck one in yesterday already through some code that was about to move.) Feels
kind of dirty, but good.
[ Sat, 04 Apr 2009 21:29:08 +0200 ] permanent link  Summer of Code and Social Desktop
I've been thinking about Google's Summer of Code program a bit, and since it's
having its fifth birthday this year. I thought it would be about time to
congratulate the people at the Open Source Programs Office in Mountain View,
especially Leslie, Cat, Tiff, Erica and all the others who I had the pleasure to
meet at various occasions. Good works, gals!
From a KDE point of view, it's nice to see after 5 years that this Summer of
Code works. "Works" means that it does get us a lot of attraction from new
talent. There are actually quite some people active within KDE on a regular
basis that have found their way into KDE through the Summer of Code programme.
It's good to see how this is managed by the Google staff as well, they're not
just throwing money at us, they're actually putting a lot of effort into SoC,
and it provides real, tangible and sustainable benefit for Free Software
projects. That's money spent well.
The user wins as well, over the past year, we came to ship many of the things
that have been done within Summer of Code project. In Plasma for example,
there's the extenders that have been introduced with KDE 4.2 and has already
become part of the core infrastructure. Rob Scheepmakers is the guy behind
extenders, and has since then maintained the codebase and improved it further.
Then there's of course Chani, who has also "landed" her Summer of Code
project in KDE 4.2. Her
project brought plasma widgets to the screensaver. Something I wanted to start
using on my desktop machine yesterday so I can suspend it without needing to
unlock it first. No dice, turns out it's not as straightforward as I thought
(i.e. it would take me more than 20 seconds, which I didn't want to invest
at this point). It's probably about 4 lines of javascript as well. I'll buy
the person that does it a beer during
Akademy on Gran Canaria.
This year, I might mentor a project. There's the
Social
Desktop proposal. I thought I had added it about a week ago, and
wondered why nobody got back to me on that. Turns out that it hadn't actually
been saved probably due to an error on my side. I've added it again,
and now it actually turns up on the page. I think there are still a couple
of days left until the deadline, so maybe someone comes up with a good
proposal. I can help a bit by giving feedback for a draft, so you can still
get it into good shape before the deadline.
The Social Desktop is actually a very intereting project. It possibly
combines many of the interesting KDE4 technologies in a way that should be
tangible for the user. Code-wise, it will mostly happen on a rather high
level. Part of the work will be integrating the bits that are already there,
Decibel for real time communication, Nepomuk for search and indexing, Akonadi
for PIM data, but also more "web-enabled technologies" such as GHNS, JOLIE and
Attica to get information, content and also more interaction between users going.
Update: So turns out that my space-time continuum was out of balance
when I wrote the above lines late last night. I had been looking at the 2008
page, and assumed my social desktop idea wasn't there. Some friendly people
pointed out that it is 2009, and after a quick check (we have clocks for
that in Plasma), I have to concur.
[ Sat, 28 Mar 2009 03:00:30 +0100 ] permanent link  What's up with Lion Mail?
With an Akonadi sprint in Berlin coming up, I thought I'd write
a couple of lines for those who are interested in some PIM stuff in Plasma.
Lion Mail is a Plasmoid that shows information about emails. It can be used to display
for example unread emails in a popup in Plasma. Lion Mail is much more powerful
than that though. Lion Mail can load various collections,
and handle them as independant applets or groups of applets on the desktop. It uses
Plasma's extenders which provide support for detaching parts of an applet.
Lion Mail offers in fact two Plasmoids. The Lion Mail applet groups emails into
collections and displays them in a configurable listview, either on the desktop or
as popup applet in the panel. Then, there's the emailmessage applet that can be put
in either panel or on the desktop, and reveils more information as you make it bigger.
It dynamically loads the body and displays it if you give it enough space by resizing.
This happens transparantly for the user. The idea behind this is that you can drop interesting
emails for reference onto desktop or panel, and throw them away when you don't need them.
The email applet also offers interaction buttons. You can flag the email as new, unread,
important and task item right now. I'm planning to also offer a safe way to trash an email,
so you don't get to end up with the situation where you're distracted once by some spam email,
Lion Mail and the Email Message Plasmoids act as some sort of intermittent email reader.
The third and least visible part is the Akonadi dataengine. It's actually there for a long
time already, but hasn't been much used. I've picked it up, brushed a bit of bit-rot off of
it and extended it to do everything I need, and a bit more. I've also added support for
contacts to the engine. Having a dataengine for this
kind of stuff means that the data is very easily accessible for scripted applets, no special
bindings for libraries in PIM or Akonadi are needed. (Naturally, the dataengine itself uses
those libraries internally.)
In the screenshot,
you can see the configuration dialog, the Lion Mail applet and an email applet, all placed
on the desktop. The Lion Mail applet show a list of emails, with various bits of
metainformation hidden or shown. As you can see, you can even view the full email from
within Lion Mail. The buttons shown let you tag the emails, or mark read/unread. Clicking
on the icon expands and collapses the header, clicking on the green expander
shows and hides the body. It's loaded dynamically from Akonadi. Typically, you'll have
Lion Mail sitting in your panel, if you click on it you'll see a popup just like the
right applet in the screenshot. If you're using the email applet on the desktop
(bottom left in the screenshot), you can reveal more information by resizing it
using applet's handle.
There are a couple of things that need more work, either because I've not
gotten around to it yet, or because I didn't find a good solution. In random
order:
- Various layouting bugs. Qt 4.5 has improved the situation quite nicely,
and along with it my experience and wisdom of QGraphicsLayouts has increased a
bit as well. Still there is something I've not completely sorted when displaying
the applets in a list and expanding items in that listview (usually Lion
Mail).
- Fetching the list of collections from akonadi often takes 20 seconds,
I'm not sure why. Fetching individual items is pretty darn fast. Fetching of
all the lists and content from Akonadi happens fully a asynchronous, which is
a big, big plus if we want to keep the UI responsive.
- Drag and Drop support. It works in a wacky way from Lion Mail onto the
desktop, but needs a cleaner solution. I've already called onto the gods and
demi-gods of the holy Plasma to get me ideas. The issue is basically that we're
not dealing with email data but with URLs that deliver us one content type or
the other. Checking the mimetype of some dropped URL and doing something
sensible with it is something I didn't get to work nicely yet. While the
current code is totally disgusting, it's pretty neat
interaction-wise. Upon dragging an email, you get a nice
large-ish email icon attached to your mouse cursor, and when you drop the email
onto the desktop, it's created from the akonadi URL, and loads its content from
there. Eventually, the user should be able to just drag an email from her
favourite email client (Mailody for sure, it's the first app to use Akonadi for
email) onto Plasma, and maybe the other way round as well.
- Sorting and more advanced querying ("virtual folders"). The way Lion
Mail works right now, it's not possible to sort emails. I'm not sure how to
solve this best, since it's two things I want. First and foremost, I don't want
to request full folders of emails (a couple of thousand emails in the common
case) only to throw 99.9% of them away. That means that I need some way to query
"8 news unread emails from all folders" or "all emails flagged
important from imap folders private, work", "emails tagged 'petting
zoo'", "8 latest emails from Artur, Wade and George (Yes, you
George!)". That's the kind of thing I want to be able to display with Lion
Mail. The other side of the problem is of course that the display in Lion Mail
itself doesn't do any kind of sorting at the moment. I figured that would be
futile, since I'm using the "throw away 99.9% method" right now anyway. (WTF++)
Something that needs more of that tender, love and care. And probably some
model-view-akonadi-fu as well. (I'm looking at you, Till. :-))
- Integration of activities. The collections shown may vary depending on
the current activity. It should be straight-forward to set up Lion Mail so
that it only shows you emails relevant to your current activity. Or in less
abstract terms: When you're free, you should be notified and shown emails
from work or when you're working on some project, to show emails relevant
to that context. One of the TODO items.
- Notifications. Didn't get to that yet, simple as that.
- Improved display in the panel. This means for example showing the
number of unread emails in there, or something more fancy than that.
I'll meet bright people at the Akonadi meeting in ten days at the KDAB
offices in Berlin, and that I'll find solutions for some of the things that
I want to do in Lion Mail. Developer meetings are a wonderful way of
learning and tapping into other's knowledge and experience. Or simply to
get someone to test it and see where things are breaking and falling apart. :)
Another couple of ideas I'm planning to implement for Lion Mail is more
integration with Contacts. Here I'm not necessarily talking about "entries in
my addressbook" (only in the ideal case, where they actually have an entry in my
addressbook). A contact goes further than what the entry in the addressbook
provides. Contacts are one way to provide context to data. The sender of an
email matters a lot, even more so when you're looking at emails. Other emails by
some person are probably relevant to show as well, pulling in instant messaging
status, and possibly social network activity are surely interesting things to
look at. Hmm, ... "Lion Mail: Social Networking for Email Geeks". sounds
like a nice vision statement for it. ;)
For that to happen, I need to figure out a way to ask Nepomuk about data related
to the concept of a "Contact". The exact relationship is a bit unclear to me right
now though. Should all data be requested through Nepomuk? In how far can I use
Nepomuk concepts in Akonadi? Think of the famous "give me all items (emails,
chat logs, ...) by this Nepomuk contact".
If you're interested in looking at Lion Mail code-wise, it's currently in
Plasma's
playground. If you're planning to use it, hold your breath for a while,
it's not ready for use at this point.
A nice side effect of all that hacking is that I'm starting to get the hang
(addiction?) of
the Monster that C++ can be. I've started learning C++ about two years ago. Over
the last weeks, I've felt that I'm more confident with how I write code, I make
less dumb errors, I understand more quickly what's going on, and I can
understand code quicker now. There's so much more to learn, but at least I'm
feeling I've moved from the "figuring out how I express this in C++" to "write
code" mode. That said I'm all but an experienced C++ hacker. One of the things
that continue to strike me is the overall clarity of KDE's codebase. Combine
that (providing huge amounts of examples for everything) with a lot of nice
people that can help you figuring out things, and you get a very productive and
rewarding learning environment.
Of course I'm not even talking about touching non-Qt/KDE code. That still is
something I generally try to avoid, mostly to keep complexity down to a level
that is manageable for me. And it's icky.
[ Tue, 24 Mar 2009 04:25:25 +0100 ] permanent link  Bossa conference 2009.
I'm in Porto de Galinhas near Recife in Brazil right now, where I'll be
keynoting at Bossa Conference
later today. I've been flying
in last Thursday from Amsterdam via Lisbon, where I already met some Trolls
(Andreas (QGraphicsView), Marius (QItemViews) and Simon (QWebkit)). After a
good flight (I got four free seats in a row, which translated to "lie down
and sleep as much as you can" to me), we arrived in warm and sunny Brazil.
It's about 30 degrees here, and it's spot on summer (spot on winter would
mean 26 degrees C, since Recife is only 8 degrees south of the equator).
On Friday, we visited the INdT office close to our appartment, and on
Saturday
the iNdT guys took us to Bora Bora, a piece of beach 2 hours south of Recife
that welcomes you to paradise. Can't really argue with that. :-)
On Sunday, the "conference improper" began with a welcome and drinks in the
evening so everybody was able to have a fresh start on Monday. Sandro opened
the conference with being interrupted by a bunch of Brazilian dancers, I
guess everybody was pretty much awake after the drums on dancing.
The conference itself strikes a very nice balance between interesting
talks, interesting conversations with interesting people, all that in a very
relaxed environment. It takes place in a beach resort, basically a small village
with a large swimming pool landscape in its center. The conference and hotel
staff is making sure that everything is running smoothly and nobody seems to
miss anything.
An interesting talk I followed yesterday was Marcel Holtzmann's
presentation about ConnMan, which is a new piece of
infrastructure for "getting online". Marcel went through some parts of the
network stack showing many parts that just aren't up to today's requirements
anymore, and presents a solution that he's currently working on as part of his
work for Intel.
ConnMan is a replacement for NetworkManager, which is built to be
scalable for the future when new technologies such as WiMax arrive at the user.
It's basically supposed to be a "more than full" replacement for NetworkManager,
which is very complicated in its design and often very slow in its use. ConnMan
is designed to make it easy to build a UI on top of it, which is good news for
people like me, having worked on the NetworkManager plasmoids UI bits. While I
was at first rather sceptical, thinking "Now that NetworkManager actually starts
to behave like I want it to, it's being replaced, oh noooooo!", Marcel's managed
to convince me that the way forward he's proposing is actually very sensible.
Will Stephenson will probably concur as he sees actual documentation, as he's
been the "sucker" who took on the work going through large parts of
NetworkManager's source code to find out how to write a UI for it. Let's just
say "it could've been a more pleasant experience" ;-) So yeah, documentation on
the interfaces is something critical if you want others to use your stuff.
I had some interesting conversations yesterday with Rasterman, the founder of
Enlightenment. Topics ranged from resolution-independant interfaces to release
policy, filesystem hierarchies and how that works for users and of course more
mundane subjects like "cocktails served in coconuts".
The atmosphere is is really great, it's fantastic to discuss plans and their
implementations with the iNdT folks (especially when the meeting table is not
a table but a large swimming pool -- that definitely makes for fun and
interesting digressions.
In unrelated news, Gökmen, one of the developers of Pardus Linux (a Turkish
Linux distribution) has invited me to speak at a (more user-oriented)
conference in Istanbul next month. I'm happily accepting that invitation, so
if you're in Istanbul on April 17 and 18, make sure you drop by.
[ Tue, 10 Mar 2009 15:55:18 +0100 ] permanent link  Don't ship KDE 4.2 with Qt 4.5.
Just a couple of days ago, we've upgraded qt-copy in KDE's SVN to the release
candidate of Qt 4.5. Qt 4.5 is to be released shortly, and some distros and
Operating Systems apparently plan to ship KDE 4.2 with Qt 4.5. That is not a
good idea, not if you want a well-working Plasma. (qt-copy is a copy of Qt
(d'oh!) we're using for KDE development and which contains some patches we're
pushing upstream to Qt. Those are often fixes we need in order to be able
to develop KDE.
But let me explain. In Plasma, we're using QGraphicsView a lot. QGraphicsView
is a canvas that is different from regular widgets and windows. As such,
"normal" QWidgets don't work (wait, I'll get to that in a second), neither
do QLayouts. Enter QGraphicsWidgets and QGraphicsLayouts. The latter are still
quite new in Qt, and as such not as mature as we're used to from other
components in Qt. QGraphicsLayouts in Qt 4.4 for example have problems resizing
when their content changes its size. Luckily, most of that has been addressed
by the Qt developers so that we're looking at a much improved QGraphicsLayout
in Qt 4.5.
In order to get some of the more complex Plasmoids to work correctly in (the
Qt 4.4-based) KDE 4.2, those Plasmoids contain workarounds for those problems,
workaround that aren't necessary for Qt 4.5 any more. Some of those
workaround are even considered harmful when using Qt 4.5 (i.e. they will
simply break things such as screwing out the layouting of widgets).
The result of that is that Plasma in KDE 4.2 is
effectively incompatible with Qt 4.5, hence the reason we ask distributors
to not ship KDE 4.2 with Qt 4.5. At least not until further notice.
We've already removed some of those workaround and hacks in KDE trunk/
(which is what is going to become KDE 4.3 this summer). KDE 4.3 will require
Qt 4.5 anyway once it's released, so this is pretty much a no-brainer.
It's not trivial to backport those things, that's why we're currently not
planning to do that.
So as it looks like, we (the Plasma team) won't support running KDE 4.2 with
Qt 4.5. If you'd like to know further details about this, or want to find
out what it takes to get KDE 4.2 working with Qt 4.5, please come over to
the Plasma mailinglist (plasma-devel kde org) to discuss this further.
Update: Most of the issues have been resolved by both the Qt and
KDE teams. If you happen to run into problems with this combination,
let us know via bugs.kde.org or one of our mailinglists and we'll see
if we can fix it.
[ Mon, 09 Feb 2009 00:03:40 +0100 ] permanent link  First Plasma BoF in the Sea.
Note to self: Just blog, don't ask Blauzahl if the picture is good enough,
you can always fix it up latah!
Thursday night, I arrived in Kingston, Jamaica after a long, trip. Roger had
hooked me up with Michael (who had, the night before also Jos had the pleasure
to be Michael's guest). Michael has been a very nice and caring host. He put
me to bed after a marathon of something close to 40 hours without a bed (but
the occasional 1-hour-naps on the plane). The plane had taken me from
Amsterdam to London to Miami (insert bitching about U.S. customs here).
I arrived in Kingston roughly two hours late because there had been some fuel
leaking into the engine. Apparently the crew didn't feel comfortable
to fly my last hop without having it checked by two groups of engineers. After
an hour or so, we the problem was fixed and we flew over to Jamaica. Michael
picked me up from the airport, got me some good food and put me to bed, which
was needed after a long trip. Thanks dude for caring for me so well!
Finally, I had made my way to Jamaica.
The next day I slept in a bit and ate a large amount of really good fruit,
including melon, sugar cane, grapes, ... Then, Grandville, a friendly taxi
driver picked me up to go by the University of the West Indies, to pick up
Richard and Monika, two students attending CampKDE and some recording gear.
The next 4 - 5 hours, we drove from Kingston to Negril, a good 200km. The
trip was mostly fun, we talked about music and Jamaica, I saw a lot of the
inner-Jamaican scenery, we had some patties (Jamaican pasty stuffed with beef)
and spicy shrimps on the way. When we arrived in Negril, it was already way
beyond dusk, and most of the KDE folks that had arrived already were having
foods and drinks near the beach. I met Dmitry here, who happens to be one
the same racing team as Grandville, our taxi driver (not kidding!).
After the usual (but pleasurable) hugfest that's inevitable when seeing all
the people again, we went for a Plasma BoF in the sea (which was still nice
and warm). Points of discussion were mostly the ZUI, its usecases, how it's
related to virtual desktops, and what we think we'd need to do to make it
really usable. We also talked a bit about documentation issues, developer
documentation for libplasma, documentation for scripting Plasmoids, and
user-oriented documentation. Blauzahl told us that one problem of triaging
Plasma bugs is that people often don't really know what's what and that
the BugSquad in turn has a hard time to get useful bugreports. Something
that can easily be solved with an
annotated
screenshots (this is the one that needs a better version).
[ Sun, 18 Jan 2009 18:00:38 +0100 ] permanent link  Crystal desktop search applet.
Over new year, I've been playing around with Strigi and Nepomuk, which are
the two technologies around desktop search and "making sense of your data".
Strigi is the underlying library that is used to analyze all sorts of files and
index those results.
Nepomuk provides a semantic layer on top of
this information, and a nice KDE API
for easy integration in applications. While Nepomuk is only lately maturing,
it shows some nice ways to interact with information on your desktop. Nepomuk
uses RDF and ontologies to make sense of your data. It has the concept of types
of data (think of a photo being an an image), and how those types relate to each
other. It also stores metadata (for the photo example, that'd be size, camera
model, and so on.
Nepomuk started catching my attention when I had been
looking at a bug in krunner, that cropped up when the desktop
search on my machine magically started working. It displayed too many results
and kept the KRunner interface very busy, and sometime even made it crash. I've
tried some tricks limiting it in a sensible way, but wasn't really familiar with
the workings of Nepomuk. Sebastian Trueg has fixed this bug last week,
fortunately.
There are some caveats, when setting up Nepomuk.
In order to get reasonably fast search and indexing, make sure your Nepomuk
is using the Java JNI based Soprano backend (JNI is an interface to some Java
functionality for C++). I am compiling KDE from trunk usually.
Soprano sits in kdesupport and has
two possible backends you can use, Redland and Sesame2. The former is C++ based,
but it's very slow. So in order to get reasonable performance out of Nepomuk,
make sure the Sesame2 backend gets installed. For compiling it, I had to install
the necessary Java packages -- I've installed both the JDK and JRE. CMake
apparently didn't find this enough, when configuring Soprano, it still reported
that it cound't find the JNI, so wouldn't compile the Sesame2 backend. I had to
tell it explicitely where to find Java by putting the following into my .zshrc
file:
JAVA_HOME=/usr/lib/jvm/java-6-sun on my Kubuntu machine, and
JAVA_HOME=/usr/lib/jvm/java on my OpenSuse machine.
After having it installed, you can configure the search in System Settings.
The first run took pretty long, but after that, indexing doesn't get in the way
anymore and also doesn't hurt performance noticably (i.e. having nepomuksearch
monitoring). Also, the results I got from Nepomuk
and Strigi where quite OK, even when limiting the search to only 5 seconds (which
makes the first results display a lot quicker as well). In general, not having Nepomuk
do endless searches is a good idea. :-)
Over christmas, I had been thinking how to integrate desktop search into
Plasma, and started writing a small applet as interface to the desktop search.
I'm not really fond of KRunner's current interface. It displays too little
information about the results, and looks a bit messy to me. We've already been
thinking about possible improvements on the plasma mailing list, but with all
the bug fixing around, we didn't get to tackle KRunner's UI in a way that makes
it suitable to display results from a desktop search.
So I started writing an applet for Plasma, since
nobody seems to have done
this yet and called it Crystal, since that's a cool name. Nepomuk actually made
it very easy, with 300 lines of code (C++ even), I had a basic Plasma applet,
including configuration to tweak the search, and the whole thing displaying
results and opening those files.
I've committed the applet yesterday to
plasma's playground so others can have a look at this, too.
It's already quite nifty,
but only very basic and totally not polished. Many aspects of the applet might
change in the future, but it should be a good starting point to experiment with
desktop search on the KDE4 desktop.
The applet can popup on shortcut
(I got this for free with the plasma configuration dialog actually) and pre-fill the
clipboard into the lineedit. This way, you just select and copy a word into your
clipboard, then hit some shortcut and press enter and dang! it searches for it.
When the applet pops up, the text in the query lineedit is selected so you can also
just start typing and thus override the pre-filled query (your clipboard or the
default from the config dialogue).
There's no keyboard navigation in the list of results yet, and it doesn't sort
the results by relevance. I actually have a small patch that makes the
SearchHitView sort by relevance, but it sometimes causes rendering problems,
painting resulting items on top of each other. That patch essentially returns a
rounded score for the items and makes KCategorizedView to order descending. I'll
have to investigate if that's the right way to do it. Rafael (ereslibre) has some
promising work on KCategorizedView
in the pipeline as well. We'll see where
this all goes...
Codewise, actually searching and displaying results with Nepomuk is dead easy. Most
of the important functionality is included in KDE 4.2's kdelibs.
There's the
QueryServiceClient which is what you use to fire queries into Nepomuk and
retrieve the results (Nepomuk::Search::Result). The client is connected to a SearchHitView, which
internally retrieves the hits from Nepomuk and puts them into the model, then
updates the view.
The SearchHitView is from playground's nepomuk-kde. It gives us models and view for search
items, and has
plugins for different types of files and result types.
Here's how this looks like in an example:
// Create a new client for the search
m_searchclient = new nepomuk::search::queryserviceclient( this );
// Search when the button is clicked
connect( m_buttonsearch, signal( clicked() ),
this, slot( slotsearch() ) );
// ... also search on Enter in the search field
connect( m_editsearchtext, signal( returnpressed() ),
this, slot( slotsearch() ) );
// Put new results in the SearchHitView
connect( m_searchclient, signal( newentries( const qlist& ) ),
m_resultsview, slot( updateresources( const qlist& ) ) );
// Do something when the user clicks on a result
connect( m_resultsview, signal( resourceactivated( const qurl& ) ),
this, slot( slotresourceactivated( const qurl& ) ) );
You'll need two functions then, slotresourceactivated(QUrl url), which might be as simple as
just KRun(url) in order to open the file (or url), and slotsearch(), which runs
the query on the the string from the search lineedit.
The plugin system doesn't quite work
for me at the moment, there's an issue that a factory class always returns the most generic of
the visualization plugins, making the results in the view look a bit boring. (The
mechanism works fine in knepsearchclient, I dunno what exactly is going on there, deeply
in KService ...)
I hope to get this to work quickly, also to get some more polishing applied to the
plugins, and have them -- based on their type -- display more interesting
information so you can quickly see if that file is the one you're looking for.
Also, displaying them at different sizes can reveal or hide some information,
which is definitely useful and makes the user interface a lot more flexible.
The code isn't yet stable, and it needs some work.
Earlier on Sunday, richmoore blogged about a small class he
has written to interact with MediaWikis. I've quickly took his code and put it
into Crystal. Within an hour or so, I had Crystal display matches from TechBase
along with the Nepomuk matches (albeit not correctly yet since the SearchHitView
expects a bit more than a QUrl pointing to a random location (oh noes, our
techbase is not random!). After a bit more hacking, Crystal now searches in
Wikipedia, TechBase and UserBase for your search term. Display of the results is
a bit better, but still not quite there yet. Something to sort out. :)
Some more ideas I have for the Crystal applet are saving of searches, for
example to the desktop, a dropdown, or something so you can easily access
pre-defined queries. Rich's MediaWiki code also got me thinking a bit about the
difference between searches on the web and on your desktop (other than "I
don't want everything I type submitted to Google", of course ;-)).
It would be really good if applications started using Nepomuk more,
although we see some interesting stuff coming up there as well, Gwenview has
nepomuk based tagging and rating in KDE 4.2, for example. What I'd find useful
is if applications started tagging files through Nepomuk automatically. It would
be really useful to keep track of visited webpages, and have some information
about that in the results of the desktop search. And of course Email. Tags for
attachments from certain persons would be useful. Also there's a small problem
in the config dialogue for Strigi right now -- you can't enter directories
starting with a ".", and my email is somewhere under ~/.kde4/share/apps/kmail.
That should be relatively easy to fix though. Mid-term Akonadi should be
accessible in the same way.
And finally, I think we should put a searchbox into our file dialogue.
During the redesign that has taken place for KDE 4.2, we left some free space in
its top center, arguing that it make be the place to put a desktop search box.
Sure enough the desktop search is fast enough (and I'm lazy enough) for me to
replace most of the navigation-through-my-filesystem by simply typing the
filename and choosing the correct file. The results from Strigi and Nepomuk are
usually fast enough and correct. The file dialogue feels as a very natural
for file search.
[ Mon, 12 Jan 2009 17:12:07 +0100 ] permanent link  Merging branches upstream with Git.
This is one of those "I write it on my blog so I can easily find it
back"
posts, that's hopefully useful to someone out there.
For KDE development, I'm using git and git-svn to manage the codebase.
Earlier today, I've merged a branch I had created over new year's holiday. It
consisted of 25 patches, some larger (implementing a new feature), some smaller,
cleanups, but also some patches I wanted to keep separate for easier reference
and review. I didn't want to commit it to KDE's SVN as one huge commit, but also
not as 25, with a lot of those smaller ones that were more the "savegame" type
of commit you do once in a while to easily get back to a "working state" when
you're about to break things or experiment.
Git's rebase tool is what I wanted then. I've started off with my branch,
counted it was 25 commits I want to restructure.
git rebase --interactive HEAD~25
Gives you a list you can pick commits from. Every commit is shown on one
line, starting with the keyword "pick". For commits you want to keep as-is,
leave that line alone. Make it "squash" to combine this commit with the one on
the previous line. Write "edit" to tweak the commit message. Just remove the
commits you don't want. Git will instruct you to do what's needed, changing a
log message, possibly solving a conflict. You pick up the rebasing process with
git rebase --continue
then. If you're done, you can merge your branch, for example using "git svn
dcommit" (do check with "git log", "git show" and "git svn dcommit -n" first if
everything worked OK).
[ Mon, 12 Jan 2009 00:30:55 +0100 ] permanent link  Networkmanager in KDE4.
Networkmanager is a daemon that keeps track
of lower level bits on computers that have changing network hardware. It's designed
to do this dynamically, and exchange information about status with a user interface
that acts as configuration UI and policy agent. Networkmanager has gone through a
large redesign between the
0.6 and 0.7 version, including the necessary API and DBus interface changes.
Not without advantages
though. I personally didn't really like networkmanager's behaviour in the past,
found it too random, too much getting in the way. Networkmanager 0.7 is better
in that regard, it doesn't drop my connection all the time for a start, it stays
online while you log out and operates mostly within the bounds of what I deem
sane.
One of the projects I've been working on over the last couple of months is
the networkmanager plasmoid for KDE4. Will has put the infrastructural bits and
pieces that are needed to work with networkmanager 0.7 into place. There is the
networkmanager backend for Solid, KDE's library for interaction with hardware, but
also all the different configuration interfaces for all kinds of network access.
During development of the networkmanager plasmoid, I've often used the GNOME
nm-applet. It does the job quite well and is a reliable interface to
networkmanager. Something I find a bit confusing is that it offers two context
menues, one on right click and one on left click. I often find myself looking in
both until I've found the option I've been looking for. This also has to do with a
limitation of the whole systray interface, which seems really outdated when
looking at how we usually do these things in Plasma. As a matter of fact, nm-applet uses
the GNOME keyring, which reminds me that
it would be nice at some point to share this functionality (i.e. have it uses
kwallet on KDE and keyring on GNOME). Right now when using nm-applet, I've two
password stores that I
need to unlock after login. I've also tried some other 'wifi connection' UIs.
One, I've seen in Windows was particularly bad. It would ask the user to type in
a WEP key (the long versions, often), didn't offer any help doing this, but made it
made it harder. You had to fill in the long HEX key twice, and both fields for
that were password fields, so you can't even see what you're typing. It was just
plain horrible. Quite a bit better is the interface of the iPod Touch (and
presumably the iPhone). It does a good job on the input side (especially given
that the user doesn't use a keyboard but the touchscreen). It does fall flat on
its face technically though. First, support for WPA2 is lacking, that rules out
access to the network at the university, and supposedly many others. Then, it
often reports that it has established a connection when it merely logged on to
the access point, but didn't get an IP yet. Since you can often connect to
accesspoints (even encrypted ones) but don't actually get an IP address, that
information is often bogus and it can be quite annoying being told you're
connected, while you're not. One of my favourite wifi
settings UI is the one shipped with Maemo. While it's nothing fancy, it gets the
job done reliable and it doesn't confuse me.
So one of my personal goals is to not make all those mistakes in the
interface for networkmanager in KDE4. We're not there yet, but progressing OK.
Settings for wired and wireless start to work, as in "at least three persons on
this Planet have ever been able to connect to a wireless network using it". It
has UI glitches, it's not nicely streamlined for workflows we have in mind, the
configuration interfaces are no beauty yet, and it has bugs, lots of it. It is
in no way near release quality yet, more like an early Alpha. We're trying to
have a first working version out within the next couple of months, hopefully in
time for the distros that ship in spring. So the applet won't ship with KDE 4.2
we're planning to release it individually so you (or your distro) can grab it
in the meantime. We're looking at putting it into KDE 4.3 then.
If you're interested in hacking on it or just trying it, the current code can be
checked out from
playground.
For this to work, you need to have the libsolid code
from kdebase/workspace/solid installed. There are actually two networkmanager
plugins, one is for networkmanager 0.6, one for 0.7. The latter one is the one
we're relying on. Yesterday, coolo started committing patches to the networkmanager
plasmoid, scratching an itch. That's pretty cool given that he's one of KDE's
oldtimers. A true honour to share code with :-)
[ Tue, 06 Jan 2009 02:13:16 +0100 ] permanent link  KDE 2008 fly-by.
The beginning of this year in KDE was marked with the tagging and release of
KDE 4.0, followed up by the release event in Mountain View. KDE
4.0 has marked for the KDE community a stable base to build a kick-ass
desktop and applications on. Over the past year, we see this effort paying off.
Applications such as Dolphin, Gwenview and Okular are mature tools, powerful and
userfriendly at the same time, speaking for the KDE4. With KDEnlive and Amarok
2.0 as their first KDE4 version, we see the more complex applications coming up.
On the workspace side, new UI technology has matured, KWin's
compositing and Plasma give you a very smooth ride as well.
The development platform is paying off, it proves to be a very
extensible and future-proof platform, more and more applications are becoming
available on Windows and Mac, KDE on OpenSolaris is getting closer to inclusion
in the distribution, and we've seen KDE already available on FreeBSD. New
applications written in Python have entered KDE, and scripting support for many
applications is becoming available as well, in the form of services in Amarok and
scripted Plasmoids for example.
The development platform appeals to be very attractive to new developers as
well. At the end of 2008, we'll have welcomed 300 new developers in the project.
The current activity in terms of commits to the KDE's SVN, the ongoing bug frenzy
and general polishing of KDE4 desktop and apps is amazing.
On the organisational side, this growth in the KDE
community and the increased attention from both users and the wider Free
Software community, has been balanced out by the launch of the KDE Forum and
UserBase to improve communication across a wider community. The formation of the
Community Working Group has worked out very well and has come far in smoothening
out how we work together. The wide acceptance of the Code of Conduct is another
successful chapter in improving the collaboration.
The opening of the KDE e.V. office in Frankfurt and employment
of Claudia has been an important step,
and are leading to a smoother functioning organisation in many ways. In 2008,
many developer meetings have been supported both financially and organisationally
and two larger conferences have been held in Mountain View and Mechelen,
which scored the record number of attendees.
So what's up next year? Personally, I'm hoping, actually being confident
that in 2009 we see the rise of new technologies such as Akonadi, Decibel,
integrated desktop search and the semantic desktop. I'm looking forward to
seeing KOffice2 becoming available and maturing. Higher level concepts such
as the Social
Desktop will start to be integrated, and a wide variety of new and existing
applications will make their way onto everyone's desktops and mobile devices.
More imminent, there will be the second KDE conference in the Americas on
Jamaica in January, and a smashing Akademy during the Gran Canaria Desktop
Summit in July.
It's been a smashing year, and we're not even done yet.
[ Fri, 19 Dec 2008 03:33:36 +0100 ] permanent link  Dolphin screencast.
I've been playing around with screencasting software for some time. My idea is,
to provide a series of screencasts showing off different aspects of KDE
technology. I've now mostly sorted out the technicalities and concepts, so I
started recording some test screencasts. For the screencasts, I'm using
recordmydesktop. I've chosen blip.tv a one means of distribution. Their web
interface is nice and easy to understand. It offers a flash player, so it makes
the content accessible very easily, but you can also view the Ogg Video version
of the file, so it's equally accessible for those preferring a Free format.
Blip.tv also seems to have a reasonable understanding of licensing. They're
offering several creative commons licenses to choose from. I've chosen a
relatively liberal license so the screencasts are easy to redistribute and use
in other materials. Well, maybe not this first one, as I'm not yet a super hero
in this authoring domain. To make things easier, I've not included sound. This
pilot is about 10 minutes long. I'm using the fine Plasma notes applet to tell
what's going on, although I'm forgetting to scroll in the beginning, and
somewhere towards the end, please bear with me -- I guess that's some sort of
digital stage fright.
So this first screencast walks us through a part of Dolphin's feature set. The
different view modes, zooming functionality, tooltips, the cool selection
mechanism (no ctrl-key!), shows how Dolphin integrates my USB stick and how you
safely remove it, the Capacity indicator, the places, information, folders and
terminal panels and how you can use them to make Dolphin fit your working
habits. It concludes with a run through the configuration dialog. Enjoy!
[ Fri, 28 Nov 2008 04:49:51 +0100 ] permanent link  Re: Making sure we do power management the right way.
So Matthew Garrett
dissects what he thinks powerdevil is doing wrong and gives a couple of point that
in his view, power managemers on the Free Desktop aren't doing right at the moment.
Let's have a look at Matthew's points (I'm paraphrasing here for ease to follow,
hoping I'm not getting his points wrong):
-
"Powersave is the wrong governor". First of all, Matthew
assumes that the setting "powersave" will actually use the powersave cpufreq governor.
Fair enough, the label offers it as powersaving mode. The CPU governor in use
though is not the powersave governor, but the "conservative" governor, which
indeed is an "ondemand" governor, meaning it gives you the
extra needed CPU power when you ask for it. As its name says, it's slightly more
conservative than the ondemand governor when scaling up. Matthew gets this
wrong, but he's probably misled by the label we present to the user.
The "powersave" performance profile does more than just switching the cpufreq governor,
it can also control your display's power consumption (and in the future probably
even disable animations all over the place so you don't loose any of these CPU cycles
for eye-candy).
-
"Thermal management is not the job of a power manager".
True, mostly. Usually, it should be controlled by the BIOS. The default setting
though is usually very conservative / safe. In general, we don't want users to
fiddle with the limits (at what temperature should your CPU cooler start
spinning?). Powerdevil doesn't offer such option, so Matthew will be happy about
this item. (I don't see how Matthew gets to think that powerdevil does poke into
thermal management settings, so I guess Matthews point was more a general one in
the first place.)
-
"Presentation mode". Something the app does indeed. We've
discussed this on the hardware-devel list and came to the same conclusion.
Again, powerdevil doesn't offer an option for presentation mode to the user
because it's "an application behaviour policy" as Matthew tells us. I do
agree. What Matthew is missing here is that PowerDevil manages those policies.
It's in fact the central place to do so in KDE 4.2. Apps will tell powerdevil
that a presentation is running, powerdevil will keep track of all apps
inhibiting certain PM features (screensaver, dimming, suspend, ...), check other
policies (e.g. "lock screen on resume?"). There's no "inhibit suspend" button in
Powerdevil though. Downside is that we have to rely on apps actually setting
this cookie -- which might or might not be more reliable than the user herself.
So it might take some time until this feature in powermanagement on
the Free Desktop works for everybody. (Until that time, you can switch to a
power profile that doesn't suspend / screensave in the first place. All happy. :)
-
"3d takes more energy than 2d". Might be true. From my
measurements, however, facts are: a) KWin with compositing enabled does hardly
spend "a significant proportion of the time on the GPU". (In fact, it sleeps
most of the time.) and b) KWin in compositing mode does hardly need any more
energy than when compositing is off. (Again, results of my measurements, those
might be off. I'd invite Matthew or everybody else to provide additional data
points so we can improve our default setting to optimize its behaviour further.)
Users can of course easily check this themselves. Run powertop with compositing
on, measure your CPU consumption, switch it off (alt+shift+f12), measure again,
compare. In my tests, results have been in the 1% - 'hardly measurable' range.
If that's different on your machine, configure powerdevil to automatically
switch off compositing. If you're findings vary from mine, let me know and we
can further improve powerdevil's set of policies.
Lesson learned: Check your facts before you publically dissect the inner
workings of something that is as complex as powermanagement for a desktop system
and that you're obviously not familiar enough with to judge wether this piece of
software gets it right or not. I'm assuming that Matthew does know *his* stuff
(his general points are pretty much all sensible). Unfortunately his arguments
in the light of powerdevil's actual implementation are all strawmen. I'd have
expected a more thorough analysis from Matthew.
I'd also like to thank Matthew for his input on these matters, and I'm glad
it's not as disheartening or dramatic as he tries to put it. In fact, reading
his blog, I'm now even more confident that we have something that is both, in
its default setting a very sensible system to manage power consumption while
not getting in the way of the user, and also very powerful for all those cases
where machines are just a bit different -- so we're also set to deal with a great
variety of systems and usecases.
[ Sun, 23 Nov 2008 17:15:08 +0100 ] permanent link
Weblog Archive
23-11-2007, 18:44 h © Sebastian Kügler
|