Friday, 17 August 2012

Ёфикация

I have been learning the hauntingly beautiful Russian language for some years now, though only since quite recently with some dedication. A wonderful aspect of the language is that it's almost phonetic. Even though my vocabulary is very limited, I can already pronounce almost every word reasonably well, if given the location of the stress.  Such a thing would be completely impossible in English, were it takes years to master this seemingly arbitrary chaos.

I say "almost" because there's a small problem. Apparently, most Russians fail to write the dots on the letter ё. To an educated reader, most of the time the meaning is clear from the context. However, as I am still learning, this makes things quite confusing or even ambiguous sometimes. Of course, I recognise еще as ещё, but все and всё are both valid words with a very similar meaning, respectively "everyone" and "everything". It's also amusing if not painful that English speaking people have incorrectly transliterated Хрущёв to Khrushchev, a mistake which hasn't been made in Dutch, where he is known as Chroesjtsjov.

A peculiar feature is that the letter ё is always stressed. That makes it not clear whether it's a real letter or not. Some people think it's just another way of pronouncing the е. I like to think of it backwards. Maybe it just so happens that an unstressed ё sounds exactly the same as an unstressed е, almost like the о and the а. As argumentation consider for example the endings of the verbs of the е-conjugation, (), -ешь, -ет, -ем, -ете, (-ут) or some of the instrumental case (-ем-ей). All of these е's become ё's when they are stressed. However, this would also require writing the dots on unstressed ё's, which would lead to even more confusion. Nor do I really know whether we could even tell whether an е which is always unstressed might actually be a ё in disguise.

In any case, I try to always write the dots. I was told ё only appeared in children's book and teaching material but during my stay in St. Petersburg I was pleasantly surprised by all the ё's in advertising and packing. The hilarious webshow This is Хорошо also uses them.

Let's hope for a revival!

Two kinds of value

A short post. I have been dabbling around in political economy and it is really interesting. I sometimes wished I lived forever because there is just so much to study.

As far as I have understood, there are two kinds of value. Individual value, sometimes simply called value, which chiefly determined by the labour to produce something, and use value, or utility, which is determined by how much society needs it. At the extremes, a mudpie would have a certain non-zero individual value, though its use value would most likely be none. On the other hand, bread would also have a reasonable individual value, though it's utility is a lot higher. The moment the object is being traded on the market, it gains an exchange value and a price. Exchange value and use value aren't necessarily linked, with diamonds (no use, high exchange) and water (high use, low exchange) as extremes. Some things have no individual value though are useful, like air.

Some of these values are regulated by the "Law of Value", which is an extremely vague concept I can't find a good explanation of. Figures.

Maybe I should read "Das Kapital".

Thursday, 9 August 2012

Fuck. You.Gnome Shell.

Gnome Shell. Fuck you. Fuck you Gnome Shell.
And especially fuck you, Gnome developers. You're brilliant programmers, but brain dead when it comes to user interfaces. Fuck you.
The Gnome programmers are clueless and should be ashamed.

I promise I'll stop swearing, but I had to get that out of my system. Besides, I think it's justified because of the months of lost productivity. And the clear inanity of the whole thing.

I have used Gnome 3 for months and I can now safely say that it is completely broken. Let us see why.

I do want to start with countering the oft-heard argument that all chance is received badly in the beginning. However, if it's still bad after one year and four months, and I still can't use it after trying my hardest for months on end, it's just bad in itself. That argument just doesn't fly anymore after almost one and half year. Besides, you should know something is wrong when you get your own Wikipedia article.

Bad interface

So let's talk about the eponymous shell itself. No dock, and no task bar. The only way to manage running applications is to open an overview that shows miniatures of all open windows. The idea being that you shouldn't get distracted when doing work on an application.
A sound idea perhaps, but it doesn't work out. For developing, I need to have a minimum of a GVim session, a browser window and a few terminals open. It's completely impossible to manage all this without a list somewhere of open windows. Ironically, the overview ends up distracting me because I have to look through all the tiny windows to find the one I need. They don't even take up all possible screen space. Especially distracting is that they get thrown in a different order when windows close and open, something which would never happen to a task bar or dock. Often I (subconsciously) remember the function of a window by remembering its place on the dock.

You know who can work without taskbars or docks? Tiling window managers! These are wonderfully productive systems that don't try to follow the same metaphor like stacking window managers do. Gnome Shell takes something from both and ends up half-assed. Besides, the desktop metaphor might have been a good idea 30 years ago to convince your boss to invest in computers, I think we can all agree it wasn't a good idea then and it is not a good idea now. Places where user interfaces have developed anew, like on the web, follow completely different paradigms.

The also broke Alt-Tab. Alt-Tab doesn't cycle through apps anymore, it cycles through windows. To cycle through the windows of a single app, you have to use Alt-².

Bad implementation

Heaps of stuff is still not implemented and might not ever be for arcane reasons. There's also a disturbing amount of bugs. Given the huge changes they made, that is understandable but I never wanted these changes in the first place.

I'm not completely opposed to the idea of sane defaults, but I should be able to change my font and the font size. Or decide what my laptop does when I close the screen. Things like this are basic in every desktop environment out there for every operating system.

Gnome Shell also crashes way too often. That is especially unforgivable given that most of it runs in JavaScript, which is awesome, yet managed languages cannot crash like system languages do (Segmentation Error). This must mean the developers never invested in graceful degradation.
It is also extremely annoying to get the Sad Computer, "Something has gone wrong", and the when I press the overview key, everything looks fine. I can understand that even with a shell, a window manager and several applications there might still be problems, but letting me see that is just mocking me.

Inconsistent Unicode support
Bad or inconsistent support for Unicode. Take a look at this screenshot. Both of these should be the Cyrillic Capital Letter Я. The window list title displays it correctly, though the label on the right side prints Đ¯. In UTF-8, Я is encoded as 0xD0 0xAF. For some reason, I think Gnome wishes to interpret this as ISO/IEC_8859-4 (Latin 4) or similar. I have no idea how they manage their translation in Russian, Japanese, Chinese and other extremely common languages without Latin alphabet and frankly, this shouldn't be a problem I should fix. My locale clearly states en_US.utf8 and that should be supported.

Gnome Shell has also destroyed my working directory of the Bottom Panel extension I was working on. That is actually quite dangerous. If there's no way for me to safely work on extensions, why would I take the risk of losing a lot of work? Why should I trust it won't do the same to other directories?

Bad documentation

An amazing thing about the new Gnome is that most of the shell is implemented in JavaScript. Together with the half-baked developer console, it's really fun to tinker with just about everything.

With extensions, I'm trying to fix Gnome. I have 15 extensions installed and 11 of them activated and I'm closing in on perfection.

Absolute necessities:
Without these, the Gnome Shell is not usable.

Useful extensions:
Not necessary, but immensely enhance the Gnome experience

But the documentation of Gnome Shell is horrid. I really shouldn't have to dive in the source that often. Yet some rare comments in the source look like they're documentable.

// addChrome:
    // @actor: an actor to add to the chrome
    // @params: (optional) additional params

Isn't this Javadoc? Where is the corresponding documentation?

What the hell is the CSS property spacing? I don't mind them adding new properties, but it is nowhere documented what it exactly does. Is is the spacing between elements? Probably, but how to know for sure? And what would then be the difference be between spacing and margin? I found some vaguely relevant information in the GTK+ source, but I should not have to do that.

Not only is a lot not documented, it is also not even implemented. With the new window manager, Mutter, there is no way for me to know when a window defocuses or pin it. I'm still researching, but it's not looking good for Gnome here.

Conclusion

Gnome 3 is a horrible mistake.

However, given that a large part of the userbase and the developers feel the same, I think part of this mess will be fixed, and I will be able to solve most of my problems with extensions.

PS:
I know it's supposed GNOME. I say Gnome because I don't like shouting. It hasn't been an acronym for 15 years, get over it and start spelling it as everyone pronounces it.

This judgement has been based on Gnome 3.2. Has the situation improved? Let me know.