Showing only posts in category “rants”.
Wait. I love standards and I do believe the world is far better with them. Just sayin' that no standard is perfect and motivating something that looks like a bug with “that's standard behavior” is pretty lame.
I rarely use GMail, so I didn't care to look into this so far. I don't care much today either, but I sent a plain text message to someone, and I carefully formatted it in Emacs, and I know that this someone is using GMail and that by default GMail displays text messages in a variable-width font, so I thought — let's check to see if there is an easy way to display text messages the way they should be, that is, in a mono spaced font.
Looks like there was a way, but not anymore. Now you have to resort to all sorts of hacks, like using GreaseMonkey and writing a custom CSS for GMail. How to explain this to someone I write to, or how could I expect anyone I write to to be able to master Firefox so well that they are able to customize GMail by writing CSS?
I also found a Firefox extension (which is too much as well to ask from recipients, but just wanted to look into it). But the last release was sometime in 2008 and it no longer works with the current Firefox.
Why is there so much silence about it, and why is there no obvious reason why they would remove such a simple feature? Any other email client on the planet knows that plain text should be displayed in a fixed font.
I wonder if the real reason has to do with the fact that the default font makes all emails look like Adsense :-(
Wait a minute... Emacs is not my wife. I'm spending too much time with Emacs. If you used Emacs (or VIM for that matter, same thing) for more than a few years, then you know how frustrating it is to try to convince other people about the true genious that rests in your editor. In 10 years of using Emacs I convinced many frieds to try it and some were quite successful and agreed that Emacs is "The Shit". However, half a year later, they kept telling me how Emacs sucks and .Net studio rules. Oh well.
This story is about Emacs and about my wife. My wife knows so little about computers, that to her, the difference between Emacs and Notepad is not obvious. You see, she has to write a few papers for her university degree (God I'm so glad for I never finished one). She did these with OpenOffice.
[ read more ]
So I have upgraded my kernel. Day three. I finally realized why suspend doesn't work anymore. Because along with this kernel update, I also updated the infamous ATI drivers. My never ending nightmare.
I don't want to say that suspend/resume was always dependable. It worked, sometimes. Most of the times, it didn't. Basically, it was random. Sometimes it worked, sometimes it didn't. When it didn't, I risked losing all my work. I was conscious about it, but I still risked, saying—“hey, Linux is in heavy development; I'm using a bleeding-edge kernel; folks don't have support from hardware producers” etc.
It is only today when I realized, after another 3 painful days trying to set things up for the millionth time, that it's not the kernel and it's not Debian. It's ATI. Yes, if you upgrade to kernel 188.8.131.52 and to latest ATI drivers (8.39.4 as I write this) then suspend doesn't work. It hangs with this message: “Suspending console(s)”.
I rebooted a million times. I tried a million variants, only to come up to the logical conclusion (and I wonder how was I stupid enough not to think about it from the first place): “fglrx” can't suspend. It worked, sometimes, with a certain combination of fglrx and kernel versions, but it was buggy. And I blamed it on the wrong side.
By pure chance, I switched my X to a “vesa” driver today to find out that suspend/resume works flawlessly, over and over. Never crashes. With “fglrx”, it crashed twice a day (in those days when it worked at all). But VESA is sooo slow. I guess I should be thankful to ATI that they gave me this buggy driver that wasted tens of hours of my life (but it's oh so fast).
I'm almost 30. It's mid 2007. And I can't suspend my laptop. Thanks to ATI. They can't write a good driver, yet they won't release any documentation. Basically, they don't grant us the right to use their expensive crap hardware—which we paid for. Doesn't this suck?!
Almost one month ago I upgraded my Debian to 4.0 (Etch). I did that for no specific reason—I'm just trying to keep my box up-to-date as it's generally a good thing. In this release they switched to a new X version, which for some reason is named 1.3.0. The old version was 7.2 or something.
The version change is planned for a long time and AFAIK it has been in the X.Org development tree for 6 months or so. But, the proprietary ATI driver, one of my primary sources of frustration ever since I bought this laptop, will only work on X.Org 6.7, 6.8, 6.9, 7.0 and 7.1, even though it was last released two weeks ago.
I tried all sorts of hacks but I couldn't convince it to run on X 1.3.0. If you ask me, there are 2 problems here:
The X team shouldn't have changed the version number in such a dumb way. They should have named it 7.3.0. That would make sense. 1.3.0 doesn't. But anyway, it's a lost battle—they did it and so it shall stay.
ATI should either allow me to force loading it regardless the X version, or just update the fucking driver to support something that has been planned for half a year.
Some people got it to work by either downgrading X (not really an option for me as I upgraded the whole distro and the changelist was huge), and others by rebuilding X after changing the version in the code—which means that there's no practical reason why the driver wouldn't work on the new version and also means that it would only take 30 seconds for an ATI engineer to "upgrade" it.
So here am I with this super-powerful multi-hundred-dollars card, stuck with a slow VESA driver and no acceleration whatsoever. Almost one month has passed and probably I'll have to wait for another 2-3 months until ATI thinks they should update the driver.
Meanwhile, my friends with cheap Intel cards have absolutely no problem and they even have AIGLX + Compiz/Beryl eye-candy desktops, something ATI still doesn't support in 2007 and, judging by how things go, probably never will. It's definitely a great advantage to have open-source drivers! I can understand now why kernel hackers refuse hooks to run proprietary code.
I keep saying that I won't buy another ATI product ever again, but unfortunately when you purchase a brand laptop you don't really have a choice. Except for Linux support, they produce great cards. But why do they make Linux people life so miserable? Dear ATI, can't you hear we hate you? I hate you! F**k you and your cards. And, did I mention I hate you?
sed -i 's/\xe8\xec\x4f\xfe\xff\x85\xc0\x7f\x31/\xe8\xec\x4f\xfe\xff\x85\xc0\x90\x90/' x710/usr/X11R6/lib/modules/drivers/fglrx_drv.so sed -i 's/\xe8\xaa\x72\xfe\xff\x85\xc0\x7f\x23/\xe8\xaa\x72\xfe\xff\x85\xc0\x90\x90/' x710_64a/usr/X11R6/lib64/modules/drivers/fglrx_drv.so sed -i 's/\x0f\x88\x3c\x09\x00\x00/\x90\xe9\x3c\x09\x00\x00/' x710/usr/X11R6/lib/modules/drivers/fglrx_drv.so sed -i 's/\x0f\x88\x3b\x08\x00\x00/\x90\xe9\x3b\x08\x00\x00/' x710_64a/usr/X11R6/lib64/modules/drivers/fglrx_drv.so
Never in my life have I done something as horrible. But it worked. Kudos to whoever created the patch. And shame on you ATI!
Wow. Isn't it cool that I'm still talking about this in 2007? When Windows/Mac folks have it working for years without bothering?
I think this is the most frequent problem happening in Linux, and for some reason you have to solve it over and over, usually involving different steps. It never works until it suddenly starts working and sometimes you don't even remember what you did. :-) Only SynCE is more complicated (I actually made that work, once, then upgraded the kernel and even though I patched and reinstalled all SynCE stuff, it's not working anymore. God only knows why. But that's a future story).
Analysis — It's no secret that Linus Torvalds, Linux's founder, dislikes the GNOME desktop. In 2005, for example, Torvalds posted on the GNOME-usability list that "I personally just encourage people to switch to KDE.".
This “users are idiots, and are confused by functionality” mentality of Gnome is a disease. If you think your users are idiots, only idiots will use it. I don't use Gnome, because in striving to be simple, it has long since reached the point where it simply doesn't do what I need it to do.
Oh, so true! I am a Gnome user since ancient times, but I have to agree Linus on the matter. I've watched Gnome how it went from a powerful and configurable desktop into a toy that's only good to help you see what time is it.
Linus is complaining that Gnome developers reject patches and features (and many times even drop existing features) on the lame excuse that they are too confusing for end users. Let me add my own small story to this.
I'm very upset with these guys. Thought I might be the only one, but it seems the Internet is raving about this. I'm very glad these guys took action, but I'm not sure I will be able to keep my domains. Bottom line is, RegisterFly steals your money and your domains, and it seems there's not much you can do about it.
Looks like Enom might be able to help—but when I tried to create an account, after filling the registration form for 10 minutes I was granted with this dry error message: “We are unable to process this transaction because we are currently not accepting orders from this IP.”. Great. I could use a proxy, but I guess I will be rejected anyway—I'm from Romania, you know.
Side story, I chatted some time ago with a Dell representative (or was it IBM? I forgot) about purchasing a laptop and I was asking if they could deliver to Romania. He asks me back “and Romania is in which country?”. Not sure if he just wanted to make fun of me, but I got the point. Apparently, we don't exist.
I found an interesting discussion about closures. I find this quote particularly true (and amusing):
There has been a great deal of interest in closures lately, driven in great part by the fact that there is talk of adding some form of anonymous functions to the Java. Most of the time, people talk about “adding closures” to Java, and that prompts a flurry of questions of the form “what is a closure and why should I care?”
Yes, why would they care? As someone put it, if you always programmed in Basic, you think you don't need recursion. You can't comprehend a complex language feature—such as recursion—unless you actually try to make some sense of it. Yes, no matter how many computer science courses you'd take, you can't do real programming unless, well, you do real programming. In other words, your teacher might have told you what recursion means, but unless you actually use it, you'll never know what is it good for.
Consequently, I think there are 2 types of programmers.
Some would spend a lot of their free time trying to understand and make use of some techniques that might—or might not, but usually will—serve them for real-world problems.
The other camp is very boring: those are the people that are payed for some job and only do what their boss asks.
Now, the boss will never ask you to use closures (or any other language feature for that matter). He'll just tell you “do this” ASAP, and you have to figure out how to finish it as soon as possible. Well, using closures, ASAP can mean a lot sooner than without them, no matter what language are you programming in (assuming of course that it supports this 30-years-old concept; some new and much hyped languages still don't.).
I have former colleagues that have completed their B.S. in computer science (which I still didn't). One of the courses you do in the college is an AI course which, of course, uses Lisp as the supporting language. Well, the horror is that none of them understands what's a closure, and asks me every time I mention the word “OK, Java/C# might not have that, but why would I need it anyway?”.
So after preaching functional programming for some time, and after I saw my fellows here ignore me, I've come to the conclusion that it's better for them not to understand it. A boss is a boss, and he'll favor someone who has a B.S. (which I don't). So I at least want to keep the technical advantage. :-p
So, ya Java folks, don't even think about closures. You don't need them. Just focus on writing specs and UML-s and Factories and Managers and Listeners and Executors.