Skip to main content

Review: jPod

jPod is the latest Douglas Coupland novel about programmers since Microserfs. It centers around a group of mildly autistic programmers in a video game company in Vancouver who all sit in the same area of the company because their last names begin with the letter "J" and in particular the lead character's life, Ethan Jarlewski.

While there are some interesting and thoughtful moments in the book, it unfortunately comes nowhere near the calibre of Microserfs due to the following reasons.

1) Wildly outrageous plot lines: I won't go into too much detail about these, but suffice to say where Microserfs was at least plausible (if slightly unrealistic), Coupland relies on ridiculous events to keep the story going in this case. Not only that, the characters are able to navigate these plot points virtually unscathed and unscarred (where as in real life these kind of things would require months of therapy).

2) Too many non-story devices: There is one part of the book where the number pi is printed to 100,000 places which uses up about 10 pages which is not story which no one will bother reading. These kinds of techniques are employed liberally throughout the book.

3) Too many pop culture references: It's as if Coupland has decided that the pop culture references are more important than the characters. In Microserfs they were cute, in jPod they are overwheming.

4) Inserting himself into the novel: Ok, Hitchcock liked to make cameos in his movies, but Coupland not only makes his characters reference him, he also turns up in his own novel and ends up being the deus ex machina (god in the machine). This makes you hyper aware you are reading a novel and you completely lose the ability to lose yourself in the storyline.

So, Mr. Coupland, if you ever get around to reading this and then writing another novel about the programming community please heed these issues. On the one hand I think there are enough interesting quirks about programmers to fill lots of books and so I am glad you continue to write about them (us), but please focus on the characters.

Comments

Popular posts from this blog

Master of my domain

Hi All, I just got myself a new domain ( http://www.skuunk.com ). The reason is that Blogspot.com is offering cheap domain via GoDaddy.com and I thought after having this nickname for nigh on 10 years it was time to buy the domain before someone else did (also I read somewhere that using blogspot.com in your domain is the equivalent of an aol.com or hotmail.com email address...shudder...). Of course I forgot that I would have to re-register my blog everywhere (which is taking ages) not to mention set up all my stats stuff again. *sigh*. It's a blogger's life... In any case, don't forget to bookmark the new address and to vote me up on Technorati !

Responsive Web Design

I wanted to go over Responsive Web Design using CSS. In the old days of web development, we had to code to common screen sizes (i.e. 800 X 600, 1024 X 768) and we patiently waited for people to upgrade their computers to have a decent amount of screen real estate so we could design things the way we really wanted. We also took on semi stretchy web layouts etc to expand and contract appropriately. Then about 2 or 3 years ago, Apple released this little device called an iPhone with a 320 X 480 resolution which took the world by storm and suddenly a lot of people were viewing your website on a tiny screen again... Anyways, as it can be difficult to design a site which looks good on 320 X 480 AND 1680 X 1050, we need to come up with some kind of solution. One way is to sniff the client and then use an appropriate stylesheet, but then you are mixing CSS with either JavaScript or server side programming and also potentially maintaining a list of appropriate clients and stylesheets. Also, you

Elixir - destructuring, function overloading and pattern matching

Why am I covering 3 Elixir topics at once? Well, perhaps it is to show you how the three are used together. Individually, any of these 3 are interesting, but combined, they provide you with a means of essentially getting rid of conditionals and spaghetti logic. Consider the following function. def greet_beatle(person) do case person.first_name do "John" -> "Hello John." "Paul" -> "Good day Paul." "George" -> "Georgie boy, how you doing?" "Ringo" -> "What a drummer!" _-> "You are not a Beatle, #{person.first_name}" end end Yeah, it basically works, but there is a big old case statement in there. If you wanted to do something more as well depending on the person, you could easily end up with some spaghetti logic. Let's see how we can simplify this a little. def greet_beatle(%{first_name: first_name}) do case first_name d