I finally got up flying today. It wasn’t perfect weather conditions – there were low scattered clouds around the airport, and a solid overcast up at 20,000 feet to deprive me of the sunny day I craved. It was a bit hazy and there was a definite wind shear around 2,000 feet, with the consequent small amount of turbulence. But it was warm enough that I didn’t have to pre-heat, and thanks to our getting cheap hangar space this winter, no messing around with wing and cabin covers. And the weather is supposed to utterly suck this weekend, so it was now or “never”.
Continue reading “Friday the 13th: A good day to fly”
Category: Revelation
Baby’s first AJAX
I’ve enhanced my CoPilot Waypoint Database Generator to do a bit of AJAX-like coding.
Formerly, after you’d entered all your parameters it would fire off a background task, and then continually refresh a page that would look at the background task’s log file and tell you how many records it had put in the file already.
Now, the refresh page is still there, but if you have Javascript active, it does a window.location=
to redirect to an html page which has some javascript that uses the XMLHttpRequest or ActiveXObject to call a perl script that generates a very small XML file that only has the progress, and sets the appropriate div in the page to visible and sets some values in appropriate spans.
It seems to work very nicely, but what a convoluted mess. Between the HTML, the CSS, the Perl, and the Javascript, I’ve got language fatigue. Javascript is not turning out to be my favourite language. I’ve never been able to understand why Sun didn’t sue Netscape over the intentional confusion between Java and Javascript, but now I’m even more confused.
All the other craptacular syntax and bogus object model aside, what Javascript really needs is a simple way to turn a simple bit of XML into an associative array. And don’t talk to me about JSON – even if I wrote both the client and the server, I just don’t feel right about having the client eval a string passed to it by the server – I just know there’s got to be a security exploit waiting to happen. So instead I’ve got all this
var tStatus = xmlDoc.getElementsByTagName("status")[0].firstChild.data;
var tOtherURL = xmlDoc.getElementsByTagName("otherurl")[0].firstChild.data;
var tRows = xmlDoc.getElementsByTagName("rows")[0].firstChild.data;
That's just ugly.
Quiet is nice
In my continuing attempts to keep from killing the people around me, I’m trying another way to blot out the noise around me.
At the Apple Store before Christmas, I tried out the Bose noise cancelling headphones. Just like their aviation headphones, they were awesome, light, and way too freaking expensive . They’re around $300, which I suppose is a bargain compared to the Series X aviation headphones which are around $1000, and have been since they invented the concept of ANR (Automatic Noise Reduction) in aviation headphones. The aviation ones haven’t budged in price in 10 years, so I don’t expect to see the music ones getting drastically reduced either.
So I compromised and bought myself a pair of Sony MDR-NC6 headphones. These are semi-open like the original Walkman headphones, but with a battery compartment in the bow just above the right ear.
You put them on your head and flick the switch. The first thing you notice is that you can no longer hear the air noise in the overhead HVAC system, nor the three computers sitting right behind your head on the desk behind you. Then you turn on the iPod and find you can use a much lower volume setting. Not sure if that’s because everything got quieter, or because the iPod got louder. Even near-by conversations are muted. Hey, I don’t feel like punching the guy using his speaker phone to check his voice mail. Much. This is good! And no sore ear canal from ear buds that don’t fit very well.
There are a couple of downsides, though:
- I don’t think the bass response is very good.
- The battery compartment presses into my head annoyingly after a lot of hours of continuous use.
- I don’t know how long the battery lasts yet – that might be an issue.
- When you’re walking around, if you don’t turn off the noise cancelling you get a very loud wind noise in your ears. I have no idea why.
mod_rewrite deep magic followup
Turns out the solution isn’t to use mod_rewrite at all, but instead to use mod_redirect. Maybe not as efficient, but simple, clean and even I can understand what’s going on:
Redirect /blogs/pt/index.xml http://xcski.com/blogs/pt/feed/
Redirect /blogs/pt/index.rdf http://xcski.com/blogs/pt/feed/
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blogs/pt/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blogs/pt/index.php
</IfModule>
Getting there
When the Google Maps API was announced, David Megginson publically challenged me and other programmers to come up with a decent flight planning application that used it. Well, it’s not here yet, but RunwayFinder – a flight planning tool for pilots is getting closer. At least it’s a decent substitute for the “Nearest Airports” search in AirNav – you put in an airport id and it shows the ones in the neighbourhood as well.