Monthly Archives: June 2007

The Melbourne User Group Scene

Pat Bettels left a comment on my blog post about my recent move to Melbourne. He asked what is happening in the Melbourne User Group space. Here is a list of the active user groups as I understand it:

That’ll probably keep you busy for a while. Although I think all the sites need an update. Things tend to slow down a bit with the lead up to Tech.Ed for some reason 🙂

The Home Computing Experience

There seem to be a few media freaks at work, or more precisely, Media Centre and Home Server freaks. Now that I have moved I’m looking at getting into this stuff myself. I’m interested in Media Centre because I’m pretty much sick of normal television – there are a few shows that I like and I plan to record them so I can watch them on-demand.

Pretty much what I am after is a total experience:

  • Media Centre connected to the television.
    • Streaming down lots of YouTube (and YouTube-like) goodness.
    • Integrated program guide.
    • Foxtel integrated if I decide it is worth it.
    • Pulling movies/music/pictures from Home Server across the network.
  • Home Server
    • I’m thinking about getting the HP one that is scheduled to come out soon.
    • I won’t buy it if it is too expensive in Australia or if they do something to break add-ins (I don’t want to be locked out of adding cool features to the system just because they didn’t come from HP).
  • Home Automation
    • This is really just to play since I don’t have anything to automate. Although it would be cool if I could get Home Server to do my laundry. Hrmm 🙂

I was talking to the guys at the water cooler (our internal mailing list) and gave them these requirements for my Media Centre system, and they came back with a range of options, but it looks like I could get what I want for under AUD$1500 (if I look past Foxtel for the moment).

If I handed you AUD$1500 to buy me a Media Centre machine, what would you buy?

So you want to learn about the .NET Framework huh?

So here I am, sitting on the couch, with a blank sheet of paper in front of me thinking what technical things I would like to tackle in my PD plan this year.

I think one of the big things that I am going to tackle this year is really getting a deep understanding of the .NET Framework (version 3.5). When I think about how I learned .NET 1.0 (way back in 2000) it was really a case of picking a namespace each night and churning through it each night until I had hundreds of little C# files in a directory structure all linked together via makefiles (back then VS.NET wasn’t even alpha quality).

The process was time consuming because I was starting from zero, but I found that it really set me up for the future because for a long time I could probably name the class I needed to use off the top of my head.

As time progressed and newer versions of the framework were released (.NET 1.1, .NET 2.0 and .NET 3.0 such as it was) I managed to keep mostly across what was updated, although I must admit that .NET 3.0 dumped a lot of new framework on all of us and I definitely haven’t done enough namespace surfing there.

With .NET Framework 3.5 I think that I am presented with a new opportunity to dig through the framework and find lots of interesting new runtime and BCL enhancements and so at least one pillar of my PD program is going to be about cementing my knowledge of .NET 3.5.

My approach won’t be much different to last time, I’ll start at the top hunting for interesting namespaces and simply start writing sample programs to exercise those APIs. Rather than lose the stuff that I produce I am thinking that I’ll persist it to my blog – that way it is picked up by Google and I can easily refresh my brain by typing in “notgartner {namespace}”.

Now just to decide which parts of the framework I am going to explicitly cover as PD, and how much time out of my 23 day allotment I am actually going to spend on it (I’ve got other goals too).

Melbourne-based (again)

Just a quick heads up to let folks know that today I moved to Melbourne. That means that at least on paper I am Melbourne based although I’ll still be traveling quite a bit for the foreseeable future. I’m looking forward to re-connecting with the old user groups and all the people that I had regular contact with when I live in Melbourne previously.

Some thoughts on Usability

I’m on a bit of user-centric kick at the moment where I am trying to bring everything that I do from a development perspective back to a fundamental understanding of who the user is in the context of the problem I am trying to solve, and what I can do the improve their experience.

There is a wealth of information out there on this topic. One interesting site that I have found is the Usability Professional’s Association. They have a list of resources which are well worth reading through. There are a few there that I do want to point out:

Over the next twelve months I want to continue this journey because I’ve pretty much come to the opinion that the ultimate usability of the system (that is its ability to satisfy the functional, aesthetic and emotional requirements of the user) is paramount and that all our grand architectures behind the user experience are secondary to the actual user experience itself.

How To: Multiple Homepages in Internet Explorer 7.0

One interesting feature of Internet Explorer 7.0 (and other tabbed browsers in general) is the ability to specify multiple URLs for the homepage setting. The browser then opens up each URL in a separate tab. This is cool if you have a bunch of sites that you like to check each morning.

I found out this morning that a few people didn’t know that this feature existed, so here is a screen shot of how to get it working in the Internet Options dialog in Internet Explorer 7.0.

image

Another way to manage this list of home URLs is on the toolbar:

image 

Hope this is useful!

TFS Event Handler

I got a track back in my aggregator this morning from Martin Hinshelwood who has been working on the TFS Event Handler project up on CodePlex. It is an interesting idea and I’ve had a little look through the source code, but I am wondering about two things:

  • Is MSMQ really required? I can see why it is being used but I wonder if there might be a better solution because that is a fairly heavy dependency.
  • Looking at the configuration file it seems like the way you “handle” the events is that you add an assembly which gets loaded dynamically. Rather than that I’d prefer to see something more “scripty” like PowerShell being used as the automation language as that would support a more speedy, glue like approach.

Definitely worth looking at though.

Unintended Consequences: Login Scripts

Recently I’ve been doing some work for a client writing a little (yet tedious) piece of code that converts an input file to an output file of a slightly different format.

Because the client doesn’t have development workstations for us we have been allowed to connect our laptops to the corporate network and develop inside some virtual machines, we connect the virtual machines to their Active Directory domain. This actually requires a system administrator to come around and type in their credentials to get the process started.

After the machine is successfully joined to the domain I need to reboot and login which is of course when all the fun starts. I am of course talking about login scripts.

In 500 years time when archeologists dig up the fossilized remains of Active Directory domain controllers they will remark how humans of the period developed a complex mechanism by which they could ensure that they had time to go grab a coffee after typing in their username but before starting doing any actual work.

After typing in my username I stepped around the corner to make myself a cup of tea and returned to find a dialog like the following staring back at me:

image

This is of course a VBScript error being thrown up by Windows Scripting Host which is being executed as part of the login script. No doubt this is because the machine that I connected to the domain doesn’t have exactly the standard desktop configuration that the script was expecting.

Another interesting thing about this dialog is that it is modal, that is to say that it stops execution of the login script until I click OK. Being time constrained I ponder this for a few moments and decide the best course of action is to drag the error message over to the bottom right of the screen as far as I can so that I can barely even see its border.

Effect? The login script is still running but it isn’t wasting valuable CPU cycles and I can get to work.

P.S. Later that day I did click OK and I was required to reboot the machine three times (sigh).