Rant: Windows Woes
I normally try to remain as objective as possible. I find, however, that it is becomming more and more difficult. This page serves as a venting ground, if you have any other problems with this Operating System please let me hear of them so that I can add to this list - who knows, perhaps on day Microsoft will blunder onto this page and start realising all the things that are fundamentally wrong with their Operating System.
Forced creation of second administrator user
By default Windows XP forces one to create user accounts during install. It shows a short list where you can enter the names of users. The first of these users are automatically designated "Computer Administrator". This, for me, is a problem, this encourages users to run with system administrator privileges instead of as a normal system user. The argument here is that the system user has less privileges and as such should restrict the spreading of virii at least slightly. This of course assumes that there are actually a difference between system administrators and system users.
For that matter, why should one be forced to create user accounts at all during install? In this particular case I was installing Windows to be joined to a domain, but due to the fact that I've burned my fingers a couple of times with installing Windows while attached to the network I've decided to install without networking, as such joining the domain obviously failed and now I was forced to create unwanted user accounts.
Inability to change proxy settings
This is probably by design, but when using a samba domain logon server I'm unable to set a proxy server for users, and they themselves are not able to change their proxy settings. This causes me endless amounts of problems as I must either (1) Grant *all* users system administrator privileges, (2) not join lab machines to the domain and give all users computer administrator rights, or (3) force all users to use mozilla firefox instead of Internet Explorer (which is actually a good thing imho).
Screwed up default firewall settings
The default firewall settings allow for remote assistance. I have personally never seen this in use. Additionally it broke our mail system as it even blocks outgoing IMAP connections by default. You should have seen how long it took to diagnose this one.
Lack of drivers
Microsoft can say whatever they want to. I haven't done a single Windows install where I have not required to install a crapload of non-Microsoft drivers in order to make hardware function. Usually Windows can't even get the resolution above 800x600 by default. My notebook had no sound, no network, USB1.1 only and no modem out of the box. The network card was most surprising as it's a common raeltek 8139 clone. I've even heard of a case where Windows couldn't use a CD-Rom drive without additional drivers (which probably came on a CD). All these devices worked out of the box on Linux. Oh yes, on neither operating system did the ATI graphics card just work, but imho this is due to ATI's crappy attitude towards driver development. I have yet to download an additional driver for Linux.
Non-standards compliant browser
Typical to the Microsoft philosophy of embrace and extend (or grab, rape and plimage depending on your point of view) Internet Explorer misrenders some compliant websites (especially with regards to CSS), and correctly renders some absolutely broken HTML. This makes for a really hard time to develop websites that look correct on most browsers (take the borders and images on this website as an example, which conforms to the HTML4.01 strict DTD). The worst example I've seen yet is http://www.northerns.co.za where the copyright notice at the bottom of the pages is in fact a kludge to make Internet Explorer render the page correctly!
Sucks, to say the least.
Take IMAP support. Given, it has improven quite a bit, but having 40 or so idle connections to the IMAP server is just broken, no matter how you look at it. This is not a usability issue but rather a problem with how the IMAP back-end works.
Calendaring requires a dedicated exchange server, in other words, if you want to use calendaring, you have to use an exchange server - has anyone other than me seen what this does to a mail system? We actually had an Exchange server that was dedicated to the calendaring thing (and it caused so much mail to go lost it is unbelievable), this got replaced by a webdav + mozilla sunbird combination which all parties involved agrees is much more usable (initially it was a pain due to the fact that we had no way to pull the old information from the exchange server), but when some other minor issue came up and one of my co-workers suggested we temporarily switch back to the Outlook + exchange solution he nearly got spat at (thank goodness for good manared people).
Multiple mail accounts. Fneh. The handling here just sucks, I had such a mission getting Outlook or Outlook express to seperate mail for different accounts into different folders, and the total inability to have different rulesets for each mail account is simply inexcusable. Having a single Outbox and Sent folder for all mail accounts is just as bad, and I still haven't managed a workaround around that (And I've stopped trying a long time ago).
Bottom line: Use mozilla thunderbird.
Try this on for size: http://www.northerns.co.za/login.jsp. If you are lucky (aka, using Internet Explorer) you sit and wait for about 15 seconds before the page gets displayed (Please note that the actual HTML has changed in the meantime, as has the uri - but that much has been updated). The actual HTTP looks like:
This was sniffed using tcpdump and decoded using ethereal. Internet Explorer requests are sent using HTTP/1.0 by default (I only managed to locate the option for HTTP/1.1 after seeing this)! For heavens sake, MS - catch a wake up! After retrying the above exactly using telnet I noticed that squid immediately closes the connection anyway. Why, oh why does Internet Explorer then still sit around waiting for nothing? I realised something was wrong when mozilla rendered the page time upon time in less than 1 second since the page gets requested. Only shame is that when I developed this site I wasn't a Linux freak yet and the site requires Internet Explorer in order to render the bar accross the top (Which has now been removed and the site is fully functional in all browsers tested).
In addition - it does not reload pages that the server says cannot be cached - IE: It decides for itself which pages can and cannot be cached, and there is nothing that me as a programmer can do to tell it that /scripts/menu.js changes. This forces users to do the Ctrl+Reload thingy to get it to reload the correct stuff, causing large amounts of bandwidth wastage (Has been fixed now that the bar is removed and the entire menu is now part of the HTML content).
Whilst the above does not specify content-length, the connection termination should take care of that (obviously no more content can be streamed once the connection is closed) - why does not IE pick this up? Microsoft, learn to employ programmers, not script kiddies!
Another thing, just look at that Accept: tag. Hmm, I accept image/gif, image/x-xbitmap, image/pjpeg, application/x-shockwave-flash, and while we're at it, let's sommer accept anything that comes my way. Why can't it just say "Accept: */*"?
Windows Installer "Black Screen of Death"
I'm seeing this one more and more often - and it only has one cure - Linux. What I mean with black screen of death is that one inserts the Windows 2000/XP installation CD and just before the blue screen comes up (ie, during the "Setup is inspecting your hardware" message) the screen just goes blank and installation is terminated.
This happens due to the fact that Windows cannot handle a broken partition table, or invalid content in the first 512 bytes of a partition marked as NTFS or any of the FAT/MSDOS partition types. There is only one fix: Linux. Since you cannot use any Windows tools since Windows won't start up (Microsoft - I swore a lot about this one, lost various Linux installs and generally became very angry at you guys). You can boot any Linux LiveCD (Knoppix, Gentoo installation CD, or practically any other Linux install CD afaik) that will provide you with a shell. You then need to clobber the invalid partition table, or the first 512 bytes of invalid partition tables:
# dd if=/dev/zero of=/dev/hda bs=512 count=1 # Nukes the partition table # dd if=/dev/zero of=/dev/hda1 bs=512 count=1 # Nukes the first 512 bytes of the first partition
I was really disgusted at this one. It took me a while to figure out I only need to nuke the first 512 bytes of the partition and as such lost at least 2 distinct fully working Gentoo installations as a result (One of which took me about 3 days to get working due to a broken ACPI implementation). I was really angry.