This afternoon, the girls went and cleaned their room beautifully.


It was amazingly clean and tidy! Then I opened the Secret Passage door…

Aha!
IE9 allows you to pin sites to the taskbar. I find this feature useful, and various sites, including Twitter and Facebook make use of it to make site functionality more accessible. One feature that Twitter is currently missing, however, is notification of new tweets in the icon itself. So I’ve put together a quick little bookmarklet you can use to add this functionality to the official Twitter site on your machine.
Here’s what it looks like with 1 outstanding tweet. If more than 5 tweets are unread, I class this as an error condition and show a red X error graphic instead (okay, okay, the real story is I couldn’t be bothered making my own icons, so I’ve used some from a sample from the IE9 demo site, and they only go up to 5!)
Right click Twitter Overlay Icon (IE9 only!) and click Add to Favorites to create the bookmarklet.
Formatted code for the bookmarklet:
(function() {
var fLastCount = -1;
window.setInterval(function()
{
try
{
var res = document.title.match(/^\((\d+)\)/);
if(res) {
var nNewCount = res[1];
if(nNewCount != fLastCount) {
var ico = nNewCount > 5 ? 'error' : 'num_'+nNewCount;
window.external.msSiteModeSetIconOverlay('http://ie.microsoft.com/testdrive/Browser/tweetfeed/Images/'+ico+'.ico', nNewCount+' unread tweets');
fLastCount = nNewCount;
}
}
else if(fLastCount != 0) {
window.external.msSiteModeClearIconOverlay();
fLastCount = 0;
}
} catch(e) { }
}, 1000);
})();
Have fun!
Luke 16 is a fascinating chapter. Jesus starts off with a parable in which, at a casual read, he seems to be commending devious behaviour, then he tosses in a single sentence about divorce before launching into a story with a very metaphysical flavour which differs radically from his normal down-to-earth parables.
We studied this passage at Bible study this week and our rector John preached on it today. I struggled a bit to understand what Jesus was really saying about money in the first parable: is he really saying that using money to win friends is good, regardless of whose money it actually is? Or is he using hyperbole: even a dishonest manager can use his resources to make friends: how much more should we do this? Another alternative is that the manager was cutting his commission. Or perhaps these were bad debts and he figured by cutting them, they’d be more likely to be paid, and at the same time he’d earn the friendship of the debtors, and the commendation from the rich man for making the best of a bad debt. Interestingly my wife had no problem with the parable. She read the final interpretation.
Whatever the meaning intended by Jesus, we can be sure that he was not condoning dishonest behaviour. The Pharisees reacted badly to this parable — I guess they read it as an attack on their high regard for material wealth.
The second parable is curious because it uses Jewish pictures of heaven and hell in a way that I can’t recall in any other parables. Jesus’ other recorded parables used scenarios from life: banquets, journeys, weddings and so on. So why did Jesus choose this imagery?
He makes a very pointed comment at the end of the parable of course: “If they do not hear Moses and the Prophets, neither will they be convinced if someone should rise from the dead.” The message of the parable is also about the motivations of the heart: is it God or money that you are following? I like the picture and scenario: it’s very vivid! But I would still like to know why Jesus chose this imagery.
And finally, I wish I knew why Luke chose to sandwich the divorce passage between these two parables!
Today I raced my first ever road race, a 64km flat course from Longford to Campbell Town, in Tasmania. As part of my preparation I looked up the course profile (flat, bar one small climb about 10km from the finish), and prepared a comprehensive list of excuses, which I understand are an essential part of a road rider’s preparation. Two of my friends, Phil and Rob, were also racing. We’d all ridden a lot together in Hobart and Rob and Phil had raced in Hobart. But we had heard tales that riders from the North of the state (Longford is in the North) were tough and fast — there are 5 or 6 riders in the Pro peleton from those parts — but I don’t think we really appreciated just how fast and hard they were!
Phil and I are roughly comparable in racing ability, as far as we could tell, and as Phil raced B grade in Hobart, I naively decided that was the grade for me. Rob decided to stick with D grade — a sensible choice I think! The lower grades started out a few minutes ahead, with 1 minute between C and B, and 3 minutes to A. I snuck a look at the registration sheet before the race and there were only 6 or 7 riders in B, and 20 or more in each of D, C and A. I was starting to get worried because that meant much more work in the wind, with less recovery time drafting other riders. All too soon our grade was up to start and immediately we hit 40+km/h. It seemed that some of the riders wanted to catch C grade before A grade caught us. Within 5km, we were sitting on 45-50km/h and my heart rate was on 175 as I frantically tried to hold my position in the bunch. I glanced at Phil and by the look on his face he was in trouble too. All too soon the inevitable happened — we started to drift off the back of the B grade group, and my heart rate way up high I knew I didn’t have that reserve to claw my way back on.
One other B grader dropped back with Phil and I and no more than a couple of km later we heard a toot from the chase car informing us that the A grade pack were flying up behind us. We jumped on the back of that bunch and the shelter from the wind helped a bit with recovery, as it was a much larger group. My heart rate dropped below 150 and I started to think I might have a chance to hold on. Phil and I sat on the back of the group and stayed out of the paceline. Then I made a big mistake… I thought I was doing okay and so thought I’d give the paceline a go… Oops. As I worked my way up to the front, my heart rate went right up again and I was struggling. One of the other riders glanced at me and suggested that I should just sit on the back of the bunch. I was inclined to agree…
So back I drifted and then we passed some other riders, who left a gap, and I couldn’t get over the gap with my previous effort and off the back I went. And that was that. For the next 45km I rode with one other rider, a C grade girl who had had the same trouble as I had. We worked well together and it helped… About 15km from the finish we caught Rob and 4 of us crossed the line all together at the end. It was still the fastest 60km I have ever ridden, by a long way!
My wife and daughters were there at the finish to cheer me over the line but I think they were a little surprised by how far back was!
Edit: Strava ride is now online:
I’ve got a new 10 minute power average: 355 watts… I am not surprised. At 22km, we had to walk across a wooden bridge (instant disqualification if you rode across…) You can spot that in the speed graph pretty easily!
|
Segment
|
Distance
|
Gradient
|
Best Time
|
Best Speed
|
VAM
|
|
1.7 km
|
5.7%
|
5:43
|
17.4 km/h
|
1039
|
|
|
3.9 km
|
5.7%
|
10:01
|
22.1 km/h
|
1282
|
|
|
3.6 km
|
-1.8%
|
5:21
|
40.1 km/h
|
N/A
|
|
|
4.0 km
|
6.8%
|
14:37
|
16.6 km/h
|
1126
|
|
|
3.5 km
|
8.5%
|
16:36
|
12.5 km/h
|
1063
|
|
|
3.5 km
|
7.3%
|
14:50
|
14.3 km/h
|
1048
|
|
|
1:07:08
|
|
Segment
|
Gradient
|
Best Time
|
Best Speed
|
Speed vs Time
|
|
Longley – Leslie Rd
|
5.7%
|
5:43
|
17.4 km/h
|
|
|
Leslie Rd – Neika
|
5.7%
|
10:01
|
22.1 km/h
|
|
|
Neika – Fern Tree
|
-1.8%
|
5:21
|
40.1 km/h
|
-6.4 km/h = +1:00
|
|
Fern Tree – Springs
|
6.8%
|
14:37
|
16.6 km/h
|
-1.0 km/h = +1:00
|
|
Springs – Chalet
|
8.5%
|
16:36
|
12.5 km/h
|
-0.7 km/h = +1:00
|
|
Chalet – Summit
|
7.3%
|
14:50
|
14.3 km/h
|
-0.9 km/h = +1:00
|
| On the mountain top |
|
Segment
|
Distance
|
Gradient
|
Best Time
|
Yesterday
|
Heart Rate
|
Target
|
Achieved
|
|
Longley – Leslie Rd
|
1.7 km
|
5.7%
|
5:43
|
5:06
|
163
|
18:00
|
16:48
|
|
Leslie Rd – Neika
|
3.9 km
|
5.7%
|
10:01
|
11:24
|
167
|
||
|
Neika – Fern Tree
|
3.6 km
|
-1.8%
|
5:21
|
6:04
|
154
|
6:00
|
6:04
|
|
Fern Tree – Springs
|
4.0 km
|
6.8%
|
14:37
|
15:08
|
165
|
44:00
|
46:15
|
|
Springs – Chalet
|
3.5 km
|
8.5%
|
16:36
|
16:33
|
166
|
||
|
Chalet – Summit
|
3.5 km
|
7.3%
|
14:50
|
15:08
|
164
|
||
|
Segment total
|
1:07:08
|
1:09:23
|
|||||
|
1:10:43
|
| Descending! |
Recently Hobart Airport ‘upgraded’ their parking payment system with some fancy new machines. This new, modern, streamlined payment system allows the driver to pay before returning to their vehicle, or pay with credit card at the exit… Well, sorta.
I’ve been wanting to get pictures of these machines for a while but I’ve always been at the airport at night or in the rain. Finally today I managed to get a picture of the fantastic machines!
Ok, so you’ve decided to pay before you return to your vehicle, here’s the payment machine.
Wow. Instructions all over it. Let’s see, wait a moment, there’s a list of steps there.

Okey dokey, maybe it’s not so bad after all, where’s number 1 on the machine…?

Hey, there’s a long queue of grumpy travellers behind you, hurry up. There’s number 2, there’s number 3 … and number 3 again … and again … and step 4’s over there, but where’s step 1?!?

Oh. I guess they decided to do that one differently. Now where’s step 2 again? Maybe it’d be easier to do this graphically:
Eventually you will get there but don’t forget to press the receipt button before the ticket pops back out again!

So which button is it? I think it is the middle button but I couldn’t give you any guarantees!
Step 5 curiously shows you walking to one of the four exits but I’m sure you’ll figure out that you are actually supposed to drive out of the car park…
Next time, you will probably decide that that machine is ridiculous and instead you will pay with a credit card at the exit gate. Let’s see how you go.

Seems easy enough. Put the ticket in, now where does your credit card go?
It goes here.

I learned that one by painful experience. Swiping my credit card 3 times in the marked slot before I gave up and pressed the Assistance button…
Never believe the instructions.
Will you sponsor me to join in the Tasmanian Bike for Bibles Cradle Mountain ride?
On November 20 and 21, I will be participating in my first Bike for Bibles ride here in Tasmania, Australia. We will be riding a total of about 250km from Penguin to Cradle Mountain return, with an overnight stay at Cradle Mountain.
Cradle Mountain
Hellyer Gorge – I don’t think we’ll be riding down this track 🙂
This is the approximate route we’ll be taking.

And for you cyclists out there this is the elevation profile for the ride (via Bikely).
Bike for Bibles rides are run all over the world; in Australia they are a vehicle for raising funding for literacy projects by the Bible Society. This particular project is raising funding for literacy projects in Mozambique and Kenya.
Makuti Town in Mozambique (from Wikimedia)
You can donate any amount: it is not linked to the distance travelled. How can you sponsor me? PayPal is the easiest method, with a handy payment button below.
If you don’t know me, do feel free to trust this plea as far as you can throw it 🙂 If you do know me, I hope that you can trust me to pass all the collected donations to the Bible Society!
Other alternatives of donating include contacting the Bible Society directly and sending a donation that way (just let them know what it’s for), or you can contact me directly at [email protected].
Finally, we are keen for more riders for this trip so if you are interested, please get in touch!
This document was recently unearthed in southern Tasmania, Australia and has proven to be a curious example of early 21st century writing. It is believed that it is one of the last examples of writing on paper known before the great move to “computerised” text that characterisedthe era.
It is believed that the document is written in the lingua franca of the period, Modern English. We know from other historical records that the following alphabet is commonly recognised in the era and locality.
From this alphabet, we can determine that the document was originally photographed upside down! It is believed that the original photographer correctly identified the “address” area of the document (see below) but then wrongly assumed that this “address” should be at the top left of the document.
The darker ink sections at the top of the document do not appear to have been written by human hand and we believe them to be insignificant in the context of the document.
With a quick initial review we broke the document down into a two significant areas which we have called the “address” and the “letter”. The bottom right ruled section appears to be a form of address, perhaps denoting the author of the missive and the recipient.
It is curious to note a repetition of a particular word shape in this section. It is possible that this is a method of emphasising the sender or recipient.
It is perhaps useful to transcribe the letters and words we can recognise from the two sections of the document. The well known document “A Dictionary of the English Language” proved very useful here. The query symbol “?” has been used where the letters are unclear. [Editor’s Note: this transcription is written with “Unicode” and may require additional fonts on your system to be legible.]
MOU?D T YOU ?
IH TO BIRTHDAY
B ? ?
A ?????
M?
DORA
And in the “address” section:
HAMMAH
AUMTI B ANN B
HAMMAH IDE
MC??MA
We quickly spotted the ideographic symbol at the base of the document which we believe to be a “rabbit” – a form of animal life common in Tasmania in the early 21st century AD.
One of the sociological researchers on our team was excited to identify the “DORA” letter group (pronounced roughly as “Daw-ra”), which seems to have been a common meme at the time, perhaps the name of a famous entertainer.

Initially, we were puzzled by a shape that did not appear to be representative of any of the English alphabet, until we realised that the shape was merely an inverted L:
Note the difference between the inverted L and the R in DORA (we believe the R
to be a close match to the “lower case” version of the R):
This allowed us to identify a number of other words, so we thought:
MOULD T YOU L
IH TO BIRTHDAY
B ? ?
ALL ???
M?
DORA
Using the aforementioned Dictionary, we were then able to identify several words quickly, but this left us with a very puzzling message [Editor’s note: translations have been provided from the Dictionary by the team]:
| MOULD | The earth of the burying ground |
| T | |
| YOU | Second person personal pronoun |
| L IH | |
| TO | A function word used to indicate direction or action |
| BIRTHDAY | The day of a person’s birth |
| B ? ? | |
| ALL | Encompassing everything |
| ??? | |
| M? | |
| DORA | [The name of a famous entertainer?] |
The use of the word associated with death together with the word associated with birth did lead us down the wrong track for some time. This lead to an entertaining but not particularly useful discussion as to possible interpretations of the document – perhaps it was a record of an important event, or an invitation to an event, or even a threat:
“On the day that the
entertainer Daw-ra is born,
you will be consigned to the burial ground” (!)
At this point we abandoned this path of inquiry, not realising how close we were to the true interpretation – and yet so far!
It was clear that we would have to work a bit harder to get to the true meaning of this document. A closer look at the M letters in the document showed a variation which we had not initially identified.
The first M had 3 humps and not 2. Perhaps it was not an M at all. Eventually we hit upon the idea of inverting the letter, in the same way as we had done with the L. Immediately it became clear that this was indeed an invitation – perhaps as mentioned to an event celebrating the birth
of DORA.
| WOULD | A question word implying desire |
| T | |
| YOU | Second person personal pronoun |
| L IH | |
| TO | A function word used to indicate direction or action |
| BIRTHDAY | The day of a person’s birth |
| B ? ? | |
| ALL | Encompassing everything |
| ??? | |
| M? | |
| DORA | [The name of a famous entertainer?] |
The next letter to get an extended examination was the star shape next to the final M in the document:
By closely comparing each letter in the English alphabet to this star shape, we were able to bring the options down to K X and Y. In this context, it seemed that Y made the most sense and was the closest match, giving the well known Modern English word MY. This led us back to the start of the document where the L IH grouping (over two lines) was still puzzling us. Again, we compared the letters of the Modern English alphabet to the H letter, and realised that the K was possibly a closer match than the H. That gave us this message:
| WOULD | A question word implying desire |
| T | |
| YOU | Second person personal pronoun |
| LIK | Perhaps an alternate spelling of LIKE, when linked with WOULD, indicating a pleasurable desire |
| TO | A function word used to indicate direction or action |
| BIRTHDAY | The day of a person’s birth |
| B ? ? | |
| ALL | Encompassing everything |
| ??? | |
| MY | First person personal pronoun |
| DORA | [The name of a famous entertainer?] |
Even from our admittedly limited understanding of English grammar, there was something that didn’t quite work in the ordering of the words. It seemed almost that there was a “word-picture” with some of the remaining letters – a letter apparently on its side, and some circular letters that seemed to be written and rewritten.

This symbol gave us trouble until it was suggested that perhaps it was a stylized C:
With a deep breath we proceeded to break apart the word picture:
This gave us something else to play with: B A LL E ? and COM. We postulated that perhaps the order of words in the document was less significant then than commonly thought by researchers today:
| WOULD | A question word implying desire |
| T | |
| YOU | Second person personal pronoun |
| LIK | Perhaps an alternate spelling of LIKE, when linked with WOULD, indicating a pleasurable desire |
| TO | A function word used to indicate direction or action |
| COM | Perhaps COME, to move towards something |
| MY | First person personal pronoun |
| BIRTHDAY | The day of a person’s birth |
| B ALL E ? | Perhaps BALLET, a ceremonial dance |
| DORA | [The name of a famous entertainer?] |
At this point we were sure we had the message (roughly translated):
Would you like to come [to] my
birthday Daw-ra ‘ballet’?
We were on a roll and started to tackle the address area. It was now clear that HAMMAH was a name. Again, applying the power of the Dictionary to the task, we came up with:
| HAMMAH | “Hama” (a name, rough pronounciation) |
| AUMTI | |
| B | |
| ANN | “An” (a name, rough pronounciation) |
| B | |
| HAMMAH | |
| I DE | |
| MC ? LMA |
Again, stylistic variations came into play. It is clear from this document, that although other documents from the same era have suggested a regular and standardized alphabet, a wide latitude of variability in letter shapes and word spellings was in fact both permissible and common. We believe that this is an exciting area for further study. While our analysis could not identify any common words starting with “AUMTI”, a close match was made with “AUNTIE”, which both fit in the context and clarified the remainder of the address:
| HANNAH | “Hana” (a name, rough pronounciation) |
| AUNTIE | |
| ANNE | “An” (a name, rough pronounciation) |
| HANNAH | |
| I DE | |
| MC ? LMA |
The names “HANNAH” and “ANNE” have been found in other literature from the period.
Thus, we believe this document to have been an invitation from Hana to her parent’s sibling An, asking her to come to her ceremonial dance celebration of the entertainer Daw-ra’s birthday.
The remainder of the address remains a puzzle. We have not been able to decipher it and we welcome any suggestions.
We just moved into our new house in a small, semi-rural suburb of Hobart called Ridgeway on the side of Mount Wellington. We are really enjoying the new house but I no longer have an office at home. So I now ride my bike to work 5 days a week.
Three days a week I ride ‘down’ the mountain to Kingston and back home up the mountain again in the evening. The other two days, I pop into Hobart instead. Why is ‘down’ in quotes? Because even the downhill route involves 250m (800ft) of climbing. There are many possible routes but I have selected three on the basis of traffic and road surface: the shortest route is a very rough, steep dirt road and I’m not keen on riding it on my road bike; I also try and avoid heavy traffic routes. The route I take depends on just how tired I am feeling:

The total ascent is actually almost the same for all three routes – 200-250m (650-800ft) in the mornings and 500-600m (1650-2000ft) in the evenings.
In a normal week, I’ll be riding roughly 200km (120mi) and climbing 3500m (11,500ft) in my commute. Right now I feel the same as I did when I first started cycle commuting 2 days a week a couple of years ago — rather tired…
I was working today on a slow query in SQL Server — it was a simple query on a well-indexed table, and I
could not initially see why it would be so slow. So I did some tests, and was surprised by the results.
I have reproduced the situation I was working through with a test table, with the following structure:
CREATE TABLE HintTest ( HintTestID INT NOT NULL IDENTITY(1,1), Col1 INT NULL, Col2 INT NULL, Col3 INT NULL, CONSTRAINT PK_HintTest PRIMARY KEY (HintTestID) ); CREATE NONCLUSTERED INDEX HintTest_Col1 ON HintTest (Col1) -- column 2 was not indexed CREATE NONCLUSTERED INDEX HintTest_Col3 ON HintTest (Col3)
Then I copied a set of records from the original data I was working with. The following code will
not reproduce this (and you’ll see the reason later) but does very roughly mimic the distribution of the data:
I used a quick and dirty test harness:
DECLARE @v INT, @StartTime DATETIME SET @StartTime = GETDATE() SET @v = 0 DECLARE @prmRecordFound BIT, @prmCol1 INT, @prmCol2 INT, @prmCol3 INT SET @prmCol1 = 50 SET @prmCol2 = 3 SET @prmCol3 = 1750 WHILE @v < 10000 BEGIN SET @v = @v + 1 -- Test Case Here END PRINT DATEDIFF(ms, @StartTime, GETDATE())
And here are the tests I wrote:
-------------------------------------------
-- TEST CASE 1: SELECT primary key and separate IF
-------------------------------------------
SET @prmRecordFound = 0
DECLARE @HintTestID INT
SELECT TOP 1 @HintTestID = HintTestID
FROM
HintTest
WHERE
Col1 = @prmCol1 AND
Col2 = @prmCol2 AND
Col3 = @prmCol3
IF @HintTestID IS NOT NULL
SET @prmRecordFound = 1
-------------------------------------------
-- TEST CASE 2: SELECT COUNT and separate IF
-------------------------------------------
SET @prmRecordFound = 0
DECLARE @Count INT
SELECT @Count = COUNT(*)
FROM
HintTest
WHERE
Col1 = @prmCol1 AND
Col2 = @prmCol2 AND
Col3 = @prmCol3
IF @Count > 0
SET @prmRecordFound = 1
-------------------------------------------
-- TEST CASE 3: SELECT COUNT nested in IF
-------------------------------------------
SET @prmRecordFound = 0
IF (SELECT COUNT(*)
FROM
HintTest
WHERE
Col1 = @prmCol1 AND
Col2 = @prmCol2 AND
Col3 = @prmCol3) > 0
SET @prmRecordFound = 1
-------------------------------------------
-- TEST CASE 4: SELECT COUNT with hint nest in IF
-------------------------------------------
SET @prmRecordFound = 0
IF (SELECT COUNT(*)
FROM
HintTest WITH(INDEX(HintTest_Col1, HintTest_Col23))
WHERE
Col1 = @prmCol1 AND
Col2 = @prmCol2 AND
Col3 = @prmCol3) > 0
SET @prmRecordFound = 1
-------------------------------------------
-- TEST CASE 5: EXISTS SELECT * in IF
-------------------------------------------
SET @prmRecordFound = 0
DECLARE @Count INT
IF EXISTS(SELECT *
FROM
HintTest
WHERE
Col1 = @prmCol1 AND
Col2 = @prmCol2 AND
Col3 = @prmCol3)
SET @prmRecordFound = 1
-------------------------------------------
-- TEST CASE 6: EXISTS SELECT * with hint in IF
-------------------------------------------
SET @prmRecordFound = 0
DECLARE @Count INT
IF EXISTS(SELECT *
FROM
HintTest WITH(INDEX(HintTest_Col1, HintTest_Col23))
WHERE
Col1 = @prmCol1 AND
Col2 = @prmCol2 AND
Col3 = @prmCol3)
SET @prmRecordFound = 1
The first run results reproduced the situation quite well, and returned the following surprising statistics (10,000 iterations):
1 (SELECT primary key and separate IF) 846 ms 2 (SELECT COUNT and separate IF) 203 ms 3 (SELECT COUNT nested in IF) 3523 ms 4 (SELECT COUNT with hint nested in IF) 226 ms 5 (EXISTS SELECT * in IF) 3460 ms 6 (EXISTS SELECT * with hint in IF) 263 ms
I was puzzled why there would be such a difference between cases 2 and 3, given that they were so similar,
so I looked at the execution plan for the query. It turns out that the query optimizer was selecting a very
non-optimal plan (a clustered index scan) when the SELECT statement was nested in an IF statement, whereas for
case 2 it was using two index seeks followed by a merge join. Adding hints overrode the query optimizer, and
the results can be seen in cases 4 and 6.
I ran the following statement to refresh the data the query optimizer uses:
UPDATE STATISTICS HintTest
UPDATE STATISTICS will update information about the distribution of keys for indexes on the table, which is then used by the query optimizer. Then I re-ran the test (100,000 iterations shown below). Dramatic difference. Now the hinted queries were among the slowest:
1 (SELECT primary key and separate IF) 2266 ms 2 (SELECT COUNT and separate IF) 2313 ms 3 (SELECT COUNT nested in IF) 2500 ms 4 (SELECT COUNT with hint nested in IF) 2546 ms 5 (EXISTS SELECT * in IF) 2656 ms 6 (EXISTS SELECT * with hint in IF) 2706 ms
For me, the big lesson learned out of this was this:
Always run
UPDATE STATISTICSbefore trying to optimize a query!
The second thing I learned was that the fastest query is often unexpected. I would have expected the
EXISTS condition (case 5) to be optimal for a simple boolean result but instead the fastest query
was consistently case 1 – the SELECT primary key method.