Wednesday, June 06, 2007
Friends of mine at Vic Uni set up NZ Wired, a community organisation that aims to set up a distributed community-based broadband network using cheap equipment.

The idea is that anyone you can see from your house (i.e. line of sight) can potentially send bits your way.

While a great idea, in practice the cheap broadband available in Wellington (thanks, Telstra!) and the difficulties in setting up hardware have made it a bit hard to set up a network. For example, you can't just string network cables along fenceposts due to problems with AC phases and lightning strikes :)

This $99US solar-powered wifi repeater sounds like just the thing for community networks. Anyone in line of sight of Churton Park, Newlands or Paparangi?

posted on Wednesday, June 06, 2007 11:17:43 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
Using these definitions, I'm definitely a LiBeral Programmer, and I love working in the great team at Xero.

Try the test yourself

DHTB

You're a Doer.
You are very quick at getting tasks done. You believe the outcome is the most important part of a task and the faster you can reach that outcome the better. After all, time is money.


You like coding at a High level.
The world is made up of objects and components, you should create your programs in the same way.


You work best in a Team.
A good group is better than the sum of it's parts. The only thing better than a genius programmer is a cohesive group of genius programmers.


You are a liBeral programmer.
Programming is a complex task and you should use white space and comments as freely as possible to help simplify the task. We're not writing on paper anymore so we can take up as much room as we need.

posted on Wednesday, June 06, 2007 10:56:59 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
I've had the pageofwords.com domain for a few years now, and it's my favourite.

The original version of the site (archived as at 6 March 2001) was a bit of a joke, and was my first experience with really crappy search engines sending unwanted traffic to your webserver. I think I served hundreds of megabytes of pages to the unwitting users of a few search engines that thought the page should be a high-ranking result for just about any dictionary word :)

What's your favourite domain name that you own?

posted on Wednesday, June 06, 2007 10:46:32 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
Look what I stumbled on at Nikhil Kothari's Weblog:


(click to enlarge)

$3.35/hr! How can we compete!

posted on Wednesday, June 06, 2007 10:36:55 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
Observing your users while they use your software, either directly, or through A/B usability testing is a good way to discover what they are actually doing.

Jeff Atwood at Coding Horror writes about observing users, and links to a pdf paper Practical Guide to Controlled Experiments on the Web that advocates A/B testing as a way of finding out what your customers really prefer.

"A/B Testing" is putting up two scenarios ("Scenario A" and "Scenario B"), and then measuring the impact of the changes by testing against a control. This is quite common in other areas of science, but less so in software development.

Rowan Simpson and Sam Morgan from Trade Me both show examples of the successes Trade Me has had when doing A/B testing, and they have developed systems to perform A/B tests, such as running one version of feature for one half of their users, and the new feature for the other half.

Learning from your users is very important. They are the best people to ask about your product. Unfortunately, when you ask them, you get different results than when you observe them.

posted on Wednesday, June 06, 2007 10:25:49 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]
 Sunday, June 03, 2007

Subspace: Secure Cross-Domain Communication for Web Mashups

http://www2007.org/program/paper.php?id=801

This paper describes a new method of mashup communication that avoids some of the security and privacy concerns of existing approaches.

Exec summary: Create a little eco-system per mashup, perform some setup while you have trust, and then reduce your trust before running the mashup code.

Most mashup systems have to choose between completely isolating a mashup from the containing page using an iframe, or by using a <script> tag to include the mashup, which exposes the surrounding page (and all other gadgets on it) to malicious actions that one gadget can perform.

A few systems have tried different approaches.

At TechEd 06 in Auckland, George Moore described a new Address Book mashup that they were prototyping for Live.com (not sure if it was ever released) that used document fragment identifiers (the #blah bits of the url) and a complicated polling and window.location changing mechanism to communicate serialised javascript objects. It was quite fragile because of the need to serialise the information into chunks that could fit on the end of the urls, and because the javascript library to support the communication needs to guarantee delivery and sequencing of the communication.


The "Subspace" approach presented in this paper uses two browser features to sandbox the mashup's executing code from the surrounding page:
  • document.domain = "foo.com", which allows javascript to consent to communication by other frames that set the same document.domain
  • a communicating object which is passed in to a frame before it changes it's security context with the document.domain call
The mashup is then run in the sandbox using a regular <script> tag, and data is communicated back up to the surrounding page using the communicating object.

The authors also document some of the differences between the major browsers -- IE6 and IE7, Firefox, Safari and Opera -- and explains how the Subspace solution works within each browser (callback methods on the communicating object for some browsers, polling in other browsers).

The Subspace approach is quite clever, and works in a similar to other programming environments that allow you to do some setup in a trusted configuration, and then lower your privileges before running untrusted code. This approach is common in setuid unix programs, or in .NET AppDomains.

posted on Sunday, June 03, 2007 9:15:16 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]

This will be my fifth attempt at blogging -- my first in 2000ish (though not programming related), with several subsequent efforts that have languished since then. Each time there has been some reason to get started blogging again (usually an event of some sort), and then life has caught up with me...

So, thanks to the encouragement of Ivan Porto Carrero, I have a new fandangily blog up here at pageofwords.com (RSS / atom)

Who am I?

  • Software developer living in Wellington, NZ
  • Working for Xero
  • Organise the Wellington .NET Users Group, which meets monthly to discuss the latest .NET technologies
  • Help to organise Code Camps around the place (next one in Auckland, just before TechEd)
  • Microsoft MVP
  • Possess an unhealthy interest in the banal details of the Common Language Runtime
  • Two gorgeous kids and a beautiful wife

Who aren't I?

  • I'm not religious, neither in the traditional sense, or the Linux vs Windows / C# vs Java sense
  • I don't dance
  • I don't sing
  • I don’t drink coffee or cola
  • I don't drink, smoke, or ingest any mind altering substances
  • I don't play poker, chess nor go
  • I don't read nearly as many books as I used to
  • I don't read all my email (but I do practice Zero Blog Bounce, for some reason)
  • I'm not That Guy

But I'm not boring. Honest!

I look forward to posting all of those "I wish I had a blog" things once again...

posted on Sunday, June 03, 2007 7:28:57 PM (New Zealand Standard Time, UTC+12:00)  #    Comments [0]