Gaining another qualification (again)

Hot on the heels of the last exam I’ve done another and gained myself a second MCTS (this time in Web applications 2.0).  Not that the examiners made it easy.

For this exam I had to take the ferry to the mainland and stay overnight in a cheap hotel in Burnaby.  In the morning, check out, drive to a mall, and leave the car there whilst travelling in to downtown Vancouver on the skytrain to the test centre.  Well, last minute study in the hotel was hampered by the fact it was in a red light district ... so there was lots of coming and going by other hotel patrons interspersed with rhythmic banging of headboards on paper-thin walls.  A little distracting.
In the morning I got to the test centre at the appointed time only to be told they weren’t expecting me and there was no way they could fit me in.  On to the test company’s global help desk (via cell phone) where a polite girl, after confirming the problem with the local test centre, started suggesting alternatives: “We have a slot available in ... er ... it’s spelt K-E-L-O-“

“You mean Kelona?” I ask.

“Yes.  In a couple of hours.  Could you get there?”

“From downtown Vancouver?  I don’t think so.  Five hours, maybe.”

But eventually we settled on midday the next day at the same test centre I had originally intended.
So it was back to the hotel to re-check in.  A trip to the mall to buy some fresh clothing (travelling light meant I hadn’t packed any more than I’d originally needed).  And, of course, I hadn’t packed my cell phone charger either.
The next day, I repeated the steps of the previous 24 hours.  But this time there was no problem and I was able to take the exam: 50 questions in an hour (2 hours allowed) passing with 85% (70% required).

Now on to prepare for the third qualification ... distributed apps 2.0 (which includes web services, remoting, etc).

Doctor Who

It’s been a few months now since this year’s Doctor Who. So, what to make of it?

First, there is a new Doctor (played by Matt Smith). Initially I was worried he would be too young for the role, the Doctor should have a paternal air, so a bit of age is good. Was I right? Sort of. In the early episodes of the season he was slightly eclipsed by his companion. Then there was the lack of trauma over the time war. Christopher Ecclestone’s Doctor had an anger bubbling under the surface, David Tennant’s Doctor had a sad pathos that showed from time to time. Yet in contrast, Matt Smith’s Doctor seems completely over it. Only in one episode, where a dark alter-ego of the Doctor appeared, did we see hints of emotional depths.

Then there was the ‘newness’ issue. In addition to the new Doctor we have a new companion, new title sequence (music, graphics, lettering), new TARDIS interior, new sonic screwdriver, and new Daleks. Okay, so the title sequence has been tweaked each season, but even so this was a much greater change than we’re used to. Yes, there was a big change when Christopher Ecclestone started but there was a gap in time, both for the character and the audience, from what came before.  This time the story carried on from right after we’d left it.  Overall it was a bit jarring. And there is no reason for the TARDIS interior to change (previous regenerations never triggered this, so why now?), nor the new bigger (and somewhat unwieldy) sonic screwdriver.

But the new Daleks, what we to make of them? When the Daleks were revamped for Christopher Ecclestone’s season the press initially dubbed them ‘bling’ Daleks because of their gold colour. But when we saw them they were anything but bling: they were scuffed and dirty, they had a solid chunkiness about them that seemed right in a battle machine. And they now sported these little name plates under the eye stalk which, even though Daleks are not very individualistic, makes a lot of sense. They worked. In contrast, the new Daleks have been dubbed the iPod Daleks. Their different coloured shells to differentiate function harks back to the Dalek movies and does have a degree of logic. They are now taller, full height, which also makes sense. But for the most part look more like consumer products and less like something you’d see on the battle field.  And somehow their shape just doesn’t seem ‘Dalek’ enough.

I’ve focussed on the negatives but overall I did like it. The time travel elements that tied the first and last episodes of the season together were very clever and the new title sequence grew on me. I’d just like to see a bit of darkness in the Doctor’s emotions occasionally. And get rid of the iPod Daleks, bring back the bling Daleks.

Gaining another qualification

I’m always trying to improve my skills but in an effort to quantify these improvements I’ve revisited the Microsoft certification scheme.  I hold an MCSD from years ago and this time I’m going after multiple MCTS in C#.NET (both 2.0 and 3.0/3.5).  First up is winform 2.0 … there were two exams for this: a core foundation exam plus the elective winform exam.  However, it seems that these are not available in Victoria BC (the provincial capitol) and so I had to travel to Langley BC for the first and Abbotsford BC for the other.

To understand how daft that is lets just look at the last one.  I had to take a ferry to the mainland and then drive to Abbotsford.  This took approx 4 hours in total.  Then I had to stay overnight as the exam was scheduled for the early morning.  All this for an exam scheduled as 130 minutes long but which actually only took 40 minutes (I scored 95%).  It seemed a bit anticlimactic!

Oh well.

Next up will be the webform 2.0 qualification.  It uses the same foundation exam I have already passed so I just need to do the webform elective.  After that I’m not sure if I should complete the 2.0 trio and do the web service 2.0 exam or start the 3.5 upgrade exams.

Traveller Universe

I’ve finally resolved the exception and error handling issue.  I didn’t like the Enterprise Application Blocks so I’ve developed a strategy that mimics them but with greater control.  (Actually, it’s a variation on something my Dad developed for his project.)  It almost didn’t work when I discovered that Syncfusion somehow blocks the CLR from seeing an exception handler through a Syncfusion component (in this case a skinned form) … but I’ve found a workaround by converting exceptions into form dialog status and back again.  Refactoring should be complete by the weekend.

The IEL export function is now complete.

I’ve started to prototype the stars/planets/satellites objects.  The system generation rules by DGP are, of course off limits, but actually the generation rules were largely in Book 6.  DGP’s World Builder’s Handbook was for extrapolation and secondary details.  And a lot of those extrapolations are based on real world science (for example, the relationship between a world’s radius and volume, and if you know the density then you can find the mass, surface gravity, and escape velocity).  So it shouldn’t be too difficult to build a replacement rule system for Universe 2 to use.

Currently Universe 2 has 43696 lines of code in 230 code files.

LiveJournal Tags: ,,


Stories, songs, pictures, movies, plays, etc. are all examples of creative expressions. But what is a creative expression? Is it an intangible asset, a possession to be owned and traded?

No. If it were then copyright law would merely confirm this status, empowering normal property law to govern. But this is not the case. There are distinct differences: an expiry date after which the creative expression is in the public domain, certain rights for non-rights holders called “fair use”. These do not apply to normal possessions, why do they apply here?

Essentially, creative expressions belong to everyone. They are a form of dialog a culture has with itself, between members of that culture. Even if there was only one creator of a particular creative expression it is derived from the experiences that creator has of being in that culture.

That being so what does copyright actually mean?

Copyright law recognises that it is in the public interest if talented artists can devote more of their time to creative tasks, to be able to earn a living from their ‘labours’. Thus, through copyright law, the ability for artists to trade their creative expressions as if they were temporarily normal assets came into being. Creative expressions were monetorised, creativity was incentivised.

So far, so good.

But the world doesn’t just have creators and consumers. There are also middle men. Companies that are supposed to facilitate creative expressions through marketing and distribution.

However, these facilitators are simply businesses, running under the rules of fairly unrestrained capitalism. Which means that their agenda, as with any business, is to maximise profits. Sometimes that agenda clashes with the agenda originally enshrined in copyright law leading to undesirable consequences.

Sometimes facilitators will suppress some creative expressions that might otherwise compete with other creative expressions they wish to promote. They may block distribution through some channels in order to favour other, more profitable, channels ... even if those other channels don’t adequately meet the needs of consumers. They may even throw up impediments to lawful use to encourage purchase of duplicate editions or media. In many cases creators have become relegated to the role of employees in the facilitators’ organisations.

The tail is now firmly wagging the dog.

I write this, not as a consumer, but as (in my own small way) a creator.  But I don’t know the solution.

Traveller Universe

While Universe 1.7 continued to sell in 2009 work continued with developing Universe 2.

The IEL import function is complete and the IEL export function nearly so.

I can now display subsector maps in ‘rich detail’ format.  Universe 1 allowed specific features to be turned on or off, and re-rendered the map accordingly.  To speed up responsiveness Universe 2 renders maps as a series of transparent layers (different features on different layers) which are combined in the ‘view’ dynamically.  This uncovered a short-coming with the way text is anti-aliased in C#:  Each pixel has 4 bytes … red, green, blue, and alpha.  Red-green-blue just like web colours, alpha is for opacity.  The anti-aliasing routines for text ignore alpha and compute edge pixels as a gradient between the text colour and the background colour.  The ‘transparent’ colour is all bytes set to zero (or completely see-through black).  That isn’t what’s wanted.  The answer was to ‘roll my own’ anti-aliasing code and you can see that over on Code Helmet.

Universe 1 had multiple ‘universes’ (each in a separate database), each with a referee and a player group.  Universe 2 has multiple ‘campaigns’ (all in a common database), each with a referee and multiple player groups.  Functions have been added to add new player groups, delete them, merge them and clone them.  Universe 2 also now has campaign templates … basically a ring-fenced campaign: when creating a new campaign you can base it on a template (ie. copy the template campaign to the working campaigns area).  Campaigns and player groups have an active flag (non-actives are hidden from players logging in).

I’m still not happy with the whole exception and error handling approach.  I’ve been playing with Enterprise Application Blocks to see if they help … hmmm.

The Odyssey

Chapters 4 and 5 have now been uploaded:  The new crew have been added to the ship (with a few teething problems), the problems and puzzles continue to mount up, and some of the back-stories of Andy and Pale are revealed.

Chapter 6 is half finished.

I think I’ve decided to use the name ‘slate’ to refer to a hand computer (this will be retro-fitted into the existing manuscript at some point).  ‘Hand computer’ always seemed clunky and ‘tablet’ is already in use.  ‘Pad’ is too Star Trek and nothing else seemed right.

I had a negative observation about a humorous moment early on (chapter one) that had contemporary references.  But I think I’ll leave it in as it ties up neatly with something planned for chapter 7.

Code Helmet

As part of the website spring clean I have started a wiki over at WikiDot for programming.  Originally I had intended it to be primarily tips and stuff about Syncfusion but the general C# content has dwarfed that so far.

Why “Code Helmet”?  When I was contracting at GAM they had an open plan office (the norm for the UK).  This led to a near constant drone of conversation … often, but not always, work related.  Normally this was fine but sometimes, when working on a particularly knotty problem you wouldn’t any interruptions.  The ‘solution’ was to wear a plastic toy Viking helmet: this flagged to others that you didn’t want to be disturbed.  This became known as the ‘Code Helmet’ (although there were actually 2).

(See pic.)

Website spring clean

Okay, for those who haven’t seen it yet, my main website ( has been redesigned.  The new design is based on an online tutorial … visually more interesting than what was there before.  My name near the top links to my online CV (or resume).  StuffOnline is retaining it’s original theme (and staying as classic ASP) to mark it as separate from the ‘main’ site.  I am building (but not yet published) an ASP.NET site for Universe, hopefully it will be ready before Universe 2 starts public beta.

It seems crazy after all this time but I am still getting mis-directed email.  Email to people at (a company in Malaysia) and to (a company in the US) keeps ending up in my default mail box.  This includes boardroom minutes, quality complaints, and order inquiries … plus some occasional personal stuff!