Blip.tv has decided to narrow its focus, and isn’t interested in hosting my screencasts any more. I’ve moved the two 4.6 screencasts to youtube: Activities in KDE Plasma Desktop 4.6 and Activities in action. If you’d like any of the older ones (Activity Sessions, Activities in KDE SC 4.5beta1, Plasma Activities in KDE SC 4.4) to go up on youtube too, just ask. :)
A big thanks to Basyskom for the last-minute sponsorship – I’m really glad I made it to the desktop summit. It was awesome. :)
The talks, the bofs, the parties – pretty much everything went well. Even the weather did give us a day or two of sun before going back to the scheduled rain and wind. ;) I was happy to visit Berlin again too – I only had time to get to one of my favourite restaurants, but I came back with lots of delicious things in my suitcase.
There were lots of good talks – which was not entirely a good thing, because I had to make some hard choices at times. I ended up in more community than tech talks – good stuff about how to do outreach to get more contributors and more diversity of contributors (which means not just more women, but more cultural diversity too). I learnt more about wayland and accessibility too (yay qt-at-spi!), and discovered that “session” is an ambiguous word – there are all sorts of lowlevel sessiony things that have nothing to do with documents or windows or tabs, and systemd is trying to clean them up. Some of the keynotes were fascinating – my favourites were the design talk and the toaster talk. :) Oh, and did you know you can use nepomuk to search within movies? OMGWTFBBQ.
Oh yeah, and I did a lightning talk too, explaining why we need to replace XSMP and advertising the bof session. When I asked how many people hated XSMP, there were far more hands than I’d expected. I didn’t know so many people knew what it was!
At sunday’s party I was surprised to discover how many geeks love karaoke. There was a great crowd, and about a one-hour wait for songs! Despite that, there was also dancing in the other room. :) I hear there was dancing tuesday night too – sadly I had a stomach ache that night. Later in the week I dragged a few people out for a smaller karaoke session with some local friends. I love having a private karaoke room; there’s no strangers taking up mic time, you get to sing lots, and it’s much easier to be completely silly about it. :)
The bof sessions started on wednesday – and I started it off with wonderful, wonderful sleep. After getting caught up on that, my stomach was a lot less mad at me, and I spent the afternoon in the intel appup session. Yay, tablet! :) My new exopc is sitting on my desk waiting for me to start hacking on it.
Thursday afternoon was my sessions bof. Unfortunately some people got lost on the way back from the daytrip and didn’t make it, but it turned out pretty well anyways. I knew there was far too much material to cover in one bof session, even a two-hour session, so I tried to keep the conversation on core matters… after a while, we discovered that there really is a lot of overlap between zeitgeist and session management – the apps that are starting to use it are sending it a lot of the info we need – and zeitgeist is gaining traction, so we may team up and just make some zeitgeist extensions to collect the session info. This would make it easier on app devs – instead of giving similar information to two systems, they’d just report it once and be done. :) When I get some free time I’ll go over the meeting notes properly and start looking into this more.
There were lots of other fun things going on – football, Jos’ cooking, amusing attempts to get rid of the excess summit stickers – but I don’t have much time to write, because I’m at LinuxCon right now. :) It’s nice when a conference is only 20 minutes from my apartment. Maybe I’ll blog about it next week – it’s been pretty good so far. :)
Update: The sysadmins have fixed the bug, and are keeping an eye on it now, so it’s safe to use that address again. :)
I’ve discovered that my kde.org email account has been randomly bouncing some email, for at least the last year. Meep. I’m going to go file a bugreport now, but in the meantime, if emailing me has failed, try again. Or use my gmail address (chanika).
Oh, and the desktop summit was awesome, I’ll write about it sooner or later :)
Update: I’ve scheduled the BoF session for thursday, 14:00 in room 1.404/1. I’ll pop into the systemd bof on wednesday, too.
Update 2: It turns out systemd is solving an entirely different problem. :) there’s no overlap between it and sessions-as-in-restoring-windows.
I’ve been trying to write this blog post for months, and always hitting writers’ block or other distractions. So, screw it – I’m just going to start writing and see what comes out. :)
What this is about, is sessions, and XSMP, and wayland. Activities use XSMP, the X Session Management Protocol, to save and restore groups of windows. Before that, it was only used for the login session. It’s actually a better protocol than people give it credit for, and it served well for a few decades – but times have changed. If we want to move forward and do awesome things like sharing sessions between devices, we need something new. Even Activities as they are now push the limits of XSMP – there are a few ugly little hacks hiding in there that I’d prefer not to have. :)
Now, the key here is, if we’re going to replace an ancient-but-reliable technology with something new, we want the new one to be not just better but a lot better. Something worth switching to. Small issues like XSMP’s lack of autosave will be easy to correct; the big one is that it’s process-based. Session keys are handed out per-process, and when things get restored, they’re done by calling that particular binary with the session key as an argument. This is the source of two major pains; the first is that when a process has multiple windows (like konsole), you can’t properly put those windows in different sessions – so Activities have to do ugly things to hide this. The second, and larger problem, is that it’s ridiculously non-portable and opaque. What if the program’s binary gets moved elsewhere? what if the user switches to a competing app? And of course, their phone is not going to have the same programs installed as their laptop! Even if they have a meego phone and use Calligra on all their devices, the binary for the phone will be named differently. :P
So, what do we do? We make it resource-based! :) Store data in a standard place and standard format, so that the session manager, instead of seeing “this session had /usr/bin/firefox, /usr/bin/konsole and /usr/bin/okular” sees “this session has web pages X Y and Z, which this device last used firefox to open, with X and Y in the same window; two terminals, which this device last used konsole for; and foo.pdf on page 3, which this device last used okular for”. Then if okular isn’t available it can ask the system for a program that handles pdf, and when the user sends the session to their phone, it doesn’t matter that there’s a different pdf reader, or even that the phone browser doesn’t support tabs. Not only that, but if there were 20 urls open instead of three, the phone could go “whoa, that’s a bit much; I’ll just open the first three and display links to the rest somewhere.” And I could go “hmm, when the heck did I create an activity called ‘shambles’? wtf is in it?” and get an answer without actually having to load it. ;)
Another side of this is, well, the small stuff does add up. I just heard that OSX gained some decent session support; they’ve taken lessons from the iPhone and applied them to the desktop, making a system where it doesn’t matter if an app crashes – the OS may even kill it whenever it pleases – the session support is so good it’ll come back just as it was. I’d love to see that sort of solid session support in linux; KDE apps with XSMP are pretty good right now, but they could be better (and an autosaving protocol would go a long way towards fixing that).
Now, replacing XSMP isn’t an entirely new idea. Gnome people have been sick of XSMP for quite a while, although I don’t think anyone stepped forward with an alternative (and for their purposes, it does work, anyways). When I talked to the Nepomuk guys many months ago, about cross-device sessions, they had already thought of it – but decided the political side of it was too hard. They might still be right – we’ll see. But it’s worth a try. :)
So, what is the hard part, you ask? It’s the reason I stuck with XSMP for activities: a new protocol means persuading apps to support said protocol. XSMP’s support, while patchy in places, is at least decently widespread and un-controversial. A new protocol… well, I’m fairly sure KDE would embrace it, but I want it to be a part of gtk apps too, and pure qt apps, and meego apps, and even the weird proprietary fringe ones (like maple) someday. That is a challenge. :)
So how do we meet this challenge? First, we explain the benefits it brings – I hope I’ve done that well enough above. Second, we offer app developers a well-designed, easy-to-use API that’s had some feedback from actual app developers; just the other day I saw someone on IRC complaining about XSMP being confusing. :) Third, once we’ve got enough support to know this is worth trying, we show them a solid implementation that works (without any fatal bugs). Seeing is believing, right? Nobody wants to spend precious time writing code for a system before it exists, so we get the minimal feature set done, port a couple of apps, and show it off. Fourth – the secret weapon. ;) Wayland is gaining popularity, and when apps start porting to it, they may as well port to this too, right? Wayland doesn’t have any session protocol of its own, so this could be it. :)
So, who’s with me? :) The desktop summit is only a few days away, and surprisingly I will make it (yay!) so I’d love to have a conversation about this there. It’s the perfect place, after all, for something that aims to be cross-device, cross-desktop and all.
TL;DR: a resource-based session protocol would let us do really awesome things, so it’s worth the effort to replace XSMP
Now, I’m going to go into technical details below the cut (I have enough material to write a paper on this but for that damn writer’s block…)
Read the rest of this entry »
Well, I haven’t blogged in quite a while, have I? I almost blogged about fosdem, but I was too busy having fun there. ;)
I, well, I’m actually on hiatus at the moment. That was (and is) an incredibly hard decision, but… well, it wasn’t fun any more, it felt more like a job. And when someone’s asshat regressions cause you physical pain, it’s time to take a step back. I’m sure Ivan and Marco will fix up whatever bugs are found, and add new awesome activities stuff too. :) I miss lots of KDE people (hugs!!!) but there’s some stuff I need to do for myself right now.
Anyways, that’s not what I’m here to talk about. There’s a little project I did in january that I never got around to blogging about. It’s part personal tool, part experimental sandbox. I suck at names, so I called it ContextJournal. :)
What is this? it’s a neat little app that automates away the tedium of my personal journal system. Running KDE trunk, and having a strange knack for hitting freaky PIM bugs, I end up with my most important things stored in plain text. It’s grown into quite a system, one file per day with ascii todolists and stuff – add to that the need to do timetracking on one project, and, well, a bit of automation does wonders. :)
Contextjournal allows me to keep the plaintext system – if I trash my kde or X I can still go back to using vim – but it adds improved organization, and context awareness (this is where the cool experimental bit comes in). It timestamps every line, and keeps a separate journal for each activity – naturally it switches when I switch activities. :) Once the journal part was stable I added the todolist on the right, which is controlled by irc-like commands. The commands are logged too, so finding out when I finished something is just a matter of grepping. :) Oh, and it starts on all activities by default, since it’s designed to be a systemwide thing.
Obviously the program isn’t much use as a journal to anybody but me. A normal person would probably want it to link into akonadi and/or nepomuk, and share the data with other apps, so that the todolist shows up in korganizer’s calendar n’stuff. :) However, it is useful as example code: it shows how to make an app activity-aware. It’s actually a pure-qt app at the moment too; I wanted to show that you don’t need any kde dependencies to write activity-aware code (*cough*firefox*cough*). I also wanted to have a testbed for some strange XSMP problems that only qt – not kde – has. I’m still not sure whether the bugs lie in Qt or in kde’s xsmp handling or in kwin, but my bet is on QApplication. :/
I have plans to add other shiny things, like an overview screen (or just “what now?” suggestions from the todolists) and grouped todos, but something distracted me and I haven’t gotten around to it yet. Maybe when I don’t have any essays to write. :P
Anyways, the ContextJournal source is here; if you’re thinking about adding activity support to something, check it out. And keep in mind that by now, the API for working with activities is probably in kdelibs; it’s a lot more convenient than having to make all those dbus calls yourself. :)
It’s screencast time again! :)
For this one, I focused on how I, personally, use activities. I got the impression that showing real-world usage might make it a bit clearer what I’m trying to do here. :)
You can probably hear me getting a bit tired at the end… I had to reboot twice and fix my damn volume control before finally getting that one, so yes, I *am* tired. :P
oh, and here’s the activity manager plasmoid I mentioned. :)
I don’t normally comment on other people’s software… but… a little while ago, opensuse was wondering whether KDE apps would work with these Gnome Shell requirements. Last time I checked, their “Activities” sounded like virtual desktops, but now they’ve returned to an application-based shell. This in sharp contrast to Plasma Desktop’s increasingly Activity-oriented workspace.
So what does that mean? Well, in gnome-shell, windows are organized by application – by the binary that spawns them. All your firefox windows are grouped together, all your okular windows grouped together, etc. You can still group windows on virtual desktops, but alt-tab is application-based, so as soon as you’ve got more windows than screen space you may as well have everything on one desktop.
In plasma-desktop, windows are organized by activity. This requires a bit of work on the user’s behalf (creating and switching between activities), but I have all windows for my odfkit work grouped together, all school windows grouped together, etc.
Obviously I think my way is better :) but I do have reasons for this, and I think it’s worth sharing them. I think that grouping by application is.. well, application-centric, application-developer-centric. It puts the branded applications – Firefox, Okular, etc. – front and center. This is easy to implement, and great for app devs’ egos, but I don’t think it serves the user very well. Why should they care that pdfs are opened in Okular, but jpegs are in Gwenview? (especially when some pdfs are just glorified images…)
Grouping by activity, in the KDE sense, is fundamentally user-centric. It puts the activity the user is doing – researching a paper, working on a project, reading comics, etc – first. The applications used to accomplish this activity are incidental, mere implementation details. The user might not even know their names, referring to them as “the web browser” or “the news reader”.
I’m a little doubtful about the gnome-shell assumption that applications shouldn’t be run more than once, too – but then, I’ve stopped using regular app launchers at all. These days I type stuff into krunner, usually a url… or dolphin, if I want to find a file… or I click links. I’ve set konqueror to open links in new windows, because activities make tabs almost obsolete. :) My regular apps stay open all the time – well, so long as that activity is open. :) Organizing my windows this way is *so* much nicer, I think I’d already go nuts if I had to give up using activities…
Anyways, since gnome’s choices seemed like big mistakes to me, I decided it would be polite to actually talk to them instead of just ranting in a blog. ;) I visited their irc channel for a few days, and although I don’t think I found any of the core gnome-shell people, I did find some people who were able to explain their motivation.
Apparently, they wanted to solve the problem of applications being started more than once when they’re not designed to. They do have their own gobject equivalent to KUniqueApplication, GApplication, but not all apps use it, so they’ve still got some apps where it’s possible to have two instances and Bad Things happen. So, they decided to solve it at the shell level by not launching more than one.
After doing my poll, this doesn’t sound quite so crazy; there *are* a lot of apps people only have open once. However, nearly everyone has that one app that they want two of… and in gnome-shell it’s up to the application to offer a way to do that.
Anyways, it may have been this one little decision that shaped the whole shell. Once applications were assumed to be unique, then switching windows *is* switching applications, and an application-oriented shell is the natural conclusion.
Also, I was wrong about them calling applications activities. They’re not calling anything activities, really. :) Their overview screen (a concept we toyed with in plasma actually) was called “Activities Overview” because activities means “what you are currently doing” – and then the string was too long for the UI, so they shortened it to “Activities”. I wish they’d shortened it to “Overview” instead – it would have saved a lot of confusion. :)
So… in the end, I still disagree with gnome-shell’s design, but I think I understand how they got there. It’ll be interesting to see how it’s received when it’s released, and how it evolves from there. After all, the world would be a pretty boring place if we all made the same decisions. :)
so I finally convinced myself to look at those poll results. :)
Not all of them, though; I got sick of it after about 60.
Given how varied (and sometimes ambiguous) the details were, it’s not very scientific anyways – some people talked about their systray, some didn’t; some counted their tabs, some just said there were “lots” – but I think I’ve still learned a few things.
The number of applications open ranged from 3-16, but most people had 6-7. The number of windows was usually similar; while it ranged from 3-38, it was usually 8-9 – two more than the number of apps. That means people are using tabs a lot, and rarely opening extra windows. There seemed to be three main resons for having extra windows: first, chat lists; second, okular (since it doesn’t do tabs); third, having different windows for different desktops.
The number of tabs is probably the most unreliable number; given a very liberal interpretation of “tab” (basically any form of switching views inside a single window – be it files, chat windows, or other resources) and counting one window as one tab (not zero), I counted from 3 to 90 – but I’m pretty sure it would have been more if some of the people who said “lots” and “many” had given numbers. :) quite a few people had >20 tabs in a single window – how do you guys *manage* that?? :)
Personally, I find myself moving *away* from tabs. It seems to me that they were invented to compensate for inflexible window management; now that I can sort my windows by activity, I have less need for tabbing. I open websites in new windows instead, only tabbing searches or sometimes links from the first page.
I still have a bajillion documents open in most of my kate sessions, though. I don’t think those would work so well as individual windows. :) although I do sometimes find myself trying to alt-tab to the previous file…
Anyways, back to the results: I was also surprised to learn that lots of people still minimize things to the systray. I’ve stopped doing that, myself… if I want something easily available, I put the window on all activities.
Oh, and while most of us pile lots of things on each desktop (well, I assume so – less than half the comments even mentioned desktops), some people have picked up a one-app-per-desktop workflow. Why? Is it because of the ability to assign a specific keyoard shortcut to each desktop?
That reminds me… on my screencast post, there were a fair number of people not understanding why we have both activities and virtual desktops (btw, thanks for being so polite and not going “omg u sux” – criticism is discouraging even when it’s done nicely). I think the poll shows one of the reasons: people have different ways of using virtual desktops. Some people use them in a similar way to activities, and – like the people who were happy with just icons on the desktop – won’t see a need for both. Indeed, they might be better off picking just one and not using the other. But there are other people, with other workflows, who will benefit from using both activities and virtual desktops. Perhaps we have an overabundance of choice here, but I think it’ll be a good thing, and will lead to lots of new ideas. :)
Oh, and I didn’t count browser usage in the poll, but if anyone feels like doing that I’d be interested to know the results. I seem to remember seeing several konq+FF comments, and several rekonq, but also some chrome, and one guy had at least three different browsers running…
…One more thing: Fuck ads. they sucked, they did *not* have the skip option that it claimed they’d have, so they’re gone. blip.tv owes me only $7 for that… and since they don’t pay out until you reach $25 I guess I’ll never get it. oh well :) it didn’t really seem worth subjecting everyone to 3-4 more ad-enabled screencasts.
Yay! Screencast! :)
For 4.6 I decided to do two separate screencasts: one intro to the basic features, and a separate one for cool advanced stuff. This is the intro, naturally; I’ll do the advanced one tomorrow or something. :)
…There’s another thing different here: I’ve enabled ads. I’m not sure about this – on the one hand ads are annoying, on the other hand a decent screencast takes hours to make and a bit of funding for my kde stuff would be useful. The ads haven’t started showing up yet anyways. (I guess it takes a while?) So, if you do see ads, tell me what you think of them.
Now on to the screencast:
[Edit: ads are off now]
A year (and a bit) ago, I blogged some crazy predictions for fun. Let’s go back and see how they turned out. :)
“First of all, pretty soon kde geeks will complain more about people assuming they have firefox and a google account than windows, IE and office.”
…this one’s hard to judge, but actually chromium seems to be taking over from firefox now, and with our webkit options browsing isn’t so hard. People are still using google spreadsheets for kde community things, and other people are still unhappy about it, though – and I can’t remember how long it’s been since I’ve had to work around some silly windows-only thing.
“Eventually everyone will get a google wave account, play with it, and get bored. Wave & google docs usage will rise steadily, though. That slowly rising tide will worry us, until finally someone says Enough and starts a real movement for Free services & data.”
Google What? :) Wave was a flop, it seems – I think I know one person who might still be using it. Google docs does worry some of us, though, and Frank was the one who got fed up and started OwnCloud, and now vandenoever is working on webodf too :)
“Twitter and facebook are boring now… They’ll still hang around, people will use them, but like icq, eventually most people just won’t care.”
Well, twitter’s not exactly exciting these days, but it’s still getting a lot of use. More like msn than icq (at least to me – everyone in Vancouver has an msn account, even now)
“Kde will still be using svn. Every few months someone will get fed up and go do one of the tasks needed for git migration. Many developers will have switched to gitsvn for the project they contribute to most – hey, at least they’ll be used to git terminology when we’re finally ready to switch to real git.”
Yeah, this one was fairly accurate :/ The predictions were made in october 2009, and in october 2010 we had just gotten git.kde.org up (thanks to our wonderful awesome sysadmins), and were moving things over from gitorious. Near the end of october we got servers donated to make the svn2git process actually feasible. :) The good news is, a few short weeks and we will actually have kdelibs, kdebase and hopefully several other modules moved to git! :) So… we are still on svn, but not for much longer.
As for gitsvn… I really don’t know how many people are using it, but I do see commitbombs here and there…
“Chromium will slowly gain ground as people tire of firefox. Tragic, really; nobody will step forward with a qwebkit-based browser to compete. Konq will still be largely ignored (even though it’s become a good browser again), arora and rekonq will stay toy projects. No marketing, no mindshare, few users. Remeber getfirefox.com? Why aren’t we doing something like that? we (theoretically) support as many websites as chrome because we’re all using webkit (or khtml). all they’ve got on us is speed, the Google brand, and the Google marketing.”
Crap, I was hoping I’d be wrong here. :( But it’s all coming true… I’m actually happy with konq these days, but I seem to be the only one. I haven’t heard much from Rekonq in a while – although I know it has users, at least.
“…And yet everyone will still have firefox installed, for those websites that just won’t work anywhere else.”
I do. I bet you do too. Although, I’m finding more and more of them work in webkit… :) Perhaps in 2011 I’ll be able to uninstall FF.
” Plasma-netbook will make a big splash, and contribute to KDE’s rising visibility.. Many distros will still ignore it, but one will switch its focus to kde, and then another… other areas of KDE will mature, and the benefits of our Pillars of KDE will shine through… In two years we’ll be the default on most distros. Gnome won’t know what hit them ;)”
Whoops, a two-year prediction. Well, I’m not sure how much of a splash plasma-netbook made. I know a couple of people who tried it and didn’t like it; neither could be convinced to contribute fixes. Personally I’m too busy putting activity stuff into kwin and plasma-desktop ;)
What *is* happening, thogh, is a shift to Qt.. or at least rumours of such. the qt-everywhere message has been spreading. Distros are either doing their own netbook thing, or going with meego (although plasma-netbook is packaged for meego now, and there are other secret netbook things happening, so this is far from over). Gnome… doesn’t seem to be having much luck at the moment, but we’re too darn nice to take advantage of that.
“The web movement will grow. Web this, web that, web everything. And we’ll have to put up with it, because it’s going to be a while before the hype wears off and people start to get tired of the web’s disadvantages. Oh, and many people will decide to try and work around those disadvantages instead of trying to bring the web’s advantages to non-web stuff.”
Yep. web web web, my school is even offering a course where students will write a web app for meego (whatever that means). On the other hand, there’s also the “apps apps apps” thing thanks to mobile devices… although I’ve heard a lot of those apps are rather webby too.
“Silk will come out, and that’ll help. It’ll make things less stupidly painful… But in a way it’s just treating a symptom. And websites change, so stuff will break. Of course i’m sure silk will include ghns updates for stuff that’s likely to get broken… and it *will* be cool and awesome… But it’s still treating a symptom.”
What happened to silk? :/ It seems to have vanished…
“The upside of silk’s approach, though, is the short-term gain. Kde-workspace will become the webby desktop, the shiny cool convenient thing that’s better than living in firefox. :) And while that’s gaining us users and making people happy and helping our developers learn about what does and doesn’t work, maybe we can try and come up with something better than the web. something with the advantages of both desktop and internet without the pain of being built on top of infrastructure originally designed for serving & displaying static html pages.”
Yeah, totally didn’t happen. :(
“Oh, and then swine flu will mutate and kill us all! …no :P people will have practicaly forgotten about it in a year. remember SARS?”
Haha, swine flu. I’d forgotten about that. :)
“someone will start going around to different applications, porting each one to use nepomuk where appropriate, so that its usage grows… but users still won’t know it’s there unless strigi tries to eat their computer (which will, of course, be blamed on nepomuk. or plasma. everything is plasma). :)”
Hrm.. at first I thought this was wrong; While nepomuk has seen improvements, I thought it was still only being used by dolphin and kontact. But then I did some poking… it can record the source of files downloaded by konqueror. It’s going to be involved in some telepathy thingy. It stores the custom icons for activities. I think there was something about koffice too, although I can’t remember it. For 4.7 we’ll hopefully have apps using it to record what resources they’re using and link them to activities n’stuff – but there hasn’t been time to do that yet. So… the second part is certainly true – even *I* don’t really know where nepomuk is – but I’m not sure if I can count the first part as true or not.
So, what’s my score? Six mostly right, Three mostly wrong, and three unclear. That adds up to +3… yay, I’m right more often than I’m wrong. :) haha.
Perhaps I should make a new set of predictions… hmm, not now though. I’m hungry. …and having to limit my computer time, too. RSI sucks.