Cyberspace Open Update

A couple of people have asked me what’s up with the ol’ Cyberspace Open. The short answer is that we’re in the waiting period while the judges wade through all the entries. You may have noticed by now that I’m rarely satisfied with the short answer.

The long answer is that last time the judges were a bit overwhelmed, and didn’t hit their deadlines. Being the clever humans they are, they allowed themselves more time for judging this spring. Round two of the contest goes from 5pm May 22 to 9am May 23. Or something like that.

Of course the added judging time gives me extra time as well, to go back over my entry and find more things I could have done better. Hopefully most of the other entrants are in the same boat. Time will tell.

I misreported about the contest format a while ago; while last fall there were three rounds, this time there are only two. In round two the remaining 100 contestants will have overnight to construct a dazzling scene. The top three of those scenes will be produced and put on the Interwebs for voting. To vote, one must subscribe to the contest sponsor’s mailing list, or something like that. If it matters, I’ll get back to you on that.

In previous years there was a third round with the top ten contestants, giving them 90 minutes to produce a masterpiece. I suspect that the quality of those entries was suspect, and that they went with the two-round format to have a better product to put on YouTube. Can’t say as I blame them.

Anyway, I’m continuing to cross fingers and toes and wait (mostly) patiently for the results. Will the judges like my work, or will they trip up on the parts I want to make better? Will they roll their eyes and say, “Vampires? Again?” (There are also four cash prizes for genre submissions, awarded based on round one entries. Unfortunately I expect that two-thirds of the entrants did some urban fantasy/horror thing, so the competition will be pretty fierce.)

I’ll probably be in Prague when my score comes out, but don’t worry, kids, I’ll be sure to let you know right away.


Something New to be Afraid Of

I’m sure other people have already thought to be afraid of this, but it’s new for me. I was thinking about genetically modified foods the other day, comparing them to newer, faster computers. It’s not the end consumers who benefit most from either technology; in the case of computers it’s the software and OS developers who win. For genetically modified foods, it’s the farmers and the big agricultural companies who benefit the most.

Sure the end users may benefit indirectly from having more awesome small-shop applications to try (modern power-hungry operating systems are packed with features that make creating robust applications simpler) or less pesticides on the food (plants can be modified to fight back agains pests), but for the most part people are not getting much of a perceptible lift.

Sometimes the practices of the big agribusiness companies like Monsanto don’t even help the farmers. They have now created versions of their big-selling products that don’t reproduce. That is to say, a farmer can’t keep some of his crop from one year to use as seed the next. He must go back to the big seed factory each year if he wants to grow crops that have the other benefits that make his farm profitable. (My information on this is actually a few years old; I don’t know what has happened since, so I might be totally wrong. That happens fairly often.)

I promised at the start that I would give you a new source of fear, and I’m a man of my word. Here’s the scenario: Farmers grow crops that can’t be used as seed. Then Something Happens, and the agri-giants are unable to create seed crops, either. It could be something as simple as bankruptcy or a corporate move to manipulate seed prices. It could be some sort of genetically engineered snafu if you want to Fear the Machine while you’re at it. Whatever mechanism you want to invoke, suddenly all these high-tech seeds that the farmers were counting on are not there. In their place – nothing. As winter comes farmers are reaping a record harvest they can’t replant, and they already know that there are not enough seeds for spring. Not nearly enough. Then what?

To make the story scarier, it would be best to wait until the agricultural giants are more entrenched in developing countries as well, but even if it happened now it would be something to worry about. Worrying is one of the things I do best.


There is a vibrant subgenre of science fiction that goes by the moniker steampunk. A steampunk world is filled with gears and gizmos, crazy clockwork inventions that in a broad sense answer the question “what if the information age started without electricity?” Escapement by Jay Lake takes the steampunk idea one step further: rather than filling the world with crazy mechanisms, the world itself is a piece of clockwork machinery. The Universe is a functioning machine.

What would the effect be in the inhabitants of such a world? Theology would certainly be changed dramatically, as evidence of intelligent design is right there in the brass gears that move the planets in their tracks. On this Earth there is a wall around the equator, miles and miles high, that fits into the track that defines the Earth’s orbit. (Gravity still seems to function, and the Earth is the same size as our home planet, so I’m not sure how regular orbital mechanics interact with the mechanical orbital mechanism. But anyway…)

The inhabitants of the flat parts of the Earth are similar in temperament and technology to those of Victorian era. (Steampunk loves the victorian age.) England never lost her colonies, despite an abortive rebellion in the US led by Lincoln and Lee, and now rules Europe as well. China is rivaling England’s dominance of North Earth. South of the wall… who knows? No one has managed to get there and back again. There are tensions between the two powers, and both nations are trying to reach South Earth. There are also international secret societies with their own agendas.

It’s a volatile situation. You know what could be disastrous at a time like that? A genius, that’s what. Adding Paolina Barthes to that situation is like adding an atomic bomb to gasoline.

Paolina was born in a dying village at the foot of the wall, way out in the Atlantic. The wall is a vertical continent filled with all kinds of strange creatures and intelligences, including robots. (Since Čapek has yet to be born, they are called Brass Men.) Events and Stupid People drive her from her home, and she sets out along the wall to find distant Africa, to travel from there to England, where the great wizards create the machines that can change destiny. Paolina has also built a clock — only it’s more than a clock, it’s a device that is in tune with the mechanisms that drive the world. Once it is tuned to resonate with something in the world, it can be used to alter that thing. Some folks on the wall call it a gleam.

In her travels she meets a Brass Man. He is a machine, identical to all the others but for the memories in the crystals in his head that have not been shared yet. There is a code word, he tells Paolina, a word that he himself does not know, that would break the seal that ties him to Authority. Naturally Paolina resolves to find that code to free him.

There are two other main characters as well, but they are less interesting. Perhaps this is partly because of the way we meet them. More on that shortly. Angus al-Wazir is a big, Scottish (with a bit of Arab) military man, formerly of an airship that went down while exploring the wall. He’s made it back to England but now finds himself part of a project to drill a hole through the wall to get to the other side. Emily Childress is a librarian and a member of one of the aforementioned secret societies. She’s been dragged from her library and is about to become a political sacrifice when Events intervene, and she finds herself prisoner on a Chinese submarine.

This was a fun book, but I want to talk for a little bit about the first couple of chapters. Each chapter starts with Paolina, then comes Angus, then comes Emily. Paolina lives on al Muralha; it shapes her life. As something that’s always been there, it’s not something she considers directly that often. I, on the other hand, had no idea what the hell al Muralha was. The village is small, and dying, and everyone besides her is really quite stupid. Only gradually do I start to discover what everyone in the story already knows — that the wall is truly, stupendously, mind-bogglingly tall. In the meantime, I was confused.

It has become a theme in my rambling reviews of late to discuss the way a novel interacts with others of a series. The other two characters in this story (and the wall) were introduced in a previous book. When we are introduced to Angus and Emily there is a whole ton of backstory to deal with, especially with Emily. We are told about Emily’s role in sending some other guy off on a mission with the White Birds, her secret society. We are told about the theological differences between her society an the others they are at odds with. The thing is, all that backstory could have waited. I was starving for information, but given a bunch of blah-blah-blah instead. What I was waiting for was for someone to look at the damn sky. More than once there are passing references to brass in the sky, and even phrases like, “one had only to look at the sky to see the hand of the creator.” I thought at first that the writer was being coy, teasing me along with references to the strange clockwork universe, but in the end that wasn’t it. I think the wall and the sky were made clear in the previous book and he didn’t feel the need to go into the details again. I can’t say for sure as I haven’t read the previous one. I just needed Paolina to spend an evening estimating the width of the track the Earth follows (later she mentions that she has done this), perhaps calculating the stresses on it or speculating on the motive force behind it, to not only appreciate the clockwork world but Paolina as well. It would have been interesting and could have focussed on details of the world not touched on in the previous book, to make it interesting to newbies and returning fans as well.

So we begin with a lot of information, but it’s the wrong information. All that other backstory that we did get is also handled when it is actually needed, so overall chapter one, when we should be getting to know the people and the world, is more about getting to know a different and not terribly relevant story.

After we get through the blah-blah-blah (which is pretty quick) we get on with the story and it’s a pretty good adventure. Just how much power Paolina’s gleam holds is revealed gradually and interestingly, and her struggle to find a place in a sexist society is excellent. Eventually she has to come to grips with the fact that she is an atomic bomb in an ocean of gasoline, and figure out what to do about it. Angus is all right, a tough and sensible guy with an honorable streak. Emily never really picked up a third dimension. The three converge for the big finish, but in the end Emily doesn’t matter much, except to provide a vehicle to tell us, the readers, what the Chinese are up to. Angus has several sub-adventures along the way that add flavor but not substance to the narrative. Somewhere along the wall he foments a Coup d’Etat, then drives away unaffected. Huh. I guess the author needed something for him to do to preserve the structure of the chapters.

Overall, this was an entertaining read, and I’m glad it was in my goody bag at the World Fantasy Convention last November. Had I read this review beforehand, I would have enjoyed it even more. I would have had the right backstory. Now you can go in prepared.

Note: if you use the above link to buy this book (or a Kindle, or a new car), I get a kickback.

Medical Fun Fact!

Hey! did you know that even after your fortieth birthday you can spontaneously develop serious food allergies to things you’ve been able to eat your whole life? I had no idea such a thing was possible until my sweetie and I shared a shrimp salad, just like we’ve done before. Only this time… yow!

She’s OK now.


Drupal and WordPress

There is a lot of talk at Drupalcon about how they stack up against the competition. We are in the weeding-out phase of the Web Content Management System market, when most of the myriad contenders will fall by the wayside. Those who make a living building and using Drupal naturally want their platform to be among the survivors.

Drupal, according to their own assessment, powers about 1% of the Work Wide Web. The Drupalistas estimate that WordPress accounts for just north of 8%. There is another system called Joomla that is roughly even with Drupal. These three look to be the survivors in the Great-Web-site-in-a-box sweepstakes.

Honestly, I was a little surprised that Drupal considered WordPress to be a competitor. Sure, they both want to be used for more and more of the Web, but does Lego consider Tonka to be a competitor? Here’s the deal: Drupal says WordPress is the most popular Content Management System (CMS). I say WordPress is not a CMS at all.

That’s not to say WordPress isn’t a fine tool, in fact, this blog uses WordPress. But would I use WordPress for my current paying gig? No. Honestly I dread the day when WordPress becomes a big, fancy CMS like Drupal. That’s not what it’s for. There is a reason WordPress is the big dog, and it’s not because you can build sophisticated Web applications with it, it’s because you can install WordPress, find a nice skin, and get your stuff on the Web in an attractive and intuitive way. WordPress is a publishing platform, and a pretty good one at that.

Drupal, on the other hand, begins to shine at the next level up in terms of sophistication. It is the Lego to WordPress’ Tonka. There is considerably more design up front, and much critical functionality must be added as external modules that don’t come with the main (“core”) code. (Some of these things will be added to core in Drupal 7.) Maintenance of a Drupal site is more labor-intensive as well, as updating the parts is more complicated than with WordPress.

In exchange for the added complexity, you get a lot more flexibility. That’s not to say that WordPress can’t be used to make sophisticated Web sites, but generally speaking WordPress is optimized in putting a defined sort of information (like blog posts) on the screen in a very flexible way. There are hundreds of ways to add other pre-defined data types (for instance, there are shopping cart plugins), and all that works really well and most people are going to be happy with that.

Drupal is the tool you use when the data types in WordPress won’t do it for you. In Drupal you are building a Web application, where with WordPress you are using a Web application. Step one in building a site with Drupal is designing the data and the relationships between the various data types. Drupal allows you to design your data without having to design your database. Some of the ways Drupal implements your data design are pretty hokey, but it works. You can create pretty sophisticated data models without knowing a thing about how a database works – or even what kind of database you’re using. (In fact, you’re better off not knowing how the data is structured, because things can move unexpectedly as you tweak your design.) You are also presented with an almost dizzying set of options to decide who is allowed to see, edit, or create each little piece of each data type you define.

Once you get your content types defined, then you can move on to how to get actual content into the system (handled pretty much automatically), and how to present specific subsets of your data on the screen. To get at the data one often uses views, which are built using a tool that generates (frustratingly limited) database queries and then processes the results with a gratifying set of options tailored to each data type.

Then it comes time to put stuff on the screen. To control where things go and when, there are regions, blocks, panels, panes, pages, and so forth in a nonintuitive overlapping of roles. Blocks and regions and pages are built in, but the profusion of other options is a testament to the limited way they work together. For all the flexibility of Drupal, GUI building is still clumsy, though getting better (I’m told).

At last we come to the task of making the output pretty. For this purpose Drupal uses a maze of performance-sucking php template files that are invoked using a system of names that allows one to set up the display of information at just about any level of granularity. Many of these templates go hand-in-hand with specially-named preprocessor functions that allow you to customize how data is prepared for presentation.

Drupal separated the preparation of data and the presentation of data to allow people with different skill sets to do the different tasks. The template files can be done with only a minimal amount of php, while the preprocessors are where the real logic is implemented, unencumbered by HTML and CSS. This also has the effect of putting the risky code out of reach of those who aren’t expert in Web security. All good things.

I used the phrase “performance-sucking” above, and I meant it. The designers of Drupal made a conscious decision to emphasize good architecture and flexibility over fast execution. This was the same decision Google faced a few years back, as they developed ever-more-sophisticated pattern matching algorithms. While competitors kept things simple to reduce server load, the folks at Google decided that the cost of processing cycles and storage was tending toward free, and chose to emphasize the quality of the information they provided instead. Similarly, Drupal has decided to make things in a structurally sound way and spend the processor cycles and disk reads necessary to support that.

Drupal 7 will be even slower, but will be more scalable (they say). What that means is that although the software is not as fast as it could be, its behavior is predictable as demand increases, and it is easer to scale up your site as things go huge. Good structure pays greater and greater dividends as things get bigger.

All that stuff Drupal has makes it a more complicated to get up and running, and for a simple site (or even one of moderate complexity but with a relatively straightforward data model), WordPress is going to get you to the promised land with a lot less pain.

I am led to believe that the WordPress community feels it needs to compete with Drupal just as much as Drupal thinks they need to compete with WordPress. Toward this end WordPress 3.0 will have new features that answer some of Drupal’s flexibility advantages. All I can say is “PLEASE, WordPress, don’t try to be everything Drupal is.” That WordPress is not everything Drupal is constitutes its greatest advantage. Stay with your market, WordPress!

Drupalcon Day 1 – notes from the floor

I’m working on a project right now that is based on a Web development platform called Drupal. I have a long editorial episode building in my head concerning Drupal and competing platforms for Web development, but today I’m going to write this episode assuming you already know what Drupal is and how it works. (This is also how the documentation for Drupal is written.)

Once I arrived and registered, I looked over the program to decide which seminars I would attend. I looked down the list and realized I already knew what most of the seminars were discussing. Some of the seminars, I could have been the presenter. I realized that the cross-section of stuff I know about Drupal probably qualifies me as a Drupal expert now.

Still, there’s always new stuff to learn. I decided to dedicate my day to security. There are a lot of ways to break a Web site these days.

Before the security sessions there was the keynote address by the guy who invented Drupal in his dorm room in Antwerp ten years ago. He is still holder of the vision for the project, and hearing him speak I have to say that the project is in good hands. He knows there are challenges ahead, and he was an excellent cheerleader for open source, and for encouraging everyone who uses Drupal to give back to the community. Currently they are trying to release the next major upgrade, something they absolutely must have, and soon (more on that in a bit). “There are 114 critical bugs to fix,” he said (or something like this), “If we break into teams right now we can have them fixed by the end of the day. So, we’re locking the doors…”

There was a laugh, but his point was a good one. Rather than wait eagerly for the release, the Drupal community should be actively making it happen.

He also mentioned that 1% of the Web is now powered by Drupal. That’s pretty dang impressive (until you compare it to WordPress). It’s difficult to call his methods for estimating that 1% as scientific, but whatever that number is, I can tell you that it could be a lot higher except for one thing: This software induces more WTF? moments than any other development platform I’ve ever used. Novices who come to the platform install the software, stare blankly at the screen, click things, and give up and move on to a more intuitive product. It would be impossible to measure how many adoptions they have lost because of that initial Now What? moment, but it’s significant I promise you.

On a related note, employment opportunities for Drupal experts is on the rise. People who have worked their way through the WTF to where they can be productive with the platform are in demand. I can now navigate and decode the documentation (I think some of the writers of the documentation are so steeped in the Drupal Way that they don’t even realize they are writing in code), and that puts me in good position to find work. When the out-of-box experience is improved (a major thrust of Drupal 7), my “expert” status will be less lucrative.

Speaking of the Drupal Way: At the risk of being overly general, these guys are more sensitive than even Mac people when it comes to hearing criticism about their platform. Also, there were easily more Macs in evidence than Windows laptops. Perhaps that is because we are on Apple’s home turf here, but I think that Mac, with its handy Unix underpinnings, is finding a sweet spot in the Web design world, with cachet among the designers as well as unix (the os of the Web) for the übergeeks. (The only apple I brought to the convention, I ate. I have Ol’ Pokey charging up, however, to see if it’s game for one last field trip before its ten-year-old video system gives up entirely.)

Back to the keynote: Mr. Buytaert, while talking about the future of Drupal, mentioned that as they got bigger, there would be people for whom using Drupal would be a day job! They wouldn’t be using it just for the love of it, they would think of it as just another tool to get their job done. Mr. Buytaert, welcome to 2008. Those people are now your market, if you want to meet your stated goals for growth.

One thing I’ll say for the guy, he really seems driven by the simple desire to make Drupal the best. He’s probably wealthy now, but commercial success just doesn’t seem to be what motivates him. He wants to make his baby better and better and world domination is simply a way to measure how well he’s doing. It’s refreshing to hear from someone like that.

As for the security sessions, I think this best sums it up (this link was given in one of the seminars):

xkcd 327

A note of explanation for the less-geeky (which you can skip): When a programmer is careless, people can put a string in any field on a site and cause database commands to be executed. In the comic, the name “Robert’); DROP TABLE Students;–” will cause the database the table named ‘Students’, obliterating their records. The ‘); tells the database that the command to add the name is finished, then the rest of the text is treated as a new command. Aren’t you glad you asked?

I also learned just what a risk it is to link to an image the way I just did. The owner of that site can now attack my blog. Ah, the irony.

I did learn some useful stuff in the seminars, and just in time, too. I’m really glad I went.


Some Questions Best Left Unanswered

This morning my sweetie and I were discussing schedules, which today involved trains. I mentioned the possibility that a train could run late, to which the light of my life asked, “Why would a train run late? It’s not like they have to worry about traffic.”

This evening, as I was boarding the train in question, the conductor said, “we’ve had another bomb threat.”