Wednesday, June 6, 2007

Poems vs. Poetry

At a church I went to recently (not my own), we sang the following chorus: You are my world, you are my God, And I lay down my life for you. You are my Lord, the one I love, No one could ever take your place. Singing this made me sad. There was a time in the distant past when Christians believed that God was interesting enough to deserve not only praise, but well-crafted praise; that God was beautiful enough to be described with beautiful language; that our poems to Him could actually have something in them of poetry. Immortal, invisible, God only wise, In light inaccessible, hid from our eyes. It's common to defend lifeless choruses with Jane Austen-like words to the effect, “At least their sentiments are correct.” But that's precisely what is not correct about the chorus we sang. It has no sentiments. It has no feelings of its own; it does not make the slightest appeal to ours. The blank, cold, naked thoughts behind that chorus are indeed correct. What else should God be to us if not the whole world? And should we not love God? And there is, of course, no one who could take God’s place. But if we were not already convinced, that chorus could do precious little to change our minds. I don't deny that the this chorus – and the thousand others we sing – may express true and even worthwhile thoughts. Indeed, the meaning of this chorus is high and holy, as with all platitudes. It's much more valuable to know such things are true than to pen lines that confess them worthily. A saint is better than a poet. But times were when saints wrote poetry that could move men a thousand years hence. The poetry of the saints has lasted precisely because they believed that God was worthy of their very best: first, of course, worthy of their best actions and thoughts, but secondarily, worthy of their best words. Nor does God scorn words. Εν αρχη ην ο λογος: in the beginning was the Word. Sitting in front of us at each church service are 1500 pages of those words – and it's no coincidence that those words contain some of the best poetry in any language in the world. So why do our churches have so little poetry? One answer might be that we don’t want the beauty of the words to distract us from their meaning, that we don’t wish for the towering clouds of incense to distract us from the altar. There are indeed some Christians who might make this claim and make it believably. But they do not attend any church I know. The old Huguenots who striped the icons and the paintings and the color from their churches might reasonably strip metaphor and alliteration from their praises; their songs might quite reasonably be as plain and gray as their places of worship. But however convincing a Quaker or Mennonite appeal for simplicity might be, it sounds rather ingenuous in a multi-million dollar sanctuary, with professional musicians pumping out pop-rock praises, a twenty foot electronic image of the pastor standing over the pastor’s shoulder, and DVD's of each service available for five dollars in the sanctuary. No: I think the primary reason we have no poetry in our churches is that we have none in our lives. I don't mean that we have nothing in our life that is worthy of poetry. Far from it: those things which have been the subject of poetry since the foundation of the world – love, loss, heroism, bravery, war, life, birth, death – these are the birthright of Man, and no television shall take them away. Nor do I mean that nobody writes poems anymore. On the contrary, everyone writes poems. But almost no one writes poetry. My theory is that there is a very particular reason for this. No one who hears -- For I have sworn thee fair and thought thee bright Who art as black as death, as dark as night -- believes that they could write half so well. But it takes a real ear to recognize that – I celebrate myself, and sing myself, And what I assume you shall assume, For every atom belonging to me as good belongs to you -- is just as good and just as difficult to write. Because free verse has no obvious rules, an unfortunately large number of people have concluded that poetry has no standards. A 19th century poet might spend all day on a sonnet, conclude when it was finished that it was “not very creditable”, and yet produce something worth reading: because in the 19th century, at least some of the marks of good poetry were obvious and therefore could be learned and therefore could be taught. But Holden Caulfield might spend five minutes “expressing himself” in a form with as little regularity as Whitman, as little point as MTV and as little value. In a singularly unfortunate “celebration of myself,” he would conclude that what he has to say is worth saying because he is the one saying it. One result is that within the last several years, an honest-to-goodness bona fide poet laureate wrote the following lines: Who knew the World Trade Center was gonna get bombed Who told 4000 Israeli workers at the Twin Towers To stay home that day Many people have quite rightly complained about the writer’s astonishingly elusive grasp on reality. But I haven't heard anyone note the far more striking and horrifying fact: that the author of these lines calls himself a poet.

Vista Support

Supporting Vista has been a pain in the royal ass.

Version 10.0 of Zango's toolbar and advertising client is due out next week.  Our dev teams in Bellevue, Montreal and Tel Aviv have been working on this release since last November, and by far the biggest headache in the entire dev schedule has been supporting Vista.  These days, Vista users make up about 5% of the folks coming to Zango.com.  That's not a huge number, but because we can't support them, it doesn't take a math genius to figure out that we're leaving money on the table.  So we're rushing to get them support as quick as humanly possible.

 Now, of course, we've all known that Vista was coming for a long time, and if you cared to make the argument that, really, we should have been ready back in January when Vista shipped, I'd have to agree with you.  There are three main reasons why it's taken us this long.

  1. We got started too late.  At some level, this was intentional: from last June through November, our client dev team was focused like a laser on integrating the different Hotbar and Zango product offerings in a way that would actually make us some money – and I'm proud to say that we succeeded nobly.  But it left us rather behind on our roadmap.
  2. It was harder than we thought.  Nobody on our team had ever supported Vista before, so nobody had the slightest clue how difficult it would be.  (Is it bigger than a bread box?)  It shouldn't be any big surprise to learn that our estimates were fairly optimistic.  Back in November, we thought we had a reasonable chance of rolling this thing out in February or March.
  3. We threw too much in.  We couldn't quite stand the thought of waiting four months without any user-oriented features, so we decided to add the ability to cross-promote content across our brands.  That may have been the right call, but it added another two months to a project that was already larger than it should have been. 

So why has Vista support been such a pain?  The biggest problems, and the most headaches, have resulted from the new security model. In Vista, each process gets launched with either a "High", "Medium" or "Low" level of protection.  By default, unless you turn off User Account Control, all processes are launched at the "Medium" level of protection.  But because IE has been subject to any number of severe security holes over the years, and because Microsoft apparently doesn't think that will go away anytime soon, IE (by default) will run in "Protected Mode" for any URL from the Internet zone.  Microsoft has a fairly detailed discussion of Protected Mode here.

Here's just one example of why this is such a pain.  Long ago we architected our search assistant to run in its own process.  This master process (ZangoSA.exe) communicates with a DLL loaded in IE, and periodically uses the IE COM interface to launch ads in new instances of the browser, sized and positioned correctly.   The problem is that on Vista, ZangoSA.exe runs – and necessarily runs – at a medium integrity level. And because IE's Web Browser object is an activate-as-activator object, the browsers ZangoSA.exe creates with CoCreateInstance() also run at medium integrity. When a browser created this way navigates, and figures out that it should be running in Protected Mode (but it isn't), it hands the navigation operation to an instance of IE that is running in Protected Mode – creating such an instance if one doesn't already exist. At this point control over the navigating browser is lost.  No, honestly, this is how it "works".

Fine, we thought: we'll just create the browser in Protected Mode to begin with, there will be no need for the aforementioned bait-and-switch, and the problem will be solved. Well after scouring the posts on MSDN and working with Microsoft we discovered that starting IE in Protected Mode via CoCreateInstance() isn't possible today. You can start IE running as a low integrity process this way, but IE running with low integrity and IE running in Protected Mode are not the same thing: even a low integrity instance of IE does the bait-and-switch to an instance in Protected Mode.

Suffice to say, the good folks at Microsoft hadn't precisely thought this one through.  Sigh. (I recently wrote about the dangers of feeling self-righteous.  All that applies here.) They swear that it'll get fixed in the next release of IE – an assurance which isn't as helpful as you might think.  We came up with a workaround eventually (IELaunchURL()), but it's ugly, shows a nasty flash of IE before resizing it, and in general doesn't behave like we'd want.  We'll keep looking for a better solution, but we're going with this one for right now.

So: I was able to explain the above in about three paragraphs.  But figuring this out – and figuring out that there wasn't any solution down this path – took the better part of a month.  And when you add in all the other security issues (typically, bizarre IE dialog boxes offered up in strange situations, sometimes reproducible, sometimes not), and all the code that suddenly crashes under Vista that never crashed before, or breaks due to the new security model . . . and that's at least two months out of our seven month project.

A part of me understands why Microsoft made the changes that it made in Vista.  But a heads up to anyone else out there: supporting Vista isn't like moving from Windows 2000 to Windows XP.  This is a new OS, from the ground up, and the fact that it uses what looks on the surface like the same API shouldn't fool you.  Vista represents a change at least as substantial as when MS moved from Windows 3.1 to Windows NT, and you should expect a similar level of compatibility issues.

The good news is that we're now at release candidate status.  Unless we find something else substantial over the weekend, we'll be releasing next week.

Tuesday, June 5, 2007

Self Righteousness and Baseball

I got invited last night to a Microsoft suite at Safeco Field, to watch a Mariner’s game. Under the category of “biting the hand that feeds you”, I took the opportunity to unload on our hapless Sales rep about every Microsoft product that annoys me – and trust me, there was a long list. He was bragging about Proclarity – until I launched into my “have you ever tried to organize a briefing book?” speech. I ragged on Sharepoint. I really ragged on Office 2007. (“The ribbon? What in the wide world was Microsoft thinking? Did anybody there even use Excel 2007 graphs? They’re at least an order of magnitude slower than Excel 2003.”) When he pulled out his shiny new Cingular Blackjack, I asked him to try to file an email. (“Why couldn’t the SmartPhone developers just have used the tree control from Windows Mobile?”)

It was a rare and delightful opportunity to bitch: and because he’s a sales guy, and because Zango spends a substantial amount of money with Microsoft, he had to listen and pretend to smile and be nice. I love being self-righteous, especially when you’ve got the poor guy who has to listen to you at your mercy. I get to be knowledgeable and superior and annoying all at once. It’s addictive.

But I think that “addictive” is the right word to describe it. I’m sure that – like sex, or food – that wonderful feeling of self-righteous indignation has its place. God wouldn’t have made us love fighting so much if He hadn’t intended for us to do it now and again. But there are good times to fight and bad times to fight, and most of the times that we actually do fight are bad times. I’ve noticed that when I’m at my most self-righteous, I’m generally taking advantage of someone else who, for whatever reason, can’t defend himself: often because he’s not there, but often for other reasons, having to do with disparities in power. And it is bad to get addicted to that feeling of power. It’s pride by any other name: it’s as tempting as the Ring, and as dangerous and corrupting.

On a side note, Zango has had its share of detractors over the years, and I’ve often noticed this same attitude in many of them. It’s certainly an attitude I can understand, and even sympathize with. Heck, I know myself: if I didn’t work here, I’d be posting witticisms about Jeffery Dahmer on Slashdot too. It’s easier, and a lot more fun, to be self-righteous than to take the time to understand (or even notice) how diligently Zango’s been working to clean up the problems in our industry. Or how hard MS works to bring new products to market, whatever their challenges. Perhaps, ultimately, I shouldn’t point too many fingers (too often, anyway) at Zango's detractors: “Let him who is without sin” and all.

Sunday, June 3, 2007

Divine Peek-a-boo

Today at church was the last service for my pastor, Charlie, for the summer. He's taking a three month sabbatical over the summer, and is starting it out with a trip to Israel. (A trip which I will narrowly miss, worse luck: it would be fun to spend time over there with him.) In the course of his sermon today, he mentioned how he was looking forward to spending each day "just looking for God", and he went on to describe his sabbatical as a "God hunt".

That's an image which has always puzzled me. Given my Calvinism -- perhaps more of a latent Calvinism these days -- talking about our "search for God" has never seemed the right way to think about it. Isn't it God who finds us? Or rather, since He presumably knows where we are, who draws us to Himself?

But a thought struck me today as I was listening. Of course, in a sense, God is in charge of all things: but I still need to remember to stop when I come to a stop sign if I don't want to get a ticket. And I still need to remember to pick up the groceries on my way home if I want dinner (or at least, if don't want Galena annoyed at me). Pascal once said that God established prayer, "Pour communiquer à ses créatures la dignité de la causalité": to grant us the honor of being able to make things happen.

Similarly, I think that sometimes God hides from us to give us the fun of finding Him. We can't really find him, of course: no more than an infant can "find" his mother when they're playing peek-a-boo. But just as it's important for a child to move from finding his mother when she removes her hands from his eyes, to finding her when he's skinned his knee, so it's important for us to move from being purely passive recipients of God's grace to actively seeking Him out. It's a part of growing up, I suppose: a way for us ghosts to learn to walk on the hard, unbending grasses of heaven.

Saturday, June 2, 2007

The Children of Hurin

Like many of my fellow-geeks, I'm a great Tolkien fan. So even though half a dozen volumes of The History of Middle Earth currently lie unread on my bookshelf, I was quite excited when Christopher Tolkien recently released a new novel by his father, The Children of Hurin. After a long bike ride today, I came home and finished it over dinner.

My reactions to it are mixed. On the one hand, I think the story itself is amazing: a tragedy that ranks with the best of world literature in its exploration of the many griefs that inhabit our world. As in the Silmarillion, Tolkien makes oblique reference to the Biblical story of the Fall: "A darkness lies behind us," Sador says,"and out of it few tales have come. The fathers of our fathers may have had things to tell, but they did not tell them. Even their names are forgotten." Indeed, for all its attempts to tell a story of the world before Christ -- for all its attempt to recreate the pagan world of the Norse myths that Tolkien loved -- the book could not have been written by other than a Christian.

That said, nearly all of this story has already been told in The Silmarillion, in the long chapter "Of Turin Turambar". The story is told somewhat more fully in The Children of Hurin, and some of the details are changed, but it's fundamentally the same story. Having been a year or two since I last read The Silmarillion, I wasn't able to pick out where the one was more expansive or even where the two differed. Even as it presents more details, The Children of Hurin still largely maintains the summarizing, distant style of The Silmarillion: if you liked The Silmarillion, you'll like The Children of Hurin; if you didn't enjoy the former, you won't enjoy the latter.

That said, it's worth reading. It was one of the stories which most engaged Tolkien's mind throughout his life, and it stands as a firm refutation to those who critique Tolkien for creating only two-dimensional characters, either all good or all bad. Indeed, in Tolkien's universe, LOTR stands distinct from the rest of his tales: it is the one story where all finally goes well, where nearly all of the main characters (Denethor, Boromir and Saruman excepted) stand true and remain admirable throughout. That cannot be said of any other story in Tolkien's universe.

Friday, June 1, 2007

Making a Contribution

I had lunch today with Andy Sack, the CEO of Judys Book, and a longtime board member here at Zango. He keeps a regular blog, A Sack of Seattle, with a readership, shall we say, substantially larger than this one. He and I spent most of lunch talking about blogging, and I quickly realized just how disconnected I am from the blogosphere. I confess that I've spent much more time writing this blog over the last month or two than I've spent reading other people's -- just as I've spent more time writing poetry (when I write it) than reading it. Andy kept asking me, "So you read this blog right?" And I kept having to shake my head in shame. Most of them I hadn't even heard of. It's a lack that I will try to remedy. The issue is figuring out where to add in all that reading, what with work, church, my wife, an impending adoption (more on that later), trying to stay in reasonable shape, finally some sunshine here in Seattle, and already too many books to read.

Still, it made me think. One of the things that I haven't done very well as a CTO is reaching out beyond Zango's walls. A friend of mine, John Schneider, is the CTO of AgileDelta, a small but impressive company that has some very impressive technology. John seems to spend most of his time on W3C committees, working out XML standards, speaking at conferences, coordinating Efficient XML tests with NATO. It's a different sort of job than I've been doing so far: nearly everything I've worked on has been internally focused, just trying to get the next product release out the door. I think it's something that will need to change: hopefully we can get Zango to the point where the internal Dev organization doesn't require so much attention, and I can focus my efforts more externally. With any luck -- if I can get it past our omnipresent PR department (Hi Steve!) -- this blog may yet serve as a steppingstone along those lines.



Blog Editors

I'm trying to figure out if it's just me, or whether, in fact, the Blogger editor sucks as badly as I think it does. Every time I try a fairly simple use case -- inserting a picture, say -- it totally screws up the look and feel of my post, and I have to spend 10-15 minutes working through the HTML to clean itup. Behind the scenes it tries to do all sorts of bizarre things like inserting tables and what-not that apparently confuse the editor very badly.

I've tried several alternatives -- the "blog" feature in Word, Google Docs, etc. -- and each of them have troubles. I'm writing this particular post in Google Docs, and if a core of software development is the "principle of least surprise", I have to say, it fails miserably. The simple use case of inserting a link to another site does some very strange and bizarre things to the document that I don't understand in the slightest. Perhaps it's the result of using IE7 on Vista, but I would have assumed that's a fairly standard configuration.

I'd be very curious to hear what other folks have managed to use successfully.