Beastie Boys versus Elvis Costello

June 13, 2009 – 2:25 pm

I went to see two shows last week - on Tuesday, the Beastie Boys at Rams Head Live in Baltimore, on Thursday, Elvis Costello at Wolftrap in VA. The Beastie Boys show was a bit of a fluke. It had been announced the week before, and though I love Rams Head Live, it’s a relatively small club for a band like them (about 1200 capacity) and getting the tickets required some luck, as well as jamming buttons on a website for about 15 minutes.

So it wasn’t planned, but I liked the symmetry. The two had done a great performance together on SNL a few years ago which was a very cool reference to an Elvis performance on SNL from 1977.

I was, though, looking forward much more to seeing the Beastie Boys. They are one of my all-time favorites - Paul’s Boutique in particular. Its on a short-list of albums I’d guess I’ve listened to more than a thousand times (Back in Black and maybe London Calling would be the others - though not easy to keep track of these things), and there was a good year in college where it never came out of my car cassette player, it was never turned off, never fast-forwarded: just one year-long loop of what was my favorite album. I’d seen them before, in ‘94 at Lollapalooza and loved them. It was a long time ago, but no reason to think they would be anything other than great.

However, they weren’t. In fact, I would say they sucked. Why? Well, here was there set-list. If you don’t care to read it all through, its one song off Licensed to Ill, one song off Paul’s Boutique, four off of Check Your Head, and then a bunch of other stuff - a lot of Ill Communication, some of the weird early stuff, and then some of the new rap (Intergalactic, etc.) along with some new, new rock stuff.

So what’s the problem? Several:

  1. Not enough License and Paul’s Boutique. Their three best albums are Paul’s Boutique, Licensed to Ill and Check Your Head (in that order). I would actually argue that this is a fairly common pattern, with slight variation, for bands - their best album is their second (or third), their second best is their first, and their third (or fourth) is their last good one. This is true of the Beasties, and if you don’t agree with me, fine; we won’t agree on much anyway.
  2. What they did play from their old stuff, they did lame remixes. “So Watcha Want”, which has a disgustingly catchy hook, they remixed halfway through so the hook wasn’t there: if they are tired of playing the song, they could have just gone off stage and let the DJ loop the refrain - would have been fine with me. It’s just not a song that needs remixing - the beat and sound are pretty close to perfect. They did this also on “No sleep till Brooklyn” and I think Pass The Mic. Argh.
  3. Their new rap stuff blows. Songs like “Triple Trouble”, which mercifully they did not play, belong to a new, unholy category of music I would label “rap formalism”: it’s a style of rap that’s over-fussed, overly reverential of early hip-hop, and contains lyrics that seem like they came from this thought process: “As this hip-hop composition is a tribute to early rap, it’s essential that at this point I perform some braggadocio in the well-documented African-American oral tradition that traces back time immemorial. Yes, you are insubstantial compared to my well-learned song structures and rhyming patterns.”
  4. In fact, I think way they perform now, pretty much all their rap stuff blows - with the exception of Mike D, the dork of the band, they’ve turned into a bunch of introverts. Or maybe they are just too cool for their material; it must be hard saving Tibet AND our right to party. Either way, MCA looked completely disinterested during all the rap songs (though did still sound the best) and at times it seemed like he was about to just wander off stage. And he missed some queues pretty blatantly, which I don’t really care about, but still not a good sign. Also, he’s completely given up on looking cool. At all. This is also a bad sign for a musician.

Let’s contrast this with Elvis Costello: his current tour is one with a group of accomplished bluegrass/country performers. He played a bunch of songs (about three hours worth), most of which I had not heard before, presumably off his new album though I’m sure some where also just country/bluegrass standards, and he played three songs that I know: “Everyday I write the book”, “What’s so funny about peace, love and understanding”, and “Alison”. And guess what? It was a great show. Now it benefited from being a wonderful night at wolftrap, and sitting on the lawn drinking beer and watching a great craftsman do his work is almost impossible to object to. But that’s sort of the point - he really put himself into his songs.

I’m not going to claim to be overly open-minded about music. There are some genres and bands I like, a relatively small number that I love, and a large cross-section that my feelings range between ambivalence to outright disdain. However, I’m talking about recorded music, on the radio or CD or whatever. My experience with live music is that almost any artist, if they are somewhat talented and very passionate, can put on a great show that I will absolutely love, no matter what I might have thought of them before. Case in point would be Alice In Chains, which I saw a couple years back, a band I had actively disliked for a long time (too grungy, sludgey), and they were incredible. In particular, their performance of the song “The Rooster” was one of the best and most moving I have ever seen.

So, my complaint with the Beastie Boys does not center on them not playing enough old stuff. Yes, in my perfect world they would just played their first two albums straight through, plus select songs from Check Your Head, and they would have done it with verve and care and a sense of fun. This is basically what AC/DC does at their shows - it’s the greatest hits plus the best one or two songs off their new album. They are the ultimate professionals, but it doesn’t feel like they are just going through the motions; there’s great energy and seeming spontaneity. Of course if you’ve seen them repeatedly, you realize this: Angus Young has been doing the same strip-tease, in the same sequence, probably down to the exact same steps, since approximately 1982. But hey, that’s AC/DC. They also wrote one song thirty years ago and have been reworking and re-releasing it with slight variation and varying degrees of success ever since. To their credit, it was a damn good song.

At the other end of the spectrum, you have shows like Elvis: he played stuff that he loved, maybe the audience didn’t, or didn’t when they came in but because he’s great he transferred that feeling to the audience and they enjoyed the show. Would they have liked the “hits” show more? Probably. But if he doesn’t want to play it, then don’t. I read a great quote by Clint Eastwood recently - he said “I don’t know any geniuses; a genius to me is someone who succeeds at something he hates. Anyone can do well at something he loves.” I agree, though no doubt it helps if one has some talent for what it is he loves. And the Beasties certainly have a talent for music. But if they don’t love it, well, I don’t know any geniuses either I guess.

Share and Enjoy:
  • Digg
  • description
  • Reddit
  • del.icio.us

Artist, Engineer, Craftsman, Inventor

March 29, 2009 – 4:19 pm

As a programmer, one thing that has always interested me is the different approaches and motivations of my colleagues. As someone with a liberal arts degree, I’ve never exactly thought of myself as an engineer, even though software programming as a whole is often characterized as a field of engineering. I understand why too; there is certainly plenty of math and physics involved in what we do, and it obviously both enables and constrains our work. But emphasizing that we our engineers, rather than artists, seems like both a sort of Myers-Briggs for the type of folks that are developers as well as significantly limits what we can accomplish.

A quote on Wikipedia says engineering is: “[T]he creative application of scientific principles to design or develop structures, machines, apparatus, or manufacturing processes, or works utilizing them singly or in combination; or to construct or operate the same with full cognizance of their design; or to forecast their behavior under specific operating conditions; all as respects an intended function, economics of operation and safety to life and property.” And I actually like this definition, especially with the placement of the word “creative” right there in the opening. So I don’t think the issue is that fundamentally we ignore the artistic aspects of our field.

However, looking at the typical composite of a programmer, it is very commonly someone who is seen as being a “nerd”; someone who is highly proficient in math, someone who approaches problem-solving and interpersonal interaction in a manner akin to the machines they work with. And in general, I’m all for this. Nerds are great and supposedly even somewhat cool now. I think characterizing someone like this can be taken as a way of saying someone is smart, and that is definitely a good quality.

At the same time, and this is really the point of this piece, the whole “silly-earth-human-your-answer-does-not-compute” way of interacting with our users and customers should end. I’ve heard the argument over and over again about how can we make our profession more like bridge-building. Well, we can’t, and the fact that we keep trying that square peg-round hole thing is symptomatic of the engineering mindset. We can put a focus on quality control, and delivering exceptional products, but we are not going to build the same thing twice in the same way. And that can be a very frustrating thing, but the fact is that new innovations, and pseudo-innovations for that matter, come along at such a pace with software, that if we build things in a way that does not take advantage of these innovations, we stand a real chance of losing out to our competitors. Even more, we lose out on the chance to be great innovators ourselves.

Now I know innovation is not something unique with software. But with software the thing is that is just so easy (or at least cheap). Bridge building, perhaps at the other extreme, certainly requires a lot of capital. Software innovation requires only a couch, underwear, and a computer. The underwear may even be optional, though for the sake of those around you we would advise the 20 dollar splurge. And how do you bring it to market? Upload it to the internet and write about it in forums and blogs and twitter or whatever, evangelizing it to people. You can do more, but that can certainly be enough.

So the nature of innovation in software makes it inherently a more artistic and creative medium, one that is not about standards and methodology but about finding unique and novel solutions to problems. So….so duh right? Obviously we want to build great solutions for our customers that are novel and innovative and high-quality. How does the artistry matter? Well, one I think the whole Myers-Brigg thing is just sort of interesting, and I’m writing this partially to assert its importance in what we do. But in practical terms, it means following the example of companies like Apple (I would say they are the inspiration for much of the shift in my own view of how I approach development), that focus on building great solutions that are accessible to all users, not the 50% or so that are engineers or “smart enough” or happen to have the sort of mindset that makes both “Star Trek” and the Linux operating system make sense.

Certainly a lot of companies out there are taking up this challenge. The right idea, I believe, is that as professionals we view ourselves as craftsmen: building high-quality, highly usable code in a methodical, inventive, and meticulous way. The most appealing comparison to me for what I do is that of an artisan, crafting a chair to a customers particular and precise standards. Of course, I’m not trying to say programming is like making Faberge eggs or some other silly good that today only can be sold to people with more money than sense; obviously there are inherent margins of scale to what we do, and an essential part of making great software is doing it in a way that it can be easily deployed in new environments and be amended and enhanced to support new requirements. That’s what making a product is, and that’s an immensely challenging (and gratifying) art unto itself that is beyond the scope of what I want to say here.

But to me a craftsman is equal parts artist and engineer. I like that. It distributes the emphasis correctly, and if you believe that semantics and terminology can both influence and define behavior, then perhaps simply by thinking of and labeling things in this way will help improve our field. I also believe that is suggests a clear progression for folks that enter our field, and its something that I try to challenge all newly graduated engineers with. And its not Developer -> Lead Developer -> Project Manager -> Executive that needs to call IT to open an email. Nor is it Developer -> Architect -> Total Wanker That Reads Articles, Attends Conferences, and Drives The People Actually Doing Work Nuts With Their Clever But Utterly Impractical Ideas. The progression is this:

  • Engineer - Takes highly detailed specifications and translates them to to computer code. At this level, it is about mastering the platform being used, the tools that are available, and becoming accustomed to being part of a team and doing work within the framework of a professional software development organization.
  • Craftsman - Takes REQUIREMENTS of a customer, the customer’s needs as stated, usually in a written form, and is adept at transforming this into software that addresses these requirements elegantly, cost-effectively and “usably”. At this level, it is expected the programmer is proficient with the programming languages and environment of the organization, is comfortable working within and even leading a software development process, and, with some guidance, has the ability to do software design from scratch.
  • Inventor - Takes problems as they are found in the “wild” and creates polished, user-ready solutions. It’s about interacting with and observing users and potential users, and being able to identify and anticipate their needs without needing them spelled out, ideally finding solutions that resolve issues that though never clearly articulated, greatly enhance usability and productivity.

These are not meant to be the only dimensions along which a programmer should think about progressing. There are many aspects of proficiency within our field. However, the above to me represents a very vital strand, and not just is it important and valuable to organizations, it also emphasizes and shows a way towards what to me is the greatest joy and imperative in our profession. Simply put:

Invent!

Share and Enjoy:
  • Digg
  • description
  • Reddit
  • del.icio.us

Soft Intelligence

February 7, 2009 – 2:22 pm

About five years ago, someone made a comment that really stuck in my mind. Now, I hate to give them credit for this; I felt at the time he was trying to have exactly that effect, and perhaps was even hoping that some credit or other acknowledgment, such as this, would be forthcoming down the road. Well, fine then, if you are reading this, here it is, but I’m still going to have it my way, as you’ll see.

So what was the comment? Well, I was prattling on about some person I had been meeting with, who I had concluded had perhaps less than a complete understanding of an issue they were dealing with, and also was perhaps generally a few geese short of a flock. At this point, the fellow I was explaining this too, who was both much older than me and more established in his career, suggested the following:

I think in time you will come to appreciate a softer form of intelligence, one that is perhaps less focused and precise than your own but that can be just as useful if not moreso.

At the time, the comment really annoyed me. It completely side-stepped our conversation on a specific issue, which I had been driving towards a particular point and I was looking for this fellow, venerated institution that he was, to confirm, deny, or revise for me. He chose not to do this, and instead gave me what I thought was a pretty vague and lame platitude in return, and quite smugly too, as he did not just provide a certain defense for the person and idea I was impugning, but also seemed to suggest that (and at the time this was a very effective way to get me riled up) perhaps my lack of experience and wisdom was at the root of my misunderstanding.

It happened though that about a month later I was riding up on a train to New York City, listening to Bob Dylan, who I was making another run at getting into at the time. Bob Dylan had always been an elusive to me; I enjoyed his work to a point, but much of it just went over my head and at least part of the reason I was sticking with him was the sense that if I did, I would eventually be rewarded. Well, finally, my reward came. Listening to his music, it suddenly struck me that what I was missing was that he was not meant to be understood so literally; that if you tried to parse all his lyrics, you would just break your head - instead, it was better to think of him as someone painting with words, putting out ideas and images that you could take and do with what you want.

Is this such a revelation? For a lot of people probably not. If you’re a poet or just generally more insightful than I am, I’m sure it’s a bit obvious. But what added to my feeling of excitement on that day that Dylan was trying to do this, and creating and enriching this conversation with the listener was, if not his primary intent, one of his main aims.

For a long time, I had been aware of Dylan’s reputation for never explaining his own lyrics. I thought this was just him being pompous, or trying to further his mystique as a genius and an artist (certainly at least partially true; Dylan knows you think he might be a poseur and enjoys teasing you with the idea: “have I just been leading you on? Is there really nothing here but a bunch of nonsense?” he seems to say with a wink).

But Dylan had a real reason, and it was that he knew explaining his lyrics would destroy them, or at least potentially destroy the interpretations other people had come up with for them, which was just as important. I didn’t really get this or appreciate this until a particular experience I had. That was, for the longest time the Pink Floyd song “Wish You Were Here” was one of my favorites, and it meant something very specific to me, which was both very sweet and sad that perhaps had to with some young lady though at this point my memory is a bit vague on the point :-) Anyway, much later I read an interview with one of the writers of the song. He said that it was actually about Syd Barrett, an original member and driving creative force of the band who had left relatively early on, primarily because he basically went insane and had to be institutionalized. Now, I’m sure the guy revealing this did not mean to ruin my day or his song for me, but the fact is that I found this subject much less meaningful. In fact, it mostly just reminded me of why I never liked Pink Floyd as much as some people, and partially it was because they couldn’t write a proper love song, instead preferring to pine away for loopy, acid-casualty fellow Brits, probably with horrible teeth.

So, that gave me an appreciation for what Dylan was doing in never explaining his songs, and also that he was playing with and taking advantage of our own imaginations, choosing as much to try to find ways to stimulate us as to express himself, and generally enjoying the ambiguity that naturally grew up in the middle of this very soft and quiet conversation. And that to me is what I came to take what this fellow meant by “soft intelligence”, and even though in fact I’m fairly confident that’s not even what he meant, in the spirit of Dylan it seems like a perfectly valid and appropriate interpretation to me.

Share and Enjoy:
  • Digg
  • description
  • Reddit
  • del.icio.us

Getting Really Real

January 4, 2009 – 6:24 pm

The Ruby on Rails folks made the following announcement about a new product, called Rails Metal, the other day:

Rails Metal is meant for things like the Campfire poller service, which is doing hundreds of requests per second and needs to be really fast and is at the same time really simple (2 database calls and returning a string). This service is currently written in C, but we’ll look into converting it to Rails Metal instead.

I was quite struck by this; to me it was like reading something from the water company touting their new improved cyanide-free water - achieved through an incredible scientific breakthrough. Though I might be impressed by the breakthrough, I can’t help being alarmed by the idea that there was cyanide in my water. And moreover, why am I just finding out about it now?

So what’s so poisonous here? Well, the 37Signals folks seem to advise using C for scenarios where the developer needs “to build little tiny services that need to be able to do hundreds of requests per second.” I found this number very interesting and immediately started trying to break this down into real numbers to get a sense of exactly where the breaking point is for Ruby that necessitates using C:

-Servers today typically have at least four cores (2 processors with 2 cores each)
-A production installation will have at least two machines for the sake of redundancy
-That gives us a total of 8 cores (go ahead, check the math yourself :-))
-Let’s assume that “hundreds of transactions per second” means 500 - though I would guess it’s actually a lot lower based on the natural tendency for developers to “round up” when discussing throughput needs
-With 8 cores, and 500 transactions per second, we are looking at a window of about 16 milliseconds per transaction (8 cores * 1000 milliseconds / 500 transactions)

So my conclusion is that the Metal system facilitates doing a very simple database transaction in 16 milliseconds per - this sounds about right to me for Java, where my general rule of thumb is five milliseconds to perform a database call that retrieves a single row using an index, and then another five to do all my other processing in Java code.

What’s startling is this statement: “The code is clearly very different, with a simple benchmark showing Metal 25x faster than the controller code.” Uhmm, so might the Ruby code take 400 milliseconds per simple transaction? I really don’t know - I’m extrapolating a lot as it is, and to conclude what the X is in 25X is really not clear. BUT…….

1) Why do I have to extrapolate in this first place? Why not provide more precise performance numbers?
2) Why is the first I’m hearing from the Ruby guys about what sounds like potentially a very troublesome performance issue? And why is it framed only in the context of a solution?

It’s this second point that particularly bothers me; the guys at 37Signals, like it or not, are working on a very large stage at this point. Many, many developers are out there using their technology, and they are very visibly out there encouraging them to use it. Now they may think they are solving hardcore performance problems when dealing with “hundreds of transactions per second”…..but not really. Web sites are meant to be multi-user environments, and often need to deal with very heavy volumes. If a technology can’t handle hundreds of transactions per second (or handles them at a 25x performance penalty versus C), well, that’s something that I believe the creators of a platform have an obligation to disclose (see rule one of my Software Developer’s Hippocratic Oath: “Do no harm”) - advising web developers to use a technology that is unable to meet fairly low thresholds for performance is doing harm. It’s pushing something that is distinctly NOT real.

I use this term specifically to allude to 37Signals’ getting real philosophy. Now, first let me say that I’m a fan. I’m a fan of their concentration on simplicity in design (I’ve heard many people pay tribute to Jakob Nielsen’s design ideas; they are the first ones I’ve see actually put them to use in a prominent way, and they’ve done wonders in popularizing them); I’m a fan of the Ruby on Rails platform and the “Convention over Configuration” philosophy - I think it is one of the best if not the best idea contributed to development in the last five or so years; I’m a fan of the “Getting Real” idea - I think it’s a nice counterpoint to all the wankiness that has grown up in the Enterprise development community over the last several years; and I’m a fan of Ruby: it’s cool and fun and though I don’t believe it will or should unseat Java as “best platform going”, I think it’s provided a lot of fodder for discussion, and when a language/platform does come along to take the title, I’m confident Ruby’s influence will be felt.

So I like what the 37Signal guys have done; but if there are two things to take from this article:
1) 37Signals folks - think Spiderman - “great power, great responsibility, blah, blah, blah” - you have the right to build things how you want and the way you want, but what the development community needs is transparency in what the platform offers - not “spackle” programming where the developer tries to fix the problems before the users discover them - I’ve done plenty of spackle programming - it’s tough with a few users - forget about it with hundreds of thousands if not millions

2) Everyone else - caveat emptor - if you are going to evangelize Ruby and Ruby on Rails for your organization, consider whether it will meet the performance needs of your applications. And consider also the future of Ruby: if it is 25x slower than C, is there a path for tuning it? And if there is a path, is there someone to actually execute it? One of the biggest challenges I see for Ruby is that it does not have Sun, Microsoft, IBM or some other extremely deep-pocketed and highly-interested steward to see these problems through. I’m not sure that enough people are going to use Ruby at scale that the current owners will ever necessarily make it fast enough to handle these heaviest loads, and it will be left to the developer to use things like Ruby Metal (which is a terrible hack, btw, if you haven’t already figured that out) to make their applications work. I consider this a very unsatisfactory solution, and if the Ruby guys really want to get real, they need to provide something better.

-John

Share and Enjoy:
  • Digg
  • description
  • Reddit
  • del.icio.us

The Problem With Gladwell

December 25, 2008 – 5:50 pm

Malcolm Gladwell has a new book out, and though I probably won’t be reading it, I’m sure many people will be. Part of the reason for this is just boredom. He’s been writing for a while, and though he’s certainly an interesting read, at a certain point anything becomes dull.

But there’s another reason why I don’t like Gladwell, and it has to do with the substance of his writing; that is, I believe he would prefer to be clever than right.

Is this a deadly sin? Well, not exactly. He is after all writing pseudo-sociological tracts, and I’m not sure that there’s much substance to sociology even in academic setting, and pseudo-sociology…..well, expecting rigorous proofs is probably unrealistic and maybe even a little unfair (though I would point to Freakonomics as something that does this very well - interesting, surprising conclusions that are actually - major bonus here- credible - he’s definitely giving economists a good name).

BUT…..I still believe there is something corrupt, at least a little bit and maybe a lot, about throwing one’s own logic in order to seem smarter and more insightful. How does Gladwell do this? Well, he in his articles for the New Yorker, in adopting a contrarian posture, argues points that are, if not altogether wrong-headed, frequently obviously miss the point and are based on little or no real data.

Some examples:

1) His piece on the inventor of the TV, Philo T Farnsworth, and his “failure” to bring the TV to market, something the large corporation RCA later succeeded in. The piece concludes that the individual inventor is often insufficient (as the subtitle of the article asserts: “The Myth of the Lone Inventor”). On it’s face this point is fair enough, though hardly novel: obviously sometimes individual inventors are behind bringing new technologies to market, sometimes corporations are, and sometimes a sort of long-distance collaboration between the two does it. But this is too obvious (and right) and so in order to spice up the article, Gladwell adds the following twist:

This is the reason that so many of us work for big companies, of course: in a big company, there is always someone to do what we do not want to do or do not do well–someone to answer the phone, and set up our computer, and arrange our health insurance, and clean our office at night, and make sure the building is insured. In a famous 1937 essay, “The Nature of the Firm,” the economist Ronald Coase said that the reason we have corporations is to reduce the everyday transaction costs of doing business: a company puts an accountant on the staff so that if a staffer needs to check the books all he has to do is walk down the hall. It’s an obvious point, but one that is consistently overlooked, particularly by those who periodically rail, in the name of efficiency, against corporate bloat and superfluous middle managers. Yes, the middle manager does not always contribute directly to the bottom line. But he does contribute to those who contribute to the bottom line, and only an absurdly truncated account of human productivity–one that assumes real work to be somehow possible when phones are ringing, computers are crashing, and health insurance is expiring–does not see that secondary contribution as valuable.

Apparently middle management and large organizations exist to enhance the productivity and inventiveness of their workers! This may come as a surprise to many who work in large organizations, as though certainly there are some functions that are expedited by large corporations, the general impression I’ve always had of large companies is they (and their employees) are trading creativity and inventiveness for a certain consistency and stability. Nothing wrong with this, but let’s not make it something different than what it is. But Gladwell does (though with little supporting evidence), conflating the idea that inventions are a product of many people building on each other’s ideas (not a new idea) with the idea that this process of building must occur within a single entity:

For the sewing machine to succeed, in other words, those who saw themselves as sewing-machine inventors had to swallow their pride and concede that the machine was larger than they were–that groups, not individuals, invent complex technologies. That was what Farnsworth could not do, and it explains the terrible turn that his life took.

So in what way was Farnsworth such a terrible failure? Well, apparently he did not succeed in single-handedly popularizing and marketing the TV. Though Farnsworth himself felt this represented failure, I’m not sure others would, especially in light of the following:

Finally, later that summer [of 1939], RCA settled with Farnsworth. It agreed to pay him a million dollars for the rights to his main patents, plus royalties on every television set sold. But it was too late. Something had died in him. “

So, Farnsworth made a million dollars (probably something like 128 million today, using the rule of thumb of dollars doubling in value every ten years), is today recognized as one of the prime inventors of the TV if the not the prime inventor, and Gladwell considers him a wretched failure? I guess that Farnsworth himself viewed his life this way could be used as reinforcement of this view, but this seems more like an emotional than factual issue. I guess we all couldn’t write “Blink” though, right?

Either way, to suggest that corporations invent better (or at least are the only way to invent) is demonstrably untrue: after all, it’s Farnsworth that invented the Cathode Ray Tube, not RCA. Could RCA have invented it? I guess (Gladwell says they were never “more than a step behind” though apparently a step means approximately two years), but I think the fact that Farnsworth did it on his own is pretty compelling evidence of the efficacy of individual inventors. That he couldn’t popularize it is an interesting and more subtle point, one worthy of investigation: do inventions of a certain scale require or at least significantly benefit from the resources of a corporation? What size, and what types of resources are most essential? How are these organizations best structured to balance creativity with efficiency? These are interesting questions, especially to me as an entrepreneur, but Gladwell ignores them preferring the simpler, though truly oversimplified dichotomy of corporation = good, lone inventor = bad.

Attention-getting? Yes. At all correct? No. And you know what? It’s one thing to be wrong. Anyone can make a mistake….but does anyone believe that Gladwell actually believes his own conclusion? Claiming that corporations are actually better at invention and innovation is startling and counter-intuitive. But being provocative is not an end unto itself, and Gladwell does not produce any real credible evidence for his claim.

2) His piece on Ralph Nader and William Haddon and their influence on automobile safety in America. This one I find particularly egregious, as Gladwell’s claim is that Nader had an ideological bent that actually HINDERED the progress of automobile safety. Specifically, he says that Nader’s focus on passive restraint (thing like airbags) that require no action on the part of the driver set back the overall cause of safety because it turned out that actually active restraints (seatbelts and such) were much more effective. Gladwell uses this as evidence for this theory that ideology is bad.

He and the other Haddonites were sworn to a theory that said that the way to prevent typhoid is to chlorinate the water, even though there are clearly instances where chlorine will not do the trick. This is the blindness of ideology.

Now I happen to agree with his conclusion. I think ideology is bad. But I don’t see how Nader’s advocacy of passive restraints over active restraints qualifies as ideology. To say that being wrong, which apparently Nader was here (or at least pursued a less than optimal path) is not the same as to be a victim of ideology. Lot’s of people make mistakes, but an ideological as opposed to a pragmatic approach remains dedicated to those ideas after they have been discredited by evidence. Nader and Haddon had a theory, they tried it out, and it showed to be perhaps less effective than other ideas that were out there - they weren’t opposing seatbelts once the evidence was in. And was their theory so outlandish? If you remember Americans’ reactions to seatbelt enforcement (I distinctly remember many people saying they would never wear a seatbelt, come hell or highwater), to pursue passive restraints seems like a good choice, and something that still benefited Americans. This is not to mention all the other things that Nader did to improve the safety of drivers, and for that matter Americans in general. Gladwell, though has a different take:

This is not to suggest, of course, that Haddon’s [and Nader's] crusade is responsible for a hundred and sixty thousand highway deaths.

No, he’s not suggesting it. But if you would prefer to reach that conclusion yourself, go ahead :-)

Now, I’m not some huge fan of Nader, or Farnsworth for that matter, but I believe their accomplishments are a matter of record, and it’s surprising and confounding to see Gladwell dismiss them so blithely. The achievements of both these men are real, and deserve our esteem. Of course, there’s no stopping someone like Gladwell or any other writer from dismissing them with a cluck of his tongue, but I believe that says more about the writer, and what they value, than it does the subject.

These are just two examples that stand out in Gladwell’s canon, though many of his articles are similarly flawed, and he consistently shows a preference for precocity (to use a word from his new book) over precision. At the same time, I can’t say I totally blame him. I would like to be paid to write silly, clever things that people then attribute a degree of genius to. But overall I would say contrariness is a fashion, and it seems to me to be intertwined with people’s love of irony. After all, both represent a desire to participate in mass media without being “of it”. But I think it’s time for this fashion to pass; it’s much more satisfying to believe in something sincerely, and much more useful to actually be right rather than just interesting.

Share and Enjoy:
  • Digg
  • description
  • Reddit
  • del.icio.us

Iterative Interface Design - Methods To Madness

August 16, 2008 – 2:46 pm

I saw this post on concepts that every developer should know.

In general I think it’s a good list, and I like many of the recommendations. In particular, I agree with the citation of Robert C. Martin’s book for knowledge of interface design (and I would add overall object-oriented development practices). I’m a big fan of this, and I believe it is an excellent tutorial on how to use object-oriented design effectively.

However, the brief summary of what constitutes good design is a bit glib, if not altogether flawed. Here is the section of his post that I am reacting to:

In modeling, there are ways you can iterate towards the right solution. Firstly, never add methods that might be useful in the future. Be minimalist, get away with as little as possible. Secondly, don’t be afraid to recognize today that what you did yesterday wasn’t right. Be willing to change things. Thirdly, be patient and enjoy the process. Ultimately you will arrive at a system that feels right. Until then, keep iterating and don’t settle.

I guess if the author is referring to internal interfaces that are only being used by the programmer developing the code, taking a purely iterative approach is okay (though there is still merit in thinking through exactly what the needs of the project are).

Now, what exactly the future constitutes in the author’s statement of “never add methods that might be used in the future” is unclear, but one common “future” time horizon is the duration of a project. If there are multiple developers working on the software, coming up with interfaces at the outset that act as the contract for how individuals programmers’ components will interact is one of the best ways to enable concurrent development and minimize the confusion that often comes with integrating the work of multiple parties together. These interfaces will inevitably evolve to some extent, but if done well they will allow the team to work relatively independently and efficiently.

Longer term, if one is publishing an API that is meant for consumption by a wide audience, including engineers that are “unknown” to the API developer, interfaces become “hard” awfully fast. If the API provider does not wish to unduly and irresponsibly inconvenience the consumers (i.e. customers) of the interface, making changes is not easily done and requires some real forethought. One obvious example that illustrates this is the Java API. If the Java developers simply “evolved” their APIs whenever a new idea occurred to them, it would be incredibly troublesome and probably lead to a revolt among the Java development community. When the API has been revised in a fairly chunky way (the addition of altogether new APIs as opposed to trying to amend existing ones), such as with the NIO libraries, it may not break existing code, but it does lead to API bloat and confusion among developers. The original IO library is admittedly inelegant and unwieldy, but the ideal solution would have been that the Java engineers just get it “right” in the first place. Is this more easily said than done? Perhaps, but that doesn’t make it any less legitimate of a critique. Now I know most of us aren’t writing core language APIs, but I chose this example because it highlights my point and is easily relatable. But other no less compelling examples abound. I won’t get started on the way certain open-sources libraries seemingly just whimsically amend their APIs, without any recognition of the problems this causes downstream. I think everyone has had the experience though of trying to upgrade to a new point release of a library (to get some bug fix, or a small new feature) and discovering half their code doesn’t compile, with no new benefits accrued to them by these API changes.

And I may be unfairly taking the author to task here. This is a brief post. Part of what I am responding to is not just the author’s words, but what I believe it embodies and refers to: the Agile design philosophy. If this were just one man’s opinion, I probably would not care very much, but I frankly find the whole YAGNI (you aren’t going to need it) take on design to be often wrong-headed, bordering on outright malpractice. I’m a strong advocate of the fine balancing act of design, in which the developer must weigh current and future needs and still be mindful of the cost of complexity and the danger of over-engineering. Again, nothing simple about it (I view it as a semi-mystical art, one that I deeply enjoy and am consistently challenged by), but that’s why we are well-paid professionals. However, much of what I see written and applied today with regard to design seems to think that engineering for the future is simple hopeless and impossible.

Well, it’s not impossible. And the payoff for the effort is software that is far more maintainable, flexible, extensible and just all-around “livable” that it would be otherwise.

Share and Enjoy:
  • Digg
  • description
  • Reddit
  • del.icio.us

The Movies I Watched

August 12, 2008 – 9:42 pm

Having back surgery is a great opportunity to get in touch with one’s TV. As I’ve spent a good part of the last two months lying on a relatively slender (by virtue of cluttering every item I might ever need within a 12 inch radius around me, so as to remove the need to move at all) patch of 6′x1′ carpet, I got a chance to watch many films. Below I’ve listed all the movies I watched (at least the ones I recall….those I can’t….well, that’s sort of a review in itself, right?) and how I would rate them:

***** (5 stars)
Blade Runner - One of my all-time faves. I got the complete bluray edition and it’s spectacular as ever.
Hard Times - Charles Bronson is my new favorite tough guy. This is one of the best I’ve seen with him; really a perfect role for him.
High Plains Drifter - Interesting to contrast with his work with Leone - still myth-making but more sinister and supernatural - probably a blog post here to expand on, though i’ll need to watch it again. And Clint is the all-time tough guy….would anyone debate this?
Rio Bravo - Just gets better every time. My introduction to John Wayne. I’m still on the fence about his appeal, but it works for this movie.
Seven Samurai - Normally anything five stars (in my mind) is so only after repeated viewings, but I did love this. I of course reserve the right to downgrade though based on future reexamination.
Strangers on a Train - A classic Hitchcock. Not in his top tier, but just a smidge below.
Texas Chainsaw Massacre - My three favorite horror flicks (this, Psycho, Silence of the Lambs) are all based on Ed Gein, the psychopath from Minnesota with a Mommy fixation and a (supposed) habit of wearing the skins of his victims. Probably the most influential serial killer of all-time, which is an interesting superlative to contemplate (both in terms of who deserves it as well that it has real significance).
The Searchers - Being the pedantic fellow that I am, I’ve watched this repeatedly, despite not enjoying it particularly much on initial viewing. This is because:
1) It is so strongly rated by critics whose opinions I slavishly follow
2) it’s quality of “something-more-ness”
This is the feeling I get from certain works that, though they are not particularly compelling on first encounter, there is some thread they loose in my mind that suggests there will be greater reward if I keep at it. Sometimes this isn’t the case (the entire work of Sonic Youth comes to mind; probably the best argument for ignoring critical opinions). I’ll expand on this idea more later, as its essential to my way of consuming art, but I believe this movie fits it squarely and has not disappointed my investment of time.
Twelve Angry Men - Corny, didactic, and great. One of the best arguments for a liberal sensibility.

****
Birdman of Alcatraz - Only issue I have is Burt Lancaster gives this guy such dignity and integrity, whereas a brief look online for the real story reveals the guy as a consummate manipulator who lived in filth. Also part of a strong argument for Karl Malden as greatest sad sack supporting actor of all-time.
Blades of Glory - I’m amazed I still enjoy Will Ferrell’s shtick. I guess it’s because he’s smart enough to know it will wear thin and pushes off as much of the attention on his co-stars as possible.
Doctor Zhivago - Probably my least favorite of Lean’s epics, but still great. I get why it’s the favorite movie of so many women.
Mash - I like other Altman’s much better, but this is still great. Elliott Gould should be forced to rewatch this before he dirties himself with another Friends-style cameo.
Music and Lyrics - What can I say about this movie that I want to put out in public? I guess I would suggest that if you are being made to watch a movie, steer it towards this.
The Bad and the Beautiful - Kirk Douglas is another recent discovery for me. I’ve recently seen a bunch of films with him, and enjoyed them all, and him in them. I like the insight into early Hollywood, and it’s interesting to try to reconcile it with my knowledge of it based on reading. As someone who believe in collaboration in all endeavors, I enjoy how it both celebrates it and at the same time shows how essential one man’s will can be.
The Woman in the Window - Edward G. Robinson is either a very, very smart man, or the best poseur of all-time. He’s got a professorial air even when playing thugs; I liked how his omniscience was turned on him here. I don’t think there’s a close second choice for who could play this role.

***
A Bridge Too Far - Great cast, some great scenes, but very hard to follow. And I have some knowledge of history of Operation Market Garden as well as plot of the movie itself.
Ace in the Hole - Kirk Douglas could sell you a Bridge in Brooklyn. Makes me think of the line in House of Games: “A confidence man gives you his confidence.” I didn’t buy his redemption though and would have worked better I believe if it had shown him less heroically.
Montenegro - I put this on because I saw Susan Anspach’s name in the online guide blurb, who I have only ever seen (and loved) in Five Easy Pieces before this. Initially came off as the most stereotypically sort of arty foreign movie, but the joke was on me. After starting out with long shots with lots of silence, turned into something absurd and almost pornographic. More confirmation of my belief that Eastern Europeans have more fun (even when they have a knife sticking out of their head).
Night of the Hunter - I’ve been meaning to watch this for a while. Charles Laughton is one of my favorites (he might actually have been a good alternative to Robinson in The Woman in the Window). Great direction, Mitchum is frightening, but I found myself bored by its length.
Pale Rider - Solid, forgettable Eastwood. Probably the template for a million action movies where the “mere” something (in this case preacher) turns out to be an incredible ass-kicker.
Separate Tables - Very British and stuffy but enjoyable.
The Towering Inferno - I’d read about how McQueen was hell-bent on “owning” Newman in this movie. And he did. You can almost see the expression on Paul’s face of “would this guy give it a rest already?” And though McQueen won here (since it seems to be a contest for hammiest acting, not necessarily a compliment), career-wise, its Newman hands-down.

If anyone has any thoughts they’d like to share on any of these films, I’d be happy to reply in kind.

-John

Share and Enjoy:
  • Digg
  • description
  • Reddit
  • del.icio.us

Hippocrates and Hypocrites

August 12, 2008 – 4:37 am

Of the many labored analogies between our profession and others, one that comes up occasionally but perhaps not as frequently as it should is the comparison of our work with that of doctors and medical professionals.

And I’m not trying to work in some joke about our failures not ending up in the morgue. It’s a great relief that there is rarely as much at stake in what I do every day. Rather I mean the dedication to that first oath: “Do no harm.”

I was reminded of this recently reading a blog post on a recent talk by Robert C. Martin, author of Agile Software Development, Principles, Patterns, and Practices. The gist of it was that we as programmers should focus on the quality of our work, if only because the consequences of our actions can be catastrophic.

First, let me say that I like Mr. Martin a lot. His book is one of my favorites, and as part of our review process I provide a copy to all junior engineers, as it does as an exceptional job of distilling some of the core, yet elusive, practices of our discipline. That said, I would cite a quick counter example: (I don’t have a link though if someone provides it, much appreciation — UPDATE: an abstract of the article can be found here…thanks Doug!) the New Yorker published an article a couple years ago about the doctor that pioneered kidney transplants. The thrust of the article was that, though he was eventually successful, he killed many patients in the process. The alarming conclusion was that this could never be done today because the doctor would have been sued out of existence, yet if not for him many people would still be dying today. Of course, we are all uncomfortable with doing this sort of math, but it raises an interesting point: what is the right balance between experimenting with new techniques while still doing the right thing by the customer? And when does innovation become malpractice?

Fundamentally, though I believe there are good veins within them, the practices of Agile Programming smell like malpractice to me. Why? Well, they are not sufficiently focused on the patient i.e. the customer. At the end of the day, we are paid to do a job, and that job is to deliver value to the customer. Though software quality is important (very important in fact), the big picture is not about structuring our processes so that they are convenient to ourselves, but so that they deliver the value we promise. Agile to me is too much navel-gazing; the wish-list of every frustrated developer. I believe Mr. Martin is trying to hit on this in his talk, but I think he fails to recognize that as a vehicle, Agile has become inextricably linked with the needs of its implementor, as opposed to its beneficiary. Is this innate to its definition? Perhaps not, but the fact that they have become so linked is an undeniable fact, and I believe that better models must be sought.

This does not mean there is no point to it. The best of Agile is its focus on saving customers from themselves: making short-sighted decisions, that, because of their technical naivete, punish them in the long-run. Finding a voice and narrative to explain this to people who don’t spend all their days in the trenches is certainly worthwhile. But far too many of these practices feel punitive and vengeful. I would cite as evidence the commonly quoted “chicken and pig” parable:

A pig and a chicken are walking down a road. The chicken looks at the pig and says, “Hey, why don’t we open a restaurant?” The pig looks back at the chicken and says, “Good idea, what do you want to call it?” The chicken thinks about it and says, “Why don’t we call it ‘Ham and Eggs’?” “I don’t think so,” says the pig, “I’d be committed but you’d only be involved.”

What a wonderful story! We pigs (hardworking, ethical, highly intelligent developers) work everyday with our necks on the lines, while the chickens (lazy, dishonest, stupid business people) layabout in their roosts laying eggs and reading US weekly. That’s a nice way to look at it as an engineer, but the fact is the chickens are the ones supplying the money, and to say their necks are not on the line is just silly, and I challenge anyone to spend just a short time as manager with budget responsibilities and see if they feel managers are not invested in their projects. More than that, it shows a contempt for the basic source of our work. At this point, the function of software development has become so established that we just assume it. It is in fact essential to many enterprises. But at the end of the day, we are providing a service, and though we may be able to insulate ourselves from its essential nature, never forget that it is this:

      Do no harm
      Add value every day

That is the Hippocratic oath of the engineer.

-John

Share and Enjoy:
  • Digg
  • description
  • Reddit
  • del.icio.us

Six Enablers of Multi-Language Programming

July 21, 2008 – 6:29 pm

Multi-language programming is a popular topic nowadays. Subjects like domain-specific languages (something near and dear to my heart, as it is at the core of what my company does), “using the right tool for the job” and leveraging the rapid-time-to-market enabled by dynamic/scripting languages are all much discussed. Now, I have my reservations about this becoming too popular. Certainly I dread the prospect of engineers coming to me to push why we have to use Ruby for our next project, and how it will make us more productive, better looking, able to run sub-4 minute mile, etc., but in general as a trend I think it’s an exciting one. It’s great to see all the cool ideas out there, and a lot of the conversations are making us (as well as our chosen development platforms, as they adopt the best of what is available) a lot smarter. So here is my list of the top six things that make it possible:

1) Free, easily accessible information
Via forums, websites and search tools, especially Google, the wealth of information available to developers online is incredible. Yeah, obvious I know, but it helps. A lot.

Learning a language is not like learning a framework. If I wanted to learn about Ruby On Rails. Or Spring. Or Hibernate, buying a book is oftentimes a sufficient resource. That does not mean that you won’t need to refer to other resources, but these tools are of such a size that they can be covered fairly comprehensively in a single volume. This is not the case for a language platform - here a book might be helpful in learning the basic syntax and features of the language, but language platforms also come with extensive APIs. Non-online resources that document APIs tend to be less than exhaustive, often just repeating in book form the core API documentation that ships with the language. If someone wants to quickly come up to speed on the XML handling facilities that are available, or the IO-handling classes, there is often little in a written form available. However, searches online will usually discover concrete examples by seasoned practitioners; this information is invaluable. Also, it goes without saying that these resources are very useful for when strange issues are encountered, and it is very common that when a roadblock is a hit, a simple Google search will return the precise remedy (it’s interesting - and a little bit awing - to contemplate the impact of this single factor alone not just with respect to multi-language programming, but development in general….its hard to overstate what a dramatic positive effect this has had on debugging).

2) Evangelism
The online community makes it much easier for people to rally around something. This is similar to the first item, but what I’m talking about here is not so much information about the language as providing forums for people to advertise and evangelize these new tools and techniques. I think many go overboard in their praise of the new, but the fact is having an enthusiastic, energized and vocal group of folks behind a technology is really essential to popularizing it. I can feel a lot more confident that Ruby is a good choice for application development when I see so many prominent people recounting their experiences with it and encouraging me to use it.

3) Language convergence
Languages today share much in common with each other, and they borrower extensively from one another. Obviously there is also a great deal of diversity; people wouldn’t be looking for new alternatives if there weren’t diffences. However, the fact is that the rate at which innovation is happening with languages is because of the acceleration of understanding of the features provided across the board. A good example is the history of .NET. .NET, and especially C#, obviously borrowed heavily from the design of Java. In fact, I would say the initial releases represented really an incremental refinement and perfection of the Java language. But they have not stopped there. The additions of lambda expressions, implicit typing, and generics are obviously taking their inspiration from other sources. This creates a bit of a feedback loop where the availability of these features in all languages, as well as the awareness of their existence on the part of developers, makes it easier in turn for developers to explore other languages, thus causing them to push existing ones for the inclusion of these items. My experience with delegates while programming in C#, for example, has made me extremely eager to see them added to Java.

And yes I know there was sharing of ideas before the internet. I’m not saying it created it but that it has accelerated it.

4) Virtual Machines
Virtual machines, both language level (JVM, CLR) as well as OS level (VMWare, Parallels), have made it much easier for folks to program in whatever language they choose, regardless of what platform they are using. People can pretty much develop on whatever type of machine they want, and deploy to whatever target hardware they want. I’ll use another example from .NET to illustrate this: for a long time my primary desktop environment had been Linux, and it is now OS X. However, I still do a fair amount of development on the Microsoft platform, and there’s no problem for me with this, in spite of my choice of operating systems. I just simply boot up VMWare and just like that I have a pristine dev environment that sacfices little versus having a dedicated piece of hardware with that OS. This a huge advantage for developers.

5) Development Environments
The sophistication and ease-of-use of modern IDEs makes the task of switching languages much, much simpler. The fact that I can fire up an IDE (often I can use the same one for a different language - both Eclipse and IntelliJ have extensive support for a slew of languages), and start utilizing code and syntax completion, as well as use features that create projects using best practices, provide wizards for common tasks, and contain RAD lifecycle tools for updating code and automatically pushing it to a server/container. All of these features significantly ease the learning curve, and increase productivity.

6) XML and other language-neutral data formats
Lately there seems to be re-examination of XML going on. Personally, I always felt it was over-hyped, the supporting tooling is still sub-par, and the specifications are often atrociously over-engineered (XSD, Soap, XHTML, take your pick). There is though at least one great thing about it: every platform supports it. And everyone agrees that we need easy-to-use formats for language interop. Now, these things did exist before; CORBA and EDI are two noteworthy precursors. Not having used them much I can’t comment, but everyone I know who has worked with CORBA tends to shake their head and say never again….so not exactly a ringing endorsement. Anyway, having these common interchange mechanisms available makes life much easier and seriously lessens the impact of using multiple languages/platforms.

To cite a real-world example of all these things coming together, I recently did a project that used Objective-C and Cocoa as the client development platform, with Ruby on the server side. I have done some work in Ruby in the past, so it was not totally new to me, but I was a complete noob with respect to Cocoa and Objective-C, other than having used C some time ago. Using two great IDEs (Aptana for Ruby, based on Eclipse, XCode for Objective-C) I was able to quickly become productive, and when I ran into issues there were great resources online to be found. I felt good about my choices based on recommendations from colleagues I trust as well as all the online “mind-share” around these technologies (the iPhone is obviously a hot subject now, and Ruby is probably the most buzzed about server-side language), and most of the concepts I found in these languages I had some familiarity with based on my OO and procedural background, as well as the work I have done in the AI arena. Interaction was handled using YAML (I told you I don’t like XML), which was easy to implement on both sides. And of course, deployment was a snap - I’ve got an Apple provided VM for testing my iPhone app, and I’m going to be deploying my Ruby code on a Windows server I have at home. It’s a beautiful thing, eh?

-John

Share and Enjoy:
  • Digg
  • description
  • Reddit
  • del.icio.us

The New Yorker - Subtle As Ever

July 20, 2008 – 7:15 pm

I’ve spent some time this afternoon thinking about the New Yorker’s very controversial Obama cover cartoon. What got me thinking about it was this opinion piece in the New York Times.

The central points of this piece are that the cartoon fails because:

  1. The viewpoint being satirized (Obama is a terrorist) is not sufficiently mainstream to deserve satire.
  2. The cartoon is too literal and does not sufficiently exaggerate the point of view of those claiming Obama is a terrorist.
  3. The cartoon does not directly reference those that express this point of view - perhaps if the image was inside a thought bubble over Karl Rove’s head it would have been effective.

It wasn’t until I read this that I realized the genius of the New Yorker’s cartoon, as well as the logical certainty that the image as done was the only way in which it should have and could have been done. To see why I reached this conclusion, let’s take the New York Times writers piece point by point.

1) The viewpoint being satirized (Obama is a terrorist) is not sufficiently mainstream to deserve satire.

This viewpoint is expressed on Fox news by folks that suggest Obama executed a terrorist fist bump with his wife (which really was an innocuous comment, but has become a big deal), that he is a Muslim, that he and his wife are unpatriotic and hate America, and that he is the presidential choice of terrorist groups such as Hamas. Now, I don’t want to be unfair to Fox News; I don’t watch it and I’m not going to start. But if these points are being regularly articulated on their shows(though I’m sure in a sly way - I don’t think they could possibly go on air and suggest with a straight face Obama is a terrorist), I don’t see how one could argue that it is not a mainstream point of view. Maybe it’s not held by a majority of the public, but that would seem to be a pretty high hurdle to pass before one could engage in satire. It seems to me that historically satire is aimed at a wealthy/political elite and how they see the world, and certainly (though by definition a small group) they are a worthy target. So is Fox News.

2) The cartoon is too literal and does not sufficiently exaggerate the point of view of those claiming Obama is a terrorist.

First of all, if the way the image is shown is not an exaggeration, then maybe I should start watching Fox News (though I’m sure Sean Hannity, the most pompous man in America, would find a way to kill the inherent fun of such over-the-top absurdity). The image is beyond ridiculous, and it is not credible to argue that it is not hyperbolic. But even if the author’s assertion is correct, I mean, let’s say Fox News is suggesting Obama is a card-carrying Al Qaeda member, would it be necessary to exaggerate this? Would not this opinion be sufficiently absurd in its own right that to exaggerate it further would be unnecessary, and perhaps even weaken the argument for its absurdity? I think so.

3) The cartoon does not directly reference those that express this point of view - perhaps if the image was inside a thought bubble over Karl Rove’s head it would have been effective.

This last point is what led to my “revelation” this afternoon. I’m sure most people are familiar with the New Yorker - and if your not, let’s be clear: they like humor that’s very dry. Their cartoons are famously hard to get (and some argue that they are so deadpan as to not even be jokes….personally I like the cartoons but it took me a while to get used to them). Now, I was initially shocked by the cover, not so much because of the image but because it was the New Yorker. I mean, the New Yorker. Doing something controversial. That is shocking. Though their articles might attack someone famous, they almost always do it in a very low-key non-shrill way, and it was very surprising to me that they would come out with something that was so far from that. But reading this point, it dawned on me that in fact the cartoon is very subtle: the subtlety is that they resisted the desire to make the subject of the satire - or even the fact that it was satire - completely obvious. Now, if you think about the cartoon and the fact that it is the New Yorker for more than ten seconds, I think it becomes fairly obvious who they are going after. But it does require thought and it does come second. One’s initial reaction tends to focus on the magazine rather than the cover’s target.

This was, though, the correct choice. The New Yorker does not spell things out for people, and it would be inconsistent with everything they do if they started now. Also, it was right to take this issue on head-on, and I think the cover, along with the ensuing controversy, really got the point across and has rendered it a very effective tool. No one is going to forget it, and the next time someone tries some half-assed dissembling where they try to link Obama to Al Qaeda by virtue of subliminal messaging or some other nonsense, all we have to do is point to this cover and say: “There you go again.” The cover has moral authority because it shows a disgusting image, definitively, and it nails it down such that no one can claim to be engaging in anything less than the most abhorrent behavior should they assert similar things. The fact that looking at it makes people so uncomfortable(people who claim that it is an honest, non-exaggerated portrayal of the far right’s depiction of Obama) is all the more reason for them to have done it, and that is why I say they had no choice not just to do in this way, but to do it. This ugliness needed to be surfaced, and called out for the crap that it is.

Is it possible I’m reading too much into this? Maybe, but I would say the possibility is very, very slim. The New Yorker is populated with very bright people, who understand the expectations of their audience very well (almost too well - its a strange quibble to have, but one critique I might make of the magazine is that it represents as well as defines the attitudes of its readership so effectively that it almost feels like something that is not “Other” but in fact “Self”….creepy). To think they didn’t predict controversy for this to me seems far-fetched. The fact that editor David Remnick has stood so solidly behind it is an indication it did not catch him unaware (which is refreshing btw….its tiresome every time someone does something controversial all the apologies that go around).

So, congratulations New Yorker, I thought you had made a mis-step but I guess it was just the magazine being yet again one slight step ahead. I have now dutifully caught up and anxiously await your next directive.

-John

P.S. That last part is a bit of dry humor in the spirit of the New Yorker - I am of course an utterly free-thinker, one who consistently celebrates the high-minded ideals of the democratic party

P.P.S. Oops, more dry humor. It is of course about a one in a billion shot that someone should be both a free-thinker and a lockstep party member, as the chances of someone’s personally cultivated viewpoint aligning with that of a major party is close to nil (at least partially because, as far as I can tell, there is really no logical or ideological consistency to either party’s platform. If solid logic is best represented visually via geometry, the major American parties are a Jackson Pollock painting). This is one of those things that makes American politics both interesting and boring at the same time. Interesting because its amusing to watch 120 million people (or whatever number there are in each party) pretend that they are wildly in agreement with each other, boring because, well, obviously its all a little monolithic. Luckily, us New Yorker readers belong to a certain group of highly educated, highly intelligent people that have all independently stumbled upon transcendental truth, and thus are in total agreement.

P.P.P.S. That last bit was of course…..oh forget it….I’m going to start getting confused myself so let’s just leave it there.

Share and Enjoy:
  • Digg
  • description
  • Reddit
  • del.icio.us