Writing and coding: doing it right

First, some back story: The Wheel Of Time® is a massive and enormously popular 11-volume epic fantasy series by Robert Jordan. The first book was published in 1990, and Jordan sadly died in 2007 before he could finish the highly anticipated twelfth and final book. In December of 2007, Tor Books (Jordan’s publisher) announced that Harriet McDougal (Jordan’s wife and editor) had asked Brandon Sanderson to complete the last book in the series, “with scheduled delivery of the manuscript in December 2008 and a planned publication date of Fall 2009.”

Big job, power to him. Now fast forward to the present day:

Tor Books is proud to announce the November 3rd, 2009 on-sale date for The Gathering Storm, Book Twelve of The Wheel of Time and the first of three volumes that will make up A Memory of Light, the stunning conclusion to Robert Jordan’s beloved and bestselling fantasy series. A Memory of Light, partially written by Jordan and completed by Brandon Sanderson, will be released over a two-year period.

The final volume has expanded into a three-volume set! Brandon Sanderson has written an excellent post on how it came to be that way. Here are some snippets, but if you have an interest in writing and publishing, it’s worth reading the full post:

Around January or February, I posted on my blog that I was shooting for a 200k minimum. This surprised a lot of people, as 200k would not only have made AMoL the shortest Wheel of Time book other than the prequel, it seemed a very small space in which to tie up the huge number of loose ends in the book.

April 2008. I had to make a decision. I realized that the book would be impossible to do in 200k. I’d begun to say on my blog that it would be at least 400k, but even that seemed a stretch. … And this is where the first decision came in. Did I try to cram it into 400k? Or did I let it burgeon larger?

I wrote all summer, and the next point of interest comes at Worldcon. Tom [Doherty] and I were on a panel together, talking about AMoL. I noted that (by that point) I had around 250k written. He said something like “Ah, so you’re almost done!” I looked chagrined and said “Actually, I feel that I’m only about 1/3 of the way there, Tom.”

By December, after my book tour, I was pushing hard to even get 400k done. I still had this phantom hope that somehow, I’d be able to spend January, February, and March writing harder than I’d ever written before and somehow get to 750k by the March deadline that Tom had said was about the latest he could put a book into production and still have it out for the holidays.

Anyone who works in software will recognize the process at work here: you start working on something, and it turns out to be much larger than you expected. It’s not scope creep — that’s a different beast entirely — it’s a matter of doing it right. Ian Hickson magnificently put it like this:

Someone asked for onbeforeunload, so I started fixing it. Then I found that there was some rot in the drywall. So I took down the drywall. Then I found a rat infestation. So I killed all the rats. Then I found that the reason for the rot was a slow leak in the plumbing. So I tried fixing the plumbing, but it turned out the whole building used lead pipes. So I had to redo all the plumbing. But then I found that the town’s water system wasn’t quite compatible with modern plumbing techniques, and I had to dig up the entire town. And that’s basically it.

There are a lot of similarities between writing and coding. They are both intensely creative occupations, and both can be frustratingly unpredictable. There are some types of project that you can estimate and write or build fairly accurately, but in many cases (a novel, the next Twitter) you’re breaking completely new ground. You can start with an idea, but until you get it out on paper, or down on the screen, you really don’t know how it is going to turn out.

Sure, you can write a detailed outline or specification, but you still have to hammer out the details on a line-by-line basis. Unless you take a lot of time to extend that outline or spec down to the line level, unexpected stuff will slip through the cracks, and you’ll find yourself dealing with the unknown.

Which is where the magic happens.

“Connect to a server” option in IIS Manager is not available

If you are running Vista, and are wondering why you can’t use IIS Manager to connect to any remote servers, sites, or applications…you’re running the wrong version.

Here’s what the wrong version looks like:

The wrong version of IIS Manager in Windows Vista

You need to grab the “IIS Manager for Remote Administration” instead, as shown in the picture below. It has an active toolbar in the connections panel, and extra menu options. It allows you to administer IIS sites and applications on remote machines.

The right version of IIS Manager in Windows Vista: IIS Manager for remote administration

Download links:

It took me ages to figure this out — I thought there must be some option, service, or permission I was missing that would allow me to connect to remote sites. But no, you need a completely different version of the damn tool. Vista Ultimate, my ass. I hope this makes the answer a bit easier to find for the next person who is stumped by the same issue.

2008 in review: Films and TV

Early on this year I gave up on tracking films and books in my Quick Reviews list. I hope this is a temporary condition, because I’ve come to the end of the year and I’m struggling to remember what I have watched and read.

At least with films, I know for a fact that the list is very limited. I caught a few of the obvious ones (Iron Man, The Dark Knight, Quantum of Solace), but there there are many more I wanted to see, but missed: Hancock, The Incredible Hulk, Body Of Lies, etc. And nothing I saw has stuck in my mind as an all-time great.

The viewing experiences I enjoyed most in 2008 were TV shows, consumed in multi-episode nightly blocks, courtesy of DVD box sets. I love pouring myself a glass of single malt, curling up on the sofa, and settling in to watch a couple of episodes of something big – a story that is going to go on for hours and hours. Here’s what I’ve been watching in 2008:


  • The Wire is one of the best TV shows ever made — believe everything you hear about it. Every character is nuanced, every piece of dialogue is textured, and every episode is a treat to savour. I caught up on seasons 3 and 4 this year, and it keeps getting better. I’m about to order season 5, and I can easily see myself going straight back to the first series to watch the whole thing all over again.

  • Richard is a big fan of The Shield, and it was on his recommendation that I started watching it. I was a bit apprehensive at first — The Wire sets a high bar for quality — but The Shield is a very different beast. It’s fast-paced where The Wire takes its time. It runs on a constant knife-edge of conflict where The Wire exists in a flux of uneasy truces. When violence erupts, in The Shield it is ugly, brutal, and personal, whereas in The Wire it is more likely to be “just business.” But in both cases, the characters are more than just the heroes and villains of the story, they are the story. I’m up to season 5 now, and about to order season 6.

  • Spooks had never really been on my radar when we were in the UK, which is odd, because I do like a good spy story. My brother bought me series 1 last Christmas, but I didn’t watch it until June. After that I was hooked, though. The episodes are uneven, and sometimes it feels like the team just stumbles from one terrorist plot to another with nothing much inbetween. It really shines, though, when the characters’ decisions matter, and affect their lives from that point forward. I’m three seasons in, and 4 is ready and waiting.

  • Criminal Minds is the odd one out here. The cast of characters is engaging and watchable, but although each episode takes the opportunity to reveal something more about each member of the BAU team, it has not irrevocably changed any of them — so far, at least*. I’m two episodes into season 2, and it’s still the Serial-Killer-Of-The-Week club. That’s not to say I don’t like it — I do; it’s well-written and very entertaining — but with the exception of a few episodes, it’s popcorn crime compared to the The Wire and The Shield.

The only downside of watching TV series is that it’s way too easy to say, “oh, I’ll just watch one more episode,” and before you know it it’s gone midnight.

* Update: spoke too soon. I should have waited until episode 5+6 of season 2.

Geeknotes 20081231: The good-riddance-to-2008 edition

(Note: this entry was originally written for the Skyscanner Geeks blog.)

HTML, CSS, JavaScript

  • YQL (Yahoo! Query Language) allows you to easily grab XML or JSON data from Yahoo’s services (Search, Flickr, weather, social, Upcoming, et al.) using a SQL-like query language. Christian Heilmann explains. (Being a massive Yahoo! fanboy, I can’t help but jump up and down excitedly.)
  • Dustin Diaz on using a super-simple skinny doctype. One benefit of using this is that you save bytes. Personalyl, I can never remember the proper syntax and URL for the HTML doctypes, so this is going to save me the hassle of looking it up every time I make a new page. (Templates? Phooey.)
  • Cameron Adams built a drum machine in JavaScript: the JS-909. (Via Dan Cedarholm)
  • Chris Anderson of Sitepoint takes a look at CSS3, and how we can use it to create box shadow and rounded corner effects. (Remember that cross-browser compatible does not have to mean cross-browser identical.
  • The YUI Doc tool is an alternative to JSDoc for generating documentation of JavaScript code.
  • A suite of feature detection tests to use as an alternative to browser sniffing. (Via Ajaxian).
  • A new “Lorem Ipsum” generator: HTML-ipsum.com gives you chunks of lipsumized HTML, instead of just lipsum text. (Via Andy Clarke)
  • Steve Souders looks at the state of web performance in 2008 See.also Douglas Crockford’s talk on Ajax Performance.

Scaling, clouds

Browsers

Software development

  • They Write the Right Stuff” by Charles Fishman in FastCompany. An article on the software developers who write the code for the Space Shuttle: “The group’s most important creation is not the perfect software they write — it’s the process they invented that writes the perfect software. It’s the process that allows them to live normal lives, to set deadlines they actually meet, to stay on budget, to deliver software that does exactly what it promises. It’s the process that defines what these coders in the flat plains of southeast suburban Houston know that everyone else in the software world is still groping for. It’s the process that offers a template for any creative enterprise that’s looking for a method to produce consistent – and consistently improving — quality.”
  • Daphne Dembo, Engineering Director at Google, describes some of their challenges in developing a fully international search engine.

All the rest

Going skating

Oostzaan is a very watery place. The central square lies about 60cm below sea level, and the whole village is criss-crossed with canals and waterways. It’s easier to get around on foot and by bike, because there are plenty of bridges that aren’t accessible by car.

There’s a canal that runs just behind our house, and we have been thinking about buying a small boat for messing around in. Until just a few days ago, though, the thought of walking out our back gate, crossing the road, and going skating hadn’t crossed my mind. But we have had freezing temperatures at night for the last week or so, and almost all the water around the village has a thick layer of ice. While Abi and I were out cycling on Monday, we saw a handful of people out on the ice at the skating club, but today it seemed like half of Oostzaan had their skates on.

Alex and Fiona have never been skating before. When I suggested to Alex that we go out and try it, his reaction was immediate: “No! For two reasons: one, I don’t want to injure myself. And two, I’m hibernating!”. Fiona proved more persuadable, and we took a quick trip out to the local bike shop to buy her a set of strap-on blades. (Unfortunately they didn’t have any real skates in my size – I’ll need to go out after New Year to get some.) Then I took her out and let her try them.

Normally I don’t enjoy the cold of winter much, but I’m wondering if that’s because it hasn’t been cold enough for me in recent years. I have to admit that I’m quite thrilled by this deep icy chill.

Geeknotes 20081116: The Unistable Polyhedron edition

(Note: this entry was originally published on the Skyscanner Geeks blog.)

CSS, Typography, Design, User Experience

Coding

Threading, Scaling, Clouds

Other Geekery

  • For those times when you want to talk about your shiny new idea but are worried that your buddy might nick it, Rands delivers the FriendDA.
  • A unistable (or monostable) polyhedron is a shape that will only balance on one of its faces (assuming uniform density). The unistable polyhedron with the fewest known faces is shown below. See notes at Wolfram Mathworld and the Mathematical Association of America. (Via the Risks Digest.)

unistable-polyhedron.png