Showing posts with label Personal. Show all posts
Showing posts with label Personal. Show all posts

Friday, August 16, 2013

Thirty Two Years Ago...

Debbie and I were married on this day in 1981 – 32 years ago.  Despite years of experience, she's still putting up with me :)

Today we celebrated in a very low-key way.  First we journeyed over our local back roads to Pine Valley, where we had a fish sandwich and fries at Frosty Burger (best fast food in the known universe).  The fries were absolutely perfect.  Then we drove up a Forest Service road that leads from just west of Pine Valley up to the Sunrise Highway north of Mt. Laguna.  The first part of this road is paved, but we turned off the pavement onto a 4WD road that stays downhill and west of the Mt. Laguna massif (which runs roughly north/south). 

There wasn't a lot of wildlife to see there today, though we did get a brief glimpse of a male Western tanager – just his back as he flew across the road below us.  We don't often come out this way in the summertime, as it's very hot and dry – and the wildflowers are long gone.  Except there was one wildflower there in abundance, a new one to me even after all these years (first photo below).  The mountain mahogany were prime, and very abundant.  And in one particular spot we ran across lots of a plant we don't know bearing red berries. 

Despite the lack of exciting scenery, it was still a very pleasant drive.  When we hit the Sunrise Highway, we looped back around to Cuyamaca Park and into the Stonewall Mine road, hoping for some deer – and we did see one.  Just one :)

Now we're back home, did the chores, and we're just chilling out for the rest of the day...

BTW, the photos below were all taken with a tiny little pocket camera: a Nikon CoolPix S4300.  I got this camera for my mom, and I'm learning how to use it – so that I can show her while I'm visiting next week.  It's been quite a few years since I've last used a pocket camera.  They've come a long, long way – both in capability and in ease of use.  Also, the automation is remarkably good.  I'm deliberately using only the full auto mode, as I'm pretty sure my mom will use only them.  I'm finding that the camera nearly always does exactly what I want it to do. 

The touch screen on the back allows a feature I've never used before, but have already fallen in love with: while you're viewing the scene you want to take a photo of, you can touch the part you want exposed correctly and focused on – and the camera just does it.  For example, you might compose a photo with someone's face in the lower left corner, and a distant scene in the rest of the frame.  By simply touching the person's face on the screen, you're telling the camera to focus there, adjust the exposure to suit the face's illumination, and take the photo.  One touch does all that.  Nice!

The mystery flower that we've never seen before because we don't venture onto Mt. Laguna in the summer.  The flowers are about dime-sized.

Mountain mahogany seeds.

Close up of the mountain mahogany seeds (zoomed to telephoto, shooting from about 3 feet away).

The obligatory FJ shot!

Mystery berries...

Wednesday, June 26, 2013

Mark on Nigel...

Mark Steyn – one of my favorite political commentators – talks about Nigel Farage – one of my favorite politicians.  Read the whole thing.

Weird personal note: my father was a nurseryman and horticulturalist for many years.  In the '50s and '60s, he specialized in American Holly, and patented several varieties (as did his father before him).  One of his patented varieties was named “Farage”.  I have no idea why my dad chose that particular name, which at the time didn't appear in any English dictionary.

Update: my mom tells me that Farage was not one of my dad's varieties, but instead is attributed to Miss Elizabeth White (doesn't that sound very old fashioned now, saying “Miss”?), from the Pine Barrens of New Jersey...

Tuesday, May 7, 2013

Bidding on the Impossible Job...

I ran across this funny story about someone advertising a request for bids on an impossible programming job – and then getting (apparently) serious responses!

After I was done laughing, though, I started thinking about my very first programming job (that is, programming I did for money).  It happened much as in this story, except that it was before the Internet, so it all happened by snail mail.  Here's the outline:

The year was 1976.  Don Tarbell (founder of the then-famous Tarbell Electronics) had some very successful S100 boards, most especially his floppy disk interface.  He wanted a low cost Basic interpreter that he could sell along with his floppy boards; something that would compete with the dominant Microsoft Basic.  So he placed an ad in a computer hobbyist magazine (probably either TCH or Byte, but I've forgotten) asking for a quote on a Basic interpreter, written using “structured programming” techniques.  The ad was short, and very light on details; I'm sure Don was expecting it to be a catalyst for a more detailed discussion.

At that point I was still enlisted in the U.S. Navy.  Someone pointed out the ad to me, and suggested that I respond.  Those who know me will have trouble understanding just how incredibly naive I was back then about the ways of business.  Well, maybe they'll have trouble :)  Anyway, there were several very good reasons why my responding was completely crazy.

For starters, I had no idea what Basic was.  I'd never seen Basic, never written any Basic programs.  In fact, I'd never used a high level language of any kind.  My entire programming experience at that point was in machine code and assembly language (which, to me, was a high level language - macros!).

Then there was the niggling little detail that I didn't have any kind of programming environment.  I owned a 4MHz Z80 computer that I'd built from a kit, with 64 KB of RAM (woo hoo!).  The 5V linear power supply on that thing weighed about 50 pounds, and the computer put out enough heat to warm up a good sized room.  But there was no mass storage on it, and I didn't even have an assembler program.

Another challenge was that I didn't actually have a business yet, and I knew utterly nothing about contracts.  I also knew absolutely nothing about negotiations, or licensing, or anything else that smacked of business.

What I did know how to do was to write assembly language programs.  I figured that nothing else really mattered much.

So I wrote Don Tarbell a letter.  It was hand-printed in ink on Teletype roll paper, which is what I had at hand.  I wish I had a copy of that letter, but I don't.  It wasn't very long, and I can relate the important details from memory: I told Don that I'd write that Basic interpreter for $2,000, and that I'd deliver it in four months.  I dropped it in the post and forgot about it.

A few weeks later, I got a letter back from Don, telling me that if I could deliver that interpreter by the agreed date, he'd buy it from me.  As I recall, he had just one specific request: he wanted it to eliminate line numbers.  I agreed to his conditions and got to work.

Much later I had a conversation with Don wherein he told me that he had received several bids.  Most of them were for well over $100,000.  The bid closest to mine was for about $50,000.  The fastest delivery time quoted was close to a year, and a couple of them were for well over a year.  These bids were all from companies that routinely did programming jobs.  Don could tell from my letter (posted from the U.S.S. Long Beach!) that I was absolutely an amateur.  He judged it quite unlikely that I could deliver a usable product in the time given, but he also figured the risk to him was zero – so why not give me a chance?  That's the only reason I got the contract.

But back to my project.  The first thing I had to do was to get some kind of mass storage on my system – so I bought a couple floppy disk drives and a floppy interface card from Don.  Then I had to get an assembler.  I found a complete code listing for one in a magazine, typed it all in, got it to work, and then modified the crap out of it.  I added capability for “long” symbols (more than 6 characters!) and lots of debugger enhancements.  All this preparation took about a month of my four months, so I had just three months left.

I got to work.  I got a bootleg copy of Microsoft Basic and just played with it until had learned what the Basic language was all about.  I had no idea how to write an interpreter, and I had no reference material to work from.  There was no Internet for me to Google.  So I just thought about how to make one, and started writing code.  All my assembly language experience served me well during this work.  I understood a lot about how to write compact and efficient code, and I understood the capabilities and limitations of the Z-80 (that was my target machine) very well.  Interpreters for a simple language like Basic are actually quite straightforward beasts.  You don't have to worry about concurrency, for example.  The challenges were mainly in getting the code small enough to fit easily in 16 kb or less of RAM while still be fast enough to be useful. 

As things turned out, I spent most of my development time in two areas: the floating point math package, and the string package.  I probably spent two solid weeks simply on printing a formatted number.  Those areas were really the only parts that turned out to be difficult to write.

I wish I'd kept the notes and “design documents” for all that work, just to amuse myself (and perhaps others).  The designs were all done in my own made-up pseudocode, in pencil on scratch paper.  The pseudocode mostly made it into the assembly language comments, which helped when debugging.  I made liberal use of macros for some of the common structured programming constructs (such as  a “while” loop). 

Don would call me every few weeks, I suspect just to see if I'd given up yet.  As the delivery date approached, Don started to sound a little excited – the list of remaining Basic commands to implement started getting quite short.  In fact, I finished them all by about three weeks before the delivery deadline – but of course I had numerous bugs, some of them quite nasty “crashers” that would take out the entire system.  For that last three weeks or so, all I did was test, debug, and fix, in a cycle that seemed to repeat endlessly.

Just a couple of days before the deadline, I started to gain some confidence that I had built something deliverable.  My test programs were largely working.  There were some performance issues (especially with transcendental functions, like sines or logarithms), but in general my interpreter was faster than Microsoft Basic.  That really isn't an apples-and-apples comparison, as the Microsoft interpreter worked on 8080 machines (which the Z80 was compatible with, but extended).  I took advantage of the extra power of the Z80, which by that time dominated the personal computer scene.  But still...to beat Microsoft at that game felt pretty good.

I didn't sleep at all for the two days prior to the deadline.  I spent that entire time polishing every little thing I could.  Then I climbed into my beater of a car and made the drive up to Carson, California (a hundred miles or so north of where I lived at the time) to deliver it to Don.

When I walked into his shop I was  entranced.  Hardware was everywhere, and there were dozens of floppy systems set up for assembly or testing.  Don dropped everything else and we sat down together to install and demonstrate the interpreter on his system.  We had no trouble at all, really. He typed in a few short test programs, and got a big grin as they all worked just like he expected.  He then told me he had a “test suite” (something I'd never heard of at the time :) that he'd written and wrung out on Microsoft Basic, and he wanted to try it on mine.

That was a terrifying moment for me.  Once he'd explained what the test suite was, I instantly saw both the utility of it and the nearly infinite possibilities it provided for failure.  I was agonizing about this as he loaded up that test suite and kicked it off.  It printed out its progress as things went along, with the name of a test followed by “OK”, “Error”, or “Delta”. after it.  The “Delta” meant the result was different than Microsoft Basic, but not necessarily wrong.  As I recall, his test suite had about 200 tests in it, and the results were about 150 OK, 10 Error, and the rest Delta.  I was behind Don as he ran this, so I didn't know how he was reacting until he turned around.  He had an ear-to-ear grin, stuck out his hand for a handshake, and said “Accepted!”  Later he told me that he expected it to crash on his test suite, and that he was astonished to find it in such close correspondence to Microsoft Basic.  Whew!

Don handed me a check for $2,000 and took me out to lunch.  He then asked if I'd be willing to contract with him for enhancements and bug fixes.  My assumption was that the bug fixes were my responsibility, so when he said he was willing to pay for them I was very happily surprised :)  That started a collaboration that lasted several years.  Don kept coming up with ideas for enhancements, and we constantly nibbled away at performance issues.  He was delighted to be able to boast that Tarbell Basic (as he named it) was faster than Microsoft Basic, even though that wasn't one of the initial requirements.  That collaboration is what got me started on a career in software.  What a start!

Tarbell Basic never was a big commercial success for Don.  I know he got some satisfaction from it, though, and he did more than recover his costs.  After Don was done with enhancements, another company (the now-defunct NH Research) decided to use it for their line of automated power supply testers, based on the IEEE-488 bus.  They wanted some enhancements specific to their needs, and they contracted me to provide them.  So that project provided me with much-needed income even after Don was done with it, into the early '80s.

For years afterward, I assumed I'd never hear about Tarbell Basic again.  But then came the Internet, and some (crazy!) people who decided it would be a good idea to write simulators for Z80s and CP/M that ran on modern computers, and to curate all this ancient software.  There's a sizable community of these folks, and they've collected a large number of software packages – including Tarbell Basic (Don eventually put the source code for it in the public domain).  My name is all over the source code, and my name is easy to Google – and it wasn't long after that that I started getting queries from these new/old hobbyists.  Probably I've averaged two or three queries a year since about 1996; the last one was just last week.  Sometimes the queries are questions, sometimes requests for enhancements or bug fixes, and sometimes angry accusations about my incompetence (that's what the most recent one was :). 


I don't have any interest in running that old code myself.  But I sure wish I had those old notes!

Thursday, February 21, 2013

The Crazy Jeep Dealer...

Our ancient LandCruiser (a '93 with almost 300,000 miles on it) has reached the point where we're afraid to take it on a “serious” four-wheeling expedition.  Our mechanic tells us the engine or transmission could conk out at any moment.  So we're looking around for a new four-wheeling vehicle.

One of the models we decided to look at was the Grand Cherokee Trailhawk, which we'd read some good things about.  Only one dealer in San Diego County had any in stock, a dealer in Poway.  So we went up there to see them. 

The sales guy (a very nice young man named Dwight) really couldn't answer any of my questions about it.  Mainly this was because neither he nor anyone else there knows anything at all about four-wheeling :)  We're not their normal sort of customer.  So I told them, jokingly, that they could answer all my questions if they'd just let me take one of their inventory out four-wheeling on a local road.  I never imagined they'd say “sure” – but they did!

So off we went in a brand-new Trailhawk, with permission to take it off-road.  We went up through Julian (which had about a foot of snow) and down to Banner, then onto the Oriflamme Canyon Road.  We know that road well, and after the rains the day before, it was good and muddy.  We gave that vehicle a very good test :)  When we brought it back to the dealer, it was still all in one piece, but it was no longer clean and shiny :)

We really liked the Trailhawk, and we sat down to talk with the dealer about buying one.  But right away we were stymied.  We insisted on ordering the vehicle configured exactly the way we wanted it – and they insisted on selling us one out of inventory (another dealer's inventory, not theirs).  The one they wanted to sell us wasn't an exact match to what we wanted, so we said “no”, we want to order the right.  Then they told us that the 2013 Trailhawks could no longer be ordered, and that there would be no 2014 Trailhawks.  So we just said “no thanks”, and now we're back to square one on our search.

But we still can scarcely believe that the dealer was crazy enough to let us take their brand-new vehicle out four-wheeling!

Tuesday, February 12, 2013

Wow! Wait a Minute...

I just received this email from LinkedIn:


Really?  Top 5%?!?  Why on earth would that be? 

But then I did the math: 5% of 200,000,000 members means I'm one of 10,000,000 in that same top 5%.  Somehow that doesn't seem quite so special :)

Now I'm trying to figure out why LinkedIn thought they should send me this mail.  It doesn't ask for anything – ah, yes it does.  When I click on the Read More button, I end up on a page asking me to share this on social media.

Which I'm doing, sort of.  But probably not in the way they wanted me to :)

Monday, January 14, 2013

Weight Bearing!

We just got back from a followup with Debbie's surgeon – and she now has permission to start putting weight on her (formerly) broken knee.  This is a huge milestone for her!  She's ramping up slowly, from 15 lbs today to her full weight in three weeks.  Woo hoo!

Saturday, January 12, 2013

The Last Day...

Yesterday morning I did my last potentially useful act at work: I sat with a group of my team members and answered questions they had, while being videotaped.  The questions were mainly things they imagined they'd want to ask, but wouldn't be able to because I'm not there any more.  The nature of the questions really drove something home to me: just how valuable experience is.  It almost doesn't matter what that experience is (I exaggerate, but not all that much).  The simple fact that I have been working for 45 years is valuable – I've seen a lot of things about how businesses work (or don't), dealt with lots of personalities, etc.  Working in IT for so long means I know a lot of things about how IT works.  Having been a low-level programmer for so long means I know about things like how networking works.  And on and on.  Most of the questions were about things related to my general experience, as opposed to any particular technical skill.  And how did I get this experience?  Mostly by being in situations where I had nobody experienced to guide me.  I suspect my leaving is, in the long run, very good for my team :)

In these litigious times, on your last day at work you're required to visit Human Resources for the “exit interview”.  In this choreographed event, you get information about your termination “rights” (such as the COBRA health insurance), your final paycheck, and you're given an opportunity to proffer some final advice to the company.  I didn't take advantage of the latter, as I'm sure nobody would actually pay attention to anything I said :)

For someone like me who is departing voluntarily and amicably, there's really very little to do in these exit interviews.  But nevertheless, we had something most unexpected happen right in the middle of mine.  I was huddled in a little conference room with Danielle (one of the company's local HR folks).  On the speakerphone was another HR person, Heather from San Jose, who was being trained.  We were going over a few questions I had when someone knocked on the conference room door.  A young lady with a funny look on her face (I interpreted it as disbelieving) said that someone wanted to see Tom (that would be me!).  This made no sense to either Danielle or myself, but I got up and went to see who it was.

Well, it was the entire Automation Team (the team I've been a developer and architect for these past five years).  Some of the team wasn't physically present, as they were on a business trip to England – but they were “there” anyway, thanks to Facetime on an iPhone!  It seems that the team was afraid I was going to walk straight out the door after my exit interview, and they'd miss the chance for something they wanted to do.

Or rather, something they wanted to present: a parting gift for me upon my retirement.  Not the traditional gold watch (thank goodness!), but rather an engraved baseball bat:


Now if you know me, but not through work, this probably is quite puzzling.  I know absolutely nothing about sports, don't watch them, don't know how to play them, and have no interest in them.  So why a baseball bat?  Well, for many years now (starting long before my job at ServiceNow even), my standard answer for any management challenge was “baseball bats”.  Need to motivate an employee to greater productivity?  A baseball bat, wielded vigorously, should do the trick.  Got a vendor whose prices are too high?  Just bring a baseball bat to your next meeting with him.  You get the idea.  It was a longstanding joke that all my colleagues knew about.

So they got me a beautifully finished baseball bat (in a velvet bag!), and somehow managed to get it laser-engraved as above.  I like that “Imperial Wizard” title, but they would never let me actually put it on my business cards (they had the boring title “Automation Architect” on them).

I'm feeling quite sentimental about this gift.  They've been a great bunch of folks to work with.

Then it was back to my exit interview, up to make my round of good-byes with the team.  Then I went down to hand in my laptop to the IT guys (James wouldn't let me keep it, dang it!).  Finally, I collected my box of personal possessions, enlisted Satya (our team's test guy) to help carry my server down, turned in my badge at the front desk, and then out to my truck to leave.

It was a sad drive home...

Wednesday, November 28, 2012

A Moment of Truth...

This video captures quite nicely the feelings that I and many other and many other Vietnam-era veterans have upon witnessing the respect so often commanded by our soldiers today.  On the one hand, as veterans ourselves, we know how much those big “thank yous” mean.  On the other hand, we got no such wonderful treatment ourselves – in fact, often quite the opposite.  Most service men and women in the time that I served would avoid going off military facilities in uniform – as being in uniform (most especially before about 1974) was an invitation for abuse by our fellow citizens.  We certainly didn't feel cherished – or even tolerated.  Watch:


Last year I posted about a colleague of mine who gave me a big hug, a big “thank you!” and a Starbucks card on Veteran's Day.  That was the very first time any of my fellow citizens have ever thanked me for my service (at that point over 30 years in the past!), and I was quite moved by the gesture.  She did it again this year, and again I'm smiling every time I use that card. 

I take every opportunity I can to say thanks in a meaningful way to a service man or woman I meet.  I'm going to try to find ways to do the same for those veterans who, like me, were not thanked while they served...

Tuesday, September 4, 2012

From the Road...

We're up in Sandpoint, Idaho.  This morning we're headed out on the trail, doing a little hiking in the beautiful mixed conifer forest at around 2000', just north of Lake Pend Oreille.  We last saw this area around 12 years ago, and we were stunned to see just how much the trees had grown in the interim – the flora is exhuberant up here, especially by comparison to what we're used to in southern California...

Friday, November 11, 2011

A Veterans Day for Me to Remember...

For years now, basically since 9/11, I've gone out of my way to honor the men and women who serve in our armed forces.  It's become second nature for me, most especially when I'm traveling.  Just this past week, for instance, I connected through Charlotte, North Carolina – and while in the airport I struck up a conversation with a young man in Army uniform.  Turns out he was headed to a school, and then back to the Middle East.  I invited him to join me for a Starbucks coffee and a little food, and found a good opportunity to say “thanks” in a heartfelt way.

One of the reasons I do this is my own experiences while in the Navy in the '70s; I've blogged about these before.  Suffice it to say that while I was in uniform, I never had the experience of a friendly stranger buying me coffee and saying “thanks” in a way I'd believe sincere.  Quite the opposite.  But I've often wished I'd had that experience.

I'm no longer in uniform; I've been out of the Navy for more than 30 years.  But today – for the first time ever – I had an experience something close to this.  A colleague of mine (whose name I don't have permission to use, and therefore won't) sent an email to myself and another mutual colleague, whom I'll call “J.” (since I don't have permission to use his name, either).  With minor edits to maintain anonymity, here's the email:

J. and Tom,

Just a moment to say thanks to the only two Vietnam War vets that I really know (I think).

We are living at a time of war, the first one that I have first hand witness to in a way that I can understand. I see how the vets are revered and how their work and service is honored. I see the concern and care for the invisible wounds warriors come home with.

My memories of the Vietnam War are vague, I was young. What I know, though, is that what I see now is very different than what I remember seeing, however vaguely, back then. The people that cheered for soldiers; the people that welcomed them home; the people that cared about the invisible wounds were very few and far between and didn't have anywhere near the voice that people that opposed the war did.

But they were there. And my dad was (is) one of them. I learned from him the importance of the work of all who served and the depth of their sacrifices. I learned from him to cheer loudly when vets passed by on Veterans Day. I learned from him to look for and reach out to those who served. I learned from him to have respect.

As time has passed, our country has come to rethink and regret the collective attitude towards Vietnam Vets, though I am afraid for many vets, this was too little too late. But I do believe that it is the lessons learned in that attempt to reconcile that has given way to much of the honor our current warriors are extended. And for that, we all owe Vietnam Vets a certain and very sincere debt of gratitude.

If my dad had met either of you back then, he would have shook your hand. He would have cheered loudly as you passed by. He would have honored your service. He would have offered you a cup of coffee. He wasn't with you then, but I am here now. And in honor of today as Veteran's day, in honor of the lessons learned from my dad, and in honor of your service to your country - I would very much like to buy you a cup of coffee!

Some things can't be undone. Some things can't be forgotten. But it's my sincerest hope that it is never too late to say thank you.

Thank you so much, for your service. And thank you for what your collective experiences have brought to my life and my career all these years later.
To say I was stunned would be a significant understatement.  All these years later, someone said “thanks!” to me.  It's some hours later as I write this, and I'm still shaken by the experience.  I guess I never expected anyone to just say “thanks” to me...

Just to be clear: I'm a Vietnam-era vet; I wasn't actually in-country in Nam.  Nor was I directly in combat.  I was a sailor on a ship that supported combat air operations in Nam.  I fixed computers (the mainframes of the day).  I was a warrior only in some metaphorical sense.  But I was a member of our armed forces, and served for six years.  And now someone has said “Thanks, Tom”...

Tuesday, August 16, 2011

Anniversary...

Thirty years ago today, Debbie and I were married.  It just doesn't seem possible that so much time has gone by, but I'm pretty sure the calendar isn't lying to me...

Saturday, October 11, 2008

Good To Hear...

My parents are going through some very tough times right now, affecting both of them deeply, each in their own way. It's hard to be far away at a time like this, when what you really want is to be there with them, to lend a hand and a hug...

Nobody would expect someone in their current situation to do anything but worry about themselves – they've got plenty on their own plate to deal with. But tonight I got an email out of the blue from my mom, ending with this:
“In case I haven't said it lately, I love you.”
Isn't a mom's love a wonderful thing?

I love you too, mom...

Saturday, February 16, 2008

A Valentine's Day to Remember...

Debbie and I have been married for almost 27 years. At this point, I'm a fairly well-trained husband when it comes to Valentine's Day – I know that if I don't come up with some hugs, kisses, whispered sweet nothings, a nice box of candy and some flowers, I'm a dead man (or will wish I was). I've also learned that I should expect the day to be all about the woman in my life, and not about me. And that's ok with me, because I've never had any particular expectations of the day.

So I was very surprised when I arrived home on Valentine's Day. First of all, the day was dramatic: it was snowing as I pulled into the driveway, and a blanket of white covered our house and yard. But when I walked in the door, I saw a spectacularly set table, with a bottle of champagne icing, rose petals strewn over the table cloth (I'm serious!), and a beautiful appetizer of fresh mozzerella, basil, and tomatoes – and a loaf of potato rosemary bread, with olive oil and basalmic vinegar. On our woodstove was a gigantic bouquet of fresh flowers, with some especially beautiful red gladiolas. Wow!

And it got even better. I had stopped at a fish market to get some fresh scallops, and Debbie made her signature broiled scallop appetizer, which we ate along with steamed young asparagus. And as if that wasn't enough, she made a spectacular bread pudding, all custardy on the inside and covered with a crust of pecans, brown sugar, and cinnamon. Double wow!

I suspect this may be a once-in-twenty-years sort of event, but if not I might learn to actually look forward to Valentine's Day!

Thursday, August 16, 2007

Twenty-Six Years

In some ways it seems like forever; in other ways it seems like only yesterday…

Today is the twenty-sixth anniversary of the day that Debbie and I were married. I really can just barely remember my life before I met her, and yet my memories of even our earliest times together are fresh and vivid.

Happy day!

Sunday, June 11, 2006

Formative Events

This is the third of a series of posts on the formative events in my life. Search for “formative events” to see all of them.

If you could somehow peer back at my interests and activities in the 1960s and early 1970s, you’d quickly conclude that I was headed for some kind of a career in electronics, and in particular, radio electronics. While I still dabble in electronics, I haven’t done anything with radio electronics for over 30 years. My career is all about programming, with a distinctly minor element (especially for the past 25 years) of digital electronics. What the heck happened?

In 1971, I had an advanced amateur radio license and an FCC first class license. I was building radio transmitters and receivers of my own design; primitive but they worked. I knew quite a bit about analog and radio electronics, especially with vacuum tubes as the active element. I had read a bit about digital logic — AND gates, inverters, flip-flops, and so forth — and had even puzzled out how they worked, though I never connected the dots about how you could do something useful with them. But I never seen an electronic calculator, much less a computer. I had zero interest in computers as a hobby, as the notion that I could ever own one myself had never entered my head (this was long before the days of personal computers!).

Then I joined the U.S. Navy, in a special six-year enlistment program they had. This program guaranteed that I’d get two years of training in electronics before I spent four more years serving; the only condition was that I had to pass the classes. The recruiter, true to form (he lied), told me that I’d be able to choose the field I’d be assigned to — and the Navy had some very interesting radio communications programs. I was very attracted to a rate called CTM, which was basically an electronics technician for the spook’s (spies) gear — and everyone knew that the spooks had the latest, hottest gear.

I went to boot camp for 18 long and shocking weeks in Orlando, Florida. Boot camp was not nice, but there was one (and only one, trust me) element of boot camp at which I excelled: taking aptitude and achievement tests. At that time, everyone in boot camp took a battery of standard tests. Guys who did well on certain tests were given more tests, at a higher level. There was even a third round possible, depending on the results of the second. I did well on basically all the tests (all that reading and studying was paying off), even on tests for areas that I thought I had negative aptitude, such as foreign languages. But the tests that got me the most excited were the tests involving electronics, math, and physics: I got 99th percentile scores on all of them, and I’d been told that this meant I would be able to choose whatever rate I wanted. I wanted CTM, and I was certain I would get it.

Wrong again, burrito-breath.

The way we found out what rate we were assigned to is by the orders we got upon leaving boot camp. Because my enlistment program guaranteed two years of school, I knew my orders would be to a school — but I didn’t know which one. When they handed out the orders, and I read mine, I could scarce believe my eyes: I was being sent first to “BEEP” school (basic electronics) in San Diego, then to “DS” school. I had never even heard of the DS rate, so my very disappointed imagination went into overdrive trying to figure out what the hell it was. My company commander was not a help: he was certain it was some kind of dental technician, though he couldn’t figure out why they’d send me to BEEP school first for that. I didn’t find out the truth for a couple of agonizing days, but finally I knew: DS was “Data Systems Technician", an electronics technician specializing in repairing digital equipment, including computers.

Oh, I was so bitterly disappointed! I was even moved to do something very unusual for me at that time in my life (I was still extremely introverted): I complained. Loudly. Eventually I got an appointment to see an actual officer; I’ve forgotten his exact role, but it had something to do with “detailing” — the Navy’s name for the process of assigning sailors to roles. He let me vent my whole story: my high test scores, my recruiter’s promises, my choice of CTM, my unhappiness with the DS assignment. Then he said, basically: “Tough toenails, sailor. Buck up and get with the program; you’re going to be a DS.” Of course he used a slightly cruder set of verbal constructs involving creative arrangements of both common and exotic four-letter words, but that was the general notion. He also added something that gave me pause: that the washout rate from DS school was very high, amongst the highest of all Navy schools — and that I really ought to consider what a prestigous and plum assignment DS school was. He allowed as how he was very surprised at my negative reaction, because a DS assignment as about as good as it gets for an enlisted guy in the Navy.

After my post-bootcamp leave, I was off to San Diego for BEEP school. This was a “self paced” course, which means you could stay there for quite a few weeks until you passed all the module tests. Shore duty in San Diego is just about as good as it gets in the Navy. So did I do the obvious thing, and stretch out that time as much as possible? Hell, no! This idiot went and “challenged” all the modules' tests on the first day I was there. This took the system a bit by surprise (apparently nobody else had ever been so stupid as to pass all the tests on day 1), and I ended up stationed there for a couple of weeks while they figured out where to send me next. I spent that two weeks just goofing off — and kicking myself for having been so stupid as to pass all those tests immediately!

Finally the system caught up to me, and the Navy packed me off to Mare Island, just outside of Vallejo, California. This is on the east side of the San Francisco Bay, and it was to be my home for the next couple of years. I like that area a lot, and I have very fond memories of the many trips I took to the surrounding sights.

I attended a series of classes at Mare Island, starting with basic digital logic and eventually working up to repair of computers and various peripherals (some of which were fairly exotic things, such as interfaces to sonar systems and radar systems). The courses were very much focused on the hardware, as back in those days the interval between failures was quite short — you really needed technicians to keep the equipment running.

While the training was focused on repair work, it included quite a bit of theory — you can’t repair something unless you understand how it works. These classes were, for the most part, almost trivially easy for me. This was because of a combination of several things: my relatively heavy electronics background (especially compared with my classmates), the relatively slow pace of the coursework (the lowest common denominator problem), and at least to some extent my own aptitude for it. But because the coursework was so easy for me, I had lots of time on my hands during school time — and my instructors were generally quite supportive of my doing “extra” things, so long as there was some conceivable connection to my Navy work.

I’ll pause here to mention another significant factor for my work at school — something that was a powerful motivator for me. On the first day in school, our new class was gathered and a chief (a relatively high-ranking enlisted guy) tried to scare the hell out of us. He succeeded admirably with me, but to my surprise he failed with most of my classmates. His message was real simple: half of us would likely flunk out of class, and those who flunked out would be sent to another school at Mare Island: the “swift boat” school. Swift boats, if you’re not familiar with them, are small, light, shallow-draft, and fast craft designed for patrol work on the rivers and coastal waterways. They are made of plywood; there is no armor. They are lightly armed; this varied, but generally was a .50 caliber machine gun and little else. They had small crews. And they had the highest casualty rate of any Navy unit — the Vietnam War was still going hot and heavy. There was a reason so many people were going to swift boat school — replacement crew member were always needed.

Yikes! I thought about the swift boats at least 100 times a day. Whenever my focus wavered or my energy level lagged, those thoughts would take care of the motivation problem. Amazingly (to me, anyway) this was demonstrably not true for most of my classmates. Even when their grades were putting them in danger, the typical response would be to go out for pizza and beer. And many washouts did go to swift boat school. Oh, man…

So I put in a lot of hours — to some extent, motivated by the threat of swift boats, to an increasing extent as time went by, motivated by my own interest. My first “extra” projects were hardware. It was just starting to be easy at that time for ordinary people to buy digital logic IC chips. I built all sorts of things, first from schematics, later from designs of my own. My most ambitious digital project was a “camera controller” — a gadget designed to let me take pictures of wildlife by setting up my camera on a tripod, and having the shutter triggered by the animal breaking light beams, making sound, or stepping on a trigger. I built a fancy little control box, full of lights and switches, that let me use any combination of these things I wanted to set off the camera. It could also take pictures at regular intervals, or take very long exposures (with a fancy integrating light meter to control it). I was very proud of that box, even if I was the only person who had any idea what it did. And it was my first really challenging digital electronic design.

But at some point, about a year into my school at Mare Island, we were taught the rudiments of programming. And I mean rudiments! Remember, their goal was not to make programmers out of us — it was to teach us how to repair digital equipment (in this case, a computer). But to repair a computer, we had to know just the tiniest smidgen of programming, at the machine code (lowest) level. This was the first class I found challenging — and I remember a period of a few weeks when I was wandering around with a bruised brain. I just wasn’t “getting” it. I knew that programming was the “secret sauce” that made computers actually useful, but I was having a lot of trouble understanding how that could be so. There was a very crisp event — in my brain — in the middle of one of these class sessions; this event was the proverbial light bulb going off, the big “AH HA!” moment. To any technical types reading this, the nature of that event might be quite amusing: it was when it dawned on me that computers executed machine code instructions one after the other, in sequential order unless there was a branch instruction. This is one of the key constructs of the “Von Neumann architecture” that all computers were (and still are) based on — but we weren’t taught that (it wasn’t necessary for repair work!).

That event, in context, was a key formative event in my life. From that one simple realization all sorts of derived notions spring quite naturally, and I was springing them like mad. And I wanted to program; I desperately wanted to program — this looked like a lot of fun to me (it was, and still is). But where could I get a computer to practice on? There were no Apples or IBMs back then; normal citizens couldn’t just walk out and buy a computer. The facility at Mare Island, however, was chock full of computers — and they were only being used during working hours on weekdays. With expectations of being shot down, I asked permission to have access during off hours — and the Navy floored me, because they granted me free access.

I went completely crazy on programming for the next year. There’s no other way to say it. I spent every possible waking hour (and I was young, so long evening hours were still possible!). The only programming language I knew was machine code (that’s all they bothered to teach us about, as that’s all you really need to know as a technician), so everything I did was in that language. I quickly grew tired of manually translating instructions into machine code, so I wrote a program to do it — I didn’t know it at the time, but I had re-invented something called an “assembler”. I called it a “translator", and it worked by reading files (on magnetic tape or paper tape) containing something that almost looks like English, and figuring out what machine code would represent that. I came up with the same basic idea of using “symbols” to represent variables or labels that modern assemblers use, but I worked it out on my own. That experience was invaluable, and formed a pattern for a lot of the programming I did over the next few years — I was simply unaware of the fact that other people had already explored this territory, so I just kept reinventing the concepts that they’d already invented. One way to look at that is that I wasted an awful lot of time “reinventing the wheel”. I choose to look at it another way: by reinventing the wheel, I learned an awful lot about how wheels work.

By the time I graduated from Mare Island’s schools, I was a reasonably competent programmer — albeit using strange, unconventional techniques and a self-invented assembler. The most ambitious program I wrote was a chess program that used all the computers in the lab, in a network (although we didn’t call it a network back then!). It wasn’t a very good chess player, but then neither was I and that wasn’t really the point — the point was that I had been able use the “secret sauce” to do something fairly abstract and complex. And I had a lot of fun doing it!

After school, I was stationed on the USS Long Beach (CGN-9), a nuclear-powered guided missile cruiser. It had three mainframes and one minicomputer in the NTDS system that I was assigned to, two more mainframes in the SPS-33 radar system, and a UYK-20 mainframe in the radio room (part of a secure satellite communications system). I did quite a bit of programming while station on the Long Beach. Some was job-related — for example, I successfully found and fixed some (very bad) bugs in the software that interfaced the SPS-33 radar with the NTDS system. These were hand-patched at the machine code level, if you can imagine that, as we had no compilers or linkers on the ship (not that I even knew, then, what those were!). Other things I did were recreational, and what I was quite well known for on the ship was a game I wrote. This game allowed multiple players on multiple “display consoles” (basically simple vector graphics displays) to fly simulated aircraft in a shoot 'em up contest. The simulated planes could fire cannons and missiles, and were as realistic as I could make them in terms of flight capabilities. Most of the people who worked on NTDS — officers and enlisted — spent many, many hours playing my game (called “BOINK"). And I learned a lot about programming while doing it.

Partway through my four years, I made friends with a fellow named Mike Blier — a chief electronics warfar technician. I’ve actually forgotten how we met, but I’ll never forget the next couple of years when we spent nearly every free moment working together on hobby computers. Mike bought one of the earliest kits (an IMSAI), and built it — but he had no idea how to make it do anything. Enter me — and of course I got hooked on this really quickly, and soon began building my own computers. I was astonished at the power of this little hobby computers — they were far more powerful than the “mainframe” computers I was repairing for the Navy! And I could buy one! Yee ha!

Mike and I spent countless hours with our computers, building, learning, experimenting. A long “WestPac” cruise with many weeks in the Indian Ocean helped provide many hours for us. So far from any source of parts, we had to make do with what we had — and all that improvisation was a real learning experience, too. Mike never really got into programming — that was my gig — but we both gained a lot of expertise about modern hardware.

Toward the end of my Navy career, I owned several computers of my own, and was spending a lot of time working on them. I had no idea what I was going to do when I got out of the Navy, but I knew for sure I wanted to work with microcomputers. But there weren’t any obvious job for someone with my skills — there really wasn’t much call for microcomputer technicians, and what need there was was being filled mainly by college students working for next-to-nothing. And I didn’t have the credentials (a degree) to be an engineer. Things were looking a bit shaky, career-wise, when Mike Blier showed me an ad in one of the magazines he was always reading. The ad was from Tarbell Electronics, a well-known name in the fledgling hobby computer industry. Don Tarbell, the owner, was looking for someone to write some software for him, on a contact basis — for something called a “Basic interpreter", intended to out-perform and compete with a product already on the market: Microsoft Basic.

Technical types will find this next bit quite amusing. I had absolutely no clue what a Basic interpreter was. I had no idea what any high level language was, or an interpreter, or a compiler. This is what happens when you don’t have any formal training — concepts that are well-understood by a first-year computer science student were completely missing from my brain. All I knew was that Don Tarbell was willing to pay someone to write some software, and he was asking for proposals. So, figuring I had nothing to lose, I wrote to him with my proposal.

Try to imagine what this must have looked like to Don Tarbell. He gets a letter in the mail — a hand-written letter, full of corrections, with a US Navy “from” address. In this poorly written letter is something that looks like a child’s idea of a proposal — but it does firmly say the following: that this nutcase would write him a Basic interpreter, to his specs (which I had not yet seen), in three months, for a fixed price of $2,000. To deliver a Basic interpreter, written from scratch by one guy, in just three months sounds completely absurd — six months or a year, maybe. But three months? No way! And to offer to pull off such a miracle for a mere $2,000? Crazy!

But to me, $2,000 for three months work was great pay — my Navy salary was just $333 a month. And since I had no idea what I was going to build, I just figured that I could build anything in three months. Don Tarbell wrote back and asked for a phone call; I called him and we talked for about an hour, and then he agreed to engage me. Years later he told me that he figured this was a no-lose proposition for him — the next lowest proposal he received was for (if I’m remembering correctly) $60,000 and 9 months, so if he blew $2,000 and 3 months on me, he hadn’t really put much at risk. I think most businessmen would have passed on my proposal, figuring the risk was just too high. Don Tarbell, for whatever reason, gave me a chance to do something that ended up starting my career in programming. I suspect he liked my spirit and confidence, and further liked the idea that his contract meant a lot to me.

This contract provoked an effort that when I look back on it myself has some elements of the grand epic…and not a little bit of Keystone Cops. When I got the signed contract in my hands, along with the specs for the Basic Interpreter I was to build, I didn’t even own a computer capable of being used for development: I needed a computer with 64K of RAM (the most you could get on a microcomputer back then), some kind of storage (I was still using cassette tapes and paper tape), and a printer. Nor did I own any of the development tools one would consider essential today: I had no editor, no assembler, no linker, and no debugger. And I had just three months to deliver.

To save time, I bought an economical computer kit from a fellow named Dr. Suding, who had a company in Colorado named Digital Group. I built the kit in a couple of days and got it all running. Nice stuff. I bought eight 8KB static memory boards and put them on an extension motherboard — and then had to build an enormous 5VDC power supply to power those things, and also jury-rig a whole bunch of ground to cure some ground noise problems I had. I bought a dot matrix printer from them as well — but it came without software, so I had to write a driver for it. I bought a floppy disk controller board (from Don Tarbell!), and a Persci dual voice-coil positioning 8” double-sided, double-density floppy drive — the Cadillac of floppy drives! It took me a total of about two weeks to get all that stuff in my hands, build it, write the drivers, and make it all work. That was two weeks of very, very long hours, but I didn’t mind at all, as I was having a ball!

When I finished with that, I had a 4MHz Z80 development system, with 64K of RAM, a monitor, a keyboard, and a printer. The operating system was CP/M. Now I needed development tools, and I needed them badly. There was a “tiny” development system running around in source code form; this included a simple monitor with a line-oriented editor, an assembler/linker (all code had to be in a single module), and a debugger. The latter was a brand new concept to me; that’s one idea I never came up with on my own. Anyway, I can’t remember the name of this stuff, but I got my hands on the source code and studied it for a day or so to see how all this stuff worked. Then I had a bunch of ideas for how to make it better. For starters, I wanted to edit directly on the screen (the way we do today, but back then such a thing was a new concept). I absolutely had to have multiple modules, as this program was going to be large. And I had all kinds of ideas for the debugger, especially for “smart” breakpoints and register dumping.

So I spent the next three weeks building development tools. The first thing I wrote was an assembler whose input was Zilog Z80 mnemonics and whose output was a linkable, relocatable code format that I invented (once again, because I didn’t known that others had already done this). Then I wrote a linker to take multiple modules of assembler output and create an object code image from them. Then I wrote an on-screen editor; primitive by today’s standards but compared with the line-oriented editors normally used it was wonderful! The most challenging feature of that editor was that it could handle files larger than would fit in memory; that was essential for the kinds of source code files I’d be working with. Then I wrote a debugger — a very nice debugger, with features I’d never heard of anywhere else, such as conditional breakpoints. I had a lot of fun using the debugger to debug itself!

About 5 weeks into my 13 week contract, I was finally ready to actually start developing the Basic Interpreter. My starting point was to learn Basic, as I’d never seen a high level language before. Compared with assembly language, the syntax of Basic is almost trivially easy — but very powerful. Once I figured out what an “interpreter” was, the majority of the Basic language was really straightforward. I could easily imagine how to build my interpreter for those parts. But two parts of the language looked considerably more challenging: evaluating arithmetic expressions, and the whole notion of floating point math (and all the associated operators and functions).

Eager to make some progress, I decided to leave the hard stuff to the end, and I started writing code. Note that I completely left out the usual design phase of the project: — I just sat down and started coding. This is as though you hired someone to build you a house, and they just picked up their tools and started sawing and hammering, not bothering with anything so irksome as a plan!

For a project this large, and especially for something I’d never built before (an interpreter), this was borderline crazy. But that’s what I did…

In about a month (working, I think, 18 or so hours a day on average) I had everything running except the hard stuff. A real, live Basic interpreter — buggy, some parts were very slow, some parts of the spec I was ignoring, but it was working. This was already a very satisfying achievement for me. But now to the hard stuff…

I had worked in the Navy on something called a CORDIC MATHPAK — basically a collection of subroutines that implemented floating point math, with all the usual operators and functions. I understood that stuff fairly well, and it served as a model for me on my interpreter. But…the Navy work was predicated on a mainframe computer that had add, subtract, multiply, and divide as basic instructions that the computer could do by itself — and a Z80 (the target processor for the interpreter) was missing the last two. I wrote multiply and divide functions and optimized the heck out of them (I remember that my divide function was a couple of clock cycles faster than any I’d seen published), mainly by unrolling loops. But still the CORDIC algorithms would be very slow using these multiply and divide functions. So I looked for something that would be faster, and somehow happened on a little book called “Hastings Approximations”. This volume contained a whole bunch of polynomials that allowed very fast evaluation of approximately correct transcendental functions (logs, sines, etc.), to know accuracies — and there were approximations listed for all the functions I needed, with more accuracy than I needed. These approximations were my salvation: I used them to build all the transcendental functions in my interpreter, and the result was substantially faster than the spec.

The last remaining hurdle was expression evaluation, along with a new one that popped up and turned out to be very challenging: formatted numeric printing. Expression evaluation is one of those things that any computer science student is exposed to very early, and it’s one of those things that’s been well-studied. There is a lot of literature on this subject. Naturally, I was blissfully ignorant of this, so I just invented my own way. The approach I took wasn’t a bad one, either: I converted a conventional expression into reverse-Polish form, and then evaluated it using a stack. I got this idea from seeing how HP calculators worked; it made sense to me. Printing a formatted number really is a challenging problem, but more because it’s a big, messy sort of job than any real algorthmic challenge. I remember this piece of code was a terrific challenge to debug, because there were so many tests that had to be made in order to exercise every branch of the code.

I completed the last functional piece of the interpreter about a week before I was due to deliver it. I thought that was a luxurious schedule, for now I had an entire week to polish the thing up. And I did — I spent the whole week testing and benchmarking, fixing bugs and optimizing. By the delivery day, it was looking pretty darned good.

A couple of days before delivery day, I called Don Tarbell to arrange my trip up to see him (I was in San Diego; he was in Carson, about 120 miles away). I remember being very surprised by his reaction when I told him I was ready to deliver — he was absolutely astonished! He asked me over and over again if I was sure I was ready; he said he’d rather I be a little late than to deliver something that wasn’t really ready. I assured him I was ready, and we set a date and time.

It was a very exciting drive for me up to his place. The whole time I was anticipating the fun of showing him the product — but there was also a little fear, that Don Tarbell might not be happy with what he got, for some reason. I was also looking forward to collecting that check — I was in real need of the money! When I arrived, bearing floppies with the source and object code, Don was ready with a system to test it on. We spent the next couple of hours with him just sitting at the keyboard, trying one thing after another, and every last thing he tried worked perfectly. After the first couple of tests, he had a smile; after about five he had a big grin. In a half hour or so, he was very excited and loudly happy. That was so much fun! And it’s still the part I like the best about being an engineer — having a happy customer when you deliver.

Don wrote me a check on the spot, gave me a tour of his shop (including the TTL logic computer he’d built from scratch), and sent me home with a couple of boards as a gift. Over the next few months we worked together a lot, with him contracting for both bug fixes and enhancements — and insisting on paying me going rates for that work. I made a lot more money on the followup work than I did on the original contract.

And that was my introduction to a career in software engineering…

Friday, June 9, 2006

Formative Events

This is the second of an intended series of posts on the formative events in my life. Search for “formative events” to see all of them.

It’s hard for me to overstate the importance of the role that reading has played in shaping my life. I don’t remember exactly how and when I learned to read, or gained reading skills, but I do know this: I learned to read proficiently, with an adult-level vocabulary, years earlier than the other kids I grew up and went to school with.

Certainly part of the reason for my early reading skills was simply practice (more on that in a moment). But I know there was something else at work as well: I was a painfully introverted little kid, and books were a comfortable, certain, and accessible escape for me. Early in my reading I had the ability to completely lose myself in the book I was reading. If it was a fiction book, my whole world became the world in the book; if it was a non-fiction book, I got totally focused on the subject at hand (no matter what it was!). The scary and hurtful real world was gone. I was in another place for so long as I could read without interruption. It was (and still is!) almost another state of being for me. In my youth, this alternate reality was a much better reality than (most especially) school, and I was mightily attracted to it. When I read about addiction, some of the symptoms resonate with me — I think some might classify me as a “reading addict"…

But practice was also important, and while I can’t remember it precisely, it must have been practice that got me the reading skills that first allowed me to get into that other place. Our home — despite being on a farm, with a lower-than-average disposable income — was a rich source of reading material. Our livingroom had a large built-in floor-to-ceiling set of bookshelves packed with books, and we had a set of overflow bookshelves in our cellar — hundreds, perhaps thousands of books. And I devoured them all. I mean that last bit quite literally: I read every single book in our house — even an encyclopedia — cover-to-cover, and sometimes multiple times. My parents had some books hidden away, presumably because of their adult content, but I found all those, too (sorry, mom <smile>). I remember my frustration, at something like 12 or 13 years old, that I could find no more fresh reading material at home. Fortunately that’s about the same time I discovered lending libraries, and they became the source for my reading “fixes”.

Some of those books at home still stand out in my memory. The encyclopedia has a special status, for it was my introduction to the idea that one could acquire new knowledge by reading. It was also my introduction to the very notion that knowledge had been organized, and that there were named areas of knowledge (history, botany, mechanics, physics, etc.) that could be further explored. It may sound silly now, but for me at the time that was a huge revelation — I was so naive that I simply had no idea this was the case. My parents subscribed to Reader’s Digest Condensed Books, and we had hundreds of them on our bookshelves. Each of these books was a hard-cover volume of some 300 or 400 pages, with a “condensed” version of (on average) about five novels in each volume. Today I wouldn’t dream of picking up one of those things, for fear that the novelist’s art had been rudely trashed. But imagine what it was like for me as a kid, romping through hundreds of novels, in a form that was highly digestible for someone with a short attention span. By the time I was about 10 or 11, I could easily read an entire volume in an evening — a rate of five novels a day. We could have a debate about the quality of that experience, but you certainly couldn’t argue with the breadth of exposure it gave me. Those volumes introduced me to dozens and dozens of authors whose work I have enjoyed my whole life. Finally, there was a collection of books that my family inherited (my fuzzy memory says from my dad’s side) — kids books from the late 1800s and early 1900s. These were simply marvelous, and a nearly-endless source of pleasure for me: books like the Uncle Wiggly series, the Wizard of Oz series, and so on. Many had gorgeous color “plates” that I can still remember. I loved these books, reading each of them many times.

Somewhere along the line, certainly by the time I got to high school (Steinert High School in Hamiltion Township, NJ — alma mater of Sam Alito, our newest Supreme Court Justice — and no, I didn’t know him; I did know his sister Rosemary, who was in my class), I realized that I was reading a lot more than most kids were — and that I what I read, I read much faster. This was brought home to me in a way that was both exciting (because I got some recognition, a rare thing for me at school) and extraordinarily uncomfortable (recognition and introversion don’t mix well). I can’t recall the exact details, but sometime in my senior year there was an awards ceremony. The entire senior class was gathered in the auditorium, and one by one names of students who had excelled in some fashion were called to receive their public congratulations and a certificate. I remember sitting in the audience watching this as the select few of my fellow students were called up: highest grades, most improved, sports heroes, etc. Then I heard my name called — and I cannot convey in words just how profoundly shocking that was. I couldn’t imagine what I could possibly be recognized for — certainly not my grades, which were mediocre. I had gotten very high scores on SATs and the National Merit Scholarship, but there was nothing unique about that in our very large high school — several other students had equivalently high scores. And that agonizing walk to the stage, and up onto it — I can still recall the introverted pain of that march to my doom. When I got to the podium where our principal was handing out the awards, he started blathering about my “special” award, one they’d never done before, to recognize an achievement they’d never anticipated: I had checked out vastly more books from the school library than any student had ever done before. I don’t remember the numbers any more, but I do remember the principal saying that the number was 8 times my nearest competition. I knew that I read a lot, but I really didn’t realize that my reading volume was anything remotely like that exceptional. The librarian (one of my few adult friends), it turns out, had lobbied for this recognition. She also was the only person who knew that not only had I checked those books out, but I had read them — she often quizzed me about them, and even occasionally read one on my recommendation. She knew I’d read every last one of those books.

Two categories of those high-school books stand out for me: science fiction (in general), and Isaac Asimov’s incredibly wide-ranging series of non-fiction books on science and technology. The science fiction (and fantasy) became, for many years, my favorite escape mechanism. Isaac Asimov wrote science fiction, but he also wrote hundreds of non-fiction books, many of them aimed at young people. He had a special talent for making science and technology understandable — and fascinating — for me. Once I discovered them in our library, I read all the volumes we had, and then lobbied our librarian to get more. She’d either buy them, or borrow them from other libraries, just for me — in fact, this collaboration of ours on Isaac Asimov’s books, when I was in the tenth grade, was the beginning of my friendship with her — and that friendship was very important to me (and a couple of other social rejects) in high school, as she and her library were my refuge from the many ugly experiences I had in school. To my shame I cannot remember her name, but I remember her, and very fondly.

Well, this certainly turned into a long post!

That’s the story of the beginning of my lifelong reading habit. It hasn’t stopped or even slowed down; not at any point in my life. For example, when stationed on a ship in the Navy, I read the entire contents of its rather small library. Of course <smile>. And I read more now than I ever have, though much of my reading is now online. But I still read several print books every week, between 8 and 10 on average. I tend to go on binges — fiction for a few weeks, non-fiction in a particular subject area for a few weeks. Currently I’m on a political and history binge, reading everything I can get my hands on about the war on terror (there’s a surprising amount of good material out there already)…

Thursday, June 8, 2006

Formative Events

Intro

Every adult can look back at their life and identify some key events that determined the path their life has taken. These are what I’m calling “formative events”.

For myself these formative events come in several flavors. Some have a nature such that I might have been able to identify them as formative events even as they happened. Others I can only identify long after the fact. Some have an element of intention about them; others are accidents — fate, some would say. But what they all have in common is that (at least now) I can look back and say “If that hadn’t happened, my life would have been much different."

The purpose of this (intended) series is to chronicle those formative events in my life. I’m going to write about them not in any organized way (for I’ve never organized these thoughts and memories before), but in whatever haphazard fashion I happen to think of them.

Part 1

A conversation with my mother about my cousin Mike brought this event back to mind. It’s an event I’ve thought of many times over the years, as it had a huge impact on the direction of my life — but I would never have known it at the time.

This event occurred during a visit to my Uncle Earle’s home in northern New Jersey, in the early 1960s when I was about 10 or 11 years old. Uncle Earle (who died several years ago) was my father’s eldest brother, some ten years his senior. He had a career as an electrical engineer, starting back in the days of vacuum tubes; eventually he became the editor of EDN (Electronic Design News) magazine. I’m actually not sure what Uncle Earle was doing, career-wise, at the time of this event, but all that matters in this context is that he was an electrical engineer.

Parts of my memory of this event are quite fuzzy, especially about how it got started. Uncle Earle had a study, or office, or something like that, where he worked on things at home. I was in this room, looking around, and I saw a strange object on a shelf, between some books. This object consisted of a rough sphere (about the size of a softball) of some stuff wrapped up in black electrical tape, with a rat’s nest of bare wires emerging from the top. Interspersed in that rat’s nest of wiring were some tiny neon lamps — and every once in a while, one of them would flash briefly. Years later I built one of these things myself. I’ve forgotten the details, but basically it was some kind of an oscillator coupled with a voltage-multiplier; when the voltage out of the multiplier reached the neon’s breakover voltage it would flash, the voltage would drop, and the cycle would start over.

I was standing there staring at this “thing” when my Uncle Earle walked into the room. He was a very tall, thin man, and I was a little frightened by him — I’m not sure why. I knew, of course, that he was my father’s brother…but he wasn’t anything like my father. I remember that I expected to be in some kind of trouble when he caught me looking at the “thing”.

But instead, he noted my curiousity and started asking me a bunch of questions. This caught me completely by surprise, especially the nature of the questions: he was trying to find out if I was particularly interested in electronics, or even more generally, science and technology. And I was particularly interested in those areas (in other installment, I’ll explore the “whys” of that a bit more) — but nobody had really paid much attention to that before. The closest thing was when my father gave me an old crystal radio that he had built — but he couldn’t explain anything about how it worked.

After a few minutes of questions, Uncle Earle had me come sit down next to him at his desk (or perhaps it was a table, I’m not sure). The next hour or so is something I have a much clearer memory of — not really the precise happenings, but the nature of those happenings. What Uncle Earle did was to give me a very broad, very high bandwidth “introduction to electronics”. A whole lot of what he lectured me about went right over my head, of course. But a few things stuck like glue; they were revelations to me. Perhaps the key one, which seems almost funny at this distance: that you didn’t have to be some kind of Einstein to understand electronics. Anybody — including me, even as a kid — could do it. Another: that you didn’t have to be rich to pursue electronics as a hobby — components could be purchased relatively cheaply, and TV repair shops would give you old dead TVs for free that were chock full of perfectly good components. There were also some very basic electronics concepts that he managed to convey to me, in general form: Ohm’s law, and more generally, the notion that one could predict with certainty how a circuit would behave; and the general notion of what an amplifier actually does. He even put together a very simple circuit — I still remember exactly what it was — to demonstrate Ohm’s law to me. He hooked up a 6V lantern battery in series with a 270 ohm resistor and a 100 ohm resistor, then went through the math to predict the voltage divider’s result, then showed me with a meter that it matched. Amazing stuff for me as a kid. And my Uncle Earle, in that hour or two, covered a huge amount of ground.

I left that room with my brain going a mile a minute, filled with ideas and questions about electronics. And electronics has been a lifelong interest of mine, a continuous thread in my life from that event onward. Over the next few years, I learned much more completely many of the things that my Uncle Earle introduced me to on that day. I scrounged parts from TV shops, exactly as he suggested. I built power supplies, audio amplifiers, and (eventually) radio transmitters and receivers. I did all kinds of experiments (scaring the hell out of my mother, who banned them from our basement and made me perform them in a shack detached from our house). I learned some rudimentary design skills, successfully building a high voltage power supply (using vacuum tube rectifiers) and a primitive super-regenerative receiver of my own design. All of these things I’m sure I would never have done had it not been for my Uncle Earle taking an interest in my interest on that day. And while I’m not actively working in electronic design as a career today, my electronics background did lead rather directly to programming (more on that in another installment).

Years later — in the 1980s sometime — I had a rare telephone conversation with Uncle Earle. I brought up this event with him, as I was curious how he remembered it. He didn’t remember it at all! He did remember the neon lamp blinker, but had no memory of sitting down with me to “talk electronics”. But he was very amused to hear how much impact that event had had on me…

Right after that event, while my head was still spinning, I walked outside the house and smack into another formative event. One of my cousins (Mike, I believe) was tossing a frisbee back-and-forth with my brother Scott. But I had never heard of a frisbee before, and what I saw looked like magic to me: a bright orange disc flying around in a very stable, predictable way — for astounding distances. My first thought was that the frisbee was powered somehow; it’s low-drag flight was very counter-intuitive to me at that moment. I remember getting the frisbee in my hands, and discovering — to my great surprise — that it was simply an orange plastic molded disc (by Wham-O!). And I wanted to know why that damned thing could fly like that.

What made this a formative event was that desire to know why, which (when I got home) turned into my very first adventure in research. I turned first to the encyclopedia we had at home, but didn’t get very far at all, as I had no idea how to look it up (because, amongst other things, I had no idea that the word “aerodynamics” existed!). Frustrated, I asked my teacher at school — who sent me to the library and the librarian. The librarian was someone I knew well, as I checked out a lot of books (more on that in another installment) — but up to that point I had no idea that a librarian could help you find answers to questions (remember, this was in the days before Google!). Our school’s librarian was a sweet little old lady (I can’t recall her name) who was, I think, very bored. She absolutely leapt on this chance to help with some research, and lickedy-split we had a stack of juvenile science books that discussed basic aerodynamics. For the next few days at home, I happily discovered things like Bernoulli’s law, drag vs. lift, and so on — and came away with at least a rough idea of why frisbees could fly so well. It took me a long time, I remember, to figure out that the rotation of a frisbee has little to do with its aerodynamics, but everything to do with its stability — but figure it out I did.

This was a very satisfying experience for me…the very first time I asked “why” or “how” about something in the world of technology or science, and was able to get the answer. It was the first example of many such experiences in my life, a major pattern, really, that continues to this day.

And all because my cousin threw a frisbee.