{November 19, 2010}   meeeeeeeego!

whee :) the meego conference was fucking awesome. so awesome I was avoiding starting to blog about it ’cause I’m not sure so much awesome can fit into one post ;)

also, I have other things to blog about, like the other activity stuff I got in just before the freeze. I’ve got a blog backlog, which generally leads to having a bigger blog backlog. :P

So, let’s start with the conference. OMGWTFBBQ. I arrived saturday – also the day I finally started to speak full sentences of german. how ironic… anyways, I found the hostel ok, and then more people did, and we got over to the venue just at the end of the bridge-building contest. :) KDE wins at bridge-building: leinir’s group had the bridge that was unbreakable, even with all their weights – so I tried to hang from it, and then it finally broke. :)

That night we found an amazingly good indian restaurant (seriously worth the 30 euros I spent) and.. hmm. I can’t remember anything after that, but I think I just went back to the hostel to get a good night’s sleep. And failed horribly at that, thanks to some girls so drunk that even with earplugs and a blindfold they kept me awake (and no, not in a good way). :P Luckily I only had to put up with them for that one night, though. :)

Sunday was the pre-conference workshops… several of us stayed out at the front of the hotel for the morning, enjoying the sunshine, but eventually ervin herded us into the meego room to help with his qt workshop. :) That evening, Dawn taught us to play a game called Werewolf – it’s about the same as Mafia, and was a continuing obsession throughout the conference. ;) I think it was monday night that I left the game around 2am, and people were still playing until around 3…

Monday was the first day of the official conference. We found out that there we’d be getting lenovos – but didn’t actually get them until wednesday. Unfortunate for those hoping to demo things on them, but probably good for getting people to actually attend the sessions. ;) Speaking of which, there was a great community one by dave neary. I often had trouble deciding which session to go to :) plus I spent a lot of time wandering around getting to know people – or hooking them up with hardware ;)

Tuesday was more of the same, until the social evening – we went to the guinness storehouse, where they had lots of drinks and snacks and people telling us where we weren’t allowed to go (luckily I was one of the few to get up to the top viewing area). My UK-ish accent started returning around then, I think. I danced, learnt how to pour guinness, danced more, drank a lot, and ended up bar-hopping and speaking chinese with Ronan. :) I made it back to my hostel eventually, but I’m not sure when. ;)

Wednesday.. well, that was tuesday’s revenge ;) It was the unconference day, and I missed one session I probably should’ve been in and there was a few minutes of confused chaos, but it all got sorted out and I got my lenovo and in the afternoon I led (ish) a session on plasma and meego, which turned into a “requirements for getting kdelibs-mobile into core” discussion. That was quite… educational. There’s a huuuge culture gap between kde and intel (it was an intel guy in the session, nobody from nokia could make it unfortunately) and lots of awkwardness, but I think it turned out okay. :) Getting to actually talk about things in person helps dispell a lot of the misconceptions. This conference was wonderful in that regard – I arrived nervous and uncertain, worried that we’d be unwelcome outsiders, but it was nothing like that – everyone was there for meego, and it didn’t seem to matter where they were from kde/gnome/etc or intel/nokia/etc or anything, it was all good. :) We did find out that a lot of them have no idea what kde is, though – but now at least some of them have heard about kde-mobile and so on, so again misconceptions are reduced. :)

I didn’t want to leave the conference wednesday evening. I made friends there, and it was fun, and I hope I can go to the next one. That said.. god it was good to get home and be in my own bed again. :)

Now it’s friday, and I’m at the kde mobile sprint in berlin, and marco just showed us plasma running on meego :D and we’re running out the door for dinner now. :) later I’ll blog about how to get kde packages on your own meego. ..and all that other stuff. :)

:) There’s been lots of fun plasma stuff going on as feature freeze approaches.

Ivan’s been doing lots of stuff behind the scenes, making big changes to the activitymanager service. He’s also been polishing up the UI – you’ll notice that it highlights the current activity now (although the effect’s a bit subtle in whatever theme I’m using), various little bugs have been cleaned out, and it’s possible to edit the name and icon right there. :)

Then there’s the template thing Ivan mentioned – I hardly had to write any code for this really. The options are organized so that new users won’t be as overwhelmed (it was.. educational.. watching people try the UI at the opensuse conference) and anyone can write templates – little javascript snippets that set up widgets for an activity. :)

There’s one unfortunate thing here – the guy who was planning to actually create a set of templates for 4.6 is busy, and the freeze is thursday, and all we have right now is one ugly demo template I threw together in a few minutes. So if you want to create some – well, come pester me to document the process. ;) Hopefully I’ll have time to add a GHNS button to the UI too, and then more templates can be downloaded – but it’d be nice to have more than one shipped with 4.6. :)

That’s not all that’s been going on, though. :) Thanks to ivan’s changes under the hood, we can finally hook up my activity-session stuff to an actual UI! :D Clicking the little stop button in plasma now properly closes it, windows and all. :)
There’s more to do, like queuing things under the hood so that you don’t have to wait for one activity to finish shutting down before clicking hte stop button on the next; that’ll give us something to do after freeze. ;) I’m sure bugs will turn up too, now that I’m not the only person using the session thing. In fact, this will also expose bugs in most applications’ session handling. I already know that many qt apps (assistant, anki, etc) are not very good at session-restore; I’m still hoping there are a few things I can do on the kwin/ksmserver side, but a lot of this is up to the application itself.

One more thing: I created a dataengine for activities. This means that if you think you can do better than the current activity management UI, you can easily give it a try. :) There’s even examples to look at – I’ve ported the activitybar plasmoid and the switchactivity mouse plugin to use it. I haven’t added all the new API yet (you can add/remove activities but not open/close them) but I’ll get that done today or tomorrow. :)

One thing I’d love to see is a popupapplet for quickly switching activities. The activitybar takes too much space for my liking – I just want a cute little icon showing my current activity, and a popup that lets me switch to the others. then I could put it right into my regular panel. :) I’d write the applet myself if I only had the time…

btw, sorry for the lack of screenshots – my ksnapshot is crashing instantly this week. the joys of running trunk, eh? ;)
Maybe I’ll do a screencast instead, this weekend. :)

{October 27, 2010}   opensuse plasmoid workshop

okay, I promised I’d blog about this… me and Will did a plasmoid workshop on saturday. :)
There are no slides, because the whole thing was an interactive sort of tutorial, using this suse live image. In order to show off the qml bindings, we needed the latest kde stuff from trunk. The live-image gives us that, and a guaranteed working development environment in general. :) It also has the cool feature that it will write back to the usb stick, so you can shut it down without losing your work.

There were two example projects we worked through, one for javascript and one for qml. They’re both my old victorycalendar example, but with a bit of polish. :) The qml one doesn’t go all the way yet – just as far as I’ve figured out so far. :) We have lots more qml examples, though – iirc they’re hiding in the mobile shell in playground. And of course there are more javascript examples too. :)

To get my javascript example, run this command:
git clone git://
and, of course, change the js to qml to get the qml one. :)

I used git repos for my examples so that I could easily break them up into simple steps, and have everyone go through them in order. The idea is that you git checkout step01, and then each of the steps in turn (this was broken during the workshop but is fixed now). The git log has comments on each step, although not as much as in my blog. :) Also, if you make changes, you can either commit them or git stash when you want to jump to the next step. Later, I may add some side-branches with other fun features… I might also rewrite history, though, if I find a better way of doing something. If git refuses to pull someday, that’ll be why. :)

To test the plasmoids all you have to do is run plasmoidviewer in the folder containing metadata.desktop (or run it with the path to that folder). If you want to install it so that you can try it in plasma-desktop or other shells, use plasmapkg (there’s documentation, plasmapkg –help). To make it into a .plasmoid package that you can send to others, just zip it up. :)

Oh, and although most of the resources you’ll want are mentioned in the git log, I missed a couple:
The Plasmoid Package Specification
The Plasma JavaScript API

Have fun! :)

{October 25, 2010}   opensuse conference

so… hmm. I have lots of things to say, but the words just aren’t coming.
this happens sometimes.

basicallly, the opensuse conference was awesome. I think their community has a lot in common with kde – although it’s younger, and still finding its feet. :)

{October 18, 2010}   more conferences

so devdays is over – but already I’m preparing to travel again.

Next week – oh wait, it’s already next week – Wednesday is the opensuse conference, where me and wstephenson will be doing a workshop on plasmoids. I’m gonna show off notmart’s shiny new qml bindings there, so you don’t want to miss that. :)

In November is the meego conference, in dublin. That should be quite interesting, after seeing all the activity at devdays. And, right after the conference ends, a group of us are heading to berlin (oh wait I live there ;) for a kde-mobile sprint. :) It’ll be nice to have the comfort of my own bed at a kde sprint.

Thankfully that’s all I have planned for this year. :) I’m going to be quite busy enough as it is. :P

{October 16, 2010}   qt devdays 2010

whew! normally I blog during a conference, but DevDays was just too exhausting. :) (well, that and there wasn’t much net access..)

So, along with the Ovi sprint, Nokia was nice enough to give us free passes to dev days. :) The first day was the training. I’d picked the QML option (aka Qt Quick, or QDeclarative, or various other names…), and so had about half the attendees. I’m glad I did; it was a really good way to get started with qml, and I’ll need it for plasma – now even more than I had expected. ;)

That evening there were drinks and snacks and socializing – unfortunately we had to leave mid-party for the long trek back to the hostel. :/ The taxi in the morning had not been cheap, so we were taking transit. After some wandering around looking for buses, we ended up walking to the train station, and from there it took around an hour to reach the hostel. ick. And we had to do the same long journey in the morning.

Luckily, Aron and Knut were nice enough to sponsor taxis for us the second night, so we could properly enjoy the troll dinner. :) Despite not winning an n8, I had a lot of fun, and a lot of interesting conversations there. Oh yes, and before dinner there were talks too. ;) Actually, I didn’t get to see many talks that day, because I had both of my qt exams to do – the c++ and the ‘advanced UI’ ones. We won’t know the results for a while, but I did get a t-shirt for having passed the essentials exam last year. I just wish they had girls’ sizes, because that t-shirt (like every single other t-shirt I got at devdays) is more likely to be used as a nightgown. :P

On day 3, I got to see more of the talks. I can’t remember what was when, but there was plenty of interesting stuff… unfortunately I was so tired I dozed off in one. oops. :) And there were booths to visit too – wow, qt and meego have quite the ecosystem already – and networking networking networking. ;) By the time the conference was over we were all exhausted… we tried to meet up at a restaurant, but after several rounds of confusion, half of us ended up at one and half of us ended up somewhere else (and, btw, the restaurant we were at on saturday is *not* called paulaner. the real name was in fine print above that, but I’ve forgotten it). Plans to go out and party were abandoned, as we all just wanted to go to bed. :)

In the end, the main impression devdays gave me was its sheer *size*. Apparently there were almost a thousand people registered. I’m not sure how many were around at any one time, but tuesday’s dinner was *huge*. Think Hogwarts dining hall. ;) A lot of people are interested in qt, and meego, and qml – and they should be. There’s some pretty cool stuff on the horizon…

{October 10, 2010}   ovi sprint!

It’s day 2 of the ovi sprint – and I haven’t blogged yet! oops :)
The sprint is going well. I arrived friday afternoon, and only a few other people were at the office; mostly we hacked on our own things, and discussed plans for the weekend. We found a great restaurant that night called Paulaner, and then stumbled back to the hostel to sleeeeeep. ;) Despite not having jetlag (just a 6 hour train ride for me), I was just as exhausted as the others. :)

Saturday we were all assembled at the office. much discussion was had about ovi myths (it’s not just an app store!), what we needed and hoped to do at the sprint, what we needed from ovi and what we could do for them… food was good, research was done, lists were written… and luckily I was *not* one of the ones who got stuck waiting ages for a 2am train. :P

now it’s sunday morning. We’re back at the office, and added to some lists – but the internet’s down, so I can’t really research anything. At least it gives me time to blog ;)

The funny thing about this sprint is, it’s not a code sprint. we’re not here to hack; we’re here to discuss. We’re figuring out how ovi and kde can benefit from working together – and so far it’s going very well :) we have quite a long list of things KDE can do to help ovi, and only three things they need to do to enable us to help them. :) I just realised, though, that the benefits to kde aren’t in our lists, since our focus is on convincing Ovi – kde people already understand the benefits of collaboration. :)

Now we’re going to break out into groups, and add details to our list items :) we need to properly explain how things are useful, why we need them, what sort of API requirements we have, etc…

As for me… I’ve been bouncing around trying to cat-herd and looking into things that might benefit plasma and anything else that looks useful to kde in general – and learning lots. :) I’ve checked out the QtMobility API (sadly it didn’t contain what we were hoping for) and bought myself an ovi publisher account (only 1 euro now, but DO read the fine print, they expect you to provide customer support n’stuff) and got plasma-mobile compiled (with –no-desktop you can run it in a window on your laptop), and I’m asking lots and lots of questions… :)

It seems like most of the benefits to plasma are indirect. if ovi can use the OCS API, it could be added to all ghns clients immediately. To get plasmoids *into* that store, we first need the kdemobile dependencies packaged. Any integration with other services, like pim, would go through either akonadi (if available) or whatever api the pim guys use for their access. :)

So, it seems my goal here is to ensure everyone else achieves *their* goals. :) …which is probably going to mean writing. oy. ;)

But now the internet is back! so I can go bother people online and ask *them* lots of questions ;)

{October 4, 2010}   Activities fun [with screencast]

So… I wanted to spend this weekend offline. I did. I even logged out of irc.

But somehow I found myself hacking until 2 or 3am sunday night, instead. :)
I think it was worth it. ;)

The last few weekends I’ve been hacking on activity-related things, here and there. Fixing bugs, implementing things behind the scenes – last night I finally reached a point where the pieces began to come together. Today, I finally had something I could demo.

So without further ado, the demo:

(if the above doesn’t work, watch it on

I mentioned in there that it’s not done; we still need the activitymanager kded stuff to co-ordinate it (which ivan is working on :) and then plasma’s activity UI needs to use that API so that I can stop sending dbus commands. ;) It also needs a lot of code to handle edge cases, like properly restoring apps that are on >1 activity. The good news is, restoring the right activity associations for each window turns out to be way easier than expected. yay! :)

Oh, and there’s the taskbar integration to be done, too, and a million other little things… :) but we still have a month before feature freeze. 4.6 is gonna be awesome. :)

And now for something completely different: Berlin! it continues to be awesome too. :) I’ve got a book of Enid Blyton’s children’s stories in german, and I’ve been reading them with pete’s help; it’s a lot more fun to read ’cause the sentences are short and simple and the stories remind me of my childhood. :) I’ve also discovered that Dominion is a pretty cool game, and I can now speak german when I’m drunk. ;)

Living in another country has some funny effects. When we went to the mall today, I suddenly felt calm and happy to be there. I guess the atmosphere of blatant consumerism reminded me of Vancouver. ;) It’s weird how little things that aren’t really all that nice become happy reminders of your home country…

I still haven’t found HP sauce, though. :P Or black beans; they have every other kind of bean, but not my favourite! *sigh* On the other hand, I had no problems getting ripe avocados, and I’m still drooling over all the wonderful yoghurty things that I couldn’t get in Canada. :) And the cheese, and the cheap pizza, and the cheap beer, and, and…

{September 12, 2010}   why aren’t you using rsibreak?

Summer is ending here, and the weather has driven me back indoors. :( This is good news for KDE, though, as I’ve been hacking instead of going to the beach.

Last weekend, after spending some time upgrading mum’s website, I decided it was time to get rid of some of the “papercuts” that have been irritating me. I have a long list of small things in KDE that get on my nerves, and I’m hoping to work my way through them over the next few months. :)

First on the list was Rsibreak. It… didn’t actually work. There was just a small bug that kept the timers from working with qt > 4.4, and it must not have many users, because I was the first to report it. I guess that means you’re all doomed to get RSI. :P Anyways, it’s happily working again in trunk. :) I’ve spotted another bug though, and it still looks kinda kde3-ish, so there’s plenty of low-hanging fruit here for anyone who wants to get involved. :)

I also got nepomuk working on my system (turned out I had a broken config). :) Yay! …but then Aaron went and removed the old activity config stuff, so I guess if I want to set icons on my activities I need to implement the new UI. ;) Or wait for him to do it. ;)

During the week, when I wasn’t dealing with all the little chores of moving, I was learning about xpath for work (odfkit, that is). It’s quite the powerful little thing… although for some reason, the “axes” stuff like descendant:: doesn’t work in webkit. o.0 oh well. There turned out to be another easy way of doing that… so now the xml of a flat odf document can be properly converted into the format needed for a zipped odf document. still working on the binary parts though. :)

This weekend – well, this friday actually, because I’ve decided friday is kde day – I started on something I’ve been desperate for all summer: session support for activities. Right now I have it hardcoded to close and restore all okular windows (the first simple app that came to mind) but soon I should have the basics working for activities! :) I’ll blog (and maybe even screencast) about that when I’ve made some more progress.

{August 24, 2010}   still alive

wow, it’s been over a month since I blogged. Time flies.

I’m still working away on OdfKit; unfortunately it doesn’t lend itself well to screenshots. I could show you the pretty green and red of tests passing and failing, I suppose. ;)

I can’t bring myself to work all the time in this beautiful weather, though. At the beginning of august I went to Shambhala, a big music festival out in the woods. :) A week of camping, music, and hugs – it was amazing. The stars… the river… the sets… the food… the people… the costumes… the land… it was beautiful, spiritual, simply amazing. :)

Surprisingly, I also left shambhala with more money than I went in with. :) On the second (or so) day there, I found a guy doing body painting by donation. I wanted my face painted, but didn’t have much cash on me, so I gave him a massage instead – and then had the idea of doing massages by donation too :) He let me use his paints to make a sign, and pretty soon I had my own line, and people were donating an average of $20 for a 15-minute massage. :) For the rest of the festival I offered massages when I was in the mood (or, once, when I was $10 short of the price of a really pretty dress ;) and earned enough money to buy all the pretty clothes and good food I wanted. :) I also met lots of people that way, and I enjoy giving massages, so it was fun *and* profitable. :) Maybe I’ll give up programming and become a masseuse. ;)

Since getting back from shambhala, I’ve been trying to spend a bit more time outside and take advantage of the sunshine while it lasts. a week ago I went to a couple of festivals; yesterday I went to the beach for the first time this summer. :)

I’ve also been running around dealing with some extra paperwork; I now have a visa to go do whatever I like in germany, and I’ll be spending the next semester in Berlin – and hopefully visiting several other places in Europe. :) I may be speaking at the openSUSE conference (they haven’t told us yet), and I’ll try and make it to the MeeGo conference too (oh, they extended their deadline, maybe I ought to submit something?). It’s gonna be an awesome semester. :)

et cetera