Oh, You Wanted "Awesome" Edition

Coding Horror
programming and human factors - Jeff Atwood
Comment Submission Error

Your comment submission failed for the following reasons:

Publish failed: Renaming tempfile 'C:\codinghorror\blog\archives\001283.html.new' failed: Renaming 'C:\codinghorror\blog\archives\001283.html.new' to 'C:\codinghorror\blog\archives\001283.html' failed: Permission denied 

Return to the original entry.

4.2 Writing Robust Programs

Avoid arbitrary limits on the length or number of any data structure, including file names, lines, files, and symbols, by allocating all data structures dynamically. In most Unix utilities, “long lines are silently truncated”. This is not acceptable in a GNU utility.

http://www.gnu.org/prep/standards/html_node/Semantics.html

The strongest deterrent from using FOSS? The “community”. Some of the comments here are especially strong proof of that. I’m sure it’s a minority, but the rabid angry-nerd “M$” writing loudmouths sure make the most noise. Do you really like FOSS are do you just hate Microsoft? Either way, you’re doing nice on the nuance, keep it up.

Good job everyone who falls under that label: you’ve accomplished the opposite of what you’re trying to do: you drove me and no doubt many others another step away from adopting your beloved FOSS.

People who seriously believe that 37signals are actually giving you more stuff for money – are you kidding me? Yes, you’re getting more records in your tables, but this is exactly what Microsoft does – flipping bits. There’s no guarantee that you’re getting more hardware resource for these money. Moreover, it’s even easier for hosted service to squeeze more people on the same server and charge them more, because there’s no way you can prove that your resources are severely limited. At least in Windows Server case you can be sure that you will use all 48 gigs with more senior version.

I agree with your point but I don’t think you make good comparisons.

MS doesn’t change the price based on whether you are rich or poor, they base the price based on what features you want. I do agree that they make it overly difficult to determine what features come with each version, but you are still paying more money for more features. All of your other examples are similar: the more expensive products offer higher performance or more powerful service.

I disagree with Tony that the burden of testing with higher memory justifies the cost. Someone had to test that the 32 GB limited edition would properly limit the RAM it used, and they had to do this by running it on a myriad of servers with more than 32 GB of RAM. If this were a barrier like the difference between 4GB and 5GB I’d agree: here you have 32-bit addressing vs. 64-bit addressing and that’s worthy of some hefty testing, but both 32 and 48 GB are well within the boundaries of 64-bit addressable space.

It probably would have been nice (and I’m surprised marketing didn’t force them to do this) if when you’d booted for the first time with 48GB of RAM a dialog explaining the situation was displayed. It’d be even nicer if you had an option to purchase a license to remove the limitation for significantly less than the cost of purchasing a new OS. I don’t think MS is out of line for segmenting the market, but it’d be nice if I could buy the low-end SKU and buy new features without having to buy a new OS.

Linux/PostGRE great combination, etc., but PostGRE is absolutely the wrong database here.

And that would be why, exactly? I’ve used postgres in a professional capacity, and while it’s not as full featured as MS SQL, I haven’t seen anything I couldn’t easily do by just doing it the Postgres way.

And the Windows 7 / IIS / ASP.NET MVC stack is second to none for specifically web apps like Stackoverflow.

What’s so special about Stack Overflow? To me it seems like a fairly straightforward web app. Any Java framework could handle something like this without breaking a sweat. But that’s a false dichotomy here. You see, we’re talking about a DB server right now. ASP.NET can talk to Postgres quite well (though probably not through LINQ).

And I agree with you, MS stack is awesome. When I worked at Microsoft and could install anything from the net for $0, it wouldn’t even occur to me to use something else. In the real world, however, Microsoft software is far too expensive for web companies to use. Which is unfortunate, since I’m still a shareholder.

Anonymous comment above is mine.

Quote of the Year:

“Open source software only comes in one edition: awesome”

“Ha! You have got to be kidding!!! Have you ever tried to figure out if you should be paying for MySQL or not? Most people just assume that they don’t have to pay for it. Some are right. A lot of them are dead wrong!”

Really? My understanding was that it is GPL. Because of this, it is completely free, as in beer or otherwise. What you would be paying for is a support contract with MySQL, which you don’t need to have, and are already paying for if you have it by virtue of… well, having it.

had experienced a situation like this and was very annoyed…

Server 2008 Datacenter does have one nifty feature: unlimited licenses to all previous versions of Windows up to and including Server 2008 Datacenter (including NT4 - gross!!!) as long as they are all installed as VM’s inside Datacenter.

@anon: I sure hope his epiphany is coming! One thing Jeff seems to have that seemingly none of the Microsoft lovers on this thread has is an appreciation for the OSS way. The strongly negative comments about Linux and other OSS software here are also implicitly shouting that they would never give OSS a try anyways… they seem to be just bashing it to reaffirm that they are somehow making the right decision.

My epiphany came when I realized I don’t use any Microsoft only software anymore. Actually, it came much earlier, and I always wanted to delve further into Linux and other OSS, but I was tied to Microsoft due to my gaming interests. Then I got a Wii, and stopped playing any Windows games, and realized the time to switch was ripe. I’ve never looked back, and never will.

I would say the comments about bad community in Linux come from people that have never touched the Ubuntu community… scratch that, they never even peeked into the community. Ubuntu is making leaps and bounds at providing an awesome community, and an awesome OS that is compatible with virtually all hardware (I have set up 4 laptops with it), and easy and intuitive to use. My dad and sister are now using it, neither of them are all that technical, and both are loving it. My other sister is itching to get her hands on Ubuntu now, too.

I find this hilarious, thank you for being so honest, most people going with Microsoft would hide this fact.

It is simple, many OS solutions are just as good, and in some way better than Microsoft solutions. You will never be burnt in this particular way. Microsoft does offer a lot of stuff, and some great development tools. But they are a real pain to deal with in other ways. I am trying to decide which license we need to get for my small team of developers, to support a growing business. We mostly deal with OS, and prefer it a great deal, but some clients just want Microsoft, becuase they have no idea.

Different pricing schemes are fine if you actually get more when you pay for more.

So a car with a bigger / better engine is one thing, and you pay for that. But the same stereo for the same car shouldn’t cost more because there’s more power available.

http://msdn.microsoft.com/en-us/library/aa366778(VS.85).aspx

Now MS had to write & test large-memory configurations which isn’t cheap, so the super-duper versions are trying to recoup that cost. But why so many different limits? I count 5 different memory limits for 64-bit Server / Vista

I don’t agree with it either though, because once the conversion has been made, wouldn’t it be better to spread the cost evenly? Should your ram come with a coupon for a free upgrade?

MS Marketing is retarded. Too many versions of windows. Too many prices, and artificial segmenting which doesn’t do them any favors in the end. Some versions being specifically tailored to a market segment is one thing (ie enterprise) but Vista Starter, Home and Home Premium? Business vs Enterprise? Ultimate? No thanks.

Have you ever tried to wade through the licensing requirements for other configurations? No thanks. Like Jeff said in the last blog on out versus up, the cost of licensing really starts to hurt.

In some ways my mac which comes in just 1 version and is limited by the hardware it runs on is nice and simple. There’s no 100 different versions I have to wade through. If I want extras I can buy them, and the extras aren’t limited to the version I buy (iLife, etc)

@Julian good comment. Open-source zealots don’t end up convincing anyone when they spew vitriolic comments.

It is simple, many OS solutions are just as good,
and in some way better than Microsoft solutions.

Um, no. That is a point of view predominant among people who have never worked professionally with Microsoft stack. MS stack is currently second to none, and most of FOSS stuff is buggy, poorly documented garbage written by inexperienced developers.

There are some gems, however. Linux is one. Mainstream DBs tend to be pretty good (they wouldn’t exist otherwise the quality bar is high by design). Some Java frameworks are good (but most are overengineered to heck and poorly documented). For lower traffic web sites Ruby on Rails is awesome (just remember, Ruby is really slow). Etc, etc.

As long as you know what to pick, you can build very good products with minimal pain (and no licensing cost) on top of completely open-source stack. The prevalence of crap does not bother me given the existence of non-crap to choose from. I wouldn’t go as far as to say that “many” FOSS products are good, however.

When I read “Smoky bacon edition” I thought of Kevin Bacon dancing to footloose, guess you are getting the Kenny Loggins Edition either way!

OS X also only comes in awesome.

Bwahahaha!
Such an old trick!
It applies to hardware too, a good one from day of yore (early 70):
The IBM 360/135 was truly more expensive than the IBM 360/125 but you could buy an on site “upgrade”.
The upgrade kit?
A new sticker label for the front panel and the maintenance guy had to cut the wire of the condensator which was slowing the clock!

This is where MS’s initial idea for Vista’s segmentation would have worked. Since standard server limits memory, they could sell you the “Memory Optimized Addressing” or some other similarly-named version, and just buying via the OS would let it work. Its damning for servers since (a) licenses are so expensive and (b) reinstalling an OS can be a very labor-intensive process, especially since you should be running the software through the testing wringer now that its on a “different” OS.

I ran into a similar problem recently when I upgraded my old(ish) T60 to 4gb of ram. Turns out that Lenovo is a bunch of weasels and decided to put an artificial cap on the maximum ram at 3gb. This doesn’t seem to be due to market segmentation, merely laziness, Lenovo tries to blame the chipset but that chipset supports 4gb and the processor (core2 duo) is x64 so there’s no good reason for Lenovo to have done such a thing other than as an engineering shortcut.