October 21, 2009

Karmic hibernation + more UI ranting

For kicks I tested hibernation in karmic today. It works reasonably OK. From a technical viewpoint it works. From a UI viewpoint it still kind of sucks.

1) Hibernation has no feedback. That is, the screen goes black, that’s terrible UI. There should be a message: “Hibernating… please wait” or some such. That is not that hard. Old GDM did this long time ago if you did hibernation through gdm. Vista does the same thing and it annoys the hell out of me. I am patient and I let a computer that has gone all black on me sit for a little. But some less patient than me have already hit the power button or done other things that you are probably not supposed to do while the computer is trying to hibernate (this is not a what if scenario, I have personally seen this to happen). Even if the screen just displayed the ubuntu logo it would be OK. Display something that doesn’t look like a dead computer.

2) Waking up has feedback (sort of … read on)! Yay! It says “waking up…” Wow! After many years, this works the way it should. I thought: nice … but then the screen flashed and went black. I waited … I waited … nothing. I was ready to complain that waking up is slow as hell. I finally hit the mouse in frustration and the lock dialog went up. Bad UI strikes again. The lock dialog should be brought up automatically. Again something I have had solved in OLD gdm (though I don’t know if any distro actually did shutdown/hibernate/suspend through gdm, they all seemed to think it’s better to “sudo shutdown” or some other bad idea). What I would do is have gdm “wiggle the mouse” for you once the computer woke up. This had the advantage that it worked for all desktop environments and all screen locking mechanisms.

Maybe I should be less lazy and file bugs. Well, I tried to solve these exact issues myself when I was gdm maintainer, but I could somehow never convince anyone that it’s good to have nice clean UI that works, rather than something that technically sort of works but looks like crap.

I remember having a conversation about the “wiggle the mouse” thing. Someone told me “it’s an ugly fix and so it shouldn’t be done”. Apparently it’s better if the UI is bad and users are frustrated than if something under the hood isn’t up to someone’s technical standards. I always thought that it is better to have a system which on the outside works 100%. You can fix technical issues underneath later. Plus the problem of doing things the RightWay(tm) is that it usually requires several pieces of software doing things the same way, and that is rather impossible since everyone’s RightWay(tm) is very different. Plus the thing is that 90% of things are already spaghetti underneath any system, no matter how much bullshit people tell you. Every clean way of doing things is connected to a pile of elephant dung. That’s the way it is. In the star trek future, when one smart person would be able to design and write everything, then things would probably be done cleanly.

Just look at all the discussions on PulseAudio. To me, PA seems to be a good idea. People who argue against PA are usually morons who think they know exactly what the right way of doing things is, and everyone should do things the way they think things should be done. I think the best thing about PA is that it seems to play nice with lots of different APIs in an environment that is a heterogeneous pile of horse manure. That’s the way it will always be, trust me. Even in free software where you can change the code to work in the RightWay(tm), doesn’t mean that someone will change the code.

I am a bit dismayed by all the 3D nonsense in the desktops too. It doesn’t yet work well enough everywhere so that you can build the desktop on it. It works like shit on so many systems, there will always have to be a backup. It is like the current MP3 player I have. I thought a new MP3 player would be nice and fast and easy to use. But behold, it is a clusterfuck of a GUI. It has all these effects that make it slow and unresponsive. My other, far older, mp3 player with a smaller screen is way easier to control and there is no frustration on my part, if it only had more memory. Why can’t they just build new mp3 players by using existing ones and adding more memory. It’s like the UI on my netbook with the standard install of Jaunty. Because someone had the bright idea of writing the UI (netbook remix) in clutter, the thing looks inconsistent, the keyboard navigation is not exactly what one would expect, and on default install it was so slow it was unusable. OK, you say that was because of a buggy display driver. Yes. That’s exactly the point. The main UI should be far more forgiving of bugs in drivers. 3D drivers are buggy as hell on every system. The main UI should be robust. I’ll take things working and just not looking as flashy, over a flashy system that makes my skin crawl because of bugs or slowness. I’ll take a consistent UI I don’t have to think about over a flashy one.

Take web pages for another example. A simple html form is very fast on firefox. Typing on wordpress in visual mode is slower than typing on a 8086 PC. Or facebook, instead of buttons and the UI being simple html, the UI is a pile of not always working javascript. I for example have sometimes trouble pressing buttons. Damnit, buttons used to work on the web 100% of time more than a decade ago. How can you screw up a button. “Hey I know, html has buttons, but I will code up my own button to make it pretty on a specific web browser and will look different from any other button, and my coding skills suck so it will probably not actually work all the time.”