Well, that was it, then...

Clementine: A triumph of Free Software

Ages ago, in the long-forgotten days of 2008, there was Amarok 1.4. And it was good. Then KDE4 came along and Amarok was rewritten, reshaped, becoming something... different. Something unsettling. Something not altogether pleasant.
Fear not. Today we have Clementine.
I consider Clementine a triumph of Free Software. A great project fell off the rails, so someone else picked up the pieces, forked it and kept the spirit alive.

Features present

Clementine embodies everything good about Amarok 1.4, in a shiny Qt4 package. The layout is eminently pleasant to use. It uses the classic "spreadsheet" playlist view that saw so much success in Amarok 1.4. If you care about cramming as much information about your music as possible onto the screen, this is as good as it gets. It's boring, and that's a good thing. It gets the job done.
Like Amaork, 1.4, in Clementine you can very quickly drill into your music collection, filter it, view recently added tracks, group songs by artist or album or year or genre or a combination of those things. Clementine also handles all of the edge cases correctly: it lists albums with Various Artists exactly how I'd want (exactly like Amarok 1.4). It correctly handles songs with non-Latin tag text.
Clementine detects additions and changes to my music collection instantly, without the massive scan-lags on startup that plague some other music players. Clementine doesn't bat an eye at my 7,000 song collection. There's no MySQL integration, but I don't need it. Clementine's SQLite backend supposedly handles 300k songs without much problem, which is good enough for me.
Clementine has Last.FM integration. It has three different styles of desktop notification. It has visualizations. It handles USB devices. It understands reply gain. It has cross-fading. It has an equalizer. It has a transcoder. It has a cover manager.
I'm tired of listing features. Let's just say it has every useful feature you'd ever want. And if you don't need a feature, it stays out of your way.
And for a program under such active development, it's rock solid. I have yet to see a crash. And speaking of active development, if you follow the activity in Clementine's SVN repo, you will find that this program is updated almost daily. How the devs find the time, I don't know, but I'm grateful. This program has gone from non-existent to awesome in record time.
Clementine can use gstreamer, so it even works cross-platform. I fired it up on Windows 7 the other day and I was amazed at how good it looked and felt. It supposedly also works on OS X.
Clementine doesn't cook your breakfast for you, but that might be in the works.

How to make a good UI

A perfect example of the polish of Clementine's UI: Tagging. How do you tag a whole album worth of music at once? You can select some songs and right click and go into a dialog, like most music players allow.
  1. Edit a tag for a single song (inline) by clicking the field. Let's say you edit Artist.
  2. Select multiple songs in your playlist. (Click and drag, CTRL-click, Shift-click, CTRL-A, whatever.)
  3. Right click the Artist tag in the song you edited, select Set Artist to "XXXXX", and now all the songs you selected will be updated.
This is the kind of UI innovation that I like. It's simple, it's useful, and it's predictable. You can get things done without going through dialog windows, without a million clicks, without spending a minute scratching your head figuring things out.
(Meanwhile Amarok 2 is busy getting rid of the Stop button and making the volume control circular.)

Features missing

Admittedly, Clementine is missing a couple of features I wouldn't mind having. You can't skin or theme Clementine. You can't rate songs. You can't display song lyrics. You can't "queue" songs. But oh well. I can live without these features because the rest of the program is so darned good. For all I know, these features might pop up next week. I wouldn't be surprised.
The Clementine devs seem to be very friendly and responsive to feature requests and feedback, which is also great.
Clementine is also missing a few features/bloat that I'm glad to see NOT ported from Amarok. Wikipedia integration? Good riddance.

I would pay money for this program.

In November 2009 I had this to say:
(Anyone out there reading this, if you port Amarok 1.4 to Qt4 intact, I will pay you. Seriously. I will pay you money.)
The offer still stands. I will pay money for Clementine. I'm still waiting for a Donate link so I can do so. (Clementine devs, are you reading this?)
Why do I care about this so much? Because I have music playing whenever I'm using this computer, and when you add up work plus free time, I'm at this computer 8-10 hours per day. Music keeps me sane during multi-hour debug sessions. Music is an integral part of my life, and a music app is an integral part of playing music.
It's very important to me that the programs and tools I use all day are comfortable. Otherwise I become cranky. If you were a carpenter, would you want to use a hammer with a wobbly handle all day? I'm a programmer, and I want to use comfortable computer programs.
Clementine is very comfortable.

What in the world were they thinking when they made this???

Since late yesterday morning I have been working on a Sony Vaio VGN-SZ laptop computer. The problem is a minor one: the cooling fan has seized up (a common occurrence with computers of any make and model) which caused it to overheat and switch off within a minute after having been switched on. So the cooling fan either needed to be serviced or replaced. Which I set out to do. Little did I know. Ye gods, what a job.

First off, one would expect a component that is as notoriously susceptible to wear, tear and a need for service as a cooling fan to be more or less accessible to a service technician, so that it can be removed and replaced without taking the entire computer apart.

One would be wrong.

The fan is mounted inside a cut-out in the mainboard, which in turn is located between the bottom shell of the case (which is a single molded part with maintenance covers for the heat sink and memory modules only) and a central chassis plate, on which the rest of the machine has been mounted. In short, you have to strip apart the entire machine right down to the last part before reaching the fan. Literally. The only exception is that you don't have to take the lid apart (which holds the display) but you do have to remove it, of course. And the whole thing has been built with the precision of a switch watch: there are half-millimeter wires running from the WiFi module at the bottom to the WiFi antenna's in the top, and those wires run through grooves in the main chassis plate because otherwise there wouldn't be room for them. That's how compact it is.

So. The main steps to get to the cooling fan are, among other things, as follows:

Remove the battery; unscrew, disconnect and remove the keyboard; unscrew the memory cover and remove the memory modules; unscrew the heat sink cover and remove the heat sink assembly (consisting of a heat pipe, a copper die screwed onto the CPU, and a packet of cooling ribs making up the heat sink); unscrew and remove the switch and LED cover; unscrew the palm rest, disconnect the touch pad and fingerprint sensor, and remove the palm rest assembly;  unscrew the LCD grounding lug; remove the IFX board; disconnect the various LCD cables; dismount the WiFi card and remove the antenna wires; unscrew and detach the LCD screen (a.k.a. laptop lid); remove the memory stick adapter; undo all the screws in the central chassis plate the covers the mainboard; unscrew and detach the switch / LED board and speakers; unscrew and remove the plastic rear section from the case's back shell; unscrew, disconnect and remove the hard drive; unscrew, disconnect and remove the optical drive; remove some copper tape from the mainboard and undo the screws underneath; unscrew and remove various auxiliary PC boards; disconnect the CMOS battery; disconnect the PCMCIA card slot's ribbon cable; disconnect the memory adapter ribbon cable; disconnect the docking station ribbon cable; disconnect the audio and serial connectors ribbon cable (and a handful of other ribbon cables with varying degrees of inaccessibility - you get the idea); remove the screws securing the mainboard to the back shell; unscrew and remove the heat sink top cover; remove the main board and turn it over; disconnect and unscrew the fan, undo the copper tape on its side (which won't stick afterward) and break it loose from the three plastic pins molded into the base plate (meaning you'll have to glue it back later.)

I've left out a few things here and there (this is a copy-and-paste from my notes) but this is the bulk of it.

Once you have done all this, then you can start servicing or replacing the fan.

The next step is of course to put the whole Chinese puzzle back together again. Assembly is the reverse of disassembly. Except it's more difficult and involves lots of pieces of tape that won't stick anymore, and comes with a shoebox full of screws that you now have to puzzle back into the right holes - which is not all that easy even if you kept them in the positions and order in which you took them out (which I did, having been there before.) And if you forget a step, you'll have to go all the way back through the disassembly process to get to that one connector or screw that you forgot about... Ain't it fun?

So at this point I have two questions for Sony. First and foremost, obviously, is "What the f... were you thinking when you designed this????" The second one, though, is just as important: "Why, in the name of all that's holy, did you have to ship a $2000 laptop computer with a $0.20 fan????"

I mean, really... This is ridiculous to the point of almost being insulting.

I'm sure that other laptop manufacturers are more or less guilty of the same thing... but I, for one, will forever steer clear of buying a Sony laptop.

Less than halfway through disassembly, and the parts already fill most of the desk.

After almost three hours of tinkering, there's your problem: a cheap fan with the usual seized up bushing...

Micheal Dell sucks!

Why did I order a computer from Dell? I guess I had a good opinion from 6 years ago when I last bought something from them.
Let's count the ways in which their customer service has failed me. (And my computer isn't even here yet.)
  1. As documented, their website couldn't process my credit card without a phone call.
  2. After a week of my computer being "in production", I started getting more phone calls from an unidentified phone number that Google told me was Dell. Fearing another billing problem, I called back. And I was told "Thanks for calling, but our order tracking system is down. And we're all going home. Call back tomorrow morning.".
    If only Dell had some means to acquire reliable computer systems on which to build their order tracking database.
  3. I called the next day and was told my order was fine. I was also told (per script, I'm certain) that I could check my order status on Dell's website. Which of course I knew. I know it costs the company money every time someone calls, and they try to strongly discourage calls for that reason, but their script made it sound like I was an imbecile.
    I found it quite condescending. I dislike these canned scripts pander to the lowest common denominator of customer. They should be happy to take my call. I just spend upwards of a thousand dollars on their crap.
  4. Turns out the phone calls I was getting were from someone trying to give me "free internet from Shaw or Telus for 3 months", and I was eligible because I bought a Dell computer. So I was being telemarketed before my computer even got here.
    I said I already had internet service, and they said "Oh, too bad, it's for new customers only." I do not appreciate this.
  5. I got an email saying my order shipped. Joy! 20 minutes later I got an email saying my order was delayed, and if it didn't ship in 5 days I should call. What?
    It really did ship though, I have a tracking number. Why the contradictory emails?
All of my phone dealings with Dell were via some offshored far-eastern country, judging by the accents of the phone reps. I have nothing against this in principle; I'm not a xenophobe. But the phone connection is always so static-filled and laggy that it really puts a damper on communication.
My computer isn't here yet, and I just hope to God it works and doesn't break in a month. I kind of wish this article had come out a week earlier.
That'll teach me for trying to save time, I guess. Next time I'll build my own system from scratch. Dell goes onto my List of Companies Not to Buy From in the Future (LCNBFF), along with Westinghouse and oh so many others.

Fuck Flash In The Fucking Neck With Barbed Wire Coated In Arsenic

While at oppugn.us I reject any threats of violence to humans, I am all about threats of violence to evil, shit filled, bug ridden, antiquated, horribly maintained piles of dog shit technology like Flash.

Just in case it's not clear, I absolutely positively hope that Flash is totally wiped out and that it takes all of Adobe and their bosom buddy Microsoft with it down into the dark depths of Cthulhu's anus where things that die are dead for so long that even death is now dead and they are out of my fucking site.

Why? Because for the very last time, I am finally sick of Hulu playing video like it's a covered in molasses. Of course my more technically oriented friends will think that makes me a moron. It works great for them on their Neckbeard 9000 Triple Quad Dual X Neon Nvidia NIOPIATE computer with SSDs in RAID-26 configuration.

Nope, this is on a Mac, or Linux, or Windows and on some reasonable hardware. 1.6GHZ CPU with a decent Nvidia card designed to show HD video. In fact, I can play perfect video from Netflix on both my Mac and my Windows PC with no problems. Just watched "Up" and it looked fantastic from Netflix.

Steve Jobs Says, "Fuck You Ruby Fanbois"

I happen to love coding in C. C is a simple language with only a few moving parts, but more importantly, C is pretty damn close to how a computer actually works. It's not as close as assembler, but it's close enough.
Yes, you have to worry about memory management and buffer overflows, but if you have valgrind you're set.

Valgrind is awesome because it detects most memory errors fairly flawlessly, assuming you're not an asshole who codes retarded C tricks. Valgrind hates tricks. In a way coding C with valgrind forces you to do it right.
And honestly C isn't that hard, it's just that people who are used to shitting out whatever is in their head into a text file have a hard time with it. To code in C you have to know what you're doing and you have to know how the computer works. Sure, that's a pain in the ass, but did you ever think that maybe that's a good thing.

I firmly believe that learning C as your backup language is a great way to make you better in every other language you use. I wouldn't want to do a web application in it, but fuck yeah I'd do another web server in it.

Fuck you ASP.NET

Seriously. How is it possible that something that has had so much money behind it cannot compete with the likes of the open source offerings. For fuck's sake, stop obfuscating my Request and Response variables behind a daft mechanism that requires me to learn an entire page rendering life cycle according to M$ that has almost nothing in common with how web pages are actually created just so I can get something slightly less ordinary done. We aren't all retards you know. I'm pretty sure we can all get to grips with basics of web servers and HTTP protocols. The web is not Windows. We don't need the stupid on-click hierarchy for our code to make sense. At the very least, can you make the viewstate render at a sensible time the page life cycle please?

Seriously. Classic ASP was actually better.

And while we are at it, when the fuck are you going to ship a decent ORM. I mean come on!

Rails... Django... they've managed. Where the fuck are you with this? I'm sure we could all get along just fine if you would at least catch up to the other frameworks. Then we won't look like twats who can't crank out code without a three month lead time just to set up our project and create our admin CRUD.

Writing Is More Powerful Than Your Tech Dumbshit

There's nothing I hate more than people who rant about ranting. Is there anything more incredibly useless than basing your rant on the second order derivative of uselessness that is an already derivative rant?

You see, a problem most nerds have is that they think words are useless. It's actions that matter. Don't just complain about something, go out and fix it. Complaining does nothing. Writing, words, humor, are all pointless because society means nothing and social norms are nothing but a stupid obstacle to truly getting shit done!
Then, why the fuck are you ranting about it? Could it be, and bear with me here, that words actually are pretty damn important? Words have built societies, destroyed societies, founded countries, built nuclear weapons of chaos, inspired space travel, assassinated heads of state, and got lovers to make babies. Words are powerful, and when well written and transmitted through some form of communication technology, can have massive impact.

In fact, the US was founded by a damn rant. A bunch of pissed off white dudes who wanted their tea without taxes got riled up and said "FUCK YOU BITCH!" That rant convinced citizens to fight a war against an incredibly well trained military force and win. An entire very successful country was established and proved that a government run by the citizens could work. Most people don't get this, but at the time nobody in the world except Voltaire actually thought that peasants could run jack shit.

Quit your bitching

I can't fucking stand silly ranters who complain and think the world owes them something. If you're unhappy with something, apply some critical fucking thinking about a realistic way to effect your change, don't just point out the problem and give up!

The instant you point out that you're aware of the problem, but unwilling to fix it, I file you in my personal mental "giant fucking dumbass" bin. If you've just spent half a page describing something that gets your panties in a bunch, and then throw up your metaphorical hands and say "nothing is going to change, woe is me!" then you're a fucking useless drain on humanity productivity, and you deserve all the misery you endure.

Here's a hint - if you've got an issue with something, think about how to fix it. I mean, come on, this is third-grade stuff. Examine your assumptions of how things should be and see where you've gone wrong. If there is a legitimate problem, and you're not just making shit up, consider putting a modicum of fucking thought into changing circumstances so your little world is a little fucking brighter.

Until you're willing to act instead of just bitching, save us all some attention and just shut the fuck up and stew on it some more.

Soccer World Cup: winners and loosers

Nobody can deny that so far the Soccer World Cup games in South Africa are a huge success. Of couse, here and there a few foreign visitors have been robbed (or shot), ticket sales continued to be a shambles, and there has been a considerable amount of ticket fraude, but such things are to be expected anywhere when such a large event takes place. Meanwhile South Africa leaves no stone unturned to polish up its image in the eyes of the world. Which makes complete sense - who wouldn't? And so far soccer fans are very enthusiastic about what they have seen of South Africa, and South Africa is even thinking seriously about 2020 and hosting the Olympics. The mayor of Durban even goes as far as stating that the world has finally realized that South Africa is a very safe country with modern infrastructure and little crime, where everyone is nice and tourists are being treated honestly.

So why could anyone have any justifiable criticism on South Africa's hosting of the world cup games?

Well - one good reason is that there is more than just soccer that makes the world go around. And the question is whether or not the money and resources spent on hosting the world cup games are being spent wisely.

Although the ANC optimistically expects a 0.3% economic growth as a result of South Africa hosting the world cup games, the average South African won't notice anything about it. It's mostly other countries that profit. FIFA, which makes off with most of the proceeds, has been amply discussed in recent previous posts in this weblog, so we can be brief about that. But there are many more cases of the money going right across the border, never to be seen again. Even that oh so very South African symbol of soccer frenzy, the vuvuzela, is made China, while the trainer of South Africa's national team Bafana Bafana is a Brazilian, who takes a fee of a whopping 1.8 million Rand per month (!) home to Brazil. (To put that into perspective: that is roughtly five hundred to a thousand times the average workman's salary in South Africa.) Also a significant portion of soccer fan's spendings go into flights to South Africa, which have been booked abroad and are only a small part of which reflects in revenues in South Africa.

Domestic spendings also rarely benefit the average South African. For a few weeks hawkers have done good business selling flags, caps, shirts and other soccer paraphernalia (made in China) but the market suddenly (and predictably) colapsed when South Africa was eliminated from the games in the first round. Soccer-related business on a larger scale (the building of stadiums, urban renovation, catching up on a decade and a half of road maintenance, t cetera) has been left to only a few companies (the ones with the right political connections) and meanwhile government officials have a ball with what was left of the taxpayer's money.

Meanwhile the bills continues to add up. While the soccer craze has caused many South Africans to spend way more than they can afford, many government projects have been shelved and especially the building sector (which is very much dependent on government orders) is in dire straits. Even worse: in Nelspruit (which the ANC insists on calling Mbombela these days) the municipality has spent so much money on hosting the soccer matches that they now have no money to pay wages and municipal workers will have to go without. Nelspruit, little more than an sleepy agricultural hick town with ambitions, has spent more than 140 million dollar (note: dollar, not Rand!) on a brand new stadium, but after having seen a handful of soccer matches and a few days of fans filling up the local bars, Nelspruit has gone quiet again and nobody really expects that the stadium, or Nelspruit, will ever see a major, well-visited sports event ever again.

While the proceeds in terms of goodwill are difficult to calculate, it didn't take accountants firm Grant Thornton very long to work out that of the $5.5 billion dollars that have been spent on new stadiums alone, no more than $1.7 billion can ever be expected in return, and that South Africa itself won't benefit significantly from any of it. Of course, the soccer matches have caused a huge peak in visitor figures - but there are lies, damn lies, and statistics. The 32% extra visitors are mostly from Lesotho and Swaziland (independent kingdoms that lie within South African borders) and from neighbouring countries Zimbabwe, Mozambique and Botswana - people who traditionally don't have much more (and often less) to spend than South Africa, and often lodge with friends or family. Worse: during the world cup games the regular hospitality industry has only suffered - hugely. Discouraged by noisy soccer crowds and hiked prices regular tourists and business travelers  stay away in droves, and the soccer fans themselves come to watch soccer and little else, and show nlittle interest in other tourist attractions, let alone in spending the night at tourist hotspots that are not in the immediate vincinity of a soccer stadium. And even there, during the soccer visitor peak, a significant percentage of the hotel rooms (which have been built in vastly overblown quantities) is left standing empty. After the world cup games are over this will only get worse, as the current soccer-related occupancy is of course totally insustainable.

Which brings us back to our initial question: can South Africa afford this extravaganza? The country has a considerable foreign debt which, for the moment, shows little sign of being under control - although the situation is stil far better than in, say, Greece. About half of the population has to live below the poverty line (defined at an income of $1.25 per day). Estimates of the actual percentage vary, because there are no reliable exact statistics, as many people living on the streets, in corrugated iron shacks or in cardboard boxes aren't registered anywhere. Official unemployment figures are over 25%, but here the same problem plays a role: literally countless people in South Africa do not appear anywhere in any official records whatsoever, so on paper they don't exist. Estimates of the actual unemployment rate vary from 40% to 60%. And not only black South Africans are affected - these days there are white shanty towns too, and they're not good. Other than that, South Africa has a record number of about 5.7 million people infected with HIV,
and while soccer fans have not been slaughtered by the dozen as some feared, the country is all but save and crime is a huge problem. The infrastructure (from roads and railways to the power grid and telecommunications) are in the process of collapsing.

So there is a lot that needs doing - important things; urgent things; things that South African citizens badly need. But during the past six years little has happened (except for the soccer venues and related visitor hot spots) because all attention and effords have gone to preparations for the soccer world cup. And there's no money left to do any of them now, either, because of the astronomical cost of hosting the games. And by now even the most naive have realized that the world cup is not going to bring in any money (recent estimates predict a loss of about 27 miljard Rand) and that the lasting economic benefits that the soccer world cup games were going to give us all is nothing but a fairy tale.
Related Posts Plugin for WordPress, Blogger...