Thursday, January 31, 2008

l.c.a. and fluffy bunnies

the "developing with libplasma" presentation went swimmingly today. the room was packed and there were lots of really good questions. the best part was that there were answers for all the questions that made sense. all the people who have been banging on the plasma api for the last year or so have really helped us to cover the common needs very well.

at the end of it, Karol Szwed came up and introduced Ross Cunningham from Sun and David Purdue from Frontline (an Australian consultancy) who proceeded to donate a Sun server to the KDE project. nice!

then it was off to lunch with a bunch of the kde people that are in attendance here, including a few i hadn't met before such as Ian Wadham of kgoldrunner fame. now we're sitting in Andrew Tridgell's presentation on clustered samba. it's pretty cool; the entire presentation is essentially a live demo. sophisticated stuff.

but the real highlight of the day? the fluffy bunny plasma widget background. i'm using it now, in fact, as you can see here:

Wednesday, January 30, 2008

l.c.a.

had a nice dinner at a local pub last night, where i finally got to me Karol Szwed in person (we've known each other via the project since 2.x days) and then a wander through some of the town down by the river than flows through the city. very picturesque.

today's presentations have been rather informative on issues regarding hardware vendor happiness (Dirk Hohndel from Intel was presenting), x.org and acceleration architecturs (Carl Worth), AbiCollab (Martin Sevior) .. but the highlight had to be Sandrine Balbo's presenting first thing in the morning on HCI (aka "usability") processes, in particular building and making use of user requirement models. lots of high quality, very practical stuff and it was well worth my time to sit in on the session. =)

i present tomorrow in the morning ... you may want to pay attention as we'll have an interesting announcement that occurs at the end of it. (yes, i am a tease ;)

tonight i'm off to the speaker's dinner event which should provide some good networking opportunities. speaking of eating and networking, i had lunch with Pia Waugh and a few others from the Australian Free Software scene. it was highly enjoyable and filled with insightful conversation on the issue of management (and lack thereof) of open source projects, among other topics.

i'm most of the way through email, though i'm having to drop some of them on the floor due to the current volume and my time availability here. so if you've sent me email and i haven't replied ... apologies. 24 hours is too little for a single day =)

in other news, Matt Rogers has set up a review board installation which i want to start using to streamline the patch review process in plasma. Matt has set up a group for Kopete already, i've noticed, too. if all goes well, we'll find a permanent home for it and maybe even start getting other kde projects using it =)

Tuesday, January 29, 2008

l.c.a.

did lunch with a fellow who is a professor at the university here who is also working on the collaborative editing features in abiword. he got us into the faculty lounge where the food and drink was good and cheap, too good features when it comes to food. we discussed ways to make the abiword collaborative features into a generic library so others applications use some of their fine work on the path to supporting collaborative efforts. he's presenting on his work in abiword tomorrow, so i'll be attending that one for sure.

then it was on to presentations on desktop deployment issues and policykit. we (kde) really need to get our ass in gear when it comes to supporting policykit, in my opinion. we have stubbed in a few places to do this, but there is really no firm code to point at in many places. i need this stuff in plasma, so maybe i'll sit down and write a bit of policykit-ish stuff.

currently i'm sitting in a presentation by Martin Michlmayr on his research on release schedules in large free software projects, and in particular on time based releases. i have a bit of work to do on my slides tonight for thursday, so i think i'll take an early out tonight if possible to do that.

Monday, January 28, 2008

l.c.a live blogging

i'll try to start live blogging my l.c.a attendance experience here. if i succeed there'll be a bit of a flow of small posts over the next few days in my blog here.

this morning i was in an interesting presentation on conduit, a data syncing solution. it's an interesting project in that it has the sort of big picture view (in particular, to bring as many forms of syncing to as many gnome apps as possible) that i've come to appreciate in many kde4 projects. it will be interesting to watch it continue on. it also made me wonder idly about opensync in kde again.

during morning tea i chatted with Andrew Cowie, Jon Corbet from LWN and others. it was a stimulating conversation in general.

after the tea Andrew presented on Akonadi, promoting it to the gnome developers here with the idea of having a coordinated effort between all the free software desktop projects centered around Akonadi. very cool, and i hope the gnomies take Andrew's recommendations to heart and start doing cool things with it. Andrew made a really good set of points about how difficult and boring much of groupware can be and how the kontact hackers did what rarely happens: facing discouragement and burn-out on a particular app, the reinvented how they were addressing the problem to breath new life into the space in general so that their expertise was not lost and others could get involved (hello, Mailody =)

we're on to an OLPC presentation now ... not a project i'm overly optimistic about, tbh. keithp is sitting next to me playing around with a new x11 toolkit he's been working on that features resolution independence as a core feature. i've already taken the opportunity to smack him about the xrandr/xinerama issue so i'm feeling a little less aggro about that particular fubar now ;)

Nokia and Trolltech

So as everyone has heard by now, Nokia is acquiring Trolltech. Change always caries some measure of doubt and cause for concern: we know the present and so if the future is similar to the present we feel we have a good understanding of the future, but when the future is being adjusted we lose that "tomorrow will be just like today" shortcut. In spite of this, many (though certainly not all) changes are good. So, is this a good thing for KDE, Qt, Trolltech, etc?

First, we don't have all the answers. There are still many things to work out over the coming months between all the parties involved. Nokia and Trolltech were nice enough to invite me into the conversation recently so as to ensure that KDE's interests, needs and positions are both heard and taken into consideration.

Some will probably ask if this will be anything more than ceremonial. I'm glad to say that Nokia has already been very open to the input I've offered so far. Combined with Nokia's recent history with Free Software, I'm cautiously optimistic.

I'll still be doing what I'm doing; in fact, I may end up having access to new levels of resources due to this move which could be quite nice. Qt will continue to be developed by the Trolltech ninja teams of developers. The dual licensing model will continue and Nokia understan, ds the symbiotic relationship between Qt (and it's quality and depth) and the Free Software world. Nokia will be getting more involved with us in the KDE world as well, with a first step of becoming a Patron of KDE e.V. and starting to work with various developers.

Over the coming months we'll all be working together to figure out all the details. I'd be happy to hear the input, thoughts, concerns, etc from people in the KDE community over this. If I don't have the answers, I'll do my best to find them.

This does mean I'll probably be even more busy than usual over the next little while as I'm already dealing with a few other companies along with my coding projects, but it's for a good cause. The growth and maturation of KDE, both the technology as well as the community and people inm it. =)

Luv from Australia.... aseigo.

made it

so i made it australia yesterday. am catching up with my email now, which i'm wickedly behind on atm. i'll be in the gnome miniconf for much of the day today in case you are here and looking for me.

to be honest, i'm a bit disappointed with the narrowness of the scope of the miniconf given that this is a general audience event and it could have been an opportunity to more overtly reach out to the free desktop community which is a lot bigger than just the gnome project. that said, i'm not one to let a name stand in my way, so i'll be here and interacting. in particular, i'm looking forward to the policykit talk, as its one of those technologies we will be using more and more in the kde4 series.

anyways, back to email.

Saturday, January 26, 2008

note quite australia

weather sucks. it played havoc with flights yesterday all over north america and i became a casuality of the mayhem. instead of landing in melbourne in a few hours i'm in a best western in san francisco. =/

worse was being sent from one end of SFO to the other in an attempt to find someone who could help me. after finally finding a warm body who wasn't a useless contractor (i'm not sure what these people's contracts are for, besides pointing down the hall and leading me on wild goose chases) they (United Airlines) claimed there were no seats until monday, maybe. obviously that wasn't acceptable so i encouraged them to get creative. these weren't the creative sort, so they need more persuading than really should've been necessary.

i suggested they expand the search to los angeles. then to other airlines. lo and behold, quantus had seats available from L.A. the next day. so now i have completely new tickets and i only arrive a day late.

the flight down was nice, if impossibly late. after arriving at the airport to find out my flight was cancelled, they booked me on a flight departing in 10 minutes and instructed me to run to see if i could make it. yeah. didn't happen. so they rebooked me yet again, this time on air canada. the AC people were, as they usually are for me, awesome and they bumped me up to first class.

which meant i got a good meal, lovely service, great movies and wonderful scotch on the way down here. it was a nice way to blunt the pain i knew i was flying into.

anyways, hopefully today's flights go better than yesterdays and i actually end up in australia soon. i really don't want to miss monday.

Wednesday, January 23, 2008

cheers for swfdec

dear Ben:

did i ever mention you share a first name with one of my nephews? anyways, thank you very much for your contnued work on swfdec, including getting it to work in such a timely fashion with google video.

and yes, i need to write that kpart someday real soon now.

btw, in a strange overlapping of the pathways: i had a meeting with "the" gnash guy at the kde release event last week.

cheers, and i hope to see you soon =)

plasma today

the plasma mailing list is getting disturbingly busy. there were over 40 messages to the list today and 50 or so yesterday, not counting cc's from bugs.kde.org. it's all high signal-to-noise ratio plasma related stuff, but i'm a bit worried it might become a bit much for some to keep up with.

anyways ... today in plasma:

Andre Magalhaes was busy blitzing through a bunch of configuration dialogs to make them much prettier and generally more usable. some very nice work came out of his efforts. Andre supplied screenshots as well as patches, which is as we say, "very plasma".

Marco Martin attacked popup positioning and harmonized the various spots positioning code was to be found in plasma for things like our tooltips or dialogs (which will be transforming into the Dreaded Extender once we move to qt 4.4).

Sven moved the fuzzy clock into kdereview. Shawn worked some more on the weather engine and started toying with WoC in qt 4.4 for the new weather plasmoid. Lubos made the pager work properly with viewports (ala compiz).

over in my corner, i managed to: clean up the Phase API a bit, fixed some context menu related bugs, reviewed the binary and fuzzy clocks in kdereview, fixed some bugs including a crasher in the taskbar, ported both 15 puzzle and much of the taskbar to Phase (fewer timers, fewer wakeups, more coordination and contro over anims, yaaay!) and found a couple painting optimizations to be made in the taskbar.

but the real story was getting a working draft of a patch to the ScriptEngine class that slices it, dices it and turns into a small class hierarchy that will give us scripting not just for applets, but also for dataengines and runners. the patch is fairly large, needs some cleaning but is on the mailing list for peer review now. Rich Moore has already noted a couple of things that i've improved on now. hopefully i'll have that in as well as completed Package install and removal by friday so i can make my plasma presentation scripting-centric at linux.conf.au next week.

apparently there's also a python ScriptEngine ready to go soon ... neat. i'll keep the pythonistas posted on that one.

and so another day in plasma paradise comes to a close ... peace, love and hugs.

Tuesday, January 22, 2008

KDE4 ... Be Free campaign

With 4.0's release, the technology of KDE4 isn't the only thing we find ourselves at the starting line of. As many of you have probably noticed, a theme for our KDE4 promotion campaigns was also unveiled using the slogan "Be Free". It was a long time arriving at those two small words. The input of many people including Tom Chance, Sebastian Kugler, Martijn Klingens, Wade Olson ... the list is long ... was crucial and there is a lot of thought and planning in behind this.

The core of the idea is that the freedom aspects of our software is a unique attribute of our projects, something our proprietary competitors can't really match without actually giving in and joining us. There are many unique and wonderful things in KDE, but most of them can be traced back to the freedom aspects of the project.

Many of our most interesting technologies, for instance, exist in KDE and not elsewhere because KDE contributors are free to dream things into reality. They don't need to justify it to a management team or find space in the annual R&D budget. They just need to find the time and energy to engage their creativity.

Besides our technical capabilities, many of the best reasons to use KDE software at home, at work or at school come from those same set of freedoms. Whether it is vendor neutrality, data access guarantees, equal opportunity access to services, hardware choice, extensibility, (re-/co-)branding options, total cost flexibility, deployment options ... these are all various descriptions of practical freedoms, which is to say: freedom in action.

In search of the one big idea we could use as an umbrella image brand tag line, we therefore ended up at "Be Free".

Next month we'll be releasing presentation slides and notes that you can use to present various aspects of KDE4 to local user groups, your colleagues, your clients, etc. that will make passing on the Be Free message easy. In fact, I'll be working on these on the airplane down to Australia at the end of the week.

As KDE4 flowers, so will our Be Free campaign. Marketing free software has been done before, but not precisely in this way by the project itself. Usually it's been either more low-key, more geek centric or backed by a corporate interest. The nearest analog to what we're attempting here would be the Mozilla Foundation's work in the past on the Firefox brand. We feel that by initiating the campaign from the project itself that we can maintain our integrity in messaging and address all our audiences equally well, be they enthusiast users, members of the services communities around KDE or our end user target markets. I trust that our communications team members will blog and post to the mailing list more information on the KDE4 strategy as time goes on here.

In my keynote for the 4.0 Release Event, we opened with an inspiration video with the Be Free message. Unfortunately we didn't rehearse this bit on stage and as it turned out where I was standing I could neither see the video very well nor could I hear myself at all (the speaker monitors didn't reach where I was standing in the wings) so I flubbed it a bit. However, the video still stands as a great work. It was done by a fellow in France who is an artist of the state there. I'm going to be looking for funding to see if we can get him to do a few more to create a series. Essentially, we need to cover his expenses which seem to end up in the 4-6000 Euro range. Rather inexpensive given the results. He was quite stoked to do the project, and this first one was on him. Well, him and the French government, I suppose. =) The video has been uploaded to youtube. I also have a hi-def version that I'll try and find a good home (read: bandwidth) for soon. It's not small, but it's good.

You will also find the transcript of the voice over with timing marks in italics below the video:




(Clock appears) 11 years ago an international team of technologists, writers, translators, artists, communicators and coordinators began to (Street scene fades in) assemble. Today we form the core of a global community, thousands strong.

(Subway scene)We have worked together across all boundaries, human and technical, to create software for all manner of people, system and (Breakdancers) devices. In this (Clock) time we have accomplished what few thought possible: a powerful and innovative user experience erected entirely in the open using a process based on participation.(Boat on river)

Some of us are entrepreneurs, others researchers or professionals in our industries. (Clock) But we are all technology enthusiasts, and together we make KDE. (Gears animation) In celebration of the launch of KDE4, I'd like to share with you what it means to be KDE. (KDE workmark appears It all starts ("Be free" slogan appears) with freedom.


The above video and transcript are released under a CC share-alike, attribution license. Enjoy =)

Monday, January 21, 2008

while the cat's away ...

... the plasmoids will play. i come back to my dev systems today and find this bunch of coolness:



the multiple lines of buttons works automatically, of course, with no configuration needed. new lines appear as space becomes over used. it works nicer than what we had in kicker, really, and it's all still animated and what not. yummy goodness. you may also notice the "only show tasks on the current desktop" option is back.

i can't take the credit for it, though. Olivier Goffart did the heavy lifting and others did miscellaneous clean up of bugs and coding style issues after him. i'd like to backport these features to the 4.0 branch, but will have to ask the i18n team for string permissions.

i'm sure it's only a matter of time before we end up with task grouping and what not. huzzah.

the lull between the shows

well, i'm back home now. the p-man and i took the day off to play some risk (he beat me ... again.. gah!), go out for brunch and generally just hang out. now that he's with me full time, it feels even more strange not to be home; i wake up in hotel rooms in the middle of the night with a panicky "where is he?" feeling. so odd.

i unintentionally didn't get much sleep the night before i arrive, which sort of sucked. but i arrived in good spirit after sleeping curled up in an airplane seat; who knew i could curl up and fit completely in the seat!

on friday, i poured pretty much everything i had into the keynote. it was streamed live across the world via the internet and several of the other release events/parties were able to tune it. the presentations are now online at google video, so that's cool. and yes, i know a lot of people don't like my new hair cut, so you don't need to tell me again in this blog ;)

afterwards it was photos with konqi and kate: a couple of great kde people had made full size mascot costumes of the two dragons and paraded about the grounds. it was awesome. second-awesome prize went to the cases of kde label wine that debuted at the sushi and finger foods dinner.

unfortunately after that it was meetings, meetings and more meetings for me. about six of us met with some of the linux kernel hackers, including Andrew Morton, and the exchange was great. we got some answers to questions we had, such as "how can we best avoid trashing the cache when opening large files so kmail doesn't have to reload all 10k emails from disk just because k3b burns an iso?" we also got a lesson in "file a bug, send some emails" which is funny because it's what we tell all of our users. i think it was great to start building some of those communication and personal bridges that are so desperately needed at all levels of the stack to make something that truly embodies the greatness of all the minds involved.

i also had meetings with various commercial interests, though i missed the ones with Sun at menlo park that apparently went swimingly. the LinuxMCE meeting at the end of the night was good, even if it did take my dinner time and leave me back at the airport at nearly 23:00. i still got in a karaoke song after arriving at the hotel, sampling some of Ade's awesome freshly baked cookies (yes, the hotel let us use their kitchen; the Wild Palms *rocked*!) and heading down to the Oasis where i met up with a bunch of the kde folk already far along the road to song and inebriation. i did my best to catch up, and i think i somewhat succeeded, though i was mostly helped by my general state of exhaustion at that point. the hot tub at the end of it all before heading off to the airport for back home was a god send.

in short, the event was awesome. the presentations rocked. it was terrific to see all the people from outside the kde project who came, got it and got excited. live streaming, press, awesome food, a great atmosphere ... i think we just raised expectations for what a release event looks like in the free software world ;) on the really great news side of things, we want to turn this event into a yearly north american even. now, we probably won't do a huge blow out like this one every year, mostly because we don't have a 4.0 every year. but we want to bring kde into the americas a lot more. so summer in europe (akademy), and winter in the americas ..

and because they deserve more than they can ever know: massive, major kudos to all the people in the the kde promo group who sweat, bled and even cried now and again to make this happen. thanks also to google and their teams for making it run unbelievably smoothly.

if you want to see complete coverage of the event, including videos of the talks, visit the following articles on theDot: The First Day of the KDE 4.0 Release Event, The Second Day of the KDE 4.0 Release Event and KDE 4.0 Release Event Keynote Now Online.

for me it was high energy, low sleep and even lower calories event (amazing how meetings mean you never get to really eat properly; though i did get in two decent dinners .. breakfasts and lunches were non-existent). so it's just good to be back home.

i'm off at the end of the week for linux.conf.au, though, so i'm going to spend this week laying somewhat low on the internet so i can concentrate on plasma, plasma, more plasma and spending after school time with p. while i'm still here.

Tuesday, January 15, 2008

"acid" my ...

stupidly busy today trying to get things together for the trip to cali, but i got pointed towards a news story involved the japanese whaling fleet and sea shephard and felt the need to say something.

what really angered me with this article, besides lending any sense of credibility to the whalers in this matter, is that once again cnn reports that the activists threw acid at the boat. it sounds really horrible, right? i mean.. acid! what kind of demented people are these activists?!

well, it's not at all what it sounds like. one of the tactics this particular group of activists employs is tossing containers of a substance called butyric acid at ships. i don't know how effective the tactic is, but butyric acid is what gives parmesan cheese that "dirty foot" odor and vomit its rather unpleasant smell. in concentrated form it gets really nasty smelling, but that's about it. the idea is to make the ship smell so bad that the crew, at least for the moment, turns away from the business of senseless and illegal slaughter. that's not exactly as horrible sounding as "they threw acid at us", so the whalers usually leave out the bit about how the substance used is a harmless, if bad smelling, naturally occuring substance that many of us eat willingly.

it's like accusing someone who puts lemon juice in your water of making you drink acid. it is factually correct, but a rather misleading statement.

the goal, of course, is to deflect attention away from the whaling itself, a legally dubious and morally questionable activity, and onto the people standing up for our planet by attempting to paint them as the actual evildoers.

unfortunately such lies and deception are part and parcel of the game for those who would pillage the oceans and inflict senseless horror shows of pain and suffering upon the creatures of this planet. i expect no better from them, but shame on cnn for aiding their campaign of misinformation with such shoddy journalism. =(

Monday, January 14, 2008

release event prep

i won't be making many commits this week. it's crunch time for the release event in mountainview now. presentations to be slicked up, videos to be downloaded and prepped, final bits of travel plans to be figured out.

but i'm rather happy with the plasma devel of the last couple weeks. it's been pretty much solid bug fixing and feature polishing. which is exactly what one would hope for right after a big release. after the release event, task #1 will be the panel toolbox so we can all get at panel configuration options. between now and then i'll still be on the mailing list and dealing with the bug triage; good news on that front is that we're seeing few reports of new bugs now, so it seems we've tapped out most of the major flaws in the existing features.

i picked up a new laptop last night that i'm hoping to do the presentation and demos on; it's slightly better than the one i've been using for the last couple of years, to say the least. the sales people at the best buy i went to happened to be big kde/linux fans; i was wearing a kde t-shirt and they spotted me from across the computer section and homed in on p. and i =) they hooked me up with a good deal and we talked about kde development. they were young guys just getting into software; one of them starts his comp sci degree this year. i left with a laptop, and they both have my email address and some info about getting involved with kde development. didn't really expect to do any community building / new developer recruiting while i was out, but then you can never predict these things =)

i've got OpenSuse 10.3 on the new machine and i have to say that i'm more than pleased with it. i was afraid i'd miss apt-get ... but zypper rocks. the only annoyance i had in the whole ordeal was the built in ricoh webcam: to get that working i had to build the r5u870 driver from source and manually copy the firmware (ugh!) into /lib/firmware. not a big deal, but will be nice when that stuff gets into the drivers:webcam repo.

update: in the comments section, Carlos pointing me to this rpm search that shows that someone has packaged up this webcam driver! i had (silly me ;) gone looking in the main software and then the webcam repos; the rpm search through community contributions is yet another really great thing that has happened during my hiatus from suseland; really nice to see and something i'm sure to use again in the future... thanks for the tip, Carlos!

everything else seems amazingly slick, and i'm pretty happy with the improvements in yast that have happened since i've been gone. i stopped using suse after several years of loving it due to the sad releases that were 10.0 and 10.1. but after seeing 10.3 i was impressed enough to try it out again; i'm a little tired of the *buntu world these days and unhappy with some of their decisions. didn't help that on my last upgrade of my laptop, it rendered my system unusable due to a screw up in their evms packaging; this was doubly "humorous" as the system wasn't using evms at all. it was just installed and that was enough. this isn't the first time such a catastrophic update has come down those apt-get pipes, so it's just in time for me that OpenSuse starts to look like its back on the rails again. there were even kde4 packages available as an option in the installer =)

on an unrelated topic, on the way into school this morning p. offered me a proof that the first person who lived is no longer alive somewhere on the planet: he noted that people die, and that all people before the people who just died have also died, so the people before that also died, and so on .. so the first person must also have died. i couldn't help but grin ear to ear as he used what is essentially induction as proof of his theory, and that he actually was thinking about things like "where is the first person who lived right now?" .. kids are amazing.

Sunday, January 13, 2008

counting cows

after reading ian's blog on cowstats i grabbed diego's git repo of cowstats and ran it on libplasma. it found four bytes of useless garbage which i got rid of, leaving us with 86 bytes that are in COW sections. virtually all of those are static variables in classes. it seems that using the K_GLOBAL_STATIC method for singletons claims 18 bytes on each usage; given the safety it grants, though, that's well worth the few extra bytes over more trivial and less safe approaches.

i just ran cowstats on libkdecore and libkdeui. libkdecore has 2000 bytes and libkdeui has 6675 of data in COW sections. that's not much at all, really, 8k per process. it turns out that a third of the likdeui count is in kstandardshortcuts itself. i wonder if we can cleverly get rid of that overhead somehow ... *hacks*

bits 'n pieces

if you haven't already seen it, here's a knock-your-socks-off, professionally executed kwin screencast. a few times i paused and thought, "this is the sort of thing i'd expect for a product like MacOS." but nope, it's KDE4. it was done by a community member in Poland and is backed by some wicked beats (i've been told the song is called "Policeman"), so while slick it also stays true to the KDE way of community and cool. btw, searching youtube for "kwin" yields an impressive number of great videos. Lubos, Rivo and friends have done a great job =)

kde 4.0 got quite a bit of attention in the blogosphere, including from our friends over in gnome which was nice to see =) and yes, i agree with jono that blue hair should be a feature requirement for 4.1 ;) while reading the wired blogs coverage of 4.0 it struck me that the "this is the beginning" message has gotten out well.

liquidat managed pulled up this gem of a quote from a blog entry i wrote 3 years ago: "i’d like kicker to look nicer in general. which is why in KDE4 it will receive a new theme engine." ha! from "let's consider a new theme engine" to "let's rewrite the whole damn thing.." to plasma in 3 easy years ;)

and on the 4.0 release day, i happened to luck out and hit rev #760000 with one of my commits. neat =)

Friday, January 11, 2008

4.0.0



Today marks the end of the beginning: 4.0.0 is out in the wild.

The visual guide looks really nice and is something that will continue to grow release by release, I'm sure. The development gears are already moving for 4.0.1 and 4.1 as we start down the now easier path to the heart of KDE4.

For while this the end of the beginning, we have a wide and long road yet to explore. Years of KDE4 releases will follow, each one better than the last. And what a beginning 4.0.0 is .. it looks great, it's usable day to day and so many of the apps already blow me away every time I use them.

KDE team members: you rock our worlds!

Happy 4.0 Day and a big hearty Be Free to everyone, everywhere!

Hugs, love and dreams ... aseigo.

cashews for x.org

if you are running plasma and funky things start happening with the display of things, such as windows getting chunks bitten out of them when a plasma tooltip or drop down appears or the panel stops updated when running a composited window manager, i'm both sorry and hopeful.

i'm sorry because i feel your pain. i'm sorry doubly so because there's not much the plasma team can do about it inside of plasma itself. if you're wondering why i've closed your rendering bug as "invalid" on b.k.o (even with the explanation provided when doing so), here's some more insight into the matter:

while i'm sorry, i'm also hopeful because by sticking with it and continuing to not back down on using facilities that are supposed to work in theory, such as applications using argb surfaces, we're giving the kind of test cases, not to motivation, that the people working on x.org both in the core as well as on drivers need.

until apps start pushing and pulling on these features it'll be really hard for the fixes to be arrived at; which creates a sort of vicious circle, as one of the kde/x.org hybrid hackers pointed out tonight on irc: without apps, things don't get fixed; but if things don't get fixed, people are afraid to write apps using these things. everyone points fingers at everyone else and we're at a stand-off where several years after the initial kdrive experiments that made us drool over the possibility that one day we might have a composited desktop experience and quite a bit of time since compiz debuted things still suck in argb and composite land.

we're going to help break that vicious cycle by taking a deep breath and plunging forward, exposing issues as we go. they aren't easy issues either: some of the window interaction that leads to issues where argb windows take bites out of other windows (argb and "normal" alike, are apparently rather non-trivial to get right.

best of all: i'm confident that this just theory about breaking cycles. nVidia released a new driver at the end of december that fixes numerous rendering issues people were seeing when using their drivers on nVidia hardware. the fix was specifically in reaction to the issues plasma was having that had been there for some time but which were just never exposed clearly before. so that's awesome, and i'm really impressed with nVidia on that one.

but we have a lot more to get fixed, and honestly i'm not the guy to fix these issues. i can only help expose them and provide clear test cases. in the meantime we'll have the occasional rocky moment as we discover together the various leaks in the hull of x.org and its drivers. but it's the only way to get them patched up. i hope you'll understand and support us as we go; in the end we'll eventually get to flawlessland together and everyone will benefit, not just KDE. =)

p.s. if you're wondering what cashews (in the title) have to do with anything, look at the desktop toolbox in the upper right hand corner of your screen. ;) mmmm.. cashews.

measuring time in commits

i was very tempted to do some plasma screencasts and finish off that blog draft about why ~/Desktop-centric desktops are poor ideas and .. but i need to focus on next week's event and finish off my presentation for it.

tomorrow the 11th (it's still the 10th here) is theoretically release day for 4.0. i'll be waiting for announcement to appear in the wee hours of the morning here before raising a glass of fine scotch in a quiet toast in the solitude of my living room to all those fine people who have made this a reality.

i could go on about the many release events that are set to happen in the next two weeks all around the world (San Francisco, Mumbai, Berlin, Hamburg, Toulouse, etc ...) but i'm sure we'll hear lots about those. in fact, several bloggers on planetkde have been talking about this.

alternatively, i could go on about the 4.0 release itself, but i think we'll get plenty of that over the next week.

so i thought i'd do something a bit ... anti-climactic and talk about what we've doing since 4.0 was tagged on the fourth day of january, nearly a week ago now.

those observing from the outside might have thought that we'd all go off, breath heavy sighs of relief and let the feeling seep back into our weary fingers. nope. we're KDE and we're here for one reason: to create, to hack, to draw, to document, to translate, to study, refine and improve. it's a constant effort; yes, it's an effort, but it's constant because we enjoy it and so in some sense ... it is effortless.

so what have we been up to? 2067 commits since the end of the tagging day. there were some commits at the end of tagging day that apply to post-4.0, but i don't have solid numbers there. i also haven't looked into how many were in the 4.0 branch versus the 4.1 branch. but after i mentioned this number twice today, once to a friend asking how things were going (hi Marcel =) and once to Will "Bille" Stephenson as he was working on the reviewer's guide, i figured maybe others might be interested in that number too. 344 commits a day since 4.0.

obviously you can't measure the progress of a project purely in terms of commit numbers; they are a bit too abstract to draw definitive conclusions from. but just like frogs in the swamp, they are a good indicator of the health of things and as you can see there are a lot of frogs chirping in our waters these days.

as someone who perpetually lives in the near future of kde by running svn builds as his primary desktops, i love this. i get to see the desktop and applications blossom right before me. it's so ... cool. 4.0.1 is going to be a rather nice release, 4.1 is going to be killer.

oh, and in that same time we've been: discussing the release schedule for 4.1 and how we will set the pace for 4.x releases in general; writing a lot of communication bits for the 4.0 release; arranging all those parties i mentioned earlier; writing presentations for the release events; arranging meetings with all sorts of interesting industry types at the release events; working on 4.1 plans ... all while smashing bugs, committing the next round of features, chatting on irc and ensuring we all get enough food, sleep and socialization to not become complete kzombies in the process. ;)

... and 4.0 isn't being officially released until tomorrow. that is the part that kills me. less than a week ago and it already seems ages have past. it was 2067 revisions ago, after all. ;)

Friday, January 04, 2008

talking bluntly

Now that 4.0.0 is tagged and out and that bit of worry and concern is behind me for the moment, I wanted to take a moment to talk really bluntly about 4.0. In particular, I'm going to address some of the common memes in fairly random order that i see about kde 3.5 and 4.0. I'm going to speak bluntly (though not rudely =) so prepare yourself ;)

Meme 1: What is the future of 3.5?



This year, as with most years since KDE3 emerged, there have been huge deployments of KDE 3 based software. These deployments will not shift for years to come, no matter what KDE4 is. This is because large institutional deployments (government, corporate, educational, etc) typically have 3-7 year cycles (sometimes even longer) between major changes. Patches and security fixes? Sure. Major revamps? No. This alone ensures that KDE3 will remain supported for years. Why? Because there are users. That is how the open source dev model works: where there are users, there are developers; as one declines so does the other. The developers tend to be a step ahead of the users for software that is progressive, but you'll also find that they have a foot in the here and now too (as well as the past, often).

KDE3 is still open in our svn so that bug fixes, security fixes, etc. can continue to be made. KDE 3.5.x is a rather solid desktop system and really doesn't need a huge amount of work given what it is today; the work to move it to the next level is what we refer to as KDE4, of course. This means that the efforts needed to put into it aren't huge to keep it viable. However, efforts that do go into it are welcome.

While the core KDE team will continue to concentrate our work on KDE4 since that is the long term direction of things, it is fully expected that our partners (which include some KDE core team members as employees/members) will continue supporting and even developing on KDE3 issues. The central project will also be around to lend a helping hand with advice and what not; I did that for a person the week before I left for holidays in December, actually, so it's not wild hypothesis but solid theory.

For those familiar with the open source method, the above probably sounds .. well .. obvious. That's because it is .. for those familiar with the open source method. We will find in this blog entry that many of the concerns people raise come from not acknowledging how Free(dom) software is created via the open source method.

Meme 2: KDE 4.0 isn't what a business would do



I've read exactly this statement with those literal words, but I've also read and heard what are essentially the same things put slightly differently. Well, not to play Captain Obvious too much here, but: KDE is not in the business of proprietary software. There are two parts to that statement:

KDE is not a business: we are not selling a product to the mass market. We are a development team creating the resource which can be sold to the mass market. This is an important distinction since we go through an R&D process that is very open, something that a business would have a hard time doing. We also don't pay volunteers per hour, commit or line of code. There are many things, you see, that we don't do that a business does, and vice versa. The fact that people are getting confused on this point shows how well we've done presenting KDE to the world, but we're not a business and we're not about to start pretending to be one to satisfy chin-waggers at the expense of what works for us.

... and that's a salient point: By asking KDE to behave like a proprietary company these people are asking KDE to abandon what has worked for us all these years. They are asking us to abandon our identity, to cease doing what resulted in the Free software desktop going from non-existent in the mid-90s to parity in just over 10 years. Remembering that we started 15 years (and multi-billions of dollars) behind our competition that's a pretty impressive success story.

At the same time, KDE works with business. We have relationships with companies at many levels, technical and otherwise. In order to provide good guidance to our partners we've been pretty blunt about what 4.0 is. That is because while KDE itself isn't a business, we have a large business ecosystem around us. We are a good business partner, even if we ourselves aren't a business. I know, this is rather paradigm shifting for a lot of people out there, but that's what makes it fun and enjoyable for so many of us.

KDE is not a proprietary software product: this is another obvious statement, but it's one people seem to forget. While there is proprietary software that gets written using KDE technology, KDE itself is not and never will be proprietary.

In the open source method you release early, you release often. By doing so, a progression is presented that people can follow with fairly blunt (often overly pessimistic) guidance along with it, e.g.: "foobar v 0.0.1: will eat your children". In theory you can't do that with proprietary software due to the distribution mechanism and economic repercussions (though many companies do anyways), but with open source it is exactly what one must do to get the production wheels turning.

KDE 4.0.0 is our "will eat your children" release of KDE4, not the next release of KDE 3.5. The fact that many already use it daily for their desktop (including myself) shows that it really won't eat your children, but it is part of that early stage in the release system of KDE4. It's the "0.0" release. The amount of new software in KDE4 is remarkable and we're going the open route with that. Which brings us to the next meme:

Meme 3: Just keep releasing alphas until it's ready



Ah, the "until it's ready" idea. Some would say 3.5 isn't ready; software never really is from a perfectionist's standpoint. It's so complex and full of ever springing promise that one can never reach that point of perfection; usually we are just happy with "better than good enough" and call it a day at that point.

KDE 4.0 isn't yet "better than good enough"; so why don't we just release more betas? When one perpetually releases alphas/betas a few things happen: people don't test it aggressively enough, third party developers don't get involved, core developers continue doing blue sky development rather than focusing on release qualities.

Between the rc's and the tagging of 4.0.0 the number of reports from testing skyrocketed. This is great, and shows that when I assert "people don't test when it's alpha or even beta" I'm absolutely correct. This is not about tricking people either: people seem to forget that the open source method is based on participation not consumption. So testers look for a cue to start testing; that is their form of participation. "alpha" and even "beta" is often not enough of a cue, especially today when so many of our testing users are not nearly as technically skilled with the compiler, debuggers, etc as the typical Free software user was 10 years ago.

The KDE4 libraries are ready for application development, as testified to by the quality KDE4 apps that exist today. However, third party application developers tend to be a conservative lot, and rightly so. They wait for user base migration, they wait for stability in the APIs, etc. They want to know when to start working with the new awesomeness, and for most of them that isn't "alpha" or "beta". The libraries crossed that stage in quality and reliability many months ago and so it is only fair to mark them as such.

Finally, the amazing maturation at all levels of KDE 4.0 software that has happened since the last beta shows just how focusing developers off of blue sky development and onto release quality code is important. The delta speaks for itself.

Meme 4: KDE doesn't do time based releases



When I hear this statement, I know I'm either dealing with someone who has been around the community for less than 2 years or has a long term memory problem. KDE has traditionally done time based, not feature based, releases: the project would set a target date, people would create a list of expected features they can do in that time, features that didn't make the target date would get punted to the next release.

In my time with the project we have done 2 feature based releases: both for major overhauls of the entire system. The first one resulted in the pedigree that would become KDE 3.5. The second one is KDE 4.0.

In that same time period we did 8 time based major releases (2.1, 2.2, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5) and countless time based minor releases (8 for 3.5 alone). In each of these releases a target was set and in the overwhelming majority of these cases that target date was hit.

With 4.0 behind us and marching towards 4.1, we'll be back to these time based releases.

Meme 5: What's the quality of KDE 4.0?



KDE 4.0 rocks in a number of ways. Whether one looks at the new frameworks (solid, phonon, akonadi et al) or the revamped existing ones (kconfig getting multiple back end support, the UI-less kdecore), or examines the apps like okular or kdeedu or the games or dolphin or ksnapshot or konsole (ok, I won't list every app) or many of the new workspace features like composite and widgets or the new artwork or ... you get the picture. There's a lot that is just amazing.

What leaves people wondering about quality is that there is a disparity between our stated end goals and 4.0. This is, to be blunt, due to a lack of experience on their part: most people have never been involved in the creation of something great. We're involved in making something great that will end up spanning a decade of effort and be used for even longer than that. To be able to accomplish such a thing one requires the ability to see beyond today and into the uncertain future. They also need to be able to adjust and shift that vision as things evolve (ergo the shift from tenor to strigi/nepomuk, even though the end result is essentially the same ideas). It is simply not possible, without extreme luck similar to winning the lottery, to create something great without that vision. This is not my idea, this is the result of pretty much every bit of research and practical analysis from the business operations world.

More on the concept of vision



To re-affirm: our stated goals for KDE4 remain and they haven't gone anywhere. In fact, KDE 4.0 is the first proof that this is not only vision or, worse, vapour: we're putting it into action. However, long term vision is not met in a short term effort. Vision of the end is what directs immediate efforts into mid-term and eventually long-term successes. We will get there, and probably beyond what we currently imagine, with the releases that will follow. Each stop along the way will rock harder, and none of them will suck. Importantly: nont of it would be possible without the vision.

So it's ironic that some would see the vision we are committed to as reflecting on us in a bad way, since it's what is enabling us to deliver a great product not just today but in the future. Companies usually keep this vision internal and you never really get to see it from the outside. Sure, the ghosts of the vision get communicated eventually through marketing slogans (if they do their job right, anyways =), executive communications, AGMs, etc. but generally it's internalized.

KDE is an open project, however, so we can't talk about our vision without it getting "out there". There is simply no way for us to "keep our light hidden beneath a basket". So while it's ironic, it's not an unexpected consequence: most of our audience is simply used to being on the outside. They are not used to freedom, they are not used to openness, they are not used to being privy to the internal world of others.

For better or worse, there is no way we can shield them from being able to see our vision. As a project we need to talk about it with each other a lot: openly, loudly, even argumentatively at times. So everyone gets to see it, and some mistake the vision creation and maintenance process for marketing effort or spin; they are unrelated. What's funny is that community news sites will actually pick up the evolution of our vision as news events; it's undeniable that people find it interesting, which is pretty cool.

So to achieve what we want to, I've come to realize that I'll take it on the chin, so to speak, from some people who aren't able (yet?) to internalize what this process is all about. I can't in good conscience suggest we divert in response to this particular set of feedback, though, as it would cripple the project in the long term.

Many companies in Europe and North America have been criticized by the business management community for a couple decades now of not investing enough in mid-term (let alone long-term) projects. They have trouble doing so due because they allow themselves to be led by the nose by the financial and consumer markets copuled with vision-lacking internal assignment of resources. Yes, you're reading that right: listening to the short term consumeristic demand of the populace has been a major component of the march towards much of the stagnation and crappy products and services we get to deal with today. Ignoring the short term is foolish, but not investing in the mid-term is equally so.

I don't expect the populace to suddenly get long-term vision; I do expect serious organizations to stop setting their agendas by the flawed clock of the short term thinking that (inevitably?) dominates large societies of people.

To bring it into high-relief: KDE3 is our current product line for production, and KDE4 is our mid-term production line. For there to be any KDE worthy of succeeding KDE 3.5, we needed a mid-term project. No short-term project would cut it. We're at the beginning of where we can bring KDE4 into "current produce line" condition, which is to say that KDE4 is that transition period from mid-term to short-term project. That's exciting, and one more reason 4.0 rocks.

Prologue Epilogue



To close I'd like to recognize that KDE as a project is not perfect; we are made of fallible humans engaged in an amazingly complex process. All the same, the people involved are pretty amazing and competent. We're on a good path right now as a result of those people. If you find this process hard to understand that, try to adjust your assumptions and deeply internalize the concepts of the open source method since that is our guiding light. In spite of some of you finding it hard to understand this process, we won't betray you by switching to an inferior plan just because it fits your assumptions better. Even those who are most concerned today will thank us further on down the road.

Ok, enough about that. I've said what needs to be said and won't say more about it from here on out. I have a huge backlog of blog topics to cover that are more interesting and positive in nature. I'll do my best to keep them shorter than this one .. but no promises there ;)

meanderings on code base longevity

something i've learned in my time as a developer (yes, thankfully i've learned one or two things in that time ;) is that all code bases will, if developed on long enough and added to enough, will grow crufty. the code will start to creak and show signs of age.

partly this is because while coding you are not only doing but you are also learning, especially if it is something that hasn't been done by the team involved 100 times before. so you look back at things written years ago and think, "i would do that differently today." this is true of most creative endeavours.

partly this because technology moves on: the tools improve, new languages emerge, new development methodologies and strategies appear, new algorithms are arrived at even. these advancements open new doors, some of which would have been nicer earlier on in the development of the code base and some of which get added, or even just bolted on, to the existing code base.

partly this is because bug fixing, optimizing and "organic" feature additions end up muddying the code. these external and valuable improvements often come with a cost on the clarity, beauty and even at times quality of the code base.

so eventually in walk the knights of the great refactoring. this is often a turning point since if the code was written with care, the refactoring can often go deep and produce good results. the code base can keep its features, bug fixes and optimizations; in fact, new ones can be added .. with a resulting code base that is tidy, clean and ready to get messed up again. ;) it's sort of like spring cleaning and getting all the books back on the right shelves, the cups and plates in the right cupboards and all the dust out from the corners.

but if the code base has been neglected or wasn't built with care, sometimes refactoring can be extremely difficult, even impractical. this is especially true when the refactoring is intended to not only perform spring cleaning but also to pave the way for a new set of capabilities. the more the new capabilities diverge from the existing, the more robust and flexible the code base needs to be to withstand the gales of change that it will face.

that is why the early structure of a long lived code base is so important. a lot of recent research on development methodology surrounds quickly creating what are often one-off productions with enough quality (there are economic drivers pushing this research over other sorts). it seems that creating successful long lived code bases is still a bit of a black art, though. at least, judging by a lot of the code i see getting written in industry it is. ;)

i don't have definitive answers at all, but i've learned that i experience less pain years later in a project when the code base has started with a well defined purpose (not just a requirements doc), clear implementation strategies that are maintained fairly strictly, code level consistency and a design that allows room for realistic possibilities without making the current implementation impractical (that "don't over design, but don't under design" balance).

in kde 4.0.0 we are releasing a number of new code bases as well as some old ones that have been spiffied up and even refactored in places.

for the substantial quantities of code we've brought through from kde3 (or even kde2) into kde4, i think it says a lot about the care and thought that went into the initial creation of those classes, libraries and applications. there are many places i've looked at code in kde 4.0.0 that has its roots in kde3 that looks and performs better than the kde3 version. to simply bring along code year after year is one thing; to add to that code and improve the feature set is another; to do so and have the results shinier than what was there .. impressive =)

the new code bases were what really got me to thinking about this in the shower yesterday, though. how will they stand up over time? what care will we apply to them as we take the kde4 journey over the next decade? when will it be likely that refactoring will become a necessity? do they have enough capacity now to absorb future development efforts?

while i considered things like the new stuff in kconfig that will continue to need love, the new pillars of kde libraries, etc ... much of my thoughts were turned towards libplasma and the technologies it also needs to see come along, such as the new dxs and openID stuff.

to be honest, there are some internal complexities in libplasma right now that i'm not overly fond of. most of these are the result of short-term scaffolding we erected whilst waiting for things like qt 4.4 to become available, so that doesn't bother me too much as it will soon get washed away rather nicely.

still, one of the things i will be doing during the post-4.0.0 development times is to go through libplasma with an eye to keeping it maintainable and extensible. it's replacing code that had a really good 7 year run, and i want it to be able to beat that. given the heritage of what it builds on, we have learnt from and what it is superceding ... it needs to be awesome. =)

on a related note, i found some hand written notes in a sketch book from 4 or so years ago that were full of thoughts on kicker and how to improve it. it was interesting because it was easy to see the start of the ideas that would become plasma in so many of the lines on those pages. when writing and sketching those thoughts down i obviously didn't yet see where it was heading, but looking back on them now one can see the path was already laid out just waiting to be discovered and then walked on.

pencils down!

today on irc someone noted that there was something of a "pencils down!" atmosphere in the kde air. the last mad scramble as the clock ticks down was on: 665 commits to svn yesterday (yes, yes, one short ;), and nearly another 70 already today.

of course the tag is now going in so everyone is laying off the commits to trunk/ for the modules that are included with kde 4.0.0. soon svn will open up for 4.0.1 bug fixing. we already have a couple poised for plasma, even though 4.0.0 isn't out; we just couldn't get every possible thing in in time.

the plasma team will come together to discuss the 4.1 plans in detail. in broad brushstrokes we'll be laying down the path for:


  • bringing existing components to feature completeness

  • moving to widgets-on-canvas and webkit for applet rendering

  • improving the "little" things like multi-screen support

  • start bringing more of the "next gen" components to the forefront; we spent so much time getting frameworks and fundamentals together and then the "traditional desktop components" in place that the vast bulk of these things got pushed to 4.1



as usual, we'll keep everyone posted.

for now, i'm actually fairly pleased with what we've put together for 4.0.0 and that the release is imminent. it's a huge accomplishment for everyone involved. pondering this in the shower yesterday, i started thinking about code base longevity. but that's for the next entry ...

Thursday, January 03, 2008

4.0 knocks, and i'm tapping the mat

picked up p. from the airport, he was ill and throwing up from a flu, had to go through a bunch of patches and what not and then had an interview on the linux link tech show tonight. in all, i'm feeling more than a little overwhelmed. kde 4.0 gets tagged tomorrow ... i'm feeling more than a little tagged myself.

tomorrow i start writing the final version of my presentation for the release event.

and then it's off to 4.1 which will be a much more enjoyable release for me =)