Update on “Thoughts on Software Development”

I got some good feedback on my previous post, Thoughts on Software Development. I wanted to get back to everyone with a few more things.

Matjew earlier questioned the value of computer science degrees and placed a great emphasis on the ability to learn how things work.  I appreciate his feedback. I’ll be the first one to admit that a computer science degree isn’t necessarily the best training for a career in software, and I spent five years earning one 🙂 However, I think that traditional engineers are no better, and are in many cases, worse.  I work at a CAD company and look at code written by mathemeticians, physicists, and mechanical engineers all day, and trust me, they’re no inherently better at software development than Asians are inherently good at math. 🙂

Here’s why.  While problem solving skills and the desire and perserverence to understand how things work are admirable traits common among more traditional engineers, I have seen that this personality-type often backfires.  I can tell you with certainty that in most software projects:

  • Intuitive encapsulation:  Good
  • Disproportionately large amounts of time spent on debugging and maintenance:  Bad
  • Code that everyone can use: Good
  • Intellectual masturbation: Bad

Good code should self-documenting.  Code that is meant to be called by others should have some sort of recognizable interface.   If you take enormous pride in making a career out of decyphering and maintaining difficult code, wouldn’t that time and pride be better spent making sure the code never got to that state of decay in the first place?  Doesn’t the “detective” attitude just enable and encourage more code that requires a genius figure out? I see too many “ultra-genius” employees from the math, physics, and mechanical camp who delight in telling long, long stories about how some code was, how it changed, and how it doesn’t make any sense any more, but they figured it out, and how that’s “cool,” and I have to ask myself, “why?” 

Here’s a great example of code written by a math person:

http://forums.thedailywtf.com/forums/p/8489/161407.aspx

While understanding is good, the goal is to get the job done. We’ve all heard the phrase “Work smarter, not harder.” In software, having the humility request to stand on the shoulders of genius rather than prop them up, to demand that the code you work with is usable, rather than debugging and testing for hours and days just so you can say “I did it!”, is truly the smarter way to work and is what a real “good” engineer should do.

Advertisements

Optimal Dating Strategy, Part 2

I’ve gotten a lot of feedback on my “optimal dating strategy” post, and while it’s been mostly positive, there have been some questions that I’d like to answer.

So you’re some sort of geek, right? You used to have trouble getting girls?

Let me put it this way. When I was a kid, I decided to dress up as Indiana Jones for Halloween, but I didn’t wear the jungle-exploration outfit with the leather jacket and the fedora—I wore the college professor outfit with the tweed jacket and the bow-tie.

Did I think of this idea all at once and execute a “master plan” at one exact moment?

Actually, not really. I think I realized that my dating habits had evolved into my “ideal” system after about 10 first ten dates of my last major dating tour. I just saw the move 21, and while I wish I were as cool as Kevin Spacey with his cold, calculated way of winning at blackjack without actually getting caught up in the emotional aspect of “gambling,” my process grew slightly more organically.

Did you ever think of what would happen if any women found out about the strategy? Did any find out?

No, none found out, although there were a few times when the host at the comedy club asked me if I wanted my usual table. 🙂 However, that leads to another question.

Did you ever feel bad about doing this?

Not at all, because I don’t feel like I did anything wrong. The only thing I am guilty of is being impatient, realistic, efficient, and tired of getting screwed over. I was raised to value people even if they were annoying, unattractive, and of little use to me, and even though it gets harder with every year to hold on to that value, I still try to. Some of the women I dated got on my nerves, but even if I disliked them or felt like I had to ignore 90% of the conversation to keep my sanity, I never saw or treated them as objects, and even though they had a numbered cells in a spreadsheet, no one was “just a number.”

I met my fiancée though this dating system, and while she doesn’t like me to constantly bring it up :), because I met her by doing this, and meeting her was the best thing that ever happened to me, by definition, the dating system is the greatest idea I ever had. How could I feel bad about that?

Aside from massive dating frustration, what inspired you to do this?

Around the time I started this, I saw The 40 year-old Virgin and Hitch and read The Game by Neil Strauss and I hope they Serve Beer in Hell, by Tucker Max. These are all really great for anyone who was been frustrated with dating, but they all seemed to focus on making fun of strategies that don’t work or showing the dark side of getting women through manipulation. The Game discusses the how some geeks in the early 90s perfected the science of manipulative psychology used to seduce women for a “quick score.” I thought this was fascinating, but certainly not what I wanted to do. What I wanted to do was take the clichéd advice of “just be yourself” touted in 40-year-old-virgin and Hitch and turn them into a science—the science of being yourself as best and efficiently as possible.

Getting back to 21, I had heard about the MIT blackjack scandle years before the book or movie came out, and while I don’t think what I achieved is quite on the same level, I do like the idea of creating a dating “hack,” so that was in the back of my mind during the beginning of this too.

What other general conclusions did you draw from all of this?

There were several other influences and realizations surrounding all of this. I remember a while back reading about strategies for beating polygraph tests. One common piece of advice is that since it is generally not possible to hide your body’s physiological response to lying, you must resort to other strategies (such as making the truth appear to be a lie also) to best the test. This focus on what is possible and how to cope with it gave me two ideas on the realities of dating.

  1. I am not a polygraph machine. It is generally not possible to tell if a woman is nice, decent, honest, and interested in me or is just pretending to be nice, decent, honest, and interested in me. I’m sure I’ll catch some flack for saying this, but while there *are* nice, genuine girls out there, women are much better at “faking it” than we want to believe, and not just in the When Harry Met Sally way. The empirical evidence is all on my side, sorry 🙂 While there were a few ways to guess if a woman wanted to see me again that I mentioned in my original post, over-thinking this was, investing in the law of diminishing returns.
  2. I can’t beat the “attractiveness” test of other women. It is generally not possible to change my appearance to make someone attracted to me. I can get a decent haircut, buy a trendy wardrobe, lose weight, and read books on current events or conversation skills, but my core essence (geeky) will always shine through, and a women will go for that or she won’t. End of story. By spending 10,000 hours of time practicing being cool or $10,000 in lifestyle enhancements, I might gain a small edge, but if I can’t actually change my core essence all that much, isn’t that investing in the law of diminishing returns again?

I’m not trying to be cynical at all, here. It’s just that these two realizations above freed my mind to be much more realistic and practical, and instead of investing my time and money in areas that wouldn’t pay off, I instead put all my energy into increasing my sample size to a ridiculously large magnitude and let the “good” women filter their way to the top on their own.

This leads me into another point.

You know the stereotype that Asians are good at math? If you major in a math-science field in college or get a math-science job, you’ll see that this stereotype isn’t all that true. Here’s why. It’s not so much that Asians are good at math, it’s that there are just so many of them to begin with. There are over ten Asians on this planet for every white American. Their top 1% of skilled math people is ten times larger than the 1% of the white part of the USA. No wonder it seems they are better than us.

Apply that to meeting people. Just take the top 1% of a very large sample, and see what you come up with. You’ll get much better quality than the top 10% of a smaller sample, and many more choices than the top 1% of the smaller sample.

So what now?

Hey, I’m getting married. I’m retired from the dating scene. I’m still looking for a protege to try my dating system out on. Now that I’ve got it all down to a science, maybe I can play the Kevin Spacey role and get my own movie made.

Thoughts on Software Development

I recently had my fifth anniversary at the software company I work for, and I also recently had the opportunity to interview some potential summer interns. I began to look back on my career and education and try to catalog everything I had learned. What have I learned? Was my formal education worth anything? Did I really learn anything “on the job” or “on the streets?” The conclusion I came to was that while my college education was certainly very valuable, it only offered about half of the insight and context I really needed to be successful. I wanted to squeeze in an analogy about about how majoring in music won’t make you a rock star (oops, I already did), but I’ve tried to condense everything into the points below.

  1. Becoming a software developer is difficult because the software industry hasn’t been around long enough for us to:
    • Know how to properly educate students
    • Know how to properly train employees

    To put it another way, software development has evolved from PhD-level math and physics research to something more on par with MTV in less than sixty years, and education simply hasn’t kept pace with industry. As a result, software professionals typically like to or are forced to learn on their own and do things their own way. While this soft of self-motivation seems inspiring, it often leads to very messy, buggy software and disgruntled, disillusioned employees.

  2. The best way to become successful in software development is to be born with a very high IQ and start writing C, C++, and assembly when you are eight years old. This may feel horribly unfair if you are already over four feet tall when reading this now, but that’s life. The second best way involves doing *a lot* of reading, study, and practice outside of school and work. There’s no way around it. I was a horrible programmer in college. I wasn’t much better after my first internship. Things didn’t magically, automatically improve when I started my first “real” job after college, either. I only realized that I had finally “made it” as a software developer when I noticed that I looked forward to writing code that did something useful and non-trivial for fun, outside of work and school, and sharing it with people.
  3. Unless you have a masters or PhD in math or computer science, while possible, it is unlikely you will spend a lot of time working on data structure or algorithm design or analysis. This is disappointing to many young software professionals (and a relief to many as well :)). However, studying data structures and algorithms is important so that you can appreciate the appropriate one for a given task, even if you use a library’s implementation. While libraries for searching, sorting, etc… offer enormous benefits that few can afford to ignore, failing to have at least basic understanding of the difference between a “brute-force” algorithm and one that is at least reasonably optimal will give rise to serious problems if left un-checked. To put it another way, you have to know “it” even if you don’t use “it”, because you will use “it,” perhaps indirectly, when you least expect “it.”On that note, most modern software development actually often consists of:
    1. Gathering data from various sources, lightly processing it, and putting it somewhere else.
    2. Organizing existing data structures and algorithms into objects.
    3. Making separate pieces of code communicate (building your own middleware)
    4. Fixing bugs or making minor tweaks
    5. Adding or changing user-interface
    6. Listening to and understanding requirements
    7. Re-doing what has already been done a slightly different way (legacy code maintenance)
    8. Writing and maintaining high-level scripts to automate mundane tasks.

    If you ever want to get to the algorithm/data structure level, be prepared to stay in school another few years or pay your dues with a lot of work on 1 through 8.

  4. One of the biggest Achilles-heels in software development is that computers allow to people quickly create systems that are more complicated than any one person could ever understand well. One of the biggest misconceptions about software is because computers are inherently logical, one can always find a concrete, correct answer for any problem. These two phenomena are not un-related. To put it another way: Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. ~Brian W. Kernighan
  5. One of the luxuries that a software developer often strives to have is the opportunity to work exclusively in programming languages or technology areas he or she is an expert in. Unfortunately, most real-world projects and bug-fixes require sparse bits of basic and advanced knowledge of many different topics. You will often find yourself reading single pages of many books and articles just to fix a single line of code. After working in industry for a few years, you are likely to find yourself a “Jack of all trades, master of none.” Consequently, a developer can potentially invest much time in his career in specific areas such as MFC, OLE, OpenGL, and still not have gathered enough skills to feel satisfied as comfortable or “proficient” in any of them. See the second part of item (2) for a possible solution.
  6. Learning to develop software without being overly dependent on a certain environment is another aspect of the real world that new software developers will need to get used to. There will be many times that for some reason, good, bad, artificial, or unfair, you will need to develop code without free, popular libraries (STL, Boost), without garbage collection (Java, C#, etc…), or without wizards or an IDE (Visual Studio). While it’s not much fun to parse a text file using little but C, fscanf(), emacs, and gcc, you should be able to do this to a reasonable degree upon request. No on expects you to be at your best here, but you can’t go to pieces without your favorite tools.A related point: Larger, older companies often have made investments in technologies years ago that are, by the popular software media’s standards, “obsolete.” While MSDN Magazine will tell you that COM, MFC, and Windows 2000 are dead and that .NET and web-services are what you need to know in today’s workplace, unless you’re working for a small startup company, you’ll likely find that many of the books you’ll need to buy for your job still have copyright dates from the nineties.
  7. Software development, if nothing else, will drill the idea into your head that everything works in theory, but in practice…do I really need to finish this sentence? :). While everything that you learned in your computer science degree is important, you will see your four years of study bastardized, satirized, perverted, and disregarded every day in most software-oriented workplaces. Your job is to make an attempt to use what you have learned as much as is practical while allowing for the reality of deadlines and customers. To put it another way, software development is not unlike your typical feel-good movie where a young, inexperienced teacher takes a job in a poorly funded, inner-city high school, is overwhelmed at first, but through charisma, dedication, and unorthodox techniques, ultimately makes a difference. Your mileage may vary on the “makes a difference” part.
  8. The best software developers are the ones who can cope with, in a diplomatic, team-friendly way, all of these frustrations, even if they are against them in principle.

Success and Failure

 
I’m trying to debug an (allegedly) obscure and difficult .NET interop issue with MFC-based COM. So far, I’ve learned very little and have no idea what I’m doing. In my typical “think outside the box” style of avoidance / coping mechanism, I wrote this.

 I recently visited www.worsethanfailure.com, a site dedicated to stories and essays about software development escapades gone horribly wrong. I can’t find the particular text right now, but I do remember reading somewhere “Failure is the best teacher. One doesn’t get better by winning, does he?” While many tough-love advocates enjoy this cliché, I disagree. To put it another way, I think that Edison’s optimism on all his failed light-bulb attempts was a bit shallow. I was recently watching “House,” and Dr. House, as usual, was browbeating his team for performing tests that eliminated potential diagnoses. He belittled their efforts by making the comparison, “I asked you to find out what two plus two is—you’ve been up all night and all you can tell me is that it isn’t twenty-three?” While House is certainly an ass, he’s right. While I am not a big fan of the lukewarm “everything in moderation” crowd, I feel that a combination of success and failure is the best teacher.

 Okay—it’s time for another analogy. Does anyone remember the episode of “The Simpsons” that featured a battleship game? Millhouse has managed to fire a shot at every single vacant square on his opponent’s field. All that remains are the un-touched ship areas, surrounded by an envelope of misses. Has Millhouse learned anything? Even “perhaps” is a bit of a stretch, but even given that, he learned very, very slowly, and fostering slow learning isn’t typically the mark of a good teacher.

 I’m not sure what the ideal ratio of success to failure is when learning something new. (I’ll be a jerk and say 50% success to start, and hopefully, the success/failure feedback loop will drive that percentage up as learning progresses.) Keep in mind, though, that in life, the number of things you could possibly do wrong in a given scenario typically dwarfs what you could do right, and not all failures are useful learning experiences any more so than claiming 2+2 is “twenty-three” or “George Washington.” A useful failure would be to get a hit in a battleship turn, guess one space to the left next time, notice it is a miss, and then use process of elimination to make the next guess statistically more likely to be successful. However, one can never have that experience without some initial “seed” success. success x failure = learning and insight. If you take this literally, then 50% actually is the idea ratio.

Optimal dating through pipelining and fixed-sized instructions

Many of us have tried dating through structured services such as speed dating or online dating, only to find massive numbers of defective individuals in the social landscape. While this discourages many, it excites me, as it gives me a chance to perfect, document, and publish my “optimal dating strategy.”

This all began when I started analyzing CPU design and assembly instructions, which I studied in college years ago. Without going into the details of the, P and H Classic , in short, if you want to accomplish tasks quickly:

  1. Make sure that each task takes a predictable, and preferably fixed, amount of time.
  2. Break each task down into steps, so you can begin working on the next task after part of the previous one is finished.

The classic example is “laundry.” To do laundry, you must wash, dry, and fold/iron. Each step might take about thirty minutes. Let’s say you have many loads of laundry to do. If you start washing the second load after the first load goes into the dryer, and start washing the third load while drying the second and folding the third, you’re “filling the pipeline” and effectively finishing a single load every thirty minutes instead of every ninety. This is relatively intuitive to most people, but it’s often not applied as often as it could be in everyday situations.

Given my frustration with women my age, I asked myself, “There’s got to be a woman out there who’s right for me. Why not try to date as many women as possible with as little time, expense, and frustration as possible? That way, I am more likely to find one that works out in a relatively shorter amount of time. (I didn’t consider the encounters on “speed dating” to be real dates, just introductions with not much promise of anything more.)

How can I accomplish this?” My solution strategy was two fold:

  1. I simply assumed that most women I met would only want to go out with me once or twice. Therefore, after a women I met online or through speed dating agreed to go out with me, before we even met, I started working on finding another one to talk to and set up a date with.*
  2. I went on the exact same date with each woman.

I realized that I enjoyed going to a certain comedy club in Boston. The show cost nine dollars, drinks were about five, and there was a bar right around the corner that had more drinks, dessert, and coffee. It was an ideal date spot because:

  1. I knew it took exactly 38 minutes to get there from work, and I could always get a cheap parking spot at the garage at the T.
  2. I knew the policy for getting tickets in advance, dress code, etc…
  3. I knew I could get a table at the place around the corner without worrying about a bouncer, loud noise, etc…
  4. All of this would be done in plenty of time to get back on the T to go home at the end of the night.

Instead of trying a new restaurant that might suck and be overpriced, a new club that was impossible to get into or had no reliable parking nearby, or something offbeat and unexpected, like a night at the batting-cages that might turn out to be more tragic or ironic or unexpected in a “bad” way, since it’s likely that the person I’m meeting is going to completely flake out on me, why not arrange a meeting I have complete control over? Worst case scenario, I’m guaranteed to spend no more that $40 and will be home in time to watch a Seinfeld rerun.

So began this experiment. I was surprised how much I enjoyed it. The comics were mostly different each night, so that part was fun, and I could pretend like I was a sophisticated Boston guy who “knew the nightlife scene.” Little did anyone ever know that I knew the nightlife scene because I was training to be an anal-retentive social-scientist weirdo rather than a suave “guy who just knew all the right places.”

All of the quirks about the club made for great conversation starters. I made sure to vary my words whenever I told one of a dozen funny stories for the thirtieth time to make sure I didn’t sound like I was doing so. If the date were especially bad, I’d know just how to get the wait staff’s attention to get the check. It was so easy, that no matter how much I didn’t like the person I was with, I knew exactly how to conduct the evening, so I could pretty much zone out until it was convenient to end the night. I even had the exact same trendy outfit picked out in advance for each date. Hey, I’m unlikely to ever see them again, right? Why bother worrying about picking something out when I can find a winning outfit just once and reuse it?

If the weather was warm, I switched to mini-golf, often for the second date, if there was one. This is where I really started to go crazy in optimizing my every move. I had a standard mini-golf outfit picked out as well, for starters. Mini-golf is great, because it’s extremely predictable. Consequently, after the first few dates there, I won every single game. I even knew the little ways to cheat on each hole. After showing each woman the way to cheat, if they laughed, I knew I was on the right track. They serve really good ice cream at the mini-golf place I like, so if she laughed at my stunts from earlier, I knew I could ask if she wanted to get ice cream after the eighteenth hole. If she said “no,” then that was a great indicator that she wasn’t interested in anything else, so I didn’t have to worry about calling in a few days.

I highly recommend using the “part-two-optional date extension” move to judge a date’s interest level rather than trying for a kiss at the end of the night, since most women are so damn weird and paranoid about what rules to follow or break here. Why bother risking feeling awkward if you know where you stand in advance?

All of this conveniently fit into a spreadsheet, but I won’t post that 🙂

One side benefit to my “ideal dating strategy,” besides the convenience and efficiency, is that it gives a fairer benchmark as to what someone is really like. If the situation that you meet someone in is different every time, it’s harder to judge if they’re the kind of person you can get along with. For example, if your date seems nervous and distracted, is it because she doesn’t like you, or is it because you decided it would be fun to go skydiving on your first date?

I went through about forty-five women this way throughout last summer and fall. A couple of them didn’t fit into my strategy (see my last post about Kelly, but overall, as I hoped, I got through all of it with considerably less expense, time, and frustration than with “traditional” dating.

Of the forty-five women, I think I liked about eight of them, and of those eight, only one wanted to see me more than a couple of times.

I did finally end up meeting someone who worked out. We’ve been together for over a year, and she’s so terrific, I feel a little bad that she initially was part of my “ideal dating strategy” experiment. I told her about it, though, and she didn’t mind—she just felt bad that I had to put up with all those other crappy women.

*A woman who wants a third date could be seen as a pipeline “stall”http://en.wikipedia.org/wiki/Instruction_pipeline

My date with Kelly from Match.com

A while back, “Kelly” from Match.com contacted me and said she would like to get to know me better.

We talked a few times, and I learned a bit about her. Allegedly, Kelly is very good looking, thin, well dressed, and well-educated. She is black, but she only dates white men. She has a degree in computer science and is a software consultant for —-. She owns a house, two condominiums, and fifteen vending machines.

Kelly said she was twenty-nine. It seemed a little unusual for someone her age to have already accumulated this many assets, and the whole not-dating-her-own-race thing was a little weird, but she seemed interesting and friendly, so I figured I’d give her a shot. I invited her to go out to dinner and then see a show at one of my favorite comedy clubs in Boston.

I agreed to pick her up at a Barnes and Noble near where she lived, as she felt more comfortable with that than me picking her up at her home. I was fine with that. She was indeed very attractive, thin, well-dressed, and black.

Everything seemed to be going fine—until she started talking to me.

The conversation over the entire evening was steady stream of non-sequiturs so bizarre I began to doubt her sanity or grasp of the world around her. Every sentence she spoke was with ice-cold seriousness, (think of Hannibal Lector or the Robert Patrick T-1000 character from Terminator 2) so I think there is no way she could have been sarcastic or joking, especially since she kept this up all night, a good six hours.

We drove to the Alewife T-stop in Cambridge, parked, and got on the train. On the train, we saw an advertisement warning about the dangers of drug abuse. When we had emailed back and forth weeks earlier, Kelly mentioned several times that she was very against drug abuse and would not be involved with anyone who used drugs, smoked, or used chewing tobacco or snuff tobacco. Perhaps because of this earlier conversation, I mentioned that I saw something on television about glaucoma and medical marijuana, as well as that I knew someone who used marijuana to help with the nausea from chemotherapy when he had cancer. Kelly asked me what glaucoma was. She then asked me what chemotherapy was and what it did. It took me about five minutes to explain to her. It would have taken less time, but I kept having to explain that marijuana was *not* the drug that actually cured the cancer but rather the drug that helped with the side effects of the chemo. She continued to ask how the chemotherapy cured cancer, and eventually I just had to tell her that it (often) stops the cancer from spreading and eating away at healthy tissue. I then tried to change the subject.

When we got to the restaurant and were looking over the dinner specials and wine list, Kelly told me that she never had alcohol until she was twenty-five. She then gave me a detailed history about how her friend’s parents were alcoholics and that when they drank, they would move their cars out of the garage so they could dance in the garage and roll around on the floor. She then told me that on her twenty-fifth birthday, her friends tried to get her to try whiskey. Allegedly, on that occasion, she went into the kitchen, and “because no one was in the room to tell her how to do it,” she poured herself one red coffee mug and one blue coffee mug full of whiskey and drank them both. How someone who never drank before managed to drink that much whiskey at once without vomiting or spitting it out is beyond me, but I couldn’t get a word in edgewise most of the evening. She then said that she could not breathe, and her friends had to put a paper bag over her face. Her friends then packed her in ice in the bathtub and called an ambulance. I tried to change the subject again.

When we were looking at the menu, Kelly told me that she was unhappy with the food choices at the cafeteria in Buffalo. (I assume this is when she travels for work.) She told me that the oatmeal they had “freaked her out” because all of the “individual oatmeals” were much bigger than she was used to, and it was like “they had eyes and were staring at her.” Keep in mind, she is telling me all of this with a straight face. I explained to her that she was probably used to instant oatmeal, which shrinks after it is pre-cooked and dried, and that traditional, old-fashioned rolled-oats do appear larger and plumper when cooked.

Okay—no more conversations about food, drink, drugs, or anything else you put in your body.

Kelly asked me about my family, and I told her that my sister is changing careers and is becoming a nurse. I mentioned because of the shortage of health care professionals in America, many people often see a nurse or nurse-practitioner instead of an official medical doctor. This fascinated her, and she asked me how she could find a nurse to see instead of her doctor. I told her she’d just have to see who is available with her health plan. She said that she would research that when she got home. When trying to end this conversation, I mentioned that a lot of people see nurses for everyday problems but still might go see a doctor if they have problems with a more serious, chronic illness. Kelly asked me what a chronic illness was.

Thank God that show at the comedy vault was about to begin. I was able to relax for an hour and a half. It was a decent show. I’m glad that none of the comics gave us any basis for much conversation afterwards, though. We hopped back on the “T” to go back to Alewife. After we sat down, and the train started moving, Kelly abruptly asked me, “I wonder what makes people go crazy.” I said, “Huh?” She pointed to a man sitting less than three feet away from us and said, “That man is stretching out the material in his pants and is scratching patterns into it. I was wondering what causes people to go insane. Is it job stress, or maybe some sort of head injury, or something like that?” She wasn’t mocking this man at all—she was honestly very curious about his situation. Thankfully, he got off at the next stop.

As left Alewife, Kelly asked me if I knew how to “program” the new Charlie-ticket electronic exit-gates. I said, “No.”

On the drive back to Barnes and Noble, I made one last attempt to have a normal conversation. I asked, “So how did you end up with two condos, a house, and fifteen vending machines?” The next fifteen minutes were a high-speed blur of her entire financial history, complete with the complete balance of her checking and savings accounts, percent down payments, and interest rates. There was some mention of someone named “Lucile” that she “partnered” with in the middle of all of it. Also, apparently, if you’re a first-time home buyer, the government will pay for your down payment, and if you’re purchasing a condominium, you don’t have to pay your first month’s mortgage. I suppose this might actually be true under some very special circumstances, but I didn’t get any details of that.

We arrive back at Barnes and Noble, and Kelly hugged me and got out of the car. She didn’t mention anything about going out again, so a least we avoided that awkward moment.

I think the real clincher of the evening is that this women was very good looking, well dressed, articulate, and poised, and she allegedly lived an upper-middle-class, white-collar lifestyle. I could almost understand her behavior from someone who looked like an unkempt, “crazy” poor person who had trouble holding down a job at a car wash, but this was all coming from an attractive woman who wore a two-piece pant suit, high heels, makeup, and jewelry. I felt like I was in some episode of the Twilight Zone or “Alfred Hitchcock Presents.”

My conclusion is that Kelly was simply very, very sheltered her entire life and consequently didn’t know how to have a “normal” conversation with anyone. My other theories are that she was a space alien spy disguised as a human or a highly advanced but malfunctioning android—like in some episode of “Star Trek” where Lt. Data gets his memory wiped or something like that. Maybe she was Honey Ryder, the Bond girl from “Dr. No.” who was raised on an isolated island but had read an entire set of encyclopedias in her childhood. Maybe she was simply a compulsive liar.

I realize that I’m rather eccentric myself, and that sometimes, I take my own unusual interests, hobbies, and deadpan sense of humor a little too far for some people, but this woman was running circles around me in the world of weirdness. All I know is that I’m out $85, and I am now forever terrified of Claire Huxtable.

I love saag!

Hi all!  In a world where a non-google-saturated blog title and domain name are scare, the saag monster prevails!