1 Samuel 4

In 1 Samuel, the Israelites use the ark of the covenant in a futile effort to wield God’s power against their enemies. They’ve just fought a battle against the Philistines, with devastating losses and are desperate for a way to turn the tide. They decide to take the ark into battle, and the high priest Eli does not stop them, though he is anxious about the outcome. But when battle is joined, the Israelites are destroyed: 30,000 of their soldiers are slain, and the ark is captured by the Philistines. How could God let this happen?

I know the idea of “God is on our side” in modern wars is neither new nor unchallenged. I’ve been thinking about a different aspect of this: the difficulty of Christians in power in western democracies. It certainly is the case that Christian morals, ideals and world view do not mesh with the whole electorate. This becomes a problem for the Christian in power as he is a representative for the people, and while he can lead with his Christian beliefs, at some point these will come into conflict with the wishes of “the people.” I think there is a tendency among us to try and elect a Christian because somehow having a Christian in power will further the cause of God. Are our Christian politicians like our Ark of the Covenant being carried into the battle to capture the country for God? What is the cause of God? Does He need earthly leaders to promote it?

And what if the Ark was captured? That is, what if our Christian politicians are compromised? Either by the exercise of power itself or by the insidious nature of compromise required by our modern democratic system?

Just like the Israelites, we need to be looking at our lives. If we are seeing chaos in our society, it’s partly because we haven’t done what we ought to have done. From sexual abuse by clergy, through to divorce in the church, from the politics of the organised church through to my own lacklustre commitment: these are the things that bring down our Christian community, and not the leadership of the country. Time and time again God has shown that he works in ways that are not the world’s ways.

None of this is to say that Christian leadership is wrong, or that we shouldn’t be promoting Christian beliefs and values in our society. But neither of these things in-and-of themselves are going to bring about the change that we are seeking: that change happens in each individual’s heart, and happens only with God’s direct touch. How can a Christian politician help in God’s cause? By being a witness to those around him. By obeying God and leaving the rest up to Him.

The exciting episode of the race marshall

Today I got to play safety car for a bike race. That means either following the bunch along the winding hilly course, or leading to warn oncoming traffic of the impending peloton. This also means a cool magnetic orange light on the roof of the car (my daughters didn’t believe that I got to use a flashing light, until I showed them the photo) and insane descents with tyres squealing and passengers screaming while we try to stay ahead of the breakaway riders who are descending like the very hounds of hell are on their heels.

Right, I might be exaggerating a little bit: I didn’t have any passengers. But there most certainly was a hound from hell, and he (or she) was grey, fluffy, about 8 inches high, and fiercely defended his (or her) patch of road from the marauding cyclists, about 2km into the race. The organisers were so concerned about this frightening beast that they declared the first two kilometres would be neutralised. All heard and obeyed, except one. You always gotta have a smart guy in the bunch, John…

The riders line up for the start

Turns out it was a smart move. He stayed away for the whole race and finished nearly 3 minutes ahead of the next rider. And set a course record.

But I’m getting ahead of myself. This was out-and-back course, so my job was to follow the last rider in the race as the tail car, until I saw the first rider returning, at which point I would turn around, pass them, and become the lead car for the return leg.

Of course, the leg out is mostly up hill. So I enjoyed a lovely drive on a beautiful spring morning, enjoying the fresh air, the new spring blossoms, the 4WDs and the serenity, all in 1st or 2nd gear.

I got to drive my sister’s High Performance Barina as Race Marshall.  A very important job.

A few kilometres before reaching the turning point, things suddenly changed. A sole cyclist shot past going up the hill somewhat faster than we were going down. Not far ahead of him was a little grey tourist car.  He was followed by a police car doing its bit of safety work. Quick! That means I need to turn. Pop into a driveway, check for more riders or cars, flip the car around and take off to catch him. Yikes. This was near the crest of the hill, and now he was over the other side and descending like a pro. I was pushing the little safety car just a little bit faster trying to catch him, but at 70km/h was not really gaining. Fortunately the road goes over a little rise soon after that and the police car behind him pulled over to let me past, and I was able to shoot past John to take my official position.

Then we’re heading back down the hill and for a moment I could imagine myself as a Directeur Sportif with my mike in one hand, map in the other, yelling at my rider as he flies down the hill, driving with my knees, my rookie reporter passenger sobbing as I take the corners on 2 wheels just to keep up.

But while the reality may have been a little tamer than that, ole John was pushing 90 soon after I passed him. He told me afterwards that he kept having to slow for the little tourist car in the corners earlier in the descent.

Fortunately we were soon off the steep descent and my job was merely to keep John in my rear view mirror and a few hundred metres back so he can’t cheat by drafting me.  My sister’s High Performance Barina was capable of handling this task.

The return leg was over much faster than the leg out! I rolled through the finish line, parked and was able to congratulate John after his impressive finish.

As I wiped the sweat off my hands and brow and made my way to the finish line, I reflected on all the excitement that a race marshall experiences in the course of an ordinary day. Who woulda thunk it?

The race officials confer over whether the race winner (not pictured) should be penalised or congratulated for his win

Hobart Bike Infrastructure – Kingston On-Road Cycle Lanes

After receiving quite a few positive comments, online and offline, about my previous blog post on the Taroona cycle lanes, I thought I might explore some of the cycling infrastructure in Kingston.  I have focused on the on-road cycle lanes, but Kingston also has a bike path or two that are good recreational routes, especially for families, and more are under construction.

I would describe the quality of bicycle lanes in Kingston as good, and the newer lanes in the centre of town are of high quality. The Kingborough Council also has the distinction of being the first council in Tasmania to install a bike lane, on the Channel Highway.  The Kingborough Council is also in the process of reconstructing roads in the town centre, which I believe will include bicycle lanes.

If I was to pick one problem with the Kingborough bicycle infrastructure, it is that most of the lanes end abruptly on very busy roads or roundabouts.  This problem is certainly not unique to Kingston — I saw the same issue many times in Melbourne, for instance.

On with the tour!  The map below shows the approximate locations of the photos.  In most photos I will pick on an issue, quite unfairly of course.  The on-road bike lanes are also marked in blue.

1. Church St.  Minor.  Bike lane markings are worn, as cars frequently cross into the lane.

This is a typical problem with bicycle infrastructure everywhere — the lane markings tend to be driven on, and not just by larger vehicles that have somewhat of a reason.  Of course, as the markings get less distinct, the problem is exacerbated.  This particular lane is reasonably wide, in a 40 zone, and hence is quite safe, apart from the very steep descent to Beach Rd immediately ahead.  The parking spots are not highly used and so dooring is not a huge risk (but always be aware!)

2. Beach Rd.  Moderate.  A beautiful bike lane that abruptly ends as the road narrows.

Again, the lane markings are very worn, but what I wanted to pull out here is how the bicycle lane ends and leaves the cyclist in the middle of a very busy section of road.  This is a very popular route for cyclists through to Kingston Beach, and it is disappointing that the lanes which start so well do not continue on at least through to the traffic lights 100m down the road.

3.  Good  Beach Rd / Church St Intersection: Clear and safe bicycle lane

On the opposite side of the road, this intersection has a clearly marked bike lane.  It is wide, clean, and smooth.  Great!  For extra points (or to get an ‘excellent’ rating), paint the bike lane green.

4.  Minor  Church St: this up-hill lane has worn markings and is very steep (15%)

The lane in this picture has worn lane markings, and is not sign posted.  The street is also very steep, which would deter some riders.

5.  Moderate  Beach Rd: Again a situation where the bike lane ends in a busy intersection.

This bike lane ends at a busy 4 way traffic light.  There is no provision for bicycle storage boxes in the intersection.  You’ll also note the roadworks signage encroaching right into the middle of the lane.  Roadworks signage obstructing bike lanes is a common problem in Hobart — this forces the cyclist to merge into the traffic lane.

6.  Minor  Channel Highway: Good but isolated bicycle lane

This bike lane is wide, with sufficient room to negotiate around parked cars; beware of dooring of course. This section of road is also posted at 40km/h, which means that although it is busy, there is a much lower risk of serious accidents.  The only real problem is that this section of lane does not extend all the way back through the town centre.

7.  Moderate  Channel Highway. No provision for cyclists in the roundabout

All three major roads entering this roundabout have cycle lanes in both directions.  That’s fantastic.  But there’s no provision for cyclists at the roundabout, and hence some confusion from drivers who are not sure where the bicycles are going.

8.  Good  Channel Highway. Nice clear section of cycle lane

The image above shows a section of Channel Highway south of the town centre.  Clear, clean and smooth bike lanes in both directions!  But…

9.  Not so good  Channel Highway. The lane ends abruptly on a busy road

Just 100m further south, this is one area that really needs some work.  The roundabout just ahead is extremely busy, is not flat, and you see a lot of rapid entries and exits by car drivers.  It’s not a great place to be cycling through.  But unfortunately this cycle lane just ends here, with no direction for the poor rider.  If you look closely at the base of the light pole, you can see an underpass.  That’s where you should be heading (unless, like me, you are silly enough to just ride through the roundabout…) — but there’s no clear way for you to get there.

10.  Serious  This roundabout is the focal point of nearly all traffic south of the town centre

Here’s a picture of the roundabout I was just talking about.  No provision for cyclists on the roundabout.  But if you look closely, you can see the underpass.  But again, there is no clarity on how cyclists get from the end of the cycle lane to the underpass.

11. Underpass #1 through the roundabout

12. Underpass #2 through the roundabout

13.  Far side of the roundabout, exiting to Summerleas Rd

I think most safe bicycle access through this roundabout could be resolved quite easily.  The only difficult route really is Summerleas – Channel Highway (Southbound).  Even that can be solved with signage and directions.

The image above shows how the cycle infrastructure could be easily improved at the roundabout:

  1. Add a clearly marked bicycle and pedestrian crossing on Westside Circle, with railings on each side of the road.  To the west, this joins the existing off-road cycleway.
  2. Add a clearly marked bicycle and pedestrian crossing on Channel Highway, with railings on each side and in the centre of the road.  On the north side of the road, construct an off-road two-way cycle path to the entrance of the underpass.
  3. Widen and tidy up the exit of the underpass, and construct a ramp heading south for bicycle access.
  4. Extend the cycle path, possibly off-road, on Channel Highway south through the small service road, and signpost clearly the route.
  5. Add access to the new ramp down to the underpass from the Channel Highway.

For the ideal solution, you would construct an underpass from the centre of the roundabout under the south-western side for the best bicycle and pedestrian access in all directions.

14.  Good  Bike lane heading south on Channel Highway

This section of bike lane is on an extremely busy road.  It is in reasonable condition, and was actually the first bike lane constructed in Tasmania, as far as I know.  However, some clearer markings at intersections would be worthwhile, and as you can see from the picture above, there’s not a whole lot of room for larger vehicles.

15.  Serious  Channel Highway, heading south Bike lane is far too narrow and not clear

Along this stretch of road, the bike lane needs some attention. The dirt in the lane has narrowed it significantly, and this makes it the worst kind of bike lane: drivers expect you to ride in it, but there is not enough room to do so safely.

Overall, Kingborough is certainly heading in the right direction in terms of the scope of its bicycle infrastructure.  I haven’t touched on the off-road cycle paths, but these are also becoming significantly more extensive.  I’d love to see some of the disconnection issues above resolved — my biggest gripe with cycle infrastructure all over Australia is that it is all so disconnected.  I leave you with a picture of how this feels to a cyclist.

Cape Town’s abandoned freeway, started many years ago and never finished.

Notes on MSHTML editing and empty elements

We ran into a problem recently with the MSHTML editor where empty paragraphs would collapse when the user saved or printed the document.  If  the user loaded the document again, the empty elements seem to disappear entirely.  Logically, this makes sense: an empty element has 0x0 dimensions, so will take up no space.  But if the user adds a blank line, they would not expect it to disappear after saving: MSHTML gives these new empty elements dimensions as if they contained a non breaking space, until the document is saved and reloaded.

Let’s look at that visually.  We’d type ONETWOTHREE into the editor, and all would be fine, as shown on the left.  After reloading, it would display as shown on the right:

Source HTML editor and collapsing HTML result

So what is going on, and what’s the solution?

The basic solution is to add an   entity (non-breaking space) to empty elements to give them a non-zero width and height.  MSHTML does this.  But there’s a heap of complexity around this.  From my analysis of the problem, it seems that the core issue is that element.innerHTML or domnode.childNodes.length is returning “” or 0 respectively when viewing the full source shows that there is actually an   in the element.  This happens only when the MSHTML editor is active.

The complexity arises when one looks at the different edit modes and methods of loading documents, because each mode has slightly different symptoms.  Whilst juggling the tangle of symptoms that these issues present, we also need to consider the following requirements:

  1. A document may contain both empty

    elements and

     

    elements, and the editor must not conflate the two when loading.

  2. When the user inserts a blank line, it must not collapse.  Nevertheless, the user does not want to learn about non-breaking spaces, so the editor must transparently manage this. Ideally, the non-breaking space would be hidden from the user but managed in the back end.  I must say that MSHTML is very close to this ideal.

A diversion: this is not a new problem, and many solutions have been proposed. One solution suggested in various forums online is to use
to break lines instead of the paragraph model with

or

.  This is not a great answer: it means the whole document has a single paragraph style.  I do note however that this is what Blogger and some other blog editors do, but then they do dynamically insert a

when the user changes the paragraph style.  Still not pretty.

Now where I talk about

elements, feel free to imagine that I am talking about

elements.  The behaviour appears to be much the same, and there’s just a flag to switch between the two elements. Also, I’ll be using Delphi for the code samples because it hides a lot of the necessary COM guff and makes the examples much easier to read.

When a new blank line is inserted into the editor, behind the scenes MSHTML will add an   entity to prevent the element from collapsing.  When you type the first letter, the   is deleted.  MSHTML also makes the   itself invisible to the user.  This is great.  It’s exactly what we want.

So let’s look at the activation of the editor and what is happening there. It turns out that there are three ways of making a document editable — four if you include the undocumented IDM_EDITMODE command that some editor component wrappers use.  So what are these four methods?

  1. Set document.designMode to “On”.

      D := WebBrowser.Document as IHTMLDocument2;
      D.designMode := ‘On’;
     

  2. Set document.body.contentEditable to “true” (or anyElement.contentEditable).

      D := WebBrowser.Document as IHTMLDocument2;
      (D.body as IHTMLElement3).contentEditable := ‘true’;
     

  3. The DISPID_AMBIENT_USERMODE ambient property.  See the link for an example.
     
  4. The aforementioned IDM_EDITMODE command ID.  I’m not condoning this method, just documenting it because some editor wrappers use it.

      D := WebBrowser.Document as IHTMLDocument2;
      (D as IOleWindow).GetWindow(hwnd_);

      SendMessage(hwnd_, WM_COMMAND, IDM_EDITMODE, 0);

To make things even more complicated, there are different ways of loading content into the HTML editor, and different methods have different outcomes.  The three methods we explored were using Navigate, document.write, and IPersistFile.

  1. Using editor.Navigate to load either a local or remote document.

      WebBrowser.Navigate(DocFileName);
     

  2. Using document.write to write a complete document.

      D := WebBrowser.Document as IHTMLDocument2;
      VarArray := VarArrayCreate([0, 0], varVariant);
      VarArray[0] := DocText;
      D.write(PSafeArray(TVarData(VarArray).VArray));
      D.close;
     

  3. Accessing the editor’s IPersistFile interface to load a document.

      D := WebBrowser.Document;
      PersistFile := D as IPersistFile;
      PersistFile.Load(PWideChar(DocFileName), 0);

It turns out that if you use either Navigate or contentEditable, then MSHTML will not hide   from the end user for elements already in the document.  New empty elements typed by the user will still have the default behaviour described previously.  This is inconsistent and confusing to both me (the poor developer) and the end user.

The following table shows how   are treated in otherwise empty elements when loaded in the various ways:

Navigate document.write IPersistFile
designMode
visible
invisible
invisible
contentEditable
visible
visible
visible
IDM_EDITMODE
visible
invisible
invisible
DISPID_AMBIENT_USERMODE
not tested

Now, it turns out that the visible results on that matrix are not going to do what we are looking for.  That’s because, as mentioned, any new empty elements typed by the user will still have the invisible behaviour for that empty element  .

Here’s a final example to clarify the situation.  Given the following document loaded into the MSHTML editor using document.write, and designMode = “On”.

 

 

With this result, we get the following results.

Code Result
doc.getElementById(“a”).innerHTML
doc.getElementById(“a”).outerHTML
doc.getElementById(“a”).parentElement.innerHTML
 
doc.getElementById(“a”).parentElement.outerHTML
 
doc.documentElement.outerHTML


 

So. How do we determine if an element is empty and collapsed, or is a blank line?  MSHTML isn’t consistent with its innerHTML, outerHTML or DOM text node properties of the element.

But wait, all hope is not lost!  It turns out that IHTMLElement3 has a little buried property called inflateBlock.  This property tells you whether or not an empty element will be ‘inflated’ to appear as though it has content.  This little known property (I found no discussions or blogs about it!) should solve our problem neatly:

isElementTrulyEmpty := (element.innerHTML = ”) and not (element as IHTMLElement3).inflateBlock;

isElementJustABlankLine := (element.innerHTML = ‘ ‘) or ((element.innerHTML = ”) and (element as IHTMLElement3).inflateBlock);

Now I just have to push this fix into the HTML editor component wrapper we are using.  At least I’ve already written the documentation around the fix!

Final note: even the Blogger editor that I’m using to write this post has trouble with consistency with new lines.  Here’s an example — look at the spacing around the code samples.

A screenshot of this blog post, in the editor (Firefox)

A screenshot of this blog post, previewing (Firefox)

Relying on the cloud (aka Google Docs is down)

Just today, Google told me that “Cloud computing is secure, simple, keeps you productiveand saves you money” (http://gmailblog.blogspot.com/)  So…  logged onto Google Docs this morning to retrieve a shared To Do list.  And was greeted with the following screen:

A little research told me I was not the only user with this problem.  No mention of the issue from Google yet (update, 7:28AM, they’ve acknowledged reports of an issue).  If we can’t rely on the biggest and most prevalent of the cloud companies, then really, we can’t rely on the cloud at all.

No doubt they’ll fix the issue, but given that at the time of writing they hadn’t even acknowledged that there was an issue, I don’t think I’ll be continuing to use Google Docs.  (Yes, I get the irony of writing this using Google’s blog product, but I don’t rely on this blog to get my work done).  That may sound like an overreaction, but Google have positioned their product as a viable alternative to Microsoft Office.  Dependability is essential.

What’s the difference between Google Docs being down and Microsoft Word failing to start?  Well, when Word doesn’t start, you can still be in control of the situation, by moving to another computer, or by researching a solution to the problem (my preference).  The lack of control that one has with cloud apps is very frustrating.  Google’s tendency to be difficult to contact exacerbates the helplessness that their customers feel.

Why you should not use MoveFileEx with MOVEFILE_DELAY_UNTIL_REBOOT

A common problem that you, as a developer, may run into on Windows is the need to replace a file that is in use. This commonly happens with installations and upgrades, but can of course also happen in general use.

In earlier versions of Windows, when most users worked in full administrator mode, the MoveFileEx function with the MOVEFILE_DELAY_UNTIL_REBOOT flag was suggested by Microsoft as a great approach for updating files that were in use.  This flag would, as it sounds, allow you to schedule the move or deletion of a file at a time when it was (pretty much) guaranteed to succeed.

For example:

// This will delete c:\temp\coolcorelibrary.dll on the next reboot
MoveFileEx(“c:\\temp\\coolcorelibrary.dll”, NULL, MOVEFILE_DELAY_UNTIL_REBOOT);

Nowadays, of course, this flag does not work unless you are running in the context of an administrative user.  That’s great, you think, this will still work for my install or upgrade program.

But don’t trust that feeling of security.  Things are never as easy as they seem.  I first realised that this was a problem when researching issues occasionally reported by some of our Keyman Desktop users.

Take this scenario:

  1. A user, Joe, decides to uninstall your awesome app CoolCoreProgram.
  2. The uninstaller finds that a critical file (let’s call it coolcorelibrary.dll) is in use and can’t delete it
  3. Installer calls a MoveFileEx with MOVEFILE_DELAY_UNTIL_REBOOT to schedule deletion of coolcorelibrary.dll.
  4. Would you click Restart Now?  Why not leave it till later?

    The uninstall completes and presents Joe with the dreaded “Hey, you need to restart Windows now” dialog.

  5. Poor unhappy Joe swears and cancels the restart, and continues his work.  He can’t see any good reason to restart Windows…
  6. A short while later, Joe realises that he actually loves CoolCoreProgram and so he downloads and reinstalls the latest, greatest version (now with extra shiny!)
  7. Shortly thereafter, Joe finishes up for the day and turns off his computer.
  8. The next morning, after Joe starts up his computer, Windows notes its instructions from the previous day, and obediently deletes coolcorelibrary.dll.
  9. And now Joe is now really, really unhappy when he tries to start CoolCoreProgram and he gets a bizarre coolcorelibrary.dll missing error.

Who is Joe going to blame?  Is it his fault for not restarting?  Is it yours for using cool APIs such as MoveFileEx?  Or is it a woeful confluence of unintended consequences?

This is probably one of the simplest scenarios in which this problem can crop up.  Things get much worse when you talk about shared libraries, fonts, or other resources which may be in use by the system, or multi-user systems.

Some reasons I have encountered for files in use:

  1. Program is still running (duh!)
  2. System has locked the file (common with fonts, hook libraries)
  3. Antivirus or security software is scanning the file
  4. Another application is trying to update the file (i.e. don’t run multiple installers at once)

One possible fix would be to check and update the registry key
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations for listed file before creating or updating them.  But that’s a big performance and reliability hit.  I can’t say that solution sits well with me.

Another idea is to block further install and upgrade tasks until Joe actually does restart his computer, for example with a registry setting or a RunOnce entry.  But that’s going to make Joe hate me even more than he already does!

Some scenarios can be fixed with the Windows Installer automatic repair functionality.  But that assumes access to the original source files is always possible.  So that’s not a general solution.

I don’t really have a good general solution to this problem.  Any ideas?

St Crispin and His Magical Well

By Hannah Durdin
Once upon a time, there were two girls and their mother and father.  The older sister, Bethany, was trying to make a present for fathers’ day, so Bethany’s father decided to go on an explore-bike-ride with Hannah.  And on the way to Fern Tree they got some chips! 
 
At the Fern Tree Shop
So then the daddy and Hannah went on the bike ride along the Pipeline Track.  It was very bumpy.
Zooming
Hannah hurrahing on the Pipeline Track
Hannah on the bike
And they’d already got a snack, which was some marshmallows.  When they went on the Pipeline Track, Hannah did some picnic wees!  And then, on the Pipeline Track, Hannah and her Dad saw a well, St Crispin’s Well.  They had to walk up a little path to get there.
Hannah is walking up the place where there is a sign saying “10 minutes walk to St Crispin’s Well”
Hannah doing nothing
Hannah walking to the well
Hannah falling over
The view
And then at the well, they saw a mini waterfall, underground.  And then at St Crispin’s Well, there was white water.
At St Crispin’s Well
The sun was setting
St Crispin
The waterfall
St Crispin’s Well
St Crispin’s Well was a lovely place
When Hannah was sitting down
Chips!
This is at St Crispin’s Well
And they went home, and when they got there, Bobonne was still there.  And then they made Spaghetti Bolognese for dinner.
The End

Anatomy of a slamming attempt

I just received a phone call from an unknown Melbourne number.

03 9001 5893

Unfortunately, I couldn’t record the call, but it went something like this.

The caller: “Hi, I’m such and such calling about your Telstra land line. Your account has been flagged for review because you are eligible for a concession which incorrectly has not been applied, because you are spending over a hundred dollars a month your landline.

Me: “Sorry, who is calling? Are you from Telstra?” (I’m already guessing this is not a legitimate Telstra call)

Caller: (very quickly) “Yes, this is a Telstra wholesaler and I’m calling about your land line ending in **** because you are spending over a hundred dollars a month and you are eligible for a concession cap which has not been applied to your account. This will be a monthly cap of $75 per month and includes all STD and long distance calls …

Me: “Huh, I didn’t think we were spending that much.” (Leading them on now)

Caller:What was your last bill for?

Me: “But you can tell what the last bill was for, can’t you?” (Of course they can’t)

Caller:Sure. Well, I can fix that all up for you, and apply the cap to your account.

Me: “What company are you calling from? This isn’t Telstra, is it?” (Time to call them on it?)

Caller: (quickly again) “Our company is Fairtalk Australia and we are an authorised Telstra wholesaler.

Me: “So this is deliberately deceptive, isn’t it? You didn’t identify yourself as Fairtalk, you talked about my Telstra account as if you were from Telstra.”

Caller:Sorry about that.

Me: “I will be reporting this phone call. What was your name again?”

[dial tone]

Well. They were deceptive in their identity initially and even when questioned used misleading terms like ‘Telstra wholesaler’ rather than their company name. When they finally gave their company name, they rushed through it and tried to sound like they were authorised to speak on behalf of Telstra, rather than an independent company.

So, I took a look at their website, and soon thereafter @FrancisChui pointed out their little blurb on misleading sales calls, which I’ll quote:

Misleading Sales

The idea that any of our staff might deceive you with false promises as a method of gaining you as a customer is a horrendous one. At Fairtalk we believe in being as up front and honest with our customers as possible. Because of this we need to be informed if an individual in our sales department has let his team and by extension the whole company down. If it should come to your attention by whatever means that the offer made to you has not been followed through, please let us know immediately.

I note that it doesn’t say anything about misleading identity or pretending to be a Telstra employee – just misleading promises.

As the sales guy hung up on me, rather than take responsibility for the manner in which he conducted his unsolicited phone call to me, I decided to push this a little further.  Hence the blog post, and the follow up with ACCC.  I’m not the first person to have had this misleading conduct.

Be warned.  Always ask for full identity information.  If they are a Telstra representative, then they’ll have the details of your last bill already.  These guys didn’t.

Indy Sockets: an example of how to not distribute software libraries

Indy Sockets is a library of network components for Embarcadero Delphi, which has been included in the Delphi distribution for many years now.  Like all libraries, bug fixes and patches are regularly made to the source and thus it is typically a good idea to update your the library periodically.
Unfortunately the method of distribution that the Indy Sockets developers have chosen could be a classic example of how to not distribute software libraries.  Here’s why.
When you visit the Indy download page, you are presented with the following blurb:

Installation

Development Snapshot – Instructions to obtain live source and compile manually.

Alternatively you can download the Source Code for Version 10.0.52. This is however a rather old version and is no longer recommended.

So naturally, one follows the Development Snapshot link as the rather old version is no longer recommended, right?  Once you get to the Development Snapshot page, you are then presented with the following scary message:

“You are being warned. This will provide you with a direct link into our current development files. At various times the files may not compile, or in some cases may cause strange errors. Use at your own risk! However please see the version specific notes below. If you are unlucky enough to download a bad version please try again a little later. We apologise for any inconvenience caused.”

This means that when you download Indy, you have no guarantee of getting a stable or even a compiling version.  There is no version information, and you have to rely on their SVN commit logs to figure out what the status of the libraries are.  Oh yes, and the “version specific notes” are missing.

Poor show.

Hobart Bike Infrastructure – the Taroona Bike Lanes

The Taroona bike lanes are some of Hobart’s earliest bicycle infrastructure.  Kingborough Council was the first council in Tasmania to install on-road cycle lanes – in Kingston on Channel Highway in the 1990s. I don’t know who is actually responsible for the installation of the bicycle lanes in Taroona in 2002 but I believe it comes under the auspices of DIER. I must applaud the forward thinking of whoever pushed for the bike lanes and for getting the ball rolling on the whole bicycle infrastructure problem in Hobart.

So then, what’s the blog about?  As such I hope this blog can be read as constructive criticism. I use the bike lanes in Taroona on an almost daily basis and have become very familiar with certain pressure points on the route.  Unfortunately, the Taroona bike lanes have a few problems which limit their accessibility and compromise the safety of riders using them. I’ve opted to describe these issues pictorially; the little map below shows where each of these photos was taken.

The issues do of course vary in severity and I’ve tried to indicate this in terms of how serious I think the issue is and the risk to the cyclist.  A general problem with the lanes is that they are very narrow – much narrower than is really necessary for a safe separation from the already narrow traffic lane.  This is particularly obvious when large vehicles such as buses pass.

Despite being one of the most frequented cycling routes in Hobart, the cycle lanes frequently have sections covered in gravel or other rubbish.  This is a maintenance issue.

Map of Taroona with approximate photo locations highlighted
1. Seams in the bitumen (minor)

The first problem is not a huge one but when wet can pose a danger to the commuting cyclist.  The seams running along the middle of the bike lane have a tendency to catch wet tyres and cause the cyclist to come off their bike.  Given that the bike lane is narrow, there is potential for the rider to fall into the path of an oncoming car.

2. Raised driveway access (severe)

This is one of the more serious obstacles in the bike lane.  After rounding a sharp bend, the commuting cyclist is presented with the obstacle above which completely blocks the bike lane.  This is very dangerous, particularly in the wet.  Most cyclists on road or commuter bikes really have no choice but to enter the road lane, at a point with poor sight lines.  The drainage gap to the left is a further danger to the cyclist, being a perfect width to capture a wheel!

3. Driveway access, uneven broken surface and lumpy (moderate)

The driveway pictured above looks navigable from the photo but in reality has a lumpy and broken surface which is treacherous, again especially in the wet.  Many cyclists will opt to enter the roadway to avoid riding over this driveway.

4. Wheelie bins (moderate)

Wheelie bins are generally fairly visible but tend to be placed in the bike lane on garbage collection day in many locations through Taroona.  This means that cyclists must ride in the road lane for much of the route through Taroona on garbage days.

5. Parked cars #1 (minor)

This picture shows a driver who has attempted to move their car as far off the road and as far out of the bike lane as possible.  Unfortunately, they still encroach into the lane by about 20cm, and cyclists who are wary of being doored will give the parked car a wide berth, again entering the roadway.  This picture also shows some minor gravel on the bike lane: the question becomes who’d choose to ride in gravel when the clean, smooth road surface is just 50cm to the right?

6. Parked cars (severe)

On the opposite side of the road now, heading towards Kingston, we see one of the biggest issues with the bike lane in Taroona.  There is simply nowhere for drivers to park along this section of road but smack bang in the middle of the bike lane.  This of course forces riders into the middle of the roadway, causing conflict with drivers and potential for collisions. I have had issues with impatient drivers overtaking me quite dangerously along this stretch of road, where there are often several parked cars.

7. Broken surface and sloping, extremely narrow lane (severe)

This is unfortunately a new section of road outside Taroona Primary School.  The road was widened about a year ago I believe, but some slippage has caused the bicycle lane to become virtually unusable, with wide cracks and a slope on it which is positively dangerous in the wet.  It is also extremely narrow.  I almost always ride in the road lane to avoid the obstacles in this section.  It is disappointing that such a poor job was done on this new section of road.

8. more of broken and sloping (severe)

This picture shows more of the cycle lane outside Taroona Primary School.

9. Drain completely impeding passage along bicycle lane (severe)

This one hardly needs any commentary.  This drain, with its broken edges and covering 90% of the bicycle lane, is simply not safe to ride over. The blue access cover just prior to the drain further complicates safe passage.  The only safe route past this drain is in the roadway.  You might be picking up a pattern by now.
 

10. Uneven service covers (moderate)

These seem almost unimportant in comparison to some of the other issues I’ve covered.  However, small obstacles in the bike lane surface are dangerous, both in terms of cyclists spotting them late and then swerving around them, and also for those who are unfortunate enough to ride through them.

11. Parked cars (severe)

To finish off, I include another photo of parked cars, this time on the initial slopes of Bonnet Hill on the southern end of Taroona.  In the picture you can see cyclists who are forced to ride almost in the centre of the road lane to pass the parked cars

In conclusion, the primary issue with the Taroona bike lanes is that they are narrow and frequently obstructed.  This means that cyclists must merge with car traffic in the road lane several times on a typical journey through Taroona.  Frequent merging is a safety risk — it only takes one slip for a serious accident.