Tuesday, September 16, 2008

Last month the guys from Mindscape released a Visual Studio File Explorer Addin. This is really useful if you don't have good source control integration within Visual Studio, or you want access to the full goodness available from an explorer window, but within Visual Studio.

The feature list:

  • Fully Shell Enabled – So shell extensions like TortoiseSVN work just fine.
  • Command Prompt Here – Opens a command prompt at the current folder.
  • Snap to Solution – Sets the root folder to the current solution’s folder.
  • Split View – Windows Explorer style.
  • Open Item – Either in Visual Studio or the registered application.
  • Options Dialog – For configuring the add-in.

And a screenshot:


It's good at twice the price! Download for free from the Mindscape site: Visual Studio File Explorer Addin


posted on Tuesday, September 16, 2008 1:00:50 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]

The presenters at last months Code Camp have made their slides available via their own blogs:

Thanks for presenting guys!


posted on Tuesday, September 16, 2008 12:08:53 AM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
 Saturday, September 13, 2008

Sara Ford has been publishing a great series of Visual Studio 2008 tips of the day, since July 2007.

I have given a couple of Visual Studio tips'n'tricks talks lately, and have recommended to the audience that they should go back to the beginning of the series and read her tips from the start.

If the thought of reading over a years worth of daily posts in a web browser scares you, I have assembled a Yahoo Pipe that grabs posts from 410 days ago and sends them out in an RSS feed, just like it was July 2007:


Each day you'll get the most recent posts from 410 days ago showing up in your feed reader.

Click the above link, and choose one of the options to add it to your feed reader, or you can even subscribe to email alerts each time there is new content (well, actually it's 410 day old content masquerading as new content).

Yahoo Pipes

Yahoo Pipes are pretty cool, they let you do transformations on a bunch of different types of data sources, and then re-expose them as a new feed.

In this case I have used an RSS feed from a Google blog search, as they allow you to search for posts on a given site and return all the results Google has cached. In Sara's case, Google will return 368 posts whereas her own feed only gives the most recent 15.

The pipe just builds up the right query string for Google, and then passes the url to the feed fetcher. The source is visible when you visit the pipe, although I have to admit that it's pretty simple and you could probably figure it out yourself :)

Blog series

It's interesting when you try to join part-way through a long running series on someone's blog.

The newest post at the top of their site (and your feed reader) is halfway through the series, so you have to scroll or read through the archives to get the earlier posts.

I often find when I stumble across "Part 7 of 11" blog posts that entering late puts me off subscribing to that blog, because of the weight of having to read so much to catch up so I can join the conversation.

Perhaps having a "Subscribe to this series from the beginning" link using a similar trickle fed time shifted approach would help people overcome that?


It did feel a little like having 10,000 spoons when all I needed was a knife to use a Yahoo beta product to pull data from a Google search to send people to a Microsoft employee's blog posts. Ain't the internet great!

Many thanks to Sara for the great series.


posted on Saturday, September 13, 2008 12:16:34 AM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
 Thursday, September 11, 2008

I got asked this last night in Christchurch: "How do you make it so regions are always expanded?"

There's a couple of different ways to do this:

  • You can turn off outlining altogether, in the Advanced Settings under C#:
  • You can learn the keyboard shortcuts for expanding and contracting outlines: Did you know how to collapse and expand code - Sara Fords blog
  • Or, you could reduce your use of regions (I've found they're often used to hide code, when really it should be refactored).


posted on Thursday, September 11, 2008 12:08:41 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
That was embarrassing. I went to demo the "Copy References" feature in Visual Studio 2008, and I couldn't remember how to do it.

That's because it's not in the standard install of Visual Studio, but is part of the PowerCommands for Visual Studio 2008 package.

Check out the feature list that I've copied below. Some really useful stuff, you should download now and install it!

Enable/Disable PowerCommands in Options dialog
This feature allows you to select which commands to enable in the Visual Studio IDE.  Point to the Tools menu, then click Options.  Expand the PowerCommands options, then click Commands.  Check the commands you would like to enable.
Note: All power commands are initially defaulted Enabled.

Format document on save / Remove and Sort Usings on save
The Format document on save option formats the tabs, spaces, and so on of the document being saved.   It is equivalent to pointing to the Edit menu, clicking Advanced, and then clicking Format Document. The Remove and sort usings option removes unused using statements and sorts the remaining using statements in the document being saved.
Note: The Remove and sort usings option is only available for C# documents.
Note:  Format document on save and Remove and sort usings both are initially defaulted OFF.

Clear All Panes
This command clears all output panes. It can be executed from the button on the toolbar of the Output window.

Copy Path
This command copies the full path of the currently selected item to the clipboard. It can be executed by right-clicking one of these nodes in the Solution Explorer:
The solution node; A project node; Any project item node; Any folder.

Email CodeSnippet
To email the lines of text you select in the code editor, right-click anywhere in the editor and then click Email CodeSnippet.
Insert Guid Attribute
This command adds a Guid attribute to a selected class.  From the code editor, right-click anywhere within the class definition, then click Insert Guid Attribute.

Show All Files
This command shows the hidden files in all projects displayed in the Solution Explorer when the solution node is selected.  It enhances the Show All Files button, which normally shows only the hidden files in the selected project  node.

Undo Close
This command reopens a closed document , returning the cursor to its last position.  To reopen the most recently closed document, point to the Edit menu, then click Undo Close.  Alternately, you can use the Ctrl+Shift+Z shortcut.
To reopen any other recently closed document, point to the View menu, click Other Windows, and then click Undo Close Window.  The Undo Close window appears, typically next to the Output window. Double-click any document in the list to reopen it.

Collapse Projects
This command collapses a hierarchy in the solution explorer starting from the root selected node. It can be executed from three different places: solution, solution folders and project nodes respectively.

Copy Class
This command copies a selected class entire content to the clipboard. It can be executed from a single project item or a project item with dependent sub items.

Paste Class
This command pastes a class entire content from the clipboard. It can be executed from a project or folder node.

Copy References
This command copies a reference or set of references to the clipboard. It can be executed from the references node, a single reference node or set of reference nodes.

Paste References
This command pastes a reference or set of references from the clipboard. It can be executed from different places depending on the type of project. For CSharp projects it can be executed from the references node. For Visual Basic and Website projects it can be executed from the project node.

Copy As Project Reference
This command copies a project as a project reference to the clipboard. It can be executed from a project node.

Edit Project File
This command opens the MSBuild project file for a selected project inside Visual Studio. It can be executed from a project node.

Open Containing Folder
This command opens a Windows Explorer window pointing to the physical path of a selected item. It can be executed from a project item node

Open Command Prompt
This command opens a Visual Studio command prompt pointing to the physical path of a selected item. It can be executed from four different places: solution, project, folder and project item nodes respectively.

Unload Projects
This command unloads all projects in a solution. It can be executed from the solution node.

Reload Projects
This command reloads all unloaded projects in a solution. It can be executed from the solution node.

Remove and Sort Usings
This command removes and sort using statements for all classes given a project. It can be executed from a solution node or a single project node.
Note: The Remove and Sort Usings feature is only available for C# projects since the C# editor implements this feature as a command in the C# editor (which this command calls for each .cs file in the project).

Extract Constant
This command creates a constant definition statement for a selected text. It can be executed from the code window over a selected text.

Clear Recent File List
This command clears the Visual Studio recent file list.

Clear Recent Project List
This command clears the Visual Studio recent project list.

Transform Templates
This command executes the associated custom tool with text templates items. It can be executed from a DSL project node or a folder node.

Close All
This command closes all documents. It can be executed from a document tab.


posted on Thursday, September 11, 2008 9:51:09 AM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
 Wednesday, September 10, 2008
Well, what a nice town centre.

I was down in Christchurch this afternoon presenting at the Christchurch .NET users group. It was great to finally see the group in action, since it has been running as long as our group in Wellington.

I presented a repeat of my Visual Studio Tips n Tricks talk to a crowd of about 40 keen Cantabrians. It was good to see that a couple of newcomers had come along for the night, hopefully they'll see you back again!

It was my first trip to Christchurch in 28 years.

I don't remember much about Christchurch from my first trip (I was two years old). I remember Dunedin well, as I had a traumatic experience after locking myself in a bathroom, but obviously nothing as memorable happened in Christchurch.

The town centre is very picturesque, and walking alongside the Avon River in the sun was lovely. Reminds me that I should get out of the office more often.

The highlight of my walk was seeing the trams in action. It's great to see rails through the centre of town.

In other news, I was happy to see that Paula Tesoriero won a gold medal in track cycling (and later, a bronze) at the Paralympics. Paula was at Kapiti College the same time as me -- it's great to see a fellow student succeeding on the international stage!


posted on Wednesday, September 10, 2008 11:39:36 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]

I talked about this briefly last week -- if you want to administer Hyper-V using PowerShell, what options do you have?


Hyper-V proffers some functionality through WMI classes in the “root\virtualization” namespace. You can access the raw WMI classes from PowerShell using examples like in my talk, or you can use the great library James O'Neill has uploaded to CodePlex: PowerShell Management Library for Hyper-V

Ben Pearce is doing a series on scripting Hyper-V with WMI which you should definitely check out.

System Centre Virtual Machine Manager 2008

SCVMM is a new product that will be releasing soon. It offers a unified management interface and set of services for managing a datacenter full of virtual machines. It is an additional product purchase, and so not everyone will have it.

I haven't used them, but apparently SCVMM's PowerShell cmdlets are a lot more natural to use than WMI. Further information about the PowerShell interface is available in this Scripting Guide.


Ultimately, you'll need to evaluate both approaches to see which one fits. WMI-based scripts will probably be usable in more situations, but SCVMM scripts will be easier to author and maintain.


posted on Wednesday, September 10, 2008 12:12:57 AM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
 Tuesday, September 09, 2008

As promised, here's the transcript of the PowerShell commands I used in my talk:

TechEdTranscript.txt (107.64 KB)

The bulkservers scripts that I used were from Ben Pearce's blog: Administering Servers in Bulk. I've uploaded my versions of the scripts here: BulkServerScripts.zip

Following is a synopsis of the commands I used in the talk.

Get a list of all classes in the CIMV2 namespace:

> get-wmiobject -namespace "root\cimv2" -list

Get a list of all disks on a remote machine:

> gwmi -class win32_logicaldisk -computer columbus

Update the Volume Name of a disk. Note that often when making changes to WMI properties, you need to Put() the object to set your changes back on the original machine:

> $disks[0].VolumeName = "Kirks disk"
> $disks[0].Put()

List hotfixes applied to a machine:

> gwmi win32_quickfixengineering | format-table hotfixid

Get a representation of the running OS. You can shutdown, reboot etc:

> $os = gwmi win32_operatingsystem

Get all the network adapters on a machine:

> $nics = gwmi win32_networkadapterconfiguration

You can update the IP addresses, netmasks etc:

> $mynic.enablestatic($newip, $newmask)

Get a list of the Hyper-V virtual machines:

$vms = Gwmi –namespace “root\virtualization” –class msvm_computersystem

Set one of the virtual machines to the running state:

> $VM.RequestStateChange(2)

I hope that these examples show you the variety and power of things you can manipulate using PowerShell over WMI. You can access almost every physical or logical device that is connected to your computer (or another computer on your network), as well as administer many different software products.



posted on Tuesday, September 09, 2008 11:52:50 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]

I had fun preparing and presenting the Visual Studio Tips n Tricks talk at TechEd last week... although I think about half the jokes fell flat!

Here's the slides -- you'll see there's not much of value in them:

DEV313-Jackson-VisualStudioTips-Clean.pptx (1.4 MB)

...and that's because most of the talk was the demo. I walked through a lot of Visual Studio keyboard combinations that I find useful, as well as walking through some of the features that can make you more productive, such as the snippet manager, settings management and macros.

Here's a table of all the keyboard shortcuts I used:

C# Key Combo VB Key Combo
View.ShowSmartTag CTRL + . CTRL + .
Edit.Find CTRL + F CTRL + F Quick find
Edit.IncrementalSearch CTRL + I CTRL + I Incremental find
Edit.FindInFiles CTRL + SHIFT + F CTRL + SHIFT + F Find in files
Edit.Replace CTRL + H CTRL + H Quick replace
Edit.ReplaceInFiles CTRL + SHIFT + H CTRL + SHIFT + H Replace in files
Edit.GotoNextLocation F8 - Go to next location (in search results)
Edit.GotoPrevLocation SHIFT + F8 - Go to previous location (in search results)
Edit.FindNext F3 F3 Repeat search
Edit.FindPrevious SHIFT + F3 SHIFT + F3 Search previous
Edit.FindNextSelected CTRL + F3 CTRL + F3 Search for next with selected text
Edit.FindPreviousSelected CTRL + SHIFT + F3 CTRL + SHIFT + F3 Search for previous with selected text
View.NavigateBackward CTRL + - CTRL + - Go back to previous location (Browser-style)
View.NavigateForward CTRL + SHIFT + - CTRL + SHIFT + - Go forwards to next location
View.ViewCode F7 F7 View code
View.ViewDesigner SHIFT + F7 SHIFT + F7 View designer when in markup
View.ViewMarkup SHIFT + F7 SHIFT + F7 View markup when in designer
Edit.CycleClipboardRing CTRL + SHIFT + V CTRL + SHIFT + V Cycle through Visual Studio clipboard
Edit.GotoBrace CTRL + ] - Jump to opposing brace / XML tag
Edit.GotoBraceExtend CTRL + SHIFT + ] - Select text to the opposing brace / tag
Edit.GotoFindCombo CTRL + / - Jump to the find combo in the toolbar
Window.ShowEzMDIFileList CTRL + ALT + DOWN ARROW CTRL + ALT + DOWN ARROW Show popup of all open files
Debug.Start F5 F5 Start with debugger
Debug.StartWithoutDebugging CTRL + F5 CTRL + F5 Start without debugger
Debug.Restart CTRL + SHIFT + F5 SHIFT + F5 Restart the program
Debug.StopDebugging SHIFT + F5 CTRL + ALT + BREAK Stop debugger
Debug.RunToCursor CTRL + F10 CTRL + F10 Run to the cursor
Debug.ToggleBreakpoint F9 F9 Set / remove breakpoint
Debug.DeleteAllBreakpoints CTRL + SHIFT + F9 CTRL + SHIFT + F9 Delete all breakpoints
Debug.EnableBreakpoint CTRL + F9 - Enable a breakpoint
Debug.StepInto F11 F11 Step into a method
Debug.StepOut SHIFT + F11 SHIFT + F11 Step out of a method
Debug.StepOver F10 F10 Step over a line
Tools.RecordTemporaryMacro CTRL + SHIFT + R - Start recording a macro
Tools.PlayTemporaryMacro CTRL + SHIFT + P - Playback a macro

If you want an even more comprehensive list of keyboard combinations, you can check out the following links, or go exploring in Tools > Options > Keyboard:

C# Keybindings

VB Keybindings

C++ Keybindings



posted on Tuesday, September 09, 2008 11:02:41 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [5]
 Sunday, September 07, 2008

It just struck me while playing around with Chrome that I have been using Gmail for more than 4 years.

At the time, I thought "I'll never use up 1 gig of mail storage", but luckily, Google has been steadily adding to my quota - faster than the rate I'm using it up.

I primarily use my Gmail account for mailing list subscriptions, as it is really fast for scanning and reading mailing list posts, and still has the nicest interface for reading conversation threads that I have seen. As most of my mailing list subscriptions are "read only" (I lurk, without posting), Gmail is my own private little search engine over the mailing lists I subscribe to.

Fears of instability, data lock-in or data loss have so far been unfounded. There have been occasional issues accessing Gmail, but none that have caused me undue distress.

All in all, I'd say a pretty good 4 years.

posted on Sunday, September 07, 2008 4:44:24 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
 Thursday, September 04, 2008

Hello TechEd campers....

I hope I didn't freak you out too much with my awesome dance moves -- hopefully I woke you up!

I've cleaned up my slide deck marginally, and I will upload it to Commnet shortly.

I'll be posting up the slides, sample scripts and the transcript of my demo over the next few days, so subscribe to my RSS feed, or check back soon.

Always welcome to hear feedback (good or bad), or receive dance tuition. Contact me at kirk@pageofwords.com.



SVR316 - Windows PowerShell and Windows Management Instrumentation: Unveiling Microsoft's best kept secret

posted on Thursday, September 04, 2008 6:17:35 AM (New Zealand Standard Time, UTC+12:00)  #    Comments [5]
 Friday, August 22, 2008
Just read that Red Gate are taking over development of Reflector from Lutz Roeder.

Reflector is one of the best .NET development tools, and it is awesome that Lutz has provided it free for so long. I have learnt a lot from playing around inside that UI, and it has helped me out of many a pickle.

Red Gate have a pretty good track record of producing great software (SQL Compare is awesome!), and it is cool that they are giving back to the community by developing and enhancing Reflector going forward. I'm looking forward to seeing what they do with it!


posted on Friday, August 22, 2008 12:55:31 AM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
 Thursday, August 21, 2008
Many years ago in late 2002, I spent quite a few hours playing around with Rotor, the Shared Source CLI implementation.

Back then Rotor was the easiest way to get a peek at how the .NET runtime and supporting libraries might have been implemented. Not everything was there, and that which was there wasn't guaranteed to function in exactly the same was as the shipping CLR, but it let you look at the C# and C++ source code that made things happen.

I played around with the Gyro patch half-heartedly, but by the time the v2 release of SSCLI came out, my thirst was adequately quenched by Reflector so I never really got into the genericised version.

I didn't read Stutz, Neward and Shilling's Shared Source CLI Essentials book (sorry guys!) but it did sit on my wishlist for a while.

Now Ted Neward and Joel Pobar are self-publishing the sequel to the book, and will be giving away the electronic version of it through the Microsoft site.

I have had a brief skim through the draft, and it's a CLR geeks heaven. I'm looking forward to curling up with it some time in the near future.

Check it out: Shared Source CLI 2.0

I believe Joel is at TechEd Australia next month - make sure to go along to his F# talk if you're there.

posted on Thursday, August 21, 2008 3:00:47 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
 Wednesday, August 13, 2008
We've finalised the speakers for Code Camp on 31 August -- and I'm very happy to report that we have some great local and international speakers coming along to present. I thank them in advance for volunteering their time to prepare and present to us.

  • Owen Evans from Xero will be talking about the ASP.NET MVC project
  • Jonas Folleso a Senior Consultant at Capgemini and a Microsoft Regional Director for Norway will be taking us through Silverlight from a developers perspective
  • Robert Fonseca-Ensor from Datacom Systems Limited will be talking about Test Driven Development and Dependency Injection
  • Scott Hanselman, Community Liaison and blogger from Microsoft will be talking about Dynamic Data
  • Ivan Towlson from Mindscape will be presenting a session on Thinking in WPF

As you can see, we've got a wide variety of sessions, from general development techniques, to web and desktop technologies. We haven't completely finalised the ordering of the sessions, but as you'll see on the Code Camp website, we're running from 9am till 6pm, and will be providing a free lunch and afternoon tea courtesy of our sponsors.

We also have a number of lightning talks which will feature a wide range of different topics, from technologies such as WCF, to products, and to communities around NZ. If you're keen to be involved in presenting a lightning talk (or have suggestions for topics), read my previous post.

I'm looking forward to it. Sign up now and I'll see you there!


posted on Wednesday, August 13, 2008 5:32:46 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
 Tuesday, August 12, 2008
Wow, I'm so proud that we've been selected as one of the top 10 Application UIs by the esteemed Nielson Norman Group in their latest report.

I haven't read the report yet, but we got a good writeup in the Alertbox article:
But Xero might be a more interesting example, simply because it targets the traditionally dry domain of accounting. One of its main features lets users automatically reconcile bookkeeping entries with bank account transactions. As a match is made, the 2 matching entries are removed from the list of stuff to be reconciled. Users compared this interaction to playing Tetris and described it as fun and addictive. Come on, making accounting fun? That's an award-winning design.
I'm not responsible for our look, or even for implementing it in code, but I'm very proud to do the behind-the-scenes work on Xero helping to wire it together. It's great that our application is being recognised as having a great user interface... well done to our design team for corralling everyone's ideas together into something that is fun for our users.


posted on Tuesday, August 12, 2008 10:14:45 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
Wow, the places for the Devt Code Camp are filling up fast! We already have more registrations than the size of the room, which means that we now have to start thinking about what to do once we go past our safety buffer!

Lightning Talks

Something new we're doing this year is taking the Lightning Talk concept that works well at user groups, and bringing it to Code Camp.

A lightning talk is a 5 minute slot to talk about something -- getting to the point is the important thing.

Are you interested in a 5 minute presentation in front of more than 200 of the most switched-on .NET developers in NZ?

Topic suggestions are:
  • Open source or free projects you work on or use, and the cool features that mean we should check it out.
  • A hot new technique you've learnt in VB, C#, Visual Studio etc.
  • Come and work for my company because...
  • I run a user group or coffee group, you should come along because...
  • I'm a software vendor, and 5 minutes is all I need to sell some copies...
  • Or perhaps even something humorous?
I'll give priority to talks that aren't commercial, unless you are a Code Camp sponsor, but it's also cool to find out about cool commercial stuff going on around New Zealand so I'm hoping some of our cool ISVs and tool vendors will present.

If you're interested, please contact me. The way I'll run it is to have a single computer only, and any PowerPoint slides must be pre-loaded onto it. If you don't need slides, then that's okay.

posted on Tuesday, August 12, 2008 12:58:50 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
 Tuesday, August 05, 2008

I got myself into helping out with another Code Camp.

This year we're having a Developer Code Camp again the day before TechEd in Auckland, from 9am till 6pm on 31 August 2008.

View the site, sign up and come along. It would be great to see you there!

I'll probably write up the titles, sessions and speakers later on when things firm up a bit more.


posted on Tuesday, August 05, 2008 7:04:55 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]

Dear Apple,

When you create your annoying marketing emails, please remember to edit them after copying the great American deals and converting them to less-great NZ deals.

This one came today. In my inbox it says June 15. After loading images, Sept 7:


...Became this

That wasn't too bad -- after all, who cares if Apple don't know when Fathers Day is? (Apart from fathers who want gifts :)

But this one from a few months ago was more annoying:


...Became this

Now that's a bit more annoying. When I viewed the email in my inbox (with images turned off), I thought I was being offered a special deal of $49. But no, switching on images showed that actually it wasn't such a special deal at $75.

So, dear Apple. When you copy and paste the excellent US deals into an email, don't forget to change the ALT text of the images after you replace them -- it gets shown in peoples email clients if they have images turned off, or they hover over the image with their mouse.


posted on Tuesday, August 05, 2008 6:56:28 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
 Thursday, July 24, 2008
Well, next Thursday 31 July it's my turn to present at the user group again.

My talk is titled "Kapow! Become a Visual Studio 2008 super hero!" and will hopefully appeal to developers of all denominations1 and experience levels.

Check out the details on the Wellington .NET user group site. Hopefully we'll see you on Thursday!


1 C#, F#, C++, VB.NET. You know, the major .NET religions

posted on Thursday, July 24, 2008 11:25:02 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
 Thursday, June 26, 2008
Just found out that I won an Xbox 360 - pretty cool.

I'd like to thank the academy...

Seriously though, it's pretty nice that Microsoft recognise the efforts of the .NET community. Around the country there are a lot of hours volunteered each month preparing sessions, speaking, catering and hosting events - all run at no charge by the community for the community.

Without the support of Microsoft and Darryl Burling in particular, it would be a lot harder for us to provide pizza every few weeks to hungry punters.

Last year I calculated I'd ordered 800 pizza since starting the Wellington .NET user group, and it must have been another 200 since then! I recently put together list of all the pizza we buy in a month nationwide, and it's about 200 pizza across all the user groups. That much fat don't come cheap!

So, thanks to Darryl and Microsoft, and thanks to all the great speakers and attendees that come along to meetings every few weeks and make the user group what it is!


P.S. Two user group events in Wellington coming up -- one tomorrow and one next Wednesday -- check out http://www.dot.net.nz/wellington

posted on Thursday, June 26, 2008 6:50:16 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [4]
 Thursday, June 19, 2008
My blog server didn't come up after the power was cut to our house yesterday. I didn't notice till the wee hours of the morning, and then found out that the graphics card was fried (they don't make 10 year old graphics cards like they used to!)

My mission is to provide an uninterrupted level of service, complying with my personal ISO 9002 committments.

Of course, running your blog on a 10 year old PC in your basement hooked up to a UPS with 5 minutes charge isn't exactly complying with ISO standards :)

posted on Thursday, June 19, 2008 11:33:41 AM (New Zealand Standard Time, UTC+12:00)  #    Comments [2]
 Monday, June 16, 2008
This Wednesday in Wellington, Ivan will be presenting at the Wellington .NET Users Group.

Ivan is one of my all-time favourite contributors to the .NET mailing list, and I am always impressed at the amount of thought he puts into his mailing list posts, blog posts on his personal and the Mindscape blog, and into his presentations.

Ivan has recently been awarded a Microsoft MVP award for his contributions to the .NET community, well deserved too!

Anyway, enough of my geek idol lust...

His talk on Wednesday is titled "Build Your Own Designer: an introduction to Visual Studio DSL Tools". In the session he will be talking about when and how you would make a design surface within Visual Studio, and the designer he has recently been building.

Please RSVP and coming along this Wednesday 18 June.


posted on Monday, June 16, 2008 11:22:14 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
Joe White has done a great job posting session notes from TechEd US.

One post that I found interesting was his notes from Roy Osherove's talk "How not to write a unit test".

There was quite a few suggestions in here that resonated with me, such as removing 'new' calls from within your tests into helper methods that create or initialise objects, and some of his thoughts on stubs vs mocks.

An interesting read, easy to skim through. Thanks Joe, and thanks Roy!

(Wish I was there!)

posted on Monday, June 16, 2008 11:12:43 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
 Sunday, June 08, 2008
Trade Me making value judgements, or just representing the facts? :)


posted on Sunday, June 08, 2008 10:55:38 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [3]
 Friday, June 06, 2008
I was surprised to see that the price of TelstraClear bundled plans are rising at the end of the month.

Looking at the old and new pricing pages, the main price rises seem to be in plans with broadband. Some of them increasing by $120/year:

Phone, TV and cable modem Old New
2Mbps & 1GB/mth $98.02 $103.01
4Mbps & 5GB/mth $108.02 $113.01
4Mbps & 10GB/mth $118.02 $123.01
10Mbps & 20GB/mth $138.02 $148.01
10Mbps & 40GB/mth $168.02 $178.01
10Mbps & 80GB/mth $208.02 $218.01
25Mbps & 120GB/mth $298.02 $298.01*
* Curiously, this plan dropped by 1 cent!

How can this be? Surely internet prices should be steadily dropping, not increasing? Especially as more households and businesses in New Zealand get broadband.

Perhaps it's because TelstraClear got voted Best ISP, they can put their prices up?

Maybe it's to support infrastructure upgrades and top-end plans?

Maybe they are matching Telecoms prices?

Whatever the reason, I'm surprised at the increase -- broadband should be getting cheaper and faster (pretty darn quick?) rather than slower!

posted on Friday, June 06, 2008 9:52:16 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [4]
 Thursday, June 05, 2008
One persons vision of the Google OS:


Coming from a unix background, there's just something so natural about a shell that has commands directly hooked to google :)

posted on Thursday, June 05, 2008 11:51:15 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
 Saturday, May 24, 2008

It is a busy time in Wellington .NET User Group land.

Nine months ago I switched us over to fortnightly user group meetings. While it's sometimes a struggle to find speakers, thanks to the great support of the speakers and the Wellington community, we're able to entertain, teach and enlighten every 14 days.

I thought a round-up of our activity over the past 12 months would be interesting:

21/05/2008 - Subversion and Cruise Control - Sky Sigal

07/05/2008 - Visual Studio certification & SQL Server Reporting Services - James Hippolite

16/04/2008 - There's more to life than C# and VB.NET - Kirk Jackson

02/04/2008 - Mocking 101 - Owen Evans

19/03/2008 - Silverlight 2.0 - James Newton King

05/03/2008 - 2008 Lightning Strike! - Various Presenters

13/02/2008 - 2008 Summer Road Trip - Jeremy Boyd, Chris Auld, Kirk Jackson

30/01/2008 - ASP.NET MVC framework - John-Daniel Trask

05/12/2007 - Introduction to Windows Presentation Foundation (WPF) - Ivan Towlson

21/11/2007 - Dynamic Runtime & Languages - What's it all about? - Ivan Porto Carrero

07/11/2007 - SQL Server 2008 for Developers - Jeremy Boyd

03/10/2007 - A lap around Visual Studio 2008 - Darryl Burling

19/09/2007 - ASP.NET Futures: Dynamic Data Controls - Andrew Tokeley

06/09/2007 - Virtual Earth – Overview on Spatial Development - Matti Seikkula

01/08/2007 - Developing with Windows SharePoint Services v3.0 - Zac Smith

04/07/2007 - C# vs VB.NET - continuing the epic battle - Philip Cox and Kirk Jackson

06/06/2007 - Well MIXed! - Chris Auld

As well as organising 16 of those talks and 20 speakers to present, in the past 12 months I also have:

  • Presented a PowerShell presentation at TechEd NZ in August 2007
  • Presented on C# 3.0 features at a corporate user group
  • Given a presentation for ELCM351 at Victoria University on "Future Directions in Web Development" (more on this later)
  • Been the treasurer of the NZ .NET User Group Incorporated Society, and written about 100 cheques for beer and pizza, as well as attending committee meetings and procrastinating about budgets
  • Organised the "Dev Code Camp 2007" on Sunday 12 August 2007 in Auckland, just before TechEd. It was a struggle finding speakers, organising catering and sponsorship, and MC'ing the day. Probably the hardest event I've done so far... Watch out for another one this year :)
  • Presented on C# 3.0 at the Dev Code Camp as well.

It has been great to have the support of the speakers listed above from the Wellington community, and even greater that 8 of them spoke for the first time at the user group this year.

I'm always on the lookout for new speakers. If you're interested, drop me a line!

(I'm looking for a speaker for Wed 4 June by the way :)



posted on Saturday, May 24, 2008 1:31:07 AM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
 Monday, May 05, 2008
... a nice way to end the school holidays :)

Coming back to work is the hard part:


posted on Monday, May 05, 2008 11:00:11 AM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
 Friday, May 02, 2008
Good news that Scott Hanselman is coming to TechEd NZ which runs from Sept 1-3 in Auckland.

Hopefully this year I'll get to present again. The past two years I have had fun presenting PowerShell sessions, and there's lots of news of new PowerShell providers (and more coming), so there should be something good to report.

This year TechEd is tantalisingly close to PDC - which is Oct 27-30 in Los Angeles. I say 'tantalisingly', because a lot of teams within Microsoft will be holding off releasing new versions of their technology, or making big announcements at PDC (e.g. the mysterious Purdy team language / editor stuff will be divulged then).

Thank goodness for open projects like ASP.NET MVC - we're seeing right into the bowels of the project on a regular basis thanks to their open and frequent releases.

posted on Friday, May 02, 2008 4:49:37 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]