Friday, February 22, 2008

leaving, coming and hacking

zack arrived yesterday; p. left today; we hacked all day, then had dinner out and hacked some more. i spent my time trying to make kickoff a bit more pretty and less broken feeling in a few places (so much more to do though), working on virtual desktop awareness in Plasma::Views so that we can solve some of the interesting problems that come with compositing windowmanagers and to make it easier to do per-desktop effects in Containments and answerin gtons of email and going through patches on review board.

zack's been working on webkit<->plasma integration (after finishing some "day job" work he had to do). interestingly someone has made webkit paint a white background ... no matter what. this is Obviously Broken(tm): it really should be up to the host application/widget to decide what the backcground is (in a web browser white makes sense, in plasma is makes as much sense as me hitting myself on the head with a hammer as hard as i can just to find out if it hurts or not) so he's trying to track that one down in the code base. fun.

so an effective day, if not a change-the-world-day. getting closer to that though ;)

oh, and Celeste, if you have questions you can ask them on panel-devel@kde.org. much more likely to get a quick and informed answer there than on your blog, to be honest. in any case, the answers you're looking for are: those are both TODO items for 4.1. the point of zooming is to allow switching between Containments (which the user will know as "Activities") and eventually discovering network offerings (e.g. via zeroconf). c.f. Jeff Raskin's ZUI work, which i'm sure you're familiar with.

if you're wondering why we shipped it with 4.0 even though it doesn't have all the features, here's why: we recieved a number of interesting bug reports that pointed out various flaws in the basic zooming system that have all been fixed since. release early, release often, have fewer bugs in the long run.

and again, panel-devel@kde.org. house of goodness, if not pancakes.

23 comments:

Anonymous said...

Thumbs up for the "drop-the-white-webkit-background" !!!!!
If !autoFillBackground, nothing should be drawn by the webkit component. This way we can layer web-content on top of everything!!!
Good Work Zack! ;-)
Keep 'rockin Aaron! ;-)

Anonymous said...

white background are evil especially if your eyes are tired, but its all over the web, it would be better if at least it would be pearl white or eggshell white, the idea of black one white works in physical media as its not likely to be "perfect" white which you can get every time in the computer, paper backs and newspapers are much more readable then the white backgrounded pages we see today.

Marcel said...

Plasma for the win...that is all, thanks.

celeste said...

Blog, email, or IRC! No one is happy! I like pancakes tho, so I'll head to panel-dev next time I have questions/issues. How is panel-dev different from the plasma list?

My biggest weakness is probably not knowing what apps/functions belong to which packages or libraries. I see stuff but don't know who to talk to (so I submit a bug or write a blog and talk to everyone!)

You should also take a look at Bederson's and Shneiderman's work on ZUIs too. It is in the context of data visualization, but it is more applied than some of the Raskin stuff I know of. [http://www.cs.umd.edu/hcil/research/visualization.shtml]


Cheers

Ramsees said...

"if you're wondering why we shipped it with 4.0 even though it doesn't have all the features, here's why: we recieved a number of interesting bug reports that pointed out various flaws in the basic zooming system that have all been fixed since."


And how are we supostly to report bugs of something of witch its porpose is not know in the first place?

Anonymous said...

hi, whilst you're looking at making some kickoff hacks could you see how it looks with a border - like the calender widget has? it's missing something and i think it's a border!

Leo S said...

Hmm.. I find it hard to believe that the zooming function had bugs that you didn't know about but were discovered by users.

In its current state, there is absolutely nothing that the zoom function could do for a user. Yes, eventually it will rock everyone's pants off, but right now, I can't even think of a single use case for it. You can zoom out, you can add widgets to the zoomed out space (not directly, as dragging from the widgets dialog is broken, but you can move them from the main desktop space to the white space). But since you can't zoom in to any other space except the one with the wallpaper on it, those widgets are basically useless, since they're so tiny. So really you can't do anything with it yet.

I'm all for releasing early to get testing. Releasing KDE 4.0 at the time was probably the right thing to do, because although it had polish issues, it mostly worked for a lot of tasks. But this specific feature really doesn't work for anything, so there really isn't much point in giving it to anyone.

Aaron J. Seigo said...

@celeste: "How is panel-dev different from the plasma list?"

it is the plasma list =)

@ramsees: "how are we supostly to report bugs of something of witch its porpose is not know in the first place?"

people managed to do just that, so i suppose it is indeed quite possible. example: someone noticed that with the right combination of zoom, dashboard, etc you could get the toolbox controls out of sync; another person noted that with multiple screens it was possible to zoom out but not be able to zoom back into the containment you started with...

@leo_s "I find it hard to believe that the zooming function had bugs that you didn't know about but were discovered by users. "

so you're saying that i'm lieing to you. that's .. interesting.

the door is over there *points* you can leave the way you came in. seriously, i don't think i need to put up with such crap. do you?

"there is absolutely nothing that the zoom function could do for a user."

here's where i point out that you lack understanding. don't get upset, because it's simply the truth. if you want me to nicer about it next time, don't lead your comment by impugning my character.

so ... while it certainly does not have the functionality it will have to make the zooming itself useful, here's where it was useful to me to have it out there:

* it was useful as a debugging aid for multiple screen bug reports since people could get an overview of the entire scene (remember that plasma is model/view)

* there were mechanics with zooming that needed improving (e.g. you can now pan freely when zoomed out)

"there really isn't much point in giving it to anyone."

what part of "we were able to identify bugs and fix them" was particularly hard to understand? i suppose if you assume i'm a liar, then sure, i can see how you might jump straight to that conclusion. but then you could also go to bugs.kde.org and find out that i'm not spouting untruths at all.

seriously, sometimes the audacity of people amazes me.

Anonymous said...

Did you think about also involving kwin into the zui? To my mind it would be awesome to be able to sort windows and plasmoids into groupings and to zoom in and out as it is schown in this video with compiz: http://youtube.com/watch?v=W3snFkb_K98

Dave Taylor said...

Hi Aaron,
I hope you can understand people's sceptisism because as you can see the Plasma concept is difficult to grasp with such a lack of learning material so all people can do is compare to what they already know which sheds it in a less than flattering light. In my case I also haven't grasped the concept but have some faith in your vision so am happy to wait to pass judgement.
I can also see the stress of creating such a paradigm shift in the computing world has made you lose your once unshakable cool. These people aren't making a personal attack and nor should you care if they did, just worry what friends and lovers think and the rest can just go to hell and not press the cashew if it bothers them so much.

Aaron J. Seigo said...

@Dave: "I hope you can understand people's sceptisism"

skepticism is one thing, but i'm hardly dealing with well meaning skepticism. or if that is what people are trying to get across, then they are doing a piss poor job of it. i'm not other people's verbal punching bag.

"so all people can do is compare to what they already know which sheds it in a less than flattering light. "

that's fine, i'm completely understanding of the idea that most people won't be able to see beyond their personal horizons. that's just a reasonable expectaction.

i just really don't want to deal with N messages a day repeating the same things over and over on my blog, on the same web forums or in my email inbox. especially when they essentially call me a liar, as in leo just did.

one option is to simply step away from communication such as my blog. i think that would suck more than the current situation though.

"I can also see the stress of creating such a paradigm shift in the computing world has made you lose your once unshakable cool."

yeah, after more than a year of dealing with "you're a liar", "plasma is shit", "fuck you" type communication on a pretty much daily basis it tends to shake one.

it's amazingly cool to be able to express one's vision through action, but it's amazingly frustrating when people who will ultimately benefit from it piss on you while you're doing it.

it's really, really poor form on the part of the fanbase user community. the people who visit our blogs, etc, have *no* internal guidance or leadership and have over the last several years very successfully set up a completely unwarranted "us vs them" positioning (that is not unique to kde in the least, btw). i'm increasingly disappointed with the lack of engagement and uprightness exhibited by a demographic in our community that once was engaging and positive, even when the software was much, much worse than it is today.

"These people aren't making a personal attack"

so when i say "A happened" and someone says "i find it hard to believe that A actually happened", it's not a reflection on my person? e.g. my honesty? i'm sorry, but these communications got waaaay to personal quite a while ago and i'm tired of it.

"and nor should you care if they did,"

so i should care about what our users think, i should engage with them to build community, but i shouldn't care about them. that's an awesome theory, but it's not how i'm built. i also don't think that's a realistic expectation of most feeling human beings either.

"just worry what friends and lovers think and the rest can just go to hell and not press the cashew if it bothers them so much."

except that i actually care about our users. i care about kde. i care about free software. these are not passing idle time wasters for me, they are at the center of a deep passion for me.

one can not be passionate and not be moved inside. and one can not create great things without passion. (passion alone is not enough, nor does it guarantee success; but it is a necessary ingredient)

it would be great if i were robotic, but i'm not =)

the good news is that i'm actually rather happy in the day to day of life. (ask zack =) but i'm also not pulling my punches when people confront me with stupidity on my blog anymore. they crossed a line about 6 months ago that i'm just not willing to let them to continue to encroach upon.

thanks for your support, however. it does mean quite a lot.

Leo S said...

>> so you're saying that i'm lieing to you. that's .. interesting.

No, I'm saying you were mistaken. But I don't want to argue about that.

And if your best two reasons for a feature are that it was used as a debugging tool for an unrelated problem and to learn about the mechanics of its usage (even though it can't effectively be used) proves that it shouldn't have been included.

Sorry, not trying to be antagonistic, but I absolutely cannot accept your line of reasoning here. The zooming function was not ready to be included, as evidenced by the fact that no one has been able to come up with a use case for it in its current (4.0.1) state. Debugging other features is not a use case (unless it's a debugging tool), neither is discovering bugs in the feature itself.

Releasing early is great, but there needs to be some minimum level of functionality there first.

Aaron J. Seigo said...

@leo:
"The zooming function was not ready to be included, as evidenced by the fact that no one has been able to come up with a use case for it in its current (4.0.1) state."

you evidently don't get the point of "release often".

the version number of plasma in 4.0.x you'll see that it is "0.0". that's not a typo. the version in 4.1 will be "0.1". this is very early development software. i can't change the space time continuum to change the fact that you can't end up with the maturity that results from 7 years of development in under a year; even if your development is more efficient and better, applying that process over more years will (if successful, anyways) produce greater quality.

that much is evident, would you not agree?

ok, so here we have a feature that is not complete. do we include it? let's look at the pros and cons:

cons:
* it doesn't do much

pros:
* we can find and fix bugs
* it is useful to get an overview of the scene when debugging

i've heard that it "confuses users" and yet ... i've yet to find a user who stared at the zooming and went "oh no! i can't use my computer because i don't know what this does!" the worst that happens is that some people get all anxious because they don't know what it does and feel that they need to come to my blog and vent their anxiety. but there is no material degradation of the user experience.

in return, we identified and fixed bugs that would not have been identified and fixed until after 4.1 was released had the feature not been exposed, incomplete though it is.

how is that a bad thing? or do you not like bugs being found and fixed unless the feature it relates to is absolutely complete? if so, using bleeding edge open source releases is NOT for you because you simply do not have the temperament or expectations to deal with it.

if that is the case, that's ok. just get out of the way of those of us actually working the process to get the software that is in line with your expectations and risk profile.

"Debugging other features is not a use case (unless it's a debugging tool), neither is discovering bugs in the feature itself."

who said they were use cases? they were simply the expected and indeed eventual outcomes that have contributed to the improvement of the software.

the question is not "is this feature complete" but "does releasing this code in this state help improve the software".

when you stop asking the wrong questions then things start to make sense.

"I'm saying you were mistaken."

about what? that there weren't bugs found? because that is exactly what you said. let me refresh your memory:

i said: "we recieved a number of interesting bug reports that pointed out various flaws"

you said: "I find it hard to believe that the zooming function had bugs that you didn't know about but were discovered by users."

now, deciding whether or not there were bug reports reported is something that is not easy to mistake: either they were made or they weren't, either they were fixed as a result or they weren't, either they were interesting or they weren't.

i said they were, you said you can't believe that ... ergo it stands to reason according to your statement that i'm either amazingly stupid or deceitful.

i don't understand why you'd think either thing in this case. if you find it all so hard to believe, i'm going to humbly suggest it's because you lack the necessary information (which exists on b.k.o and on the plasma devel list). the result is counter-intuitive to you while also being actually true. your intuition or judgement is not infallible, particularly when it comes to topics you have little personal information on.

and no, i don't appreciate you leaving comments on my blog that purports your poorly informed judgement to be so accurate that it must be my stupidity or lack of honesty that is the real issue.

and i can't believe you don't have better things to do than to natter on about something that impacts your life in absolutely no meaningful way but which is rather useful to the process i'm engaged in. which is to say: this doesn't impact you, it benefits plasma (which will impact you over time), so stop with the needless needling.

it's just poor form.

Leo S said...

>> so when i say "A happened" and someone says "i find it hard to believe that A actually happened", it's not a reflection on my person? e.g. my honesty?

It isn't. My words were probably ill chosen, but I wasn't trying to imply that you were lying about anything. Sorry if it came out that way. This reminds me of some joke, a man says to his wife "If anything I say can be interpreted in two ways, and one of those ways makes you sad/angry/frustrated, then I meant the other one."

Anyway, this issue is not black and white. You bring up the big picture, freedom, innovation, the future of the desktop, while I only talk about one little feature. I use free software every day, I've written some of my own, and I wholly believe in a lot of the same software things you do. That doesn't mean there aren't things to criticize though. The zoom feature is one of those things for me. I've also written many a post praising KDE and plasma, but they cannot be all like that.

Aaron J. Seigo said...

@leo: "My words were probably ill chosen"

i'll say.

"That doesn't mean there aren't things to criticize though. The zoom feature is one of those things for me."

you may notice that i've not said in the least that the zooming feature as it appears in 4.0 is useful to the end user. i completely get that criticism, and indeed agree with it.

that's not the issue here: it's when i offer my honest reasoning and how it has benefited the software (not every decision i've made has, btw) and you decide that, no, that's not true. seriously, wtf?

"I've also written many a post praising KDE and plasma, but they cannot be all like that."

i don't need your constant praise. the options are not, as you said, black and white.

here are various things you can do:

* say nothing at all when you have no meaningful, fact based content to add

* listen to to my agreement with your criticism, and accept my explanations that are added to that (e.g. replying along the lines of "i see, so you know it isn't general useful to the user, but you have other expectations for it." would've been awesome)

* discuss solution. so instead of saying, "no, you're wrong" (to sum up your original posting) about something that's really inconsequential to what you want (function), perhaps ask about the zooming, when it will be, how it will be, offer what you'd like to see it do ... there's no point in criticizing the fact that it was released, because that's already done (and produced beneficial results int he process), so why even bother?

really, i don't get what you're attempting to achieve by approaching this topic (and by extension, me) like this.

perhaps you don't have any point, just the desire to beak off in this general direction. i don't know...

... but i do know that your input on this blog entry was not useful and that there were so many better things you could have done with that energy.

now, i'm really not trying to pick on you alone, leo. nor am i only standing up for my own self and projects. this communication style is something i see more and more often in recent years (before kde4, and in other projects besides kde) that is just not, imho, amenable to the growth and continuation of free software development.

we (free and open source) lose contributors on a regular basis because of the fairly steady stream of comments that are non-constructive, negative and ultimately discouraging to the developer.

personally, i couldn't give a rats ass what you think. i'd be happy to let you bitch and moan as impotently as you wish to while simply ignoring the displays of sillyness, but i'm tired of watching it happen to other people and other projects where they aren't able/willing to stand up and say, "that is NOT acceptable! modify your behaviour!" before they simply give up and go elsewhere. i'm a stubborn ass with a lot of energy, so i can ... and so i will.

instead of addressing this issue in other people's projects and increasing the negativity in their worlds (indeed, i try to do the exact opposite), i've instead chosen to address it in my little pocket of the universe.

so for others reading this, it would be great if you stepped back and replaced "leo" with your own name and "aseigo" and "plasma" with the last person or project in the free software world you felt it was ok to crap on since there was no percieved personal ramification for doing so.

it's time we all really took it to heart that when we interact via blogs, bug reports, mailing lists, etc we are all part of the process and part of creating the system we share. we each have a part to play in the creation or destruction of it.

i sincerely don't believe enough people in our (f/oss) community respect that concept.

Leo S said...
This comment has been removed by the author.
Leo S said...

I deleted my last post, not because I am convinced, but because I don't want to continue this ridiculous argument which you have blown entirely out of proportion.

However I am quite amazed that you have posted a list of things that can and cannot be said in comments about OSS.

Yes, the release can not be undone, but it is something to keep in mind for future releases.

I fairly often post constructive criticism and ideas for projects I'm interested in (you may remember a recent thread on kde-usability about krunner). While my post here is not the best example, there are lots that contain useful ideas, acknowledged by the developers of that software. So I find it galling that you're lumping me in the same category as the trolls that come on these boards just to insult. It goes both ways.

Aaron J. Seigo said...

Leo: "I am quite amazed that you have posted a list of things that can and cannot be said in comments about OSS."

you missed the point, then. it's like me saying "please don't fart at the dinner table we're sharing" and then another person saying, "how can you say i can't do that?" well, you can, but there are compelling reasons for you to decide willingly not to. it's all about good citizenship.

"the release can not be undone, but it is something to keep in mind for future releases."

i would make the same decision again, because it led to beneficial results. indeed, the results i was hoping for (testing of basic mechanics)

"there are lots that contain useful ideas, acknowledged by the developers of that software. So I find it galling that you're lumping me in the same category as the trolls that come on these boards just to insult."

if i hug you twice then hit you once, it doesn't change the fact that i hugged you but it also doesn't change the fact that i hit you. it's not some double entry accounting exercise where we balance credits vs liabilities.

most (though probably not all) of the 'trolls' that you note are much the same as you: they do offer positive comments, interesting and constructive criticisms ... but they also feel it's ok to unleash and say things that are rather nonconstructive (and occasionally plain destructive).

you know what i dream of? being able to post a blog entry where i mention plasma without someone bitching about something (usually semi- or completely off-topic) in the comments. that'd be cool, don't you think?

Aaron J. Seigo said...

i'm reposting the comment leo deleted because i actually think that it was the most constructive of all leo's comments in this thread... so it's ironic that he deleted it. i also don't like censorship (self or otherwise) ... so here's what he said:



you evidently don't get the point of "release often".

No I do, we're just talking about different things. We're just talking
about the zoom feature. Plasma in general is fine and has a decent
level of features for a first release.

I hesitate to call the desktop zoom a feature, since we still haven't
come up with anything it can be used for, but your list of pros/cons
seems fine. I would add as a con that it very prominently advertised
(one of the two buttons in the cashew, enticingly animated) and yet
cannot be used. I don't think it confuses users, but it could be
difficult to get back from the highest zoom level, as the button
becomes very difficult to hit.

Surely you must agree that if the next version of some program added a
shiny button to do Foo, and then you click on it to find it doesn't do
Foo in a way that is useful, you would be disappointed. If it did a
partial job of Foo, it would be ok, as you realize that it is in
development and will get better. But if it just doesn't do Foo at all,
then what's the point for it to be there?

With respect to fixing bugs, it's impossible to know if the bugs that
were fixed due to user reports would not have been fixed anyway in the
further development of the feature to 4.1, so the net result is
ambiguous.

Anyway, I'm sure you have more important work to do.. (I'm home sick so
I don't) I suspect you have too much passion to be convinced here, so
we'll just have to agree to disagree. (God I used to hate it when
people said that :)

dave taylor said...

"most people won't be able to see beyond their personal horizons"

Most people can over some parts of their lives just not in the exact same way that you are doing otherwise what you are doing would have already been done.

"yeah, after more than a year of dealing with "you're a liar", "plasma is shit", "fuck you" type communication on a pretty much daily basis it tends to shake one."

The worst part of this all is, is that the appointed community leader of Ubuntu is the most vocal unconsidered "Plasma is shit" person in a positition to be heard, with that attitude how did he get his job (oh yeah LugRadio is kinda successful).

"one can not be passionate and not be moved inside. and one can not create great things without passion. (passion alone is not enough, nor does it guarantee success; but it is a necessary ingredient)"

The older I get the more it appears that Buddha was right. The more passion you have for life the more things can bring you pain so you abandon passion but then you have no room for life, catch 22 as always - your damned if you do and your damned if you don't....

"thanks for your support, however. it does mean quite a lot"

I can also do something more solid, if I do manage to pick up what Plasma is putting down, I am willing to spend some time producing some media that expalains where you are heading which should alleviate some of the skepticism.

Aaron J. Seigo said...

@leo: "you would be disappointed."

i'm not arguing that point at all. we are actually in agreement that the feature is not complete and that it will be nicer when it is.

"If it did a partial job of Foo, it would be ok, as you realize that it is in
development and will get better. But if it just doesn't do Foo at all,
then what's the point for it to be there?"

i've already explained what the point was. i value bug fixes. and no, they were the sort i wouldn't've found and/or fixed without other people using it in the way they did. (you'll just have to trust me on that one since i don't have empirical evidence for that one)

as for "not doing Foo at all" zoom does actually zoom in/out and it works the toolbox code. now, it doesn't let you switch activities, create new activities or provide semantic zooming (we agree on that point). but for the actual zoom, it does do that and it has allowed me to fix bugs in that specific part of things.

i do not believe in keeping a feature under wraps until it's "perfect" because it almost never is until there is q/a done, and my q/a is done by early adopters.

i'd *love* more people running plasma from svn so that features would get more testing prior to releases, but not many people do that (mostly just other KDE developers, which a miniscule in number and certainly very, very limited in scope coverage compared to the general user base) so i'm left with fewer options.

Anonymous said...

not so much hacking with all this arguing! :-) just jocking...keep up the good work! I can't wait to hear some more reports of this meeting of kde's titans :-)

Leo S said...

One more closing comment after sleeping on it. I am concerned that I haven't properly explained the very crucial thing that makes this particular feature (desktop zoom) different to any other feature in plasma.

You say you don't want to wait for features to be perfect before including them, and I agree wholeheartedly. However desktop zoom was not "not perfect", it was just "not usable".

To show the difference between "not perfect" and "not usable", let's look at two features in plasma: desktop icons and desktop zoom.

Desktop icons are "not perfect". They align funny, have borders, and there are issues with selection. However, they can be used. Users can see their files in the Desktop folder, and they can open them. So while there are bugs, the minimum level of functionality is satisfied, and the feature can be justifiably included in the release.

Desktop zoom has its own bugs, but, and this is the crucial difference: it doesn't perform any useful function for the _user_ to compensate for those bugs. So desktop zoom is not usable. It's not a question of it not being perfect, because it hasn't approached that minimum level of usefulness yet. Once we can devise one plausible use case, then it moves into the realm of usable, and can be judged on whether it is perfect or not. Then it can also become a candidate for release.

Now you have said that including the zoom benefited you in the form of extra bugs found, and I retract my previous arguments on that point and take your word for it.
But to be blunt, that is not sufficient criterion to include a feature in a final release.
To me, that is just common sense, so I struggle to find more words to substantiate my point. Lots of unready features get dropped from applications before release because they do not yet provide a benefit to users to overcome the bugs. The quality (and perceived quality) of software would drop if this restriction was not in place.

And now... Saturday. Hope you have a good one.

Cheers,
Leo