John Topley's Weblog
April 2004 Article ArchiveThe Enemy WithinWednesday, 21 April 2004My partner asked me recently why people hate Microsoft so much and it's a question I've been pondering for a while, as well as thinking about my own attitudes towards the world's largest software company. I consider myself to be in an unusual position in that I'm a Java developer who does actually like Microsoft. This is considered heresy by many in the Java world where the assumption made is that you can't like both. I may just have lost some readers who visit this site for the occasional Java content, but I don't take such a binary view of the world. I think that Microsoft is just about the best place to work if you're passionate about developing software and even those who work for competitors grudgingly agree. I should love to work as a developer at Microsoft if I were a lot cleverer and if I could stomach living in America (no offense intended if you do). It's not accidental that a large proportion of the brightest people in the business work for Microsoft. Some would claim that this is down to the lure of MS cash. I don't buy that argument because for people this smart remuneration would be generous at any company, besides which the acquisition of wealth is not their prime motivation. It's the opportunity to do great stuff and reach a large number of people. As I'm writing this I'm deliberately trying to be as objective as I can and I'm trying not to just come across as an MS fanboy because I don't think I am. I'm certainly not reticent about criticising Microsoft when I think they need to do better; indeed you can find several examples on this site. I welcome diversity in the computing arena and I actively take opportunities to learn about non-Microsoft technology. For example, today whilst I should have been working I read quite a lot about Apple OS X—which I think is a great OS—and I also burnt a CD with Knoppix Linux on it (more about that another time). What really annoys me is when people are so blinded by their hatred of Microsoft that they lose all objectivity and go about spouting drivel to others, when they haven't even thought about what it is they're actually saying and why they're saying it. Often they're just repeating the anti-MS mantra because that's what you do. When so-called IT professionals display this prejudice in an official capacity in meetings, I'm afraid I lose all respect I may have had for them. I flip the bozo bit. The same goes for those who refer to M$ or Micro$oft. I believe that competition is healthy and improves the breed. I'm glad that Linux exists and continues to improve because it keeps Microsoft focused on improving the Windows operating system that I choose to use. Witness Windows Longhorn, which is shaping up to be the most exciting and interesting realise of Windows for a decade. I may not always choose to use Windows (or whatever its successors are called) but it serves my present needs well. Similarly, Java and J2EE forced Microsoft to do something about its mediocre developer tools offering at the time of Visual Studio 6, which led to the creation of .NET. This in turn has forced Sun to wake up and improve its technology. It's no co-incidence that Java 1.5 is the most interesting version of Java in years and features language improvements—such as generics—that are also debuting in C# soon. Talking of Java, it's often claimed that Microsoft tried to destroy Java because they added Windows-specific extensions to their J++ variant. It's easy to see how Microsoft would feel threatened by Java, which is after all a platform in its own right that to an extent makes the underlying operating system irrelevant, no matter what it happens to be. There were/are undoubtedly executives within Microsoft who made or make it their top priority to neutralise the Java threat. However, people don't generally see the other side of the coin, which is that there are developers within Microsoft who are Java enthusiasts and who wanted to make it a great platform for developing Windows applications. And to do that, they had to add in some platform-specific features which you could take advantage of if you knew you were writing for Windows only and if you wanted to. It's also worth remembering that for a time the Microsoft JVM that shipped with Internet Explorer was the fastest one around that actually ended up on user's machines. Of course it's hopelessly out of date now, which benefits no one. Anders Hejlsberg, the powerhouse behind Borland Turbo Pascal and one of the brains behind Borland Delphi, was involved with the creation of J++, which in many ways laid the groundwork for what was to follow with .NET. C# is often called a rip-off of Java, but it's not a shameless clone because it added some neat new tricks of its own. And Sun Microsystems aren't the origin of everything original within language and framework design any more than Microsoft or any other single company are; Borland helped Sun design their JavaBeans component architecture because Sun were impressed by Borland's VCL created by…Anders Hejlserg et al. I don't view Microsoft as some monolithic entity, with 50,000 employees focused on the one aim of destroying their closest rivals. It's hard enough trying to get tens of people pulling together in the same direction—believe me I know—let alone tens of thousands! Time and time again the accounts coming out of Microsoft from insiders are of a company that in many ways is run along Darwinian lines, with different groups competing against each other and not co-operating. Hardly an environment conducive to nurturing grand conspiracies. I think that the two biggest threats to Microsoft right now are previous versions of its own software and its reputation. The two are closely linked because Microsoft's current reputation is largely formed from what it's done in the past and not what it's doing today. I'm thinking in particular about Windows and its reputation for being insecure and unstable. I'm not saying that reputation is undeserved because both of those things have been true about Windows for a long time, but I genuinely believe that the situation is getting better and that's happening because Microsoft's customers are demanding it. Windows XP Service Pack 2 does a lot of right things in the area of security and Windows has been a stable operating system for years now. I haven't seen a blue screen of death on either my home or work PC for at least three years. Really. Windows has got such a bad reputation that there are those within Microsoft who are even suggesting the unthinkable: that Microsoft throw away the Windows brand name plus all that's invested in it, and call the next version something else. I don't think it will happen but it's an intriguing idea. It's very easy to criticise Windows over security and stability without really thinking about why it's the way it is. What many of the naysayers don't consider is the fact that the direction of Windows is driven by consumer demand. The top priority at Microsoft when developing software has almost always been to preserve backwards compatibility, because Microsoft knows full well that customers won't tolerate not being able to run their existing software using a new version of the OS. This has informed the design direction of Windows and has led to many complex trade-offs involving compatibility, security and stability. If you don't believe me then go and read Raymond Chen's blog—it's a real eye-opener. This stuff is damn hard to get right. Don't forget that Apple have completely broken backwards-compatibility more than once and a fraction of the software that Windows has to support runs on the Macintosh. It's amazing how many jokes Windows has become the butt of, particularly when it comes to stability. It's even entered mainstream culture. We've all heard those jokes, some of us have probably made them too. I regularly get exposed to them at work. There's a Java related website I visit that features a different programming question every day in the style of the Sun Certified Java Programmer exam. I came across this question recently: “Your chief Software designer has shown you a sketch of the new Computer parts system she is about to create. At the top of the hierarchy is a Class called Computer and under this are two child classes. One is called LinuxPC and one is called WindowsPC. The main difference between the two is that one runs the Linux operating System and the other runs the Windows System (of course another difference is that one needs constant re-booting and the other runs reliably). Under the WindowsPC are two Sub classes one called Server and one Called Workstation. How might you appraise your designers work?” —Amongst the possible multiple choice answers were: “3. Ask for the option of WindowsPC to be removed as it will soon be obsolete.” These aren't official questions from Sun and I didn't dignify this one with an answer. Yes, Windows 9x wasn't a paragon of stability but then it was never designed to be. It was designed to be as stable as possible within the constraints of the other requirements that it had to meet. The top requirement was that it had to run all your old 16-bit Windows and MS-DOS software as well as the new 32-bit applications. Of course, no customer actually asked for instability in Windows 9x, but they ended up with some because it's a trade-off. The vastly superior Windows NT was always planned to replace it, it's just taking years for that to happen. In terms of security, of course Microsoft have to do a lot better and I believe that they will. Their biggest headache is the masses of machines out there connected to the Internet that are running a legacy version of Windows that was developed when the explosion of the Web caught Microsoft by surprise. Consumers weren't demanding security then. I draw parallels with the automotive industry, which is also driven by consumer demand. In Europe, for years only the luxury car manufacturers offered safety features over and above the basic. I'm thinking of technologies such as airbags, side impact protection and anti-lock brakes. Now safety has become a major selling point and differentiator that can make the difference between the car buyer closing the deal or walking away. It's the same with computer security, which is now Microsoft's stated top priority. There's no denying that things that used to be turned on by default in previous versions of Windows are turned off by default in Windows Server 2003. The focus has shifted 180 degrees from ease of use with positive action required to make things secure, to secure by default with positive action required to make things less secure. Interestingly, I was in a meeting last week where someone pointed out that the Oracle 9iAS J2EE application server comes with a lot of features turned on by default post-installation, some of which could be exploited and used to compromise the system. I know it's a different order of magnitude from millions of computers running Windows but I don't hear Oracle getting it in the neck even slightly over that. Windows is often mindlessly criticised for being bloated, as if its EXEs and DLLs are somehow padded out with zeroes in a grand conspiracy to use more disk space and sell more hard drives. The code taking up the space does actually do something you know! The people who whinge that Windows is a bloated behemoth would be the first to complain if they couldn't run all their software under a Diet Windows or if using it was unfathomable to them. Over the years I've noticed that those who hate Microsoft often fit into one or more of the following categories:
And me? As I stated at the beginning, I like Microsoft and its software. I don't think Microsoft are perfect and I know that their software isn't, but I think that they get more things right, more of the time than most of their competitors do. The important point is that I make up my own mind about things and try to keep it open. What's In A Name?Tuesday, 13 April 2004I had a snail-mail letter from my ISP last week trumpeting the fact that they're changing their name from Freeserve to Wanadoo. Apparently they wanted me to be one of the first to know, although they must have felt the same way about my partner too, for two such letters were received in this household and millions more were doubtless in the same situation throughout the country. The letter went on to say that my e-mail address would be staying the same and that in fact, I don't have to do anything differently at all. So why are they wasting my time by writing to me?! I couldn't care less what my ISP are calling themselves now, although I have to admit that Wanadoo is a pretty stupid sounding name. All I care about is the quality of service I receive from them. They said that I may have already heard of Wanadoo because it's Freeserve's parent company, but now Freeserve is magically “becoming Wanadoo”. I'm sorry but I don't see the distinction, and why are you bothering me with exposure to your internal politics? As far as I'm concerned the best service companies are the ones that provide a service to cost ratio that's right for me. Also, after I've entered into an agreement with them they're effectively invisible because they don't bother me with dumb letters telling me about their new name and inviting me to look at their new logo. Debugging Using DTDsThursday, 08 April 2004Yesterday I spent more time than I would have liked trying to track down a problem with a custom JSP tag library that I was developing. I'd added some attributes to the TLD file and packaged the custom tag as a JAR file ready for use by my test web application. I copied the JAR to the application's WEB-INF/lib directory. When I came to run my JSP, Oracle JDeveloper couldn't compile it. The compiler gave an error message about an invalid element and said that it was unable to load the taghandler class. I went back to the TLD file and carefully scrutinised it to make sure that it was well-formed XML, which it was. Then I examined the associated tag class, and at this point I thought I'd found the source of the problem because I noticed two typos in some accessor and mutator methods. I corrected these and redeployed, but I still got the error. I roped in a couple of colleagues to help but they couldn't see anything wrong either. The frustration began to build at this point. Finally I remembered something I'd successfully tried a while ago whilst having a problem with the Jakarta Struts configuration file. I copied the URL from the DOCTYPE at the top of the tag library deployment descriptor and pasted it into a web browser: <?xml version="1.0" encoding="UTF-8"?> After a while examining the DTD, I saw what was wrong: <!-- —My file had the <example> sub-element immediately after <description>, when it should have been after <attribute>. I think this happened because I'd used a JDeveloper wizard to get the skeleton of the tag started and had then gone back and manually added some attributes. It could be argued that this wouldn't have happened had I read the relevant documentation, but who has time to read all the J2EE specs and be productive? The lesson I took away from yesterday is that:
Is This For Real?Friday, 02 April 2004I've just received an e-mail that has totally baffled me. Upon first reading I thought that it was spam and this article was going to be a name and shame exercise, as I did previously. However, now I'm not so sure that it is spam but I don't really know what it is. Let's go through the e-mail and I'll tell you what I thought. Firstly, the e-mail was from a “Bert C” but was addressed to the webmaster, which is a known spamming tactic. It reads: “I am contacting you about cross linking. I am interested in your site because it looks like it's relevant to a site for which I am seeking links.” —I've never heard of cross linking. Sounds a bit dodgy. “This site is about industrial PC products and the world's leading supplier of embedded computer technology, serving a diverse customer base and a wide range of industrial markets.” —What has my site got to do with industrial PC products and the world's leading supplier of embedded computer technology? I smell harvesting at work. If a human being had actually looked at my site they'd have more of an idea of what it's about! “I'll keep the web address confidential and will send it to you only if you give me permission to do so. Just let me know if it's OK, and I'll send you the web address for your review. If you approve of the site, then the intention is to exchange links.” —Sounds reasonable. Bert signs off at this point, but wait, there's a postscript: “P.S. If for any reason you don't want me to contact you again, email me with the words "NO EMAIL" as the subject of your message.” —Alarm bells start ringing! This is one of the oldest spamming techniques in the book. You send the reply and it confirms that they've got that most valuable spamming commodity i.e. a live e-mail address. The e-mail includes a web address, so I took a look: “Welcome to Link-Builder.com, dedicated to helping webmasters and web managers improve their website link structure.” —I'm quite happy with my website link structure actually, although I often lie awake at night wondering if I should have flyout sub-menus with links to my Archive categories. “We found that your website contains words or phrases similar or related to our clients website theme. The email you have received is a request to consider ...” —It must have been my use of the phrase Every family in Britain had a Cortina in 1973 that did it. Or was it Note the invokespecial #1 line that calls Object's constructor or perhaps It's always tricky staying within the lines when colouring in? I was going to link to the articles containing those phrases but dear reader, it's more fun to leave you to find out for yourself. More promisingly, Bert's site has an FAQ section: “Is our email SPAM? That is a difficult question to answer”…Whoa! Red alert!…“because of the many different definitions of SPAM. The first thing to note is that most state laws governing SPAM have to do with advertising for a commercial purpose. Exchanging links hardly falls into that condition. And the federal government has not enacted any SPAM laws governing this condition.” —Well, I'm glad we cleared that one up. It goes on to say: “WHO is Link-Builder.com? Most website [sic] have a company address and telephone number listed. Link-Builder.com does not. Why? The reason is straightforward. Although few, there are individuals that believe their propose [sic] in life is to rid the world of SPAMers. They take it upon themselves to file lawsuits in state courts and seek to have your website banned from the Internet. Yes, we have run across some of these individuals, and for this reason, choose to take a low profile. Please forgive us for not being more forthcoming on our website, but we need to be a bit obscure. For those that expressly request more information, we will disclose a measured amount of company information.” —If you're legitimate, then what have you got to fear? Does anyone know if this is genuine? Leave a comment if you do. I'm not interested in participating but I am curious about it. Bert, if this is legitimate then I apologise, but you have to understand my reasons. It's pretty sad that the cancer of spam has caused me to be so cynical. |
![]() |


