Happy Birthday Linux!
August 25, 2011 11:09 AM   Subscribe

"What would you like to see most in minix?" 20 years ago today, Linus Torvalds told the world about a small pet project he was working on. (Full thread.) An unnamed OS based in part on Minix, it would later become Linux, the operating system behind a huge swath of modern computing. Interestingly, the creator of Minix, Andrew Tanenbaum, was not very impressed by Linux, and publicly debated Linus and others in a very long Usenet argument. (Google Groups version.)
posted by kmz (60 comments total) 11 users marked this as a favorite

 
Linus Torvalds has always come off as a confrontational and arrogant jerk in his writing but I didn't know he's always been like that (never read Torvalds' reply before). But then again Tanenbaum isn't much better. Don't know why this type of behavior is so common amongst programmers. (OH DEAR GOD AM I LIKE THIS?)
posted by Foci for Analysis at 11:25 AM on August 25, 2011 [2 favorites]


Linux Infographic
posted by blue_beetle at 11:28 AM on August 25, 2011 [2 favorites]


Interesting link blue_beetle, but is that image really suggesting that 50% of the Linux kernel developers are women? And what is with that little pink guy?
posted by papercrane at 11:39 AM on August 25, 2011


Don't know why this type of behavior is so common amongst programmers.

It gets really annoying when people back seat drive you, especially if you've got something that works and they're just theorycrafting.
posted by empath at 11:39 AM on August 25, 2011 [3 favorites]


The first time I installed Linux it was on a 386 processor. That would have been 19 1/2 years ago.

The last time I installed Linux it was on a 386 processor. That was probably a bit under 19 years ago.

I'm overwhelmed by how big it has become. Part of the appeal at the time was the small, efficient kernel and easy access to Unix style shell and commands.
posted by meinvt at 11:40 AM on August 25, 2011


There are so many levels of debate about why or why not to use Linux, and so few of them are about design or technical aspects now. The debate tends to center around open/closed source now, and free software, more than it does around design features. At the most technical people worry about compatibility and software/hardware support, but for most users the interfaces are all the same, and that's all they care about.

Thanks for the post, it's interesting stuff. I guess that Linux is all popular and stuff now, so I'll have to go run BSD if I want to be isolated and misunderstood.
posted by Stagger Lee at 11:40 AM on August 25, 2011 [2 favorites]


20 years ago today

I can't be the only person here who now has Sgt. Pepper's firmly lodged in his head.
posted by Faint of Butt at 11:40 AM on August 25, 2011 [4 favorites]


Love the final paragraph in Tanenbaum's first email

Don't get me wrong, I am not unhappy with LINUX. It will get all the people
who want to turn MINIX in BSD UNIX off my back. But in all honesty, I would
suggest that people who want a **MODERN** "free" OS look around for a
microkernel-based, portable OS, like maybe GNU or something like that.


So how's that GNU thing working?
posted by jgaiser at 11:41 AM on August 25, 2011 [3 favorites]


I wonder if Linux would be where it is today, or anywhere at all really, if Linus had not argued his points so forcefully.
posted by Ad hominem at 11:42 AM on August 25, 2011 [1 favorite]


I can't be the only person here who now has Sgt. Pepper's firmly lodged in his head.

I do now, you bastard.
posted by papercrane at 11:42 AM on August 25, 2011 [6 favorites]




I'm overwhelmed by how big it has become. Part of the appeal at the time was the small, efficient kernel and easy access to Unix style shell and commands.
posted by meinvt at 11:40 AM on August 25 [+] [!]



Ha! From the debate:

"The history of software shows that availability wins out over
technical quality every time. That's Linux' major advantage. It's a
small 386-based system that's fairly compatible with generic Unix, and
is freely available."



I find the size and clumsiness of Linux frustrating now myself. The latest releases of major distros *coughubuntucough* have been a bit buggy for my tastes. But that's a tough place to make an argument, because there are always other fish in the sea.
posted by Stagger Lee at 11:42 AM on August 25, 2011


Don't know why this type of behavior is so common amongst programmers.

In my experience, it's particularly common among open source developers. I suspect this comes hand in hand with the parts of the culture that leads to notably fewer women involved than in non-open-source projects.
posted by rmd1023 at 11:44 AM on August 25, 2011


I remember installing Linux from a Yggdrasli Linux distro on a 486, and being amazed that my PC could now write to the floppy drive while doing other stuff.
posted by RobotVoodooPower at 11:46 AM on August 25, 2011 [2 favorites]


I can't be the only person here who now has Sgt. Pepper's firmly lodged in his head.

"Linus Torvalds" has roughly the same meter as "Sergeant Pepper." Get on this, people.
posted by griphus at 11:46 AM on August 25, 2011


meinvt, a compile of the Linux kernel with Busybox on top of it makes for a great lightweight Linux distro. I've used that combo on embedded devices, where I wanted to be able to login and do stuff but was trying to stay lightweight for years.

On Foci for Analysis's "Don't know why this type of behavior is so common amongst programmers.", I've worked with at least one old Un*x veteran (whose name you've heard of, but whom I won't out here) whom I thought of as extremely brusk, but shortly realised that he was extremely smart, and thought everybody else was, and was simply annoyed when people were idiots that they hadn't put enough thought into things before they made a proposal.

I've since come to value those types of people immensely. They don't blow smoke and they call a spade a shovel.
posted by straw at 11:51 AM on August 25, 2011 [6 favorites]


As for the size of the kernel these days. Most of that is driver code, and the developers are loath to remove any device drivers as long as they work. I've read an article from a kernel dev about open source drivers an he wrote that there was driver code in the kernel for a device that had only one user (I wish I could find the link again and see if that's still true.)
posted by papercrane at 11:56 AM on August 25, 2011


Linus, way back when: " As has been noted (not only by me), the linux kernel is a miniscule part of a complete system: Full sources for linux currently runs to about 200kB compressed - full sources to a somewhat complete developement system is at least 10MB compressed (and easily much, much more)."

That's it—I'm going to start calling it GNU+Linux.
posted by kenko at 12:01 PM on August 25, 2011 [1 favorite]



That's it—I'm going to start calling it GNU+Linux.
posted by kenko at 12:01 PM on August 25 [+] [!]


Richard Stallman will be delighted to hear that.
posted by Stagger Lee at 12:02 PM on August 25, 2011 [4 favorites]


does busybox count as a gnu product

if not, does that mean busybox+linux is a different os entirely
posted by LogicalDash at 12:02 PM on August 25, 2011



Don't know why this type of behavior is so common amongst programmers. (OH DEAR GOD AM I LIKE THIS?)

I think it only seems confrontational if you are insecure, and as technical people are usually pretty secure within their domain, this behavior isn't seen as that way.

Also, people in technical fields usually spend more time developing a technical acumen rather than a social one. Constructing a warm fuzzy message is sort of a time consuming, second guessing, - and really uninteresting - effort. It's much easier to just get to the point, and get back to the actual work.

That sort of terseness and brevity is also confrontational because "It's a nice idea that just won't work because you didn't consider X Y and Z." is the same as "we can't do it because it's a bad idea" in that they both say the same thing, but one sugarcoats it and who doesn't like a nice sugar coating ?
posted by Pogo_Fuzzybutt at 12:02 PM on August 25, 2011 [2 favorites]


Swift pickup, Stagger Lee.
posted by kenko at 12:04 PM on August 25, 2011


Line 1?
posted by swift at 12:06 PM on August 25, 2011


Just fyi Foci, Linus isn't simply a tech guru, he's both a tech guru and Finnish, meaning he has double reserves of confrontationalism. Btw, Academics are pretty confrontational too, except mathematicians, who're shockingly polite for academics.
posted by jeffburdges at 12:11 PM on August 25, 2011 [1 favorite]


Through trial and error I have found that the single greatest source of politeness is what programmers call syntactic sugar, words that communicate nothing but sound nice. Advanced programmers hate programming languages that use syntactic sugar because, while it might be mnemonically helpful to the noob coder, it makes complicated programs much harder to read, if only because you can't keep as much code on the screen at once. Their speech tends to reflect this preference.
posted by LogicalDash at 12:12 PM on August 25, 2011 [1 favorite]


Don't know why this type of behavior is so common amongst programmers.

I'm not sure it is "common"; I know an awful lot of very quiet, meek programmers. But the ones who lead projects, *especially* open source projects ... how could they be any other way? You lead off on this kind of project, you are going to be awash in "it won't work", "it's a waste of time", "you suck", "Y is much better and did all the work already", etc. Not to mention the incredible weight of referring arguments, patch wars, etc. It takes a *lot* of moxie to get out and do a big project and to lead programmers. Some, or a lot, of that moxie is going to be arrogance, or at least come across that way. There is no room to suffer fools gladly, and your not going to be show a lot of love until you are very successful.
posted by Bovine Love at 12:20 PM on August 25, 2011 [2 favorites]


err, refereeing arguments, though they get referred sometimes too.
posted by Bovine Love at 12:21 PM on August 25, 2011


My home machine runs Peppermint Linux, which is super fast and clean and has a nice GUI. It's rock solid, reliable, and does the basic stuff I need.

If you're not stuck to using a specific app (and there's a lot cases where you can be), and you're just doing basic stuff, modern Linux is really not a bad way to go.
posted by yeloson at 12:23 PM on August 25, 2011 [1 favorite]


@Faint Of Butt

http://linux.slashdot.org/comments.pl?sid=2397858&cid=37207840
posted by bastionofsanity at 12:36 PM on August 25, 2011


I have been trying to switch to Linux since I first played with Mandrake 12 years ago. Still hasn't happened, but I'll keep trying to make it my daily OS until it's good enough!

Happy birthday, you clunky, confusing bastard!
posted by pjaust at 12:37 PM on August 25, 2011


I remember installing Linux from a Yggdrasli Linux distro on a 486

I remember trying to install Yggdrasil and not succeeding, although it may have been in a 386. Red Hat seemed like such a polished distribution when it came out if for no other reason than a regular geek could get it to install.
posted by tommasz at 12:42 PM on August 25, 2011


LogicalDash, you misunderstand the meaning of 'syntactic sugar.'
posted by ryanrs at 12:44 PM on August 25, 2011 [6 favorites]


*nix at home predates Linux for me. When my first 486 was finished I went and spent $ (actually $$$$) on System V release 3.2 for x86. Because of the $$$$ issue all I bought was the command-line stuff--No X, no Publishers' Workbench stuff (TeX and friends), just ls and awk and sed and fsck and those guys. A few times since then I've installed various Linux distros as command-line-only systems. It still works, AFAIK, especially for servers. I know the Linux kernel is bigger now than it was (and command-line-only has some pretty obvious drawbacks, it's not for your granny I wouldn't inflict it on my kids) but the system you end up with is quite a bit lighter that what you get if you just take all the defaults *coughubuntucough* offers you.
posted by jfuller at 12:46 PM on August 25, 2011


MINIX! Ten years ago in my Operating Systems class we installed Minix on my lab partner's laptop out of a Tanenbaum textbook. My professor looked a lot like Gandalf but more in a homeless man sort of way with clunky, silver snow boots and a saggy old sweater - same beard, though. He had taught himself how to program by building his own computer out of old pinball machine parts and loved to eviscerate any challengers at chess. I ... am not sure I got out of that class what I could have with a different professor, but I *did* really learn about semaphores.

Ten years later I develop almost exclusively in Linux (we are sunsetting our Unix software) via command line. It does what I need it to do. *shrug*
posted by jillithd at 12:48 PM on August 25, 2011


Advanced programmers hate programming languages that use syntactic sugar...
*cries*
posted by SyntacticSugar at 1:53 PM on August 25, 2011 [14 favorites]


So how's that GNU thing working?
Why not download it and give it a go?

But, anyway, happy birthday Linux! Or GNU/Linux for the purists.
posted by SyntacticSugar at 2:05 PM on August 25, 2011


Advanced programmers hate programming languages that use syntactic sugar because, while it might be mnemonically helpful to the noob coder, it makes complicated programs much harder to read, if only because you can't keep as much code on the screen at once.

This is insane.
posted by kenko at 2:39 PM on August 25, 2011 [3 favorites]


So how's that GNU thing working?

Amazingly, it's just about sort of maybe possibly almost ready to use. I used Arch Hurd on my netbook for about a week, anyway.
posted by jack_mo at 3:00 PM on August 25, 2011


No worries kenko, LogicalDash has misunderstand the meaning of 'syntactic sugar.'

Among commonly used languages, C++ is both considered the most difficult and offers the most syntactic sugar, which gets rather subtle. You might argue that C++ is nothing but layers of syntactic sugar and conventions heaped upon C though, although arguing that template meta-programming is syntactic sugar sounds challenging.

Haskell is considered the most difficult real functional language. It offers syntactic sugar that makes programs look slightly more imperative by hiding the monads, deriving interfaces, etc. Indeed, it's complexity stems from the theoretical nature of the syntactic sugar. Is it still syntactic sugar if journal articles argue about it's theoretical basis?
posted by jeffburdges at 3:00 PM on August 25, 2011


Are there journal articles arguing about the theoretical basis of Haskell's syntactic sugar? About, say, the "do" notation for monads or the "proc" notation for arrows" Or just about the theoretical basis for monads and arrows (or particular monads or arrows) generally?
posted by kenko at 3:03 PM on August 25, 2011


GNU 0.401 (console)

GNU 0.401 GNU-Mach 0.42/Hurd-0.401 i686-AT386 built on 2011-04-01

...

# ls
ls: Computer bought the farm


I'll try it again in 20 years.
posted by double block and bleed at 4:58 PM on August 25, 2011 [2 favorites]


oooooohhhhyeahhhhh you run yourself a long hot bath, get some nice sandlewood burning, light a few candles then put some text to speech over the The Tanenbaum-Torvalds Debate - then you got yourself a night to remember.
posted by the noob at 5:00 PM on August 25, 2011 [3 favorites]


I intended the 'keep code on the screen' think as a throwaway joke but I guess I did it wrong.
posted by LogicalDash at 7:20 PM on August 25, 2011


From Tanenbaum's initial post in the argument thread:
2. PORTABILITY
Once upon a time there was the 4004 CPU. When it grew up it became an 8008. Then it underwent plastic surgery and became the 8080. It begat the 8086, which begat the 8088, which begat the 80286, which begat the 80386, which begat the 80486, and so on unto the N-th generation. In the meantime, RISC chips happened, and some of them are running at over 100 MIPS. Speeds of 200 MIPS and more are likely in the coming years. These things are not going to suddenly vanish. What is going to happen is that they will gradually take over from the 80x86 line. They will run old MS-DOS programs by interpreting the 80386 in software.


Goes to show how difficult it is to predict the future.
posted by JHarris at 7:52 PM on August 25, 2011


Future isn't over yet. ARM.
posted by Bovine Love at 8:03 PM on August 25, 2011 [1 favorite]


On the bloat thing - I was pissed when Ubuntu doubled it's install footprint with 11.04. Really pissed. I dumped it and moved to Mint, because I figured if I was going to have a whole lot of wasted disk space and system resource, I may as well have a desktop that's.. 'elegant.'

But if you really want a ultralight command line linux, those are still out there. If you want a light (eg works on a 366mhz Celeron/Pentium II with 194-256mb RAM), reasonably attractive, and full featured distro, there are quite a few around at the moment.

I'm currently in the process of restoring a 1999 vintage laptop for a friend. She's a Windows user, but there just isn't a version of Windows we can run on the thing with any measure of security. So we've looked at the Puppies, Lubuntu, Mint LXDE, Bodhi, and several others. Most of what we've looked at has just worked from install, been light enough to run on the machine, and easy enough to use that my friend isn't going to have much trouble switching backwards and forwards from WinXP on her desktop to whateverlinux on her laptop. And playing with that stuff has informed my understanding of bloat.

I now think it comes down to this - there's always been tension between the opposing imperatives of speed/small footprint/minimal resource use versus bling/features/usability/broad hardware compatibility. But at least with linux, that tension is (and has always been) out in the open. When the big distros get too big, people are able to do something about it. And they have - with rather pleasing results. If I want to run Mint on my desktop with a full set of audio/visual/graphics-manipulation software, WINE and a couple of virtual machines installed, I can. But if I want to run light and fast on my netbook or my friend's chopping board, I can do that too. And that's just friggin awesome.

So Happy Birthday Linux, and thank you Linus!
posted by Ahab at 9:02 PM on August 25, 2011 [2 favorites]


What a funny coincidence, I was reading In The Beginning Was The Command Line today, and it made me want to learn how to build a computer and put Linux on it and learn programmy stuff. Happy Birthday!

If I could play TF2 and Fallout: New Vegas on the machine, I would totally do it.

No, I probably wouldn't. Sigh.

posted by Alvy Ampersand at 9:18 PM on August 25, 2011 [1 favorite]


I'm pretty sure both run on linux with wine fairly well.
posted by empath at 9:39 PM on August 25, 2011


I guess that Linux is all popular and stuff now, so I'll have to go run BSD if I want to be isolated and misunderstood.

No good -- BSD has a thriving community. I'd recommend Minix 3, HURD, or Haiku.

But if you really want a ultralight command line linux, those are still out there.

...including Ubuntu, which offers a command line installation that starts you with just these.
posted by Zed at 10:41 PM on August 25, 2011 [1 favorite]


My wife bought a lap top the other day, came with Windows 7. She used it for a day and then made me install Ubuntu.

The exact request was "can you put that Linux stuff on this, Windows is too confusing." She's a Mac user normally but wanted a 10" as well, bless.

Linus a confrontational jerk? Would you say the same thing about Steve Jobs? I Think the thing about open source is you see the sausage getting made. And the decisions are not decided by fiat. You actually need to convince thousands of developers that THIS is the right decision or the momentum can move to a fork of the project. Linus is the leader of a project that has done immeasurable good for the entire world. Everything you take for granted about the internet today is partially as a result of Linux existing.

So thanks dude, happy birthday Linux, let's keep on rocking in the free world well into the future.
posted by aychedee at 11:29 PM on August 25, 2011 [5 favorites]


If you think Linus is a confrontational jerk, you must not read the lkml. There is a lot of bad code and bad ideas out there that people try to contribute, and sometimes you just have to be a little confrontational.
posted by cmonkey at 1:46 AM on August 26, 2011


20 years ago I downloaded and ran installed Linux0.95a off two floppies on a 386sx, after doing some Minix projects in Uni. There were probably just thousands of Linux users then. It wasn't perfect, but was incredible fun in a DIY sense, and moved at an incredible rate.

Two days ago I purchased a mass produced cheap TPLINK wifi router. It comes with a Linux 2.6 kernel, and a printed copy of the GPL. My wife, mum and half my mates have Android phones, running Linux. I read ebooks in bed on an Android tablet. The two older Linksys routers the TPLINK replaced run Linux. At my workplace the key firewalls and routers run Linux, and a fair proportional of the servers.
My PCs & Laptop run Xubuntu as well.. but I installed that myself..

what I'm saying here is Linux is here. Congratulations Linus!
posted by zog at 5:41 AM on August 26, 2011 [1 favorite]


Goes to show how difficult it is to predict the future.

In a sense, interpreting the 80386 in software is how x86 compatible chips have worked since the Pentium Pro: CISC instructions are broken up into microops and executed on what amounts to a RISC core. And of course now we have virtual machines everywhere that increasingly blur the lines between platforms.

That said, Transmeta's software emulation approach didn't take off.
posted by jedicus at 6:57 AM on August 26, 2011 [1 favorite]


Re Tanenbaum's comment, he was basically right, with the exception that in modern processors the x86 emulation is done in hardware, right on the die, rather than in software. Virtually all modern desktop architectures are RISC-ish "under the hood" in terms of actual execution; with Intel this has been true at least since the Pentium Pro.

Where Tanenbaum (and many others) were wrong wasn't about the fundamental soundness of RISC, it was about where you decouple the lowest level of architecture from everything above it. Most people in the 90s figured that you'd get portability at the software level ... you write your programs in C (or whatever) and then you compile them into the proper instructions for the processor you're going to execute on. However, what actually happened is that we now write programs in C (or whatever), compile them to x86, and then the processor translates those CISC instructions into proprietary microinstructions that it actually executes. This means you don't have to recompile when you go between two processors that have different underlying architectures ... in fact, you might not even notice when you're using a different low-level architecture. (Like going between the Pentium III and Pentium IV, for instance.)

There's no technical reason why Tanenbaum et al couldn't have been right, and I think their vision of the future was probably more elegant, but we ended up with CISC/RISC hybrids less because they're elegant than because they conform to the economics of closed-source software (which is inevitably distributed as compiled code) better. If you're living in a world where nearly everything is open-source and recompiling for a different architecture is no big deal, then it seems pretty stupid to waste die space maintaining x86 instruction-set compatibility.

It was wishful thinking perhaps, but the error was more subtle than it might appear on the surface, I think.
posted by Kadin2048 at 7:48 AM on August 26, 2011 [3 favorites]


Oh, and now I see that jedicus pretty much beat me to the punch. Serves me right for leaving my comment in the buffer for an hour. Doh.
posted by Kadin2048 at 7:49 AM on August 26, 2011


Everything you take for granted about the internet today is partially as a result of Linux existing.

Maybe, to some degree. The only reason that's the case is the IP problems that afflicted the BSD-based systems, which were much better than Linux for a long time, and, one might argue, still are (at least, in the internals).
posted by Crabby Appleton at 8:38 AM on August 26, 2011


The only reason that's the case is the IP problems that afflicted the BSD-based systems, which were much better than Linux for a long time, and, one might argue, still are

Also, if pigs had wings, they'd fly. We can imagine any number of turning points in which solutions technically superior in one way or another to Linux won out. In the real world, Linux was the one that gained the momentum and nothing else has been enough better to displace it. (I say that with all due respect to the BSDs, which is considerable; every user of any free UNIX is profiting from their developers' work.)

As for Linus being an abrasive jerk... well, he's had a lot of technical arguments in public over two decades. The nastiest ones are the ones that get talked about. Yet, still, he's been a good enough manager for Linux to keep growing and considering the nature of the community, I think that's been a pretty impressive trick.
posted by Zed at 10:00 AM on August 26, 2011


Re Tanenbaum's comment, he was basically right, with the exception that in modern processors the x86 emulation is done in hardware, right on the die, rather than in software. Virtually all modern desktop architectures are RISC-ish "under the hood" in terms of actual execution; with Intel this has been true at least since the Pentium Pro.

Where Tanenbaum (and many others) were wrong wasn't about the fundamental soundness of RISC, it was about where you decouple the lowest level of architecture from everything above it. Most people in the 90s figured that you'd get portability at the software level ... you write your programs in C (or whatever) and then you compile them into the proper instructions for the processor you're going to execute on. However, what actually happened is that we now write programs in C (or whatever), compile them to x86, and then the processor translates those CISC instructions into proprietary microinstructions that it actually executes. This means you don't have to recompile when you go between two processors that have different underlying architectures ... in fact, you might not even notice when you're using a different low-level architecture. (Like going between the Pentium III and Pentium IV, for instance.)


Well, even then he's not far off: Java and C# are an increasing chunk of the code in the world (Java: it's the new COBOL, your bank runs on it...) and both of them abstract in software.

He was also more right than wrong about microkernals: all modern WIndows are derivatives of the NT microkernal with some architectural compromises for performance, MacOS X is built on Mach. Linux is actually the highest profile non-microkernel holdout, and it's not a very pure monolithic kernel - loadable modules and FUSE are two examples of that.
posted by rodgerd at 1:25 PM on August 26, 2011


No good -- BSD has a thriving community. I'd recommend Minix 3, HURD, or Haiku.

I've been keeping up a little with Haiku actually and it's progressing pretty well, they're up to Alpha 3 now. To think that the day of BeOS may yet come around again. I may make a FPP about it when hits a release.

As for Linus being an abrasive jerk...

In fact, reading the beginning of the argument thread, I've noticed that both Linus and Tanenbaum, while certain in their opinion and doing their best to advance it, have some sense of humor about it. I've seen much more heated arguments on the internet concerning which Mystery Science Theater host is better.
posted by JHarris at 1:26 PM on August 26, 2011


Kadin2048 and rogerd, it's also worth noting that lots of little instructions chew the hell out of memory bandwidth. We also see this with the speed of many interpreted languages that operate at high levels (especially in terms of languages to manipulate massively parallel data), where the interpreted language isn't all that much slower than compiling to C because it's "fetch this instruction, then spend a bunch of time frobbing memory that's in cache using very optimized routines", and the instruction fetch portion is pretty small. I was on a product you may have heard of but have definitely seen the output from team when we played around with loading shared objects rather than using our interpreter and found that they were only buying a few percent.

As long as memory bandwidth is finite, complex instruction sets will have an advantage.

(not that they couldn't perhaps be more consistent than some of the CISCs that are out there, but such complexities are the way of evolution.)
posted by straw at 3:49 PM on August 26, 2011


I suspect the "syntactic sugar" comment was actually intending to refer to "verbose syntax", and ended up saying the opposite of what it wanted to say.
posted by Jpfed at 9:03 PM on August 26, 2011


« Older The experiment behind a previous post has been wri...  |  What if Michael Vick were whit... Newer »


This thread has been archived and is closed to new comments