Archive for the ‘Tracts’ Category

Joining the Canonical =~ Microsoft fray

Tuesday, February 9th, 2010

I've had this knocking about for a while in various forms. Following TheOpenSourcerer's post, I figured I'd get it in while he's getting the flack.

About a year ago, I remember there being some rejoicing at the prospect of Canonical open-sourcing Launchpad, their bug/issue/ticket tracking web application. I also remember being a mite confused by it. Canonical is the company behind Ubuntu Linux, the popular open source operating system. Surely they, of all people, had opened the source from the start? What does it say when the company most loudly and successfully pushing open source as an efficient means of software development to your average computer user, develops its in-house software behind closed doors? And, accepting that, why is opening the source means for rejoicing? It is surely the belated Right Thing To Do. If anything, the response should have been along the lines of "Why so long?"

More recently, I decided that a hodge-podge of scripts to keep my files in sync between PCs wasn't a good idea, not least because it didn't actually work, and since my home PC and my laptop were both Ubuntu, and Ubuntu One seemed easy enough to install, that'd do the trick. So I installed it and started using it. Then I decided to get my work PC in on the game. And find this message:

Requirements: Because we want to give everyone using Ubuntu One the very best experience, we require that you run Ubuntu 9.04 (Jaunty Jackalope) or higher.

Which is something I don't think I've come across before - a Free Software company producing software and inventing restrictions. Why shouldn't Ubuntu One work on my Debian desktop?
This incompatibility for the sake of it is something I remember from Windows, and it's not a good memory. I know it's possible to write a client for it - the client is at least open source - but the message that I am required to use Ubuntu to use it? What good does that do anyone?

Most recently came the news that on the netbook edition Canonical have decided to drop OpenOffice.org (which *is* undeniably bloated) and use Google docs in its place. Google Docs is completely proprietary. It's about as closed source as software can get, since you can't even study its behavior, only those interfaces you're permitted with it.
Why wasn't AbiWord used, with it's online service, for example? Or a pared down OpenOffice, perhaps? Canonical has shown in the past that it has the developer hours to make fantastic, awesome, changes to software. Why not do that now?

Ubuntu is the most popular desktop Linux distro. I'm sure there are ways of counting such that Fedora wins, but if something's packaged for Linux, it's available in a Ubuntu-pointed deb. And so it occupies a unique position for free software - it's an opportunity to be a fantastic demonstration of what is possible with free software. It is possible to make commercial progress without restricting user freedom, and it is possible to make a wonderfully usable operating system under these conditions.

Except Ubuntu's not demonstrating that. It's showing that using a billionaire benefactor and a bunch of closed source software we can turn a free operating system into a mostly-freeish wonderful one.

And I'd rather like Canonical to stop doing that, and get back to making free software look good.

Blimey, that was chilly

Tuesday, December 22nd, 2009

So the original question is answered - it *is* possible to ride from Land's End to Lowestoft overnight on the night of the solstice.

It's also a really stupid idea. And you can still give money to homeless people. I've stolen Joel's pictures and stuck them online here.

While in Penzance, we checked the weather forecasts for Sunday and Monday nights. Monday, our original plan, was forecast snowfall for the entire night all along our journey, while the Sunday night was only sleety and haily. We decided that Sunday night was the better option.

Before the ride, Joel and I had different, but quite clear, ideas of what would be the biggest difficulty - I was only concerned with keeping warm, and Joel was more concerned about the prospect of not being able to see where he was going. Joel had therefore augmented his headlight with a pair of foglights, each of equal brightness to the original headlight, and wired them in rather neatly. He's also made himself a pair of nifty seven-way adjustable brackets for them.
I, meanwhile, packed enough luggage for a several week stay - the total luggage capacity of my bike is roughly equal to two decent sized backpacking rucksacks, and I'd filled them with warm (and occasionally waterproof) stuff. I'd also added a screen to my bike, and brought along some emergency heated grips.
In Penzance, I noticed that Joel had a point, and scurried off to Halfords where I bought the first things that looked like they'd fit, and rather than fashion a nice and stable bracket for them, cable-tied them onto my indicators. I spent rather a long time connecting them up, repeatedly trying to work out why there was no power available while not checking whether I'd blown the sensibly included fuse. I think Joel meanwhile reasoned that I had enough excess warm clothing to solve all of Crisis' problems, so he'd just nick some of mine if it was necessary. Though he did bring along a tent.
Thanks in no small part to my ignorance of the fuse we didn't leave Penzance until it was already dark. We got to Land's End for about 5:30, dawdled for a bit, and then left for Exeter.

landsend

On the way up to Exeter the piles of grit along the edge of the road rather quickly turned into piles of snow which wasn't exactly what we'd been hoping for - I'd inferred from the weather forecast that we'd not see snow until at least after the first stop. We pulled in to Whiddon Down services for dinner in the Little Chef. There was snowfall on the petrol station forecourt as we filled up, and the Little Chef car park was effectively a sheet of ice. We parked on the petrol station forecourt, and skated off to interrupt the waiters' game of football and fashion some duct-tape-and-bin-bag overshoes.

whiddondown

Leaving Exeter, Joel pulled over to readjust his headphones and when we went to leave I found I couldn't start my engine. On hitting the start button, the starter motor turned, the lights went dim and then nothing happened, which is pretty certainly down to a flat battery. I whipped out a multimeter to Joel's apparent surprise, and found that the battery was indeed flat. Fortunately, I've had this bike for some time, so there is a lot of wiring all over it that isn't doing much any more, and from this and a screwdriver we fashioned a set of jump leads. After some acrobatics getting the bikes close enough (I didn't have any long spare wiring), the bike came to life again. I tested the charging circuit and found it was at 13V at 5000rpm, so the battery should have been charging. We assumed I'd been running the engine too slowly, which is a long-standing habit of mine, and causes not enough power to be generated to charge the battery.

Stonehenge was dark and cold. We stopped at the side of the road where we suspected Stonehenge would be - there were VW campers parked up in an otherwise attraction-free layby - and Joel took it upon himself to get a photo of him and the stones, while I attempted to coax my feet out of anesthesia. At the time, doing this while standing in several inches of snow didn't seem as counter-productive as it does in hindsight.
The stones were closed, and they even had security guards wandering round keeping people out. Apparently if we waited until dawn they'd let us in, though we mused that we'd arrived at midnight, which must be a significant time to someone.
In the meantime, I checked the temperature on the thermometer on my handlebars, which was reading -5.4 as we pulled up, and to my delight found that it had settled on a decidedly more humane -3.5. In celebration Joel cracked out the coffee and biscuits and demanded we stop somewhere with walls and a roof as soon as possible. Apparently he rather likes the ability to feel his feet.

stonehenge

So, we cheated and found ourselves on the M3 at about 1am. Winchester services were amazing. Firstly, I discovered that my charging circuit and battery were apparently fine - they just couldn't cope with my extra lighting - so I resolved to stop using the extra lights about 20 minutes before any stop to give the battery a chance to charge to the point where it'd be able to start the engine. Secondly, it had heating. I didn't realise how cold I was until I sat down and shook for a few minutes. Joel rudely disturbed the woman in the Costa shirt by asking her if she wouldn't mind making us a pair of coffees, but the guy in WHSmith was quite amused by the idea of company, and repeatedly told us it was a stupid idea.
I did some calculations as to how far on or off schedule we were (I asked the satnav), and found that if we went non-stop up the motorway, through London, and up the A12, we'd get there at abut 6:50am, with dawn happening from about 7:30 to 8:30. With this, and the fact it was jolly cold outside so we'd want to stop, in mind, we set off up the M3.

London was weird, it was the first real traffic we'd seen in about 500 miles and two days, and while feeling like home, we were still about 150 miles from the end. Though by the time we got to Trafalgar square, I found I'd fallen into the mindset that we'd pretty much finished.
We got into London at about 3:30am, and were at Trafalgar Square at 4, as London was waking up in its very businesslike manner, surrounded by festivities. We left London knowing we had just to go up the A12 which be both knew as a far as Ipswich, and then some, and so we should be at Lowestoft well within three hours.

trafalgarsquare

So we left London in good spirits. The first 50 miles or so weren't too bad; we were riding through misty rain on unlit roads with a whole lot of traffic coming in the other direction with maladjusted headlights. In short, I could generally see to just ahead of my headlight, sometimes even as far the vehicle in front. It was about here that I realised how lucky we'd been with the traffic and the weather so far.
Since it was a Sunday night and not much would be open, we'd agreed to pull into every open petrol station, on the grounds that several quick stops would be preferable to none at all. The first stop was pretty icy, but usable. I stocked up on those little energy shots (don't get the Lucozade one, it's vile), and we cleaned visors and headlights.
From there, it pretty much went downhill. Every petrol station was iced over and/or closed until Ipswich, at which point I'd decided the massive Tesco Extra would be pressed into service as a stop. That, too, was icy, so we pressed on.

And then we ran out of grit. From Ipswich, no-one had deigned to grit the roads. We were on the dual-carriageway A12 and suddenly the overtaking lane disappeared under several inches of snow, and shortly afterwards a line of snow appeared down the middle of the remaining lane. This was apparently fine for the car drivers who were behind us, but on a bike you can't really afford to just slip a bit on one wheel, so we were down to about 30mph on a national speed limit dual carriageway. I decided we'd pull over the next time it was sensible, and do whatever we could to make this more humane.
About 5 miles later, the dual carriageway became a single carriageway, which meant that the steel central reservation was replaced with a snow one and the track we had through the snow was replaced with a strip of shallower slush about the width of a car down the middle of the road. By now, I couldn't feel my feet or the footpegs, and instead of nudging the gear changer with my toes I was stomping on it with my heel, with only a vague idea of where it was relative to my feet. I was keeping an eye on Joel in my wing mirrors, since we'd agreed that he'd flash his lights if he wanted to stop and wasn't in a position to overtake and pull over, but from when the countdown on the satnav ticked over to 20 miles to Lowestoft, I think I stopped watching most things, and was overcome with quite some determination to just get to the finish, and go somewhere warm and dry.
That 20 miles wasn't really indescribably bad, but it's difficult to make it sound realistic. So, as a substitute: it was ruddy painful, cold and petrifying and I've never been so happy to see a wind turbine as I was when we arrived at Ness Point. There never was a point to pull over, sensible or otherwise.

nesspoint

We got to Ness Point as dawn was breaking, where our dad was to meet us with a car and a trailer to offer us a lift home. We pulled up and he wasn't there, apparently he'd seen the 400m or so of sheet ice leading up to it and thought we wouldn't be so stupid as to have ridden along it. I'd not given it a second thought.
I rang him, and he arrived and took us to have breakfast at the Asda cafe. At 7:30 am in Lowestoft, there didn't appear to be much open, and we weren't in the mood for looking. After amusingly managing to give us each exactly not what we'd ordered, we went back to the bikes to load the trailer.

trailer

After some to-ing and fro-ing working out which bike was to go where and how (Joel's tyres were antisocially wide), we got the bikes on and strapped down, just as the left tyre of the trailer went flat. Fortunately, there were a couple of guys from the local council in a van, apparently with some time to kill, who offered us a jack to help get the wheel off. They then took dad off to the local Kwik Fit to get the tyre changed while Joel and I strapped the bikes down and tried to avoid noticing the salt they were covered in.
Dad got back with a wheel, fitted it, and we had a delightfully warm, eventless, warm, comfortable, warm, dry and warm drive back through several hours of traffic. I was pretty happy to have taken him up on the offer of the trailer. And warm.

Sponsor Me!

DDR RAM identification and naming conventions

Tuesday, November 3rd, 2009

All (modern) PC memory is SDRAM (Synchronous Dynamic RAM). DRAM, the predecessor, responded to requests as soon as it could after the control voltages changed, SDRAM replies according to a clock cycle (which synchronises it with the system bus).

Pretty much all modern PC memory is also DDR, Double Data Rate. With Single Data Rate RAM, data is only sent when the timing signal is high1. The clock signal is high for some period of time, then low for another period of time of the same length. One cycle consists of one high period and one low period. Single Data Rate RAM can only transmit at one of these, DDR at both.

DDR is then further subdivided into DDR, DDR2 and DDR3. Though the voltages are different (2.5v, 1.8v, 1.5v respectively), the big difference in practical terms is the socket shape:



While we're here, it's worth noting that the most commonly-used difference between DDR and DDR2 RAM, the notch position, is frightfully difficult to identify without an example of the other type against which to compare. More obvious is the gap between the contacts and the notch on the DDR stick (to the right of the notch in the above pic), which is absent on the DDR2 stick.

There are two ways people refer to DDR RAM, as a DDR-XXX or PC-XXXX. For example, DDR200 is also PC1600.
The 200 in DDR200 is the clock rate of the memory modules (the chips on the memory stick). It is double the clock speed of the system it's plugged into, since it is DDR (and so operates twice per cycle).
The 1600 in the PC1600 is the maximum number of bytes per second that the RAM allows, and is not achievable in the real world.

To calculate one from the other, we do

TransferRate = SystemClockRate x DataRate x NumberOfBytesTransferred / NumberOfBitsPerByte
TransferRate = SystemClockRate x 2 x 64 / 8
TransferRate = SystemClockRate x 16
 

Since we're concerned with Dual Data Rate memory, the data rate is equal to two. It transfers 64 bytes per cycle, and each of those bytes is 8 bits long.
The SystemClockRate is the frequency of the system bus, not of the memory itself - DDR200 operates at a frequency of 200MHz, but requires a system with a clock of 100MHz. In order to find the TransferRate given the MemoryFrequency we need to do

 
TransferRate = SystemClockRate x 16
   but SystemClockRate = MemoryFrequency x 0.5
TransferRate = MemoryFrequency x 0.5 x 16
TransferRate = MemoryFrequency x 8
 

Hence 200 x 8 = 1600 means we'd expect DDR200 to give a theoretical maximum of 1600Bps, and so be PC1600.

The above are all maxima - DDR can operate at lower frequencies than its maximum. DDR266, while expecting a 133MHz system bus, can run satisfactorily in a 100MHz system, but it will only operate as DDR200.

Below are the combinations implemented in the real world:

DDR200 PC1600
DDR266 PC2100
DDR333 PC2700
DDR400 PC3200
DDR2-400 PC2-3200
DDR2-533 PC2-4200
DDR2-667 PC2-5300
DDR2-800 PC2-6400
DDR2-1066 PC2-8500
DDR3-800 PC3-6400
DDR3-1066 PC3-8500
DDR3-1333 PC3-6400
DDR3-1600 PC3-12800

The above is basically an aggregation and condensation of what is in the following articles. If you want more detail, go there:
http://en.wikipedia.org/wiki/DDR_SDRAM
http://www.hardwaresecrets.com/article/167/1

  1. or low. I don't actually know, but It's mostly immaterial. The important bit is that it's an 'or' not an 'and'. []

Android Issues

Saturday, October 24th, 2009

Some of this might well be rendered obsolete by the 1.6 update I've just received.

GMail Client
No bottom- or inline-posting, only top-posting. And, while you're at it, there's no way to read the quoted text while replying.
You have to read to the bottom of the email to get to the reply button, which is an odd move from someone who promotes top-posting. It's not even in the Menu.
There's no way of editing Labels or Filters.

POP/IMAP Client
This is very different to the GMail one, I don't know why.
It also doesn't honour read/unread flags in IMAP folders, and I continually get notifications that I've got new mail that arrived six months ago.

Calendar
To set the date in the calendar you have three boxes, year, month and date1 which are adjusted by either entering in the date, or a + and - button on each. This is fine when you don't go over a month boundary, at which point it gets confusing. Since nearly everything I plan is for 'next wednesday' or so, about one in four of my appointments require more thinking than I think they should.
There's no way to add calendars that are not already available to the www version of your calendar.

Google Docs
Editing documents is possible, but creating for some reason isn't. Also, no control over labels.
As in Mail and Calendar, there are web versions of these optimised for the Android screen, but they're similarly crippled.

Contacts
When viewing the contact, everything that has a number has a 'call' and a 'text' option, which fills the screen with never-used options.

SMS
When entering a name into the To: field, the first suggestion is as if you were writing a word with a keypad. For example, entering 'mum', the first option is '686'
Once you've scrolled past the useless entry and selected the one you want, the field is populated with name . Which is only an issue if you want send a message to more than about ten people, since you run out of characters in that field.
Enter is send. This is not a problem, but I _never_ remember and send multiple messages when I mean send.

Google Maps
When selecting start and end points for directions, recently chosen points are arranged alphabetically, not in the order in which you used them. And they're not named by how you searched for them, but by what Google calls them.

Everything's Massive
Google took a very straightforward approach to lists and fingers - make the buttons huge. I'd like more than two options per screen, though, and I think varying the length of the buttons would be a better approach.

  1. The order is configurable []

TCX Sport SS Boots

Tuesday, August 25th, 2009

First Impressions
Er, pretty good, really. Not expensive, not Gore Tex either. Fit really well, are light and comfy. Feel very thin. Zip looks a little weak.

About a week later
I bought these two days before riding to Newquay, which might've been a gamble, but actually turned out to be incrediby fortuitous. I bought them to replace my AlpineStars Web Gore Tex which received rave reviews and were mostly waterproof. 100 miles (Wareham to about Exeter) of rain, and then 80 miles (the length of the A30) of fog later, water hadn't penetrated. Given the lightness of the boot, I was _really_ surprised. The warmth was a bit lacking, though.

About a month later
Nothing to report, really. Still working, doing their job.

Schuberth C3

Wednesday, July 29th, 2009

I've finally replaced my aging Airoh, and have got a shiny shiny white Schuberth C3, in preparation for a ride to Land's End next weekend.

First Impressions
Really good. Really very good. It's light, comfortable and airy, and the view is fantastic. The visor sits a lot lower than the other helmets I tried on, which is odd at first, but I don't spend a huge amount of time looking up. It's also a lot cooler with the front down and the vents open than it is with the chin up, provided you're moving at more than about 10mph.
In short, it's a _really_ nice place to put your head.

About a week later
Land's End didn't happen, due to one half of the participants testing the abrasion resistance of the A1 with his jacket and trousers. So I went to Milton Keynes with my newly-CBT'd brother instead. I've not yet had a chance to test the quiet-at-speed (though even at the heady speed of 50mph that I got to, it felt oddly quiet). It's very accepting of headsets, quite comfortable to wear all day, and doesn't feel too daft with the chin up off the bike. Though I'm sure it looks it.

Some More Time Later (30th August)
Finally done some quicker riding in it, and just been to Newquay and back. It's not quite the silence at speed that I was hoping for - at 70mph+ you know you're moving through air. But I can listen to music and the radio comfortably at that speed, and in stark contrast to before, the engine noise is the biggest disturbance to that. Also, after an entire day's riding it's still pretty comfy, and the pinlock visor adamantly refused to mist up in ~200mi of fog, which was rather nice. It makes a surprisingly loud roar when you turn to look over your shoulder to check for lane clearance. About the noise of a 'normal' helmet, really, but it took me by surprise the first time I tried it.

2 Months Later
It's still good. Not a lot else to report, really. It was beginning to feel a little old and less comfy, but since I've stopped keeping it in my topbox, and allowed it to air occasionally, it's returned to it's normal comfort.

Trivia
An XXL C3 *just* fits in a Givi E45. You wont get another helmet in there, but there's still about 40% of the topbox free. Of the helmets I tried that fit me, the C3 looked peculiarly narrow, but I didn't measure it.

Why I like plain text email

Friday, July 17th, 2009

Firstly, this isn't an attempt at conversion. It's here becaue I keep getting asked why I tend to send and prefer to read mail in plain text. I don't really mind what you send mail in, so long as you accept that I'm not near an html-capable mail reader very often and if there's no plain text part I'll just not read it until I am, and that I treat html email as I do websites - if I don't like the look of it, I don't read it.

When you send me an email, all I want is the words. I've spent much time experimenting with different fonts, point sizes and colour combinations and I know what works for me. It is ~7pt white monospace on dark grey. I don't particularly like having to read emails in other formats, particularly not the current vogue of sans-serif black on white, and if I'm honest I don't see why I should - I've don't recall ever recieving an email where the font face or colour scheme bore much of an effect on my understanding of the contents beyond my ability to read it comfortably.
Similarly, I accept that you probably don't want to read your emails as if it's some kind of inverse midget typewriter, and I will never send you an email that requires you to. If I send you an email, I will send you nothing more than a string of words, and leave it entirely up to you (and the configuration of whatever you choose to read your mail with) do dictate what it looks like when you read it.

Much as there is an html standard1, there are several differences in its implementation; formatting a mail message in HTML will only ever create an email that renders as you designed it in some fraction of mail clients. Microsoft are the traditional champions of standards deviation, and they also produce what appears to be the most populous mail reader. Creating an html email in whatever you use to write emails is therefore unlikely to render in mine in the same way, and neither needs to be particularly incorrect for this to happen.
This makes sense, though. Email has never been a means of sending beautiully typeset documents - it's for exchanging messages. If the formatting of a document is of particular importance, it should be stored in some format that always renders correctly, something like pdf or DjVu.

Plain text is substantially smaller than HTML. While I'm not on a limited mobile broadband contract, I'm still subject to the relentless advance of technology in the UK, and as such rarely come close to the 3mbps that T-Mobile promise me. HTML email takes longer to download than plain text, because it takes a whole bunch of characters to document the layout. Since I'm going to do my best to ignore these in any case, I'd rather not download them.

Plain text email doesn't feature images and obsfucated links - a URL in a plain text email can only possibly be a link to the url displayed, since there is no way of encoding it otherwise.

Finally, I like the convenience of being able to use a plain text mail reader. Wherever I am, if I want to read my mail I can log in to my mailserver, fire up mutt and read the mail. In plain text.

  1. OK, there's a few of them - that's the nice thing about standards. But there is at least a standardised way of declaring which standard you are following, and most accurate interpreters of one are good for all earlier ones []

Why I use Linux

Sunday, May 10th, 2009

This is one of those things that's always difficult to explain. The bits of Linux that I miss on other platforms are not things that you immediately see as being of particular importance. The best example of this is the freedom - why would I care that I'm free to do as I please with this software? I've no idea, if I'm perfectly honest. But what follows is a list of the things I miss the most when I find myself on something else (most often WinXP):

Customisation
With very little in the way of limitations, I can make it look and behave how I want it to. Most obviously, I can customise the taskbars and notification areas, add monitoring icons, change colours, configure keyboard shortcuts and the like. But I can also tear out bits of the system that I don't particularly want, optionally replacing them with options I prefer. Or just use daft keyboard mappings where every key acts as if it was three to the left or something.
The important bit is that my Linux PC works in the way I want it to. When I'm on a Windows box, I must work in the way it wants me to.

Two Clipboards
In xorg, the most prolific window server on Linux, you have two clipboards. One is the 'normal' one which you manually insert stuff into through <ctrl>+<c> or <ctrl>+<shift>+<del> and pasted with <ctrl>+<v> or <ctrl>+<shift>+<ins>. The other is automatically populated by highlighting text with the mouse cursor and pasted with the middle mouse click. It's a fantastically quick way of copying and pasting.

Multiple Workspaces
If you've used them, you're probably nodding in agreement, if you haven't, it's difficult to explain. The best way I can think of is to imagine a KVM switch, but where all the monitors you switch between are those on a multi-monitor display. If anyone's got any better ways of explaining it, please let me know so I can stick it here.

Always On Top
I know Windows Task Manager can do it, but that's about the only window I've never wanted to keep on top of the others.

Text Based
Linux is mostly text-based in its configuration, and is generally blessed with at least three sets of wonderfully powerful text processing tools (the shell, Perl and Python). This means that batch changes to configurations are really easy, as is exporting particular bits of configuration and importing them to somewhere else. Also, the fact that the shell is as powerful as the clicky interface means that pretty much anything you might want to do can be automated. Which brings me on to:

Automation
Windows in particular seems to have a bit of an aversion to automating things. I don't know if it's just the Windows environments I've found myself in, the fact that most tasks are substantially easier (if more time consuming) with a mouse than on the command line, or because the batch file setup is crap, but there seems to be something about a Windows environment that lends itself very well to the pointless replication of manual work.
Linux practically forces you to automate things. Typing commands into a shell, while easy and quick, isn't particularly fun. And it's so obviously easily automatable that, well, you might as well.

Repositories
If I want a gopher client, I open up my repository client, search for 'gopher client', read the descriptions of what it shows up, download what looks best and start using it.
This software has come from the same place as the operating system, so I can trust that it is not malware, that the description is accurate and that it will be compatible with my system. It will also be upgraded when I update the system.
It's easier, more secure, faster and more convenient than the Windows way of trawling the net and trying to work out on what basis to judge the trustworthiness of a particular application. Though if I'm that way inclined, the repository system doesn't stop me doing that.

Hardware Compatability
Maybe I'm just unlucky, but most times I've installed Windows, I've then spent a couple of hours visiting manufacturer's websites trying to find drivers for my hardware so I can get anything at all working. Sometimes on a fresh install I have a working network, but generally I've needed to find graphics, wifi, usb, audio and various chipset drivers at the very least, quite often ethernet ones, too. It's not helped by the fact that Windows is apparently completely unaware of what hardware's in the box until you've installed the correct driver for it, which makes working out which driver you need more a game of chance than a methodical process.

Modular and integrated
The unix philosophy is for software to be small, simple and have a single well-served purpose. This is generally adhered to in the free software world, mostly because it's a pretty good approach.
For example, I have aspell installed. It's a spellchecker and it checks spelling. It does so in my web browser, mail client, IM client and office suite. If i typed in anything else, it'd probably work there, too. This means I only ever need to add words to the dictionary once, and it'll be considered valid everywhere. It also means that the people who develop my web browser and mail client can concentrate on developing good web browsers and mail clients, and leave the spell checking up to the people who develop spell checkers.

The Community and its support
It's massive. Or, perhaps rather, they're massive. And useful. I'm on a number of mailing lists and forums dedicated to sharing tips and helping people with free software. If I'm having trouble with anything Linux based, there're three or four pools of several thousand enthusiasts who are not only likely to know or be able to find an answer, but will probably enjoy doing it. And they run across the spectra of difficulty, use cases and user stupidity.
I've spent a long time trying to find similar for Windows, but there appears to be a jump from free home user level support to pay-for business use support.

No Marketing Department
One fantastically huge advantage of free software is that there's no incentive to make it popular. In contrast to commercial software where the aim to sell as many licenses as possible, the only possible aim of free software is to produce the best software possible. Any large free software project has this aim, since there is no other way to be popular.
This is brilliant, for several reasons. Firstly, the software tends to turn out pretty good. Secondly, marketing teams don't get anywhere near it, so design and feature decisions tend to be founded in reality. There's no 3d accelerated solitaire (to my knowledge), but there's the above list of features. Thirdly, upgrades are non-compulsory. You'll never have version 1.4 stop working because 1.5 is out. You might well find that security updates are no longer released and so you're advised to upgrade, but if you *really* like 1.4 you can hire a developer to patch the security holes and develop it in the direction you want it developed.