Monthly Archives: March 2008

Making the UpdatePanel accessible

Bertrand has written a great article for the dotnetslackers web site on how to make the UpdatePanel acessible. Great read, don”t miss it!

Malvertizements – cyberipod and mediaman

IMPORTANT: THE TWO ADVERTISEMENTS FEATURED BELOW WERE SHUT DOWN IN JUNE 2007.  My mistake. I’ll be more careful in future to ensure that reports I see are for current malvertisements.  My apologies to Doubleclick.

Lesson learned: previously identified malicious content should be moved out of public view.

‘m on the road at the moment, so only have screenshots for now.

Preliminary analysis at adopstools indicates malicious content:







News: Malware victim tries in vain to punish its source

It has been reported that Joseph Bochner’s lawsuit against a some people allegedly behind the distribution of “Winfixer” type software has been dropped.

I have correspondeded several times with Joseph over the past year or so, and am disappointed for him.  You’ll see from the article that one of the accused, James Reno, was never served and as for the other one, Marc Cohen, well, he simply ignored the lawsuit and didn’t file an answer to the complaint.

Note this paragraph:

“The files indicated that WinAntiVirus sales figures averaged about $10,000 a day, and during one month, daily revenue reached about $30,000 – about 1,000 people a day duped into paying for something they didn’t need. Collectively, that meant the alleged scammers were taking in at least a few million dollars per year from WinAntiVirus alone.”

I have heard *unconfirmed* reports that the Winfixer type software (that is, the fraudware family as a whole, not just Reno and Cohen alone) could have pulled in as much as $130 million.  That’s a hell of a lot of cash.


Why I wish everyone had an iMac for April Fools Day

Oh, PLEASE can someone do this to the iMacs in one of those swanky graphics design offices!


There are more April fools geek pranks here

Windows 2000 Resource Kit Tools for administrative tasks

Windows 2000 Resource Kit Tools for administrative tasks

This years MVP summit

You might already have read on the blog of Owen or Nick that the MVP summit of this year is starting soon. Unfortunately I will not be able to be there. That is a pitty, as I would have loved to meet Owen, Nick and the other MVP’s in person. But after traveling to the DevCon last November I have to save some traveling budget again, so maybe next year I can be there.

Book review: C# 3.0 in a Nutshell



The original C# in a Nutshell was the book I cut my C# teeth on, so to speak. Basically I read it (well, the bits which weren’t just reproductions of MSDN – gone in this edition, thankfully), played around in Visual Studio, and then started to answer questions on the C# newsgroup. (That’s a great way of learning useful things, by the way – find another person’s problem which sounds like it’s one you might face in the future, then research the answer.)

Five and a half years later (Google groups suggests I cut my teeth in the C# newsgroup in August 2002) I’ve just been reading C# 3.0 in a Nutshell, by Joe and Ben Albahari (who are brothers, in case anyone’s wondering). Unsurprisingly, there’s rather a lot more in this version :) I bought the book with a fairly open mind, and as you’ll see, I was quite impressed…

For the purposes of this review, I’ll use the “Nutshell” to mean “C# 3.0 in a Nutshell”. It’ll just make life a bit easier.


Nutshell covers:

  • C# 1.0 to 3.0 (i.e. it’s “from scratch”)
  • Core framework (serialization, assemblies, IO, strings, regex, reflection, threading etc)
  • LINQ to XML
  • A bit of LINQ to SQL while discussing LINQ in general

It explicitly doesn’t try to be a “one stop shop for every .NET technology”. You won’t find much about WinForms, WPF, WCF, ASP.NET etc – to which my reaction is “hoorah!”. I’ve probably said it before on this blog, but if you’re going to use any of those technologies in any depth, you really need to study that topic in isolation. One chapter in a bigger book just isn’t going to cut it.

That’s the scope of the book. The scope of my review is slightly more limited. I’ve read the C# stuff reasonably closely, and dipped into some of the framework aspects – particularly those I’m fairly knowledgeable about. The idea was to judge the accuracy and depth of coverage, which would be hard to do for topics which I’m relatively inexperienced in.

Format and style

Nutshell is a reference book which goes to some lengths to be readable in a “cover to cover” style. It’s worth mentioning the contrast here with C# in Depth, which is a “cover to cover” book which attempts to be useful as a reference too. I’d expect the index of Nutshell to be used much more than the index of C# in Depth, for example – but both books can be used in either way.

As an example of the difference in style, each section of Nutshell stands on its own: there’s little in the way of segues from one section to the next. That’s not to say that there are no segues, or indeed that there’s no flow: the order in which topics are introduced is pretty logical and sometimes there’s an explicit “having looked at X we’ll now look at Y” – but it feels to me like there’s less attempt to keep the reader going. That’s absolutely right for a reference book, and it doesn’t prevent the book from being read from cover to cover – it just doesn’t particularly encourage it.

There are lots of little callout notes, both in terms of “look here for more depth” and “be careful – here be dragons”. These are very welcome, and call attention to a lot of important points.

The layout is perfectly pleasant, in a “normal book” kind of way – it’s neither the alternating text/code/text/code style of the King/Eckel book, nor the “pictures everywhere” Head First format. In that sense it’s reasonably close to C# in Depth, although it uses comments instead of arrows for annotations. The physical format is slightly shorter and narrower than most technical books. This gives a different feeling which is hard to characterize somehow, but definitely present.

Accuracy and Depth

The main problem I had with Head First C# was the inaccuracies (which, I have to stress, are hopefully going to be fixed to a large extent in a future printing). While there are inaccuracies in Nutshell, they are generally fewer and further between, and less important. In short, I’m certainly not worried about developers learning bad habits and incorrect truths from Nutshell. Again, I’ve sent my list of potential corrections to the authors, who have been very receptive. (It’s also worth being skeptical about some of the errata which have been submitted – I’ve taken issue with several of them.)

The level of depth is very well chosen, given the scope of the book. As examples, the threading section goes into the memory model and the string section talks a bit about surrogates. It would be nice to see a little bit more discussion about internationalisation (with reference to the Turkey test, for example) as well as more details of the differences between decimal and float/double – but these are all a matter of personal preference. By way of recommendation, I’d say that if every professional developer working in .NET knew and applied the contents of Nutshell, we’d be in a far better state as a development community and industry.

The coverage of C# is very good in terms of what it does – again, appropriate for a reference work. I’d like to think that C# in Depth goes into more detail of how and why the language is designed that way, because that’s a large part of the book’s raison d’Ăªtre. It would be a pretty sad indictment of C# in Depth if Nutshell were a complete superset of its material, after all.

Competitive Analysis

So, why would you buy one book and not the other? Or should you buy both? Well…

  • Nutshell covers C# 1 as well as 2 and 3. The 3.0 features are clearly labelled, and there’s an overview page of what’s new for C# 3.0 – but if you know C# 1 and just want to learn what’s in 2 and 3, C# in Depth will take you on that path more smoothly. On the other hand, if you want to look up aspects of C# 1 for reference, Nutshell is exactly what you need. I wouldn’t really recommend either of them to learn C# from scratch – if you know Java to start with, then Nutshell might be okay, but frankly getting a “basics” tutorial style book is a better starting point.
  • Nutshell covers the .NET framework as well as the language. C# in Depth looks at LINQ to Objects, rushes through LINQ to SQL/XML/DataSet, and has a bit of a look at generic collections – it’s not in the same league on this front, basically.
  • Nutshell aims to be a reference book, C# in Depth aims to be a teaching book. Both work to a pretty reasonable extent at doing the reverse.

To restate this in terms of people:

  • If you’re an existing C# 1 developer (or C# 2 wanting more depth) who wants to learn C# 2 and 3 in great detail without wading through a lot of stuff you already know, get C# in Depth.
  • If you want a C# and .NET reference book, get Nutshell.
  • If you want to learn C# from scratch, buy a “tutorial” book about C# before getting either Nutshell or C# in Depth.

Clearly Nutshell and C# in Depth are in competition: there will be plenty of people who only want to buy one of them, and which one will be more appropriate for them will depend on the individual’s needs. However, I believe there are actually more developers who would benefit greatly from having both books. I’m certainly pleased to have Nutshell on my desk (and indeed it answered a colleague’s question just this morning) – and I hope the Albahari brothers will likewise gain something from reading C# in Depth.


C# 3.0 in a Nutshell is really good, and will benefit many developers. It doesn’t make me feel I’ve in any way wasted my time in writing C# in Depth, and the two make good companion books, even though the material is clearly overlapping. Obviously I’d like all my readers to buy C# in Depth in preference if you can only buy one – but it really does make sense to have both.

Yet another malicious banner advertisement at

OK, so tell me oh gentle reader… just how many “free passes” should a website get? is, once again, displaying a malicious banner advertisement.  This is the third incident that I have personally experienced thanks to an advertisement accepted by those responsible for, and enough is enough.


The URL of the malicious advertisement is:

As you can see, the campaign is new to this blog:



When we analyse the SWF we find this URL:

Yes, are known badguys.  We also hit and promoplexer are both hosted by WNET who also provide the name servers.  WNET have been mentioned several times in this blog.

The advertisement dumped me at

That URL led me to the now infamous gnida.swf (

And from there to

before I finally ended up at

Wild and Crazy – Apparently

Owen says I am “Wild and Crazy”.  Really?  Who knew.

Yes, I will be attending this year’s MVP summit in Redmond.  I missed the last one because of the house move that was going on (still is to some extent).

This year Microsoft have given us method to be able to split out compentencies officially.  Before, I simply “Bunked off” going to sessions with the SBS guys and snuck into the ACES studios, drank beer, chatted, played Flight Simulator and was generally merry.  The SBS MVP’s could never understand why when I came back to them I had a big grin and was swaggering a little.  Now they know.

Anyway, I am rambling as usual.   Bottom line is that as soon as the MVP team figure out why I can only select from the SBS tracks, and not both compentencies, I will sort out exactly what I am doing at this years summit….    but I expect to be with the Games for Windows guys for at least one day (and one night <<<< beer session)!

Welcome to the world of betas….

I received the following email today:

I need to uninstall ie 8 beta it sucks ..

<<name removed>>

Ie 8 is the worst program from Microsoft EVER

Our (un)friendly correspondent doesn’t seem to understand the implications of downloading and installing a BETA program – especially an early beta that is called Internet Explorer 8 for Developers.

The Internet Explorer 8 Web site’s download page states that “This beta is aimed at web developers and designers to help them take advantage of new features in Internet Explorer 8 that will enhance their websites.”  Not only that, the Download Centre itself warns that “This beta release is available to everyone, but is primarily for Web developers and designers to test the new tools, layout engine, and programming enhancements.

Assuming our (un)friendly correspondent is actually a web developer or designer, he seems to have failed to heed the suggestion on the IE8 web page that he check out the Internet Explorer 8 Readiness Toolkit which is a pity, because if he had looked at the Toolkit he would have found a link to the Internet Explorer 8 Release Notes which include removal information for Internet Explorer 8.

Perhaps availability of Internet Explorer 8 for Developers should have been restricted to Technet and MSDN subscribers and a limited pool of experienced beta testers – then I wouldn’t be getting emails from people like our (un)friendly correspondent who want to install betas but can’t be bothered with reading the documentation.

Oh well, I may as well answer the guy’s question – here is a copy of the relevant segment of the Internet Explorer 8 Release Notes:


Recent Comments