Skip navigation

Tag Archives: Microsoft (sucks)

After hours of research and finding that no one else had experienced this issue, at least my form of this problem, I finally found a post somewhere. I had created a page with a single button on it and was able to click and the page would postback successfully. All is good. I had a number of textboxes on the page that were required and some that needed additional validation as well. So I threw on my RequiredFieldValidators and RegularExpressionValidators, the validators worked correct, messaging appearing correctly when data not present and disappearing when data was valid. When I clicked the submit button NOTHING happened. So I removed all of the validators and the page worked again, added one validator and posting was not possible again. The issue is that I had placed a script reference with a self closing tag. So something like this <script type=”text/javascript” src=”/js/somefile.js”/>, for whatever reason that only God can explain, this upsets the Page_ClientValidate function. Conclusion, throw out XHTML when including script files and make sure you have a closing tag <script type=”text/javascript” src=”/js/somefile.js”></script>.

Thank you again Microsoft

You would think a framework like ASP.NET, as big and popular as it is, would get the little things right.  It’s so simple, all I want to do is put an anchor around a button with an onclick.  Unfortunately, the anchor tag needs to be a server control because the onclick is generated dynamically on the server.  For whatever reason, .NET adds the path to the user control to the anchor tag’s href (if you don’t enter an absolute path yourself).  So for instance, all I wanted was #search for an anchor link.  .NET outputs it like so: http://serverpath/usercontrolpath/#search.  So ridiculous, I googled around and didn’t find much.  I ended up having to put the absolute path to the page and then the anchor.  Again, it’s so simple yet they (again) didn’t get it right.

It is very important that the Development Environment a programmer uses in his daily duties is as pain free as possible. The more irritating an IDE is, the more you’ll hate all the work you do with it. I have found that Visual Studio is a big pain to work with. Since I have started using Eclipse on Linux I have seen that not all IDEs are as painful as visual studio. I am going to discuss in detail my comparison of Eclipse and Visual Studio.  Below is a detailed list of the categories I think are important in the overall experience of an IDE.

Install / Setup / Plugins

Installation may not seem like an important thing to discuss about an IDE. You are probably thinking: “Meh, I only have to do it once.” It is still a part of the overall experience, and you’ll see why I decided to discuss this momentarily.

First, I will discuss the Visual Studio install. As far as Microsoft installers go, this one is very straightforward and simple. As a matter of fact, random people talking about how awesome Visual Studio makes their lives, it’s actually a very good installer. My only gripe with it is the fact that it takes so long. Even on a high end machine it will take at least an half hour, maybe an hour. That’s only the initial install. After you’re done installing that, you then need to pull down the 400MB SP1. SP1 takes more than an hour to install, even longer if you have Team Suite. Not to mention the fact that the service pack doesn’t seem to do much. I didn’t notice any improvement over the vanilla version.

Next we’ll talk about the eclipse installer. Oh, wait, there isn’t one! If you are an Ubuntu / Debian user, (or you have a package manager like yum), you can install through your package manager. The problem with that is the repositories contain an older version and most plugins require the newest version. So, I’d recommend “installing” manually. I say “installing” because all you have to do is download a tar file and extract it. Oh yeah, the whole thing is like a 60MB download. I think Visual Studio starts at around 2GB. Once that is done, you can find all the plugins you want using the update manager (help -> software updates -> find and install). Even most third party plugins have their own update site. All you have to do is grab the URL, paste it in and bam! You can install the plugin. It is even very good at managing dependencies.

So, to summarize, the install process for Eclipse is obviously a lot quicker. Also, because everything you need for the IDE exists in one folder, you can easily back up your IDE by archiving it and throwing it on a pen drive or something. That way, if you ever manage to screw it up, all you need to do is delete your messed up folder, and paste the old one back in. Just remember to never store your source files in the Eclipse folder.

II. Performance

Performance is vastly important when it comes to an IDE. Because we developers spend so much time in the IDE, performance issues can really get under our skin. Visual Studio is absolutely dog slow. Most of the projects I work on are pretty big (the one I’m on now has about 17 projects in the solution). However, they’re not so big that you would expect anything to slow down. I worked on one solution that had 75 solutions in it, and it was absolutely unusable. Now, that solution had no business having 75 projects, I will admit that.

We use Team Foundation at work, which is okay. Just like any other Microsoft product, it leaves something to be desired, but it works. It’s actually really quick. Getting the latest version is very fast (although sometimes doesn’t actually get the latest version of the files you select, go figure). However, when everything is done downloading from the server, projects (and sometimes the solution) have to be reloaded. When many projects are updated, this can take well over a minute.

Here’s my biggest issue with Visual Studio, right here. Opening a markup file such as an .aspx or .ascx file, is retardedly slow. It can hang anywhere from 20 seconds to a minute. Absolutely unacceptable, it really is. When I’m dealing with a bunch of markup all day long, the last thing I want to do is sit around and wait while Visual Studio does god knows what “behind” the scenes. Oh yeah, again, Microsoft, what ever happened to multi-threading? Not only that, it doesn’t even show some sort of messaging to let me know it’s doing something, it just hangs. Classic Microsoft.

Now on to Eclipse. In general Eclipse is very very quick. Start up of the IDE is similar to Visual Studio I think. However, once in the IDE there’s no comparison. Eclipse is a lot faster. Loading an html file takes zero time. The WTP plugin for Eclipse even runs through all of your files and validates the HTML / JavaScript / CSS. Oh yeah, and it uses something called a background thread, fancy that. Not only that, it shows a message at the bottom with a progress bar letting you know it’s validating. This is something Eclipse does every time it’s doing anything that may interrupt you. It will tell you what it’s doing and usually give you a pretty accurate progress bar.

I admit I have seen eclipse freeze up at times, but usually it’s because I did something stupid. There are very rarely any hangs of any kind, unlike Visual Studio which hangs very predictably. So, Eclipse wins this round as well.

III. Customization

Customization is very important because, I don’t know about you guys, but I’m very picky about the way my IDE is organized. This is one category that I can’t complain about on the Visual Studio side. Visual Studio is pretty customizable. Microsoft made it easy to put your tool windows and whatnot wherever you want and dock them how you want. I like my left monitor to have only my editor window, and the right to have all of the tool windows such as Solution Explorer / Source Control browser etc. I like to have different layouts (or perspectives as they’re called in Eclipse) and Visual Studio kind of supports this, but it’s a hidden feature. There are a couple of macros that allow you to save your layouts, so you have to set up keyboard shortcuts to macros to make this work.

The one annoying thing is the “springy” tool windows. Especially if you hide a window like the errors window. Whenever there’s a parser error or warning the stupid thing springs out. This even happens when you’re TYPING in an html / aspx /ascx file. How can you validate if I’m still typing Microsoft?? Also, Visual Studio makes it easy to color your code the way you want to. It even throws in a nice import / export feature for all of your settings. And as a bonus a bunch of people have created color schemes for Visual Studio that are very good.

Eclipse is very similar in the way it handles customizing the UI. You can easily dock and move the tool windows anywhere you like. It also has built in and readily apparent support for perspectives. This means you can create a layout you like for one language, and save it, and then switch to another project and use another layout very easily. It comes with some basic built in perspectives that are good. Also, when you install new plugins a lot of them come with their own perspectives.

Eclipse also has support for importing / exporting color schemes. Which is nice, but nobody has created any color schemes (that I can find).

IV. Source Control / Team

Source control, very very important. Every developer knows this. And just as important as keeping your source uh, safe, heh, is the manner in which the source control plugin for your IDE works.

Like I said before, Team Foundation is pretty good. It’s definitely a lot better than Visual Source Safe. I guess I shouldn’t say pretty good, I should say better than Source Safe. But, I think a file share is almost better than Source Safe, so… The biggest problem with TFS is the way it handles workspaces / getting latest. I don’t know why this happens, but sometimes you get latest version, and it skips files or something. Because someone will fix something, I’ll get the latest source on the entire solution, and it doesn’t really get the new file. I have to do “Get specific version” and force a get on all files. I don’t understand why this happens, it’s so simple, download the mfing file. Also, in TFS there is no easy way to find a changeset. You have to go to “Get specific version” pick by change set then click find. Once you do that there’s a great search tool, but it’s just so annoying to get to.

I almost forgot about the worst part of TFS, conflict management. If you can call it that. A coworker literally showed me a conflict TFS complained about today where he had added a newline before an ending curly brace and TFS didn’t know what to do. Simply stunning. Conflicts are seemingly random, some things it knows how to merge perfectly, others it just runs away screaming. “WHAT DO I DO??? YOU ADDED A SPACE ON A LINE SOMEONE ELSE CHANGED!!!!!!” Seriously, I don’t know how they managed to make such a terrible conflict management system.

The rest of Team Foundation is okay. It’s pretty straightforward to add and manage tasks / bugs. There are a few quirks (the worst being this one). For the most part it works really well. It deals with links very oddly. When you click a link it launches IE inside of Visual Studio, regardless of your default browser setting. When you try and select a link to copy it, it opens in IE inside of Visual Studio, awesome.

Again, Eclipse wins. I use the Subclipse plugin, which is a plugin for Subversion. Subversion is very good, it’s fast, it’s simple it’s free. It can do everything Team Foundation source control can do it does it better. It’s really easy to get a project and to add a project to the repository. You can deal with multiple repositories at a time (unlike TFS). When you to an update (get latest in M$ speak) it actually gets the latest version. There’s an on the fly conflict view that you can have a look at that shows you where differences are between your file versions and the servers (TFS has nothing like this, and it’s very handy). I have never seen a conflict in Subversion while using Subclipse, I’m sure they happen, but the project I’m working on only has two active developers at the moment. So, I can’t really tell you how good or bad Subversion / Subclipse is at dealing with conflicts, but the diff tool is very good!

V. Integration

Well, Visual Studio’s section on this is pretty simple. If it isn’t Microsoft, it’s not in Visual Studio. Obviously, everything you do in Visual Studio involves .NET, or SQL Server, or MS C++.

This is where Eclipse really shines. I have used plugins for C++, the Web (html, css, JavaScript, DOJO and more), Python and PHP. They are all very good, easy to install, and easy to use. Check it out, you can even get a C# plugin for eclipse. Add another win for Eclipse.

VI. Conclusion

Well, there you have it. Eclipse is the winner. In pretty much every area I can think of, Eclipse beats out Visual Studio. If you’re doing .NET you’re pretty much stuck with Visual Studio. If you can settle for Mono, Monodevelop has come a long way. I am actually trying to get away from .NET and do some open source work since I have started to use Linux so much. It’s nice to build applications that run on more than one OS. Also, I do a lot of web work and I have discovered that ASP.NET definitely isn’t the best tool for the job. Yes, C# is probably just about the easiest language there is (Visual Basic doesn’t count, it’s not a REAL language), and the .NET Framework is very well organized, but even still there are a million ways to accomplish your programming goals. As far as development environments go, Visual Studio is definitely not the best.

I had recently been experiencing an issue at work that was driving me nuts. I first discovered this issue when I tried to open an attachment in a TFS work item. One of our QA people had kindly attached an image so that I can see the problem in action. I double clicked the attachment and was presented with an error message. I can’t remember the exact wording, it was something along the lines of “No type handler specified for the operation.” The other way this issue manifested itself was when I tried to open IE, and type in an address. It would open the URL I typed in FireFox…from IE…WTF? I also noticed clicking links in Outlook and Google Talk did not launch FireFox.

I immediately remembered that I had installed a standalone version of IE7 so I can test in both IE6 and IE7. I’m pretty sure that is what messed me all up. So, I uninstalled the standalone IE7. That didn’t help at all. I tried resetting FireFox as the default browser. Again, the problem still persisted. I tried setting IE as the default browser, didn’t work.

I then did some googling and I found that there’s a file type in Windows called “(NONE) URL:HyperText Transfer Protocol” and also another for HTTPS. These two file types were the cause of the problem. If you go into folder options then the file types tab (why are file types under folder options??), pick the above type and go to advanced, there needs to be an open action. The standalone IE7 (or MultipleIE’s, not sure which did it) removed this action for whatever reason. Once I associated the open action with FireFox, everything went back to normal.

Now, the thing that really bothers me is I googled the original error message and found a bunch of crap that was totally unrelated to my problem.  It must have been a very generic Microsoft error message.  Why can’t they help us out and in that instance, when you can’t launch a file from a work item, tell me why, I wouldn’t have wasted literally hours of my time at work.  I even had to bother other people to open the attachment and send it to me.  Thanks Microsoft.

I recently booted into Windows for the first time in I don’t know how long (I wanted to play some Oblivion). As usual, it took me a couple of minutes to start up and get to my desktop. However, once I got there, my machine was almost unusable. Everything was dragging, even just browsing around in Windows Explorer was slow(er than usual). I opened up task manager to see what was going on. Something was eating up 100% of my CPU about every 4 seconds or so. The culprit ended up being the Windows Media Player 11 background service.

This is the process that deals with keeping your music library up to date and apparently searching your network for other instances of itself. I then remembered I had recently moved all of my music from my Windows partition over to my Ubuntu partition, because I rarely use Windows. So, basically after having removed all of my music, Windows Media Player had no idea what to do with itself. It just went berserk trying to find where all its music had gone, leaving my computer completely unusable. Needless to say I killed the process and disabled the service.

Interestingly enough this isn’t the first time this process has caused trouble.  After I left a job recently, there were complaints about my old machine continuing to generate network traffic. This process turned out to be the guilty party.

Today’s lesson, don’t use Windows Media Player 11.  It’s an okay media player, although like anything else Microsoft it is annoying, but the stupid background process isn’t worth the trouble.  I have recently re-downloaded Winamp which works nicely.  For me, it isn’t such a big deal because 90% of the time I use Ubuntu which has Rhythmbox (and a slew of other choices).

Don’t know exactly how I came across this but I did. There is a Subversion plug-in for Visual Studio that Microsoft recommends, seen here http://msdn.microsoft.com/msdnmag/issues/08/LA/Toolbox.

My first thought was, well that’s good. A plug-in for Visual Studio for open-source, free source control that Microsoft is advertising, this can’t be all bad. Boy was I wrong. Subversion may be free, but the plug-in isn’t. The plug-in, called VisualSVN, cost $49….per license. Now I’m not saying it’s all Microsoft’s fault. They didn’t write the plug-in, but come on. How can someone write a plug-in for something that is free and charge for it. It figures that Microsoft would back this instead of something like ankhsvn, which is also open-source and, are you ready for this, free.

Figures that this would come from something on MSDN, the most useless resource for everything worthless.

This is a quick one. The other day I ran into an ASP.NET error basically indicating one of my virtual directories was running as an ASP.NET 1.1 app instead of an ASP.NET 2.0 app. “Easy enough, I’ll just go ahead and change it in the IIS mmc snap-in” I thought. To my surprise, the virtual directory properties window was missing the ASP.NET tab. I first went and made sure ASP.NET 2.0 was enabled in the web services extensions portion of the IIS snap-in, it was. I then used google, NOT LIVE SEARCH, to try and find an answer. After a ton of digging, I found that most of the time the reason this happens is related to a common Windows problem. Somehow, a piece of the registry gets hosed. I tried the fix mentioned in that forum post and it didn’t work. Finally, I found the reason for my particular issue. This one blows my mind. I installed vmware server because M$ Virtual PC is a piece of crap (it wouldn’t let me install Ubuntu). Somehow, vmware server removed my ASP.NET tab. To fix this I had to do the following (found here):

1) Stop the IIS Admin service (and any services that depend on it)
2) Open C:\WINDOWS\system32\inetsrv\MetaBase.xml in notepad or your favorite XML Editor. _DELETE_ the line that reads ‘Enable32BitAppOnWin64=”TRUE”’
3) Start -> Run -> iisreset

I don’t know who to blame here, M$ or vmware. Since it’s usually M$’s fault, I’ll blame them. I guess if Virtual PC weren’t so crappy I wouldn’t have had this issue at all.

Sources:

http://midwestcoders.net/blogs/monish_nagisetty/archive/2007/06/19/VMWare-Server-_2D00_-Missing-ASP.NET-tab-in-IIS-issue.aspx

http://www.velocityreviews.com/forums/t292908-missing-aspnet-tab-in-iis.html

I have had many a discussion lately on the topic of what operating system is best. To me, it really comes down to how you use your computer. That being said, I think the world could do without windows. There is no reason why everyone couldn’t use either Mac OS or some flavor of Linux. As far as I’m concerned, Mac OS is the most well rounded, easiest to use OS out there. Linux is great for people who like a customized experienced. Some distributions of Linux, such as Ubuntu, are getting to the point where every day users can easily use them. The world is moving in the right direction. A little competition never hurt anyone, and hopefully it helps open Microsoft’s eyes.

On to the main event. Why Windows Blows.

Windows’s Visuals

With a name like Windows, you’d think the OS would be good at handling windows. Think again. Yes, that includes Vista. You could argue that the latest version of the window manager produces better looking windows than its predecessor. But, the memory utilization and sluggishness it causes is hardly worth it. The window manager in all versions of Windows is very unresponsive. For example, how many times have you gone to drag a window only to have it stay in place, then eventually (sometimes 30 seconds or more) catch up with your mouse. More frustrating to me is the inability to change the appearance of windows. Sure, you can change the color and the font, but you’re stuck with pretty much the same looking window titles and borders.

Same goes for the widgets. There is no easy way to change the look and feel of the widgets. I say no easy way because there are programs and hacks that can do this for you, but they do it at the cost of performance. Reducing performance of an already sluggish operating system is never a good thing. I would be willing to guess that the reason the widgets are so awful is because the windows painting engine is so awful. The sucktitude of the painting engine is on display any time you see a window that is filled completely white. This happens mostly when a program is doing something that in the same thread as the main window, which prevents the window from painting. You may say, well that’s the fault of the developer of the program. And, it probably is to a point. But, Microsoft applications are the worst offenders (Visual Studio 2005 may be the worst).

Resource Management

The resource management in Windows is so bad you may even wonder if there is any at all. It seems as if Windows is a free for all when it comes to memory and CPU usage. When you are trying to do more than one thing at a time, it seems as if the programs you are using are fighting over your computer’s resources. It wouldn’t surprise me if this is really what is going on behind the scenes. A great example is trying to Alt+Tab out of a game and do something else. A lot of times it’ll take twenty seconds or more to get out of the game and start doing something. Doing this on Linux (even while playing a windows game) does not produce the same result. As a matter of fact on Linux you can run a game and visual effects (compiz) at the same time.

Computers are very powerful these days. When your operating system isn’t smart enough to divvy up resources properly it will really cripple even the most powerful of machines. Sometimes, the resource management really breaks down and the system will crash. The worst kind of crash I see in windows is the kind where the user isn’t even aware it has crashed. Programs will just stop responding, eating up the computer’s processor and sometimes the memory as well.

Perhaps my favorite Windows error of all is the blue screen of death (BSOD for short). I will admit that in later versions of XP this error happened fairly infrequently. But believe me, it’s still around. When I was running Vista on my laptop, I saw it a number of times. Another good one is the memory fault error. At the end of the post you will find examples of these errors, some are quite funny.

I have been using Ubuntu 7.10 for about four months now, and I have never seen a similar error. Not even a memory fault error of any sort. As a matter of fact, the only times Ubuntu has frozen on my were either due to user error (me doing something I shouldn’t) or my faulty video adapter. If an application has issues in Linux, it doesn’t bring the whole OS down with it as is the case in Windows most of the time. Linux makes is really easy to deal with applications that aren’t responding for whatever reason. It’ll allow you to force quit the application. In Windows it takes forever for the “program is not responding” dialog, if it ever shows up. And it takes even longer to close the application after hitting the “end now” button. I love when you get about eight of these when shutting down your computer.

Newer Is Better, Right?

Not when it comes to Microsoft. Windows Vista, albeit better looking, is definitely NOT better than Windows XP. The first and most obvious issue is the System Requirements. Aside from Home Basic, which is basically Server 2003 with a facelift, all versions of Vista require at least 1GB of RAM, a 40GB hard disk (requiring AT LEAST 15GB to install). This is absolutely ridiculous. Yeah, computers today are really powerful and most systems meet these requirements. The problem is that when the OS requires that much, it doesn’t leave room for much else. An operating system should be as lean as possible so that the applications running in that operating system have enough breathing room. As much as I dislike Windows XP, I’ll take it any day over Vista.

To my friends I sound like a broken record, but I cannot stand Microsoft’s development strategy when it comes to Windows, and most of the other products they put out. Windows probably hasn’t been completely re-written since at the latest Windows 98, and maybe even earlier. Windows XP is based off Windows 2000, which is based off Windows NT / Windows 98. It’s sad how old pieces of the operating system are. Some of the more obscure pieces are unbelievably old. Take the windows font installer for instance. That thing has been around since at the latest Windows 95, maybe even windows 3.1. Observe:

Windows Vista Font Installer

Beautiful isn’t it? This thing is visible, and it’s that old. Imagine how old some of the things you can’t see are! If Windows were written well, I wouldn’t be complaining, but it’s not. When I write bad code, I don’t leave it around forever, let alone bring it forward into newer versions. I really think if Microsoft would just start over they could really have something. They have lost their edge. I know how it goes though, I work at a big company, you do what you’re told. And unfortunately, Microsoft’s business practices show that they care more about getting things out the door and pulling in money than producing a well rounded product for their customers.

Final Thoughts and Funny Error Messages

I am no psychic, but if Microsoft stays on their current path they will find as people become more computer savvy, they will start looking for alternatives. And people these days are becoming more and more computer savvy. My generation grew up with computers, and our children will have even closer relationships with them I am sure. I am not saying that I want Microsoft to go away, at this point that’s not possible. I am saying that I hope Linux continues to gain popularity so that Microsoft will crap or get off the pot.

Wow

Not an error, but still funny

error_windows_1.jpg

BSOD

Sources:

http://www.microsoft.com/windows/products/windowsvista/editions/systemrequirements.mspx

http://www.microsoft.com/technet/archive/winntas/tips/techrep/bsod.mspx?mfr=true

http://www.techeblog.com/index.php/tech-gadget/category/windows+vista/