Archive for July, 2005

Poor Me

Well, it’s official: I am financially prostitute, and I need to come up with some revenue generating ideas, stat!

With that in mind, I’ve posted that UTF-8 t-shirt design to Cafepress, on the off-chance that the idea will seem cleverly amusing rather than tragically esoteric– although truth be told it was a plug from Joel [on Software] for the similarly themed I {entity} Unicode shirt that prompted me… Now all I need is for every visitor to buy a few hundred items and I’m set!

The very real pressure to find a source of income will most likely cause my procrastizone levels to spike dangerously over the next few days, possibly resulting in the commencement of [more] totally unrealistic new projects, in a desperate attempt to avoid dealing with the situation at hand. Even as I type this, I’m thinking about that 500-page graphic novel I’ve been meaning to write since earlier this evening– Something dark, with lots of gothic vampire action, but totally fresh and original at the same time…

Return of the [insert nasty epithet] Spammers

I find myself suddenly clobbered by spam again, via email and comments.

The email spam is the most upsetting, since I’ve been doing such a great job of keeping my primary address off the lists… until now. And I wonder if it’s a coincidence that it started shortly after someone’s crappy comment engine published my email address in public/spiderable view…? Bastards!

Also getting classic poker/gambling comment spam rolling in at about twenty per day, but at least those are never making it past the moderation filters [so they’re only annoying the hell out of me; not my visitors].

MS hauls its fat arse out of bed with Virtual Earth

Using this web interface to author posts makes me feel more like a regular blogger, reducing my impulse to self-edit ;) When I get back home I will copy the posts into my local system to re-publish, at which point I will probably do some redacting…

Latest [and probably last] news on Mum is: she′s gonna be fine! She′s had this nasty infection but her CRP levels are now dropping, and will hopefully be back within normal parameters within a couple of days. Thanks for the well-wishes!

Site traffic has indeed picked up after the initial surge of a few days ago, which I now think was due to the Google Maps post with the image URL stuff… Google Maps are so hot right now! Interesting to note that my criticism about them using an inappropriate projection for their satellite view is now nullified– they′ve since updated their satellite view to use the Mercator projection to match the street view [as well as adding a funky scale indicator which varies appropriately as you change latitude, and offering a new hybrid satellite + map view]. It′s this kind of instant roll-out capability which makes me think I should be looking at web apps and not dusty old stinky cruddy shitty poopy desktop apps which require – gag – downloading and installing!

Oh yeah, the title of this post refers to Microsoft′s latest Google competitor, Virtual Earth, which is a brilliant synergy of me-too and anything-you-can-do. It has some way to go before I say wow, especially when I find that the best “satellite” view of the place where I′m currently at is this. Compare with previously mentioned view of local shed or recently discovered farmhouse where my Dad grew up.

PS I am in fact aware that Microsoft′s mapping efforts go back some way– but remember, I′m being Mr Typical Short-Attention-Span Blogger today, and me Mam is still in hospital, so you have to be nice to me for at least another day or so ;)


UPDATE: Now back in my normal editor, but decided to leave this post largely unchanged, since changing the most obnoxious parts makes other parts mean less, and the thing has already been out there for a few days anyway, so… you know… just bear in mind that cheap shots at Microsoft are not my idea of good writing…

Item: Dialup is slow!

My sincerest apologies to intepid visitors stuck with dial-up connections on a permanent basis [and I know there′s at least one of you]… I had no idea how long my front page takes to load at – gah! – 48Kbps!

Also, I registered a substantial traffic surge immediately after posting the last entry, which I think was just a coincidence, but maybe was due to automatic WordPress pings…? I guess I′ll know soon enough when I post this entry…

The dreaded TEXTAREA

I think this is my first ever post using the WordPress web interface– normally I use my own astoundingly unstable HTML Editor which allows me to easily compose posts offline using Microsoft′s DHTML control [as used by Outlook Express when composing HTML emails], but I′m back in Murwillumbah at the moment, keeping Dad company while Mum is in hospital – where incidentally she is responding well to treatment, and is hopefully well on the way to a full recovery – so this time around I′ve decided I′m not going to set up my old computer with all my software and folders just to upload a few posts… It′s time for me to embrace the browser and try doing things the way most other people do them, using just my parents′ Celeron 300.

So far, I′ve decided that I really hate: Win98, custom databases which can′t be rebuilt without calling a support person [and hence prevent me from upgrading the OS of this computer], IE′s lack of tabbed browsing, the auto-search feature of IE when it can′t find a domain, people who register but not, dial-up connections, the fact that reflexively hitting Ctrl+S while typing in a TEXTAREA prompts to save the entire page [and not the stuff you′re typing], the incredibly loud whining sound that this computer is making…

Oh Crappy Day

The thing that I was depressed about just got more depressing– I am heading north again to try to be of some assistance. Basically, my mother is in hospital after a complication from a car accident she had about a month ago, and it’s a complication that [almost certainly] never needed to happen. I am trying not to get really really angry about this. I hate feeling so fucking powerless! And I end up hating myself because if I were financially solvent I could be of a lot more assistance– my frivolous do-what-you-like lifestyle suddenly feels stupid and reckless, because it means I have no reserves to call on when unexpected needs arise.

I do at least have my time, so at least I can give some of that.

Aaaaanyway… in less crappy news, I saw a crappy movie today, Bewitched, and particularly enjoyed this piece of dialogue from an uptight young AD dancing around under the influence of magic: “I feel so alive! … I feel like one of those people I make fun of! … I believe in unicorns!” – maybe you had to be there.

Also, I made gravatars work here again using a raw IP ( since Tom [Mr Gravatar] forgot to renew the domain name on time. Please Tom, decentralize Gravatar just a bit by providing scripts so that people can cache images locally. For outages like this, and to reduce your own bandwidth requirements.

PS why the fuck do airlines always mail my itinerary to me as a PDF attachment? I hate PDF! All I want is the details of my flight, why can’t they just stick it in the body text of the email? PDF is heavy on form and light on content. HTML is in my mind the perfect balance between the two, and is already supported by 99% of email clients, so why add this extra step?


UPDATE: gravatar is back up, and I now note that there is at least one cacheing plugin which has been endorsed by Tom. Also there is a forum for discussion of the next version of gravatars, so I might drop in there…

Puzzle o’ Tiles

rocket puzzleThe previous post has got me thinking about images built out of tiles, and I need some cheering up, so I made this little block sliding puzzle. Enjoy!

Feel free to copy the source to make your own version. All you need to do is replace rocket.jpg with your own 300 x 300 image.


UPDATE: Note that I had originally overlooked the issue of parity when randomizing the puzzle squares– This meant a 50% chance of getting an impossible puzzle! Apologies to anyone who might have been a victim of this temporary oversight ;)


UPDATE2: how to solve ( one animated solution)

I was born at Tsrrtrsqsqqqrqrtsst

[Last updated July 2011]

I’ve been playing around with the marvellous Google Earth and Google Maps, and just noticed how elegant the system for addressing image tiles is [specifically from Google Maps].

Google Maps now offers a satellite view as well as a map view, and does so using the former Keyhole database. The view is built using tiles– 256 pixel square JPEGs fetched from the the server.

As of this writing, the image URLs take the form:

version is between 85 and 88, and I’ve no idea why. It doesn’t really seem to affect the projection like it once did, but it does seem to change the particular images used in some cases. It may be simply a number which must be raised occasionally to correspond with newer data– eg it once accepted 45 as a valid argument and now it doesn’t. Unfortunately leaving it out altogether results in a 404 error.

quadtree recursive subdivisionaddress is a short string of letters encoding the location of a particular map square. The addressing mode is quite elegant, with the world recursively quartered until the desired detail level is reached. This simple heirarchical structure is known as a quadtree, and is commonly used in computer graphics. For whatever reason, Google labels the four quadrants q, r, s & t.

The topmost tile contains the entire world map, and is referenced with an address of t. Adding an s to this selects the lower-right quadrant of the map, and adding a further r selects the upper-right of that map, resulting in a tile containing most of Australasia. Each time an extra letter is added, we descend into a new quadrant, and this continues until the maximum detail is reached. So, for example, the hospital where I was born can be uniquely addressed [to within a hundred metres or so] using the URL:

Converting between Quadtree addresses and Longitude/Latitude

This page contains Javascript to returns all tiles containing a particular location, with each yellow quadrant marking the region occupied by the subsequent map. If you’d like to copy the code you can view the page source, or simply use the excerpts shown below. The first two functions are based on equations from Wikipedia’s entry on the Mercator Projection.

function MercatorToNormal(y)
y = -y * Math.PI / 180; // convert to radians
y = Math.sin(y);
y = (1+y)/(1-y);
y = 0.5 * Math.log(y);
y *= 1.0 / (2 * Math.PI); // scale factor from radians to normalized
y += 0.5; // and make y range from 0 – 1
return y;
function NormalToMercator(y)
y -= 0.5;
y *= 2 * Math.PI;
y = Math.exp(y * 2);
y = (y-1)/(y+1);
y = Math.asin(y);
y = y * –180/Math.PI;
return y;
function GetCoordinatesFromAddress(str)
// get normalized coordinate first
var x = 0.0;
var y = 0.0;
var scale = 1.0;
str = str.toLowerCase();
str = str.substr(1); // skip the first character
while (str.length > 0)
scale *= 0.5;
var c = str.charAt(0); // remove first character
if (c == ‘r’ || c == ‘s’)
x += scale;
if (c == ‘t’ || c == ‘s’)
y += scale;
str = str.substr(1);
var ret = new Object();
ret.longmin = (x – 0.5) * 360;
ret.latmin = NormalToMercator(y);
ret.longmax = (x + scale – 0.5) * 360;
ret.latmax = NormalToMercator(y + scale);
ret.long = (x + scale * 0.5 0.5) * 360; = NormalToMercator(y + scale * 0.5);
return ret;
function GetQuadtreeAddress(long, lat)
// now convert to normalized square coordinates
// use standard equations to map into mercator projection
var x = (180.0 + parseFloat(long)) / 360.0;
var y = MercatorToNormal(parseFloat(lat));
var quad = “t”; // google addresses start with t
var lookup = “qrts”; // tl tr bl br
for (digits = 0; digits < 24; digits++)
// make sure we only look at fractional part
x -= Math.floor(x);
y -= Math.floor(y);
quad = quad + lookup.substr((x>=0.5?1:0) + (y>=0.5?2:0), 1);
// now descend into that square
x *= 2;
y *= 2;
return quad;


Intepid Goes Medial!

Today my Google Pagerank [as indicated by the Google toolbar in Internet Explorer] is 5/10. I think that’s as high as it’s ever been, but since I hardly use IE anymore it’s hard to know for sure. Although 5 is not particularly high, I have relatively few incoming links [for a blog] so I’m actually pretty pleased.

Also, I’ve finally added a Recent Comments section in the sidebar, so that the casual visitor can more easily see what people are talking about [and more easily see whether a response to their own comment has been posted]. Also changed the font to help pack it all in a little neater, since it’s starting to get a bit crowded over there. Still hanging on to the serifs in the body text for now, but will probably do a CSS update to spruce things up around here sometime.


UPDATE: And now it’s back to 4/10. Well that’s just fabulous.

Holy Crap: Murwillumbah at 1m resolution!

Google Earth [formerly Keyhole] now has high resolution imagery of my home town:

Murwillumbah High School, which I attended from 1985 to 1990. Not sure when this photo was taken.

It’s astounding how much of an improvement this is over the imagery available just seven months ago, when even Sydney was visible as only a few blurry pixels. Now I really can see my house:

Sydney, taken sometime within the last year, so I am probably under that white dot.

Of course, you could also use Google Earth to look at a place where you haven’t lived. Checking out Tokyo it’s amazing how much it looks like a screen shot from SimCity 3000 … and it’s also fascinating looking for the seams between photo sets, where images are collected from totally different angles, making buildings suddenly appear to lean in the wrong direction– See the top right of this image.

Google Earth is free, so if you’ve got a PC, go download it! Then try to resist the urge to email everyone you know with pictures of their houses…


UPDATE: For some reason I thought that Google Maps and Google Earth were still using different databases, but checking again I realize that they are using the same imagery [Google Maps references for its images, so it’s almost certainly using the KeyHole database]. Here is a link to a Google Maps view of that first image, and here is a satellite view of that strange elevated shed I posted about earlier.


tiny dalekI have to post this animated gif I created yesterday, since suddenly I have Daleks on the brain again. It’s from the same model I rendered in chrome ages ago. [ click for larger version ]


JujuEdit finally gets an official update, so here’s hoping it’s as robust as it seems. I am still a software provider!


Temptation is an Australian quiz show [the new Sale of the Century ] on which I would like to win lots of money, but unfortunately in a recent audition I didn’t even make the first level cutoff– Very disheartening! Basically about 150 of us squeezed into a room and wrote the answers to 50 spoken questions on a sheet of paper, and when the questions were finished we swapped papers and tallied the correct answers. The cutoff was 27/50, and I only scored 23, so it was a bit of a blow to the old ego…


Half-Life 2 is still the best game ever… I was reminded of it after becoming frustrated with the rather uninspired Doom 3 [on our slightly disfunctional xbox], and before I knew it I was playing through it all over again! I eagerly await the sequel, Aftermath


The Dalek finds peace