Have your say...

Just a quick reminder, as I had a brief call with Paul Lo (from Microsoft) this morning and they haven't really got enough attendees in Auckland (come on Auckland, when will we shake off our developer apathy from the last couple of years?!)

More details here

There is swag too (but that's not a good reason to attend of course).

I'm going to be at Session 6 (11:00am onwards) so hopefully I'll see some of you there.

Read More

2008-11-04 - Architecture chat tomorrow (Thursday)

Architecture chat tomorrow folks (6th November) 11:30am at Garrisons in Sylvia Park.

Here's some possible suggestions for topics (if we run out of anything else to talk about) that have caught my eye over the last week or so:

  • PDC Has been and gone - plenty to talk about there!
  • Crack.Net - interesting tool for taking a look at the internals of an executing Winforms or WPF application (and allowing you to make on the fly changes with IronPython...).
  • Chess - Ability to reproduce heisenbugs in concurrent programs - Also
    got a mention on hanselminutes #136.
  • New DevLabs site/portal for projects like Pex, Chess and no doubt some more soon.
  • The new .Net logo - what do we think?
  • Windows 7 - First look at the UI...
  • Visual Studio 2010 and .Net 4.0 - First CTP is available.
  • More info on VSTS 2010 features came out at PDC.  A good overview is here.
  • Windows Azure - microsoft cloud computing platform.
  • MS Surface SDK now open (well sort of, if you weren't at the PDC session you'll need to spend around $13,500 US to get a development table, which gives you 5 seats for the SDK).
    • Tables are now available to everyone though.
    • .Net Rocks show #389 also had a good talk on Surface development in general.


  • "Geneva" Claims Based Accesss Platform. Interesting logical next steps after Cardspace and in light of the other Authentication / Authorization standards out there.
  • The Castle project is splitting into more of an umbrella foundation (ah la Apache foundation).  You complained about no V1, now your going to get 20 V1's ;o) - One of the positive outputs of this is that some of the smaller projects will now have leaders and a clear roadmap, rather than just organically growing with patches and immediate needs of the committers.
  • Visual State Manager for WPF (well an early peek at least).
  • NHibernate Profiler - something every NHibernate developer needs at some point (and developed by Ayende).
  • Linq to Sql possibly slated for retirement? JD also has a write-up.
  • Mozilla Prism (formally known as WebRunner) - let's you run your web app as an "application" (i.e. similar experience to Air, but without proprietry technologies) - this could provide some interesting opportunities when developing an ajax-only application (i.e. nothing between the  tags).
  • Interesting href="http://codebetter.com/blogs/jeremy.miller/archive/2008/10/23/our-opinions-on-the-asp-net-mvc-introducing-the-thunderdome-principle.aspx%20">Opinionated ASP.Net MVC post from Jeremy Miller - I think what's worth taking from this is that MVC is something you need to spend a little time on to "make your own" rather then just using what's in the box.


If anyone else has any suggestions feel free to leave a comment or message/email it to me directly, otherwise I'll see you all there tomorrow.

Links to write-ups for previous chats, and information on the location etc. can be found on the wiki.

Read More

Architecture Chat #36

Talked about Venture Capital including Incubators like the Ice House & E-Centre ... organisations such as AintoG (and a brief comment on how small Auckland is, because everyone at the table had bumped into at least one of the guys from AintoG at some point), the Ice House pitch competition and VC climate in NZ and around the world with the current financial situation.

We talked a bit about WPF composability and run time decoration/behaviour extensions (also applies to Web as well) i.e. how do you not only replace or introduce new parts to your application but allow plugin/module/extension developers to adorn and extend existing components of your application (and in such a way to multiple extensions/decorations can be applied to a single component at the same time)... AOP for UI?

Ajax-only applications and the issues involved with unit testing them compared to traditional applications - the pain of regressions when you don't have enough coverage at the integration level and where bugs tend to crop up when you have nothing between your
tags, plus a little disucssion around using 3rd party JS control libraries such as extjs.

The lack of transparency for initiatives like Oslo compared to the other MS projects like MVC, DLR that feel a lot more open.  A number of guys were interested in seeing just what "D" looks/smells like though.

How to learn WPF, and useful resources including using Safari Books online (which I'm going to sign up to this month to give it a try, Keith raves about it :)

A brief whine about DevExpress components (bad documentation, poor performance of controls such as their winforms tree component etc.) - and how with the advent of WPF it's often easier to develop your own WPF controls in-house rather then purchase the equivalent online, and the discussion around how building complex controls would never have been attempted with WinForms in house due to complexity.

The trend of ASP.Net MVC to look a little more like Monorail with every release.

Routing woes (in both Monorail and ASP.Net MVC) and lack of Area support in ASP.Net MVC.

Preliminary builds i.e. check in, say to a private branch, it's merged with trunk, private branch builds on build server, if it passes then the merged changes are applied to trunk (to avoid developers breaking trunk, and allowing for more frequent check-ins) and various approaches that could be used to prevent or lessen the chance of breaking the trunk build (also known as gated check in in TFS 2010).

SVN vs. GIT - the noticeable increase in GIT take-up and mindshare, the lack of mature gui tools, and how/if you could move BA's and designers over to using a tool like GIT and some thoughts around shelving.

Read More

Architecture Chat Tomorrow (Thursday)

The fortnightly Architecture chat is tomorrow (23rd October) - 11:30am at Garrisons in Sylvia Park.

This week I'm going to leave it very open - some quick thoughts on possible things we could talk about include:

  • Silverlight 2 RTM released.
  • ASP.Net MVC Beta Released.
  • Building design/graphing/modelling tools with WPF and competing technologies.
  • The current financial situation/outlook and it's effect on Start-ups, SaaS etc. - which ideas have merit, what untapped markets offer revenue potentials and the harsher criteria being applied to new ideas (ie. ability to provide imediate cost
    savings).


If anyone else has any suggestions feel free to leave a comment or message/email it to me directly, otherwise I'll see you all there tomorrow.

Links to write-ups for previous chats, and information on the location etc. can be found on the wiki.

Read More

Moving to HyperV

I decided recently to upgrade a couple of commodity hardware staging boxes that were pushed to capacity (and had no viable upgrade path) which I use for hosting Virtual Machines - after a bit of umming and erring on what would be cost effective I ended up
opting for 2 x the following kit:

  • Q9550 Processor (2.83ghz, but they'll probably end up being clocked around 3ghz or a little above, once I'm happy the boxes are stable).
  • Asus P5Q-EM Motherboard (cheap, on-board graphics, supports 16gig DDR2)
  • G.SKILL 16gb DDR2 kit.


As drop-in replacements these worked out really cost-effective, with the ram being the most expensive part at just under $800 for the kit.

So for around $3K NZ I end up with 32gig of ram and 8 reasonably fast cores - not bad, plenty of bang for buck compared to picking up an equivalent server-spec hardware - and I can avoid the more expensive FB-DIMM (which would have worked out at least $3K for the
RAM alone).

I decided to go with HyperV on these new machines, replacing my existing VMWare Server setup... It's actually been reasonably painless to port my the various machines across, once I got a handle on a few little gotchas:

So for Windows 2K3 virtual servers I've had to:

  • Uninstall the VMWare tools (via add/remove programs).
  • Uninstall the VMWare video driver (from the device manager).
  • Run the VMWare cleanup utility (I had to do this on a few machines to clean up a "VMWare memory service" that was failing to start after moving the machine to HyperV) - you can grab the tool from the bottom of this KB article for cleaning them, which works on VM's as well as hosts... in one case I also had to do some registry
    spelunking to remove the errant service.
  • Install an IDE drive (doesn't matter what size, I just set it to the smallest possible value) in the VMWare server - see here for details - not doing this will result in a BSOD if your VMWare server is using virtual SCSI drives, like mine
    were.
  • Shutdown the Virtual machine.
  • Convert VMDK VMWare hard drives to VHD's using this tool (ignoring the IDE drives I added).
  • Create a new machine, add the drives back in (as IDE drives) in HyperV.
  • Boot it up.
  • Insert the Integration Services Disk (CTRL+I) - let it do it's thing, and reboot when prompted.
  • All done.


For the few Ubuntu & Debian virtual machines I just:
  • Uninstalled the VMWare tools, if they were installed (I don't always bother with Linux, most of the machines aren't disk or network intensive, so it never seems to make much difference).
  • Convert VMDK VMWare hard drives to VHD's using this tool.
  • Created a new machine, adding the drives back in (as IDE drives).
  • Removed the integrated network adaptor that's added by default and replaced it with the "Legacy network adaptor".
  • Boot it up, quickly hit "e" and the edit the grub boot line replacing "root=/dev/sda1" with "root=/dev/hda1".
  • At this point it should finish booting (otherwise it'll hang trying to boot and eventually dump you into an (initramfs) prompt).
  • Log in, locate "menu.lst" (normally in /boot/grub/) and change references to /dev/sda1 to /dev/hda1, save and reboot (so the change of hard drive for the root filesystem is persisted).
  • Optionally install the Linux integration components, though it takes some trial and error to get this working (I'm still fiddling with this a bit when I can be bothered - once working that should allow the virtual machine to stop using the legacy network adaptor and provide improved disk I/O & Network performance).


And for the Windows server 2008 virtual machines I skipped the addition of an extra virtual IDE drive prior to conversion, as it just seemed to work (i.e. no BSOD).

So far it's been reasonably painless process... the best part is I now have a plenty of room for some additional build servers to target my own open source projects, host some examples of RESTful/OAuth services etc.

Edit - Feb 1st 2008:  It should be noted I since moved over to using VMWare server version 2, because I found the performance of HyperV to be diabolical for CPU-intensive tasks i.e. the server would be utilizing only about 10% of the available CPU resources when running continuous integration builds, resulting in builds taking well over 30 minutes instead of the usual 2 or 3 - at the time I found a few other users who suffered from the same problems, but no solution.

At first I thought it might be a result of converting the VMWare machines to HyperV, but freshly paving new build servers didn't make any difference.  Moving over to the VMWare server v2 yielded very high CPU utilization, with builds that used to take 3 minutes on my old build server, nowtaking less then a minute on the new host machine :)

My medium-term plan is to migrate over to ESXi, once I've sourced some Intel server gigabit NIC's, using iSCSI on my openfiler box for storage.

Read More