01 January, 2012

Getting to Soar Over Your Own Home

About noon today Eastern Time, I finished a "Discovery Flight" offered by Bob Miller Flight Training (BMFT). It's kind of on the expensive side, but it's really, really, really neat-o. Still...for ~$100, it was very much worth it for me. Think of it as somewhat extravagant entertainment.   A lot of my experience was like a first-person video game, basically with a goal and a challenge of how to accomplish it.  It just so happens though that the stakes are a lot higher!  Let me back up a bit so you, the reader, can appreciate the entire story.

It's unfortunate that I procrastinated at doing this for such a long time.  My mom got me a gift certificate for this flight for Christmas 2010.  Bob's rules are that one must schedule one's flight before or in the calendar year following, which meant I had a 31-Dec-2011 deadline.  Stupid me, seeing in the literature that it was advisable to schedule at least two weeks in advance, I thought part of the reason for that was that one needs to file a flight plan and have it approved before taking to the air.  Part of my procrastination was that I only had one goal in mind: get an updated snapshot of my neighborhood.  Our family has a black-and-white photo showing what it was like just after the houses had been built in the mid 1950s, and I thought it would be great to update that.  Other than that, I thought I should have some secondary goal in mind, such as the Buffalo waterfront, Niagara Falls, Ralph Wilson Stadium, or something like that.  As it turns out, I only accomplished the primary objective.

Another part of procrastination was I wanted to fly during temperate times, either spring or fall.  Well, western New York State ("WNY") springs being what they usually are, that window was relatively short, and filled with a lot of rainy days (being on the downwind side of Lake Erie and all).  And late this past summer, I was told of a work opportunity by my good friend Andreas.  I had been without a job and living on NY Unemployment benefits and savings since 21-May-2010, so when opportunity came a-knockin', I wasn't about to stay away from the door; I was going to remain ready to answer the call when it came.  I wasn't about to tell Andreas (who would be my supervisor), "hey, you know how you wanted me to start on 'X?'  Well, I can't, because I scheduled my Discovery Flight then."  I wanted the least possible resistance to hiring or to contracting me as possible.  Most WNY falls are not all that different than springs: not all that long in the temperate zone, and usually plenty of cloudy days, a few of which are rainy.

So, that brings us in this tale to mid-November.  It actually took until the last week in October to get all the metaphorical wheels lined up and spinning in synchronization; that is to say, reporting to work to the Corporate Parkway office complex in Amherst, NY.  This was greatly delayed (months) by uncertainty caused by the acquisition of the company employing Andreas by a rather large, international company.  All the rules surrounding contractors and new hires were being upset, redefined, and solidified.  So, corporations being the beasts that they are, all Andreas and I could do is wait for the rest of the company to make up its mind how to proceed.  Meanwhile, poor Andreas was suffering somewhat all the time from not having the extra help.  But once I had a chance to settle in for a couple weeks, I asked him if I might be allowed to take off a weekday so that I might go flying.  He thankfully agreed, just that I would need to provide at least a week's notice (so of course that fit well with Bob Miller's requirement of two).

Well...at that time, two weeks would be right around the US Thanksgiving holiday.  I didn't think that'd be the best of ideas.  The whole idea of asking for a day off was that it was unlikely to be others' day off.  And again, it was indecision on my part of a route plan which led me to delay until it was rather close to the certificate's deadline.  Besides...I was actually having a good time at my job.  I really liked the new challenges and was spending considerable time and energy (very much the latter) getting to know the new "environment" thoroughly.  Consequently, often there was little time or energy left for planning the flight and actually calling to make it happen.  It's the unfortunate human condition of some (like me), that we don't do something until we have to deal with it.  (In this case, it was the expiration of my certificate.)

Two weeks out, noone can predict the weather with any appreciable certainty or accuracy at all.  So although I had high hopes of flying on Fri., 30-Dec-2011, I got a call in the morning on that day.  It was an instructor of BMFT asking to reschedule due to low clouds.  Oh, well...these sorts of things happen.  I'm not a morning person, so asking for 9 Saturday did not appeal to me.  As it appeared to me, at least in my nonprofessional opinion, Saturday wasn't any better anyway.  So I basically asked for a 48 hour delay, which was midday today, New Year's Day 2012.

Oddly enough, on the night of 29-Dec, or perhaps very early morning 30-Dec, I had what turned out to be a somewhat prophetic dream.  I dreamt that although I was going to have the whole day off on 30-Dec, I still went to the office, ostensibly to do something or other before my flight; maybe it was to help fix something which went down is my vague recollection, or to go fetch the BlackBerry (BB) I was going to take with me for the electronic camera.  Nonetheless, I figured I might as well go to the office after the cancellation that day to earn some more money.  As a contractor, I don't get paid for days I don't go there, and poor Andreas was going to be there as the lone Telecom person.  Thankfully, it was a "slow" day anyway, and we spent our time getting a better handle on our Verizon Wireless/BB configurations, both on the BES and Verizon's Web site.

Yesterday evening though, in order to get a "flavor" for conditions today, I checked the Web page for the National Weather Service forecast for my area.  And after seeing a high wind watch for late morning 1-Jan through the morning of Mon., 2-Jan, I thoroughly expected to get another morning call asking to reschedule for another day.

Actually, I wasn't that far off the mark.  I did get a call, except asking for moving the appointment sooner.  The watch had turned into a warning, and that's exactly why my flight instructor was so suggesting.  We agreed on 10:30, which was an hour and a quarter away.  Having planned the drive both on my TomTom and on Google Maps, I knew it would take considerable time to get there.  I had planned on 45 minutes, which is the 1/2 hour (approximately) TomTom was predicting plus plenty of slack time for the nearly inevitable missing of the depature goal time.  I was almost done eating breakfast, and was pretty sure I could shower and otherwise get ready in around a half hour, so I said "yes."

As it turns out, indeed I did not leave until about 0950 ET.  But I still arrived on the flight school grounds at 1015 ET.  Someone in an SUV had been waiting there, and left as I arrived.  From the brief look at the driver, compared to a photo I had seen on the Web site, it looked like none other than Bob Miller himself.  He waved to me while leaving, and I waved back while parking.  Idunno...it was one of those intangible things of dreading that things were not going to go well that day, kind of like, I just arrived and the person who was supposed to take me up is just leaving.  It turns out that logistically, things did not go well.  Mind you, it was not horribly wrong, just mildly bad.

I sat listening to Wait, Wait, Don't Tell Me for a while.  I didn't need to listen intensely, because I had already heard most of it yesterday.  (I was unusually tired yesterday for some reason, so I was drifting in and out of sleep during the program.)  Well...10:25 rolled by, and I went to the door.  The deadbolt was locked, and there were no other vehicles in the parking lot.  Hmmm....no bell switch either.  So I waited another five minutes...still, no substantial change.  Figuring there could have been someone who parked behind the garage door, I also knocked; no answer.  So, I got out the ole company BB and look up the incoming call history on my Google Voice.  And I called back the number which called me earlier that morning.  I talked to my flight instructor, and he was confident someone named Matt would be there any minute now.

It turns out Matt was thought to have been flying from another airport (I forget; Batavia or Rochester) to Buffalo-Lancaster Regional Airport with the plane in which I was supposed to fly.  It caused a bit of concern when my flight instructor could not contact Matt directly, as if he were overdue.  I likewise started to feel concern for Matt.  But, as it happened, it was just a little communication misunderstanding, in that Matt thought it was a flight tomorrow at noon which was being moved to 10:30. I was relieved to hear this when my flight instructor called again at about 1100 explaining that.  He said if I could just hang tight for about 15 minutes, we could get it in today.  At that point, I have to say I expected my flight instructor to get there and say the weather once again was going to be unfavorable, as the mostly sunny skies had turned to mostly cloudy and downright dark, and it was getting close to the time when the high winds were expected.

But as it is, a little less than 15 minutes later, a pickup pulled up, and out hopped a little girl, maybe 8-10 years old, as well as flight instructor and dad Dave (I think).  We shook hands, and went into the office.  Dave asked if I'd mind if daughter Jess would come along; I didn't mind at all.  I filled out a standard release form, we fetched three headsets, and headed next door to the airport in Dave's truck.

What I can tell you is a Cessna 172 Skyhawk SP is a really space-constrained aircraft laterally.  One is seated really close to the door, and  there's not a whole bunch of room from one's right shoulder to the left one of the flight instructor.  There is a heckuva lot more room front to back.  The physics of flight, and I'm relatively certain the constraints of materials cost, really don't lend themselves well to having it any other way however.  What I was thinking to myself as I was standing right in front of the port wing was, one, this is small, and two, there is such a miniscule percentage of people who get to see any aircraft this close-up first hand.  Most people's closest encounter would be a jetway at a commercial airport.

After getting out of the hangar, we taxied to the (roughly) east end of the runway.  When we got there, another aircraft was on what I guess would be called final approach.  We were facing east on the north edge of the runway as this plane was flying west, so we would be on what sailors would call the starboard side of the landing aircraft.  Dave remarked he hoped they didn't miss, and I remarked, at least not to starboard.  Nope.  Pilots I guess don't necessarily say "starboard" and "port;" it's just plain left and right.  I have always liked the less ambiguity of starboard and port, as it is a relative description independent of the observer's location and orientation.  I was sort of surprised aviators wouldn't use that.

Considering our "mission," the protocol and procedure called for us going slightly east then north of the BNIA.  While enroute, the view was amazing.  I was thinking to myself that it was kind of foggy down there.  Well...it wasn't so much fog as it was raindrops.  Soon droplets were impinging upon our windscreen.  Dave had said on the ground something about the view being different in the rain, and I could understand (as one's view is different driving a car without using wipers during rain).  But thankfully, it was but drizzle, and the view still very good.  It is one thing to see rain coming down from overhead, another to see rain falling fom clouds in the distance, but  altogether quite spectacular to see it from the side in an aircraft.  (Well, admittedly, it looks a bit like watching rain falling from clouds in the distance...but still, just about everything looks better when closer.)

We then made two passes over my neighborhood, both from north to south.   This was nothing short of absolutely great.  The first time, I was getting my bearings.  As anyone who navigates in the northern Cheektowaga/southern Amherst area can attest, the landmark which was most identifiable was "the big blue water tower" right near the intersection of I-90 and I-290.  It took me a minute and some questions to Dave to get my orientation straight.  Sure, one of those three major roads is I-290, and the other two I-90, but the key is...which one is which?  I wish I would have paid more attention to orientation all the time, and I suppose I would have to if I were to continue on and earn a pilot's license.  After making out the I-90/Route 33 interchange was, I was then able to realize our heading was roughly 180, at about 300-500m north of my house (not leaving a whole lot of time to get the BB camera ready/aimed).

It definitely was great to go around twice though.  I also got to see Maryvale High and North Hill Elementary like I'd never seen it before.  It's just not nearly the same seeing it from the ground as it is from the air.  I mean, not even Google Earth or Google Maps satellite view is quite the same as flying over it in a Cessna; it's just lots better.

We then circled around, and this time I was able to get a better photo of the neighborhood.  I was able to point out to my flight instructor the north-south Lochland, the east-west Huth, and my street.  I do have one slight regret, not asking Dave to fly more west.  We really flew further east than I thought would have made a good photo.  But...there's always the possibility of a next time.  I think I might want to do this again.

Well....I must say, then came the really exciting part, in a good way.  As you can imagine, with a high wind warning on the way, it wasn't exactly smooth sailing.   My flight instructor pointed us back towards the BLRA, and as we had discussed on the ground, we executed a protocol not too unlike the TCP SYN, SYN-ACK, ACK handshake, something like, you take the controls, I have the controls, you have the controls.

As many would expect, rotating the top part of the yoke counterclockwise banks port (or left), rotating clockwise banks starboard (or right), pulling back on the yoke raises the nose (gaining altitude, at least in the short term), and pushing dives.  Having the rudder on pedals I guess completes your complement of basic aircraft control.  I'm going to guess the rudder is the most complicated part, because Dave took care of that.

It's at that point it seemed to turn into an amazing video game.  Dave states simply, see that building over there in front of us?  We want to fly towards that.  In the winds and turbulence we were experiencing, that was fine; I really liked the challenge, even though it was simple.  I can tell you in a 172 Skyhawk, the controls are really sensitive.  It doesn't take much rotation, push, or pull on the yoke to do a lot.  And that's good; it was really necessary to have quick correction to keep us on course.  I can't tell you enough: try it.  As I wrote, even though it was simple, it was just a BLAST!!

Some distance out, Dave told me, I don't remember exactly...but the gist is, it would be best to have him fly now.  I decided it was probably best to execute the same aural protocol in reverse, and asked "you have the controls?"  to which he of course responded "I have the controls."

It was then a bit puzzling.  Not being that aware of our orientation (I was concentrating quite a bit on flying towards that large roofed building), we actually passed over the BLRA roughly perpendicular to the runway.  I kept hunting visually for something like a landing strip in front of us and not seeing it.  When we were about half a minute or so out, it finally dawned on me the strip was oriented left to right.  Dave said something about judging the winds for landing; that was cool, because it didn't make sense at the time to be heading that way.

So we banked port and circled around.  I remember distinctly maybe a km to a km and a half out that we seemed to be oriented in roughly the correct heading, maybe 10 or so degrees south, but we were considerably north of the strip.  I guess that's once again the Joe Ordinary Citizen's concept of flying, that coming out of a turn like that you'll be oriented straight towards the landing strip.  It's sort of ingrained into our brains from movies, TV, and maybe once in a while during commercial flights we take.  In retrospect, it seemed something like getting the clock on the PBX at work to sync up.  I'm guessing we had to aim north of the air strip while "up there" in order to be positioned parallel with the air strip by the time we actually got to the air strip.

Based on watching the landing of one plane up close and personal, I was a little surprised at us.  It looked to me like the plane we watched at taxi time came down almost right in front of us.  I remember it was quite a few seconds and distance after clearing the end of the runway that the landing gear wheel only (say) 3 meters away from me touched runway.  Then about a second or two later, I could feel the one by Dave hit.  (BTW...despite all the weather going on around us, the touchdown was quite gentle...kudos to Dave for that.)  But as it is, I had absolutely nothing to worry about; there was "tons" of runway ahead of us before we started heading for the hangar again.

One thing I will say for flight instructor Dave: he's raising his kids right.  Jess actually said thanks for letting her come along.  Just as Dave had promised, she was quiet and just enjoying the whole experience along with us.  As I was standing on the passenger side of Dave's pickup, really just waiting for Dave's cue to get in, Jess opened up the door for me and encouraged me to get in and out of the weather.

I'm really quite jazzed by all this.  I'm thinking I definitely have to set aside some time and money to go do this again.  I'd really like to study, which is made a lot easier by this Web site set up specifically to teach the novice how to fly, and do more than just practice straight flight (although it was a thrilling challenge as-is today).  But this time, I'll know more what the program is like, and can choose a lot of things more intelligently (as well as picking a warmer time of year!).

UPDATE 07-Jan-2012: I have put together a very simple Web page with in-flight pictures.

English is a difficult enough language to interpret correctly when its rules are followed, let alone when the speaker or writer chooses not to follow those rules.

"Jeopardy!" replies and randomcaps really suck!

Please join me on Google+!

One Week's Adventure into Getting Accurate Time

Unfortunately, for a while at the company where I work, they had a falseticker in their ensemble of  NTP sources, one which was "broadcasting" a time in mid-October (for a real, actual time of late December).  What this seemed to do is slow down the apparent time of the PBX (it was behind), and occasionally our PBX NTP source would go into the "unsynchronized" state (stratum 16).  This would cause the PBX to slow down its idea of the progression of time, losing on the order of a second or more every hour.  Overnight, the time displayed on desktop phones would be 20 or more seconds behind.

Avaya PBXes are based on Red Hat Enterprise Linux these days, complete with ntpd.  Once the kernel clock had been slowed down, the LOCAL reference clock of course would be slow.  And due to our main NTP source (which we've been told is a router's address) going to stratum 16, the selection algorithm would often choose LOCAL.  What's somewhat worse is that the pair of systems, the active and the standby, are in a peer relationship.  When one of them chooses the LOCAL reference clock, often the other will choose its peer rather than the server (router) source.  Admittedly, the source was occasionally at stratum 16, but I wasn't understanding how a stratum 10 or 11 source could be chosen in preference to one at least most of the time claiming to be stratum 2.  The reachability bitmask from the ntpq output didn't look good either. I had just assumed that the report of stratum 16 was due to ntpd marking it so due to lack of good connectivity (that is to say, packets being dropped or something).

It's also true that the Windows domain under which we operate would be radically off correct time as well.  I can only imagine that the AD controllers likewise were having trouble believing the time the router was handing out, and therefore also started to drift either according to the kernel PLL/FLL or their hardware (CMOS) clock(s).

Eventually I noticed that instead of the router being at stratum 16 for a few minutes, it was staying there for over an hour and a half. It's then I started paying closer attention to the runs of ntpdate that I had doing to judge the offset between our NTP source and the PBX.  I had assumed the router was being marked stratum 16 because of dropped packets, but "ntpdate  -d" shows the statistics right then and there, independent of everything else.  If an NTP source itself (such as that router) is declaring itself as stratum 16, ntpdate will show that directly, not due to some unreachabiltiy notion.  So I wrote an email to the Help Desk stating we could be having NTP troubles.

The network admin who would be responsible for that NTP source sits on the other side of a cubicle wall from me.  He likewise was concerned about connectivity/dropped packets, and frankly, I wasn't 100% convinced at the time the stratum 16 was coming solely as a result of the router declaring itself so; I was still maybe 5% unsure and that it could be, as he suggested, some packet drop problem.  So as he asked, I started some pings from our (Solaris) CMS system and the PBX.  When one was perfect (no missed packets at all) and the other missed only 2 out of 500 (negligible), he spent some time looking further.  He found the falseticker and removed it from the configuration.

Eventually, the routers were getting only good NTP times.  As is the very careful way of NTP, it took a few hours, but eventually the address we were told to use for NTP was not only synchronized, but also reported fewer and fewer times, and then no time at all at stratum 16.

The challenge now was how to get the active PBX to synchronize.  I was pretty sure it would not do so automatically because of the large, 25 second-ish difference between its LOCAL reference time and the router's (correct) reference time.  Remember, both the active server and its standby were slowed way down from being told to do so for days.  We really didn't want to step the time directly on the active, as this would mess up statistics being collected continuously (about ongoing calls, queue times, etc.).  So what I did in hopes of righting the ship so to speak is step the standby.  This in theory would be less risky, as it's doing what: just standing by!  The hope was to get the active to slew its clock forward, and eventually catch up.

Well...not so much.  Unfortunately, stepping the time in Avaya Communication Manager (CM) is kind of clumsey.  You authenticate to a Web server, and you submit a form whose resolution is only a minute.  What'd really be preferable is to be able to log on as the superuser ("root"), kill ntpd, use ntpdate to step the clock to something really, really close, and restart ntpd.  Not so with CM; it's not really easy to become superuser.  Sure, they have a PBX admin group called "superuser," but this isn't like POSIX-familiar people refer to that term.  CM has a very fine grained setup of sudo so that one can "sudo sat" for example to start the System Administration Terminal to run sat with the apparently requisite superuser (in the POSIX sense) permissions.

So, I was hoping being in that NTP peer relationship would have some weight when it came to keeping the active server at the correct time.  So I stepped the time best I could with the Web interface to about within a half second or so of actual time.  I thought, this is great.  In short order, everything will be back on track.

Not so.

What really happened is that due to the (in)frequency at which ntpd polls its sources, the LOCAL reference clock on the standby slipped to around a second and a half behind the router (now good) reference time.  So it still chose its peer, and stepped it further behind, back to 25 or 30 behind actual.  I thought, OK, I can do this; in watching the secondary (standby), I saw it "almost" choose the router's time because the LOCAL clock and it were almost the same after 10 or so polls.  But it had slid before a total "lock."  So the trick here must be a little anticipation, stepping the clock a COUPLE OF seconds ahead, so that by the time it "slid" backwards, it would be close enough to lock on.  It was a matter of sort of "leading the target."  So once more I stepped the clock with the Web interface, except a couple seconds "early."

That, as it turns out, worked fairly well.  Faster than I ever expected otherwise, the secondary locked on, and "persuaded" the primary to step its time forward, and also restart the NTP algorithms, thus polling more frequently for a while.  Unfortunately, it did not cause a slew as I had hoped, but at least by the time the standby's ntpd caused the primary's ntpd to step the time, it was "after hours" Eastern Time, therefore somewhat less disruptive.

Eventually, a few days later, it looks like all three of the router, active, and standby times are not only accurate but proceeding at the correct rate. It looked for a while to drop out of sync now and again, but over the long haul once the ticking rates got adjusted, everything seems to be humming along normally.   The FLL has transitioned back to PLL I'm pretty certain.

The lesson of the story is, sometimes you have to be pretty good at anticipation in order to hone in on a target.

English is a difficult enough language to interpret correctly when its rules are followed, let alone when the speaker or writer chooses not to follow those rules.

"Jeopardy!" replies and randomcaps really suck!

Please join me on Google+!