Linux vs Windows XP Bootup Speed

I got into a conversation on IRC today about relative performance between Linux and Windows XP machines. A true blue dyed in the wool fellow was falling all over himself about how much faster WIndows XP was, and how sluggish Linux was, and he couldn’t see how anyone would use Linux because it was such a performance hog.

I have on my desk two machines that are relatively equal in use configuration. They are both development machines, configured with MySQL, Apache, various editors and other environments, including chat clients and a variety of daemons. In general terms, they’re equivelent.

So I decided to boot each machine from scratch, starting a timer at the end of POST, when the first part of the OS loads. Stop-timer was when CPU usage went down to ‘idle’. Windows XP meant the Task Manager CPU usage indicator was hovering around 6%, and on my Linux box, when my load manager showed the job queue was basically empty.

Machine 1 : yawl (Kubuntu Linux, Pentium 4 2.26gig, 2 gig memory):
Time to startup: 2 minutes, 0 seconds.

Machine 2 : clipper (Windows XP, Dual core 2.16gig, 2 gig memory):
Time to startup: 2 minutes, 53 seconds.

The XP machine was slower, but it shouldn’t have been. It is a dual core machine. While that doesn’t translate immediately to 2x the performance, it should at least show an improvement over the older, slower single core machine. Apparently not.

Lets try some other bits.

yawl: Time to start up eclipse: 22 seconds.

clipper: Time to start up eclipse: 34 seconds.

I don’t know what other benchmarks I can run here. XP is a slower OS than Linux.

I’ll caveat something though. There are tools for XP that are optimized for it. Some GUI apps are far faster under XP than they are under Linux. But to my mind that shows that things can be made to run faster on an XP box. But for folks who make blanket statements about XP being faster / less bloated / whatever than Linux, think a little more about what you’re using as a basis for that statement.

Coconut gets a facelift

Ever since I first wrote Coconut, the web interface to CONGO, I’ve been using the same stylesheet. It was really my first foray into stylesheet-driven design and layout, and while it was a good first try, it was ugly as sin.
Last night I finally sat down to rewrite the stylesheet into something reasonably attractive. I got rid of the dark background and greytones, and the ‘All Caps’ font styles, and used more pastels.
I’m pretty happy with the result, but for the hundred or so folks who are used to the old look and feel, it’ll be a dramatic change!

Oh Apple, you guys crack me up!

Those crazy guys at Apple. Look at this wonderful April Fools joke they did.
So. So. Check this out. They modified their Apple Updater on Windows machines to pop up a window, and… I swear, I can’t stop laughing… even though I don’t even HAVE Safari or iTunes installed, they’ve put them on the updater list (as a “Software Update” *BWAH*), and automatically CHECKED them! Not only that, the highlighted button on the dialog is to “Install 3 Items”, so anyone could easily come along, see the update window “Oh yes, I need the Quicktime update” and… and… BANG! They have another 88 megs of software installed that they probably don’t even want!
I tell you, those guys have the best designs, the best platforms, and they make some great stuff, but it’s the little tweaks like this, the little jokes, that just crack me up. I mean, cmon. An updater that tried to trick you into installing software you don’t have. Hee hee hee!
Thanks Apple, for making my week!

Apache sneakiness.

This is a story about system administration. It’s about a system, and it’s administration. In particular, it’s about configuring up Apache to do some magical rewriting of URLs so that a site we’re working on can translate /foo/bar into /foo.php?item=bar . Ready to journey with me? Let’s go…
I’m running XAMPP on clipper – it’s a very nice ‘prepackaged’ solution for developing LAMP-like applications on Windows. It includes MySQL, Apache, PHP, and a handful of other tools, and it makes building and testing apps under PHP quite tolerable under Windows.
What we were doing sounded like a fairly simple application of mod_rewrite. The specific function was whipped up by Tim, and I SVNupped it to clipper – and it didn’t work. I was getting something that basically said “you’re running this script without initializing it properly”.
It got more and more bizarre, as I realized that in fact, mod_rewrite wasn’t even loaded in my Apache install, but it was obviously doing some bizarre bit of rewriting. hits to http://localhost/foo/bar/baz would not give a 404, but would attempt to run the script ‘foo.php’, passing in parameters.
I spent a good 2 hours S’ingTFW on issues with XAMPP, PHP5, Apache, mod_rewrite – grepping through a few dozen configuration files (oh, sorry, ‘find’ing – windows equivelent of grep. Which, incidentally, sucks.). Nothing was coming together.
Eventually I fell to the #apache channel on FreeNode, and sang my tale of woe to them. I stumped several of the more knowledgeable folks there for a good half hour (“it’s a mod_rewrite, but you don’t even have the module loaded. Huh”), when, just like a good mysterious western, a previously silent voice in the back piped up, and uttered one word.
“Multiviews”
It was the word that was to haunt me for… 15 minutes. This is an option that I’ve seen countless times in configuration files, but really had no idea what exactly it did. I metaphorically dragged out the Apache 2 reference docs, and, blowing the dust of the pages, read about Multiviews:

The effect of MultiViews is as follows: if the server receives a request for /some/dir/foo, if /some/dir has MultiViews enabled, and /some/dir/foo does not exist, then the server reads the directory looking for files named foo.*, and effectively fakes up a type map which names all those files, assigning them the same media types and content-encodings it would have if the client had asked for one of them by name. It then chooses the best match to the client’s requirements.

I was stunned. This option, as Tim put it, had the equivalent effect of… “the server closes its eyes and THROWS DARTS AT THE FILESYSTEM until it finds something that looks good.”
Naturally, my vhost had it enabled in it’s Options line. Taking out Multiviews, hupping the server, and lo, no more magical mystery rewriting!
I’ve been administering Apache installs since before it was called Apache, and I’ve never hit this problem before. Let’s hear it for learning experiences! :-/

How a bigger battery changed my life.

clipperOkay, that may be a bit more grandiose than is appropriate, but it does put a finger on how I feel about getting a new laptop battery for clipper, my work laptop.
Previously, I had been getting a around an hour of usage on it on the internal battery. When thinking about places to park and work, having a power outlet nearby was an absolute necessity for anything approaching real work. Sure, on the old battery I could fire it up, check email, do some quick surfing, but it put a hard limit in my head on what I could accomplish. I knew that I’d have to stop within a short window and move or shut down or whatever.
Recently I went from the 6 cell Li-Ion battery (56 watt-hour) to the 9 cell battery (85 watt-hour). The first improvement came from just having a new battery (Dell laptop batteries are notorious for losing their ‘oomph’ after a few years of use), but the other boost was getting a 40% increase in capacity. This drove my work time from a smidge over an hour up to over 3 hours of off-outlet use.
Now, that may not seem like a huge change (“just another 2 hours or so”) but in my work-pattern, it’s enormous. It means I can spend the 1/2 hour after just sitting down checking mail, getting settled, starting up what I need to do, and organizing my brain a bit, and then get into my work groove… without immediately needing to be interrupted by a power-fiddle.
I’m comfortable parking myself in a random restaurant booth and settling in for a good hack session without thinking about how to manage power outlets and cords, or even firing things up while sitting in my car waiting to pick up my son from school.
Yay technology.

Thank you Google! Or thank you KDE! Whatever!

Onward and forward on my quest to avoid using Mozilla-based products on my desktop. I’ve been frustrated by having to load Firefox to get to my Google Calendars and Google Maps. For some reason Konqueror had been refusing to render these sites, and since I’ve started using things like GooSync, I really do need to get into Google Calendar without jumping through hoops.
Last week, on a whim, I tried Google Maps, and then Google Calendar. Lo! They loaded! Cleanly and quickly! Obviously something had changed (one of the drawbacks of ‘web sites as services’ is that you don’t necessarily know when they change things). But whatever happened, I can now view and update my Google calendar via Konqueror, and can GMaps with the best of them.
There are a few small twitches. Streetview is not working in Konqueror, and occasionally there are rendering ghosts, but I can look up, scroll, and even print directions without a problem. Calendar, oddly, is even more stable – I haven’t had a problem yet with it.
Thanks whomever!

Join our BOINC team! Again!

I suppose it’s okay to mention every two years or so that I have a BOINC team that is collectively pooling all idle computing power and using those idle cycles for scientific research and analysis. Since 2 years ago, the number of projects that use the BOINC software has increased and diversified widely, though the core projects (SETI@Home, Folding@home, etc) are still extremely active.
If you have a machine that’s frequently idle, why not consider installing the BOINC client on it, and signing up to join our team? I’ve recently re-started many of my idle clients in an effort to shore up some of the sliding numbers (many of our long time computing partners have stopped submitting updates, due to job changes or just disinterest.)
At our best, we were ranked # 662 about a year ago. Currently we ranked #935 in the world (out of 71,588 teams), according to our page on Boincstats.com.

If you’d like to join, our SETI@Home project page has signup information, though we also have teams at Rosetta and Predictor, both great projects.

Dear Jboss. QA yer damned site.

Why is it so hard for any organization, from opensource on up, to understand it’s a good idea to give the users information they want, in a form that’s useable?
I zipped over to JBoss.org to see if there was an update to the 4.2 server I’ve been using for the last year. Sure enough, there’s a 4.2.2 release that came out in October. Great, I wonder what changed?
Well, the downloads page has the new release on it, and a link to the release notes. Which, you’ll note, is completely illegible because the lines are not wrapping. (I tested this in Firefox under Linux and Windows, Konqueror, and under IE6 in Windows. None of them make that page useable.)
Was it so hard for the JBoss release engineer to click on links and check if they worked? Apparently that capacity is beyond them. Sad.

Animation with GIMP, and a new icon

I’ve been thinking about learning how to make animated GIFs. They’re super-popular on Livejournal and other forums, so why not figure out how to put it all together?
Turns out The Gimp has a very simple mechanism for making animations. Just open multiple images in layers, and then save it as a GIF. When you go to save, it’ll pop up a dialog “This has multiple layers, and you’re saving as a GIF. Do you want to animate all the layers as frames?”
And that’s it! So, naturally, I had to try it out. I needed an icon for gaming, and this seemed easy to put together. It’s 27 frames, took me about an hour to draw the pieces, and then another hour of fiddling with GIMP to get the timing and assembly correct. Mad props to blk for figuring out that if you re-open an exported GIF, you can edit the timing on the frames just by altering the name of the layer (which is TOTALLY screwy in my book, but whatever).
Folks are welcome to scarf it and use it as much as they like. A pointer back to the blog here would be nice, but not required. 🙂

The Spam, it burns!

Just in case you were curious about the levels of spam I have to deal with daily. I have a filter running on my inbox that tracks how much mail I get each day, how much of that is list traffic, and how much of it is spam. Each night, the program (which is available here) generates a report that lets me see how things have been going.
I have many spam defenses running on boomer, and it does an admirable job of filtering out the spam. This week I’ve noticed a fair amount of the 3 line plain text spam getting through to me (which Thunderbird does catch). This spam is notoriously hard to filter due to it’s simplicity. I was sort of curious how much spam actually -was- getting caught.
Here’s my last 7 days of total mail I’m receiving:

Breakdown by day: (17606 posts, average of 2515.1 posts per day.)
----------------------------------------------------------------------
Feb 10 | Feb  9 | Feb  8 | Feb  7 | Feb  6 | Feb  5 | Feb  4
1983  |   1619  |   2636  |   2878  |   3020  |   2985  |   2485

That is the total mail received addressed to me on perhaps half a dozen domains. They all funnel to the same mailbox. How much of that is spam? Lets look:

Breakdown by day: (12676 posts, average of 1810.9 posts per day.)
----------------------------------------------------------------------
Feb 10 | Feb  9 | Feb  8 | Feb  7 | Feb  6 | Feb  5 | Feb  4
1656  |   1216  |   1918  |   1990  |   2135  |   2101  |   1660

An average of 1810 spams received each day. By one mailbox.
The spam report is showing ‘caught spam’. I get very few false positives (mail caught as spam and misfiled), so I have my filters set fairly liberal. Thunderbird is probably catching another 200 spam messages a day. The rest of my mail is list traffic (I’m on a dozen or so mailing lists). And what’s left? Legitimate mail, probably 25 messages a day.
One out of every hundred messages I receive, only one is something I need to pay immediate attention to.
Email is broken. It’s time to look at a radical paradigm change. I’ll be posting some more about this as I move ahead, but I constantly worry about situations where important mail may be missed, and it’s become abundantly clear that the current email situation has to change in order for net communication via electronic mail is to continue being a viable medium.

Grrr du jour, KDE + Flash = FAIL!

Well doesn’t that just frost your fingernails.
This morning an update came down the pike from the Ubuntu distribution that updated the Adobe Flash (nonfree) plugin, a plugin I use primarily in Konqueror. While it’s nice that Adobe is actively supporting the Linux community, this morning’s screwup makes me grit my teeth and take another long look at the rabbithole.
The new flash player is incompatible with the the Gutsy Gibbon (aka Ubuntu 7.10, aka ‘stable’) version of Konqueror. When you try to view any flash content, it the plugin crashes with a SIGSEGV fault.
Some whining on the #KDE support channel pointed me to a workaround using the KMPlayer tool, but after attempting a build under Gutsy, I realized that this patch will only work on Hardy Heron (the next ‘unstable’ release of Ubuntu).
Which I’m not running.
So, as it stands now, I have no flash player under Konqueror. I can start Firefox and use that, but I’ve been avoiding that as much as possible. So in some ways, yeah, I -can- view flash content. But I don’t like it.
As far as I know, there is no fix for this problem, at least until Hardy Heron goes into wide release.
I am grumpy.
UPDATE 2/11/2008 – The folks at Ubuntu have been redeemed! A patch was released that updated much of KDE, and included a fix for the embedded flash player in Konqueror. We’re back to using the Netscape plugin properly. Hooray!

Useful Firefox Plugin du jour

This one’s been nagging me for a while. When doing work on CONGO, I spend a lot of time editing templates and stylesheets within <textarea> blocks. This is all fine and dandy, except Firefox (and most other web browsers) consider the ‘tab’ key to mean “move to the next input field”. Makes it very hard to edit XML or HTML in a textarea when you can’t actually indent the text.
So I was mighty happy to find tabinta, a Firefox plugin that simply allows the tab key to type a ‘tab’ when editing a textarea. Nothing fancy, nothing major, but ZOMG what a difference when editing content.

Wanted: Real Bluetooth Audio Management

Okay folks, I’m looking for help here.

I’m looking for the Right Bluetooth Setup. It consists of two setups:

  • Bluetooth Headphones
    I had a set of Blueant X5 headphones for a while, trying to get them working with my Treo 650. While that experiment failed, it set the tone for what I was trying to do. So, first, I need a good set of BT headphones + unobtrusive mic. Stereo headphones with A2DP support to talk to whatever streaming device I have. Which brings me to:

  • Bluetooth source devices
    I’d like the headphones to be able to take multiple BT sources. For instance, allow me to listen to music streaming from my iPod, but interrupt the music stream to answer my cell phone call, listen to that, then go back to streaming from the ipod. If that’s not possible, I’ve come up with a sort of hybrid arrangement, that has a number of very strong advantages…

  • Bluetooth HFP for Laptops
    If I can’t necessarily switch between Bluetooth feeds, why can’t I have my laptop act as a ‘Bluetooth Audio Manager’? Install a bluetooth HFP profile into the bluetooth stack on the laptop, so the mic and headphones I attach to the laptop become my wireless headphones for my cell phone. Now, before you laugh too hard about this, think. When I’m sitting in Starbucks working away, listening to Radio Paradise via my laptop, what happens when my cell phone rings? A lot of times, I miss the call – even with vibrate. But if I do get a call, I have to take off my headphones, answer the phone, and try to be heard over the general clatter of the coffeehouse. Why not have the laptop pop up a “A call is coming in”, and then I tap [Answer], and the mic in my headset (or on the laptop) goes active, my audiostream switches to the phone call, and the music pauses. I can have my conversation, then ‘hang up’, and RadioParadise returns.

I’ve STFW’ed for this, and apparently there is no HFP profile for Windows or for Linux. I’m sorely tempted to finally break down and buy a Nokia N810, which has quite capable bluetooth support, and see about rigging up an HFP profile for it. Listening to music from the Nokia, and having it switch over to handle my phone calls, then switch back at the end of the call, would be just about perfect. In that case, I wouldn’t need the wireless headphones at all, the N810 would act as my ‘communications client’ to my audio devices.

Any suggestions? I just gotta geek more!