|Home » Learning Curve » Red Hat Diaries
Open Source Bad Dreams
Toxins do funky things. They can make open source look bizarre.
It must have been the wine. Or that bottle of absinthe they opened after that. I fell asleep on their sofa and didn't even realise I was nodding off.
It had been a long day working on application design. I tried to follow the topics of conversation but couldn't get my mind off my work. That must explain what then followed.
Generally one doesn't remember one's dreams - or nightmares - but this is an exception.
At first it felt like I was being hurtled through a wormhole like in Stargate. When I arrived at the other end I heard a voice telling me the effect would wear off after a while. I looked up and it was Richard Stallman talking to me.
The next I knew I was gazing at a personal computer desktop. I looked to the side and from behind Stallman another figure appeared. It was Mark Shuttlework wearing his cosmonaut suit. He removed his helmet and grinned at me and then he spoke.
'This is what I meant by improving the Ubuntu experience to surpass even Apple.'
They showed me a cross platform app called Songbird. I could feel the wine and absinthe coming back up again.
I looked at my desktop and tried to summarise what I saw without my eyes glazing over. In the bottom left I saw a cute button that obviously was a functional plagiarism of the Windows Start button. But it was much more discreet.
Along the bottom and moving to the right I saw applications tabs on a bar exactly as on Windows. I was not happy to see this. Only half a dozen apps were visible so the tabs were still rather wide.
Next to the right they had the equivalent of the Windows system tray. Small 16 pixel icons in 17 pixel frames. There were about ten of them. I didn't recognise any of them.
There was an empty frame and at the far far right there was an Apple trash can. It was exactly the same trash can image OS X uses. And it was then I noticed this translucent band behind all these items to the right. It was a combination of the Windows task bar and the Apple dock. I started experiencing vertigo. I looked around for a place to sit down. My eyes blurred over.
There were hundreds of icons on this desktop, surrounding this huge window without a title bar that represented an iTunes clone. It looked like the headless horseman. No title bar? The window control font glyphs were off to the right on the menu bar that didn't really belong there anymore. What a mess.
Right above this window and its menu was another bar with another menu. I wanted to throw up. At the far left - at the top of the screen - was an Ubuntu symbol. Precisely where OS X has the apple on the menu bar. I guessed it had approximately the same functionality - why not steal the whole idea?
There was an 'applications' menu - not like the Apple 'application' menu but 'applications' - plural. Followed by other menus. There was a similar section in the lower right. More 16 pixel icons - about a dozen of them. Firefox was here - just as Firefox was on the task bar. Firefox in at least two places. Copycat overkill. Tasteless, gaudy, typical open source copycat overkill.
There was an immense long black space where nothing was happening. My stomach finally started to calm down again. And just when it had I ran into another flurry of icons, again 16 pixels in height but now of a variable width. There were three temperature gauges: one for the first processor, one for the second processor, and a third for the weather report from the local airport. That icon had a little cloud in it. Guess the weather wasn't so good where we were.
I could see Songbird playing here as well. And Songbird's equalizer was there, the lines jumping up and down as some god-awful song distorted through the computer speakers. Mark Shuttleworth spoke up, almost reading my mind.
'That kind of thing is actually very important', he said, referring to the equalizer. I wondered how he'd have answered if I'd asked him why that stupid CPU hog of an icon was so important. Things were getting bad again.
In the upper right hand corner I saw the time (it's always good to see the time) along with a red button stolen directly from Apple. My guess was it was a power button for shutting the computer down. I wanted to click the button and go back to sleep but I couldn't locate the pointing device.
'There are still some details need polishing up', said Mark as he opened the directory with the Songbird bundle. 'You seem to be good at cleaning things like this. Do you see any files that shouldn't be here? Go ahead - tell me. It's OK.'
'But this isn't OS X', I said. 'What is it? Ubuntu? Or Kubuntu?'
'It's Xububuntu', they said in unison.
'Then get me an OS X box', I said. They looked at each other for a second as if to say 'why would he want that' and then Steve Jobs appeared out of the corner carrying a new MacBook. He placed it before me, opened the lid, and there was Songbird's DMG mounted under /Volumes.
I dropped the bundle on Xscan, then on Xfind. It was 30057656 bytes. Version 1.0.0. Distinctly it said version 1.0.0.
The application bundle had 809 items. The monster took 122,733,533 bytes on disk - over 100 MB. I could taste the absinthe coming up again.
'Bring me a painkiller and some strong coffee', I told Mark. Mark turned to RMS and tilted his head towards what must have been a kitchen. RMS bounced off to get me my coffee and painkiller.
'Does he really have sex with his potted plants?' I asked Mark when RMS was out of earshot.
'Yes', Mark replied. I took the bundle under my microscope and started to analyse it. First thing was to trim the 30 KB+ of XAs off the files.
There Is Only XUL
It now began to dawn on me that this was not your ordinary app. And it wasn't built the ordinary way. It had Mozilla's formidable XUL framework used by Firefox.
The next thing I noticed was these crackerjacks were still using Windows INI files - but now had progressed to *UTF-8 INI files*. My soul wept as I pondered how the other half of humanity could go off in the other direction and get so many things so terribly wrong.
I found three classes.nib and three info.nib files to remove. We were down to 803 files. I found 19 TIFFs. Most were in the 1.25 KB range but only needed about 300 bytes on disk each. So minimal savings there. We were down to 122710722 bytes.
I found a crash reporter Cocoa application and an updater Cocoa application. The actual executable of this monster was a mere 27164 bytes. It was only an i386. No PowerPC anymore for these dudes.
I found 82 dylibs. They were presumably only i386 too. These 82 libraries took 87406184 bytes on disk. So this was the brunt of the 120+ MB of this monster. But of course they were buried inside the application bundle. As it was unlikely they wrote all this code just for their Songbird there was a lot of unused code - but worse: there was a lot of non-reused code. Other apps were going to need this but they weren't going to find it. It would remain buried inside this bundle and in practice be inaccessible to those that followed after.
Meaning with new apps you have to download and store those 87406184 bytes all over again.
And meaning if they hadn't dumped support for PowerPC by the wayside this part of the monster would have been almost 180 MB. Which puts it into the iTunes bloat class with a promille of the functionality. Add to that the other binaries that would double in size as well.
And here there are so many people already running Firefox and therefore essentially running these dylibs but are you going to put them in a common location so everyone can get at them and so you don't duplicate them and triplicate them and quadruplicate them over the place?
And then I'm thinking: this monster won't even run on PowerPC OS X boxes. It won't run. Period. What kind of game is that?
RMS came back holding a cup of coffee by its ear with one hand and holding a white pill in the other. His hands were greasy. I wondered if he'd been playing with his beard again. I wondered where else he'd had his hands of late. I motioned to have him put the coffee and pill down on a nearby table. I'd already made up my mind I'd touch neither.
The XUL framework: 461 items, 27238862 bytes, 55144 blocks.
Five English.lproj directories. I could move their contents up one level and remove the directories themselves and thereby save another 20 KB of disk space but I didn't want to bother.
I ran the program peremptorily under OS X 10.5.6 and tried loading in a few files and playing them. 'Twas OK but I clicked a left arrow button and suddenly my song list was gone. I tried clicking the right arrow right beside it but couldn't get them back again. They were gone - just like that they were gone.
Everything was a charcoal gray or shades thereof. It wasn't ugly. I couldn't determine how functional or how reliable it was and I really wasn't interested in looking any further. It's the Nullsoft (Winamp) people now calling themselves 'Pioneers of the Inevitable' behind this one. They've been working on it for three years now. Their HQ is a few blocks from the Embarcadero in San Francisco. Perhaps it's only a drop box address.
Songbird's open source of course. Otherwise RMS wouldn't have sex with it.
But that was enough. I exited and ran Tracker on the monster. Files littered all over the place but at the end of the day (and thanks to Tracker) it was easy to clean up.
'So what do you think?' asked Stallman. I looked at him, pondering in thought for a second. 'I only talk to Mark', I finally replied.
Mark was clearly discomfited but grinned, his eyes bulging. 'Well?'
'I dunno. I just dunno. Looks like a gargantuan effort and prima facie it doesn't look that bad on OS X. But on your Xububuntu it's absolutely horrible.'
'We'll have to work on our icons', Mark said.
'It's not about the icons', I muttered in a frustrated whisper.
'It's never about the icons', said Stallman in his quirky voice from behind Shuttleworth. 'Icons aren't important.'
Mark was now visibly distressed. He turned to RMS, frustrated, pleading. 'But we'll never beat Apple unless we get better icons!'
I couldn't listen to this. I was tired and needed sleep. The taste of rancid table wine and substandard absinthe haunted my mouth. I needed to rest, to sleep off this nightmarish hangover, and to wake up in the morning and realise I hadn't flown through a wormhole, hadn't met Mark Shuttleworth and his mascot Richard Stallman, hadn't seen something called Xububuntu, and hadn't seen a program called Songbird. And ideally I'd find out neither Xububuntu nor Songbird had ever existed.
CNET 2005-12-22: A Firefox for Music?
Boing Boing 2006-02-08: Songbird the Open Source iTunes Killer Flies Today
GigaOM 2007-12-08: Lord of the Birds Songbird
Nightingale: Port Songbird to OpenSolaris