SQL Reporting Services Book

While travelling lately, I also finally finished reading Peter Blackburn & Bill Vaughn’s wonderful book on SQL Reporting Services. I thoroughly enjoyed it although I did find their Harry Potter chapter 9 3/4 a bit over the top (and as you’ll note below, I’m into reading Harry Potter).

Peter and Bill provide great coverage of pretty much every aspect of using the product from a developer’s point of view. The only area I’d have liked to seen more on was using it from within Winform apps. However, that will be a good story soon with new Winform controls that can render RDL directly coming November 7th 🙂

They also manage to cover some far-from-obvious topics that provide good advice.



Just got back from an entertaining session by Charles Sterling at our MSDN user group. Chuck covered the membership and webpart management API’s in ASP.NET v2.

While I really like how easy the ASP.NET team have made it to set up these tools, I really, really do not like the API’s they’ve come up with. Unless I’m missing something, they are completely inconsistent with how things are “normally“ done in the .NET Framework. One of the biggest contributions the .NET Framework made was to clean up the mess of API’s that were associated with Win32. Whey then do we want to mess with this?

First example: enumerations.

What’s up with the following code?

WebPartManager1.DisplayMode = WebPartManager.EditDisplayMode


WebPartManager1.DisplayMode = WebPartManager.BrowseDisplayMode

Why isn’t this a WebPartManagerDisplayMode enumeration with values like “Edit” and “Browse”, etc.? Surely the code should have been:

WebPartManager1.DisplayMode = WebPartManagerDisplayMode.Edit


WebPartManager1.DisplayMode = WebPartManagerDisplayMode.Browse

2nd example: lack of collection-based code

What’s up with the following code:


Why isn’t it:


and why don’t we delete a user by:


All the methods seem to ignore standard collection-based code.

3rd example: poor use of classes

Why is role a string and not a class? How on earth will they ever extend it if they need to? What if someone wants to build their own role object? Surely there should at least be either base classes or interfaces with names like IWebUser, IWebRole, etc.

4th example: poor integration with Active Directory and Code Access Security

The .NET Framework already has role based security that’s integrated with Active Directory. Surely we should have at least been dealing with IPrincipal and/or IUser objects, etc.

5th example: inconsistent return types

Some of the methods return error values when they don’t work, some return exceptions. There seems to be no clear structure to this. Also, why don’t methods like CreateUser return a user object?

I have grown so used to being impressed by most things coming out of the ASP.NET group and their dynamic work. With this work, I’m seriously disappointed. I’d love to find out I’ve missed something.




Echo, echo, echo

Hi Folks,

Was just talking to Mitch who was doing some Skype testing and I mentioned Echo123 to him. Thought I should blog it as I was unaware of it until the other day too and I figure I might not have been alone on that.

If you need to test Skype (or headphones, mikes, applications, etc.), you can connect to address “echo123”. An automated voice greets you, allows you to speak some text and then echoes it back to you.



Yes I read Harry Potter too

Similar to what Mitch Denny mentioned in his post, I bought a copy of the latest Harry Potter book on Saturday and finished reading it last night. It was a case of deja vu reading Mitch’s post.

I enjoyed the book. I think it’s a tribute to J K Rowling that I can still be bothered to do so (and so quickly) after six volumes. The story really sets the situation for the next book but is a good read on its own. It certainly fills in a lot of blanks left by earlier volumes.

Don’t let anyone tell you what happens at the end if you intend reading it though. Recommended!

RSS Bandit and F@#$@#$!@#$!@#$ Hotel Internet Connections (particulary GetIn2Net)

I detest the amount of money I have to pay for Internet connections when staying at hotels. Recently, it cost me $84 for one night at the Saville Park Suites in Perth for a dial-up connection via their 5500 service. Even though there was a cap on each call, the system kept cutting me off and I had to keep redialling, thus starting a new call cap.

Mostly, I use iBurst where it’s available (currently Brisbane, Sydney, Melbourne, Canberra). But when I travel to Adelaide or Perth, I’m currently out of luck on that front.

One of my least favourites is the GetIn2Net service that a few hotels have, including the one I was at in Perth last week. They have a charge of 55c a minute or capped at $27.95 per day with a stunning 50Mb data limit before your cap starts again.

But the bit I REALLY appreciated, is that when you’ve exceeded the data cap, every URL you try to access appears to be returned as a PERMANENT redirect to their login site. And, of course, that meant that EVERY url that RSSBandit tried to access got returned a permanent redirect and it then updated EVERY feed URL for me in my RSSBandit settings. For example, Scott Guthrie’s URL became:


Thanks GetIn2Net folks! I REALLY appreciated the time I wasted sorting that one out… 🙁

And another book

While on the flight to Perth, I read Joe Celko’s new book on SQL Programming Style.

It certainly was an interesting read and quite thought-provoking. Can’t say I agree with all his conclusions though. For example, even though I’ve read his arguments why, I just don’t see “invoice_nbr” as a better column name than “InvoiceNumber”. It’s no doubt my background that clouds this. But on many, many other recommendations he makes, I couldn’t agree more.

I’ll be tackling details from it on our SQL Down Under mailing list (details at www.readify.net) over the next few weeks to get others’ reactions around the country. If you’re not a member of the list, just email the subject “subscribe” to mailto:sqldownunder@listserver.readify.net?subject=subscribe. We’d love to have you take part in the discussions.

If you are building standards for your organisation’s coding, you should at least read this book before going any further. It will force you to explore areas you might not have considered, even if you don’t agree with all the findings.

Joe realises not everyone will agree with him but he wants them to fully justify why so I hope to do that for the ones I don’t like as the discussion progresses.

Hilary Cotter’s Replication Book

While travelling recently, I finally got to finish Hilary Cotter’s book on SQL Server replication. What can I say? It’s excellent work. If you are working with either Transactional or Snapshot replication with SQL Server 2000, this is the bible. Hilary provides a very clear description of every question in every dialog you are likely to see when configuring replication and gives wonderful insights into how it works internally. Highly recommended!