Slashdot Mirror


The Bug

Trevor Stow writes with the review below of Ellen Ullman's The Bug. "The Bug is about a programmer, Ethan Levin, at a software start-up in the mid-1980s, tracking down one particularly irksome bug in his own C code. The longer this bug eludes Ethan, which his co-workers start calling the 'The Jester,' the more destructive its effects on his personal life. The Jester is this story's villain, one that can't talk, eat, get tired, or be reasoned with." Read on for the rest of Trevor's review. The Bug author Ellen Ullman pages 368 publisher Doubleday rating 8.5 reviewer Trevor Stow ISBN 0385508603 summary A programmer 's life unravels as he struggles to find a bug.

In fact, The Jester seems to have an impish intelligence of its own, laying dormant for weeks somewhere deep in the libraries of the company's ground-breakingly new GUI front end. When it does surface, it's usually during a sales presentation, causing a complete system failure: garbage on the screen, frozen keyboard. It's enough to frighten any and every potential customer. For a start-up still living on venture capital funding, this is a bad thing.

As if the stakes weren't high enough, our hero, Ethan, isn't exactly a well-rounded Renaissance Man. He has a single friend at the office, and they barely talk. Otherwise, Ethan is irritable, distant, and often loses himself in his own logic-gated thoughts. He suffers moments of mild panic where he doubts his own competency and frets over not having an advanced degree. Plus, his fellow coders are a petty, snide-commenting bunch; meetings degrade into profanity-laden shouting matches, passing the blame, etc, all of which spurs Ethan to work harder. He autopilots through dinner while reading a Unix manual, works from home, and falls asleep in his clothes.

None of this leaves room for Ethan's girlfriend, Joanna. At the story's beginning, she goes to India for a month with her male friend Paul. Ethan can't go, citing the importance of his work. Paul's wife can't go either. We see where that's heading.

Ethan's life begins to unravel. He associates his personal problems with The Jester. Once that damn bug's squashed, he tells himself, the rest of his life will stabilize into some happier space.

The story's narrator is Roberta, who speaks to us from the early 2000s, remembering her job as the QA tester who worked most closely with Ethan. Roberta does have an advanced degree, in linguistics, but jobs in academia are scarce, and what else do you do with a degree in linguistics? At first, Roberta dismisses the programmers as a gruff, dismissive pack of dorks, just as they dismiss her because she can't code. A frosty wall separates the two sides of the product development team: those who write the bugs, and those who find them. In her evenings, Roberta composes poetry and suffers her own anxiety over abandoning a higher education for a plain job in IT.

Eventually, though, Roberta learns to program in C, and that's where The Bug shines brightest, touching on some sparkling insights: the nature of life, the nature of time, the cold beauty of code, and ourselves, living side-by-side with computers that are not, alas, alive. Stuff that will stick with you.

However...

I was disappointed with the book's end. If you program for a living (as I do), you will see parts of yourself in Ethan. But hopefully, you aren't Ethan. Even if you have no friends, no girlfriend, nothing, you still might play video games or watch TV or something (read?). Ethan, it seems, makes no effort to find even brief happiness. His life is joyless. And that's probably why I didn't like the ending. The book builds so well, keeps a quick pace, with smart dialog, rich characters, suspense, and very high stakes: I felt the pay-off could have -- should have -- been much grander.

Ellen Ullman, who also wrote Close to the Machine, was a programmer in the 80s. I caught her interview on NPR, where she explained that Ethan's story and The Jester were very loosely based on her own pursuit of a bug while working at Sybase.

You'll probably enjoy The Bug, even if you don't like computers and write poetry for a living. It's adult fiction and feels contemporary without trying to be 'zany' or 'hypercharged.' It's not a funny book, but rather a calm, wise walk into unexplored story matter, with lots of interesting bits to think about.

You can purchase the The Bug from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

25 of 273 comments (clear)

  1. Hardly realistic by Anonymous Coward · · Score: 5, Funny

    At that frazzle point the guy would have either contacted the local gdb guru,just rewritten the damn thing, or documented it as a known issue and blame it on hardware.

    1. Re:Hardly realistic by Scurrility+Extempore · · Score: 5, Funny

      ...documented it as a known issue and blame it on hardware. You work for Microsoft, don't you?

    2. Re:Hardly realistic by botzi · · Score: 5, Funny
      ...or documented it as a known issue and blame it on hardware.

      Yeeeah.... I can see it:
      <from the doc>
      ...there's a nasty bug with the GUI, but stay calm, it only represents itself when you're using a monitor, as long as any terminal of any type isn't connected to the PC, it won't bother you....
      </from the doc>

      --
      1. No sig. 2. ???? 3. Profit!!!
    3. Re:Hardly realistic by Frymaster · · Score: 5, Funny
      if you have debuggery problems like this, you should meditate on my maxims and arrows

      debuggery - maxims and arrows

      1. be hostile: your application was your friend - your baby. you gave it life. well, no longer. now your application is your enemy. do you admire the intricate house of cards you have built like hiram abif? don't. you have a glue gun now and you are going to do a little explaining about who is boss here! your app is taunting you - it's thinking "what does a chemical/analogue hack like that have that i don't?" well, i'll tell you: an index finger. suitable for hitting the "del" key. make this crystal goddamn clear!
      2. kludge everything! the debug stage of the development life cycle is all about kludges. we call it klop - kludge-oriented programming:

        kludge foo = new kludge(specialCase bar);

        you've written that. the debugging phase comes at the end of a project. ie the part closest to the deadline when clueless suits and moneyment[1] confuse line count with product. the pressure is on. the company is on the line. are you going to walk into the glass tower and pitch to the vc's about how yr going to have to go back to the uml's and rebuild x? good luck! can i have your job when you're done? get the tape, get the staples, get the glue.

      3. blame others: teamwork is just a code word for being the shepherd to a flock of scapegoats. if you were smart, you'd have been working on cultivating a culture of accepting blame early on in the cycle. this is espescially effective if yr building a client/server thingy. establish early on that most of the failures are on the client(server) side. whichever one you're not writing.

        make yourself documentation czar if possible - then abuse the position to retroactively assign blame to other team members ("the docs explicitly state that we use roman numerals" - "gee, i don't remember that" - "well tough. get coding").if you set it up right you can build an army of debugging minions to do your kluding for you while you, uh, write in your blog...

      4. redefine feature sets. the client is a clueless little doughboy who can't tell his ass from his operating system anyway. he's been flaking you on the spec-n-req all year. turn those tables! if a feature is buggy, yank it. if there's a complaint, reference the client to some vaguely-related advisory somewhere (trust me, he won't read all the way down). if he complains say "in light of advisory x we strongly adivse against implementing _______ (feature). a work around may be possible at a future point and we are more than willing to calculate the billing for that additional work now."
      all that and echo will solve all yr debuggery problems.
    4. Re:Hardly realistic by Paradise+Pete · · Score: 5, Funny
      Your still in college, aren't you?

      Oh the irony.

  2. Spolier WARNING by Jonsey · · Score: 5, Funny

    I know the end of the book: Either the bug gets squashed, or he does. Or maybe dumbledore... wait, no, no main characters die... He comes back from the future to fight a new terminato----hulk... Wait, I'm lost again.

    --
    I assert that my comment is only my opinion, not that of any employer, past, present or future.
  3. Obviously fiction/fantasy by binaryDigit · · Score: 5, Funny

    A person as nerdy as he is and he has a girlfriend. How is that even remotely possible? And this girlfriend is apparently attractive enough to get someone to cheat on his wife with her, pure fantasy I tell you. This book loses all credibility on this one point alone. Plus, anyone who's THAT much of a geek and takes THAT long to find a bug, isn't someone I have a lot of respect for and would really care about anyway.

    1. Re:Obviously fiction/fantasy by swillden · · Score: 5, Insightful

      Plus, anyone who's THAT much of a geek and takes THAT long to find a bug, isn't someone I have a lot of respect for and would really care about anyway.

      I see you've never met up with any seriously nasty bugs.

      I worked on tracking one down, once (I didn't succeed; another engineer with 20+ years of experience was put on it, and although he didn't either, he got enough of a clue that a third guy with a heavy hardware background finally nailed it). It turned out to be caused by a subtle hardware bug (hooking together two devices with different edge-triggering criteria) that by itself wouldn't have caused any problem, but interacted -- occasionally! -- with a tiny bug in a driver, where the driver was attempting to work around a documented flaw in the ethernet chip it was controlling. That *still* wouldn't have caused a problem, but the embedded operating system we were using could, under certain circumstances, use zero-copy packet handling. The result was that incoming network packets would sometimes get overwritten by newly arrived data while the original packet was still working its way up the TCP/IP stack, or waiting for a thread to get around to processing it.

      The appearance of the bug depended on a zillion details, and it went for a long time without being noticed because one of the required conditions for appearance was a heavily-loaded network, so it wasn't until we got around to installing the system at a very large client site that it even cropped up (because of some other required conditions, lab-based stress tests had never revealed it). Exacerbating the problem was the fact that our system was designed for high availability, with each processor paired with a redundant "standby" system. In many cases the active board would fail and operations would be silently taken over by the standby board, further hiding the bug.

      That's the worst bug I've ever chased. I was the fourth engineer assigned to it and the first to find a way to reproduce it with some level of consistency (about 20% of the trials). The guy before me was the one who managed to demonstrate that what appeared to be a whole class of random failures was actually (probably!) one problem. By the time it was finally cracked, it had taken six programmers six months, with at least one person assigned to it full-time for the duration.

      I said that was the worst one I've ever chased, but I've seen plenty of other really nasty ones. The worst are caused by compilers that generate incorrect code or hardware problems, but I've even seen some really nasty ones that were entirely in my code, as well. Like a subtle bug in a set of B-tree routines I wrote years ago. A year passed between the time that one first showed up and the time I nailed it.

      Bugs that are intermittent (and rare), never show up under a debugger and hide somewhere in the middle of tens or hundreds of thousands of lines of code can be extremely hard to track down.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  4. I think we all know who the Jester is by pytheron · · Score: 5, Funny
    When it does surface, it's usually during a sales presentation, causing a complete system failure

    Common theme: Sales Presentation. Most sales-drones I've ever seen look and act like Jesters anyway.. certainly the promises spewing from their powdered faces seem utterly fantastic and comical at times

    --
    "I am not bound to please thee with my answers" [William Shakespeare]
  5. Snide-commenting? by PetWolverine · · Score: 5, Funny

    Plus, his fellow coders are a petty, snide-commenting bunch

    Forgive me, but when I read that, I thought this: /*Yeah, sure, this code will work. *snicker*/

    --
    I found the meaning of life the other day, but I had write-only access.
  6. subject by Anonymous Coward · · Score: 5, Funny

    > based on her own pursuit of a bug while working at Sybase.

    Plenty of source material then!

  7. won't read it by noah_fense · · Score: 5, Insightful


    I personally won't read it because the last thing I want to spend time on when I get home is . . . more work related reading material.

    I don't want to read "about myslf", but rather about something much more entertaining that I don't experience every day.

    -n

    1. Re:won't read it by fobbman · · Score: 5, Funny

      "I don't want to read 'about myslf', but rather about something much more entertaining that I don't experience every day."

      Give Penthouse Letters a try.

  8. Sounds dumb by JakusMinimus · · Score: 5, Interesting

    I write code for a living (wow big surprise huh?) and I can be as anti-social as the next guy (or gal, hey they do exist) but there comes a point when you simply move on to something else, only to come back with a vengeance when your subconcious clues you into the nature of the problem. Also, the bug sounds more supernatural than realistic. Sure I haven't read the book but judging by the description I'd just as soon pass over it.

    --

    You can be an atheist and still not want to succumb to some weird cross-over sheep disease -- AC
  9. Re:Spoiler? by HaeMaker · · Score: 5, Funny

    Yea...

    He uncomments:

    work();

  10. Plagiarism! by Anonymous Coward · · Score: 5, Interesting

    Do not read this book. It is a plagiarism of
    Moby DICK. They just replaced some of the names.

    The Bug = The DICK,
    Roberta = Ishmael,
    Ethan = Cpt. Ahab.


    Just like Tanya Grotter! Melville WILL sue!

    1. Re:Plagiarism! by delcielo · · Score: 5, Funny

      Toward thee I scroll, thou unconquering but all-destroying fail; to the last I grapple with thee; from Bill's heart I stab at thee; for hate's sake, I spit my espresso at thee.

      --
      Hot Damn! It's the Soggy Bottom Boys!
  11. I read this book. by eclectic_echidna · · Score: 5, Interesting

    A book that I actually read.

    The mood is dark, but not too cypherpunk. I can almost hear the florescent lights buzzing through the whole book. Very harsh and simplified.

    The descriptions of the team meetings and the QA vs. DEV rants rival Dilbert's distopia.

    Buy it for the few sex scenes, and watch out, the PHBs are in their too, not just the 'jester'.

    Also, there net admin is so raw. Bring her on!

    --
    Antiquated competence won't be a job skill forever.
  12. What gives? by Entropy248 · · Score: 5, Interesting

    Why is everyone describing the bug this guy is tracking down and commenting on it as if it were a literal problem to be solved? In order to make the metaphor clearer, the reviewer would have to pound you over the head with CowboyNeil's inbox!! Let's examine the plot summary. A guy has an unsolvable problem that always embarasses him. Doesn't anyone else's metaphor detector go apeshit on this description? And I'm not an english major... And I've never read the book... It must be /. == You failed to confirm you are a human.

  13. Quick fix.. by robbo · · Score: 5, Funny

    #include <signal.h>
    #include <stdlib.h>

    void handler(int arg) {
    char command[1024];
    sprintf(command, "/sbin/reboot");
    system(command);
    }

    int main(int argc, char ** argv) {
    signal(SIGSEGV, handler);
    ...
    }

    --
    So long, and thanks for all the Phish
  14. I like Ms. Ullman's writing, but... by brundlefly · · Score: 5, Interesting

    I don't think (from reading this book) that she's quite made the leap to writing fiction. The characters were wooden and stereotyped, the problems with "the code" overly dramatic and in the end sorta phony, and the plot was a stretch at best. She was trying to create a tension where none really exists naturally. (A Bug? Big deal, fix it. I do that 20 times a week or more.)

    I hope she continues to work on her fiction, because given how talented she is at expository prose and given her deep understanding of the geek existence, she has real potential. (Close to the Machine was excellent!) But for now I would much rather read a writer who learns geek (c.f. Neal Stephenson, William Gibson) than a geek who learns to write fiction. YMMV.

  15. Re:Sounds good. by grub · · Score: 5, Funny


    Any ideas where can I find a book that's 'zany' and 'hypercharged'

    Here you go.

    --
    Trolling is a art,
  16. Books like this? by mszeto · · Score: 5, Insightful

    I see a lot of people saying that they won't read this book because 'they program for a living and don't want to take it home' or other such arguments...

    I beg to differ - I think its great that a book has such an interesting premise and such a fresh view on literature. I've never seen anything like this, and will probably be picking this book up.

  17. The Bug is a metaphor... by code_rage · · Score: 5, Interesting

    Since my local bookstores do not have it in stock, I have not read it yet... (I broke down and ordered it on-line).

    But I'll go out on a limb here and guess that The Bug is not just in the computer. Some of the characters are also trying to debug their personal lives. Sorry if that is off the mark or just too obvious. But some of the comments about "I don't need to read about work" might be missing the mark.

  18. Sounds Familiar by nurb432 · · Score: 5, Funny

    Sounds vaguely like something I read long ago, something about a whale and a obsessed fisherman.. :)

    Ah, the classics never die, they just get a bad sequel..

    --
    ---- Booth was a patriot ----