Frank & Michelle's Blog » Microsoft hates my guts

Microsoft hates my guts

Sometimes when I use a product, I find myself thinking that perhaps the designer of the product didn’t thoroughly Microsoft hates my guts!consider how the user would be using it. Other times, I feel like I’m the unwitting victim of some inside-joke between the product designer and the rest of the world – and perhaps the designer isn’t a big fan of me.

None of this is the case with Microsoft. In this case, I know. I know Microsoft has me, the end-user, in mind when designing their product. In fact, I strongly get the idea that Microsoft hates my guts. The hatred that Microsoft has for me is so complete, in fact, that they are willing to go to considerable lengths to ensure I spend my precious weekends fighting with the the most indescribable and illogical problems. These are not simply flaws in their products; the only way some of these problems can exist is through dedicated and devoted planning on how to make their products do the most idiotic things at the worst possible moment.

Keeping in mind my weekend activities (and yes, I haven’t detailed them yet) this is roughly what I think some planning sessions were like when designing the “Do Not Load Symbols for These Source Files” and “Suddenly Stop Copying Updated PDB Files to the Bin Directory” features:

Bill Gates (BG): There are two things in this world I can’t stand: People who are intollerant of other people’s cultures, and the Dutch.

Developer I (DI): Did you know another one of those bastards moved to Seattle? I think he’s got some annoying name like Fraaahhhnk, but he spells it like Frank just to make people hate him.

BG: Fucking Dutch.

Developer II (DII): Let’s get him!

All: Yeah!

BG: (Grabbing trusty Moleskine) OK. I’ve had this idea for a while. I want to have a feature that lets you keep the Visual Studio from loading debug files for certain source files in your project. Now, this could be considered a nice feature for large enough projects, but here’s the part that’s genius: at some random point during development – hopefully at a critical point – we’ll automatically add some of the developers source files to this list so that they spontaneously can’t debug their code anymore.

DII: I love it! It’s brilliant.

BG: Stop interrupting; I’ll squash you like a gnat.

DII: (gulp)

BG: That’s right, boy. Now pay attention. There is another feature which will be related to it: once the file has been set to stop loading debug files, we’ll simultaneously stop copying over updated DLL’s – this way the source code in the debugger will never match the binary file it’s comparing to, rendering the developer helpless to debug his code!

DI: This will be perfect for neutralizing the Dutch!

DII: Sir?

BG: (Grumbles to himself) Microsoft’s policy to exclusively hire retards is really starting to make these meetings painful. (Aloud) What now? Do you need a potty break?

DII: What if the developer somehow discovers this? What then? Can they remove the file from the list? Here’s what I’m thinking: Yes. Let them remove it, but then only undo half of of it. Once it’s removed, start copying the updated DLL back over, but don’t copy the updated debug file. It will be confusing as hell, and no Google – pardon my French – search will find any results.

BG: Brilliant! Microsoft’s policy to exclusively hire retards is flawless! By the way, I’ll fire you if you say “Google” again.

The “features” described here are actually something that I ended up struggling I've got a lovely bunch of idiots!with for untold hours, trying to understand why I could no longer debug my project. The Visual Studio is a development tool used to make it “easier” to write code. It’s what developers call an Integrated Development Environment or IDE. It combines the ability to write code for a program with the ability to run the code and watch the program as it executed the lines of code you’ve written, making it easier to find problems and bugs. This debugging feature, which is essential in finding complex problems, relies on debugging files, called PDB files. These files provide the link between the human-readable source code that the developer wrote and the binary file that the computer is executing when the program is running. If the PDB files are missing or out of sync with the binary file, the debugger gets confused and stops working properly.

This happened to me last week, spontaneously. I ran the program once in debug mode, and everything worked. I stopped the debugger – didn’t do anything else and started the debugger again. Nothing. The debugger could no longer debug one particular file. After hours and hours of struggling with this, I found the file listed in a box called “Do not look for these source files” under the “Debugger Symbols” tab. Would you imagine removing this file from this box would help? You might, but it doesn’t. In fact, it then started just copying the updated binary file to the correct place, but would not copy the PDB file. I ended up writing a script that runs automatically every time I build the application that manually copies the PDB file over so that the files stay in sync.

So, after countless hours and numerous new gray hairs, I was back to where I’d been several days before. Thanks, Bill.

There is another annoying thing that should have people kicking and screaming, but in the grand scheme of Microsoft problems, it doesn’t even register. The Visual Studio lets you automatically generate HTML code for a web page. (HTML is the code behind web pages.) Well, HTML can be validated to make sure it’s done right – things need to be done in a certain order and nested correctly, and certain properties are only valid with certain tags. Well, the HTML code that the Visual Studio generates does not pass the Visual Studio’s own validation tests. So, every single time I build my application, I get hundreds of errors due to these validation problems. In the rare event that my code has a compile-time bug (yes, I sometimes do make a mistake) it’s a nightmare to find the error reported among the hundreds of validation errors. Just another way that Microsoft has to say, “Fuck you for supporting our business.”

I must say, though, that Microsoft does have one very well thought-out feature: The Restart Feature. It’s brilliant. One feature that fixes nearly 96% of the problems encountered using Windows – often all by itself!

For more amusing anecdotes about the lovely problems we developers struggle with in our escapades with Microsoft, visit Room34.

Leave a Comment

bicümle güzel yazılar program indir free wordpress theme süper oyunlar güzel sözler türk log dizi izle sinema izle