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

 Wednesday, January 21, 2009
Dumb and Dumber – How the $%^&$%*& do you download a browser, without a browser

So I’ve been using the internet for a long time. I remember when Windows 3.1 never used to come with a browser. In most cases I’d use a copy of the browser from a 3.5” floppy disk and I’d install it with that. Sometimes I’d install a command line FTP client or Cute FTP from my floppy disk and use that.

Eventually Microsoft and the OEMs started shipping Windows with a browser. This meant that no matter what browser I actually wanted to use… I didn’t have to find my floppy disks because I could just boot up the browser and browse to Netscape.com and download my preferred browser. This was a marvellous advance.

The DUMB folks at Opera think this was some sort of retrograde step. The even DUMBER folks at the European Union are listening to them. Microsoft may have to ship a special European version, especially crippled to not have a browser.

Maybe DUMB and DUMBER haven’t thought about it yet… but, how the $%*&! do you download a competitors browser if you don’t have a browser to download it with in the first place! How many of the ‘late comers’ to the web have any idea where to find a browser DVD/CD/Floppy disk. How many have the foggiest flue how to login to their ISPs FTP server to download it? They expect to buy their PC from the department store (noticed how few ‘computer stores’ are left) and they expect to take it home and it just plugs into ADSL and works.

This is the most completely stupid idea I have ever heard of!

I hate Competition law at the best of times. It’s a nasty retrospective “don’t know you’ve broken the the law until you’re actually prosecuted because we changed what it meant half way along the way” piece of shit public policy. But, I hate DUMB and DUMBER even more.

PoliTechLaw|Wednesday, January 21, 2009 3:03:59 AM UTC|Comments [2]|    

 Tuesday, January 20, 2009
Why You Can Just ‘Browse’ To Tables in Azure Storage

So one of the cool things you can do in Windows Azure storage is just enter the URL of a public Blob in your browser and retrieve it via an HTTP GET. This makes sense as in REST, a GET and a URI will return the data at the URI. In the case of an Azure Blob this means the bytes stored returned with the appropriate content type in the header.

image

You can also do thinks like retrieve a list of the Blobs in a given container like this:

image

It would be nice to be able to do the same with Azure Table storage. A quick glance at the SDK leads one to think it’s as simple as

http://myaccount.table.core.windows.net/Tables

But this will fail on both the Cloud Storage and Local Storage. This is because

“The request must include the Authorization header and the Date header, as specified in Authentication Schemes.”

So that sounds simple enough- I just cracked open Fiddler thinking I’d just punch in the headers. But, these headers are actually fairly complex. Well, ms-x-Date is simple enough, but, the Authentication headers involve both canonicalization and signing of the request.

I’d love to give you a simple solution so you can just browse tables, but, I haven’t got one. I hope that at least this saves you from spending too much time trying.

Windows Azure|Tuesday, January 20, 2009 7:39:40 AM UTC|Comments [1]|    

Windows Azure Queue Timeout

So a question came up in the Azure training session today about what the timeout was before a ‘Dequeued’ message was returned to the quen unless it was ‘Removed’. Windows Azure is designed to ensure your messages will always be completed so it returns a dequeud message to a queu if it has not be permanently removed after a period of time.

I knew it had to be configurable… but had no idea exactly how.

The answer is here in the SDK

http://msdn.microsoft.com/en-us/library/dd179396.aspx

or, if you are using the StorageClient sample code from .NET (and if you are using .NET then you really should be!) then this post from Neill Kidd should help

http://blogs.msdn.com/neilkidd/archive/2008/12/07/poison-in-windows-azure.aspx

// Get message with 60 sec visibility
Message msg = queue.GetMessage(60);

This means to ‘Dequeue’ a message only place that message back on the queue if RemoveMessage has not been called within 60 seconds.

Windows Azure|Tuesday, January 20, 2009 7:21:02 AM UTC|Comments [0]|    

My Windows Azure Blog Post Todo List:

So based on the questions I have been receiving at the various Azure Services Platform events around the world I am starting to put together a list of blog posts to do as I get time. Please feel free to suggest other posts.

  • What Fits Where
    I probably need to do a post that talks a bit about which bits of the Azure Services Platform fit into what sort of businesses and business models. Windows Azure won’t cure world hunger, but, it will be a great platform to use if you’re going to build the next Facebook. There’s not been a lot out of Microsoft with these sort of details yet, so, hopefully this post will go someway to answering these questions.
  • Forward Caching in Windows Azure
    This post will talk about how to use the Local Storage in Windows Azure to cache data. Why you would do it. What data you should store in there. What data you should not store in there.
  • What Being Stateless Means
    What does building a stateless Web Role or Worker Role mean? What are some common traps where people might slip into ‘statefulness’?
  • Multithreading and Parallelization in Windows Azure Worker Roles
    When should you spawn multiple threads vs When you should create new instances. Will discuss things like performance bounds. CPU Bound vs IO Bound vs Network Bound.
  • How To Implement A Plug-in Model In Windows Azure
    Because the Windows Azure deployment model is on a Package basis it’s not possible to add new DLLs once an application has initially being deployed into a Compute project. The solution is, of course, to load the DLLs remotely into Cloud Blob storage and then dynamically load the types using a plugin pattern.
Windows Azure|Tuesday, January 20, 2009 2:46:36 AM UTC|Comments [0]|    

“In the mornin’….. I’m havin’ Donkey!”

So Vittorio and I went out for a traditional Beijing Dinner last night. Was really good. We tried some adventurous things. We didn’t quite get to eating the Silk Worms, but, we did eat Donkey meat.

Donkey meat in the centre, behind the pickled cucumber circle. I felt a little queasy this morning… but no idea if that was food or just general exhaustion. I’m planning a quiet night with room service in the hotel this evening. Of course my hotel meal will usually cost the same for one as dinner last night cost for four!

Travel|Tuesday, January 20, 2009 12:40:05 AM UTC|Comments [0]|    

 Saturday, January 17, 2009
Dad! I dug another hole. It’s filling up with water.

Oh so good!

Wikiquote has a page dedicated to the Castle! The best damn stick it to the man film EVER!

http://en.wikiquote.org/wiki/The_Castle

That link is going straight to the Pool Room

Human Aggregation|Saturday, January 17, 2009 12:43:19 PM UTC|Comments [0]|    

Strategies for Scaling out your Data Tier

 

Had plenty of conversations over the past few days in Mumbai with people about scale out strategies. About the difference between stateless and stateful portions of your application and about some ideas around choosing horizontal partitioning strategies.

Waddayaknow… I boot up RSS Bandit this morning and Dare has a great post on this.

Covers many of the things we discuss this week.

One of the things I focussed on a bunch this week is having some knowledge of the distribution of your data when choosing a good partition key.
You want a horizontal partitioning key (partition key in Azure Table Storage) that ideally DOESN’T fit a normal distribution.
Think of it like this. If you partition your data using say the first letter of the user name then you’re gonna end up with a whole bunch in your ‘S’ partition and not a lot in your ‘Z’ partition.

Anyway. A great post and well worth reading.

Building Scalable Databases: Pros and Cons of Various Database Sharding Schemes

.NET | Windows Azure|Saturday, January 17, 2009 12:32:19 PM UTC|Comments [0]|    

 Friday, January 16, 2009
Azure Blogs – OPML

So I am running an Azure Training course here in Mumbai today and people are asking about good blogs to read WRT the Azure Services Platform.

Here is the OPML export for my Azure folder from RSS Bandit.

Windows Azure|Friday, January 16, 2009 10:19:32 AM UTC|Comments [0]|    

Using ASP.NET Sessions with Windows Azure

If you are building applications with Windows Azure you will know that your Web Role and Worker Role instances need to be stateless. If you’ve been architecting high scale (read horizontally scaling server farms) then you’ll be used to this concept- you’ll know about the Sql Session state provider and so forth.

If you are using Azure you obviously will not be using the Sql provider. Instead you should look at the AspProvider example in the SDK. This uses Azure Blob and Table storage to store your session state.

Windows Azure|Friday, January 16, 2009 10:09:49 AM UTC|Comments [0]|    

 Thursday, January 08, 2009
Chris’ 365 Days of Crocs Challenge – To Support KidsCan charity

So I’ve decided to have a bit of fun with the yellow crocs this year. I’m aiming to wear my Yellow Crocs EVERY SINGLE DAY for the whole year. I’ve worn them every day to date.

I’ll be keeping a bit of a log and taking some photographs of the the Crocs in far away places around the globe- they’re going to India, China, the USA and Canada this month and Hong Kong, Singapore, Australia and India next month.

I’m looking for ‘sponsors’ to pledge some money to the challenge. I’ll match every donation up to $500 total. The money will be going to KidsCan.

If you hadn’t seen the news one of my companies had a bit of trouble donating money to KidsCan recently… so this is a good way to help them get some more charity. It’s also kinda appropriate because KidsCan is all about making sure that underprivileged children get the necessities like good footwear… and no one can deny that Crocs are the ultimate in everyday footwear! They’ve been kayaking down the Zambezi river and they’ve been out for dinner in high class restaurants in Los Angeles and Seattle. I’m pretty sure I wore them to work almost every day last year too!

So… pledge away in the comments… come on… it’s a good cause and your donation is worth double.

442823371_MZbTk-M 

Map picture

The Crocs at Sulphur Point in Rotorua

A bit about me and my yellow crocs

So in case you don’t follow with my madness, I have for many years strived to use brightly coloured footwear as a bit of a personal branding statement. When I was running my former company Kognition it was Red shoes and with the the acquisition of Kognition by Intergen I even announced doing the deal with a new pair of yellow shoes :-)

Since then I’ve decided to make Yellow Crocs my staple footwear. I’ve worn them to events around the world and they travelled on almost every continent (not yet been to South America or Antarctica!).

Everyone at Intergen, from the MD down, is crazy about Yellow and what better way to spread that enthusiasm than with the most practical, wear em everywhere, footwear on the planet!

365 Days of Crocs|Thursday, January 08, 2009 8:45:53 PM UTC|Comments [3]|    

 Monday, January 05, 2009
Noise Cancelling headphones

So Cactus is looking for the Cristal of noise cancelling headphones.

Headphones being something I’m quite keen on I thought I’d post up my thoughts here. I’ve got quite a few pairs and I’ve tried a good range too. My current main stays are Sennheiser HD25s, Sennheiser HD 465s, Sony Over the ear buds for running and a pair of Audio Technica closed back active noise cancellers.

We’re talking noise cancellers today though…

While I’m a major Sennheiser enthusiast their noise cancellers just don’t cut it I’m afraid. I’m also not a major fan of in ear noise cancelling phones. It’s worth the extra weight and bulk penalty to get proper closed back units. The only other major draw back is they make your ears sweat on a long flight.

There are really only a couple of top notch mainstream technology providers in the field. Bose and Phitek. Bose sell their own phones, Phitek mainly OEM- think Audio Technica, Creative, Phillips and Blackbox (their house brand).

Were money no object I’d probably get the Bose QC2 or QC3 unit. I prefer the QC2 over ear design, but the QC3 has better battery options.

There is not a lot I can fault about the Audio Technica units. They’re the closest I’ve found to the Bose phones and are only about SG$300 @ Changi (not seen them anywhere else). Someone did mention that AirNZ gave Blackbox phones as an ption for the Gold Elite gift this year. Looked pretty dodgy to me, a cheap OEM unit so I went for the working style shirt…. hard to $%&^% up an Egyptian cotton shirt.

In HKG next month for a few days Kate… if you want to go shopping.

Toy Box|Monday, January 05, 2009 9:45:34 PM UTC|Comments [0]|    

Who Are These People?, the Economics of a Family Christmas

 

Spend the holiday season embroiled in familial conflict?

Take a look at this interesting article over on EconLog about the economics (in the pure sense of the word) of family relationships and conflict.


“…What difference does it make?  Either way, Crazy Uncle Gerald is making you miserable, right?  Well, not quite.  As I've argued before, conflicts that arise from mismatched expectations are easier to bear and easier to resolve than conflicts that arise from willful wrong-doing.  It feels a lot better to say, "He's an OK person, but we 't have little in common," than to say, "He's a bastard."  And it's a lot easier to negotiate with an OK-but-little-in-common person than a bastard….”

Who Are These People?, by Bryan Caplan

Human Aggregation|Monday, January 05, 2009 9:30:32 PM UTC|Comments [0]|    

 Saturday, January 03, 2009
Friends Wedding Photos – Dec 08

So I did some photos for a friends wedding in late Dec. Not processed them fully (that’s a job for one evening this week) but here are a few sneak peaks.

All shot on a Canon 5D Mk II with EF 24-105 F4 L IS, EF 70-200 F2.8 and Sigma EF 50mm F1.4

  _MG_6353 _MG_6359 _MG_6369 _MG_6373 _MG_6389 _MG_6436_MG_6402  _MG_6674_MG_6456

Photography|Saturday, January 03, 2009 2:41:46 AM UTC|Comments [0]|    

 Friday, January 02, 2009
I Want More 580 EX IIs…

So I’ve been updating my blog subscriptions this afternoon for the New Year. This has seen me add quite a few new photography blogs, quite a few of which focus on flash photography. Found a really cool post about high speed sync flash work and flash gun arrays.

Smashing Pumpkins With High-Speed Sync * Gang Light - Part 2

The Rail - twelve Canon 580 EX IIs triggered by RadioPopper P1s

The Gang Light Rail - 12 Canon 580 EX IIs triggered by RadioPopper P1s

The home run at 1/6400" = seeds frozen in space.

The home run at 1/6400" = seeds frozen in space.


Way cool! So I’m saving for Radio Poppers, another 580 EX II and an ST-E2 now :-) Might not get to 12 though!

Photography|Friday, January 02, 2009 4:53:54 AM UTC|Comments [0]|