Stepping out of Luddite Land

i bought my first *EVER* dvd player on the weekend.

it was really intimidating -- the guy in the shop treated me like i had leprosy and was all like, 'ha ha ha welcome to the twenty first century, loser!'

he tried to sell me the most expensive model in the store and was all like, 'this one's got multi-zone, multi-format ZPX 1.3 and various multi-plex decoding emulators that a luddite with leprosy wouldn't understand,' and so on.

and i was all like, 'but what about THAT one, over THERE -- it's retro and groovy looking and only forty dollars and it takes TWO dvd's at once!'

and he was all like 'dude. that's a toaster.'

so i settled on a mid-range DVD unit that plays most formats and only does one piece of toast at a time.

now i just got to wait for Lano and Woodley's DVD to come out (in one week!).

 

Save Dog as Virtual Chicken

Someone mentioned this concept: 'Save Search as Virtual Folder'.

There's a big conceptual leap in there that I like. A certain, 'Save Dog as Virtual Chicken' concept that is quite powerful.

It sounds like polymorphism, but is really very different. Polymorphism is like this: 'Treat Dog as Mammal' -- where a specific thing is treated in a less specific way. And numerous specific (and different things: a dog, a bat, a dolphin) can be treated identically, provided they are only treated in a more general way (as mammals). You still with me? Good.

Unlike Polymorphism, the concept of 'Save Dog as Virtual Chicken' is "Transformative" -- like the 80's T.v. show Manimal, and maybe that 90's movie with Rob Schneider (The Animal?).

Save Dog as Virtual Chicken involves transmogrification, which must occur deep inside the Dog, and requires the dog to be aware of the inner workings of chicken. (or alternaitvely a dog-chicken translation-entity must be aware of how both dogs and chickens work, and have access to the innards of the dog.

So what are some other ways this concept can be used?

Lists in sharepoint expose a '.toDataTable' method. That's one example. The 'toString' method. That's transformative. Serialization is transformative, (e.g. Turn Customer object into a chunk of text). Import/Export routines that move data from one application to another, are often transformative. Do the words 'bridge pattern' fit in here?

Back to basics. Save email as ToDoList. Save email as bug. save spreadsheet as application. Save spreadsheet as virtual database. Open database table as excel pivot table. Magic! Convert dog to virtual chicken!

 

Coder to Developer: to the rescue again

As always, this excellent book just keeps proving useful.

Here's a quick graphic to illustrate its power

Before:

before:

After:

after:

I've been meaning to write a clever and informative review of this tidy volume for a while now. Instead, the best I've managed are the illustrations above.

Within the confines of .net development, Mike Gunderloy's coverage is very broad. He goes right through the process of inventing, designing, writing, testing, building and deploying a small .net application.

Mike is a devoted collector of tools, code snippets, pieces of knowledge, and labels himself a 'magpie'; obsessed with shiny things. The extent to which he does this is extraordinary. To review the amount of software tools Mike covers you'd need more arms than vishnu, and more computers than NASA. Hence, it's in our best interest to exploit his fetish.

Be warned in advance though: this is not a thick volume, hence the affordable price. It is highly-distilled, concentrated goodness. And although you could apply many of the principles to other platforms, it's aimed squarely at ".net" programmers.

Keep this book handy, and keep an eye on mike's blog and the book's resource website too.

 

Stuckness: other Delicious news

Something I wrote a few years ago called 'List your way out of stuckness' has sprung from the wiki wilderness to receive 100 recommendations at 'Del.icio.us. I'm surprised and enthused.

I've described a revised/simplified version of the technique here: Writer's Block, Geek-Block, and Procrastination. Also, there are fourteen good techniques for overcoming procrastination, in the book 'Feeling Good' (I'm going to summarize these some time soon and write about it -- they apply to varying circumstances and should be in the behavioural repertoir of anyone who suffers from this horrible affliction.)

The word 'stuckness' comes from a very clever guy I went to uni with, named Martin (surname forgetten!), and sprang from a conversation about that uber-selfhelp for nerds book, 'Zen and the art of motorcycle maintenance'. The technique may be similar to those described in 'Gettings Things Done' or the book 'Feeling Good' -- but it's my own independent invention, and I'm claimin' full credit/blame. When you are really stuck, this technique does indeed work.

Merlin Mann said on 43 Folders: "It gets amorphous anxieties out of your brain's echo chamber, and that's always a good thing." He also created a pdf version of the template. Thanks Merlin!

(and thanks to Brandon "solarce" Bowman for his version of the template)

 

Reporting services -- Tips and tricks

Reporting Services is a nice balance of ART and SCIENCE.

Lamentably, there's not a lot of tips and tricks out there for RS just yet.

Perhaps 'Lamentably' is too strong a word. It's hard to picture a cowboy sittin around a campfire singing a sad old song about the lack of reporting services blogs. Cowboys tend to focus on things like cold-hearted horses who betrayed said cowboy under a noon-day sun.

Regardless, there are some fine Reporting Services resources that are worth the read.

To date I recommend the following:

For Introductory Purposes

Check out:

This article by Bill Jones, a practical guide to using RS in a production environment (not just some shmancy sales pitch, like most info out there).

This introductory article (targeted at people who can already use asp.net)

And moving on to BLOGS

The best so far has been: "Chris Hays's Reporting Services Sleazy Hacks Weblog" (Not surprising that it is so useful, it's written by: "the guy who gets to take the credit and/or blame for designing the Report Definition Language.")

Measuring and improving performance (of Microsoft SQL Server Reporting Services) at Tudor's Reporting Services WebLog

Apparently "Tudor is the lead developer for the Reporting Services product and thereby an instrumental part of its design and development."

Bryan's WebLog: Reporting Services - Design, Deploy, Deliver

The Reporting Services category of Tara Duggan's blog.

And it must be added:

Enjoy Every Report: Kent Tegels' Reporting Services WebLog

But don't neglect the newsgroup:

microsoft.public.sqlserver.reportingsvcs

 

A Gmail Wiki.

Hey Gmail! I wish you had a private built-in Wiki, so I can store/edit and order my own private notes/info.

Sure I could get a wiki somewhere else... but I already keep 'gmail' open throughout the day. And it already contains a large amount of the private information I'd like to collect in my wiki.

If a wiki was integrated into gmail then I could use filters to automatically put emails into wiki topics, wiki pages and so on. The most significant difference between a stored email and a private wiki page is that you can't edit a stored email.

A google wiki would be easy to search. And would have great usability.

But no, google is just busy hanging out with Paris. Doing what Paris wants to do. Seeing the films Paris wants to see. You've grown so boring now google. I have started to flirt with MSN search on the weekend.

 

Sometimes you frustrate me, Mrs. Reporting Services.

Sometimes you say one thing when you really mean another.

Remember the other day? You said:

"There is an error in the query. Implicit conversion from data type sql_variant to datetime is not allowed. Use the CONVERT function to run this query."

But I pressed the "Edit..." button. The query builder came up and displayed my query. It all looked okay. So I pressed "OK" to close the query builder.

Then you gave me a different message altogether. You changed your story, Mrs Reporting Services.

You said:

"Could not generate a list of fields for the query. Check the query syntax or click refresh fields on the query toolbar. EXECUTE permission denied on object 'queryname', database 'dbname', owner 'dbo'."

Dammit! You tried to trick me, Mrs Reporting Services!

As soon as I granted execute permission to my role for that sproc, you stopped complaining.

Sometimes I wish you'd just tell me the truth right from the start of an argument.

But you're still a very special lady to me, Mrs Reporting Services.

I like your style. I'm sorry I threw that vase at your head.

 

Google.RumourCount += 1

I hate to spread another Google rumour, but there is apparently some truth behind this.

I have it on good authority that Google is going out with Paris Hilton.