Showing posts with label history. Show all posts
Showing posts with label history. Show all posts

Sunday, May 26, 2019

D&D and Me: Part 1 (The Time Beforetimes)

[This is the first post in a new series.  Like all my series, it is not necessarily contiguous—that is, I don’t guarantee that the next post in the series will be next week.  Just that I will eventually finish it, someday.  Unless I get hit by a bus.]

[This series is about my discovery of and (occasionally stormy) love affair with D&D.  You may wish to think of it as an alternative to 23andMe, since D&D is embedded far deeper in my DNA than any silly “chromosomes.” Or think of it as a complement to my series on the Other Blog “Perl and Me.” This will probably be a bit shorter than most of my series.  Probably.]


I’ve had an on-again-off-again relationship with Dungeons & Dragonsor “D&D” for those in the know—for most of my life.  For a long time, I took a detour into Heroscape, and I still love (and play) that game too.  But I’m entering a more “on-again” phase, mainly in that I’ve (finally!) discovered the joy of watching people play online.1  As I’m always interested to find out more about the people behind the art I enjoy—whether that’s musicians, authors, filmmakers, or what-have-you—I’ve also spent a little bit of time listening to some of these people I’m watching talk about how they got into D&D.  And that made me want to tell someone how I got into D&D.  So here I am, telling you.

Because I never met a tangent I didn’t like, I have to start with the pre-D&D stuff.  There were lots of interests that came before I even heard about D&D, and lots of intersecting interests and interests that grew out of it.  Any story about a thing is always about more than just that thing.  For me, as a very young child, the two most important pieces were no doubt fantasy and horror.  And for that we need to talk about books.

I was an only child for the first 11 years of my life, and, while I loved games, I rarely had anyone to play with.  I didn’t make friends very easily, and I was a very short kid, and quite sensitive about it.  So I spent a lot of time by myself, and most of that time I spent reading books.  In my house, movies were awesome, and we went to see quite a few, and television was awesome, and we watched quite a lot of it, and music was intensely important—I may have mentioned before that my father was a record collector—and we listened to a shit-ton of that, but books were king.  No one ever discouraged me from reading comic books, or watching cartoons, or any of that stuff (my dad, in fact, had been fond of comics himself as a kid, so I think he was secretly a bit happy when I started to get into comics), but it was just always clear that books were the ultimate medium.  Everything else was second tier ... at best.  We had entire walls of our house devoted to books, as well as books in cabinets, books in boxes, bookcases stashed into odd corners ... books everywhere.  I had a bookcase in my room as well, of course, and the very first book I can remember reading, after all the Dr. Suess and P. D. Eastman and Berenstain Bears, was a book on Norse mythology.  It was a book aimed at younger readers, so it was a bit watered down, but I learned a lot about Odin and Thor and Loki before I ever saw them in the pages of a Marvel comic.  From there I gave up on the kids’ versions and starting reading Bulfinch’s and Larousse.  It was a short hop from there to The Hobbit and The Lion, the Witch, and the Wardrobe.

Probably around the same time, I started getting into comics.  However, I always had a very weird approach to buying comic books: if the cover featured anyone even remotely recognizable—your Supermans, your Batmans, your Spider-Mans, your Fours of the Fantastic variety—I didn’t care much about them.  I wanted comics with pictures of heroes I had never seen before, never even heard of before.  The first comic I can ever remember buying was Atlas #1: that Jack Kirby artwork is always an eye-catcher, I was of course familiar with the name from my studies in mythology, and I had inherited enough of the collector gene to know that a #1 issue could become a valuable commodity ... even at 8 years old, which is how old I must’ve been, according to Wikipdedia’s publication date.  From then on, I would buy anything that had a superhero or two—or, even better, a whole bunch!—that I had absolutely no idea who they were.  It’s why I bought the “origin” issue of Black Orchid, and Ragman #1, and Moon Knight #1, and absolutely why I got into the Legion of Super-Heroes and the original Guardians of the Galaxy.  Teams of misfits with weird powers appealed to me, and really the only truly popular characters I ever liked were the X-Men, and that was only because they rebooted the group with a a whole new batch of crazy unknown heroes—mostly non-American, even!2  Not my fault they got all popular after that.

It’s worth asking why I was only interested in the weird, unknown heroes, and I’m not entirely sure I have a good answer.  But I have a theory.  See, as a kid, I was a little OCD—had I been born 25 years or so later, I might have been diagnosed as being on the spectrum, at least a little.  ADHD at the very least.  But, anyway, one of the ways in which my particular brand of OCD manifested was in my obsession with lists.  My mother would indulge me in this (or maybe she was indulging her own predilection for having children able to recite things back to her, who knows) by teaching me various lists of things.  First she taught me how to count to 10 in Spanish.  Then in French.  Then in German.  Then in Malaysian.3  Then she taught me the Greek alphabet.  Then the books of the Bible.  Then all the US Presidents.  Then she sort of ran out of things to teach me and I started chasing lists on my own.

I always loved animals, so I started reading this set of wildlife encyclopedias we had lying around.  But trying to come up with a list of all the animals in the world isn’t like coming up with a list of all the presidents: we don’t even know all the species of animals at any given time—a fact which was already blowing my young mind—not to mention the fact that the list is constantly changing as new species spring into existence or go extinct.4  And when it comes to classification, the classic Linnaean taxonomy (phylum, class, order, family, genus, species) held strong appeal for my orderly brain, but it turns out that people were always fighting over what went where.5  The main controversy I recall was that rabbits were put into the “new” order of lagomorpha, although the books made it clear that some taxonomists might still be hanging on to the “outdated” idea that they were rodents.  This pretty much blew my mind, since of course my mother had taught me that rabbits were rodents, and common sense told me they were rodents: I mean, come on, they’re small furry creatures with big buck teeth—of course they’re rodents!  But apparently scientists not only knew otherwise ... they had once believed it and then changed their minds.  Insanity.

I fared no better trying to learn the countries of the world.  Surely this was an area where one could come up with a clear list.  And yet ... was Estonia a country?  They had an embassy in the US, but the UN didn’t recognize them.  What about the Bantustans of South Africa?  The opinion of my brand-spanking-new World Book Encyclopedias was that two of them (Lesotho and Swaziland6) were countries, but the remainder (such as Bophuthatswana and Transkei) weren’t.  Plus South Africa had two capital cities: how was that supposed to fit into my nice listing of countries and their capitals?  And it continued to get worse: every year they would send us “year books” with updated and entirely new articles, and they actually came with little sheets of stickers you were supposed to stick in the margins of the main encyclopedias, alerting you to an updated section for this article or a whole new article between these other two articles.  I very diligently applied all these stickers for many years, and I distincly remember when the update for 1979 came in and there was a whole new article for St. Vincent and the Grenadines, which was apparently an entirely new country ... one year, no country; next year: country.  Mind.  Blown.

Somehow I didn’t melt down and throw a tantrum when I discovered this.  I just began to chase the lists even harder.  I think I somehow (probably subconsciously) believed I could eventually find all the members and learn all the classification controversies and make my own decisions and then Ialone in the world!—would be the knower of the complete list of X.  Where “X” might be animals, or countries, or perhaps superheroes.  Thus my theory that the lists were responsible for my comic-book-purchasing habits.  No point in buying a “regular” issue of Spider-Man—I already knew who that guy was—but an issue with these new guys Cloak and Dagger ... now there was something adding to my quest to know the complete list of superheroes.

Surely even you, dear reader—used to my tangents are you no doubt by now are—are wondering how on earth this relates to D&D.  For that, we need to look at the other half of my interest: horror.

My parents loved horror.  They enjoyed fantasy, and sci-fi probably even more so, but horror was their true calling.  I started reading Stephen King and Peter Straub and Dean R. Koontz7 at a very young age, and we would go see horror movies like crazy.  I saw The Exorcist in the theater, at a time when I must have just barely turned 7, and The Legend of Hell House, and Jaws, and Burnt Offerings, and Prophecy, and Grizzly, and Day of the Animals, and It’s Alive (in roughly decreasing order of quality) ... all in the theater.  At home on the small screen, we watched even more: I remember Twilight Zone reruns, and I remember Night Gallery, and most of all I remember Kolchak: The Night Stalker, in which a Chicago reporter for a tiny newspaper managed to encounter a different supernatural threat every single week.  His editor (who was properly grumpy and talked primarily out of the side of his mouth, as all good Chicago news editors should) would yell at him about his “cockamamie stories”8 and how “ya got no proof!” The problem with a monster-of-the-week show that you’re supposed to be taking seriously, though, is that unless your protagonist is actually some sort of professional monster hunter (see also: Buffy), or perhaps even is one of the monsters themselves (see also: Dark Shadows9), it starts to strain credulity after a while.  Of course, as a kid, that was not an issue for me.  The bigger problem was that you eventually start to run out of monsters ... or at least out of monsters anyone’s ever heard of.  Partially they solved this problem by occasionally making up monsters—my favorite was the updated take on the Headless Horseman, who was now a headless motorcycle rider with a big sword, zooming around decapitating people—but also they went scouring the cultures of the world for more obscure monsters.  Manitou, rakshasa, succubus ... all these I first became familiar with as a result of avidly watching The Night Stalker.  It was only on for one season, but it was a pivotal moment in my personal history.

Because now, you see, I had a new list to make: a list of all possible monsters.



Next week, we’ll see how that pretty inexorably leads to my discovery of Dungeons and Dragons.

__________

1 Most likely we’ll get into why it took me so long—I mean, Critical Role has been a thing for 4 years already—in a later entry in the series.

2 I can’t remember whether Thunderbird considered himself American or not, but at most 2 out of 8.  Still nearly 90% male, of course, but it was still the seventies: “progressive” hadn’t yet progressed all that far.

3 My grandfather was stationed in Malaysia during WWII and taught her when she was little.  It’s the only one of the four languages I can’t remember today, as it happens: I don’t remember much, but I do remember that the words for numbers were multisyllabic, and that always seemed really weird to me.

4 Honestly, there were similar problems with some of my other lists—Ancient Greek had some letters that didn’t survive to the modern Greek alphabet, so do we count those letters or not? and don’t even get me started on the Apocrypha—but I was never aware of those at the time.

5 Nowadays, biologists have all but abandoned this amount of orderliness for a much more flexible system: clades.  While it’s a much better system for trying to organize the multiplicity of life, which is by its nature chaotic, it would have been anathema to my OCD mind at that age.  Luckily, while the book that would eventuallyt inspire cladistics had apparently already been written, it didn’t start to gain traction until I was out of college and could no longer be offended by its conceptually infinite branchings.

6 Note that modern-day Wikipedia tells us that these two countries were never Bantustans; perhaps my memory is faulty, but I don’t recall the World Book making this fine distinction.

7 A.k.a. the first 3 of what would ultimately become my pentagram of literary idols.

8 Note: not necessarily an actual quote.  My memory does not really extend back that far, although I have rewatched a few episodes for nostalgia’s sake.

9 Which I also remember watching, at least a bit.











Sunday, September 10, 2017

Of All My Monkey Memories ...


I don’t really have time for a full post this week, as we’re in the midst of another Virgo birthday season—my eldest is now 19, which is always a bit of a brainfuck.  Realizing you have a kid old enough to go to college when you were just in college yourself, like, yesterday, can feel surreal in a very fundamental way.  But, as Twain once said: “It is sad to go to pieces like this, but we all have to do it.”

But I feel like I need to leave you with something to read this week.1  So let me tell you a story, then I’ll drop you a link.

I’ve mentioned before that I’m a technogeek, and you’ve probably been able to work out that I’m a bit, shall we say, older.  And while I haven’t had the most interesting technogeek career or anything, I’ve had my fair share of interesting jobs throughout the roughly three decades I’ve been at this.  And one of my favorites was working for ThnkGeek.

Now, I don’t want to get into whether ThinkGeek is still as cool these days as it used to be.2  But I don’t think there can be much argument that it was the height of cool back in the day.  And, just to be clear, I’m not trying to take any credit for that: it was already plenty cool when I got there, and that’s primarily thanks to the four founders,3 who put in the mental effort and sweat equity to make it so.  It was as a wonderful a place to work as it was a wonderful place to shop, and I loved almost all of my time there.  And, while I’m not making any claim that I made any major contributions to the great and storied history of ThinkGeek, there are a couple of things I could brag about.  You know, if I were so inclined.

You probably already know that the creature most in charge of ThinkGeek is a monkey named Timmy.  And you may know (or at least suspect) that a geek-centered company like TG gets all sorts of wacky emails from customers.  And I bet you can easily guess that wacky customer emails often get forwarded around so that all the employees can share in the wackiness.  At some point, I started “responding” to some of these emails (internally only, of course!) as Timmy.  This was strictly to entertain my fellow employees, and, at that time, there were few enough of those that I knew them all personally and knew what they would find amusing.4  After a few rounds of that, somebody came up with the bright idea to turn this into something we could put on the website.5  I always referred to it as “Ask Timmy”—still do, whenever I talk about it—but I guess it was technically called “Dear Timmy” on the site.6  It didn’t last long: I did 7 installments of the column over the course of perhaps a year.  Somebody else picked the questions, and I answered them, using the “voice” of Timmy.  Timmy was wise and knew just about everything, and he was always right, even when he was wrong.  Since it was pretty much a marketing tool, I did take a few opportunities in there to do some product placement, but mainly I was just having fun.  Let me give you a taste:

Dear Timmy,

I was watching Star Wars the other night, and began to wonder something. Stormtroopers are clones of Jango Fett. Boba Fett is also a clone of him. Given that, why is it that stormtroopers can’t manage to hit anything when they shoot, but Boba can?

Sincerely,
Mat
Woodend, Victoria, Australia, Earth


Dear Mat,

This is simply a case of good-guy-physics vs. bad-guy-physics. Good guys always hit what they aim at, often with a minimum number of shots, and bad guys can’t hit the broad side of a barn (particularly if the barn contains good guys). To demonstrate the truth of this, take a look at Attack of the Clones. In this movie, the stormtroopers are good guys, and they hit large quantities of Count Dooku’s allies. Once they have been co-opted by Sidious and Vader, however, they immediately begin to suck, and by the time they get around to chasing Luke and Han down the corridors of the Deathstar, they regularly have difficulty hitting the walls.

Now, Boba Fett is a different case, which requires the application of an entirely separate branch of bad-guy-physics. This branch is roughly equivalent to fluid dynamics in that chaos theory is a factor. Bad guys who have proper names can sometimes hit what they aim at, depending on complex laws governed by butterfly wings in China, which side of a paleobotanist’s hand a drop of water will roll down, and most importantly, the desired plot outcome. Just as apparently random events can be mapped to form beautiful patterns known as fractals, the hit ratio of bad guys with proper names will, when viewed from far enough away, form a pattern (in this case, George Lucas’ scripts, which may or may not be considered a beautiful thing, depending on your age at the time Episode IV was released and how you feel about Jar Jar Binks).

As an interesting side note, the Star Wars movies demonstrate several other principles of bad-guy-physics, including the Law of Conservation of Evil (which is why one Sith Lord always has to die before you can get another one), and temporal anomalies (cf. Han Shot First).

Hope that clears it up!

    — Timmy


So, it was a lot of fun, and I probably would have kept on doing it for a while if I hadn’t left the company.  Of all the geeky things I’ve done, this may be the one I’m proudest of.

The column archive is no longer on the ThinkGeek site, but, since the Internet is forever, you can find all the old Ask Timmy installments on the Wayback Machine.  So hop on over and read the rest of the columns ... hopefully you’ll enjoy reading them as much as I did writing them.



__________

1 Honestly, I’m not sure why.  Normally I don’t care that much.  But I’m feeling generous today.  Or something.

2 Although I have a definite opinion about that.

3 That would be Willie, Jen, Scott, and Jon.

4 Which I suppose is my way of saying, don’t try this at home kids, especially if your company has more than a couple dozen employees.  Nobody likes that guy who hits reply-all on the company emails and spams a few hundred people, no matter how funny they think they are.

5 Probably Willie.  He was TG’s primary idea machine at the time.

6 Again, I blame Willie.  But then again I blame Willie like Matt Stone and Trey Parker blame Canada.









Sunday, February 5, 2017

A Lifelong Quest


This is not exactly a technology post, and it’s not exactly a gaming post, and it’s not exactly a (personal) history post, but in a way it’s all of those things rolled into one.  Let me start by telling you a little story.

When I was somewhere in the neighborhood of 15 years old, our family got a new computer: a Commodore 64, which was, at that time, state of the art.  I always thought that we bought it specifically for me, but my father corrected me a few years back, telling me that he originally bought it for himself, but he couldn’t really figure out how to work it, so he figured he’d see if I had any better luck.  I did, as it turned out, and it was the beginning of my programming career.  I think that pretty much anything you do as a career (as opposed to just a job) has to start out with you doing something for fun.  Otherwise you’re just in it for the paycheck.

The first program I ever wrote (which was in BASIC) looked like this:
10 PRINT “MY NAME” 20 GOTO 10
The second program I ever wrote was a D&D character generator.

Now, I tell you this story to let you know exactly how long I’ve been trying to program a D&D character sheet.  My obsession has carried me across 35 years of technology, and it’s driven many of my decisions as to what to learn.  I quickly learned I had to give up on BASIC (too slow), so I taught myself assembly.1  I dove very deep into the formula languages of first Lotus 1-2-3, then Excel, and now Google Sheets, so that I could do spreadsheet-based character sheets, and I taught myself VBA when that wasn’t enough, and now I’m almost sort of proficient in Javascript for the same reason.2  The first database I ever learned—dBase III, that would have been—I didn’t learn for the purpose of making character sheets, but it was the thought that it might be used for that purpose that drove me ever deeper into the language.  Same with SQL.  I’ve done very little GUI programming, but most of what little I have done—Delphi, and wxWindows, and Django, and Gantrywas mined for what it could teach me about how to make interfaces for D&D players.  I’ve written DSLs for dice-rolling, and extensions to Template Toolkit, and I even tried to write a “better” spreadsheet in Perl once, all so I could program the perfect character sheet.  If I ever get around to writing my SQL-language-extension, which will probably be done in Perl 6, one of the first things I’ll do with it is integrate classes with DB tables for aspects of D&D characters.

And, the sad part is, I’ve been doing this over and over again for 35 years, and it’s never worked properly.  There are a myriad of reasons for this.  A character sheet is a huge quantity of interrelated numbers with complex interdependencies, which make it almost perfect to render as a spreadsheet.  But the rules are just baroque and irregular enough to make it a breeze for the first 50% and practically impossible for the last 25%.  Contrariwise, the amount of dependent recalculation means that it’s a giant pain in the ass to do in a general programming language, unless you fancy trying to reinvent the spreadsheet wheel.3  The amount of data that needs to be stored, as well as the number of set operations necessary, mean that a database solution (such as SQL) is pretty attractive, for certain aspects.  But trying to do that much recalculation in a database language is even more terrifying than trying to do it in Perl or C++, and most of the parts Excel can’t handle, SQL is even worse at.

The thing that makes a database application or language really attractive, though, is the place where spreadsheets really fall down: separation of code and data.  If I write a program in a general language, I have code and then, elsewhere, I have data.4  In a database application, the line may be a bit blurrier, but the separation is there, and the proof is, I can give you updated code, and that doesn’t change your data a whit.  Not so with spreadsheets.  With those, the code and the data are one piece.  If I give you an updated spreadsheet, it comes with its own data (which is always blank).  But say you’ve already got a character sheet: it’s full of your data—you know, for your character.  Hell, the reason you wanted the upgrade in the first place was no doubt that you found a bug in my code, or maybe I just added a new feature that you really need.  But now there’s no way for you to migrate that data out of the old sheet and into the new.

Now start multiplying that problem.  If you’re a D&D player, you probably have lots of characters.  And how many people are using this spreadsheet thingy anyways?  My very first fully functional Excel spreadsheet was only used for one character each by 3 players (i.e. the 3 players in that particular campaign I was running)—and myself as the GM, of course—and it was a nightmare every time I updated the sheet.  A D&D character is not a huge amount of data, especially not when compared to big data or even the database of a middling-sized business, but it’s also pretty much nothing but data.  You don’t want to have to re-enter all of it every time I fix a bug.  To use the appropriate technobabble, this is a separation of concerns issue, and more specifically having to do with the separation of code vs data.  Of course, it’s quite fashionable these days (among technogeeks, anyway) to argue that code and data are the same thing, but I can only suppose that the people making those arguments never had to release code updates to users.5  I only had three users and I was going crazy trying to figure out how to separate my code from my data.

(To delve a bit deeper into the technical side of the problem, what I really want is for someone to invent a spreadsheet that’s actually just an interface into a database.  The spreadsheet programmer “ties” certain cells to certain columns of certain tables in the database, and the spreadsheet user is only allowed to enter data into those specific cells.  There could be multiple rows in the spreadsheet, corresponding to multiple rows in the table, and it would be easy to add a new one.  Sorting or filtering the rows wouldn’t affect the underlying data.  The database back-end might need some tweaking as well—what if the user enters a formula into a data cell instead of a constant?—but ideally it could use a standard datastore such as MySQL.  Somebody get on inventing this right away, please.  I don’t ask for any financial consideration for the idea ... just make sure I’m your first beta tester.)

But the problems with realizing the perfect computerized character sheet aren’t all technical.  A lot of it has to do with house rules.  If you’re not familiar with D&D, this may not make sense.  You may think house rules are simple little things, like getting cash when you land on Free Parking in Monopoly.  But RPGs (of which D&D is the grandaddy of them all) have a whole different relationship to house rules.  House rules can change anything, at any time, and the rulebooks actively encourage you to use them.  “GM fiat” is a well-entrenched concept, and that includes pretty much everything involved in character creation.  2nd edition D&D said only humans could be paladins, but many GMs threw that rule out.  3rd edition said multiclassed characters had to take an experience point penalty, but a lot of groups never enforced that.  What if a GM wants to change the value of some bonus granted by some feature? what if they want to raise the maxima for something? or lift the restrictions on something else?  What if they want to change the frequency of something, like feats gained, or ability score increases?

The complexity—but, more importantly, the prevalenceof house rules is death on a character sheet program.  In a fundamental way, programming is codifying rules, and if the rules aren’t fixed ...  Even when I’m noodling around with designing a character sheet that will only be useful for me and my friends, I still hit this problem, because we don’t all agree on what the house rules should be, and we’re constantly changing our minds.  Imagine how much more difficult it is to come up with something that will be useful to all gamers: there’s a reason that D&D has been around for over 40 years and no one has yet solved this problem.  Oh, sure: there are lots of attempts out there, some done with spreadsheets, some as database front-ends, and some as general programs.  But this is not a solved problem, by any means, and all of them have some area where they fall down.  Again, the prevalence of house rules in roleplaying is a crucial thing here, because it means that you can’t just say, “well, I’ll just make a program that works as long as you’re not using any house rules at all, and that’ll be better than nothing,” because now your userbase is about 4 or 5 people.  It’s hardly worth the effort.

So it’s not an easy problem, although I often feel like that’s a pretty feeble excuse for why I’ve been working on what is essentially the same program for 35 years and never managed to finish it.  But I’m feeling pretty good about my latest approach, so, if you’ll indulge me in a bit (more) technobabble, I’ll tell you basically how it works.

First, after a long hiatus from the spreadsheet angle, I’m back to it, but this time using Google Sheets.  Although I’ve already hit the complexity wall6 with ‘Sheets, it took much longer to get to than with Excel.7  Plus it has a number of things I never had with Excel:8 you can sort and filter in array formulae, and you have both unique and join.  Much more intelligent handling of array formulae is the biggest win for me with Google Sheets; in many other areas (particularly cell formatting) it still trails Excel, to my annoyance.  But it mainly means that I never have to program extensions, as I did with Excel.  Plus, when I do decide to use some extensions (mainly to make complex/repetitive tasks easier), I get to program in Javascript, which is almost a tolerable languaage, as opposed to VBA, which is decidedly not.  I still have the code/data problem, but I’ve come up with a moderately clever solution there: all my “input cells” (which I color-code for ease-of-use) don’t start out blank, but rather with formulae that pull data from a special tab called “LoadData,” which is itself blank.  Then there’s another tab called “SaveData,” which contains a bunch of formulae that pull all the data from the input cells: every input cell has a corresponding row on the “SaveData” tab.  When you want to upgrade your sheet, you can rename the existing sheet, grab a new (blank) copy of the upgraded sheet, go to “SaveData” on the old sheet, select-all, copy, go to “LoadData” in the new sheet, then paste values.9  (And again: I coded up a little Javascript extension for the sheet that will do all that for you, but you still could do it manually if you needed to for any reason.)  Now, this isn’t perfect: the biggest downside is that, if you happen to know what you’re doing and you actually stick a formula into an input cell, that’s going to get lost—that is, it’ll silently revert to the actual current value—when you upgrade your sheet.  But that’s moderately rare, and it works pretty awesomely for the 95% of other cases where you need to transfer your data.  I still miss the ability to do database ops (e.g. SQL),10 and I absolutely miss the ability to make classes and do inheritance, but so far I haven’t found any problem that I can’t solve with enough applications of match and offset, hidden columns, and tabs full of temporary results.  (To be fair, I’ve postponed solving several problems, and I have a lot of “insert arbitrary bonus here” input cells, but those actually help out in the presence of house rules, so I don’t mind ’em.)

So I feel like I’m closer now than I ever have been before.  Sure, this one will only work for D&D, and only for one edition of D&D,11 but if I can make it work for pretty much any such character, that’ll still be the closest to fulfilling my dream that I’ve achieved thus far.  I’ve got a lot more testing to do before I can make that claim, and several more character types to flesh out (I haven’t done very much with spellcasters at all, and monks are alwyays a giant pain in the ass), but it looks promising, and I’m starting to get just a little bit excited about it.  Which is why I wanted to share it with you.  And also because it’s been consuming a fair amount of my free time lately, so I thought it might be good to get some details out there for posterity.  Maybe one day, if you’re a D&D player, you’ll be using a version of my character sheet on your laptop at the gaming table.

Or maybe I’ll still be working on it in the nursing home.  Either way, it should be fun.



__________

1 For the 6510, this would have been.  Although I didn’t really have any concept of that at the time; in fact, I really only know it now because Wikipedia just told me so.
2 That is, because Javascript is how you write extensions for Google Sheets, just as VBA was how you wrote them for Excel.
3 Which, as I mentioned, I actually tried to do once.  I didn’t fancy it.
4 Let’s pretend that where “elsewhere” is is not really important for a moment.  The truth, of course, is that it’s vitally important.  But these are not the droids you’re looking for.
5 Which is not unheard of.  A lot of code out there in the world doesn’t really have data entered by a user, and quite a chunk of it doesn’t even have “users” at all.  And a lot of programmers work exclusively on such code.  For those folks, this is an interesting philosophical debate as opposed to a self-obvious truth.
6 By which I mean the point at which a spreadsheet fails to recalculate certain cells for no apparent reason.  Generally if you just delete the formula and re-enter it, then everything works.  But it’s nearly always intermittent, and thus useless to complain about or report.  Every spreadsheet I’ve ever worked with has a complexity wall, and the character sheet app always manages to hit it eventually.
7 To be fair to Excel, that was a decade or two ago.  It might be better now.  But I bet it’s not.
8 Again, it’s possible that Excel may have one or more of these features by now.
9 Well, except that Google Sheets currently has a bit of a bug with trying to paste values from one sheet to another.  But there’s a simple workaround, which is again a perfect reason to have a little code extension to do the steps for you.
10 Google Sheets has a query function that sort of lets you do pseudo-SQL on your data tables, but you can only refer to columns by letter, not name, so I consider it fairly useless.
11 Specifically, 5e, which I’ve talked about before on this blog.










Sunday, September 27, 2015

A Tale of Two Eggs

Growing up, I was very lucky to have all four of my grandparents throughout my entire childhood.1  I was also lucky in that both my grandmothers cooked, although they had very different styles.  Which is not surprising, as they were very different people.

My father’s mother was born poor and seemed to have a fierce sort of pride in it.  She considered herself salt of the earth, and was very proud of being humble.  Her cooking came from her North Carolina farm upbringing.  There was lots of ham and chicken and corn and butterbeans and biscuits and collards and mashed potatoes and potato salad and boiled potatoes and, for special occasions, all of the above all at once.  Barbecue meant pulled pork, old hambones were dropped into anything boiling, be it potatoes, cabbage, or soup, and bacon grease was used to fry everything, from corn to cornbread to grilled cheese.

On the other hand, my mother’s mother was born poor and seemed determined to never be poor again.  She married for money (twice, I believe) and did her utmost to avoid work (at which she mostly succeeded).  The vast majority of her housework was done by the maid, but she did her own cooking.  She made steak and steak fries, spaghetti and meatballs,2 and chicken tetrazzini.  When she wanted a snack she would spread soft bleu cheese or Braunschweiger on saltines.

As you can imagine, Sunday dinner was radically different depending on which set of grandparents we were visiting on any given week.  For the most part I gave the edge to the paternal side, not being impressed by fancy food, but honestly I was a very picky eater and didn’t eat that much of what I was served no matter who was cooking it.  Still, I had my favorites in either place, and, being the eldest grandchild on both sides, I often influenced them to emulate each other to some degree.3  But there wasn’t a huge amount of overlap in terms of dishes.

The one I remember most distinctly is scrambled eggs.

My maternal grandmother cracked her eggs in a bowl, added milk, whisked them to within an inch of their lives, then cooked them low and slow in a saucepan with butter and not much else in the way of seasoning.  When they were done, they were light, and fluffy, and buttery, and I hated them.  Breakfast at her house meant Fruit Loops.  After a while she wouldn’t even bother to make me eggs at all.

My paternal grandmother, on the other hand, took a gigantic cast iron skillet and cranked up the heat until a flicked drop of water would dance around the pan for a few seconds before vaporizing.  Then she fried up an entire pound of bacon.  Then she cracked a dozen eggs directly into the pan, with the bacon grease still in it (obviously), peppered them enough to make the devil’s eyes water, and then essentially fried them while beating them with a fork, till they were good and scrambled.  Her eggs were spotted with brown—often nearly black—crust, and greasy, and so firm you might call them rubbery ... and they were delicious.  I would eat the bacon because it seemed expected of me, but honestly I didn’t care anything about it.  Bacon existed to create grease, and bacon grease existed to scramble eggs in.  And bacon grease—and salt, and pepper—were all the eggs needed.  No butter, no namby-pamby milk ... just eggs: chewy, and tasting of bacon.

After I went away to college, I can’t remember my grandmother making eggs for me any more.  Of course, by the time I was a teenager, I was regularly sleeping through breakfast, especially on weekends.  For many years—probably over a decade—I never even ate breakfast.  I would get up late and proceed directly to lunch.

I lost my grandmother on my father’s side just before I turned 30 ... although she was the youngest of my four grandparents, she was the second to go.  She had always been overweight, but otherwise relatively healthy, so it was completely unexpected.  She died in her sleep, apparently peacefully.

Of course I missed a lot of things about my grandmother, as I did about all my grandparents after they passed away.  I didn’t even think about missing the eggs so much for another ten years or so.  This was about the time that eggs became healthy for you again,4 and eating breakfast had somehow become an essential part of losing weight.  And I suddenly began to develop a craving for my grandmother’s eggs.

Of course my first attempts were disastrous.  First of all, I was not going to cook a pound of bacon and a dozen eggs, and I rapidly discovered that even two strips of bacon could easily overwhelm 2, 3, or even 4 eggs.  Maybe I was getting old, but I just couldn’t handle the quantity of bacon grease my grandmother used to use, and it probably wasn’t very good for me anyway.  I also can’t scramble my eggs in the pan.  I’m just no good at it.  I need to pre-scramble them before pouring them in.  I’m also pretty sure I’m not using as much pepper as she used to.  But overall, after fiddling with my prepartion methodology for the past decade, I’ve gotten to a point where I’m happy with it.  It’s not “just like Grandma used to make,” but it retains enough of the character to satiate my nostalgia, and I probably couldn’t handle her eggs these days anyway.  I’m old and fat now, and less grease-resistant.

I eat eggs about 3 times a week.  I generally make 4 at a time, as I only get to eat them on those days when I can sleep in, so it’s sort of a brunch meal.5  Here’s how I make them, in case you ever want to try it yourself.

First, you need some bacon grease.  If you actually like eating bacon, then lucky you.  Otherwise perhaps you can do what I do, which is convince The Mother to cook a package of bacon, give me the grease, then put the cooked bacon in the fridge and make sandwiches out of it later.6  I put the grease in a small glass jar which we keep in the fridge.

You’ll also need ghee.  Using only bacon grease isn’t particularly good for you, and besides: the taste will overwhelm the eggs.  You can use butter—I did, for years—but it doesn’t stand up to the high heat as well as ghee.  Plus ghee is supposedly better for you.  Although butter also magically became good for you again recently.  So who can say.

Other than that, you just need salt, pepper, and eggs.  I like sea salt, peppercorns which I grind myself on the medium setting, and jumbo cage-free/organic eggs.  I buy brown, but honestly there’s no difference in taste between the egg colors.  You’ll also need a decent pan: it doesn’t have to be a cast-iron skillet, but that might be nice if you have one.  I just use a regular old small pan.  Other “hardware” (as Alton Brown would say) is a glass, a butter knife, and spatula or non-metal serving fork.

Put the pan on medium-high heat and add a dollop of ghee and a dollop of bacon grease.  “Dollop” here is an intentionally vague measurement; once melted, the grease shouldn’t even cover the bottom of the pan.  It doesn’t take much.  You’ll get a feel for how much is too much after a few tries.

Crack your eggs into the glass and add a large pinch of salt per two eggs (or a small pinch for one), and 3 grinds of pepper per egg.  You can put the salt in first if you like,7 but don’t add the pepper first, or you’ll end up with one giant clump of pepper somewhere in the middle of your eggs.8  I also like to let the pepper sit for a minute or so before stirring up the eggs (with the butter knife); if you stir it right away, it won’t clump as bad as it would if you had added it before the eggs, but it still isn’t pleasant.9  Take advantage of this time to spread your ghee and bacon grease around the pan with the spatula or fork.

Now just sit back and wait for a bit.  I generally use this time to make myself a glass of tea.  But whatever floats your boat.  What you’re waiting to see are the first barest wisps of smoke from the grease.  Once you see that, stir your eggs quickly but thoroughly, then pour them in.  Your pan should be plenty hot, and your eggs will start to bubble.  Rinse your glass out: that allows a few seconds for your eggs to firm up on the bottom.  Now use the spatula to stir the eggs.  (If you chose the serving fork route, you may find the tines can do a better job here.)  You want to pull the edges of the eggs toward the center, which keeps the edges from getting dried out and burnt.  And you just basically want to swirl everything around a lot.  As your eggs start to change from liquid to solid, start doing more of a flipping motion.  The goal here is to get the wet stuff to the bottom of the pan and the dry stuff on top.  Once you either see your first browning, or the eggs stop looking “wet” (whichever comes first), turn the heat off and grab a bowl from the cabinet, if you haven’t already.  Keep stirring and flipping, with the length of time being dependent on how done you like your eggs.  I’ve come to like mine a bit softer and less burnt than my grandmother did.  But they still taste like scrambled up fried eggs, which is what I’m shooting for.  Once you achieve the consistency you’re looking for, dump them in the bowl and hit that pan with some hot water to remove the bits of egg from it.  I don’t know about your dishwasher, but there’s only two things mine won’t get off dishes: rice, and dried egg.

And there you have it: the perfect scrambled eggs.  Well, my other grandmother wouldn’t say so, and I bet there’s a lot of you out there reading this that wouldn’t think so either.  But give it a try sometime: at the very least, they may be different from what you’re used to, and different is always good.  For me, they embody a little slice of my grandmother.  I think about her every time I make them.  And that’s a pretty fine breakfast.



__________

1 I lost the first a few months before my 18th birthday.

2 In fact, her recipe is what we still use today; when my kids ask for “spaghetti,” they mean they want my grandmother’s sauce, and for the most part could care less what you put it on.

3 By the end of my childhood, their mashed potatoes were indistinguishable.  At this point, I can’t even remember which of them changed to match the other.

4 This is still contested, of course.  As is all food wisdom.

5 Plus usually I have to share them with my daughter.  She can really put a hurting on some eggs, even though she’s only 3.

6 Also good for crumbling into bacon bits and putting on salad.

7 I always do, personally.  But that’s mainly because after I crack the eggs, I generally have egg on my hands.  So I either have to reach into the salt cellar with eggy hands, or with wet hands after rinsing them off.  Either way gets yucky.

8 Trust me on this.  I speak from experience.

9 I’m sure there’s some scientific explanation for why letting the pepper sit on top of the eggs for a bit makes it clump less, but I confess I have no idea what that is.











Sunday, April 27, 2014

Big Heart Son


My second son (whom I often refer to as the Smaller Animal, or occasionally the tadpole) was born with a heart conditon.  At the time, I didn’t have a blog (were blogs even invented back then?*), but I did have a website, since this was during the time I ran my own company.  So I took advantage of that and wrote a series of web pages about the experience.  Of course, my company is long gone, as are all its servers, and thus its website, but you know what they say ... the Internet is forever.  In this case, the Wayback Machine provides the trip down nostalgia lane.  The pictures are all gone, but the links all work and all the text appears to be there.  You could go read that, if you’re interested in a lot of details about the birth and medical stuff.

But it occurred to me that I haven’t really discussed the condition on this blog.  That occurred to me as I was telling people at my new work that I was taking the boy for his first treadmill test.  Of course, this being a new(ish) job, some of them had no idea what I was talking about.  (Some of them did, since I’m not the only person from my old job to land at my new job.)  Thus I was inspired to track down that very link to the Wayback Machine I threw out above.  Which is nice and all, and may be interesting to some, but it’s also pretty darned verbose—even for me—and very outdated.  The situation today is a little different.

First, the executive precis for those who don’t want to have to read all the gory details:

Your heart has 4 valves in it; their job is to open and close as the heart pumps so that blood can move forward where it’s supposed to go, but not backwards.  To do that job, they have flaps called “cusps.”  If the cusps don’t open all the way, that’s called “stenosis.”  My son was born with aortic valve stenosis, which means that blood couldn’t flow normally into his aorta because the valves weren’t opening all the way.  As a result, his heart had to pump much harder than usual.  That’s not sustainable, however, so doctors performed an emergency procedure on him to force the cusps open.  So now he has no problem getting the blood to move forwards.  However, when they force the valve open like that, it inevitably causes some tearing, so now the valve can’t close properly.  So the blood leaks backward (which is called “regurgitation”), and the flow can’t achieve full efficiency.  This is still a problem, but happily a much less serious problem.  The doctors estimated that my son’s heart wouldn’t last much more than a week with the stenosis.  With the regurgitation, it could last years, perhaps even decades.

It could last that long ... but perhaps it won’t.  In practical terms, that means that we’ve taken our child to get an echocardiogram (which is a bit like an ultrasound, except on your heart instead of your unborn child) every six months for his entire life, and it likely won’t be stopping any time soon.  This leads to an interesting cognitive dissonance: on the one hand, it becomes routine, almost commonplace; on the other, your stress level goes through six-month cycles of peaking to insane levels because you dread that this time is the time when they’ll finally tell you he needs the surgery.

Because the chances are very very good that my kid will, at some point in his life, need to have that valve replaced.  Which is a pretty scary prospect.  But there are important reasons for waiting.

First of all, whether it’s replaced by an artificial valve, a valve from a pig, or a valve from a human donor,** replacement valves always wear out and have to be replaced again.  And, on top of that, replacement valves aren’t going to grow along with the patient.  That means that if you have to replace a valve before the patient’s heart is fully grown, you’ll have to replace it even before it wears out because eventually it will be too small.  So, the sooner you do the replacement, the more often you’ll have to do it.

The second important reason is that, if we had replaced his valve when he was born, that would have meant surgery, and any time you use the words “open-heart surgery” and “newborn” in the same sentence, that’s pretty damned scary.  Even today, if they tell us it’s time to do the replacement, we’ll still be talking surgery—specifically, a Ross procedure, which means swapping the aortic valve with the pulmonary valve (because the pulmonary valve is in front of the aortic valve, it’s easier to replace; therefore, you replace the bad aortic valve with the patient’s own pulmonary valve, which will grow along with his heart, then the replacement, which you know won’t grow and will eventually wear out anyway, goes in the pulmonary position where it’s easier to get at for the next surgery).  However, today they can also replace a valve without surgery: it’s called transcatheter aortic valve replacement, and it means that, instead of having to cut the patient open, they can use a cathether (small tube) threaded through the arteries and into the valve, and replace the valve via the catheter.  Now, today, they will only use this procedure if the patient absolutely can’t handle the surgery for some reason.  But, in the 8 years my son has been alive, it’s progressed from “theoretically possible” to “a viable alternative that’s almost as good as surgery.”  If we can wait 8 more years, maybe it’ll be better than the surgery.

So we wait.  The doctors assure us that it will be a very gradual change; we won’t be in a situation where we go in to get a check-up and they end up rushing him to the hospital (which is what happened when he was 2 days old, so thank goodness we won’t have to go through that again).  In fact, they told us that, if they identify the problem during the school year, they’ll most likely schedule the surgery for the following summer.  You’d think this would make it better, and I suppose in some ways it does.  But it also means that you tend to memorize every number they throw at you (thickness of the heart wall, pressure gradient between systole and diastole, size of the area allowing the leakage, etc) then freak out whenever one of them gets bigger.  Even though, of course, you have no real concept of scale for any of these figures.  Also, there isn’t just one number to focus on: there’s lots of them, and they interact in non-intuitive ways, and just because one gets worse doesn’t mean you should panic.  But it doesn’t mean you shouldn’t, either.

So now that my son is 8 years old, his cardiologist recommended him for a stress test.  Just like an adult would, he runs on a treadmill, all wired up on a continuous EKG, and then they do an echocardiogram after he gets tired to see if heavy exercise is likely to cause any problems that they couldn’t detect while he was just laying quietly on the table.  We went for this test two days ago, and I think he did pretty well.  His heartbeat didn’t get too high, and, from what limited ability I’ve picked up to read an echo over the past 8 years, I didn’t see anything to be concerned about.  His breathing was never labored; at his age, they stop the treadmill after getting up to 3.4MPH with a 14% incline, but I think he could have gone on to the next stage.  We still have to wait for the cardiologist to review the results, but it seems like, for now, we’re back to waiting.

One thing that struck me as I reread what I wrote 8 years ago is this quote from near the end:

We choose to believe that kharma, or the cosmos, or maybe even some supreme being somewhere (your “deity of choice”, as I am wont to say) is trying to tell us something.  We’re not entirely sure what it is yet, but we’re tentatively operating under the assumption that it has something to do with appreciating each other more, and letting go of the little things.  After this experience, some of the things that might have upset or worried us before seem a bit petty now.

And, hey, if that’s the wrong lesson, or even if it turns out there’s no higher power running around the universe at all, it’s probably still a decent attitude to cultivate.


I’d like to tell you that we took this lesson to heart and never let petty things get to us any more.  But I’d be lying.  Perhaps it’s the routine of the continuous tests that never seem to get easier but happily never bring bad news.  Perhaps it’s our attempts to make sure we treat our middle child just like our other two children—it’s desperately difficult not to spoil a child with a life-threatening condition hanging over his head, and I’m not entirely sure we’ve succeeded.  Perhaps it’s just that anything—even the terror we went through after his birth—can be internalized, categorized, and put behind us.  We move on with our lives, and that means we fall back into our normal behaviors, for better and for worse.  Sometimes I think that, as stressful as that time was for us, we’d do well to keep it close.  Most of the family arguments we end up having really do seem silly in the light of this sobering truth that we live with (and mostly ignore) every day.

But it’s also true that I feel lucky that we can have those silly arguments.  Without him, I don’t know that we’d be having those arguments, or even any arguments.  We wouldn’t be who we are.  No more so than the other two, but certainly no less so either, our leaky-hearted son is part of what makes us us, both individually and collectively.  I’m glad we got to keep him.  Hopefully that will continue for many years to come.


* Wikipedia says they were.  Happily, I was blissfully unaware of them.

** Interestingly, pig valves are more commonly used than human ones.  This is partially because replacing human valves is more complex surgically, and partially because heart valves are in short supply.  I guess that latter is because it’s pretty rare that you’d find a heart where the valves are working well but the rest of the heart is damaged, and, if the rest is not damaged, they’d want it for a heart replacement and not just cut the valves out of it.

Sunday, September 1, 2013

Here's My Beard; Ain't It Weird?


It’s almost time to shave again.

I grew my beard at age 19, to make myself look older—or at least that’s what I told everyone.  My family hated it: mother, father, both grandmothers, aunts and great-aunts and nearly everyone who bothered to notice at all.  I sort of liked it, but I always claimed I was willing to shave it off if I didn’t need it any more.  You know, to look older.

When I turned 21, I reasoned that now I was older: old enough to buy beer, anyway, and what other reason is there to look older?  So I shaved off the beard.  I left the moustache though: I was afraid I’d look a little too young without some sort of facial hair.  That only lasted a few months.

I look like a complete goober without a beard.  My original conclusion was that I just had too much of a babyface.  This was overly optimistic.  What I came to realize, eventually, was that I have no chin.  Not just a weak chin, but practically none at all.  I get it from my mother.  Turns out it’s not so awful on a woman, but for a man to have no chin is pretty bad.  And it gets worse the older you get.

A lot of people have told me that, when they try to grow a beard, it itches too much and they eventually give up.  My beard has never itched when it’s coming in.  In fact, it hardly ever itches at all, except for one sort of curious cycle: about every 5 years or so, it starts to itch something fierce.  So, every 5 years or so, I have to shave my chin completely ... just to air it out, so to speak.  Twice I’ve gone for the General Burnside, which let me tell you will get you some strange looks.  Once I did a sort of droopy moustache and soul patch combo, like Ben Stiller in Dodgeball.  I can’t recall what I did for the other one.  It probably won’t be long until the next cycle rolls around, although that’s not the sort of shave I was talking about.

No, I meant just the regular sort of shave.  My pattern, you see, is to let the thing grow for several months: basically until it’s so long that it gets annoying.  The beard will, if left untended, start curling under my chin, creating a sort of shelf under there.  I can understand why people put beads and shit in their beards—I’m sure it’s just to get the stupid thing to grow straight down.  I can’t imagine how much effort it takes to grow a ZZ Top or somesuch.  But that’s mostly irrelevant to me, because long before I have to worry about that, my moustache will get so long that it starts getting in my mouth.  When I’m trying to eat, certainly, but even when I’m just trying to talk, or stick my tongue out so I can concentrate, or sometimes for no good reason at all.  Once that starts happening, it’s time to shave.

I had a friend (my boss on my first professional programming gig, as it happens) who grew a beard for a while, but he eventually shaved it off.  When I asked him why he gave up on it, he said it was too much trouble.  I was perplexed by this answer.  What do you mean, too much trouble, I asked.  Well, you have to trim it, and shampoo it, and condition it ... he went on and on about all the beard grooming he was putting in.  I had no idea how to respond to this, other than to say: you’re doing it wrong.

I mean, if we’re going to be honest here, most of the reason I grew the damn thing in the first place was sheer laziness.  The whole “it makes me look older” thing was mostly a convenience.  And, if you’re growing a beard because you don’t like shaving, then you better not be shaving very often, or else what’s the point?  I shave once every two or three months.  Something like that.  I don’t keep track; as I mentioned, I just wait for it to get annoying, then I shave.

But I don’t shave it all—did I mention that I have no chin?  Basically, I start at about the top of my ears and go all the way down until I have just a smallish goatee.  Then I thin out the beard a bit, square off the moustache so it’s not in my mouth any more, and that’s it for another few months.  Now, if I’m doing this for a special occasion (funeral, job interview, that sort of thing), I may follow that up with some shaving cream and a safety razor, but typically it’s just clippers.

The clippers I use to trim my beard are the same sort people use for shaving their heads—which is handy if you have friends who are skinheads, or Neo-Nazis, or Sinead O’Connor fans, or just guys who are going bald but still need to look tough, like bouncers in dive bars or Bruce Willis.  I’ve tried special beard trimmers and that sort of thing as well, but a nice simple pair of clippers is moderately cheap, does a great job, and they’ll last forever.  Well, they will if you oil them regularly.  My first pair of clippers I didn’t oil them.  The clippers come with a tiny little bottle of oil, and a recommendation to oil them after every use, and to use only the special oil with the manufacturer’s name on it, and if you’d like to order some more, it’s only $30 a bottle.  This sounds like a rip-off—which it is, but not because the clippers don’t need the oil.  I found out right quick that the clippers will rust on you in a heartbeat if you don’t oil them.  The rip-off part is needing to use the special oil.  Just get yourself some sewing machine oil: it’s the exact same stuff, except cheaper.  The Mother‘s mom is the one who taught me that trick: she bought me a 3 or 4 dollar bottle of oil some ten years ago or so, and I’m still on the same bottle.  I don’t know if you need to oil the clippers after every time you use it, but, since I only use mine once every few months, I do.

For me, shaving is a whole big ritual.  I only do it before I shower (otherwise you wander around with little stray beard hairs down your shirt all day).  I only do it over the toilet—I only had to clog up my sink 3 or 4 times before I learned that one.  So I always start by cleaning the toilet first.  Not necessarily the toilet bowl, I mean, but the outside of the toilet and the seat and all that.  Then I get my mirror and prop it up on the seat.  Then I double over my ponytail and tie it up out of the way ... one wouldn’t want to shave off one’s ponytail by accident, now would one?  Then I do the shaving, which is fairly simple.  Then I use one of those barber’s brushes to sweep all the stray hairs into the toilet.  (Maybe those things are easier to come by these days, but it took me about 15 years to manage to get one when I first started looking.)  Then I have to brush the stray hairs off me.  Then I have to brush the stray hairs off the clippers.  Then I oil the clippers.  It takes quite a while, really, for the whole procedure.  But then again I’m only doing it every few months, as I say.  So it’s not that bad.  And, you know: you get it down after a while.  Becomes sort of second nature.

So I start with the goatee, and it gradually fills out to a full beard.  By the time it gets shaggy, my moustache is in my mouth again and it’s back to the goatee.  It never really itches (except for the every 5 - 7 years thing), and it’s not particularly stiff, so I never bother conditioning it as my former boss did.  Oh, I shampoo it when I shampoo my hair, but conditioning?  That’s way above and beyond.  I’ve also never had any problems growing it.  I don’t have nearly as much hair on my head as I used to—my once-cool widow’s peak is now more of a Phil Collins sort of look—but the beard has always grown in nice and thick.

When I was younger, it was brown, with reddish highlights.  It got darker as I got older, nearly black ... and then it started to go gray.  First a salt-and-pepper look, then almost all white except for a black stripe down the center of my chin.  Yes, for a couple of years I was rocking the reverse-skunk look.  Now you can barely see any black at all.  No gray in my hair, but my beard is almost completely white now.  Hopefully it looks distinguished.

Our title today is from George Carlin’s famous poem about his hair.  (And where is the hair on a pear?  Nowhere, mon frère!)  Mr. Carlin always had a flair for language that I envied.  I’ll lean on him a bit to offer my final thoughts on the topic of beards.

Don’t be skeered,
It’s just a beard.

Sunday, August 11, 2013

Yet another week off


Well, this has been a weird two weeks: a fantastic first couple weeks on a new job, coupled with The Mother‘s car being totalled by a drunk driver—while sitting empty on the street, happily.  (Not sure Facebook will let you see, but in case it does work: here‘s what the poor car looked like afterwards.)  So this week I’ve mostly been consumed with work, and shopping for a new car.  Granted, The Mother did most of the work on the latter, it being her vehicle that needs to be replaced.  But still, it hasn’t left a lot of time for contemplation of things such as blog post topics.  Still, I took a stab at it, but I only got a few hundred words in before other stuff distracted me.  So you’ll have to wait until next week to see that.  Try to contain your disappointment.

Sunday, February 19, 2012

Amor Fati


I seldom end up where I wanted to go, but almost always end up where I need to be.
        — Douglas Adams

Some people believe in destiny.  The idea that the threads of our lives are woven together in a tangled skein is an attractive one, and reappears throughout history: from the Moirai of the Greeks and the Norns of the Vikings to the Wheel of Time in Robert Jordan’s series of the same name, which gives us the quote “The Wheel weaves as the Wheel wills, and we are only the thread of the Pattern.”  The reason this concept is so tempting is that it accords with our experience of the world.  If you stop and think back on your life, you’ll see a hundred different coincidences, a hundred different times where, if one thing had gone only slightly differently, your whole life would be in a different course.  In fact, looking back on one’s life at all the little things that had to go just so to lead you to where you are now, it’s enough to make anyone ponder whether there might be something to this concept: call it fate, destiny, fortune, karma, kismet, call it random chance or divine providence, say que sera, sera, or say the Lord works in mysterious ways his wonders to perform, or say the universe puts us in the places we need to be, but any way you slice it, it’s hard to pretend there’s nothing behind the curtain.

For instance, say I had not dropped out of college: then I wouldn’t have gotten my first job as a computer programmer.  I might have become one later in life, maybe, but it wouldn’t have been the same.  Say I had not accepted the offer to leave that job to form a two-man company with one of my former co-workers, which only lasted a few months ... well, then, I might never have ended up going back to school to finish up my degree.  I know for a fact that if I had not accepted an invitation from a friend of mine attending college in the DC area to come spend a week with him that I never would have moved to our nation’s capital, where I spent 18 years of my life.  I know this because I had already applied (and been accepted) to another college; it just so happened that I had missed the deadline for fall admission at the college of my choice and I was going to have to wait until the following spring.  But this school my friend was attending still had spots open—not for freshmen, but, then, I was a transfer—and a surprisingly decent English program, and so it became my alma mater.

And that’s just the beginning.

Somewhere out there in the wide world is a woman whose name I can’t remember, born in Hawaii, with the dark skin and exotic beauty to prove it.  She went to high school in Los Angeles, and her sister (or her cousin, or her best friend—I forget) went out with one of the guys from Jane’s Addiction.  Somehow she ended up moving across the entire country, and wound up in Fairfax, in Northern Virginia, just outside DC, working at a cheesy little college pub.  And, if she had not come out of the back room that day, and had she not been so pretty, and had she not smiled just so, and had she not looked at me and my friend and said “two applications, then?” ... if all that confluence of chance had not come together at that exact moment in my life, when I was just giving my friend a ride around to various restaurants so he could find a job as a cook, since it just so happened that he didn’t have a car, and just after an exhausting two or three weeks wherein I learned that my experience was enough to get me any number of programming jobs, but there was apparently no such thing as a part-time programming job (at least not in that place at that time) ... if all that chaos theory had not converged on that exact moment in time, would have I cut off my friend’s “no, just one” with a resigned “what the hell, sure, two applications”?  Probably not.  And if I had never taken that job, I would have never engaged in the childish electronic prank that introduced me to the computer salesman who became my first business partner, which eventually led to my starting my first company, which eventually got me a consulting job at large corporation, where I eventually met the woman who is my partner to this day, and who is the mother of my children, who are essentially the entire point of my existence.

That’s a lot of “coincidences.”

When business for my company dried up, and my meager savings was running out, another friend of mine just happened to mention a job that he had interviewed for but had decided not to take, but mentioned I might like it there.  Turns out I did, and I spent three and half years there, meeting some folks who are still some of my favorite people of all time, and having a really great job where I got to learn a lot of stuff, and teach a few things, and have a great deal of freedom, which was important, because I was coming off of working for myself for 13 years, and I’d utterly lost the ability to wake up early (not that I’d ever really had it, for the most part), or wear shoes at work, and I had 13 years worth of ponytail between my shoulder blades.

The story of how I left that job and came to the great state of California is yet another of those sets of bizarre, interlocking coincidences.  Last week I told you what I thought of corporate managers telling you you must take PTO when you’re slightly sick and you want to work from home.  As Bill Cosby once said, I told you that story so I could tell you this one.  I’m not going use any names here: if you know me, you most likely know the person I’m talking about, and if you don’t know me, you most likely wouldn’t recognize the name anyway.

When I first started at this job I’m talking about, the first job after running my own company for 13 years, I had a boss who lived in Boston and showed up for a couple of days every other week.  Despite not being around very often, this person was one of the best bosses I’ve ever had.  I was given very clear directions, never micromanaged, trusted, encouraged ... the only criticism I ever got from this boss was to step up my game, to take more responsibility, to stop worrying about stepping on anyone’s toes and take the lead on things.  This company was a subsidiary of a larger, public corporation, but our boss kept us insulated from any politics and let us do our own thing.  There was only one layer between our boss and the corporate CEO, and that VP and our boss seemed to get along just fine.

Then the synchronicity dominoes started to fall.  The VP left, and was replaced by a real asshole of a human being, one of those corporate jackasses who believes that being a jerk is a substitute for leadership.  In less than a year, the replacement was gone as well, apparently unliked by everyone, including the CEO, but it was too late: my boss had also submitted a resignation, and I was destined to receive a new manager, who would end up being one of the worst bosses I’ve ever had.  And I once worked for a twitchy Vietnam vet with a bad coke habit.

This new boss was a micromanager, never trusted, didn’t understand how to encourage and pushed bullishly instead, had no respect for the culture of the company, and basically ticked off every mistake that a corporate middle manager can possibly make.  It was like this person had a manual to go by:  Sow distrust and dissension among employees? Check.  Freak out and yell at people in front of co-workers? Check.  React to problems by increasing the number of useless meetings? Check.  I swear, somewhere out there is a book that tells these people exactly how to act, because the number of them who all do the same stupid things over and over again can’t be explained any other way.

It was Memorial Day weekend of 2007.  I was feeling a bit under the weather, but there was a big project going on at work that I knew we’d all regret if I fell behind on.  This new boss wasn’t my favorite person, but I still loved the company, and I wanted to do my best to make the (completely artificial) deadline.  That Friday, I sent my email saying I wasn’t feeling well, but I was going to soldier on.  Then I got to coding.  When I checked again, on the holiday itself, I discovered a snarky email from my boss, advising me that if I was sick, I should take PTO and not work from home.

I promptly replied that I was deeply sorry that I had attempted to make progress on our big project, and I assured my boss that it wouldn’t happen again.

I then went to check my spam folder, because that’s where all the recruiter emails invariably end up.

If you’re a technogeek like me, you know that once that very first recruiter finds you, there will follow a never-ending stream of offers for jobs in your specialty, jobs not in your specialty, jobs nowhere near the vicinity of your specialty, and non-specific vague pretensions of maybe possibly having a job for you one day so they’d just like to stay in touch.  Mostly you just ignore them ... until you get ticked off with your current work.  Then you realize that you’re sitting on a gold mine, tucked away in your spam folder.

I had always lived on the East Coast: 22 years in Tidewater, on the VA-NC border; 1 year in Columbia, SC; and the aforementioned 13 years in the greater DC metro area (partly in Northern VA and partly in Southern MD).  But if anyone asked me where I really wanted to live, I always said California.  I later expanded to the West Coast in general: Oregon is lovely (although, as it turned out, practically impossible to find a tech job in), and Washington is not a bad choice either (lots of tech jobs, but perhaps a bit colder than I’d ideally like).  But really it was California that had caught my interest; two trips to Borland out in Scott’s Valley and a couple of visits to San Francisco to visit an architect-turned-tech-entrepreneur friend of mine had cemented Cali—and the San Fran-San Jose corridor in particular—as the place to be.  So when I went looking for recruiter spam, I figured I might as well find something that said “California” on it.

There were only 3 or 4 recruiter emails, as it turned out ... a light dusting compared to what I normally had.  One of them said “Santa Monica, CA.”

Now, I didn’t know where Santa Monica was.  And I was too much in a huff to look it up.  But I knew where Santa Clara was, and I knew where Santa Cruz was, and I figured ... how much farther away could it be?

Pretty far, as it turns out.  Santa Monica is in Los Angeles county, and is (along with Venice Beach and Marina del Rey) one of the beach cities of LA.  As it turns out, my partner used to live in (or just outside) Santa Monica.  All that I was to find out later, though.

It was Monday (Memorial Day) that I sent a random email back to a random recruiter that I plucked out of a spam folder; on Tuesday, I got a garbled message from someone with an unintelligible accent—on a hunch, I called back that same recruiter and it turned out to be him; on Wednesday, I was talking to the recruiter’s boss, who was telling me about a company which had very high standards and was willing to pay full relocation; on Thursday, I had a phone interview with the folks who would eventually end up being my new bosses—this was conducted on my cell phone, while I was driving through the middle of downtown DC, trying to avoid the hideous traffic on the Wilson Bridge; on Friday, I was talking to someone at eBay corporate about a plane ticket; the following Monday night I got on a plane; Tuesday, I had what was possibly the best job interview of my career (probably second only to the one at the corporation where I met my partner), and they made me an offer on the spot; on Wednesday, I received a signed offer letter in my email; and on Thursday, I handed my boss a brief resgination letter.  So, to wrap up the discussion from last week, that’s under two weeks from the time my corporate middle-manager boss pissed me off over something stupidly trivial until the time I had a better job for about 25% more money (although, admittedly, part of that was simply to cover the higher cost of living in LA), and my old company lost 3 and half years’ experience and half their tech department.  Something for you corporate folks to chew on.

But the real lesson is, as far as I’m concerned (and as far as my family is concerned), when something is meant to happen, it will happen, and often with blinding speed.  I could tell you the story of our new house, for instance, which includes passing on it when it was overpriced, it disappearing from the market and then, strangely, reappearing for a cheaper price, and even a prophetic dream ... but I’ve babbled on for quite a while already.  No need to beat a dead horse, I think.

I’ve long felt that whatever force runs the universe, be it divine, karmic, quantum, or ontological, be it moral, predestined, anthropomorphic, cyclical, or merely mechanical, has been quietly and efficiently doing His/Her/Its job for me, or on me, putting me where I am today and seemingly with the inexorable goal of geting me to where I will be tomorrow.  As you can see, I’m an epistemological conservative, but still I can’t help but believe: all that effort that whoever/whatever puts into seeing me to my assigned place ... that’s a lot of pointless expended energy, if there really is no purpose behind it.

Something to think about, anyway.