Thursday, February 07, 2008

no rest for the wicked

seeing as i'm obviously wicked, that would be me who gets no rest ;) i've been telling myself for each of the three days since i've been back from australia now, "today, i'll just take the day off so i can catch up with my energy." but i keep finding myself wanting to work on this or that and so end up not taking that day off. i did take a nap this afternoon though for about 2 hours which felt .. marvelous.

i checked up on Kevin Otten's student's work on kscd today. they are working in a branch on a pretty thorough refactoring of the application: solid, phonon, a new UI, interesting new features and far less manual configuration required. the new UI is a lot simpler than the old one and is svg themeable. there are still some missing features and bugs, but it works quite nicely and reliable. it feels much smoother than the old kscd thanks mostly to solid/phonon, and once the students get some high quality artwork for the buttons, i think it'll be a nice replacement for what is currently in trunk.

here's what it currently looks like with the draft artwork:



plasma continues to move forward as well. today i took Marco Martin's work on putting the "paint a box using the svg" code that was getting duplicated over and over and over into a class, cleared it up a bit and merged it into libplasma. over 300 lines of code were replaced with about 80 and we now have one central place to decide how we do those fancy little boxes everywhere (krunner, panels, extenders, etc..).

i also modified Plasma::Theme today to react to changes in compositing. Theme already gives out different svg's depending on whether or not compositing is around or not, and now it will switch on the fly. so flick on compositing and you magically go from having this:



to this:



this way people don't have to restart plasma, krunner, etc just because they changed their composite settings.

i also worked this past week on krunner crashes due to non-thread-safe APIs being used from threads. i introduced a "big lock" that runners can grab when they dive into such things in kdelibs, for instance. seems to be working well. returned items are also sorted by relevance now, and when matches are returned if it matches the name they have a higher relevance than if they match the generic name. matching keywords only provides even lower relevance. more work needs to get done on tweaking individual runners for relevancy ratings, but this shows it can be done and is trivial to do: making the Service runner (which fetches applications from the .desktop files in applications/ as well as control panels and other executable services registered with the system) rank things nicely took all of 5 minutes.

for all the pythonistas out there, a set of ScriptEngines that uses kross is being developed in playground right now. it essentially works with some caveats that need to get worked out before we can move it into trunk for 4.1. the ruby support is broken for some mysterious reason that Petri Damstén, whose working on this, is still trying to work out. hopefully he'll get that licked and we'll have ruby support as well. huzzah.

big changes will be coming in the next few weeks, and we have a plasma meeting this saturday to discuss the upcoming issues.

24 comments:

Rahul said...

Aaron -- I hope you see this feedback as constructive and not destructive. I've been trying KDE 4 since the late alpha releases, and I'm all in support of the philosophy of releasing early and often to get more testing and spot more bugs. In terms of stability, I find it is pretty good. It could be better, but I've seen worse. At least when plasma (or something crashes), it restarts itself.

But I haven't been able to stick with KDE-4 for more than 20 minutes at a time. The biggest reason is I can't figure out how to DO anything to configure the desktop! And more often than not, digging online throws up the answer that it can't be done. The usual complaint against GNOME is that all the configuration knobs are gone in the name of user-friendliness. Actually, they're all there in gconf-editor. But in KDE-4 I don't know where to look.

Example 1: How do I add a custom application launcher to the panel? Short of creating my own menu entry, I don't see how to do it. (In fact, it took me some time to figure out that if the launcher appears in the menus, I can right-click to add it to the panel. Why can't drag-and-drop be implemented?)

Example 2: How do I re-organise the entries on the panel? For example, if I remove the new-style application launcher and add the add the menu-style launcher, it shows up somewhere on the right. I can't see how to get it to the left except by removing everything else, then re-adding everything else in the correct order. If there's a new-fangled way to do it and I didn't RTFM, fine, but what's wrong with middle-button dragging, or right-clicking and selecting "move", the way it was done before in KDE and GNOME?

Example 3: the desktop. I know you don't like the idea of using the desktop as a dumping-ground, but it is how people work and what they're used to, and it's a freedesktop.org spec, too. So the compatibility should be retained. You have some scheme of converting desktop objects to plasmoids, which doesn't keep track of what is physically in the Desktop directory -- deleting the plasmoid doesn't delete the desktop file, for example. And if I want to add something to my desktop that isn't an already-available plasmoid and I don't want to learn to write my own, I'm out of luck. You tend to react by saying "why are you stuck on the desktop idea, we're giving you something so much better!" But where is the something so much better? It's not done yet, as far as I can tell. And in the meantime the desktop metaphor WORKS.

See, I can live with all these things by just using alt-F2 to launch applications. I can also live with twm as my desktop environment. I'd like some customisability, and that is totally missing (or totally undocumented) in KDE4.0. I really hope it shows up in KDE 4.1. It should be about choice -- many of us have long-standing preferences on how our desktop should be organised.

Aaron J. Seigo said...

> But I haven't been able to stick with
> KDE-4 for more than 20 minutes at a
> time.

then use the kde4 apps in kde3, twm, blackbox, gnome, whatever workspaces and come back to the kde4 workspace when you can be happy with it. your kvetching gets us exactly no closer to that goal, and you're not saying anything that isn't immediately obvious to a third grade monkey. so i'm not particularly sure what you hope to get from this, other than the satisfaction of release.

i am going to respond to your third example in more detail, however, because it is one of those things that just ... ooh! bugs me.

"I know you don't like the idea of using the desktop as a dumping-ground,"

it's not so much that i don't like it, it's that it's a stupid, stupid idea. there is exactly no saving grace to it and it prevents any actually interesting usage of the desktop.

within a couple years you'll go, "oh, i totally get it now!" i'm willing to wait, but i hope you remember going on like this about it when we get to that point.

"but it is how people work"

thank the goddess apple didn't think that way about the command line when they released the mac in '84.

"and what they're used to,"

ditto.

"and it's a freedesktop.org spec, too."

no, the fd.o spec talks about the desktop folder (and even that is pretty limited). it says nothing about final representation of that folder.

being on fd.o doesn't make something immediately good either. it makes it a description of what is.

and a lot of what is, is crap.

"You have some scheme of converting desktop objects to plasmoids, which doesn't keep track of what is physically in the Desktop directory -- deleting the plasmoid doesn't delete the desktop file, for example."

you're only half correct. yes, deleting the plasmoid doesn't delete the file on disk (that's logged in the task tracker, btw), but deleting the file on disk does remove it from the desktop.

" And if I want to add something to my desktop that isn't an already-available plasmoid and I don't want to learn to write my own, I'm out of luck."

erm ... what would that be exactly? a file? supported. a program? supported. a folder? supported. a device? yep, got those too. so this is a straw man. you can drop the same things you could on kdesktop and get an icon.

" You tend to react by saying "why are you stuck on the desktop idea, we're giving you something so much better!" "

yes, it's a bit like hoping a blind man will start seeing.

"But where is the something so much better? It's not done yet, as far as I can tell."

i'm going to state the obvious here: if you want us to get to the better, how about letting us get there instead of trying to demand that you MUST HAVE an inferior product NOW and making us work on that instead.

again, go back to your kde3 workspace (or whatever one you prefer) and let us do our work. i'm not forcing you to use plasma, but you are trying to distract us (well, me anyways) from the goals so as to pander to a dead end we'll throw away in under 12 months time.

"And in the meantime the desktop metaphor WORKS."

like a 90 year old wal-mart greeter. yes, it works. but what is it really accomplishing in the big scheme? not much.

if you don't like plasma today, don't use it. it's that simple. i don't care that you can't figure out where its headed or even care to recognize the strides forward that have been made since 4.0. i really just don't care.

we're stepping out and beyond in spite of your inability to appreciate what's going on.

which is to say, unless you have something that isn't already filed on bugs.kde.org, a constructive new set of thoughts or a patch in hand ... please don't bother. you're just annoying me and you'll probably hate my answer in return because it's not going to be the "oh, ahm so sorray mastah! let mah go fix thaht ri-i-aght now, mastah!" you seem to be hoping for.

tecnocratus said...

which is to say, unless you have something that isn't already filed on bugs.kde.org, a constructive new set of thoughts or a patch in hand ... please don't bother. you're just annoying me [...]

There we go, another "colourful" response by Mr. Seigo.

Man, you just don't get it. That WAS constructive input. That's REAL feedback from REAL users, which is something that every self-respected software engineer should take as precious little gems.

Even if you don't see the trend here (which sure as hell you don't), rahul was quite polite and nice in airing his/her complaints. The same cannot be told from your answer, wouldn't you say?

Apparently you substituted the "basics of human-to-human interaction" courses with some C++ or assembly or something back in primary school.

Now go and mod me down. But I can't be bothered. I can't stand this freaking attitude.

Aaron J. Seigo said...

"That WAS constructive input. That's REAL feedback from REAL users, which is something that every self-respected software engineer should take as precious little gems."

it's repetition, at best.

if you look at bugs.kde.org, my blog for the last N months or many other places on the 'net, you'll find that there is nothing new in rahul's comment. as such, this is much a gem as gravel on the side of the road is.

what we have here is a short list of complaints, all of which are known, without any actual new input or suggestions.

there was lots of partial correctness, the obligatory gnome jab and the "i know what you're going to say!" tagline, though.

the underlying request is "give me what i'm used to, e.g. kdesktop from kde3." of course, that's not the point, goal or purpose of plasma. and yes, people will eventually grok that. many already have.

but most interestingly, that wasn't even what this blog entry was about. no, this blog entry was simply a convenient soap box to clamber up on and, once again, rant on about something i'm well aware of and which is being dealt with.

that isn't something i feel the need to praise let alone encourage.

"Even if you don't see the trend here (which sure as hell you don't),"

yes, i do see the trend. i saw it months ago. repeating the same sentences to continue the trend isn't going to make me run off and do something else.

i see it, i understand it, and i've responded to it several times. even politely. i'd like people who feel like it's a nice idea to comment on my blog to get the idea that while i am aware of these issues, trying to convince me that what i really need to do is rewrite kdesktop is not going to work.

repeating over and over the same rubbish is probably only going to get you shown to the door.

"rahul was quite polite and nice in airing his/her complaints."

i ask for new, interesting, useful. i never really asked for polite, per say. wasting my time can be done with a polite smile as easily as it can with a growl.

"The same cannot be told from your answer, wouldn't you say?"

but you see, i didn't try for polite. i tried for "what someone who decides it's a good idea to join the peanut gallery on my doorstep gets".

"Apparently you substituted the "basics of human-to-human interaction" courses with some C++ or assembly or something back in primary school."

haha.. wow, that was a good one. *giggle*

tell you what, if you ever meet me in person remember you said this and then take another run at it.

what's ironic in your statement is that the usefully social thing for rahul to do would've been not to join in the needless harassment involving a topic he's modestly equipped to do so with in a context where it's off topic.

btw, do you argue with the kernel developers about schedulers or the block io layer or over file system algorithms? probably not, unless that's what you work on; yet everyone figures that if you can see it, you understand it and are suddenly in a really good place to "offer feedback" on that interface. interesting, isn't it?

"Now go and mod me down."

this isn't slashdot. no mod points here. =)

"I can't stand this freaking attitude."

excellent! so here's how it can be avoided: stop harassing me. it is very, very easy and very, very simple.

i deal with more constructive input in a day than you probably get in a week (probably more, but we'll call it a week) and i'm more than amiable about it. why? because i get a hell of a lot out of it and appreciate the interaction.

but if you keep jabbing your fingers in my side, i'll eventually turn around and tell you to go elsewhere.

frietfriet said...

dear aaron,

I respect you so much for your hard work, but in your reply to rahul I have to admit that you went a bit too far.
I don't know the intentions of Rahul but even if they are bad or at least annoying is no reason to call him dumber than a third grade monkey.
Now go and do the voodoo that you do so well (and we enjoy). Peace!

Anonymous said...

any chance of making it look more like "Quintessential Player" then a grey box with shiny buttons?

Nick Ogden said...

Hi Aaron,

Don't flinch, no need to be defensive about this one :)

I'm just wondering if the Plasma team would mind someone sitting in on the IRC meeting to get a feel for where things are going. I'm a student (heaven forbid) but I'm keen to get my hands dirty with Plasma development. (or anything else KDE related that I find interesting for that matter)

I'd like to start contributing back since I've got so much from not only using the K Desktop Environment but also from following (as closely as I can) the KDE community in general. It's actually quite amazing how much I've learned in regards to software architecture just by reading the planet etc...

Anyway, I'm rambling now so I'll just add a quick (but huge) thank you for not only giving so much to the development of KDE but also for not allowing yourself to be put off by unconstructive feedback.

Aaron J. Seigo said...

i didn't compare rahul to a monkey of low intellect, i pointed out that his three points were bleedingly obvious (e.g. the proverbial monkey would even figure them out) ... leading to the conclusion of, "why do you people keep repeating this to me like maybe i didn't hear it and understand it the last N times?"

rahul may be a brilliant mind of great sagacity; i don't know them. probably, rahul is an interesting and well meaning person.

but three three points he trots out, which are carbon copies of what has already been given the once, twice, third, fourth .. ad nauseum over are none of those things.

felipe said...

Aaron, I was wandering what your ideas on a new KSCD could be...

I've _always_ thought that Juk would get CD playing functionalities, in the - so to speak - quest for semplification.

Any indication on this? BTW the new KSCD design seems promising, even if I'd hoped to see the app disappear ;)

Luca said...

Posts like rahul's have been already answered a few times (*no offense* intended, I'm merely stating a fact). Methinks I should plug that FAQ more...

Pieter said...

I don't like the KSCD screenshot in there. It's suffering from something I hate a lot when using Windows: "my layout is better than the default" The buttons really stand out and thus the application does not really appear to be part of the consistent desktop as other applications are.

I hope I'm proven wrong here and simply a decent SVG theme fixes this. It really bugs me when applications don't fit in with the rest of the desktop just because they think they know better how to do shiny layouts.

Aaron J. Seigo said...

@Nick: please do join us in the meeting. people often sit in who aren't contributors and have no intention of becoming ones. people with idle curiosity are welcome, and people who are looking to get up to speed with things are triply welcome.

i look forward to seeing you there =)

@felippe: yeah, i thought if i just ignored kscd it would die. but nope, some uni students came along and revived it. i guess it's true what they say: open source software never dies ;)

since they are working on it, basically i just guided them towards simplicity, beauty, speed and using the new frameworks. the usual kde4 things. cover art and other things are apparently on their way too.

@Luca: yeah, i should probably blog about the FAQ as well. would be good to make it more known. might avoid at least a few of these "but what about my icons?" questions

@Pieter: yeah, the art is not.. uhm.. the greatest ;) i think with appropriate oxygeny artwork it'll look a *lot* better. doing a cd player with standard widgets is easy but looks drag and isn't very easy to use. but i totally hear you about apps going too far in the other direction as well.

Anonymous said...

I have a question about plasma: does it use mulitple cpu-cores? I've read that coding with several threads would be easier in qt4..are there any results?

Milian Wolff said...

Hi Aaron!

Nice to see this KRunner improvement, one question though:

In the relevance ranking - do you take into account what a user selects? Example:

I search for "bar" - I get the following listings:

"bar"
"barfoo"
"foobar"

I select foobar, over and over again - always I get the above mentioned order. Why not take into account that I seem to prefer foobar when searching for bar. Would this be possible?

Thanks and keep up your good work. And don't get yourself into these troll fights, just reply with a simple "your points are all known, get something new, rtfm or stfu". ;-)

Bye

Rahul said...

Aaron -- yes it was sort of OT, but this is a blog not a developer mailing list, and you did talk about discussing issues in plasma.

I know examples 1, 2, 3 were discussed ad nauseum in the alpha and beta stages. But there is still no answer for the RELEASE?

As for this bit:
btw, do you argue with the kernel developers about schedulers or the block io layer or over file system algorithms? probably not, unless that's what you work on;

You don't argue about the details but you do mention the fact that the new scheduler is screwing up your audio/video playback and there was no problem with the old one. And you don't get the answer "This is 2.6.23 release, it's not done yet, wait for 2.6.23.45". And you don't expect them to replace a working ext3 with a broken or feature-incomplete ext4 in 2.6.25, and then say "if you don't like it, keep using older kernels". If they want to include ext4 before it's ready, it will be in parallel with ext3.

Yes, it's an imperfect analogy, but not a totally pointless one, and it was you who brought it up. If, as you say, I should use KDE4 apps on a different desktop environment, well I can do that (and will if the apps are compelling enough). But you're pushing KDE4 as a desktop environment, not as a collection of apps. So having basic features missing or broken helps no one.

Yes I know it's a volunteer project and it's free and I'm not being compelled to use it and so on. You aren't compelled to reply to this either.

Rahul said...

Another thing:

" And if I want to add something to my desktop that isn't an already-available plasmoid and I don't want to learn to write my own, I'm out of luck."

erm ... what would that be exactly? a file? supported. a program? supported.


A program that doesn't already exist in the menus. For example, any program installed via "configure->make->make install", and quite a few older programs that don't bother to create menu entries for themselves. There's no "create application launcher" option. So I can "drop" it and get an icon? Where do I drop it from? Maybe I manually create it, open it in a file manager, then drop it on the desktop? And by the way, I can't even drag and drop from the application launcher menus.

Maybe I'm dumb and there's a way to do all this that's well-documented that I just haven't seen. If so, point me to my error. But if not, your "erm what would that be exactly" response suggests that you don't know how users actually use their desktops.

Anonymous said...

Aaron, I understand your sentiment. But is it really 'that' hard to ignore if somebody highlights the same issues you have been hearing over time? After all he is a user of it and trying to make a destop which works for him.

Keep up the good work anyway.

stelt said...

more SVG on http://svg.startpagina.nl

Aaron J. Seigo said...

@Milian Wolff: it's something i've been looking into. it's not a very trivial problem since the results are not a static list, even the providers are not static.

to capture this information would mean collecting a fairly significant body of data over time: search terms, search results selected, frequency of each, and relation of result to terms since the same result can occur from different search terms. it's not just the name of the action you select as well, since action can differ based on the data they carry.

then we need to apply ranking preferences to the right results from the right runners based on this.

it's probably doable, but making it not drag performance into the bin and actually tag results accurately are not completely straight forward tasks.

fliegenderfrosch said...

@Rahul: Some things just aren't done yet. I'm confident that Aaron knows about these things and it is understandable, that he doesn't want to hear them over and over again.
So are you saying they should concentrate on all kdesktop functionality before working on the realisation of their vision?
Well, I can see that this would be confident from a user point of view, but it's also understandable that developers don't want to waste their energy on something they don't believe in any more when they can work on making their visions come true.
Of course there are many regressions in KDE 4.0, but as this release isn't an "evolutionary" one and many things are rebuilt from scratch, these regressions can't be avoided and it's reasonable to say: Use this if it's already doing well enough for you, if not, stay with the older one.

Pio Martinez said...

You know what? It is not so easy to be free, it is not just dropping the chains and starting to run. Sometimes, wild animals who had grown in captivity, when left free, they just come back to the place where they have spend their lives. It is something like missing the chains, not feeling comfortable without them. You have to learn to be free, learn to breathe instead of getting your oxygen via your umbilical cord.

For humans, individually or as a group, freedom is usually a scary concept. There are many books about this subject, one of the best knowns is maybe Eric Fromm's The fear of freedom whose titel says a lot.

But what i wanted to do in this comment of mine was just to go back to this powerful command "be free" and say "well it is not so easy" not for a lot of people to say the least.

You just have to work hard to be free, you have to fight against your impulse to go back in your cage, where you are not free but yet confortable and warm. You have to say to yourself: Just go, run, into the big jungle or the immense savanna and be free. Be you. You will be afraid somtimes, you will suffer, but that is a part of being free.

Today, after a few weeks trying kde4 in a test account, a safe environment, I decided that it was time to migrate, that the thing was good enough and strong enough on over to stand. I am not coming back, the sky is full with stars.

And this is only the beginning!

Thank you KDE people.

milianw said...

Yes I can totally understand that this is not a minor task to be achieved. Some serious mathematical brain input would be needed. Or are there maybe other projects out there, which deal with similar problems? What about contacting universities? Maybe there are students out there which could solve this problem in a good way.

Andre said...

Sounds like a data mining / knowledge base question. You should be able to find a lot of papers about that, especially in the context of search engines, but I guess it's a LOT of work (i mean reviewing all material and finding the right approach). IIRC the Raptor menu is going to use such a relevance mechanism, no? (http://techbase.kde.org/index.php?title=Projects/Plasma/Menu)

Anonymous said...

just want to add my $0.02. Yesterday i test kde 4.0.1. Looks nice. One annoying issue is Alt-F2 run dialog.

When i'm typing 'kons' it shows me 'konsole' in the memobox, but to select it i need to use mouse. Will be nice if when you press 'Down' button cursor will go to first entry of memobox.