Re: The future of virtual desktops

2011-02-25 Thread Gábor Lehel
On Fri, Feb 25, 2011 at 2:44 AM, Aaron J. Seigo ase...@kde.org wrote:
 On Thursday, February 24, 2011, Hans Chen wrote:
 What I want to know is the following: Are there any plans or outlines
 regarding how to proceed with virtual desktop (and activities)? Are they

 they are orthogonal concepts and i don't think we should at this time get too
 worked up about them.

 for those who don't use virtual desktops now - not an issue
 for those who don't use activities - not an issue
 for those who use both happily - not an issue

 people who know virtual desktops but who are learning and using activities are
 the only ones really affected, and i think it's likely to be a growing pains
 issue as they adjust. it may just as well work itself out naturally.

Doing this kind of case-by-case analysis is a great idea: many times
something which sounds sensible in the abstract ends up looking quite
different when you look at the individual cases it applies to. But I'm
not sure if these are necessarily the most appropriate lines along
which we should be separating things into cases.

First of all, though, a question: what is the Plasma project's goal
with activities? I'm assuming the goal is to have people notice them,
be intrigued by them, start using them, benefit from them, and tell
other people about them, who then start the process anew; but maybe
that's mistaken and it's something different -- say, something more
modest like, well it's there if people want it, but if they don't we
don't really care, maybe.

Going ahead with my assumptions, my concern is that the way things
usually work isn't I'm using X / want to start using X - let's
figure out what X is, understand it, and learn how to use it; rather,
it's X sounds really interesting, I understand how it might help
improve my experience/productivity - let's start using it. In
other words, the part covered by notice them, be intrigued by them,
start using them above. If we view 'understanding' as a necessary
precondition for 'want to start using', rather than the other way
around, then the cases break down like this:

a) those people who are familiar with / understand / use neither
virtual desktops nor activies
b) those people who understand virtual desktops, but not activities
c) those people who understand activities, but not virtual desktops
d) those people who understand both of them

For (d), obviously there is no issue. For (c) (if there are people
like this at all), if the goal is to have people use activities, there
is also no issue. For (b) and especially (a), I think there would be
issues. Simply put, trying to understand two superficially similar but
fundamentally different things at the same time -- or even something
superficially similar to but fundamentally different from something
you already know -- can be very confusing. A lot of assumptions get
triggered by the superficial similarity, a lot of them very wrong, and
it takes a lot of time and pain before you realize which ones are
wrong, how they are wrong, and what you should be assuming instead.

For a familiar example, let's look at the time when both activities
(groups of plasmoids) and virtual desktops (groups of windows) were
presented spatially, as a grid. Both of them tried to occupy the same
mental area at the same time: switching between groups of things using
a spatial grid. No amount of explaining succeeded in making people
understand that really, the two are different. (And even having to
explain things is bad; it's much better if they are intuitive and/or
obvious.) The resulting confusion is a big part of why the evil
separate-activity-per-virtual-desktop option was born. Now, activities
are no longer spatial, which was a good decision; but instead
activities are invading the conceptual territory of virtual desktops
from a different direction: managing groups of windows.

My fear is that when people are confronted with two advanced features
which are both intended for grouping windows, the result will either
be that they get royally confused (as with spatial activities), or
that they go eh, this is a bit difficult, I don't feel like dealing
with it right now, and then they never get around trying it, and
instead are just left with a vague negative impression.

I would assume that only a few very advanced users would really want
to use both at the same time; therefore my proposed solution would be
to move virtual desktops into the settings alongside other power-user
window management features like tabbing and tiling (though I'm open to
being persuaded of others). The case for activities could be made much
more effectively if you didn't have to detour into how is this
different from virtual desktops, why do we have both every half
sentence, and could instead say activities are better than virtual
desktops: here is why. And then you could just say at the end we
acknowledge that while activities are better for the majority of use
cases, there are still some where virtual desktops are 

Re: The future of virtual desktops

2011-02-25 Thread Gábor Lehel
2011/2/25 Gábor Lehel illiss...@gmail.com:
 On Fri, Feb 25, 2011 at 2:44 AM, Aaron J. Seigo ase...@kde.org wrote:
 On Thursday, February 24, 2011, Hans Chen wrote:
 What I want to know is the following: Are there any plans or outlines
 regarding how to proceed with virtual desktop (and activities)? Are they

 they are orthogonal concepts and i don't think we should at this time get too
 worked up about them.

 for those who don't use virtual desktops now - not an issue
 for those who don't use activities - not an issue
 for those who use both happily - not an issue

 people who know virtual desktops but who are learning and using activities 
 are
 the only ones really affected, and i think it's likely to be a growing 
 pains
 issue as they adjust. it may just as well work itself out naturally.

 Doing this kind of case-by-case analysis is a great idea: many times
 something which sounds sensible in the abstract ends up looking quite
 different when you look at the individual cases it applies to. But I'm
 not sure if these are necessarily the most appropriate lines along
 which we should be separating things into cases.

 First of all, though, a question: what is the Plasma project's goal
 with activities? I'm assuming the goal is to have people notice them,
 be intrigued by them, start using them, benefit from them, and tell
 other people about them, who then start the process anew; but maybe
 that's mistaken and it's something different -- say, something more
 modest like, well it's there if people want it, but if they don't we
 don't really care, maybe.

 Going ahead with my assumptions, my concern is that the way things
 usually work isn't I'm using X / want to start using X - let's
 figure out what X is, understand it, and learn how to use it; rather,
 it's X sounds really interesting, I understand how it might help
 improve my experience/productivity - let's start using it. In
 other words, the part covered by notice them, be intrigued by them,
 start using them above. If we view 'understanding' as a necessary
 precondition for 'want to start using', rather than the other way
 around, then the cases break down like this:

 a) those people who are familiar with / understand / use neither
 virtual desktops nor activies
 b) those people who understand virtual desktops, but not activities
 c) those people who understand activities, but not virtual desktops
 d) those people who understand both of them

 For (d), obviously there is no issue. For (c) (if there are people
 like this at all), if the goal is to have people use activities, there
 is also no issue. For (b) and especially (a), I think there would be
 issues. Simply put, trying to understand two superficially similar but
 fundamentally different things at the same time -- or even something
 superficially similar to but fundamentally different from something
 you already know -- can be very confusing. A lot of assumptions get
 triggered by the superficial similarity, a lot of them very wrong, and
 it takes a lot of time and pain before you realize which ones are
 wrong, how they are wrong, and what you should be assuming instead.

 For a familiar example, let's look at the time when both activities
 (groups of plasmoids) and virtual desktops (groups of windows) were
 presented spatially, as a grid. Both of them tried to occupy the same
 mental area at the same time: switching between groups of things using
 a spatial grid. No amount of explaining succeeded in making people
 understand that really, the two are different. (And even having to
 explain things is bad; it's much better if they are intuitive and/or
 obvious.) The resulting confusion is a big part of why the evil
 separate-activity-per-virtual-desktop option was born. Now, activities
 are no longer spatial, which was a good decision; but instead
 activities are invading the conceptual territory of virtual desktops
 from a different direction: managing groups of windows.

 My fear is that when people are confronted with two advanced features
 which are both intended for grouping windows, the result will either
 be that they get royally confused (as with spatial activities), or
 that they go eh, this is a bit difficult, I don't feel like dealing
 with it right now, and then they never get around trying it, and
 instead are just left with a vague negative impression.

 I would assume that only a few very advanced users would really want
 to use both at the same time; therefore my proposed solution would be
 to move virtual desktops into the settings alongside other power-user
 window management features like tabbing and tiling (though I'm open to
 being persuaded of others). The case for activities could be made much
 more effectively if you didn't have to detour into how is this
 different from virtual desktops, why do we have both every half
 sentence, and could instead say activities are better than virtual
 desktops: here is why. And then you could just say at the end we
 acknowledge

Re: QML code style

2011-02-23 Thread Gábor Lehel
On Thu, Jan 20, 2011 at 9:57 PM, Artur de Souza aso...@kde.org wrote:

 Quoting Marco Martin notm...@gmail.com:
 Artur, do you know something more about coding conventions used
 internally for
 QML/QtComponents? if sensible we could just steal, ehm, i mean adopt them ;)

 In QtComponents we use the links below as a reference:

 http://doc.qt.nokia.com/4.7-snapshot/codingconventions.html
 https://developer.mozilla.org/En/Developer_Guide/Coding_Style

 and I could also find the guidelines below one e-mail:

 1. avoid using ';', unless strictly needed (just use it if you are writing
 multiple commands on the same line and even in this case avoid the last
 semicolon).
    target: statusbar; property: y

 2. avoid writing more than one command on the same line :-), but this is not
 strict.
 The example below is good, IMO these cases, PropertyChanges and Animation,
 can have their properties on one line.
        states: State {
          name: 'hidden'
          when:  window.statusbarVisible == false
          PropertyChanges { target: statusbar; y: -statusbar.height }
      }

      transitions: Transition {
          NumberAnimation { target: statusbar; property: y; duration: 300;
 easing.type: Easing.InOutQuad }
      }

 3. use a blank space after and before curly braces (when in the same line)
 '{', '}'
        MouseArea {
          id: mouseArea
          anchors.fill: parent
          onClicked: { button.clicked() }
      }

 4. use 4 spaces for indentation (no tabs)

 5. use double quotes for strings: string instead of 'string'



 I kind of dislike more than one command in the same line and for JS
 stuff I put ; in every end of line/command (while in QML code we
 avoid them). I can find a link explaining the reason behind ending
 with ; every JS line if you want.

 You are also right that it's going to be very good to setup some
 naming guidelines for id's. It can be really a mess if we don't
 follow some guideline.

 Ah, something I almost forgot: following some scripting languages,
 properties that we would like to make private/protected are declared
 with __ preprending their names, for example:

 property int __protected: 0

Sorry for the necro, but: you can also transplant the d-pointer idiom
into QML for private properties. Like this:

TextOrWhatever
{
text: d.some_private_property
QtObject
{
id: d
property string some_private_property
}
}




 Cheers,

 Artur

 ---

 ___
 Plasma-devel mailing list
 Plasma-devel@kde.org
 https://mail.kde.org/mailman/listinfo/plasma-devel




-- 
Work is punishment for failing to procrastinate effectively.
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Plugins in WebView

2010-02-27 Thread Gábor Lehel
are qtwebkit plugins in-process or out of process? IANAPD, but having
a flash plugin in a webpage crash all of plasma does not sound like
fun times...

On Sat, Feb 27, 2010 at 12:55 AM, Aaron J. Seigo ase...@kde.org wrote:
 On February 25, 2010, Mathieu Ducharme wrote:
 - bool pluginsEnabled()
 - void setPluginsEnabled(bool)

 i don't know if we need to / want to offer full access to QWebSettings, but
 would a simple(r) setAttribute(QWebSettings::Attribute, bool) do the trick?
 the rest of the things in QWebSettings don't look overly useful for the use
 cases we have in plasma?

 --
 Aaron J. Seigo
 humru othro a kohnu se
 GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA  EE75 D6B7 2EB1 A7F1 DB43

 KDE core developer sponsored by Qt Development Frameworks
 ___
 Plasma-devel mailing list
 Plasma-devel@kde.org
 https://mail.kde.org/mailman/listinfo/plasma-devel




-- 
Work is punishment for failing to procrastinate effectively.
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Review Request: Bug 198661 (Option to disable scroll wheel on taskbar)

2009-12-23 Thread Gábor Lehel
Okay. I don't want to get into a protracted argument so I'll just say
this and then leave it up to you: Obviously you can't please everyone.
You don't need to cater to the needs of every single person who files
a bug report. The goal should be to please the large majority of
people. Sensible defaults, in other words. (Even in the extended
meaning of sensible defaults about which options to allow in the
first place). If there's a couple of people who still don't like it,
they can patch the code themselves. In this case, the sensible
solution which would please the most people appears, to me, to be to
disable scrollwheel-switching on the taskbar by default, but offer it
as an option, and to just leave it enabled everywhere else. Disabling
it globally (even via an option) doesn't work: everywhere else
-besides- the taskbar, I *want* to be able to use things with the
scrollwheel; I interact with the pager exclusively in this way, for
example. On the other hand, enabling it globally isn't a perfect
solution either, when the taskbar gets scrolled by accident ten times
for every time that it's done intentionally[1]. And offering a
separate option for every single widget is obviously not a good
solution either.

This isn't simple nor elegant. But what you get at the intersection of
humans and computers isn't simple nor elegant. Part of usability is
finding those places where the elegant model in the code doesn't mesh
up well with actual human behaviour, and then putting ugly hacks in
the code to accomodate it. (I guess something which would be helpful
here is a section in the HIG regarding when and how widgets should
respond to scroll events with things other than scrolling. I'd be
willing to help draft one, actually, but given that I'm just a dumb
programmer and not a usability specialist, I'm not sure my help would
be welcome. If it would, where do I inquire?)

(And obviously, I was assuming here that I'm part of the large
majority myself, but if that's not true and most people do actually
want to enable/disable scrollwheel actions *globally*, then I'm the
one who should be getting shafted. But the same principle should
apply, I think.)

[1] To be entirely accurate, I don't seem to actually have problems
with this any longer. I guess after suffering long enough I adjusted
and learned new habits. But it was very annoying for a time.

On Tue, Dec 22, 2009 at 10:38 PM, Aaron J. Seigo ase...@kde.org wrote:
 On December 19, 2009, Gábor Lehel wrote:
 decided to put a giant clock or pager along the middle of their bottom
 panel they would have similar issues, but who does that?

 it happens less frequently with smaller targets, but it does happen. and yes,
 we do get reports about it. so no, i'm not interested in patches that fix it
 in one place or even multiple patches that fix it in multiple places with
 independent settings. one global option should do.

 --
 Aaron J. Seigo
 humru othro a kohnu se
 GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA  EE75 D6B7 2EB1 A7F1 DB43

 KDE core developer sponsored by Qt Development Frameworks

 ___
 Plasma-devel mailing list
 Plasma-devel@kde.org
 https://mail.kde.org/mailman/listinfo/plasma-devel





-- 
Work is punishment for failing to procrastinate effectively.
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel


Re: Review Request: Bug 198661 (Option to disable scroll wheel on taskbar)

2009-12-19 Thread Gábor Lehel
 is there a real, common and valid use case that states i
 want to do mouse wheeling over the tasks widget but not
 the pager? i'd suggest the answer is no.

With respect, I am not sure this is true. I personally have had no
problems with things being wheel-enabled anywhere else besides the
taskbar (well, maybe the desktop, but that's already configurable). In
many places it is quite convenient.

Why?
There are two general cases which tend to happen:

(1) I am scrolling through a web page, .cpp file, etc., and my finger,
for half a moment, veers outside of the thin strip at the edge of the
touchpad designated for scrolling, causing the cursor to move a
hundred or so pixels downward onto the taskbar, where the rest of the
scrolling motion is then finished.
(2) I am reading a document, and after getting to the bottom of it, I
scroll downwards, not realizing that the cursor is in fact resting
over the taskbar and not the document.

In either case, this leads to severe disruption of concentration and
general chaos.

Why is this only a problem with the taskbar (and the desktop), and not
other things? I suggest it is because the taskbar is a big huge target
(even bigger and huger due to Fitt's Law) along the middle of the
bottom of the screen, making it very easy to move the cursor over it
accidentally, whereas other things aren't. I mean, I guess if someone
decided to put a giant clock or pager along the middle of their bottom
panel they would have similar issues, but who does that?

Minimizing the number of configuration options is a noble goal, and
your concern that once this option is granted for the taskbar it's a
slippery slope and it'll end up proliferating all over the place is
understandable, but I don't think, in this case, that those
assumptions are actually self-evident.

On Mon, Dec 14, 2009 at 10:42 PM, Aaron J. Seigo ase...@kde.org wrote:
 hi Ravi ..

 On December 13, 2009, Ravi Vagadia wrote:
 Hello , this is my first patch :)

 thanks for the patch.

 note that we use the KDE libs coding style:

        http://techbase.kde.org/Policies/Kdelibs_Coding_Style

 and it's good practice to keep new code in line with that style. also note
 that we tend to use http://reviewboard.kde.org for patch review.

 anyways, on to the actual issue here: should scroll wheeling move around
 through the taskbar. i honestly don't think it's worth yet another option in
 the tasks widget. in general, options for 'what happens when i click this
 button' tend to get pretty annoying when they are found everywhere.

 but the real issue: is there a real, common and valid use case that states i
 want to do mouse wheeling over the tasks widget but not the pager? i'd
 suggest the answer is no. people want to turn off the scrolling in the tasks
 widget because they have crappy hardware or poor motor control. since that's
 the reason, they tend to have the same request for the pager. and the clock.
 and other widgets that support mouse wheeling.

 so if we are going to do this, i'd prefer to see a general solution with one
 configuration option in one location.

 --
 Aaron J. Seigo
 humru othro a kohnu se
 GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA  EE75 D6B7 2EB1 A7F1 DB43

 KDE core developer sponsored by Qt Development Frameworks

 ___
 Plasma-devel mailing list
 Plasma-devel@kde.org
 https://mail.kde.org/mailman/listinfo/plasma-devel





-- 
Work is punishment for failing to procrastinate effectively.
___
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel