I really should read more carefully and take advice from those more experienced than I. There are indeed all sorts of warnings when upgrading a Lucid Lynx to a Precise Pangolin about backing up and so on. Well...as the system in question isn't used a whole lot (it's unstable because the processor context gets corrupt because of a quirky HyperTransport link), I thought, what the heck, just forge ahead and do it; if it breaks, it's not like you lost a whole lot. Well, actually, I keep forgetting how long tweaking takes, especially tweaking the boot process so that WoL works and the console framebuffers are maximally sized for the video controller and font, and are initialized to green on black in the initrd really early in the boot process. The hack that nudged me to write this post will come...please read on to the end, where I tell you about my shazam moments.
Nonetheless, I forged ahead, and did an in-place upgrade. Yeah, it looked a little scarey in that the "before blurb" said several of the packages I had installed wouldn't carry over, "but the community might support them." "Uhhhhhhhh....OK," I thought a little nervously. I knew it was trouble of nearly the greatest sort when in several places it threw errors.
In a recent phone conversation with one of my friends, I heard the unfortunate news that yes, Precise does quite well, even upgrading LTS to LTS...if you have a very generic, default installation. Vary from this in some cases just a little, and you're in for a world of hurt. My usual setup is far from typical. For starters, it's GPT, not the "traditional" MS-DOG (sic) partition table scheme. I always want my bootloader and boot files on a simple, uncomplicated partition, so those are the first two (as GPT and GrUB play together to put GrUB linearly in its own, "special purpose" partition; "bios_grub" as parted puts it). Similarly, the root filesystem gets a parition all its own, to make recovery hopefully as uncomplicated as possible, and a fsck of same fairly speedy. Similarly, the swap and /var/log paritions are plain partitions to make things as efficient and straightforward as possible. Everything else gets partitioned as LVM PE(s), lumped into one VG, an divvied out to /opt, /usr, /var, /var/tmp, and /home LVs with varying sizes as I think appropriate. Putting them into LVs makes it easy to resize filesystems and reapportion from one to the other if I guessed wrong while setting up.
As you may have guessed, an in-place upgrade went rather poorly. After rebooting the system, it would sit there like a lump waiting for filesystems to become available, and after a while it told me root wasn't there and gave me options to skip trying or to fix things manually (followed by a reboot). But the strange thing is, / was mounted from /dev/disk/by-uuid/something, as the kernel command line has root=UUID=something. OK, next go-round (because a reboot was I guess mandatory at that point, no option to just continue) I just said skip, and it complained about /tmp being absent. Again, I went into manual fix mode, and / was fine, so I fsck'ed it and remounted it rw. To no avail; didn't matter what was tried to coax it into thinking filesystems were OK, it was convinced my system was all in shambles.
The same friend told me about being able to boot into rescue mode, and automatically fix up things. This sounded reasonable because he was talking about a regen of the initrd and reinstalling the bootloader. So I tried that. Naw...so much for the Rescue Remix, or the Desktop installation media. Neither was really any help, even after trying to upgrade again. What really screwed the pooch was that I saw it emit a message about "removing all files from /usr "...frak! There goes my build of BZFlag, in /usr/src. I tried to abort, basically by shutting down/rebooting. Then the system wasn't recognized anymore, the "upgrade" option was gone. Sigh. (Re)install it was then.
Unfortunately, that had similar, error-laden results as trying to upgrade, with no automatic progress after rebooting. I then went and grabbed the Xubuntu amd64 alternate install ISO from BitTorrent. I think it may be key that I got the alternate, which is kinda geared towards "Martians" like myself. And another unfortunate thing with Ubuntu and its derivatives like Xubuntu is, installations often do not work (as in making an autobootable system) unless the options to format all partitions in question are given. The only thing I left totally out of the installer was homelv. At least all those personal Xfce settings, .emacs, .inputrc, .profile and the like for my "ordinary user" would survive and not have to be tweaked too much. Not so lucky was root who, of course, is stored at /root, not /home/root. But, since they're one in the same person (myself), it wasn't too bad just to copy dotfiles and such from my normal user on /home.
Finally, basically after a total wipeout (except as noted for /home), I had a system which would autoboot to a login prompt and an Xorg server which would run. The first graphical login under my normal user asked me about migrating my Xfce settings to the newer version, and all that was pretty much fine. Root was another story however.
Under Lucid, I liked gdm, so I installed it. Unfortunately, gone was the GUI widget which I used to set up autologin (after 5 secs). In fact, logging in as Other... and specifying root and root's password would sometimes hang gdm. In fact, until I installed gnome-desktop-environment, the greeter's cursor would never change to a pointer, just stay at the "I'm busy doing something" variety. Worse yet, once the greeter wedged while attempting to log in, switching to a console and doing stop gdm and start gdm wouldn't help one wit, only a system reboot seemed to fix it. God and deep GNOME DE hackers only know what the frak it wanted/was waiting for and never got.
The next surprise was that similarly, the "users and groups" widget was thoroughly nonfunctional until gnome-desktop-environment was installed. It would bring up a window all right, but everything in it was greyed out...everything. In fact, only xkill would make it close, not the WM, no keystrokes such as Alt-F4....nuttin'. Well, not strictly nuttin'; a logout would kill it, but in doing that, it would be restarted with similar nonfunctioning results when logging back in...so it was wise always to xkill it before logging out.
What was really weird compared to previous releases is that individual greeters weren't configured by "Users and Groups." Both the ones I had on, lightdm and gdm, were affected simultaneously. That was a bit disquieting, as I was expecting only gdm to be affected, so when I used dpkg-reconfigure to revert back to lightdm, it was autologging in too. This implementation chooses to have an "on/off toggle button for autologin" under each user. And incidentally, I never did get back into a functioning "users and groups" GUI widget to undo the autologin effect; I found the conf files by recursively grepping through /etc for my logname, and editing them manually. It was also somewhat of a surprise that neither of them seems to implement a timeout mechanism. I tried adding that into the lightdm.conf according to some people's postings about that subject, but to no avail.
I even got into a state where start gdm would flash the greeter on the screen for maybe a half second, but then flip right back to the console on which that command was given. So much for autologin, and indeed for the hypothetical stability for a(n) LTS release.
Eventually I just gave up, and uninstalled anything GNOME related. I had read so much about how people just hated it (the new v3) that I figured it really wasn't worth any hack time to get it to work right. I did however try the v3 shell for one login session (ironically chosen from lightdm). I will say it's sucky, but not as bad as the opaque Unity. At least with GNOME3 shell, it's still tree-oriented, with (as I recall) two options of Activity and something else at the top level. Then activity categories show up along the right of the screen, and selecting them causes the tree to be descended. But just like the sucky Modern UI (or Metro, or whatever they're going to call it this week) and Unity UI, the programmers of it are deluded into thinking a tiled interface is appropriate for desktops. Well, maybe "inappropriate" is too strong a word, maybe annoying by being aesthetically displeasing would be a bit more accurate. I somewhat understand not wanting to program (or use) two UIs, but a workstation is not a tablet, nor a tablet a workstation. There's no particularly good reason to jam the tablet interface on a desktop. Microsoft are about to find this out in the worst way with Win8 right soon.
What I'm the most proud of figuring out today though was why video initialization within the radeon module seemed to hang. After all, there wasn't this hang before I set about getting the radeon module to load sooner in the boot process. As I alluded to earlier, one of the things I like to tweak is getting the framebuffer driver running and the screen to green on black as SOON in the boot process as possible. That's one of the reasons I had studied the initramfs-tools package thoroughly. I put in hooks and scripts which would copy the fb modules (which happens to be integral to the radeon kernel module) into the initial RAM disk, as well as setterm, fbset, and setfont. As I wrote, I want this initialized ASAP, so I put it into the init-top section. The big downside, if you're not really, really careful, is that if vid init doesn't go particularly well, you're mostly blind until networking and sshd start, if they start at all. That's where I thought I ran into big trouble, as in, back possibly to reinstalling.
I was just getting ready to take the 8GB flash drive I used to boot the installer and (re)insert it into a USB socket when the monitor came alive again. My, that was a bit encouraging; it didn't wedge completely, just it was problematic for some reason because it eventually finished. So...I went into the grub defaults file, added a console=ttyS0,... part to the kernel arguments, updated grub, hooked up a serial cable to another workstation, and rebooted.
Shazam. It was getting to some part in the radeon module initialization where it was trying to download microcode of some sort, and timing out after a very long pause (like two minutes or so). With due deference to Yogi Bear, this is where the "smarter than the average hacker" part comes in. It's not necessarily "what changed," which is the perennial troubleshooting favorite; we know what changed: the initrd. It eventually came down to, as most engineering sessions of this sort do, what's the difference between when it was working fine and now? I have run across this sort of thing somewhat frequently in the past, usually something like the difference in environment variables between interactive sessions and cron jobs. That's when the second "shazam" moment came: it's so early in the boot process that udev may not be running! The tipoff was the eventual message that the load from some file within /lib/firmware wasn't loaded. See, not only does udev make things appear and disappear from within /dev due to things like USB flash drives being inserted or removed, it is also the agent which initiates a lot of the firmware loads. I know this from watching my MythTV with a PVR-500 boot, which pauses for about 7-10 seconds per tuner.
Under Lucid this didn't seem to be an issue. However the radeon module happened to be programmed, or perhaps even because of a slightly different bootup, it worked without any special attention. This fix was as simple as adding a "udev" under PREREQS in my script. That ensured firmware-loading udevd was running before even trying to initialize the Radeon video controller. After that tweak, it was loading lickety-split.
One last thing: the terminfo files are now under /lib these days instead of /usr/share, and therefore on the root fs? Really? Seriously? Sigh...whatever. This is kind of required for setterm to do its work, it needs to know how to work with the terminal type linux. Therefore one of my hooks had to copy it into the initrd image.
Instead of commenting here, direct all comments to Google+, preferably under the post about this blog entry.
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 one of the fastest growing social networks, Google+!
Hey, you EU folks: there's some cookie laws which stipulate Alphabet/Google (owners of Blogger and Blogspot) needs to disclose some stuff to you, which, unfortunately might not show up if you have JavaScript disabled. It's not my fault they're that stupid, that they'd require JS to be on to display that notice, but whatever. You have been forewarned there may be some cookie monkey business going on which you might not like, and Google informs me it's my responsibility to tell you about that.
04 September, 2012
06 August, 2012
A Journey Into One Car's Purchase and Repair
Somewhere around 3 months before writing this post, I pretty much stopped driving the 1998 Lumina I have had since about 2004. As you may know, on Friday, 6-Jul-2012, I drove it for the last time to West Herr Used Car Outlet (which I'll reference as just "WH" later), and bought a 2008 Hyundai Elantra from them. It was basically functional, but there were a couple of problems with it, each with workarounds. For your entertainment (and to a certain extent making you a more informed consumer) I will write about my experience.
I had gone to WH because they had one of the less problematic Web sites of the ones I had visited (but still in need of work, mind you), and because one of my dear friends, Matt, had talked about his positive previous West Herr experience, although not specifically with the Used Car Outlet. They had two in which I was interested; Plan A was a 2007 Corolla, and Plan B was a 2009 Focus...but I had to fall back on Plan C, which was the Elantra. Plan A was sold by the time I got to WH, and Plan B turned out to be uncomfortable for me to sit in due to my height, and apparently seat height was not adjustable. Besides....many Fords these days have this utterly annoying characteristic of locking all the doors once underway, as if I'm not adult enough to do it myself. Also not in its favor was that the onboard computer's display showed an average of only 18 MPG, despite its EPA estimate being in the mid 20's. So, looking around the lot a little, and primarily where the Corolla used to be the last time I saw it, I saw a similarly colored car, slightly darker, with a city MPG rating in the target I was seeking (the mid 20's). So I figured, what the heck, give it a test drive.
I intuitively thought when I first opened the door, not even with key in hand (just trying it out for size/fit), and the warning chime came on, that this car could be problematic. But I figured, let's soldier on. I saw the "door ajar" lamp in the dash light up and thought it was plausible this was normal behavior. It seemed OK(ish) for feel, so I went inside to ask for a test drive. They were a bit busy, and Ray Snyder, Sales Manager, assured me someone would be with me shortly. Sure enough, within a few minutes, one of the most personable and knowledgable salescritters I ever met, Ron Slisz, was able to get a dealer-class license plate and the key for this Elantra. We took it around E. Amherst a little, and while not as comfortable nor powerful as the Lumina I was used to, I thought, "this will do."
A downer in this process is the fact that WH only credited me $350 for what edmonds.com told me should have been at least $1000 for my Lumina. But I just wanted it all to be over with. I had no energy at the time to argue it. In retrospect, I should have said "hold it right there, skippys," and taken it next door to Auction Direct USA. They advertise on radio that they will write up a purchase offer good for 5 days. They may have even bought it so that I could put the money towards this Elantra.
There was another particularly annoying aspect, the $75 fee I was charged which was essentially a convenience fee for WH acting as my DMV agent to register the Elantra and transfer my plates from Lumina to Elantra. Well...what can I say? Even the NYDMV site mentions this fee. In the plate transfer aspect, salescritter Ron must have read my mind. He got out West Herr plate frames, and had one or two near his desk, but none made it onto my newly purchased car. I would have removed them anyway.
To WH's credit, they are foursquarely behind making this Elantra as it should be (mind you, not perfect, just major and minor functionality that one would expect). It was sold as a "value car," meaning they don't intend to make it perfect. For example, they purposefully didn't repair the paint blemishes/scratches, in order to sell this to me more cheaply. We knew at the time/point of sale that the keyless remote entry was not working, and the working theory at that time was the transmitter (keychain fob) is defective; a new one would be ordered. Of course, being a Friday evening, nothing would really be accomplished until Monday.
That pretty much ended my 4 or so hour day at a dealership. I'm glad I brought my Android tablet with me; it provided lots of entertainment, and allowed me to change my insurance easily. It also allowed me to post to Google+ to tell a little bit about my day. I didn't think it would take as long as it did, and I kind of apologize to Kevin and Pam, who I did not send a "decline" for their invitation to their annual party.
After the deal was done, I headed south to the Aldi in the plaza near Transit and Main. It was there that a kernel of an idea about why the chime was not silenced came to me. I pressed on the switch to secure all the locks. As a humorous aside, my first guess was wrong; it was exactly opposite the Lumina in that pressing the bottom of this rocker switch opens, not locks. So, realizing this is backwards, I rocked the switch upwards. Initially, all the locks locked. But then about half a second later, the driver's door unlocked. So I pressed the switch again, and this was perfectly repeatable. Out of curiosity, I flipped the lock lever instead of pressing the switch. Same thing; half a second later, it unlocked itself. I held it. The lock solenoid clicked a few more times, then the controller gave up. It was then the chiming made sense; the most plausible explanation was that the ignition lock cylinder's sensor to know when the key has been removed is defective. This would cause the chime to remind one to remove the key, and the controller programming is trying to prevent the (stupid) driver from locking him-/her-self out of the vehicle. But having never owned an Elantra before I still was not 100% convinced I had the correct diagnosis. It was not insecure, in that if the key is inserted into the door and rotated in the proper direction, it will lock. This too was opposite the Lumina, in that for rotation towards the front, Luminas unlock, Elantras lock.
I also noticed while trying to put my Aldi groceries in the trunk that the key would insert, but would not rotate. When I got home, I sent an email to salescritter Ron telling him about this trunk problem, and very much to my surprise, within very little time I got a message back, sent from his mobile phone, that I should just look on the driver's door for a trunk release button. Boy, that made this complete; I had an easy workaround for everything until all could be repaired.
Also when home I went to the Hyundai Motor America (HMA) site to get a PDF of my owner's manual. Who wants to search visually through a paper manual for something when a computer can search for me, and point right to it? I have one for 1998 Luminas for that very reason. The first thing you'll notice in this scenario (should you go through it yourself) is that they do not have PDFs available outright. You must register with their site with a vehicle's VIN, and log in. Then you may download a manual. And I didn't actually know this until after I used their "contact us" function on their Web site, essentiallly asking, "where's your PDFs?" and they sent an email reply stating one will see this after logging in. If they have this on their site somewhere, I didn't see it (point being, it's non-obvious).
Unfortunately, there is very little to gain by doing this either. One would hope that if I provided something as specific as a VIN I would get documentation specific to my VIN...no such luck. There are plenty of asterisks in this e-book with the obligatory explanatory asterisk at the bottom of such pages saying "* if so equipped". I am very glad one of the (mis)features listed does not apply to mine, the locking of the doors after travelling over a certain speed.
The next HMA slap in the face is their site has all sorts of JavaScript and Flash, which, of course, like wayyyyyyy too many sites, does not tell you JS needs to be enabled for it to work fully/properly. There are many, many reasons utilities like NoScript and NotScripts exist, with which I will not bore you, but suffice it to say that it is just so exceedingly easy to do, it is pointless NOT to point out that JavaScript is disabled. But that's not even the worst. Of course, almost all users of these security tools realize this, and temporarily enable JS. So what does the HMA site do then? It uses styles to pop up a pseudowindow (as I like to call them...basically using visibility, opacity, and z-index tricks to render boxes in front of boxes). This pseudowindow is telling me the site should be viewed in Internet Explorer such and such, or Firefox blah, blah, blah. That's a frak of a thing to tell your customers or potential customers, that you don't like their software of choice. Gee, what a concept! Just stick to Web standards, and then you don't have to care so much what their user agent (UA) is. Also, don't try to lay out the page to the pixel, and by-and-large you also shouldn't have to worry about the precise CSS vagaries of UAs. This is also not to mention Adobe themselves have stated that Flash is a deprecated product. It's never been available for iOS (e.g., iPad), soon not to be available for mobile platforms (smartphones, tablets, etc) in general, and The Tech Guy Leo Laporte even mentioned this past weekend (5-Aug-2012) eventually not on desktops either.
So after downloading the documentation I started to skim over it, and then read certain sections more in depth. One of the things I eventually came across was that the fob is ignored if the key is in the ignition. This solidified my diagnosis, as this is exactly the behavior I was experiencing. So I sent another email to Ron the salescritter with a copy/paste of this from the PDF, and when we next talked about effecting repairs, he concluded the same as I did, that the likely cause was a faulty key sensor, and not a defective fob. It turns out that despite Kia being part of Hyundai Motor Group, the West Herr Kia shop is not prepared to handle Hyundais, and a referral to a nearby Hyundai dealer/shop would be necessary. In this case it was Transitowne Hyundai (TTH). They too thought this was a plausible explanation when Ron told them about that part of my email.
I called TTH to arrange for repairs, and was given an appointment for Thursday, 12-Jul at 11:20. Wow, such precision. Maybe I'm just thinking too much, but I would guess they tend to do this to steer expectations. If given a time like 11:00 or 11:15, I would think most people would tend to figure around 15 mintues of slop might be expected, but with :20, it's probably more like 5 minutes or less. I can tell you at least with my experiences so far, any appointment times are folly.
Admittedly, I arrived a little late, around 5 or so minutes; let's just say my gastrointestinal tract didn't know anything about appointments and resisted my attempts to be on time. When I arrived, it looked as if every single repair bay in the garage was tied up. And I spent about 4 or so hours there.
I did not know what to expect, so at the last minute, I left my tablet at home, but I brought a pocket radio and earbuds for my weekdaily dose of EIB. In their waiting room, they also have this (what I would call a) "leader board" wall-mounted flat screen computer monitor, with a table of customer names, service advisor's name, status ("arrived," "in progress," "awaiting parts," "ready," etc.), and expected departure time. At no time did anything like "Joe Philipps," "Ron Slisz," "West Herr," or anything else which would apply to me appear on this system. And I must have been in the restroom if/when they came looking for me in the waiting room, because I had to go to the service counter to find out what the deal was. I saw plenty of other customers who were fetched by the repair counter people. Who knows, maybe they were just about to come my way when I went their way.
After their considered diagnosis, TTH concluded the trunk lock assembly and the body control module (BCM) would need to be replaced. Again, I don't know specifics about Elantras, but that sounded like a plausible explanation. Maybe the existing lock was just irreparably corroded internally. And I don't know what things a BCM would control. So, TTH tells me they will order parts and give me a ring when they arrive.
Even more interesting, when I was there that day, while describing my amateur diagnosis about the fob not working and why, the service counter person remarked that this was incorrect; the fob ostensibly would work, contrary to the Hyundai-supplied documentation. Aw, heck...this wouldn't be the first time I've seen reality at odds with widely distributed documentation. Take the configuration of OpenLDAP for Ubuntu 10.04 for example. Many online references at the time would talk extensively about entries in slapd.conf whereas in reality this version's configuration is within the LDAP database itself.
An inordinate number of days pass, until Monday, 23-Jul to be precise. So I called TTH service to see what's what, and to ask how long it takes typically to acquire a BCM and lock cylinder. At this time they told me that the parts had arrived Thursday, 19-Jul--about one week; not bad. But somehow the call did not go out. I guess it's no big deal because I had very easy workarounds. I understand; this sort of thing happens from time to time with service businesses, it's just that I was the not-so-unlucky guy that didn't get called. So during that call I arranged for installation 11:30 Wednesday, 25-Jul. This time around they knew this was going to take a very long time, and they offered to take me somewhere I might want to go. I declined; I brought my tablet this time, and trust me, that can entertain me for hours, given WiFi access. And TTH does indeed have a WiFi access electronic ticketing system good for 3 hours at a time.
So...five and a half hours later, having listened to EIB via TuneIn this time, and watching the "Biggest Warship" episode of "Build It Bigger," and an episode of "MythBusters" ("Barrel of Bricks") via TTH's DirecTV, they came to me again to tell me they're done...for the day. Again, except for feeling like I sat in a walk-in refrigerator, passing the time there was fine because I wasn't doing anything particularly different than I would have been doing anyway...that is to say, EIB, Web browsing, or watching something on my MythTV. In fact it's arguably better spending TV watching time there, because they get channels (like Science that I watched) that I don't get at home. The news isn't as perfect as everyone had hoped though. They told me in order for the fob to work, they need to order an ignition lock cylinder.
The next surprise in this (hopefully compelling) tale is there were two keys resting in one of the center console cup holders. Huh..."came with the new trunk cylinder no doubt" I thought. I inserted one into the ignition; it will not rotate. I get out, and sure enough, yes, it will rotate in (and actuate) the trunk release. So I talked about this with the TTH people, and also asked them if, while they were at it, they could make the ignition cylinder keyed the same as the trunk. Although of course this would be perfectly workable, if Hyundai shipped a cylinder which matched my VIN (ergo my door too), as discussed with the TTH folks, this would be unusual for something other than one key for the whole vehicle. I would have hoped TTH would have passed along to the Hyundai parts folks some sort of specifications (oh, like perhaps VIN) such that the trunk lock assembly would be keyed the same as the original, but I guess that was a bit too much anticipation.
Now, of course, I will likely never know for sure...did I really need a new BCM? I don't think so. So far, seems to me my original diagnosis holds, that something is wrong with the sensor which determines whether there is a key in the ignition cylinder. Based upon TTH telling me a new ignition lock cylinder is the needed fix for the fob to work, I'd say they should have tested that first, especially since I suggested it might be the problem. I also think this is an implicit acknowledgement that the Hyundai documentation is correct, and that they didn't exactly know what they were talking about when they told me the opposite of what the docs say.
So what can I say, third time's a charm? Indeed. It was only a within a couple of days, and TTH called me to say the (second) lock cylinder had arrived, and to ask when would be a good time to return. Once again, I asked about late morning on their next free day, which was 30-Jul; we agree on 10:50. And once again this was merely a mythical time.
With an interesting yin/yang sort of reversal of fate, TTH actually called me twice to tell me the lock cylinder arrived. Hey, as I said to them on that second call, far better to call twice than not to call at all, and I firmly believe that.
I realize it could take quite a lot of labor when dealing with either the steering column or the dash due to the number of gizmos in each. Mechanics most certainly have to follow the Hippocratic Oath, at least the part paraphrased as "first, do no harm." Yanking something the wrong way thus disabling the air bag for example could have catastrophic consequences, so being careful takes time. However...it was somewhere around three and a half hours before they came looking for me to ask where my car was parked!! This says to me they weren't even ready to start repairs until then. The point is, why schedule someone to arrive in the morning when you can't even begin until mid afternoon? To give them at least some fair treatment, it should be noted that TTH did not do the final lock work themselves, they farmed it out to a nearby locksmith. However, one would at least hope that this would have been arranged ahead of time, and a locksmith who can keep his or her commitments would be chosen (as in, agree to be there around say eleven and actually be there).
Now that it looks like we're done, what do we have? Let's take a look at the invoice.
Item A mentions the key fob inoperability. It says (paraphrasing) that TTH performed a diagnostic, traced wires (which I would have hoped somehow they would find the wiring for the ignition switch, hopefully with a harness somewhere, and check the key insert/removal sensor). They called Hyundai tech support, and Hyundai told them to replace the BCM assembly. I'd hate to think they had unnecessarily replaced the BCM, but given that at least one of the TTH service people thought the documention vis a vis the key being in the lock and the remote control was incorrect, and the fact that the lock cylinder was eventually replaced, It kind of looks like it. Again, I stress that I was not privy to the entire methodology and conversations, and can only comment as I see it, and it could have been bad.
Item B dealt with the trunk lock, which was swapped on the 2nd visit. It's here that TTH chose to inject Bob's Lock and Key. Heck, I don't know what keys they handed me, whether it was the ones handed to me on the second visit, ones that may have come with the ignition lock, or whatnot. The end result is the same key rotates in the door, the ignition, and the trunk.
Item C talks about the driver door unlocking after hitting the lock button. It says "No problems found." Well, duh. It's easy to find no problem, given the right conditions. Either close the door or remove the key from the ignition. But in my estimation, as related before, it was impossible for the BCM to sense key removal previous to the cylinder replacement. If you're reporting "no problem" after all the other repairs were finished, yeah....I guess that's accurate. Either I should have been more explicit and reported door unlocks right away if it's still swung open, or the report could more accurately reflect "issue resolved by other items." It's just one of those niggling little things that the issue was dismissed, that the more prudent handling would probably be to ask, "really? so show me what you mean, and we can look at it further."
So caveat emptor. Consider carefully whether you really want to go to TTH, and I can at least partly recommend West Herr Used Car Outlet. If you're intending to trade, it would be really convenient to ask next door at Auction Direct USA for an appraisal so you have at least another reference point rather than just West Herr's judgement.
Direct all comments to Google+, preferably under the post about this blog entry.
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 one of the fastest growing social networks, Google+!
I had gone to WH because they had one of the less problematic Web sites of the ones I had visited (but still in need of work, mind you), and because one of my dear friends, Matt, had talked about his positive previous West Herr experience, although not specifically with the Used Car Outlet. They had two in which I was interested; Plan A was a 2007 Corolla, and Plan B was a 2009 Focus...but I had to fall back on Plan C, which was the Elantra. Plan A was sold by the time I got to WH, and Plan B turned out to be uncomfortable for me to sit in due to my height, and apparently seat height was not adjustable. Besides....many Fords these days have this utterly annoying characteristic of locking all the doors once underway, as if I'm not adult enough to do it myself. Also not in its favor was that the onboard computer's display showed an average of only 18 MPG, despite its EPA estimate being in the mid 20's. So, looking around the lot a little, and primarily where the Corolla used to be the last time I saw it, I saw a similarly colored car, slightly darker, with a city MPG rating in the target I was seeking (the mid 20's). So I figured, what the heck, give it a test drive.
I intuitively thought when I first opened the door, not even with key in hand (just trying it out for size/fit), and the warning chime came on, that this car could be problematic. But I figured, let's soldier on. I saw the "door ajar" lamp in the dash light up and thought it was plausible this was normal behavior. It seemed OK(ish) for feel, so I went inside to ask for a test drive. They were a bit busy, and Ray Snyder, Sales Manager, assured me someone would be with me shortly. Sure enough, within a few minutes, one of the most personable and knowledgable salescritters I ever met, Ron Slisz, was able to get a dealer-class license plate and the key for this Elantra. We took it around E. Amherst a little, and while not as comfortable nor powerful as the Lumina I was used to, I thought, "this will do."
A downer in this process is the fact that WH only credited me $350 for what edmonds.com told me should have been at least $1000 for my Lumina. But I just wanted it all to be over with. I had no energy at the time to argue it. In retrospect, I should have said "hold it right there, skippys," and taken it next door to Auction Direct USA. They advertise on radio that they will write up a purchase offer good for 5 days. They may have even bought it so that I could put the money towards this Elantra.
There was another particularly annoying aspect, the $75 fee I was charged which was essentially a convenience fee for WH acting as my DMV agent to register the Elantra and transfer my plates from Lumina to Elantra. Well...what can I say? Even the NYDMV site mentions this fee. In the plate transfer aspect, salescritter Ron must have read my mind. He got out West Herr plate frames, and had one or two near his desk, but none made it onto my newly purchased car. I would have removed them anyway.
To WH's credit, they are foursquarely behind making this Elantra as it should be (mind you, not perfect, just major and minor functionality that one would expect). It was sold as a "value car," meaning they don't intend to make it perfect. For example, they purposefully didn't repair the paint blemishes/scratches, in order to sell this to me more cheaply. We knew at the time/point of sale that the keyless remote entry was not working, and the working theory at that time was the transmitter (keychain fob) is defective; a new one would be ordered. Of course, being a Friday evening, nothing would really be accomplished until Monday.
That pretty much ended my 4 or so hour day at a dealership. I'm glad I brought my Android tablet with me; it provided lots of entertainment, and allowed me to change my insurance easily. It also allowed me to post to Google+ to tell a little bit about my day. I didn't think it would take as long as it did, and I kind of apologize to Kevin and Pam, who I did not send a "decline" for their invitation to their annual party.
After the deal was done, I headed south to the Aldi in the plaza near Transit and Main. It was there that a kernel of an idea about why the chime was not silenced came to me. I pressed on the switch to secure all the locks. As a humorous aside, my first guess was wrong; it was exactly opposite the Lumina in that pressing the bottom of this rocker switch opens, not locks. So, realizing this is backwards, I rocked the switch upwards. Initially, all the locks locked. But then about half a second later, the driver's door unlocked. So I pressed the switch again, and this was perfectly repeatable. Out of curiosity, I flipped the lock lever instead of pressing the switch. Same thing; half a second later, it unlocked itself. I held it. The lock solenoid clicked a few more times, then the controller gave up. It was then the chiming made sense; the most plausible explanation was that the ignition lock cylinder's sensor to know when the key has been removed is defective. This would cause the chime to remind one to remove the key, and the controller programming is trying to prevent the (stupid) driver from locking him-/her-self out of the vehicle. But having never owned an Elantra before I still was not 100% convinced I had the correct diagnosis. It was not insecure, in that if the key is inserted into the door and rotated in the proper direction, it will lock. This too was opposite the Lumina, in that for rotation towards the front, Luminas unlock, Elantras lock.
I also noticed while trying to put my Aldi groceries in the trunk that the key would insert, but would not rotate. When I got home, I sent an email to salescritter Ron telling him about this trunk problem, and very much to my surprise, within very little time I got a message back, sent from his mobile phone, that I should just look on the driver's door for a trunk release button. Boy, that made this complete; I had an easy workaround for everything until all could be repaired.
Also when home I went to the Hyundai Motor America (HMA) site to get a PDF of my owner's manual. Who wants to search visually through a paper manual for something when a computer can search for me, and point right to it? I have one for 1998 Luminas for that very reason. The first thing you'll notice in this scenario (should you go through it yourself) is that they do not have PDFs available outright. You must register with their site with a vehicle's VIN, and log in. Then you may download a manual. And I didn't actually know this until after I used their "contact us" function on their Web site, essentiallly asking, "where's your PDFs?" and they sent an email reply stating one will see this after logging in. If they have this on their site somewhere, I didn't see it (point being, it's non-obvious).
Unfortunately, there is very little to gain by doing this either. One would hope that if I provided something as specific as a VIN I would get documentation specific to my VIN...no such luck. There are plenty of asterisks in this e-book with the obligatory explanatory asterisk at the bottom of such pages saying "* if so equipped". I am very glad one of the (mis)features listed does not apply to mine, the locking of the doors after travelling over a certain speed.
The next HMA slap in the face is their site has all sorts of JavaScript and Flash, which, of course, like wayyyyyyy too many sites, does not tell you JS needs to be enabled for it to work fully/properly. There are many, many reasons utilities like NoScript and NotScripts exist, with which I will not bore you, but suffice it to say that it is just so exceedingly easy to do, it is pointless NOT to point out that JavaScript is disabled. But that's not even the worst. Of course, almost all users of these security tools realize this, and temporarily enable JS. So what does the HMA site do then? It uses styles to pop up a pseudowindow (as I like to call them...basically using visibility, opacity, and z-index tricks to render boxes in front of boxes). This pseudowindow is telling me the site should be viewed in Internet Explorer such and such, or Firefox blah, blah, blah. That's a frak of a thing to tell your customers or potential customers, that you don't like their software of choice. Gee, what a concept! Just stick to Web standards, and then you don't have to care so much what their user agent (UA) is. Also, don't try to lay out the page to the pixel, and by-and-large you also shouldn't have to worry about the precise CSS vagaries of UAs. This is also not to mention Adobe themselves have stated that Flash is a deprecated product. It's never been available for iOS (e.g., iPad), soon not to be available for mobile platforms (smartphones, tablets, etc) in general, and The Tech Guy Leo Laporte even mentioned this past weekend (5-Aug-2012) eventually not on desktops either.
So after downloading the documentation I started to skim over it, and then read certain sections more in depth. One of the things I eventually came across was that the fob is ignored if the key is in the ignition. This solidified my diagnosis, as this is exactly the behavior I was experiencing. So I sent another email to Ron the salescritter with a copy/paste of this from the PDF, and when we next talked about effecting repairs, he concluded the same as I did, that the likely cause was a faulty key sensor, and not a defective fob. It turns out that despite Kia being part of Hyundai Motor Group, the West Herr Kia shop is not prepared to handle Hyundais, and a referral to a nearby Hyundai dealer/shop would be necessary. In this case it was Transitowne Hyundai (TTH). They too thought this was a plausible explanation when Ron told them about that part of my email.
I called TTH to arrange for repairs, and was given an appointment for Thursday, 12-Jul at 11:20. Wow, such precision. Maybe I'm just thinking too much, but I would guess they tend to do this to steer expectations. If given a time like 11:00 or 11:15, I would think most people would tend to figure around 15 mintues of slop might be expected, but with :20, it's probably more like 5 minutes or less. I can tell you at least with my experiences so far, any appointment times are folly.
Admittedly, I arrived a little late, around 5 or so minutes; let's just say my gastrointestinal tract didn't know anything about appointments and resisted my attempts to be on time. When I arrived, it looked as if every single repair bay in the garage was tied up. And I spent about 4 or so hours there.
I did not know what to expect, so at the last minute, I left my tablet at home, but I brought a pocket radio and earbuds for my weekdaily dose of EIB. In their waiting room, they also have this (what I would call a) "leader board" wall-mounted flat screen computer monitor, with a table of customer names, service advisor's name, status ("arrived," "in progress," "awaiting parts," "ready," etc.), and expected departure time. At no time did anything like "Joe Philipps," "Ron Slisz," "West Herr," or anything else which would apply to me appear on this system. And I must have been in the restroom if/when they came looking for me in the waiting room, because I had to go to the service counter to find out what the deal was. I saw plenty of other customers who were fetched by the repair counter people. Who knows, maybe they were just about to come my way when I went their way.
After their considered diagnosis, TTH concluded the trunk lock assembly and the body control module (BCM) would need to be replaced. Again, I don't know specifics about Elantras, but that sounded like a plausible explanation. Maybe the existing lock was just irreparably corroded internally. And I don't know what things a BCM would control. So, TTH tells me they will order parts and give me a ring when they arrive.
Even more interesting, when I was there that day, while describing my amateur diagnosis about the fob not working and why, the service counter person remarked that this was incorrect; the fob ostensibly would work, contrary to the Hyundai-supplied documentation. Aw, heck...this wouldn't be the first time I've seen reality at odds with widely distributed documentation. Take the configuration of OpenLDAP for Ubuntu 10.04 for example. Many online references at the time would talk extensively about entries in slapd.conf whereas in reality this version's configuration is within the LDAP database itself.
An inordinate number of days pass, until Monday, 23-Jul to be precise. So I called TTH service to see what's what, and to ask how long it takes typically to acquire a BCM and lock cylinder. At this time they told me that the parts had arrived Thursday, 19-Jul--about one week; not bad. But somehow the call did not go out. I guess it's no big deal because I had very easy workarounds. I understand; this sort of thing happens from time to time with service businesses, it's just that I was the not-so-unlucky guy that didn't get called. So during that call I arranged for installation 11:30 Wednesday, 25-Jul. This time around they knew this was going to take a very long time, and they offered to take me somewhere I might want to go. I declined; I brought my tablet this time, and trust me, that can entertain me for hours, given WiFi access. And TTH does indeed have a WiFi access electronic ticketing system good for 3 hours at a time.
So...five and a half hours later, having listened to EIB via TuneIn this time, and watching the "Biggest Warship" episode of "Build It Bigger," and an episode of "MythBusters" ("Barrel of Bricks") via TTH's DirecTV, they came to me again to tell me they're done...for the day. Again, except for feeling like I sat in a walk-in refrigerator, passing the time there was fine because I wasn't doing anything particularly different than I would have been doing anyway...that is to say, EIB, Web browsing, or watching something on my MythTV. In fact it's arguably better spending TV watching time there, because they get channels (like Science that I watched) that I don't get at home. The news isn't as perfect as everyone had hoped though. They told me in order for the fob to work, they need to order an ignition lock cylinder.
The next surprise in this (hopefully compelling) tale is there were two keys resting in one of the center console cup holders. Huh..."came with the new trunk cylinder no doubt" I thought. I inserted one into the ignition; it will not rotate. I get out, and sure enough, yes, it will rotate in (and actuate) the trunk release. So I talked about this with the TTH people, and also asked them if, while they were at it, they could make the ignition cylinder keyed the same as the trunk. Although of course this would be perfectly workable, if Hyundai shipped a cylinder which matched my VIN (ergo my door too), as discussed with the TTH folks, this would be unusual for something other than one key for the whole vehicle. I would have hoped TTH would have passed along to the Hyundai parts folks some sort of specifications (oh, like perhaps VIN) such that the trunk lock assembly would be keyed the same as the original, but I guess that was a bit too much anticipation.
Now, of course, I will likely never know for sure...did I really need a new BCM? I don't think so. So far, seems to me my original diagnosis holds, that something is wrong with the sensor which determines whether there is a key in the ignition cylinder. Based upon TTH telling me a new ignition lock cylinder is the needed fix for the fob to work, I'd say they should have tested that first, especially since I suggested it might be the problem. I also think this is an implicit acknowledgement that the Hyundai documentation is correct, and that they didn't exactly know what they were talking about when they told me the opposite of what the docs say.
So what can I say, third time's a charm? Indeed. It was only a within a couple of days, and TTH called me to say the (second) lock cylinder had arrived, and to ask when would be a good time to return. Once again, I asked about late morning on their next free day, which was 30-Jul; we agree on 10:50. And once again this was merely a mythical time.
With an interesting yin/yang sort of reversal of fate, TTH actually called me twice to tell me the lock cylinder arrived. Hey, as I said to them on that second call, far better to call twice than not to call at all, and I firmly believe that.
I realize it could take quite a lot of labor when dealing with either the steering column or the dash due to the number of gizmos in each. Mechanics most certainly have to follow the Hippocratic Oath, at least the part paraphrased as "first, do no harm." Yanking something the wrong way thus disabling the air bag for example could have catastrophic consequences, so being careful takes time. However...it was somewhere around three and a half hours before they came looking for me to ask where my car was parked!! This says to me they weren't even ready to start repairs until then. The point is, why schedule someone to arrive in the morning when you can't even begin until mid afternoon? To give them at least some fair treatment, it should be noted that TTH did not do the final lock work themselves, they farmed it out to a nearby locksmith. However, one would at least hope that this would have been arranged ahead of time, and a locksmith who can keep his or her commitments would be chosen (as in, agree to be there around say eleven and actually be there).
Now that it looks like we're done, what do we have? Let's take a look at the invoice.
Item A mentions the key fob inoperability. It says (paraphrasing) that TTH performed a diagnostic, traced wires (which I would have hoped somehow they would find the wiring for the ignition switch, hopefully with a harness somewhere, and check the key insert/removal sensor). They called Hyundai tech support, and Hyundai told them to replace the BCM assembly. I'd hate to think they had unnecessarily replaced the BCM, but given that at least one of the TTH service people thought the documention vis a vis the key being in the lock and the remote control was incorrect, and the fact that the lock cylinder was eventually replaced, It kind of looks like it. Again, I stress that I was not privy to the entire methodology and conversations, and can only comment as I see it, and it could have been bad.
Item B dealt with the trunk lock, which was swapped on the 2nd visit. It's here that TTH chose to inject Bob's Lock and Key. Heck, I don't know what keys they handed me, whether it was the ones handed to me on the second visit, ones that may have come with the ignition lock, or whatnot. The end result is the same key rotates in the door, the ignition, and the trunk.
Item C talks about the driver door unlocking after hitting the lock button. It says "No problems found." Well, duh. It's easy to find no problem, given the right conditions. Either close the door or remove the key from the ignition. But in my estimation, as related before, it was impossible for the BCM to sense key removal previous to the cylinder replacement. If you're reporting "no problem" after all the other repairs were finished, yeah....I guess that's accurate. Either I should have been more explicit and reported door unlocks right away if it's still swung open, or the report could more accurately reflect "issue resolved by other items." It's just one of those niggling little things that the issue was dismissed, that the more prudent handling would probably be to ask, "really? so show me what you mean, and we can look at it further."
So caveat emptor. Consider carefully whether you really want to go to TTH, and I can at least partly recommend West Herr Used Car Outlet. If you're intending to trade, it would be really convenient to ask next door at Auction Direct USA for an appraisal so you have at least another reference point rather than just West Herr's judgement.
Direct all comments to Google+, preferably under the post about this blog entry.
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 one of the fastest growing social networks, Google+!
21 June, 2012
Deconstructing Yet Another Ridiculous EULA (YARE?)
Ever since I've used it on Palms, I have been a fan of Graffiti, the input method for these devices. Briefly, it's not full handwriting recognition; it's more like a standard set of gestures, but those gestures make sense because they're usually the upper case of letters, mostly the shape of digits (except "4," where it's just the left part), and "escapes" (tap, and stroke from upper left to lower right) for punctuation. Since tablets are larger, it's actually practical to draw a QWERTY (or other) keyboard on the screen, which is what most Android input method editors (IMEs) do. But honestly, this is fraught with difficulties and lots of typos. The GO Keyboard makes things arguably much better, as every key has a press-n-hold punctuation mark on it, obviating the need in most cases for hitting the numeric shift key. Still, I missed my usually quicker and less effort Graffiti from Palm.
(A short aside here: the Graffiti 2 on my Palm T|X really sucks compared to my Palm Vx's (original) Graffiti. The original expresses everything pretty much unambiguously, but 2 makes many glyphs double strokes...such as "K" is basically lowercase ell (a vertical, downward stroke) and less than. Similarly, "T" is ell/dash. This has the effect of delaying input because the device does not know whether I am meaning "L," "K," or "T," and will time out, or worse yet, if not done very precisely (such as not crossing the ell with the dash, thus interpreting it as ell-space) it is recognized wrong. Unfortunately, I think there was some sort of IP legal problem in being able to use the original Graffiti in the T|X.)
So I have been fervently searching for Graffiti for Android for the past few days. Unfortunately, searches for that were mired in results with various doodling or painting programs. Switching tack from "graffiti" to "handwriting IME" was not so helpful either, as there are many, many IMEs specializing in Asian inputs (Chinese, Pinyin, Hangul, Japanese...you name it, none of which which I understand of course). Understandably, this is much more vital, as Asian scripts are much more like drawings than Latin ones. The search was rather disappointing...until today.
Imagine my excitement when I found there was someone who has already implemented a Graffiti-like IME for Android, ACCESS Company. The first disappointment was the original link I found was to Play (formerly Market). Unfortunately, my Android tablet didn't come with Play, and it is problematic to install. (Updated 2013-Sep-30: I have since gotten the original 16GB Nexus 7, and I have put Graffiti on there too.) Even more unfortunately, "everyone" would rather put something on "the Market" rather than handling hosting, payments, etc. themselves, so it's really, really popular. Also, many if not most Android devices ship "locked to" Play for support liability reasons, especially phones. Thankfully, this Graffiti IME package was also noted as being available in the Amazon Appstore too, which I went and fetched it from there.
(Another aside: I know that Amazon are just using the same methodology and programming for paid and free apps. But gosh dangit, if it's free, do you really have to email me about every "purchase?")
The first thing that made me go "whoa! Hang on there, buckaroo!" about this package is its declaration of needed capabilities: "full access to the network." Every time one activates an IME into Android in the language settings, the system warns you about the fact that IMEs could be mere keystroke loggers, sending your credentials for who-knows-what back to IME Author Central. However, it is extremely commonplace for free apps to have Internet-served ads. Still...I've been generally trusting with this sort of thing. I have GO Keyboard, which has the absolutely essential inclusion of arrow keys, because precise cursor positioning with the default IME is very frustrating to say the least, especially on a resistive touchscreen. So much of the free software is also ad supported, and the ads come from Internet connections, so many free packages will declare the need for network access.
Not surprisingly, they're a Japanese company, probably using one of the aforementioned Asian scripts in their daily lives, so they're naturally a good candidate for making a handwriting/stroke/gesture IME. However, they seem to have some folks in the company who understand English, at least its form (but not precise meaning, as we shall see). Many help files, manuals, and yes, sometimes end-user license agreements (EULAs) written by Asians are choppy and hard to understand...kind of like the dialog in many Jackie Chan movies. Thankfully, this EULA is very understandable English.
Let's just start with the fact that the vast majority of EULAs are exceedingly long. I believe this length is the primary reason people extremely rarely actually read them before agreeing to them. That's why when I authored Tk Web Form Buddy and I wanted to host it on SourceForge, and therefore had to choose an approved open source license, I chose the shortest one I could find at the time, the MIT license. We humans are an impatient lot. "Let's just get to the fscking software already; I'll basically behave" most people think. If we weren't such a litigious society, I'm sure EULAs would boil down to the ten words, "Play nice. You basically know how. Now go do it." Cheerful ones would also include the imperative "Enjoy!" But instead we are faced with pages and pages or screens and screens of mind-numbing, sleep-inducing language. And yes, there is a certain amount of irony here in that I tend to be wordy too, and this piece is on the long side. But basically it is for information and, particularly, entertainment. Actually, that's why it's here on the IHeartLibertarianism blog instead of directly on Google+.
In the first paragraph, they talk about "concluding the said Agreement" with them. "Conclude" in this context more means "terminate" or "end" in the sense of be over and no longer in effect, except I guess they mean something more like "complete." It's subtle, but I think a poor choice of words.
Next, we have the last sentence of that paragraph:
Next the EULA talks about using the software on only one device. Hmmmm...it's fine to use the software, and it's no charge, but if I had multiple tablets/phones/whatever Android devices, I can't use it on more than one? In that paragraph, it also talks about personal, noncommercial use. OK, so I am not entitled to use this software provided I'm using my tablet in conjunction with running a business? I think that is kind of absurd, especially for a no-charge product.
Let's see...what other crockery do we have? Under "prohibitions," I apparently can't copy the software, despite it being no charge and the fact that I will back up my tablet (thank you, Titanium). We also have the usual crap about reverse engineering (decompiling, etc.), which in many jurisdictions, if I'm not mistaken, can't be prohibited. In #4, we finally get to not including it "into a hardware product." Again, we have usual stuff about other expropriations, modifying it to remove notices and such (which is likely illegal anyway under copyright law), and not leasing and such.
And of course, we have the usual, shouting, ALL CAPITALS paragraph or two about we're not responsible, no matter what, if your Android device happens to turn into a pile of unusable slag. This is also pretty much untrue; if their product really does do something nasty, they deserve to make it right. But I thoroughly understand (again, in this litigious world) they must have this "pushback."
Next we have the absurdity that since Software accesses the Internet, I am to accept some nonspecific additional terms and conditions of other Web sites (presumably their ad engine backend). Piffle. If I get cheesed enough, they will get iptables'ed and ip6tables'ed essentially out of existence. I shouldn't have to agree to terms and conditions recursively without end.
If I thought I was foolish for actually taking the time to go through these things to become cognizant of what rights I have, what rights I'm giving up, and any responsibilities I may have due to my actions, I can barely imagine what these poor sots who just handwave it away by checking "I agree" and getting on with life, are in for.
Thankfully, there is an acknowledgement that they absolutely cannot limit the GPLed/FLOSS parts of their software (such as libraries linked to and such). Prima facie, if that weren't there, I'd think that'd be grounds for invalidating large portions of the agreement anyway. Unfortunately, I would say it looks like they're also in violation of the GPL by not including the GPL/LGPL nor links/references to it/an offer to provide it.
Next, they talk about their advertisers. Sure, we'll stick these advertisers in your face, but we disclaim all liability in conjunction with them. In other words, you're lazy and don't feel like vetting the ads that your software puts on my device. And once again, they're saying I have to agree to whatever terms, conditions, privacy policies, etc. of these unspecified third (fourth?) parties. Meh...just like mentioned before, if motivated enough, you will get firewalled. If it somehow stops working, you gain very bad karma, and I will toss your software on the electronic trash heap.
Oddly enough, there doesn't seem to be any language in here that would prohibit me from doing such firewalling. It's not modification of their product. It's not subverting their copyright notices (I don't think).
Next, we have rather unnecessary inclusion of language about not complying with other laws...specifically export laws. Duh. It's illegal for me to do these things anyway; it's just filler to include this in your agreement. It also seems kind of silly too to include countries by name in this document. Those countries to which exportation would be illegal may change.
Tell me, ACCESS...why is it you have put "Agree Disagree" in the license? You know, oddly enough, I tried for about five minutes or so to find an EULA (at least one specific to Graffiti) on your Web site, and I'd expect that text to appear on some Web form buttons, but this is text in a piece of software. Also oddly enough, the actual buttons in this portion of the app are "I agree" and "I do not agree."
Well...despite some rather poor word choices and ridiculous statements, at least for now I'm jamming my index finger on "I agree."
P.S.-- I've been intrigued by Quikwriting too. Maybe someday I will find and use a Quikwriting IME for Android. Hopefully it will have less onerous and and easier to read (shorter) terms for its EULA :-) . UPDATE: Apparently there is a Slovakian hacker who has implemented it.However, it's pretty much unusable because it lacks punctuation. I couldn't find any number or punctuation "escape" gestures. And it's not documented. The original Perlin and friends implementation has such things. ANOTHER UPDATE: The author wrote me an email to explain it's in there, just not documented. It's true; if you run down where the author started (an Openmoko implementation, qwo), that project has more documentation on how punctuation and such is done.
Direct all comments to Google+, preferably under the post about this blog entry.
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 one of the fastest growing social networks, Google+!
(A short aside here: the Graffiti 2 on my Palm T|X really sucks compared to my Palm Vx's (original) Graffiti. The original expresses everything pretty much unambiguously, but 2 makes many glyphs double strokes...such as "K" is basically lowercase ell (a vertical, downward stroke) and less than. Similarly, "T" is ell/dash. This has the effect of delaying input because the device does not know whether I am meaning "L," "K," or "T," and will time out, or worse yet, if not done very precisely (such as not crossing the ell with the dash, thus interpreting it as ell-space) it is recognized wrong. Unfortunately, I think there was some sort of IP legal problem in being able to use the original Graffiti in the T|X.)
So I have been fervently searching for Graffiti for Android for the past few days. Unfortunately, searches for that were mired in results with various doodling or painting programs. Switching tack from "graffiti" to "handwriting IME" was not so helpful either, as there are many, many IMEs specializing in Asian inputs (Chinese, Pinyin, Hangul, Japanese...you name it, none of which which I understand of course). Understandably, this is much more vital, as Asian scripts are much more like drawings than Latin ones. The search was rather disappointing...until today.
Imagine my excitement when I found there was someone who has already implemented a Graffiti-like IME for Android, ACCESS Company. The first disappointment was the original link I found was to Play (formerly Market). Unfortunately, my Android tablet didn't come with Play, and it is problematic to install. (Updated 2013-Sep-30: I have since gotten the original 16GB Nexus 7, and I have put Graffiti on there too.) Even more unfortunately, "everyone" would rather put something on "the Market" rather than handling hosting, payments, etc. themselves, so it's really, really popular. Also, many if not most Android devices ship "locked to" Play for support liability reasons, especially phones. Thankfully, this Graffiti IME package was also noted as being available in the Amazon Appstore too, which I went and fetched it from there.
(Another aside: I know that Amazon are just using the same methodology and programming for paid and free apps. But gosh dangit, if it's free, do you really have to email me about every "purchase?")
The first thing that made me go "whoa! Hang on there, buckaroo!" about this package is its declaration of needed capabilities: "full access to the network." Every time one activates an IME into Android in the language settings, the system warns you about the fact that IMEs could be mere keystroke loggers, sending your credentials for who-knows-what back to IME Author Central. However, it is extremely commonplace for free apps to have Internet-served ads. Still...I've been generally trusting with this sort of thing. I have GO Keyboard, which has the absolutely essential inclusion of arrow keys, because precise cursor positioning with the default IME is very frustrating to say the least, especially on a resistive touchscreen. So much of the free software is also ad supported, and the ads come from Internet connections, so many free packages will declare the need for network access.
Not surprisingly, they're a Japanese company, probably using one of the aforementioned Asian scripts in their daily lives, so they're naturally a good candidate for making a handwriting/stroke/gesture IME. However, they seem to have some folks in the company who understand English, at least its form (but not precise meaning, as we shall see). Many help files, manuals, and yes, sometimes end-user license agreements (EULAs) written by Asians are choppy and hard to understand...kind of like the dialog in many Jackie Chan movies. Thankfully, this EULA is very understandable English.
Let's just start with the fact that the vast majority of EULAs are exceedingly long. I believe this length is the primary reason people extremely rarely actually read them before agreeing to them. That's why when I authored Tk Web Form Buddy and I wanted to host it on SourceForge, and therefore had to choose an approved open source license, I chose the shortest one I could find at the time, the MIT license. We humans are an impatient lot. "Let's just get to the fscking software already; I'll basically behave" most people think. If we weren't such a litigious society, I'm sure EULAs would boil down to the ten words, "Play nice. You basically know how. Now go do it." Cheerful ones would also include the imperative "Enjoy!" But instead we are faced with pages and pages or screens and screens of mind-numbing, sleep-inducing language. And yes, there is a certain amount of irony here in that I tend to be wordy too, and this piece is on the long side. But basically it is for information and, particularly, entertainment. Actually, that's why it's here on the IHeartLibertarianism blog instead of directly on Google+.
In the first paragraph, they talk about "concluding the said Agreement" with them. "Conclude" in this context more means "terminate" or "end" in the sense of be over and no longer in effect, except I guess they mean something more like "complete." It's subtle, but I think a poor choice of words.
Next, we have the last sentence of that paragraph:
If You do not agree with all the provisions of the License Agreement, You will not be able to use the Software.It's a clear confusion between ability and permission, much like people seem to confuse "can" with "may" a lot.
The Software is confidentialHuh? It's hardly confidential. I basically didn't have to do anything except provide an email address to Amazon; there was no vetting process per-se. If you really wanted it to be "confidential," you'd be very careful about to whom you give the software.
Next the EULA talks about using the software on only one device. Hmmmm...it's fine to use the software, and it's no charge, but if I had multiple tablets/phones/whatever Android devices, I can't use it on more than one? In that paragraph, it also talks about personal, noncommercial use. OK, so I am not entitled to use this software provided I'm using my tablet in conjunction with running a business? I think that is kind of absurd, especially for a no-charge product.
Let's see...what other crockery do we have? Under "prohibitions," I apparently can't copy the software, despite it being no charge and the fact that I will back up my tablet (thank you, Titanium). We also have the usual crap about reverse engineering (decompiling, etc.), which in many jurisdictions, if I'm not mistaken, can't be prohibited. In #4, we finally get to not including it "into a hardware product." Again, we have usual stuff about other expropriations, modifying it to remove notices and such (which is likely illegal anyway under copyright law), and not leasing and such.
And of course, we have the usual, shouting, ALL CAPITALS paragraph or two about we're not responsible, no matter what, if your Android device happens to turn into a pile of unusable slag. This is also pretty much untrue; if their product really does do something nasty, they deserve to make it right. But I thoroughly understand (again, in this litigious world) they must have this "pushback."
Next we have the absurdity that since Software accesses the Internet, I am to accept some nonspecific additional terms and conditions of other Web sites (presumably their ad engine backend). Piffle. If I get cheesed enough, they will get iptables'ed and ip6tables'ed essentially out of existence. I shouldn't have to agree to terms and conditions recursively without end.
If I thought I was foolish for actually taking the time to go through these things to become cognizant of what rights I have, what rights I'm giving up, and any responsibilities I may have due to my actions, I can barely imagine what these poor sots who just handwave it away by checking "I agree" and getting on with life, are in for.
Thankfully, there is an acknowledgement that they absolutely cannot limit the GPLed/FLOSS parts of their software (such as libraries linked to and such). Prima facie, if that weren't there, I'd think that'd be grounds for invalidating large portions of the agreement anyway. Unfortunately, I would say it looks like they're also in violation of the GPL by not including the GPL/LGPL nor links/references to it/an offer to provide it.
Next, they talk about their advertisers. Sure, we'll stick these advertisers in your face, but we disclaim all liability in conjunction with them. In other words, you're lazy and don't feel like vetting the ads that your software puts on my device. And once again, they're saying I have to agree to whatever terms, conditions, privacy policies, etc. of these unspecified third (fourth?) parties. Meh...just like mentioned before, if motivated enough, you will get firewalled. If it somehow stops working, you gain very bad karma, and I will toss your software on the electronic trash heap.
Oddly enough, there doesn't seem to be any language in here that would prohibit me from doing such firewalling. It's not modification of their product. It's not subverting their copyright notices (I don't think).
Next, we have rather unnecessary inclusion of language about not complying with other laws...specifically export laws. Duh. It's illegal for me to do these things anyway; it's just filler to include this in your agreement. It also seems kind of silly too to include countries by name in this document. Those countries to which exportation would be illegal may change.
Tell me, ACCESS...why is it you have put "Agree Disagree" in the license? You know, oddly enough, I tried for about five minutes or so to find an EULA (at least one specific to Graffiti) on your Web site, and I'd expect that text to appear on some Web form buttons, but this is text in a piece of software. Also oddly enough, the actual buttons in this portion of the app are "I agree" and "I do not agree."
Well...despite some rather poor word choices and ridiculous statements, at least for now I'm jamming my index finger on "I agree."
P.S.-- I've been intrigued by Quikwriting too. Maybe someday I will find and use a Quikwriting IME for Android. Hopefully it will have less onerous and and easier to read (shorter) terms for its EULA :-) . UPDATE: Apparently there is a Slovakian hacker who has implemented it.
Direct all comments to Google+, preferably under the post about this blog entry.
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 one of the fastest growing social networks, Google+!
15 June, 2012
A Tale of Two Stupidities
UPDATE from 21-Jun-2012 below.
Last week (on Wed., 06-Jun) I went to a regional retailer, Ollie's Bargain Outlet, for some miscellaneous items--socks, black landscaping cloth, maybe some grass seed. This place has many "regular" items, but they sort of specialize (mostly) in buying out overstock of other retailers, and being an outlet for manufacturers' reconditioned/refurbished items. One of the latter items is a Pandigital Nova, which they call a "Media Tablet" (and I call an Android tablet). It's only been a week, and already it has urged me to spend insane amounts of time researching about, and hacking on, this thing. In one instance I was up until about 0430 hours local time (Eastern Time). But on Thursday this week I executed two stupidities.
If you recall biff(1), it "makes noise" when new mail arrives. One myth (and it is an untrue myth) is that one Berkeley student's dog, named Biff, barked at the postal carrier. I wrote my own to watch $MAIL because the standard biff behavior is to "bark" only once. If I'm not around to hear it, it could be many hours before I even know I have new mail to read, let alone actually read it. So my version checks $MAIL at (approximately) the top of every minute from 0800 to 2200 hours, and it barks every minute until the file's "last read" time is later than its "last write" time. (There are a number of noises which could be similar to my original biff occuring at the top of some minutes, such as the top and bottom of hour markers broadcast on WBEN-AM, so it actually targets one second after.) So this is one of the first things I usually hear in the morning, because there is usually at least one cron job which emails its results to me which ran overnight.
Previous to Thursday morning, I had set up email fetching on the tablet, and had seen it work. So imagine my surprise when I get the tablet's swirl animation which putting "Syncing" on the screen, and up pops on the screen that the OS had to force close the app. I tried it a few times to find out if this was some quirk, and it was insanity (doing something over and over and expecting a different result). OK, so putting on my computer engineer's thinking cap for a second, the usual first thing to consider when something was previously working, and now is not working, is what changed. The major change was installing the excellent (although Chinese and therefore difficult to understand at times) GO Launcher EX (available on Play, Amazon Appstore for Android, and where I got it, the Opera Mobile Store). So recalling there are a lot of rather nasty folks overseas, I kind of felt I was duped into compromising my tablet, so I uninstalled GO Launcher EX. That was no help. I rebooted (powercycled) the tablet. That wasn't any help either. This was the first stupidity, assuming the newfangled (to me) tablet had to be at fault just because of that being the current hacking target, and its newness to me. I even went through a factory defaulting wipe of the system, and a re-setup. This of course, as we shall see, was no help at all either.
By now biff had barked at me about 20 or 25 times, and I was getting miffed that I could not pick up my email on the tablet, and I'd have to revert to using the SSH client on my Palm T|X. So I pulled that out, logged in, and pulled up Mutt (my favorite ncurses-based MUA).
It turns out, as usual, the only thing waiting was the report of the spam messages cleaned up daily (retains 7 days for inspection and possible "rescue."). But then after dismissing that, I started looking at the messages and maillog logs. Much to my amazement, the spawned IMAP daemons were not only exiting with SIGSEGV, but before they did exit, they were consuming all idle CPU cycles according to top(1). And that, as we shall find out, was one of the keys to unraveling the mystery.
I thought, "that's kind of odd." Although I didn't change anything relevant on the IMAP server side of things, and the uptime was only 7 days, I thought that every once in a blue moon things do go screwey on Linux, and so despite not wanting to lose my place on several open browser pages, I shut down and rebooted my workstation. And that of course was no help at all. This was the second of the two stupidities.
By this time I was a little worried that I had a fancy paperweight which also happens to be capable of playing Angry Birds intead of having an Android tablet. One of the main reasons I got this thing is not to have to deal with basic email and such on a tiny T|X screen.
The key to solving the issue was to start dropping assumptions, and this is really plan B (and sometimes plan C) when the usual suspects in computer and general problem solving aren't getting oneself anywhere. And admittedly, all too frequently plan B is rebooting. That should really be plan C at soonest, and more appropriately plan D or E.
The fatal misunderstanding was that Dovecot automatically stores and subsequently retrieves a user's email "folders" rooted at the user's $HOME/Mail/. Wrong! That's not necessarily the case. I had always assumed that since I had set up so many other IMAP clients before (Mutt, Thunderbird, maybe a few others) and leaving the optional server side parts at the MUAs' default that it was Dovecot doing that. However, I think it's probably closer to the truth that at one time an MUA I used, probably ElM, set up ~/Mail and it had somehow been found ever since. And I still don't know what the heck happend, why all the sudden the Gingerbread default "Email" app didn't work like that.
But looking at this in hindsight, I will show you my best guess at what was throwing a monkeywrench into the entire works:
My best guess is that both the IMAP daemon and the poor, limited RAM tablet were trying to deal with 11GB of "mail" in my home directory. They were both likely choking rather mightily on the multi-gigabyte virtual machine hard disk image which is in the QEmu subdirectory, among other reasons.
This was an extraordinarily easy fix. I went into the tablet's incoming server settings for sal9000, specified "Mail" as "IMAP prefix path," and the IMAP client worked fine. So take a slightly painful lesson from me, and work with fewer assumptions instead of more when computer problem solving.
UPDATE from 21-Jun-2012: I really didn't want to do without my folders for filing away my email, and none were showing up by specifying the prefix. So I decided I would snoop in on an IMAP session to see why imapd was chewing CPU and K-9 Mail was crashing. Actually, I found out it's decidedly worse.
At one time, I was experimenting with delivery to maildirs. As those in the know know, there are three subdirectories in that format: new, cur, and tmp. I didn't want a whole new tree, so I decided to make some symlinks, all to "." So...imapd told K-9 (in essence) "there appears to be a folder here, not with email, but with a bunch of subfolders, named 'new.'" K-9 faithfully said, "OK, whatcha got?" Imapd faithfully replied, "well, seems inside 'new' there are more folders, at least one of them which is named 'new.'" And K-9 asked, "well, what's inside new/new then?" wherein imapd replied, "seems there's a new/new/new there." And so on went the conversation, basically ending when K-9 filled up my poor tablet's RAM, and imapd probably filled up nearly 2.5GB of RAM and 1GB of swap, and probably also eventually died...but not before really messing with my computer. Yesterday, it locked up hard, requiring not the three finger salute, but a holding of the power button. As best as I can figure, this unusual taxing of the system was its demise.
Direct all comments to Google+, preferably under the post about this blog entry.
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 one of the fastest growing social networks, Google+!
Last week (on Wed., 06-Jun) I went to a regional retailer, Ollie's Bargain Outlet, for some miscellaneous items--socks, black landscaping cloth, maybe some grass seed. This place has many "regular" items, but they sort of specialize (mostly) in buying out overstock of other retailers, and being an outlet for manufacturers' reconditioned/refurbished items. One of the latter items is a Pandigital Nova, which they call a "Media Tablet" (and I call an Android tablet). It's only been a week, and already it has urged me to spend insane amounts of time researching about, and hacking on, this thing. In one instance I was up until about 0430 hours local time (Eastern Time). But on Thursday this week I executed two stupidities.
If you recall biff(1), it "makes noise" when new mail arrives. One myth (and it is an untrue myth) is that one Berkeley student's dog, named Biff, barked at the postal carrier. I wrote my own to watch $MAIL because the standard biff behavior is to "bark" only once. If I'm not around to hear it, it could be many hours before I even know I have new mail to read, let alone actually read it. So my version checks $MAIL at (approximately) the top of every minute from 0800 to 2200 hours, and it barks every minute until the file's "last read" time is later than its "last write" time. (There are a number of noises which could be similar to my original biff occuring at the top of some minutes, such as the top and bottom of hour markers broadcast on WBEN-AM, so it actually targets one second after.) So this is one of the first things I usually hear in the morning, because there is usually at least one cron job which emails its results to me which ran overnight.
Previous to Thursday morning, I had set up email fetching on the tablet, and had seen it work. So imagine my surprise when I get the tablet's swirl animation which putting "Syncing" on the screen, and up pops on the screen that the OS had to force close the app. I tried it a few times to find out if this was some quirk, and it was insanity (doing something over and over and expecting a different result). OK, so putting on my computer engineer's thinking cap for a second, the usual first thing to consider when something was previously working, and now is not working, is what changed. The major change was installing the excellent (although Chinese and therefore difficult to understand at times) GO Launcher EX (available on Play, Amazon Appstore for Android, and where I got it, the Opera Mobile Store). So recalling there are a lot of rather nasty folks overseas, I kind of felt I was duped into compromising my tablet, so I uninstalled GO Launcher EX. That was no help. I rebooted (powercycled) the tablet. That wasn't any help either. This was the first stupidity, assuming the newfangled (to me) tablet had to be at fault just because of that being the current hacking target, and its newness to me. I even went through a factory defaulting wipe of the system, and a re-setup. This of course, as we shall see, was no help at all either.
By now biff had barked at me about 20 or 25 times, and I was getting miffed that I could not pick up my email on the tablet, and I'd have to revert to using the SSH client on my Palm T|X. So I pulled that out, logged in, and pulled up Mutt (my favorite ncurses-based MUA).
It turns out, as usual, the only thing waiting was the report of the spam messages cleaned up daily (retains 7 days for inspection and possible "rescue."). But then after dismissing that, I started looking at the messages and maillog logs. Much to my amazement, the spawned IMAP daemons were not only exiting with SIGSEGV, but before they did exit, they were consuming all idle CPU cycles according to top(1). And that, as we shall find out, was one of the keys to unraveling the mystery.
I thought, "that's kind of odd." Although I didn't change anything relevant on the IMAP server side of things, and the uptime was only 7 days, I thought that every once in a blue moon things do go screwey on Linux, and so despite not wanting to lose my place on several open browser pages, I shut down and rebooted my workstation. And that of course was no help at all. This was the second of the two stupidities.
By this time I was a little worried that I had a fancy paperweight which also happens to be capable of playing Angry Birds intead of having an Android tablet. One of the main reasons I got this thing is not to have to deal with basic email and such on a tiny T|X screen.
The key to solving the issue was to start dropping assumptions, and this is really plan B (and sometimes plan C) when the usual suspects in computer and general problem solving aren't getting oneself anywhere. And admittedly, all too frequently plan B is rebooting. That should really be plan C at soonest, and more appropriately plan D or E.
The fatal misunderstanding was that Dovecot automatically stores and subsequently retrieves a user's email "folders" rooted at the user's $HOME/Mail/. Wrong! That's not necessarily the case. I had always assumed that since I had set up so many other IMAP clients before (Mutt, Thunderbird, maybe a few others) and leaving the optional server side parts at the MUAs' default that it was Dovecot doing that. However, I think it's probably closer to the truth that at one time an MUA I used, probably ElM, set up ~/Mail and it had somehow been found ever since. And I still don't know what the heck happend, why all the sudden the Gingerbread default "Email" app didn't work like that.
But looking at this in hindsight, I will show you my best guess at what was throwing a monkeywrench into the entire works:
20:30:04 rchandra@sal9000:~ 0> du -sk 11457296 . 20:30:14 rchandra@sal9000:~ 0> du -sh 11G . 20:30:19 rchandra@sal9000:~ 0>
My best guess is that both the IMAP daemon and the poor, limited RAM tablet were trying to deal with 11GB of "mail" in my home directory. They were both likely choking rather mightily on the multi-gigabyte virtual machine hard disk image which is in the QEmu subdirectory, among other reasons.
This was an extraordinarily easy fix. I went into the tablet's incoming server settings for sal9000, specified "Mail" as "IMAP prefix path," and the IMAP client worked fine. So take a slightly painful lesson from me, and work with fewer assumptions instead of more when computer problem solving.
UPDATE from 21-Jun-2012: I really didn't want to do without my folders for filing away my email, and none were showing up by specifying the prefix. So I decided I would snoop in on an IMAP session to see why imapd was chewing CPU and K-9 Mail was crashing. Actually, I found out it's decidedly worse.
At one time, I was experimenting with delivery to maildirs. As those in the know know, there are three subdirectories in that format: new, cur, and tmp. I didn't want a whole new tree, so I decided to make some symlinks, all to "." So...imapd told K-9 (in essence) "there appears to be a folder here, not with email, but with a bunch of subfolders, named 'new.'" K-9 faithfully said, "OK, whatcha got?" Imapd faithfully replied, "well, seems inside 'new' there are more folders, at least one of them which is named 'new.'" And K-9 asked, "well, what's inside new/new then?" wherein imapd replied, "seems there's a new/new/new there." And so on went the conversation, basically ending when K-9 filled up my poor tablet's RAM, and imapd probably filled up nearly 2.5GB of RAM and 1GB of swap, and probably also eventually died...but not before really messing with my computer. Yesterday, it locked up hard, requiring not the three finger salute, but a holding of the power button. As best as I can figure, this unusual taxing of the system was its demise.
Direct all comments to Google+, preferably under the post about this blog entry.
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 one of the fastest growing social networks, Google+!
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+!
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+!
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+!
10 December, 2011
I've Just About "Had It" with the Microsoft Family of OSes
(jump to the 12-Dec-2011 update)
I've really "had it" with the quirkiness of Microsoft operating systems. I just spent about four hours over three sessions (about an hour from 2130 to 2230, about another two hours remotely from home from 2300 ET to 0100 the next morning (this morning), and another hour or so a few hours after sunrise today) trying to figure out why my XP profile wouldn't "stick." Mind you, this is on a computer on a domain which is not mine (belongs to the folks who are contracting my services), so there are certain limitations which I cannot control (such as whether or not to use Active Desktop).
I guess I should take a paragraph to "step back" and explain the whole employment situation. I work directly for Computer Plus Staffing Solutions, the FinancialPeople division. And that's really only due to the existing relationship with FP of a financial director of the company where I (do the) work. I don't really do anything financial at all, such as accounting, which is weird why I'm an employee of FP. I'm doing mostly Avaya (PBX) administration. Mostly what I'm tasked with is adding users, removing them when they're separated/terminated, and the associated backend record keeping (e.g. we gave Smith a Sonexis Conferencing account related to his phone, so when he goes, not only do we remove his station, we also delete the conferencing credentials). The company where I work (not sure if I'm allowed to mention them), due to a merger happening soon, is unsure about their future, so in order not to have to worry about the legal requirements of short-term employment, they wanted the arrangement as a contractor instead of a direct-hire. And I didn't want to have to worry about all the legalities of running my own business (directly contracting with the company where I work), so I'm going though this temp. staffing agency.
It all started after a business day which seemed never to end, with wonderful challenges, and some great discussions on planning for the future direction of operations. In particular we were talking about things like taking Excel workbooks and turning them into SharePoint lists, setting up no-longer-used Avaya gear as a nonproduction switch (with due concern for the networking people with a strict policy of not having dev and prod systems on the same network). It was getting late, having been there around 11 hours already (elapsed time, not working the entire time, mind you) when I logged in just to take a look at one more thing. Things were proceeding normally enough...except neither the desktop nor the taskbar were appearing, the essential root functions of the explorer.exe Windows shell. I thought, "that's odd..." and used the usual Ctrl-Alt-Del t to run the task manager. And I ran another copy of explorer.exe with it. Well...the desktop and task bar appeared, the items in the startup folder ran...so that logon session seemed to be salvaged. But I logged out, then remembered, hey, there once again was one more thing ("honest this time!") I wanted to look at. It was at this time I got the dreaded...Setting up Internet Explorer. And of course, my %USERPROFILE% now had a "." and the domain name in all upper case appended to it. Mind you, this was a particularly crushing "defeat," which I'll try to explain (as Paul Harvey would say) the rest of the story....
I'd like to take you on a little flashback of sorts. Like many companies, the usual policy when bringing someone in is to give the new hire a fresh workstation OS and app build (using Symantec Ghost in this case, as is quite popular with larger companies). But I guess everyone except the site support/help desk people thought what was there was just fine, having been used by two or three previous employees filling the same role as I was performing. I wouldn't need to spend any additional time installing software, such as Avaya Site Administration (ASA) or other various and sundry tools a telecomm tech might use. As it is, I wanted more software on there than was on there anyway, such as Cygwin, the 2003 administration tools for XP, copy path to clipboard, JoeWare's sectok...quite a few things actually which I find extraordinarily useful. So I did spend virtually the entire first day there poking around to see what was there, and downloading and supplementing it with the tools I like. But then I sought a little improvement.
When accessing their trouble ticket tracking system, Altiris, every time I brought up a results page (such as the list of tickets assigned to me) for the first time after opening IE, I would get a big, honking window pop up with an OK button, the contents of which seemed to indicate the ActiveX component used to display and interact with that results list was unlicensed. Really, it was just a minor annoyance; all one had to do is click the OK button, and that session was good-to-go, without any more popups. So I decided to report this by fillling out an Altiris incident.
One of the fine service desk techs gave my system the once-over, and tried some things, all before I arrived the next morning. He said, and I had to agree, he had already spent...oh, I don't know, let's say a half or three-quarters of an hour ...and was no closer to eliminating this unnecessary popup. He also remarked it was a build he's never seen before, and was highly nonstandard. Again, I had to agree with him; there were things like Wireshark and SnagIt on there, things not typically on a corporate computer unless the user has specific use for them. So, he could putter around with it for hours, and still not have any success at eliminating the popup annoyance, or use Ghost. So, let's schedule a time (which should take about an hour to an hour and a half) to reimage your machine. "Hmmm...yeah, that'd probably do it all right," I was thinking, but the key part is I would have to do some "homework" to find out, of the things installed, what would I really need, and from where could I get that software? So, essentially we both put our little rebuild project on hold. Plus, it would give us an opportunity to figure out which package in particular, after installation (or possibly use), was causing this popup anomaly to manifest. And as an added benefit, we could devise how to deploy the things I needed automatically, such as ASA, instead of a telecomm tech having to install it themselves. After all, there are a few dozen packages which were set up for remote installation from some sort of Altiris inventory control console page.
I actually held off on this a while because after all, it was just an improvement; this popup was just a nuisance and didn't prevent me from doing my work. But Windows, being the quirky little black box that it is, was not content to do that, and let me live in peace. No, about a week or so after I told our service desk engineer that I wasn't sure how to get all the files I needed (in particular, which versions of the stuff stored out there were appropriate for putting on my workstation), I logged in to the dismay of seeing all my settings, all my customizations, all my everything ***GONE*** . Oh, mind you, Cygwin was still there, copypath, cmd here...all that stuff was ready to be used again, but ***EVERYTHING*** would have to be reconfigured. I even took a look, as admin so there would be no access permission issues, at the scorched remains of what was my former %USERPROFILE%. Nothing was left, except for the "Application Data" folder, and a few empty folder levels below that. What's worse, every time I would log on, a new %USERPROFILE% would be created, and no settings would stick. Heck, I was all the way up to me.DOMAIN.004 (I think it was) before I had any luck at all running anything close to normally.
I thought, I cannot tolerate setting up EVERYTHING every single time I log in, so I'll finish up the urgent incidents (such as the teminations), and I'll finally give them the word to trash what was on there. But by the time I had nailed all that down, it was near the end of the day (1900 hours), where the person who could initiate the rebuild would have to leave; he would need at least 10 minutes to do all the necessary procedural steps. Well, OK...it is what it is. I repeated this the next day, except for the part where I came to the service desk too late. We basically kicked it off, watched it go part way, but eventually just let it do its thing overnight.
I came in the next morning, and basically started the whole process over again, like I'd just arrived on the job for the first day. Except this time around, I had accumulated all the installation sources, because as is my habit, I don't just download stuff to some temp directory; I set aside a definitive installation directory, usually some variation on /usr/local/lib/inst (in this case, drive 0 was partitioned into C: and D:, so this happened to be D:\usr\local\lib\inst). Before ordering the wipe of my 'puter, I had copied virtually the entire contents of D:\ up to my network "home" directory, around 2GB. And in fact, before I headed into the office that morning, I logged in via Citrix, then RDP, to initiate a copy of that data back to the (now blanked out) D:\ drive. So, I installed a bare minimum of stuff (ASA, asked for all the links again to the Web-administered stuff, and so on).
For about the next week, which culminated in last night, I would mix performing the job duties with installing and configuring some niceties, such as SudoWin, Cygwin, Firefox, and so on. As the week progressed, there would be a couple things every day which I remember now I could really use this or that, and would install/configure it, or just plain play around with the system (such as setting up a service, set to interactive, which executes CMD, thus giving an on-demand command shell with the SYSTEM security token...the superuser of Windows).
And so it went, until last night, when, as I wrote previously, some software somewhere along the way wedged, and caused XP all manner of grief, and by extension, me too. It was probably some in-use files, or programs which wouldn't close them properly, which caused the login process not to trust what should have been my %USERPROFILE%, and for it to create a brand new version of one. Except, this one wasn't quite as bad as the early part of this week; the previous profile wasn't empty, it still seemed to have most if not all the files and folders there. So, let me try to relate the things I tried this time 'round after getting over the incredulity.
The first thing of course was to copy completely the profile directory. That way, if XP decided to wipe it out again, at least I'd be able to "get at" things like shortcuts, URL shortcuts, the NTUSER.DAT (probably can load it as another hive tree and export subtrees, such as the PuTTY session settings). What was most disturbing after logging on and off a few times is that the "system control panel" (the advanced tab, button for profiles) was marking my profile as "Temporary" (ugh!). This I guess definitely means nothing will be saved on logoout. Of course, the thing to try is putting a copy of the profile where the system expects it (y'know, Documents and Settings\username) and hope for the best. This used to work great under NT 4 anyway, and a lot of times works for XP. Do you think it'd work? Not on your life. So then I tried the sysctrl panel profile copy feature, specifying my domain user as "allowed to use." Again, that didn't quite work.
Next, I surmised there was an ownership issue, so I whipped out setacl and recursively set the ownership of my profile directory to my domain user SID. This time...well...this time things started getting very weird. On login, an error would pop up about something wrong with my Active HTML folder for my desktop. I hate Active Desktop, but it's the only Microsoft-sanctioned way to force a uniform look to everyone's desktop (background color, background image, and so on) through GPOs. What's worse, pieces of the XP Explorer left pane were along the left of about a third of my RDP window, with what looks like the rest of the desktop to the right of that. And if explorer.exe was killed, it's like a layer was removed and some previously hidden windows appeared.
What really "gets" me is that making my domain username admin of that workstation would, at least a couple of times, cause "normal" profile behavior (it would stick). But I don't want to run as admin all the time. It's just really, really bad SOP. That's why I use SudoWin extensively: start out lowly, and elevate privileges when required. (...not this UAC nonsense of being admin but interfering when doing admin-ish things.)
Sadly, most errors go away, including this HTML desktop one, if I make myself admin before logging in.
I even tried blowing the whole profile away (with explorer), and basically starting afresh. Yeah, well...you'd think that might help, but it didn't. Then I even tried using that system control panel profile manipulation tool to delete the profile, figuring there was some other stupid, arcane, backend hoo-hah which would be updated appropriately when using the sanctioned tool instead of simply deleting the profile directory. Alas, that wasn't much help either.
What I'm most concerned about is that, I will have lost about another week's worth of work, providing I have to tell these folks to reimage my workstation...AGAIN. And it's probably something exceedingly stupid, like an ACL somewhere seems dodgy and the login process doesn't think it's "safe." And who knows; maybe the all users folder and/or default user profile got corrupted somehow, and all I'd need would be a precise restoration of C:\Documents and Settings and all might get back to what passes for normal under Windows.
As it stands presently, I want to eliminate the RDP and Citrix angle, although I don't think that should have significant effect...meaning waiting and stewing about this until Monday morning. I have a profile which sticks, but I think last time I logged in I was admin.
It's just all f'ed up. This sort of thing should be straightforward and obvious. The way to fix it likewise should be straightforward and obvious. When the system thinks something is wrong and it feels only starting a new profile will be safe, the login process should prominently display not only what's wrong, but the specific object which is unsuitable...not merely "logging you on with a temporary profile," but what specific folder in the profile folder, or what specific registry entry it doesn't like, and specifically what it doesn't like (such as the specific ownership or ACE problem). What's worse, I've seen the "logging you on with a temp profile" message before (years ago), but this time I didn't see any such warning/error message.
But I guess that's asking waaaaaayyyy too much from Microsoft. After all, they are the folks of "page cannot be displayed" and "bad command or filename," instead of "DNS name not found"/"Connection refused"/"No route to host" and "XXX is neither a builtin nor found in your PATH" like real people would like to know. In other words, provide a useful error message? Why would a user want that? We have to dumb it down, ostensibly for the user to be ABLE to understand it.
I guess I could sum it up with, I'm sick of wasting hours and hours of my time because of things like this.
UPDATE, 12-Dec-2011:
It is the considered opinion of "the powers that be" that the reason that workstation1 does not "hold" a profile for a "normal" (e.g., non admin) user is that the guest account and anyone logging in are inexhorably intertwined somehow, and that somehow SudoWin is to blame. Well.....no. I call shenanigans. The most I will be willing to admit is SudoWin plus some other piece of software on there (such as maybe the Win2K3 admin tools for XP, which does several system DLL replacements, not necessarily correctly in the case of some releases) might be to blame. The latter is the only thing which makes sense. It's the last thing I installed, either Thursday or Friday. It was operating quite fine up 'til then. I still don't believe it, but I'll be very, very hasty to point out, that's all it is: a belief. I have no hard evidence otherwise, so I must rely on the opinion of the caretakers of the domain of these machines. SudoWin I'm asymptotic to 100% sure is in use around the world on thousands if not millions of XPSP3 systems. and I'll bet only a scant handful like this one have any trouble whatsoever related to such profiles.
Still...reality encroaches. Where I'm working, the business is not Windows engineering, it's something else entirely which just so happens to use some of that. Therefore noone involved wants the correct answer. All we (yes, "we"...including me) want is an expedient solution. My intellectual sense really wants to figure this out, but my business sense says I've got to get back to the job at hand. It's a pie-in-the-sky world where we can all take the time to pursue such theoretical tangents. The harsher reality is that we have to settle for expedient to make progress.
1I'm actually trying to be more careful now not to call it "my workstation" as I have absolutely no title whatsoever to it, and I acknowledege the company where I'm working graciously allows me to use it.
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+!
I've really "had it" with the quirkiness of Microsoft operating systems. I just spent about four hours over three sessions (about an hour from 2130 to 2230, about another two hours remotely from home from 2300 ET to 0100 the next morning (this morning), and another hour or so a few hours after sunrise today) trying to figure out why my XP profile wouldn't "stick." Mind you, this is on a computer on a domain which is not mine (belongs to the folks who are contracting my services), so there are certain limitations which I cannot control (such as whether or not to use Active Desktop).
I guess I should take a paragraph to "step back" and explain the whole employment situation. I work directly for Computer Plus Staffing Solutions, the FinancialPeople division. And that's really only due to the existing relationship with FP of a financial director of the company where I (do the) work. I don't really do anything financial at all, such as accounting, which is weird why I'm an employee of FP. I'm doing mostly Avaya (PBX) administration. Mostly what I'm tasked with is adding users, removing them when they're separated/terminated, and the associated backend record keeping (e.g. we gave Smith a Sonexis Conferencing account related to his phone, so when he goes, not only do we remove his station, we also delete the conferencing credentials). The company where I work (not sure if I'm allowed to mention them), due to a merger happening soon, is unsure about their future, so in order not to have to worry about the legal requirements of short-term employment, they wanted the arrangement as a contractor instead of a direct-hire. And I didn't want to have to worry about all the legalities of running my own business (directly contracting with the company where I work), so I'm going though this temp. staffing agency.
It all started after a business day which seemed never to end, with wonderful challenges, and some great discussions on planning for the future direction of operations. In particular we were talking about things like taking Excel workbooks and turning them into SharePoint lists, setting up no-longer-used Avaya gear as a nonproduction switch (with due concern for the networking people with a strict policy of not having dev and prod systems on the same network). It was getting late, having been there around 11 hours already (elapsed time, not working the entire time, mind you) when I logged in just to take a look at one more thing. Things were proceeding normally enough...except neither the desktop nor the taskbar were appearing, the essential root functions of the explorer.exe Windows shell. I thought, "that's odd..." and used the usual Ctrl-Alt-Del t to run the task manager. And I ran another copy of explorer.exe with it. Well...the desktop and task bar appeared, the items in the startup folder ran...so that logon session seemed to be salvaged. But I logged out, then remembered, hey, there once again was one more thing ("honest this time!") I wanted to look at. It was at this time I got the dreaded...Setting up Internet Explorer. And of course, my %USERPROFILE% now had a "." and the domain name in all upper case appended to it. Mind you, this was a particularly crushing "defeat," which I'll try to explain (as Paul Harvey would say) the rest of the story....
I'd like to take you on a little flashback of sorts. Like many companies, the usual policy when bringing someone in is to give the new hire a fresh workstation OS and app build (using Symantec Ghost in this case, as is quite popular with larger companies). But I guess everyone except the site support/help desk people thought what was there was just fine, having been used by two or three previous employees filling the same role as I was performing. I wouldn't need to spend any additional time installing software, such as Avaya Site Administration (ASA) or other various and sundry tools a telecomm tech might use. As it is, I wanted more software on there than was on there anyway, such as Cygwin, the 2003 administration tools for XP, copy path to clipboard, JoeWare's sectok...quite a few things actually which I find extraordinarily useful. So I did spend virtually the entire first day there poking around to see what was there, and downloading and supplementing it with the tools I like. But then I sought a little improvement.
When accessing their trouble ticket tracking system, Altiris, every time I brought up a results page (such as the list of tickets assigned to me) for the first time after opening IE, I would get a big, honking window pop up with an OK button, the contents of which seemed to indicate the ActiveX component used to display and interact with that results list was unlicensed. Really, it was just a minor annoyance; all one had to do is click the OK button, and that session was good-to-go, without any more popups. So I decided to report this by fillling out an Altiris incident.
One of the fine service desk techs gave my system the once-over, and tried some things, all before I arrived the next morning. He said, and I had to agree, he had already spent...oh, I don't know, let's say a half or three-quarters of an hour ...and was no closer to eliminating this unnecessary popup. He also remarked it was a build he's never seen before, and was highly nonstandard. Again, I had to agree with him; there were things like Wireshark and SnagIt on there, things not typically on a corporate computer unless the user has specific use for them. So, he could putter around with it for hours, and still not have any success at eliminating the popup annoyance, or use Ghost. So, let's schedule a time (which should take about an hour to an hour and a half) to reimage your machine. "Hmmm...yeah, that'd probably do it all right," I was thinking, but the key part is I would have to do some "homework" to find out, of the things installed, what would I really need, and from where could I get that software? So, essentially we both put our little rebuild project on hold. Plus, it would give us an opportunity to figure out which package in particular, after installation (or possibly use), was causing this popup anomaly to manifest. And as an added benefit, we could devise how to deploy the things I needed automatically, such as ASA, instead of a telecomm tech having to install it themselves. After all, there are a few dozen packages which were set up for remote installation from some sort of Altiris inventory control console page.
I actually held off on this a while because after all, it was just an improvement; this popup was just a nuisance and didn't prevent me from doing my work. But Windows, being the quirky little black box that it is, was not content to do that, and let me live in peace. No, about a week or so after I told our service desk engineer that I wasn't sure how to get all the files I needed (in particular, which versions of the stuff stored out there were appropriate for putting on my workstation), I logged in to the dismay of seeing all my settings, all my customizations, all my everything ***GONE*** . Oh, mind you, Cygwin was still there, copypath, cmd here...all that stuff was ready to be used again, but ***EVERYTHING*** would have to be reconfigured. I even took a look, as admin so there would be no access permission issues, at the scorched remains of what was my former %USERPROFILE%. Nothing was left, except for the "Application Data" folder, and a few empty folder levels below that. What's worse, every time I would log on, a new %USERPROFILE% would be created, and no settings would stick. Heck, I was all the way up to me.DOMAIN.004 (I think it was) before I had any luck at all running anything close to normally.
I thought, I cannot tolerate setting up EVERYTHING every single time I log in, so I'll finish up the urgent incidents (such as the teminations), and I'll finally give them the word to trash what was on there. But by the time I had nailed all that down, it was near the end of the day (1900 hours), where the person who could initiate the rebuild would have to leave; he would need at least 10 minutes to do all the necessary procedural steps. Well, OK...it is what it is. I repeated this the next day, except for the part where I came to the service desk too late. We basically kicked it off, watched it go part way, but eventually just let it do its thing overnight.
I came in the next morning, and basically started the whole process over again, like I'd just arrived on the job for the first day. Except this time around, I had accumulated all the installation sources, because as is my habit, I don't just download stuff to some temp directory; I set aside a definitive installation directory, usually some variation on /usr/local/lib/inst (in this case, drive 0 was partitioned into C: and D:, so this happened to be D:\usr\local\lib\inst). Before ordering the wipe of my 'puter, I had copied virtually the entire contents of D:\ up to my network "home" directory, around 2GB. And in fact, before I headed into the office that morning, I logged in via Citrix, then RDP, to initiate a copy of that data back to the (now blanked out) D:\ drive. So, I installed a bare minimum of stuff (ASA, asked for all the links again to the Web-administered stuff, and so on).
For about the next week, which culminated in last night, I would mix performing the job duties with installing and configuring some niceties, such as SudoWin, Cygwin, Firefox, and so on. As the week progressed, there would be a couple things every day which I remember now I could really use this or that, and would install/configure it, or just plain play around with the system (such as setting up a service, set to interactive, which executes CMD, thus giving an on-demand command shell with the SYSTEM security token...the superuser of Windows).
And so it went, until last night, when, as I wrote previously, some software somewhere along the way wedged, and caused XP all manner of grief, and by extension, me too. It was probably some in-use files, or programs which wouldn't close them properly, which caused the login process not to trust what should have been my %USERPROFILE%, and for it to create a brand new version of one. Except, this one wasn't quite as bad as the early part of this week; the previous profile wasn't empty, it still seemed to have most if not all the files and folders there. So, let me try to relate the things I tried this time 'round after getting over the incredulity.
The first thing of course was to copy completely the profile directory. That way, if XP decided to wipe it out again, at least I'd be able to "get at" things like shortcuts, URL shortcuts, the NTUSER.DAT (probably can load it as another hive tree and export subtrees, such as the PuTTY session settings). What was most disturbing after logging on and off a few times is that the "system control panel" (the advanced tab, button for profiles) was marking my profile as "Temporary" (ugh!). This I guess definitely means nothing will be saved on logoout. Of course, the thing to try is putting a copy of the profile where the system expects it (y'know, Documents and Settings\username) and hope for the best. This used to work great under NT 4 anyway, and a lot of times works for XP. Do you think it'd work? Not on your life. So then I tried the sysctrl panel profile copy feature, specifying my domain user as "allowed to use." Again, that didn't quite work.
Next, I surmised there was an ownership issue, so I whipped out setacl and recursively set the ownership of my profile directory to my domain user SID. This time...well...this time things started getting very weird. On login, an error would pop up about something wrong with my Active HTML folder for my desktop. I hate Active Desktop, but it's the only Microsoft-sanctioned way to force a uniform look to everyone's desktop (background color, background image, and so on) through GPOs. What's worse, pieces of the XP Explorer left pane were along the left of about a third of my RDP window, with what looks like the rest of the desktop to the right of that. And if explorer.exe was killed, it's like a layer was removed and some previously hidden windows appeared.
What really "gets" me is that making my domain username admin of that workstation would, at least a couple of times, cause "normal" profile behavior (it would stick). But I don't want to run as admin all the time. It's just really, really bad SOP. That's why I use SudoWin extensively: start out lowly, and elevate privileges when required. (...not this UAC nonsense of being admin but interfering when doing admin-ish things.)
Sadly, most errors go away, including this HTML desktop one, if I make myself admin before logging in.
I even tried blowing the whole profile away (with explorer), and basically starting afresh. Yeah, well...you'd think that might help, but it didn't. Then I even tried using that system control panel profile manipulation tool to delete the profile, figuring there was some other stupid, arcane, backend hoo-hah which would be updated appropriately when using the sanctioned tool instead of simply deleting the profile directory. Alas, that wasn't much help either.
What I'm most concerned about is that, I will have lost about another week's worth of work, providing I have to tell these folks to reimage my workstation...AGAIN. And it's probably something exceedingly stupid, like an ACL somewhere seems dodgy and the login process doesn't think it's "safe." And who knows; maybe the all users folder and/or default user profile got corrupted somehow, and all I'd need would be a precise restoration of C:\Documents and Settings and all might get back to what passes for normal under Windows.
As it stands presently, I want to eliminate the RDP and Citrix angle, although I don't think that should have significant effect...meaning waiting and stewing about this until Monday morning. I have a profile which sticks, but I think last time I logged in I was admin.
It's just all f'ed up. This sort of thing should be straightforward and obvious. The way to fix it likewise should be straightforward and obvious. When the system thinks something is wrong and it feels only starting a new profile will be safe, the login process should prominently display not only what's wrong, but the specific object which is unsuitable...not merely "logging you on with a temporary profile," but what specific folder in the profile folder, or what specific registry entry it doesn't like, and specifically what it doesn't like (such as the specific ownership or ACE problem). What's worse, I've seen the "logging you on with a temp profile" message before (years ago), but this time I didn't see any such warning/error message.
But I guess that's asking waaaaaayyyy too much from Microsoft. After all, they are the folks of "page cannot be displayed" and "bad command or filename," instead of "DNS name not found"/"Connection refused"/"No route to host" and "XXX is neither a builtin nor found in your PATH" like real people would like to know. In other words, provide a useful error message? Why would a user want that? We have to dumb it down, ostensibly for the user to be ABLE to understand it.
I guess I could sum it up with, I'm sick of wasting hours and hours of my time because of things like this.
UPDATE, 12-Dec-2011:
It is the considered opinion of "the powers that be" that the reason that workstation1 does not "hold" a profile for a "normal" (e.g., non admin) user is that the guest account and anyone logging in are inexhorably intertwined somehow, and that somehow SudoWin is to blame. Well.....no. I call shenanigans. The most I will be willing to admit is SudoWin plus some other piece of software on there (such as maybe the Win2K3 admin tools for XP, which does several system DLL replacements, not necessarily correctly in the case of some releases) might be to blame. The latter is the only thing which makes sense. It's the last thing I installed, either Thursday or Friday. It was operating quite fine up 'til then. I still don't believe it, but I'll be very, very hasty to point out, that's all it is: a belief. I have no hard evidence otherwise, so I must rely on the opinion of the caretakers of the domain of these machines. SudoWin I'm asymptotic to 100% sure is in use around the world on thousands if not millions of XPSP3 systems. and I'll bet only a scant handful like this one have any trouble whatsoever related to such profiles.
Still...reality encroaches. Where I'm working, the business is not Windows engineering, it's something else entirely which just so happens to use some of that. Therefore noone involved wants the correct answer. All we (yes, "we"...including me) want is an expedient solution. My intellectual sense really wants to figure this out, but my business sense says I've got to get back to the job at hand. It's a pie-in-the-sky world where we can all take the time to pursue such theoretical tangents. The harsher reality is that we have to settle for expedient to make progress.
1I'm actually trying to be more careful now not to call it "my workstation" as I have absolutely no title whatsoever to it, and I acknowledege the company where I'm working graciously allows me to use it.
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+!
Subscribe to:
Posts (Atom)