Google Earth for the Mac was released today. I’ve just downloaded it, and I’ve been playing with it for half an hour. It’s truly an amazing product: so much more than Google Maps, and something that has the potential to change how we think about the earth.
I thought the whole “flying around” animated thing was a gimmick, but it’s not: it works to reinforce that the world isn’t a discrete collection of maps sheets, but rather an interconnected whole upon which we’re all scattered. That might sound like a lofty idea, but I think it’s a powerful one, and something that will affect our view of the planet as much the pictures of earth from the moon did back in the 1960s.
If you haven’t experienced Google Earth yet, I recommend you grab a copy: it’s a small download, it’s free, and it may blow your mind.
Let this be a lesson to me: never blog about being sick, especially when the closing words of the post are “the end is near” (meaning the end of the sickness, not of me).
After blogging about said sickness, I returned to almost full health for a couple of days. I cleaned the bathroom, got a lot of work done, and even took the small family to Brookvale for an afternoon of cross-country skiing.
My hubris got the better of me, however, come Monday morning when the cold returned in a new a meaner form, settling in the upper reaches of my head and making me feel like my brain had turned to cotton. And the mucus, oh the mucus — my nose has been running a tap all week.
I’m back in the office this afternoon, as I’m feeling more like my head is full of dandelions than cotton (a distinct improvement), and there’s work to be done. I’m bolstered by a bracing cup of the Ginger Black Tea from Interlude. But I know enough not to tempt fate this time around, and I’m going to be home before Compass is over.
The crazy thing about all of this is that the usual vector for sickness into our family is [[Oliver]], but he’s been the picture of health since Christmas. [[Catherine]] too. Here’s hoping they stay that way.
In the meantime, if you happen to join me in my stuffy-headed misery, buy lots and lots of Kleenex. You’ll need it.
You can now buy old episodes of the Charlie Rose show from Google Video for 99 cents each (compared to DVD copies of episodes that cost $34.95). It seems that some episodes — like this one — are available for free download. Here’s a screen shot of a Google Video search for “Charlie Rose”:
So now it’s officially the “cbc news at six.” Ironically I missed the first episode because our [[DVR]] was set to record a program titled “Canada Now.” And there wasn’t one. So I watched it on the web. Where I was delighted to find that the web address for the RealVideo stream has a filename of compass.ram.
Editor in Chief of CBC News Tony Burman outlines the branding changes for all CBC News programmes that kick in today. Inside this Windows Media file you’ll see a montage of the new visuals and, at the end, the new “signature sound.”
My world has become much less confusing now that I’ve learned that Amanda Peet and Piper Perabo are different people.
Once you start playing with the Google Maps API, making your own maps using various bits of JavaScript, you’ll eventually come under attack from single quotes.
Look at this code, for example, which is a mixture of Javascript and PHP:
var point = new GPoint(<? echo $longitude . "," . $latitude; ?>); var marker = createMarker(point, '<? echo $html; ?>'); map.addOverlay(marker);
The role of this snippet is to add a marker to the map at the given longitude and latitude, with the given HTML appearing when the marker is clicked.
So you stick this JavaScript inside a loop that grabs the appropriate values from a database, and sticks a bunch of markers on the map. Things go horribly wrong, however, when you try and create a marker for St. Dunstan’s Basilica, and you can’t figure out why. Here’s what’s happening:
var point = new GPoint(-63.12516,46.23367);
var marker = createMarker(point, 'St. Dunstan's Basilica');
map.addOverlay(marker);
I’ve highlighted the problematic area. And the problem is this: your browser’s JavaScript interpreter is getting confused by the single quote (aka “apostrophe”) in the string St. Dunstan’s Basilica — it thinks that single quote is the end of the string. And if you look in your Javascript console (Tools \| JavaScript Console in Firefox), you’ll see an error like:
Error: missing ) after argument list
How to solve this problem? Simply escape all of your single quotes in your HTML, using PHP, before you insert the HTML into the JavaScript. So:
var point = new GPoint(<? echo $longitude . "," . $latitude; ?>); var marker = createMarker(point, '<? echo str_replace("'","\\'",$html); ?>'); map.addOverlay(marker);
The change has the effect of converting all of the single quotes into escaped single quotes (\'
). Note that you use \\'
in your str_replace because the backslash is also an escape character in PHP, so you need to “escape your backslash” in PHP too.
The resulting JavaScript will now look like:
var point = new GPoint(-63.12516,46.23367); var marker = createMarker(point, 'St. Dunstan\'s Basilica'); map.addOverlay(marker);
And it will no longer cause problems.
I’m the first to admit that I am not a paragon of cleanliness. And you don’t want to know how long it has been since I cleaned the bathroom here at the [[office]].
So today, with a good dose of long-running SQL queries to run to break up the time, I set about to right this horrible wrong.
First stop was the True Value Hardware in the basement of the Confederation Court Mall. I find it always makes cleaning go much easier when you make a run to the “cleaning products” section before starting (I am bolstered in this thinking by [[Catherine]]’s revelation that you can’t simply use dish soap to clean everything).
For a hardware in such an obscure location, I gotta say that True Value has pretty well anything someone on a cleaning frenzy could ever want: I returned with a sponge mop, vinyl floor cleaner, new hand towels and dish towels, poster hangers for our YANKEE Magazine 70th Anniversary Poster, a rug for the bathroom floor and some green-apple scented LYSOL bathroom cleaner.
I started with a first pass over the floor with the wet sponge mop and the vinyl floor cleaner. Then a second pass. Then a soak. Then a third pass, this time on my hands and knees with a J-cloth. Left the floor to dry and took a break.
Next it was the fixtures. Generous dollops of green-apple guck got sprayed everywhere germs my linger; soak; rinse; repeat.
The toilet got special triple-action cleaning, as did the sink. I even cleaned the door handles and the light switch (who knows where germs might lurk!).
I left everything to dry, then returned to polish up the stainless steel garbage can, clean out the bathtub, give the radiator a rub-down and neaten up the curtains. Finally I hung up the YANKEE poster, gave the corners a vacuum, and I was done.
I realize that for most normal people this is no feat at all. Heck, most of you probably clean your bathroom every day. Or at least every week. I indeed I will endeavour to become like you as the days and weeks progress.
Now that the gentle scent of artificial green apple fills the office, I welcome any of you with an urge to pee in the vicinity of the [[office]] to consider dropping in for a test-run.
Of course you’ll be expected to mop up after yourself. The cleaner is in the closet behind the door.
Apparently I have succeeded in registering the domain name reinvented.travel: here’s my WHOIS record. For now, this will redirect to a list of the travel-related posts here on the weblog.
For more on the “dot travel” domain, see these earlier posts:
And, of course, Edward Hasbrouck’s Internet domain names for travel, which is the definitive resource on this new domain.
For the record, I established Reinvented’s eligibility as a member of the “global travel and tourism community” (see here) by pointing to (a) our eligibility under “Travel Media” for the travel writing here on ruk.ca (see here) and (b) our eligibility under “Computer Reservation/Travel Technology Provider” for Reinvented’s work with travel clients like NewEngland.com.
Also for the record, I continue to agree with Edward’s take on .travel, and proceeded with the registration as much as an experiment in going through the process as for use as a practical business resource (although I’ll likely find a practical use too — I did invest $100!). I do realize, however, that my registration — and thus my investment in the enterprise — do give a tacit endorsement to the project.
Just discovered one of those things I should have discovered a long, long time ago: in MySQL (and, I assume, every-other-SQL), this:
insert into table (field1,field2,field3) values (1,2,3) insert into table (field1,field2,field3) values (4,5,6) insert into table (field1,field2,field3) values (7,8,9)
…can also be expressed like this:
insert into table (field1,field2,field3) values (1,2,3), (4,5,6), (7,8,9)
The difference is that the second form, especially if you’ve got lots of inserts to do, is much, much faster.