Syringe.Net.Nz
Irregular Injection of Opinion
RSS 2.0|Atom 1.0|CDF

 Monday, May 18, 2009
Struggling to make time to exercise

So once again, travel is getting in the way of fitness. Was in Sydney over the weekend and while I managed to get an 8km walk (and a 50m swimming race) in with Adam Cogan over the weekend I’ve not done a decent road ride for a week.

Got back from Sydney last night at midnight and on the plane to Dunedin again this morning then Dunedin to Hamilton tomorrow. Oh happy joy!

I did get a morning boxing workout in with Scott @ Les Mills on the Terrace this morning. My 3rd since I got back into it and my fitness is definitely improving.

image

Gettin Fit|Monday, May 18, 2009 9:31:59 PM UTC|Comments [0]|    

 Thursday, May 14, 2009
The Making of our 48 Hour Film – All shot on the Canon 5D MkII

Roger Wong one of the people on our 48 Hour Film Comp team has posted up some behind the scenes photos. One of the things about shooting a full film with 5D MkII cameras is you inevitably end up with some great photos too.

We’re not allowed to post the video online until the finalists are announced. But I promise I’ll get it up here ASAP after that. Currently we only have a Standard Definition (stupid rules) cut but we’re hoping to remaster it in full HD too.

You might recognize ‘Dr Phil’ from 22 seconds into the new Air New Zealand Advert. What a tough job!

Horst and Carlos, our erstwhile directors.

D. McG. who composed our original score.

Collaborative editing.

Intergen | Photography | Toy Box|Thursday, May 14, 2009 12:52:04 AM UTC|Comments [0]|    

 Tuesday, May 12, 2009
Recovery Aerobic Session at the Gym

Did a recovery aerobic session at the gym today. On the RedEye SIN-SYD tonight so will probably try and bang out a decent length session on the spin bike tomorrow. Note to frequent travellers: The Intercontinental in Sydney has proper Spin bikes in their gym.

image

Gettin Fit|Tuesday, May 12, 2009 12:09:28 AM UTC|Comments [0]|    

 Sunday, May 10, 2009
Upper Body Workout Today: Isolateral Cable Exercises the Key

So I did upper body this morning at the Gym here in Singapore:

image

10 Min on the Elliptical and then into it.

Tried the old trick of pre-exhaustion through isolation exercises; namely  dumbell chest flys to start. As the heart rate chart shows, not the best. So instead I did a chest pre-exhaustion using isolateral cable flys (those are the BIG peaks in the first bit of my weights routine on the chart). An all together much better idea- the reason, cable machines give you resistance throughout the movement whereas in a standard chest fly the last part of the movement is basically at full extension and the weights just doing nothing.

An easy session on the bike again tonight.

Gettin Fit|Sunday, May 10, 2009 11:15:48 PM UTC|Comments [0]|    

Travel Essentials: The Hotel Area Network

All hotels these days will give you an Internet connection of some sort. ironically the most expensive hotels will charge you an arm and a leg for it and the cheapest with often throw it in for free.

For uber-tech-geek travellers there is a bit of a problem though- it’s often hard to use the hotel internet when you’ve got multiple devices. Often they’ll lock your ‘purchase’ to a single MAC address and this means one machine and one machine only. Not ideal and the workar9unds such as MAC address spoofing are equally shitty- you can’t have more than one machine connected at a time.

My solution is to take a Wireless Travel router.

Router

I have a Linksys WRT54GC.

Really useful and well worth doing. I can now run multiple laptops either wired or wireless and my iPhone all off the one hotel internet purchase.

Toy Box | Travel|Sunday, May 10, 2009 12:02:40 AM UTC|Comments [1]|    

 Saturday, May 09, 2009
Solid Session on the Lifecycle in Singapore

Arrived in Singapore last night. Here for a few days running the Microsoft Dynamics CRM Business Action Training Tour.

I ummed and ahhed about bringing my road bike this time… But in the end I couldn’t be bothered.

Nevertheless I needed to get some miles into the legs this morning so it was onto the Lifecycle for an hour. I did a Training Effect of 4.8 out of 5 on my Suunto T3c which was the highest I’ve had it yet. I decided to leave getting to 5.0 for another day. 34% in my top zone was all good. Obviously the Lifecycle doesn’t give me enough data to feed to WKO+. The stats I worked to were approx 270 Watts at 110-120 RPM.

image  image

Gettin Fit|Saturday, May 09, 2009 11:42:48 PM UTC|Comments [0]|    

My Blog Ro9ll as an OPML File

So I needed to get this onto my iPhone. Thought the best way was to stick it up here and then others can take a look at it too if they want.

Blog Roll

Rambles|Saturday, May 09, 2009 9:16:14 PM UTC|Comments [0]|    

 Tuesday, May 05, 2009
Morning Masochism – Braving the rain on the Road Bike

So my morning bike ride today was an on again off again affair. An early morning tweet from @nathanm kinda leant me towards going to the gym instead. But looking outside (despite the thunderstorm) it didn’t look too bad.

Headed out around the bays but it was a nasty southerly. In the end I just ended up doing some hill repeats on Mt Victoria. Forgot to change my Polar x625x to bike mode so no power/speed/cadence in my chart today which is a bit annoying.

image   image

Gettin Fit|Tuesday, May 05, 2009 9:38:22 PM UTC|Comments [2]|    

Hmmm…. Jade 6.3 looks to have better .NET Support

I’ve always found Jade to be an interesting beast- though admittedly only ever from afar. Object databases always showed some promise yet never really went uber-mainstream- whether that was a result of any inherent weakness, lack of appropriate developer skills or bully boy behaviour by big RDBMS players who knows. Jade would certainly be one one the the bigger players in the space though and as a Kiwi tech guy it’s always nice to see local firms doing well. I’ve certainly come up against Jade systems in previous bids and I know a number of our customers have Jade applications running in-house.

The announcement (for all it's technical brevity) looks to indicate that it’s going to be a bunch easier for those of us in the .NET world to wire up our applications into a Jade system. I’m picking in the past we probably had to thunk through something nasty like either an unmanaged API or an ODBC layer which, given the idea of an OODBMS doesn’t really deliver the ideal experience.

It’s certainly something that’s going to be interesting to discuss with some of our existing customers. Being able to wire up Jade based back end (I hesitate to call them ‘legacy’ even though I want to) systems to next gen front end apps written in WPF and.or Silverlight could make for some exciting projects.

Pity that their developer license doesn’t really let it compete with SQL Express in the ‘no-cost’ end of the market. The license does not allow any commercial use.

Human Aggregation|Tuesday, May 05, 2009 12:15:47 AM UTC|Comments [4]|    

 Thursday, April 30, 2009
Blitzing workout this morning at the Gym

So I had a totally on-again off-again morning today. I was planning to go for a road ride, but, it was raining so I ended up hitting the gym for 50 mins on the lifecycle at about 260-320 Watts doing speed drills. Great hardcore workout. Training effect of 4.6/5 on the Suunto.

image

Gettin Fit|Thursday, April 30, 2009 9:59:32 PM UTC|Comments [1]|    

 Tuesday, April 28, 2009
When Staging Really is for Staging– Deployment Patterns for Windows Azure

So a post that came through on RSS this morning from Ryan Dunn got me motivated to jot down some notes on a topic I’ve bee thinking about for a while. How best to deploy into Windows Azure. I’ll caveat this post with the fact that at the moment the Windows Azure deployment story is fairly simplistic- I don’t think we’ll be deploying via the web portal come RTM.

So in Windows Azure you basically have two types of account, Storage and Compute. Within a compute account you effectively have  two sets of instances that are grouped behind two URLs. These are referred to as ‘Staging’ and ‘Production’. So you might have two URLs that look something like this:
http://foobar.cloudapp.net
http://<guid>.cloudapp.net

For all intents and purposes there is no difference between the instances that sit in behind these URLs. Basically the Azure Load Balancers are just pointing requests at the two different groups of servers. When you then push the ‘big blue button’ to do a production release you are basically just re-configuring the rules on the load balancer to swap the URLs around. This leads me to my point from the post title. In Windows Azure the idea of Staging really is much more akin to the military idea of a staging area. It’s the place where you marshal the troops ready to charge over the trenches.

image

The ‘Staging’ deployment in Windows Azure basically gives us an area to marshall our instances before we make them live on the production URL. It means that we can achieve a Zero downtime deployment model because the machines are warm when we start routing traffic to them. It also means that you might not be able to  (or probably shouldn’t)  treat the Staging Deployment like you might traditionally treat a staging server in a more traditional on premise deployment. In an on premise staging server you’ll usually take your application, deploy it into staging, test it (under limited load) then redeploy it into production- this is a very different model.

Looking at the image above you’ll see I have 1 instance in my Staging Deployment and 2 Instances in my production deployment.  If I do a swap of these then we’ll end up with 1 instance in production and 2 in staging- basically halving the capacity of our production system. This would be bad.

You should use your Staging deployment as a true staging area. You should configure it to run the same number of instances. You should give it the same configuration settings (where possible given code/data change vectors). In this way when you flick the switch and route traffic at those warm servers you’ll be ready to rock at full capacity.

What does this mean for your Windows Azure development lifecycle? Here’s how I’d configure my accounts for a real world scenario aiming to achieve zero downtime upgrades. I’m going to *gloss over* the considerations of upgrading your data layer and leave that for another blog post.

I’d configure myself with 3 storage accounts and 2 compute accounts for my application.
foobarDevStorage, foobarStageStorage, foobarProdStorage
foobarStage, foobarProd

I’d dev my project on my local box using the local computer fabric and local storage. In some situations I’d use the cloud for my Dev storage instead.

I’d treat my Stage accounts like a traditional Staging server. In other words I’d configure it with a couple of instances and deploy my package up there for pre-release testing. In reality I’d probably never use the Stage.Production Deployment on my staging server instead contenting myself with the http://<guid>.cloudapp.net URL. When I’m ready to do a production release I’d take the same package I used in Stage and deploy it into the Prod account. I’d use a Production config file and my Prod.Staging Deployment in the foobarProd account would be configured to run the full number of instances- i.e. if my production site runs on 30 instances my Prod.Staging deployment would need to be running 30 instances. I’d then to a quick^^ *smoke test* on the Prod.Staging deployment before finally swapping the Prod.Production and Prod.Staging deployments and basically routing traffic at my new deployment. I’d then suspend my Prod.Staging deployment because I’ll be paying to have those instances running.

That’s my current thinking anyway. All subject to change as Windows Azure changes over the coming month.

Now that’s the easy bit! Hot swapping the compute instances like this is easy because we are (or at least should be) building them using a stateless server pattern.

The harder part is achieving a hot swap upgrade when you need to change your data tier. Because the data tier is stateful we need to consider consistency of the data. This is a problem in on-premise models too and one that does not have an easy solution. Maybe the Azure team will come up with some ‘magic’ that helps here??? I’ve got some thoughts on how it might be done but none of them are particularly elegant or developed yet. keep your eye out for a post on it sometime in the future.

If this stuff appears useful to people (including the footnote below) I might bang up a sample and a web cast. Let me know in the comments.

P.S. Ryan: Looking forward to seeing that tool!
^^ In reality I’d probably want each instance to have serviced at least one request in order to have JIT’ed everything and spun up. This means, for a 30 instance deployment, that I’d really have to slam the server with some load and probably have some way (setting a flag in the Application.OnStart event?) of ensuring that I had hit 30 unique servers. Easiest way to generate the load would probably be with a Windows Azure Worker role :-)

Windows Azure|Tuesday, April 28, 2009 11:37:03 PM UTC|Comments [1]|    

BooRah! Back into the boxing workout

Back into working out boxing styles with a PT. My techniques not too bad and power is still really good. Fitness- we’re working on.

Lest you think that boxing is not the most killer workout you can do check out the peaks on the chart below.

image

Gettin Fit|Tuesday, April 28, 2009 9:13:47 AM UTC|Comments [2]|