Archive for July, 2012


Things I learned from the zombie apocalypse

July 23, 2012

I never expected to recommend a zombie apocalypse book to anyone. I don't read horror and I don't like zombie movies (excepting Shaun of the Dead, of course).

So, when a zombie book was on my Hugo ballot (so worth it!), I grudgingly read it. Actually, to keep the stakes low, I started with the Hugo-nominated novella. It was good, it had promise, a good wind up story, and excellent Once upon a time.

I figured I would read the Hugo-nominated novel (once you pay your bucks, you get a bunch of books, might as well read through them), even though the novel was the second in a trilogy. Basically, cynic that I am, I wanted to know whether it was worse than Martin's Thrones book (ahem, not a fan) so I could do my judgely duties.

The zombie book got me on the first page. It sucked me in so much that at the end of the first chapter of my free book, I went back to the first book in the trilogy, bought it, and devoured it. Then back to the Hugo packet to read the second. Then bought the third. It was a weekend where I got very little done. And then, two weeks later, I re-read all three because I'd been thinking so much about them. (Calibration: My usual re-read rate for books I like very much is once a year.)

Before I go on, I should at least give you a link to the books. The first one is Feed by Mira Grant. Start there. The novella was Countdown down but it is a prequel/origin story so maybe save it. You can find the other books from there. One itty-bitty spoiler: at the trilogy end, there is an end. Kind of refreshing, actually.

Inexplicably, I'm still thinking about these books that are about the zombie apocalypse. I find myself applying them to the world at large. It is a little weird. Maybe if I tell you about them, it will be some sort of catharsis and I won't have to think about them any more. (Doubt it.)

Fear does not make you safe.

When we heard about the horrible, senseless tragedy in Colorado, the tickets we had for the noon showing of Batman were not as shiney as they had been the day before. Terrorist? Whack job? Did it matter? Why should this nutter stop us from seeing this movie? Or taking the fun out of it?

And not just current events, this applies to all of the times where it is easier to avoid something that seems scary. Even taking a Tylenol. But being afraid doesn't make anyone safe. Being vigilant (and, according to the zombie books, armed) can keep me safe. But just being afraid and hiding? Not so much.

Another theme of the trilogy is that people in power will use fear to keep people complacent, an illusion of safety through control. Anyway, I didn't highlight this as a lesson learned because I think it should be self-evident to anyone paying attention to TSA and the War on Terror. But let's move on…

Politicians should check with six-year-olds.

In one scene in the book (not a spoiler), a character says that the president should have run his plan by a child. If the child says that the president will never get anything in his stocking but coal ever again, well, maybe it isn't a good plan. This seems like a good idea to me. Maybe then we could avoid murder drones, and broken promises.

What happens to make it all complicated? Sometimes it isn't. Sometimes there is right and there is wrong. I tend to live in a very gray world, really able to see reason in both sides of just about every issue. And yet, I hope my actions are mostly on the side of good. And I agree that six-year-olds have an intrinsic morality (thought it can be bloodthirsty).

I like Seanan McGuire's writing very much.

(Mira Grant is a pen name.) And now I've got a couple whole series to read. In fact, I read Rosemary and Rue this afternoon, a different series in a different world. It was urban fantasy not science fiction (not horror). And no zombies. Which is fine for now, but I do hope there are some zombies in the future.



Things you don’t pay me to do

July 19, 2012

As a consultant, I tend to bill 30 hours a week when I’m working full-time. Billing 35 hours in a week is an indication that I’m pushing it and feeling time pressure. More that that isn’t sustainable. But a client recently asked why I wasn’t working more when a project was falling behind.

The behind-ness wasn’t something more hours from me could fix, it was the dependencies that were failing. But there is something sincerely broken about the question.

Well, I get dumb when I’m tired. The more exhausted I am, the worse my code is. That isn’t true for the first week of too many hours, sometimes there is the lovely zone of intense concentration. But after that, well, I can write code but it won’t be good code. I much prefer to write good code. I just makes me happier.

I tried to explain to the client that they get things they don’t bill for, that they don’t see, that would be part of my “full time” if I worked for them. But it was on the phone and spur of the moment; I didn’t do a great job of it so, in good blog tradition, these are the things I should have said.

  • The 97 times a day I check my email when I’m not billing (e.g., shooting off a quick response at 7pm so the folks in Asia aren’t halted by a minor issue).
  • Conferences I attend and the reading I do to keep myself current in my field.
  • The gadgetry I buy (or, ahem, acquire) to evaluate new technology. These give me better understanding of users, new user interface design options, processor options, and sensor technology.
  • Chatting with coworkers around the water cooler (my watercooler is walking around the block with dogs and husband, clients only get charged for that if we spend the walk talking about problems that we need to work out, which is to say, occasionally).
  • Life chores such as those I often hear when in the office (e.g., two weeks behind deadline and now is when you conduct an intensive Craigslist search for a car?).
  • Not to work: 10 holidays, 2 weeks of vacation, 1 week of sick time = 25 paid days off. So if there are 52 weeks per year and 5 work days/week, that is almost one work day in ten that the company pays a full time worker not to work.
  • Surf the internet because I’m tired, bored, or sick.
  • Maintain my computer. If I drop or lose it, it is my problem to rebuild it. This includes my phone, assorted tools, email service and domain, and, of course, my laptop.
  • Eat cake because it is someone’s birthday. This is kind of sad for me. I miss the days that I got paid to eat cake, even crummy grocery story birthday cake.

So, there are a lot of things that are part of a job that aren’t part of my billing. I’m sure I missed some. 30hours really is a full week. Actually, I’d rather work 25, feel like a bit of a slacker, and have enough mental energy to work on my own projects.

Sadly, I don’t think these particular clients are savvy enough to understand that a well-rested and engaged engineer is more effective than an exhausted, burnt-out one.


Do I really have to wear pants?

July 2, 2012

I haven’t worn pants since mid-May. I work from home so most days I’m in in a skirt and sweater or shorts and a t-shirt.

What? You thought I was going to admit to telecons in my jammies (or less)? Umm… no… This isn’t that sort of blog. Actually, I’m not sure the rest of this post is going to fit in with this sort of blog. But I’m not sure, so let’s try it out.

Anyway, I haven’t worn pants in awhile. But tomorrow I have to go to a client’s office. While at least two of the skirts I wear regularly are reasonably appropriate for corporate life, I won’t be wearing either of them. I never wear a skirt to work.

I don’t like to remind my coworkers that I am female. I mean, I can’t hide it. I sometimes read in books about young women dressing as boys to go on adventures. That wouldn’t have worked for me any time after I turned twelve, it won’t work for me now.

There is being an engineer who is also incidentally woman and then there is being a feminine engineer. The latter will get me a lot more hassling. I’m not willing to deal with it.

Maybe I’m not being fair to the client… They are a San Francisco based, somewhat trendy software firm (OMG, open floor plans, who can live like that?). The engineers will be in jeans, the managers in khakis, the VP in slacks, and the interns will wear shorts (unless it is too cold). If I go in with a knee length linen skirt with lace on hem and a presentable shirt, well, if they are like anyone else, people will open doors for me and smile at me more. But if I wear slacks and the same presentable shirt, they will listen to what I say even if they opt not to take my advice. Guess which is find more gratifying?

So tomorrow, I’ll dig out pants and put them on, one leg at a time, only slightly bemoaning my failed pantless streak.

In the meantime, here, have a picture from this weekend, taken at Fitzgerald Marine Reserve just north of Half Moon Bay. It has tide pools, baby seals, and a natural cathedral of Cypress, all purely amazing. This picture kind of represents what I’m trying to convey. I want to show this whole picture but the work part of me is a trees only image, no flowers allowed.



What is it like to program?

July 1, 2012

I compared algorithms to recipes not too long ago. But I wanted to write a post about test driven development (TDD) and how every time I rediscover it, I think that it is great. So I was thinking about how to explain TDD to someone who doesn’t work with computers. And that was when I realized that just explaining how to program is not that easy.

I think of programming as writing: writing a story that is supposed to evoke a particular response from a given audience. Let’s say you had a young girl and you wanted her to smile, giggle, gasp, cry and then smile (with eye crinkles!). Other than those five actions, you don’t care what she does, but you need all five in, say, 15 minutes.

Once upon a time, there was a princess. She looked a lot like you! Her name… sotto, what is your name? Violet? Oh, that is beautiful! And you know what, her name was Violet too: Princess Violet Purple Lavender!

Ok, so I bet I’ve knocked off the first two responses there. But I’d have to try it out. I’d have to find a girl (named Violet) and tell her my story-let. And then, if it didn’t work, I’d have to erase her memory and try again.  And let’s pretend I could keep erasing and keep trying out stories until I got my five small emotional outbursts, all in order, all in my allotted time.

I may have to learn more about her to accomplish my task? What makes her scared? Is that the best way to elicit a gasp?  This information may be useful in crafting other stories for other children (or it may not, Violet may be oddly singular). And how I choose to go about this is very personal to me. I’d rather she gasped in surprise than terror. Given the current specification, I have that option.

There are lots of other stories out there, I might crib information from some of them and I might admire the elegant solutions or particularly fine writing. If a story ending isn’t copyrighted and is good for eliciting big smiles, well, I may use it myself, either wholesale or adapting it to the rest of my tale.

When I write programs, I’m telling the computer a story to get it to do what I want. There are lots and lots of ways to do it. Some ways are easier, some ways are considered better (if your Violet is young enough, you might get a gasp by dropping the F-bomb randomly but how are you going to get back to a smile from there?).

Sometimes I do have to figure out how to trick the computer into the action I want, very much like a puzzle. And sometimes I have each action as a preformed Lego block from some other story and I just need to find a good way to hook them together. That can be a puzzle too, especially if they don’t quite fit together (this one has a dragon, that one has a sea monster).

Finally, when I write my story, I’m not only writing for my audience but also for other writers. That story drivel above is clear and understandable but it isn’t great literature. I don’t know that I want to write great literature. But something with a little more craft would please me and any fellow writers who have to read my stories (err… fellow software engineers who have to read my code). It is kind of like the Anamaniacs cartoon where there were jokes for the kiddies and then there was another level of humor for the adults watching. The programs are for the computers and for the other programmers. A lot of programmers forget that.

I could ride this poor metaphor pretty far, but does it make sense to you? I don’t think I’ve represented the square-hole-in-a-round-peg problem-solving and puzzle aspect of it well enough so maybe I need an entirely different metaphor or I need to work in the poetry aspect to it. But then getting a kid to do what you want is often a pretty big puzzle. Anyway, if you program, how would you describe it to someone who didn’t?