I quite often read “The Old New Thing“, one of the Microsoft MSDN blogs – it actually contains some quite useful Windows API programming info, as well as quite a nice insight into the workings of Microsoft, and the historical reasons for the way Windows works.

Any, today he’s posted about why running applications off of a USB memory stick is probably not a good idea.

This article, entitled “Either Support Safari, Or Lose Customers” makes a lot of sense, but I don’t think it gets to the point well enough. In summary, the article says that unless website designers do not support Safari, then they will alienate Apple users.

My point is this: I don’t understand how a website can do this. To “not support” Safari, requires specific logic to detect the browser specifically, and refuse entry. Why have they not designed the site against a recognised W3C standard? In short, Mozilla Firefox (and other “Sea Monkey” derivatives), Konqueror and KHTML (which Safari is based on), and now several other browser engines all conform to W3C standards for the most part of XHTML, and CSS. In fact, it is Internet Explorer that does not parse web sites correctly. However, given a standards compatible site, Internet Explorer will do a pretty damn good job of rendering it.

So then, the logic follows, instead of making a website that looks good in one browser only, why not make a website that will appear good in the new wave of browsers (which will include Internet Explorer 7 when it is released) but won’t look terrible in the one browser that doesn’t go by the book? That way, there would be no need to alienate users of operating systems, or alternative browsers, that you haven’t thought to cater for.

I used to code the other way round – make sites that look good in IE, and just check that they work OKish in Netscape. Now, I flipped that around. I develop my sites for (and using) Firefox, and get them to validate. During the process, I then check the site design in IE, KHTML, and now that I have my Mac, Safari and Camino too.

There seems to be a lot of hate today, from people in the Linux community.

It’s strange that, in my experience, the developers of Open Source Software (in this case, and from my experience, I’m talking mostly Linux here), don’t really care too much if people use their “product” or not – they just want to make it the best that they can.

If someone in the tech community makes a statement criticising OSS, it is the users that jump up and down, and start to get angy. It also appears that it is those people who make the least valid point (as is so wonderously demonstrated here).

From my experience of developers’ reactions, their come back is some what more subdued – it tends to be more along the lines of “OK, fine. You don’t like us. I can still sleep at night” – as is so brilliantly described here.

What I don’t get though, is why the users are so determined to defend OSS. My opinion is “Sure, it’s great. I use it a lot and I certainly appreciate all the work that people have gone through to get this to me – Well Done. But it does have it’s faults….” – it just seems that some people cannot see that OSS does have faults, bugs, etc, just like any other piece of software, so why do they get so uptight when someone points it out?

You need to understand the story of this one, and have an understanding of how relational databases should work for it to make any sense.

This guy “Jay”, should be fired. That’s not a joke. If he is using a relational database system, and he is creating a new table per order, then he does not understand any of the principal rules, and workings, of an RDBMS. I would hate to think what his code would look like, and the speed at which the information would execute is just ridiculous. Essentially, he has created a new file (with the database table overhead, once per file) for every single customer order – that is just wrong, incorrect, and incompetent.

OK, so I now get quite a lot of comment spam. It’s not exactly a torrent, but none of it ever gets through my 100% effective filtering system (i.e. Me).

However, I did think about automating at least some of the process, and so at the weekend I started recording IP addresses and User-Agent strings, in a futile attempt to at least get some kind of handle on this.

What I’ve seen disturbs me. Effectively, the spammers are “spoofing” their User-Agents to the extent that it is possible to exclude them based on their User-Agent string, but I could also be excluding a large proportion of my audience.

For example, one of the strings is “Mozilla/4.0 (compatible; MSIE 4.01; Windows NT Windows CE)”, however, looking it to this string here (fifth entry down), you can’t really do that. I’ve seen someexamples of .htaccess files that seem to limit some of these things, but even these get it wrong – in both my quoted examples, you will see that the completely exclude “Maxthon” which is a legitimate tabbed shell around the Internet Explorer Active X control, and you can also see an exclusion for “AtHome021” – an extension added to the end of Internet Explorer’s User-Agent string by the “At Home” ISP.

I’m thinking about integrating some kind of pattern recogniser to work out the “routes” through my website that legitimate users take, and the routes that spammers take, in order to work out some kind of trail.

I’ve had my first real experience with an AA man this morning (as in The Automobile Association, rather than Alcoholics Anonymous). It was actually a very pleasent experience. I’ve had to call the RAC out before to get my car towed home for 96 miles from Reading, but that was done by a local garage and a low-loader, rather than an RAC van themselves.

When I was a kid, I remember my Mum calling the AA, but I never really got to speak to the man as I was still sat in the car. This time, it was a little different, seeing as I am at work, and 23, not 10.

The guy came, asked me the problem, fixed my car within 5 minutes by replacing a broken hose, and we both had a little bit of a laugh. I asked him if I needed to fill out any paper work, which I didn’t, and everything was sorted. Cool!