Search This Blog

Thursday, October 6, 2011

Solid Sprint: day 3

Well, day 2 almost did not finish for some of us since Alex Fiestas, Ilia Kats and me stayed at the office and almost did not sleep.

After long ours of work we did a break by 3:00 am and Ilia Kats showed us his skills in biology. I have not mentioned it but Ilia is finishing his bachelor course in biology and started to use Linux just one year ago :-O He explained to us the research he is doing at university about protein degradation. The chat was very interesting and Alex Fiestas and me continued asking him about other curiosities we have heard about biology. In the end we had good lessons about how proteins work, how to activate and deactivate them, how they are degradated, how to measure how much time the degradation process lasts. All this to research how we get old. If Ilia succeeds maybe we will have a fountain of youth in the future :-D Ah, we also learned (in details) how our immune system works, how vaccines force our imute system to get stronger, how the HIV virus disables it, how DNA works, what happens with our chromosomes when we get older. Very interesting indeed.

Ok, turning back to the silicon beings. I almost finished to implemented the new main window. I hope you like it:



The "Enable Networking" check box and "Show More" button are now in the system tray's right click menu. "Show More" has also been renamed to "Show unsaved networks":



And now the new (unfinished) details window:



I am going to implement the new create connection's window in the next days. Since the usability changes are big I will add then slowly to keep the current code working without losing any functionality. The idea is to hide advanced features/configurations to let the most used ones visible and simpler to use by "Penny" :-)

Another big change in Plasma NM is the replacement of Solid's NM backend by libnm-qt. Libnm-qt does not bring any user visible change, but it is important for us developers. The replacement has been postponed several times and now that Ilia made it compile against our branch nm09 I think it is the time to really finish the job and incorporate it in the "official" Plasma NM. I want to move to libnm-qt before we continue with the usability changes to make my life easier. I am being selfish here for a reason: Ilia is going to start a new semester at university, which will make me almost alone to implement the most important changes in Plasma NM. I plan to finish the transition to libnm-qt next week, then I will apply the new main window changes.

VERY IMPORTANT: currently networkmanagement's master branch holds the Plasma NM version for NM-0.8. A new branch nm08 was created and it holds the Plasma NM for NM-0.8 from now on. The master branch is going to hold the new libnm-qt when I finish to port it to nm09 code. So distributions, pay attention to this change and update your package build system to point to the correct branch.

Update: my "employer", which does not use KDE and does no pay me to work on KDE, gave me a new task with a tight schedule. I will have to postpone everything related to KDE for at least 15 days. I also need to review all the feedback I have received about the usability changes. I am going to change some things to accommodate the new ideas, so probably there will be no new Plasma NM this month.

29 comments:

Anonymous said...

This is looking good. :)

Will the "Show Unsaved Networks" box be checked by default?

Stefan said...

"Unsaved Networks" sounds weird to me. What about "Unknown Networks"?

At least that's what I think it is. Might be though that there's semantics in there which I do not know about.

Anonymous said...

@Stefan: The meaning is "Networks that have not previously been connected to", and given that connecting to a network will save it and its settings, "Unsaved Networks" makes sense to me. That said, it's hard to make it both concise and entirely clear.

BartOtten said...

Sorry to say but I do not understand all the design choices.

1.) Why is the Enable Wireless-checkbox in the widget, and Enable Network and Unsaved Network in the contextmenu? Shouldn't they be in once central place? I guess Lisa won't find the contextmenu-items.
2.) Does the widget re-size automatically? At this moment the last network looks 'cut in half'
3.) Why is there a box in a box in a box in a box?

Your mockup did much better: http://1.bp.blogspot.com/-rMYam0BaCqQ/TnU5aE-c84I/AAAAAAAAAF0/r09-yzgbWbA/s320/new_plasmoid.jpeg

Thumbs up for the effort though. Your project is very much alive and I like to read all those blogs you write :D

BajK said...

Looks awesome! :)
@BartOtten: 1. Because you probably don't want to disable networking altogether, those boxes would add clutter to the plasmoid and I think the "Show unsaved networks" checkbox still acts intelligently, i.e. if there are no saved networks around, it will automatically show unsaved ones or if you were not connected to WiFi at all ;)
3. Well, you can resize it manually if you want to, but I have experienced the list growing huge in New York City downtown :P So, I wouldnt want to have the widget expand automatically. (And I think you should know that resizing a plasmoid is never a nice-looking non-lagging task =( )

Back to topic: The details window (I know it is not finished :P) could be a bit less cluttered. I think it should say "Wireless 802.11" in bigger letters, below it "Connected to xyz" and then just the IP address and connection speed. The more detailed list should be in some "Advanced" view or "Show more details" thing and not right on the details list.
And why is the currently connected AP no longer highlighted or printed in bold letters? I think that was the case for some short time but now you have to spot the "globe" icon (or are the connected ones sorted above the others?)

sebas said...

Hey Lamarque,

Please don't put functionality in the right-click menu, for the following reasons:

- these functions are hard to discover
- it creates the same mess that nm-applet is: for some things you click left, for others you click right: that causes major confusion and is one of my biggest gripes about nm-applet
- it doesn't work for touch. I've designed the NM plasmoid to work with touch as well as with mice, and indeed we use it for Plasma Active quite happily. On touchscreens, there's no right-click, however, and the discoverability is even worse

The functions you put into the RMB menu need to go somewhere else. I understand it's not easy to find space for them, but the RMB menu is the wrong place.

Rezza said...

+1 to sebas - do not copy the biggest nm-applet design flaw - right click menu. It's not as confusing as it was but it's still somehow wrong (+ that touch screen devices issue)...

Also the half cut item in list does not look very well as BartOtten pointed out, also showing all is not an option by default - maybe some compromise - like show more networks based on signal quality etc.?

But you always makes my day when I'm reading your blogposts - and again thanks for all your work!

Anonymous said...

"Unsaved network" sounds like you're describing an implementation detail.

Ralf said...

I agree to what sebas said, plus: Especially the "show unsaved" one must be easy to find, since it is necessary to get a full "available wireless networks" list. Btw, good idea to rename it, I still remember being confused by the old label when I saw it the first time ;-)

On another note, are there any plans to have a stable release of the network management components anytime soon? AFAIK there was none yet, but most KDE users already (have to) depend on that software. The current situation of distributions choosing a random git commit and packaging from it, and updating as they see fit, is really a pain for everyone relying on distribution packages.
Or, to put it differently: Penny will never even see your work without proper releases.

smls said...

@ffejery:

"The meaning is "Networks that have not previously been connected to", and given that connecting to a network will save it and its settings, "Unsaved Networks" makes sense to me. That said, it's hard to make it both concise and entirely clear."

It could be reversed into "Only show previously saved networks" to make it slightly more clear.

@sebas:

"The functions you put into the RMB menu need to go somewhere else. I understand it's not easy to find space for them, but the RMB menu is the wrong place."

I think the right right-click menu is the perfect place for quick-access to selected configuration options.

All configuration options should of course still be made available through the "official" settings dialog (the one you get when clicking "Advanced settings"), but what's the harm of *also* making the most important of them available in the right-click menu?

Only because touch devices don't have a RMB, doesn't mean desktop users should be denied the extra convenience that it brings.

smls said...

@Ralf:

"I agree to what sebas said, plus: Especially the "show unsaved" one must be easy to find, since it is necessary to get a full "available wireless networks" list."

Thinking about it, the "Show unsaved" checkbox could be removed completely, if it were handled like this:

- If no networks are saved, show all networks in the list.

- If at least one network has been saved, show only the saved networks in the list, but at the end of the list show a clickable item called "Show n more..." (where n is the available number of additional networks).


And regarding the "Enable wireless" checkbox...
What's the usecase for having this in such a prominent place? Is there really a need for quickly activating/deactivating wireless networking on-the-fly?
To me it feels more like a configuration option, which should go into the settings window, plus additionally maybe into the right-click menu (see my last post).

Anonymous said...

The details window looks like there is no concept at all.

- You are mixing connection details (IP Address, Connection Speed, Access Point, Band, Channel) with interface details (Type, System Name, MAC Address, Driver)

- What is the use case for displaying System Name and Driver?

- What is the use case for displaying the channel frequency?

- Why are there both Band and Connection Speed?

Kieran said...

One question I had is - Are the buttons at the top tabs?

I'm presuming they are but I think they need to look more like what they are.

With regard to Unsaved Networks, isn't it clearer to reflect what the user is actually wanting to do i.e. looking for other networks?

I also think the box in box in box a bit much and +1 for sebas comments.

But can I say you are doing a brilliant job with an essential part of KDE. Unfortunately getting these kind of interfaces right is a big job in it's own right

cyberbeat said...

I agree with smls regarding right-click context menus - imagine all software would remove right-click-menus - I would not need my right-mouse button anymore.

I really look forward to the new nm-stuff, I still use nm-applet, mostly because of the currently not-working configuration (opensuse).

Lamarque said...

@ffejery, yes, it is checked by default.

@Stefan, the network settings must be saved in NM before it can be activated, so the more precise name is "unsaved network". Most of the time the "unsaved network" is also "unknown" by the user, so both names can be used.

I moved the old "Show More" away from the main window for this reason, normal users have difficult to understand how it works, but for advanced users it makes the window less cluttered.

@BartOtten, 1) they are in one central place in the current plasmoid and people are complaining the plasmoid is big. So I tried to move things that are not supposed to be used by non-tech people away from the main window. It is my intention "Penny" (or "Lisa" if you like it) not finding those settings.

2) No, the plasmoid tries not to resize itself. The last network is indeed "cut" because there is no way for me to precisely calculate the line's height. I coded the plasmoid to show only five lines, but as you can see sometimes it does not respect my code :-/

3) The frame is to make it clear the "Connect to another network" belongs to the network list. It is not necessary I it also does not look that good in other Plasma themes. I can remove it easily.

@BajK, I was implementing the dialog to select which details to show in the kcm before Alex Fiestas tells me we would have an usability
specialist in the sprint, so I postponed this change. Believe, I am aware of several problems in the plasmoid, it is just a matter of lack of time to implement all of them.

Actually the code make the font bold for activated and italic for activating connections are still there but not working. I do not known it is not working anymore. The connections are sorted by type, activation state and name (in this order). I plan to change that to activation state, type and name. It is not that difficult to do that and I am glad Ilia improved the performance of the sorting code. The globe indicates which connects holds the default route, you can have many active connections but only one holds the default route.

@Sebas, ok. "Enabling Networking" and "Show unsaved networks" are QActions now. I can keep them in the RMB and also add them in a second place for tablet users.

@Jaroslav "Rezza" Reznik, well, I coded the plasmoid to show exactly five lines, but it does not respect my code :-/ I think even in the current plasmoid it also cut the connection's name, but since the current plasmoid is higher it does not happen that often.

@Oliver Henshaw, yes, I am. That feature is for advanced users ("Amy"), that is why it is hidden.

@Ralf, "Show unsaved networks" is checked by default.

Yes, there is a plan. The first release will be announced in a couple of days.

Lamarque said...

@smls, I would like to see the plasmoid working on tablets too.

I like the ideia of adding a clickable item to show more networks. It is already half implemented, I just need to make "Show unsaved networks" unchecked by default and add the clickable item, the rest is already implemented.

@Anonymous, you're right, there is no concept at all, that is why I wrote "unfinished".

System name is usefull to advanced users, sometimes we need that to configure firewalls for instance. The driver is usefull even for normal users since some wifi cards can have more than one driver, one being more stable than the other. We we trying to figure out why something is not working Ok one of the most important information is the driver you are using. That is not supposed to be used in a daily basis and I am in the process of adding the dialog to select which details to show. For now it shows all the available details.

Channel, frequency, band and speed are advanced details. They are not supposed to be used by non-tech people. Channel / frequency is usefull to quick look which frequency your AP is using and see if it is likely to have more other AP's interfering. Band is usefull to see if your AP is changing frequency too often, which can cause problems in the connection's stability. Speed is usefull only to know if you are changing it too often, which can indicates you have too much interference. Basically all those numbers can indicate how strong is the interference the connection is receiving. But again, they are not for non-tech users and they are also not needed if the connection is working as it should be.

@Kieran, you right, "looking for other networks" sounds better.

@cyberbeat, I can keep the RMB and add the functionalities to another place.

Dave said...

Can I rant about my usability issue with network manager:

When browsing for wi-fi to steal there is a green tick icon when I can't connect to a network (as it's secured)

and a red cross icon when I can.

This is backwards from most intuitive interfaces as green + tick implies positive. I know fully well technically it's green to say it's secure, but it's secure with me outside it.. which isn't a positive thing.

I've repeatedly made the mistake.

I would rather see it use the locked and unlocked padlock icon instead.

yoda said...

@sebas

did you get born on iPad or what? every fricking tray instance in history of time had RMB action, it is easily discoverable cause people are used to it. I give you point for not making one options in RMB and some other options in plasmoid but listen closely - RMB tray action is supposed to be quick shortcut to most wanted features! (_double_ most important options to give user quick access) That's right, I don't need to open whole IM window to change status, just right click on tray - it's faster and I doesn't mess with windows I have already opened. Tray is not only to display icon, it should be useful and is great for application working in background just like NM!

About touchscreens: Look at tablets, touchscreen applications have other UI then desktop apps for a reason, please stop trying to make good desktop app and good touchscreen app in one, it won't work

@smls

"Is there really a need for quickly activating/deactivating wireless networking on-the-fly?"

Of course there is, first of all, it's linux, so in many cases hot-keys doesn't work and wireless radio drain battery so that option under fingertip is most welcome

Other than that I agree with you

@lamarque new UI is going in the right direction, I like it, it's smaller and seams easier (so regular users won't be overwhelmed). I hope you don't plan to kill advanced options and just to hide them from main window? Details are good, that's why it's called details to see things like channel or driver, if someone doesn't understand it just shouldn't click "details".

Little complain about traffic graph: it neither look very good nor match the rest of plasmoid, maybe simple removing background would help?

Great work!

riessmi said...

good work so long!
but what i am missing:
could you please integrate IPv6 into the details view?
a simple "if(inet6 address)display it under IP Address:" should do it, am i right?

another one: what about moving the Band into the header like: "Wireless 802.11 b/g"?

Anonymous said...

Lamarque, What about this change to solve the usability problem that could happen in tablets (and that I think that looks nice in PC/laptops too):

http://img832.imageshack.us/img832/6222/nmguisuggestion001.jpg

http://img692.imageshack.us/img692/1349/nmguisuggestion002.jpg

Anonymous said...

Sorry by the double post but I forgot to mention about the "Show Unsaved Networks"... is the worst name that could be used to indicate "Show all networks", Please don't complicate everyone (newbies & advanced users) and use "Show all networks" instead of that text because it explains much better what that option does...

Lamarque said...

@riessmi, I have a very long list of things to fix/implement in Plasma NM, IPv6 is at the end of the list, sorry. If we had more developers and hardware to test IPv6 maybe things would be different. No Plasma NM developer has access to IPv6 network.

@Anonymous, honestly I do not like it. I prefer smls idea of showing a clickable item in the connection list to show more networks. For "Enable Networking" I will keep it in the right menu button and also add it to another place for tablet users. The "Enable Networking" is not supposed to be used. I have used it only for debugging, in a daily basis it is useless. Usability speaking the correct way to handle it is just removing it.

@Anonymous, that is why I was not that willing to change the GUI, too controversial. Anyway, my employer, which does not use KDE and does no pay me to work on KDE, gave me a new task with a tight schedule. I will have to postpone everything related to KDE for at least 15 days.

Fri13 said...

I dont know about that "Show more" -> "Unsaved networks".

If I am not mistaken, the first idea to have the networkmanager is to have possibility to detect and find networks what are unseen and unused before.

So what really should be, is that user see first every network what is available and then gets listed them in two ways, the ones what are used (connected) and sort them by strength and then a other what shows all unused networks and those sorted by strength as well.

So if user has been connected to three networks, they are top of the list and under them every other available network.

And if the networking list is so that every network is on same list, were they used or not earlier and are sorted by strength, then the "show more" aka "unsaved networks" shows only the networks what were used?

So is the list by default that it shows all networks, and later user can turn off that feature, so widget shows only networks what have been used earlier? And if user wants to see unused networks, then click "Snow more"?

As I dont find it so good to name "show more" (what is not so good either) to "unsaved". I would simply use "unused networks".

And is it possible to disable the VPN tab? As I dont know anyone who use VPN such manner that they had it, or they need to configure it (it is permamentally configured) by security reasons.

So far the new dialog is much better when compared the current one. Just small polishing (about naming, VPN and bigger button to arrow for getting back from connection properties).

Seems I need to move my reminder 15 days to get touch with this awesome work... :(


@Dave

"This is backwards from most intuitive interfaces as green + tick implies positive. I know fully well technically it's green to say it's secure, but it's secure with me outside it.. which isn't a positive thing.

I've repeatedly made the mistake.

I would rather see it use the locked and unlocked padlock icon instead."

The shield icon (Green/Yellow/Red) does not mean access but security and follows logic and usability.

You do not want to connect to network what is unsecure when you are on the move, as you can not be sure what network is not spoofing the data.

If we dont think the security of wireless networks, then you are correct, it should be "locked" and "unlocked" states.

Almorca said...

I would also change "Show Unsaved Networks" to "Show all networks".

@Dave: I agree with you. All non-tech users I know have the same problem. Locked and unlocked padlock icon would be a great option.

Lamarque said...

@Fri13, nowadays Plasma NM automatically shows all available networks when there is no saved network around. It also sorts connections so that the non-saved networks are always at the end of the list. To see all networks available the user must click on the "Show More" button.

VPN and shared connections have their own tab because they are not as used as regular connections and also to make it easier to create new VPN and shared connections. Actually I plan to create the wired and wireless shared connections automatically, so probably nobody will have to create then before use.

I do not understand your comment about VPN. The back button is not small, I do not see a need to increase it.

I already use a lock overlay to indicate a VPN connection is active.

BartOtten said...

@Lamarque

Still think there are far to much areas. I gonna count.

1.) Title (can be removed, it's obvious)
2.) Switchbar (default in plasmoids? Tabs would be much better so it would connect to the networklist and so be 1 area)
3.) Box, inclusing a Connect to Another Network - footer (+1 area)
5.) Horizontal line (why?)
6.) Checkbox Enable Wireless
7.) Advanced settings in footer

And then I don't count the scrollbar cause I assume you fixed the 'more then 5' bug already.

I'm short in time but if you want I can try to make a mockup that is touchscreenfriendly and much cleaner.

Lamarque said...

@BartOtten, 1) it may not be that obvious for someone that has never used Plasma NM before. I think placing the tabbar without the title does not look good.

2)I already use tab bar. I do not understand your comment.

3) The frame can be removed.

4) Separate things that are not related to each other.

5) It is a kind of flight mode. Have you ever had to disable your wifi card in an aircraft? Or wanted to save power because you knew there was no wifi AP around?

7) It is not a footer, it is button. It is not that obvious in the screenshot, but it will highlight itself if you mouse over to indicate it is clickable. I just think that is prettier than using a Plasma::PushButton like in my previous prototype.

Anonymous said...

Hello, I am not sure if I am at the right place here.

My girlfriend had trouble connecting to a WPA2-secured network. Now the error was that the password was wrong, too short to be precise. The reason I am writing this, is, that KDE gave no error - it just did not connect. She pointed out that it would been helpful if KDE told her that the password can not be right because it is too short (as a WPA2 password).

Don´t know if that´s possible or if You want to do it, but I had to give feedback somehow.

Lamarque said...

@Anonymous, the correct place to report bugs is http://bugs.kde.org. Recent Plasma NM versions, including 0.8.80, do not accept short passwords anymore. Please upgrade to a newer version.