Probably time to throw in the towel on the waypoint generators

For years now I’ve been providing aeronautical data for various programs – The Wayback Machine shows it existing in 2001, but I’m pretty sure I was running it before then. The site hasn’t changed much visually since then, since I concentrated on providing good data rather than prettying up the site. But I thought I was providing a good free service and it was worth it to people. I didn’t really push it hard, but I did politely ask for donations, through Paypal and at one time through the “Amazon Honor System” until Amazon killed that. And for a long time, I made about 1/4 to 1/2 as much through that as it cost me in hosting and data costs. But that hasn’t been true for a long time. I just looked at my Paypal history for the last 12 months, and I got two donations of $25 each, one of $3.32 and one of $1.13 (yeah, go figure). $54.45 in a year. That’s it. That doesn’t keep me in thumb drives.

Add on to that the fact that my source of world-wide data, the DAFIF file, hasn’t been updated since 2006 and it’s increasingly been a “US data plus some airport data from here and there”, and I’m worried about presenting this to the world as useful data for anything. I’ve always staunchly maintained that this is just to save you from a bit of data entry for flight planning and not a substitute for official data sources, but it’s just embarrassing to think somebody is going to be looking for navaids and waypoints in Europe, say, and not finding anything that’s still in use. At least airports don’t tend to move around much.

And because the data I have is getting stale, I keep hoping that people would provide feedback on the data I have, offering to provide data for their area or just letting me know if something is wrong. At one time I had a couple of people sending me their data sets which I incorporated into the database. (Although I did have one set of data for Australia where all the airports had the sign of their longitude reversed – I’m pretty sure I purged the last of that.) That was actually more important than the donations to me. It showed people were using the data, and cared when it was wrong.

So I guess what I’m saying is that I’m reconsidering if it’s worth doing this. I’ll still maintain the data for the CoPilot iOS app, that’s a separate database and thanks to Laurie Davis I get world wide data from Eurocontrol that that. But next time I get a data dump from the FAA (September 19th), I’m going to give some thought over whether to load it into both database, or just the CoPilot iOS one.

Sure, I’ll get right on that

A guy I know has started a new micropayments web site called “Kachingle”. It’s a pretty cool idea – you sign up and install a browser plug-in, and they use that plug-in to allow you to say you want to “kachingle” web sites that you think need some money, and once you’ve signed up to kachingle a site, they track how often you visit that site. At the end of the month, they take $5 out of your paypal account, and distribute it to the owners of the sites you’re kachingling, divided proportionally to the number of times you visit them. I have firmly believed for some time now that the web needs a micropayment scheme that works, and if this hits critical mass it would be an awesome way to do it.

However, right now it’s in the growing stages, and there aren’t very many people using it. Which means that sites like this blog don’t exactly make enough money to retire on it. Here’s my latest statement.

I have to love the juxtaposition of the amount ($0.08) and Paypal’s glowing description of what I can do with that 8 cents. “Spend the money online at thousands of stores that accept PayPal”? I bet not many of them sell things that are 8 cents including shipping and handling.

Am I the only person who thinks this way?

I have a hybrid car, which gives a constant read-out of your average fuel economy, as well as giving you little visual indicators while you’re driving of whether you’re driving it “right” (upshift/downshift indicators, and a big glowing ring around the tach which goes from green to blue if you rev higher or accelerate faster) and when you turn off the car, you get a bar graph showing how economically you drove it, as well as “achievements” and “levels” if you’ve been driving economically for a while.

But like all cars, your average fuel economy for the trip is going to be higher for a longer trip than a shorter one, because the first 5-10 minutes of the trip is warming up the engine and getting the cabin up to the right temperature, etc. So when I’m going for a short trip, like going out for lunch, and trying to choose between two destinations, I have this internal dialog where I first argue for the longer trip to keep the average fuel economy up, but then I have to forcibly remind myself that sure the average is higher, but so is the total fuel burn and it makes no sense to burn more gas just to get a better average.

Somebody told me a while ago that I have an “external locus of control”. I think I’m just a geek.

StackOverflow

StackOverflow (aka “SO”) is the best site on the net for asking and answering questions about programming. Not about the job of programming (there is another site in the same family) but specific problems in “how do I do this” in programming. One of the ways it became good and stays good is that when you ask or answer a question, other people can vote your question or answer up (or down) and you gain (or lose) “reputation” points. (In the early days of the site, I tried to get people to call them “XP” as we called experience points back when I played Dungeons and Dragons, but to no avail.) The points aren’t good for anything in the real world (except they’ve sent me a couple of free t-shirts because of my work there), but we geeks prize being ranked, and so getting more reputation is a desirable thing. Plus you get some more rights and privileges at certain XP levels.

Because I was active in the beta of SO, and it was in beta at a time when I was bored out of my mind at work, I have pretty high reputation. In the first year of the site, I was in the top 15 users, and I think I’m still in the top 150 or so. But when I look over my past contributions, I see a bit of a pattern – most of my points come from one of two types of responses: “Fastest Gun In the West” (FGITW), where I was the first person to answer a fairly trivial problem like “how do I count how many items in an array in perl” and “Crusty Old Guy Imparting His Wisdom To the Newbies” where I try to impart some of what I’ve learned in over 25 years of working in good places and bad places and places that leave you so bored you spend all your time on SO. There aren’t enough of my answers where I actually took some time and effort to research something, write some example code and test it, or generally did something that somebody else couldn’t have done just as well. And in a way, I feel like it’s almost too late to change that – there are so many people on SO answering questions that unless you have something really specific where you just solved a very difficult problem you were having on something very obscure, somebody else is going to have the same answer as you.

So these days I try to resist the urge to answer the FGITW type questions. Instead I’ll put a comment after the question, and I’ll wait for the first couple of answers and see if I have anything to add, either in comments on the answers or by directly editing them (one of the privileges of high XP I mentioned earlier). I don’t care if I get points for them any more, I don’t want points for those sorts of answers. The other thing I do a lot of on the site these days is “patrolling” – looking for spam, stupid questions, joke answers, and the like, and voting to close them, voting them down or flagging them as spam or abuse, etc. I have considered running for the position of community moderator a few times, but in the last couple of elections they’ve demanded that you have done certain things on the Meta site, and I hate that place.

But of course, now that I’m trying to resist the urge to get meaningless XP for FGITW, I feel like everybody should have had the same revelation at the same time as me, so I have to resist the urge to tell people off for doing the same thing. I was actually prompted to make this blog post because I looked at a question a few hours ago, recognized it as a FGITW type question, and when I waited for answers, discovered that the first two were people like me, with +50K in XP. Hey, idiots, we know you’re smart, how about letting somebody who needs some XP have those points and do something to improve the site! It seems so obvious now that I’ve had the epiphany.

Stupid Perl Tricks

I’m certainly delving into some depths of Perl I’ve never touched before.

I need to lookup a record in one table using a subclass of DBIx::SearchBuilder::Record, and depending on what it says in the “table_name” column, look up a record in one of several other tables, each one of which has its own subclass of DBIx::SearchBuilder::Record. And after some delving on the internet, I was amazed to find out you could put the class name in a variable when you “new” it. Unfortunately you still need to “eval” the require statement.

my $mainRec =
RTx::FooProject::Record::MainTable->new($cfHandle);
$mainRec->LoadById($main_id);

# Ok, here comes the tricky part. Try to get figure out the class name
# from the table name
my $table_name = $mainRec->table_name;
$table_name =~ s/^dsu/DSU/i;
$table_name = ucfirst($table_name);
$table_name =~ s/_([a-z])/uc($1)/eg;
$table_name =~ s/s$//;

my $subRec;
{
no strict 'refs';
my $fullClass = "RTx::FooProject::Record::$table_name";
eval "require $fullClass";
$subRec = $fullClass->new($cfHandle);
$subRec->LoadByCol("main_id", $mainRec->id);
$self->SubTableRec($subRec);
}

I literally threw my hands in the air in exultation when it worked. And then was rather painfully reminded of my recent shoulder surgery.