When dealing with bug reports, getting bugs that you can’t reproduce is one of the worst situations to be in. Without the right information it’s impossible to progress. Knowing where the bug is is 90% of bug fixing, if we are unable to reproduce something it’s frustrating for everyone involved.
This week two bug reporters have stood out as being absolutely fantastic. So much so, they deserve a shout out on PlanetKDE.
Mohammad Al-Rashed, when he encountered a bug we could not reproduce, not only managed to find out it was reproducable if KWallet was disabled, but recorded and sent us a video of it happening. With this extra information, the bug was fixed within a day.
I also had a bug in LightDM that I couldn’t shake. The bug only appeared in OpenSuse, and caused the entire KCM to crash. Weirdly, it never crashed when launched from kcmshell, but would crash every time it was invoked from System Settings.
I challenge anyone reading this could have a guess as to what would cause that, I certainly couldn’t. Without being able to reproduce this I had absolutely no hope of fixing this.
Alin Marin Elena kindly went to the effort of giving me SSH access to a machine he set up specifically to reproduce this bug. That night I was able to work out what caused the crash, and another developer Hrvoje Senjan managed to trace it to the specific compile flag being used in the Suse packages that caused this bug to manifest itself.
The moral of all this is if you’re waiting on a developer to fix a bug, be proactive and go beyond the call of duty to help supply all the information needed to fix it.
The goal of KDE when it was first started, was to create a consistent desktop. Where all the look, feel and interaction from one app was the same as the next app.
I’ve seen lots of mockups or discussions which use Plasma components inside desktop applications, the result not only looks inconsistent but prevents a usability problem.
(FIXME mockup showing what I’m talking about)
Not only do our applications risk looking un-seemless with ourselves (FIXME choose a real word), but we destroy all the work that has gone into trying making our applications seamless on Gnome, OS X and Windows. Using traditional widgets we adopt the look and feel of the native toolkit, a form layout will even be aligned differently on each system to match the natvie approach.
Plasma components were designed and built for the workspace domain. Panels, applets and so on. When merged inside the desktop, we end up with behaviour that stops being consistent from one to the next. Layouts are different, keyboard accelerators and shortcuts don’t work, views scroll different and items which provide the same functionality are visually disimilar, requiring the user to re-learn how to use a widget.
It’s wrong to be using desktop widgets in the workspace domain, and equally it’s wrong to be using workspace widgets inside applications. As a general rule;
“if it has window decorations, user interface elements should look like ‘application’ widgets”. – Aurelien Gateau
This isn’t about the technology, there’s scope to use QML inside an application if you are trying to make something visually different and new, but the end result needs to fit in with everything we currently have.