PragPub 2010-02: Issue #8

Table of Contents

Features

- The Nostalgia of the New
by Chris Adamson
An iPhone developer reflects on the iPad and the hype surrounding its announcement.

- iPad Roundtable
interviewed by Michael Swaine
Is Apple’s latest creation a game changer? Some smart Apple watchers weigh in.

- Barriers to Agility
by Johanna Rothman
Johanna shows how to thread the barriers to Agility when failure is not an option for your project.

- Better CSS with Sass
by Brian Hogan
Brian shows off some of the magic of Sass, a DSL for generating stylesheets.

- When Did That Happen?
by Dan Wohlbruck
In honor of Herman Hollerith’s 150th birthday, Dan surveys 100 years of information-recording technology.

Departments

- Up Front
by Michael Swaine
Programming from punch cards to the iPad.

- Choice Bits
Tweets, posts, and chatter on programming and life.

- Get a Life
by Daniel Steinberg
Steve Jobs demos the iPad and delivers a subliminal word to the wise: Focus on the user.

- The Working Geek
by Andy Lester
Andy Lester explains why you career will benefit from public speaking, and how to get started.

- Swaine’s World
by Michael Swaine
Working with another person can change your perception of time.

- The Quiz
by Michael Swaine
A monthly diversion at least peripherally related to programming.

- Calendar
Author sightings, partner events, and other notable happenings.

- Shady Illuminations
by John Shade
John sees Google’s adventures in China as a road picture starring James Dean and directed by David Lynch, David Cronenberg, or Neill Blomkamp.

Except where otherwise indicated, entire contents copyright © 2010 The Pragmatic Programmers.

Feel free to distribute this magazine (in whole, and for free) to anyone you want. However, you may not sell this magazine or its content, nor extract and use more than a paragraph of content in some other publication without our permission.

Published monthly in PDF, mobi, and epub formats by The Pragmatic Programmers, LLC, Dallas, TX, and Raleigh, NC. E-Mail support@pragprog.com, phone +1-800-699-7764. The editor is Michael Swaine (mailto:michael@pragprog.com). Visit us at http://pragprog.com

ISSN: 1948-3562

Up Front

From Punch Cards to the iPad
by Michael Swaine
It’s getting crowded in here! Considerably more people contributed to this issue than to any issue of PragPub to date, due to the roundtable discussion of Apple’s iPad, which involved over a dozen iPhone developers, Apple watchers, writers, and editors. I asked them to think hard about a few fundamental questions regarding the new device. We’ve got more coverage of the iPad, too, with thoughtful essays from Daniel Steinberg and Chris Adamson.

Apple’s device may or may not be a game-changer for software development, but it’s certainly provoked a lot of discussion. But we tackle plenty of other subjects in this issue.

Johanna Rothman shows how to select a proper pilot Agile project, how to select the team to work on that project, and how to help the team work together as a cohesive self-organizing team.

Andy Lester walks you through what you need to know to improve your public speaking before tech groups.

Brian Hogan introduces Sass, a DSL for generating stylesheets. CSS does not possess the most elegant syntax in software development, and Sass was created to solve that problem, allowing you to write much cleaner stylesheets without losing any of the benefits of CSS.

Dan Wohlbruck takes the occasion of Herman Hollerith’s 150th birthday to look back on over 100 years of technology for recording information. And yes, you can argue about whether Hollerith’s February 29 birthday should be celebrated on some incorrect date in February or on March 1 or only every four years. But we arbitrarily decree that since the man was born in February, February is the right month to celebrate his birthday.

John Shade takes on the Google in China story, envisioning it as a road picture starring James Dean and directed by David Lynch, David Cronenberg, or Neill Blomkamp, and ending in a car crash of internet metaphors.

And as usual we have a column by me, a quiz, the events calendar, and other goodies.

Choice Bits

Overheard on the Intertubes

Wading into the chatterstream in hip boots, we wield the Axiom of Choice with gleeful abandon.

What’s Hot

Top-Ten lists are passé—ours goes to 11. These are the top titles that folks are interested in currently, along with their rank from last month. This is based solely on direct sales from our online store.

1^

NEW

SQL Antipatterns

2^

3

Agile Web Development with Rails, Third Edition

3^

6

Language Implementation Patterns

4^

5

The RSpec Book

5^

9

iPhone SDK Development

6^

NEW

Hello, Android

7v

1

ExpressionEngine 2.0

8^

NEW

Metaprogramming Ruby

9v

8

Programming Ruby 1.9

10v

7

Security on Rails

11v

2

Web Design for Developers

Opinions Vary on Apple’s iPad

[iPad] is Apple’s way of asserting that they’re taking over the penthouse suite as the strongest and best company in the whole ones-and-zeroes racket. — John Gruber

[T]he iPad with a 1024x768 screen resolution works great for a full VDI XenDesktop. Windows applications run unmodified and securely in the data center, and even multiple applications at once. — Chris Fleck

This thing, the iPad, is a dog. — Dave Winer

Following Hill and Bill

Tuning into Hillary speech on Internet Freedom. For all this hype, she better introduce a tablet. — Steven Levy

We stand for a single Internet where all of humanity has equal access to knowledge and ideas. — Hillary Clinton

Wow: Bill Gates started using Twitter earlier today, and already has almost 18,000 followers. — Harry McCracken

Many people are asking how they can help in Haiti - the foundation has posted a page wth some helpful links. — Bill Gates

Is It Even Worth Saying if You Can’t Fit It in a Tweet?

So @obie tweets about UJS, @dhh responds with a call to action, and a bunch of people jump on IRC to sort it out. Twitter at its best. — Chris Parsons

There is no debate on Twitter. Only intertwined streams of mutual interruption. — Chris Ammerman

The Future, if Any, of Newspapers

Expert who gets quoted in newspapers says Michael Kinsley is wrong and newspapers should quote experts. — Jay Rosen

When a newspaper says it’s putting a paywall up a year, it’s just floating trial balloons. #NYT could put a paywall up tomorrow. — Cory Doctorow

Leave in the first "yeee-HAW" in NASCAR fan interviews, omit the rest unless necessary in context. — Fake AP Stylebook

Further Observations

Just used copypasta *and* cargo cult programming to do power-law fitting in #mathematica —fogive me Lord for I have sinned. — Adrian Kuhn

I’m done: Star Wars opening crawl, using only HTML & CSS. — Guillermo Esteves

Little experiment shows that labels on a blogger blog post can make a HUGE difference in posts being found in Google search results. — Ben Simo

Manual: "The Zeo does not alter your sleep in any way." Me: "Except for when the factory default is to set the alarm for 1:10am." — David E. Weekly

Get a Life

Thoughts on the iPad
by Daniel Steinberg
Steve Jobs demos the iPad and delivers a subliminal word to the wise: Focus on the user.

There was nothing really special about the iPod when it launched, either.

There were other MP3 players at the time and people complained about all of the things it didn’t have. And yet it was different. iTunes on the Mac—and later on Windows—is what made it different. Over time the hardware improved a bit and the software improved a lot and the product figured out what it was.

Nine years after the launch of the iPod, Apple CEO Steve Jobs began his January 27th Special Event by noting that one quarter of a billion iPods have been sold. Other than the Classic, the current iPods bear little resemblance to the early models. At the lower end, the shuffle lost its screen and eventually all of its buttons. It’s become so tiny that the controls had to be moved to the wire connecting the headphones. The nano now lets you watch videos on an unbelievably small, well-crafted device. At the top end of the line there’s the iPod Touch, which plays music, videos, and most of the apps from the App store.

Remember History

As you look at the newly announced iPad, keep in mind the evolution from the iPod to the iPod Touch (which is essentially the iPhone without the phone). Oh, right, the iPhone. Remember all of the things that were wrong with it when it launched? The blogs were filled with laments about the missing features and the terrible choices Apple made. Of course, some of the complaints were valid and needed addressing—and others were a matter of taste.

The biggest miscalculation Apple made was in third-party applications. Apple figured we’d just write web-based applications and they would run in mobile Safari. They prepared consumers for this by introducing the Dashboard and its widgets. Apps on the iPhone would be kind of like widgets.

So Apple thought, but Apple was wrong, and changed its strategy. When Apple exposed its APIs, allowed third party native apps, and created the App store, everything changed. As good as their device was, this was the decision that was most crucial to the success of the iPhone. If Apple had only allowed web-based apps, then those same apps would have worked just as well on Palm or Android. (By the way, it’s probably time for Apple to replace Dashboard on the Mac with an emulation environment that allows you to use appropriate iPhone apps on your laptop.)

So now we have the iPad—or soon will.

There’s a lot wrong with it. It only runs one app at a time, it doesn’t have a camera, and it only brews fair trade coffee. It doesn’t have this, it doesn’t have that, it will never work because of this, it will never sell because of that.

Yeah, maybe. But everyone who has touched one says differently. And any developer or Apple competitor who forgets that Apple is utterly focused on the user experience does so at their peril.

Focus on the User

If you’ve watched the video of the “Special Event” there is an initially bizarre portion where Jobs sits on a couch and browses the web on the iPad while we watch. He brings up the New York Times homepage and announces that you can click on a link. Big deal. And then he does. And another. And another. It is the most boring piece of theatre you’ve ever seen. Jobs just sits there browsing the web announcing what he’s going to click on next. It looks exactly the same as the same demo would look if he were browsing the web on a laptop (except for Flash not being supported).

But we’re looking at the wrong thing. We’re looking at the web pages as they come up. Look at that portion of the video again and watch Jobs interacting with the tablet. It’s pure delight. Even browsing the web is different if you are touching the area of the screen you want to select.

I know that that sounds stupid but here was the big aha moment for me on the iPhone. I was in Denver teaching an iPhone studio with Bill Dudney and the two of us went out to dinner with Mike and Nicole Clark, the folks who run the studio. The other three started talking about the app named Flight Control. Bill started up the game and handed it to me, and my relationship to the iPhone completely changed. You touch planes in flight and direct them to their landing pad. This is not the same experience as using a mouse and watching the results on a monitor. The connection to what you are controlling is key.

The developers of the best iPhone apps know this. They ask what is special about the phone and the experience they provide takes advantage of the device. Star Walk knows what time it is, where I am and which direction I’m holding the iPhone in so it can show me the stars I should see when I look in that direction. Magic.

That’s what’s going to make the iPad a success. Developers need to consider what’s special about the device and write apps that delight us. Some of what is special about the device will be the same as what is special about the iPhone—but some of what is special about the iPad will be unique to the device, the larger screen being one significant differentiator. The relative size of your fingers to the screen will make a huge difference. The sheer size of the screen will guarantee a more immersive experience.

The Intersection of Technology and Liberal Arts

Last night I was up in my office working on my laptop. I had an external screen plugged in so that I could code on one screen and have Interface Builder up on the other. I plugged in an external keyboard and a Wacom tablet. And I noticed that every time I moved my hands from the keyboard to the tablet, I interrupted my flow.

I can think of a ton of applications where I want to have a more intimate connection with what I’m creating. It’s all about the user experience, and we developers are users, too.

For example, suppose I’m sketching a picture. I can use the Wacom tablet and get decent results, but it doesn’t feel as connected as my pencil on paper. But the Brushes app on the iPhone gives me that connection. I’m drawing right here where my finger is. The demo of Brushes on the iPad was natural.

I love the weeks before an Apple announcement. Everything seems possible. Sure, I’m an Apple fanboi and would have ordered an iPad yesterday if they’d been available. But I love the weeks after an Apple announcement too. Even more seems possible than I could have imagined before the announcement.

The final slide of Jobs’ presentation showed us at the intersection of Technology and Liberal Arts. I love that intersection. I’ve lived in that neighborhood all my life.

Daniel is the editor for the new series of Mac Developer titles for the Pragmatic Programmers. He writes feature articles for Apple’s ADC web site and is a regular contributor to Mac Devcenter. He has presented at Apple’s Worldwide Developer Conference, MacWorld, MacHack, and other Mac developer conferences. Daniel has produced podcasts for Apple featuring the work of developers and scientists working on the platform. He has coauthored books on Apple’s Bonjour technology as well as on Java Programming and using Extreme Programming in Software Engineering classes. He is the author of Cocoa Programming: A Quick-Start Guide for Developers. iPad photo courtesy of Apple.

The Working Geek

How to Give a Tech Presentation, Part One
by Andy Lester
Andy Lester explains why you career will benefit from public speaking, and how to get started.

If you need a great way to improve your social skills and hirability, give a talk at a local user group meeting or technical conference.

As geeks, our lives revolve around information and knowledge. I suggest that there’s no higher calling for a working geek than to share his or her knowledge with others.

Learning to speak in public will also help your self-confidence, and the need will likely come up in your business life. At some point, you’ll probably have to give a presentation to other people in your company, and it will be much easier if you’ve had practice beforehand.

You’ll also be better at job interviews if you’ve practiced speaking in public. An interview is just a presentation: Your goal in an interview is to give knowledge to an audience, even though in an interview the knowledge you want to impart is how you’ll be a great employee for the company, and the audience is typically only a handful of people at most.

A fantastic place to practice your speaking is your local geek user group meeting. Every user group needs speakers for meetings. Don’t worry about whether you’ll have a venue. Instead, make sure you come up with an interesting topic with an interesting angle.

What Are You Going to Talk About?

The most important aspect of your talk is the topic, and how interested in it you are. Your enthusiasm about the topic is the single biggest factor in how successful you’ll be. If your topic isn’t interesting to you, then you’ll do a terrible talk. You’ll be bored and disinterested, and your audience will know that. Worst of all, your talk will be boring, and that’s the worst thing that can happen.

Finding a topic to talk about shouldn’t be hard. Presumably you’re doing something with technology that interests you, either during your day job or at home. What have you done that’s interesting to you that’s related to technology or your target audience? When you meet a friend for dinner, what story do you tell about what you’ve been doing? Here are some ideas:

- Spent two months in Indonesia, India, or Iowa as a consultant

- Converted a homemade CMS to Drupal

- Learned Ruby as your first dynamic language from a Java background

Don’t worry if your topic is not universally interesting. There’s nothing universally interesting. If it’s cool to you, that’s all that matters.

The All-important Angle and Title

Now that you have a topic, there must be an angle. The angle is the unique aspect of your topic that will spark interest in potential audience members. Without an angle, your topic will sound as interesting as a man page. With the angle, there’s a story to be told. What was the twist on your story? For example, it might be:

- Iowans are very different from New Yorkers, in everything from how they have lunch to how they comment their code.

- Converting to Drupal let the marketing department do website updates in half the time.

- I had to learn Ruby to save my job when my company was bought out.

Once you have the angle, that needs to come out in the title of the talk. There must be something to draw in the potential consumer of your knowledge. The title needs to encapsulate your angle as well as the general topic of the talk. For example:

- “Culture Shock while Consulting in Iowa”

- “Two Months to Automate 50,000 Pages of HTML: I Survived and You Can Too”

- “From Java to Ruby: How I Saved my Job and Learned to Love Yield”

This rule for titles is even more important if the talk you’re proposing is for a conference. At a conference, a potential listener is probably faced with a half-dozen choices on a schedule grid, with nothing more than your name and the talk’s title to help her decide whom to go listen to.

Preparing Your Talk

When you are given a programming project, it’s a mistake to fire up a text editor and start cranking out code. There’s design and planning to be done beforehand. It’s the same with preparing for a talk. It’s a mistake to fire up Keynote or PowerPoint and start creating slides. If you don’t know what you’re going to say, how can you create slides for it? You need to design and plan what it is you’re going to say before you worry about any visual aids.

Your slides are the least important part of your talk. Slides are not the primary source of information. If slides were all that was important, you could simply upload a slide deck to Slideshare and wouldn’t have to stand in front of a group to talk about the topic.

You also must be able to do your talk without slides, for two reasons. First, you must know the material well enough that you can talk about the topic without reading the content from the slides. If you don’t, you’ll use the slides as a crutch and your talk will be boring. Second, it’s entirely possible that you will be forced to give your talk without your slides. Murphy’s Law and the fickleness of technology make it all too likely that you won’t be able to use the slides anyway. If you realize ten minutes before your presentation in California that you left your Macbook’s VGA dongle back in Illinois, and you’re presenting at an all-Windows company, you’re going to do the talk without slides. Not that I speak from experience or anything....

However, you should still plan to create a slide deck as part of your presentation. It will help organize your thoughts and give you a way to gauge the length and pacing of your talk. Just don’t worry about it now.

The Thesis Statement of Your Talk

Before you create any work on the talk, know what you want the user to come away with from your talk. You should have a thesis statement like “When my talk is over, the listener will have basic knowledge in choosing an open source CMS” or “the listener will get an overview of the sorts of cultural differences consultants have to deal with.”

What you don’t want to aim for is giving a lot of technical details. You’re not going to be reciting a technical manual, and people should not feel obligated to scribble down every detail. If you think you’re going to do ten minutes on all the various command line options for find or an exhaustive exploration of functions in a library, stop. Far better to talk about cool things that find can do, give examples, and handwave the particulars.

Creating Your Outline

Start with an outline of everything you want to say. Don’t go more than two levels deep. Just dump everything you could want to say, without editing. The time for editing will come later. Trying to prune down your ideas for the sake of length is premature optimization.

Here’s an example. Think of each level-1 bullet as a section, level-2 bullets are topics, and level-3 bullets are detail.

- Introduction

- Who I am

- What the listener will get out of hearing me

- My task

- The problem

- 50,000 pages

- Non-standard HTML

- ...

- The constraints

- Open source

- Runs on Linux

- ...

- Research

- Drupal

- Huge developer community

- ...

- Joomla

- (all about Joomla)

- Movable Type

- ...

- ...

- What we decided to use and why...

- Implementation...

- Wrap-up

- How it went

- What we learned

That bullet “Introduction” should be brief and attention-grabbing. Start out your talk with a brief hello and then a brief grabber of why the listener shouldn’t just drop off to sleep right away. For example, you might start out with:

“Hi, I’m Bob Smith, and as part of my job I had to choose an open source CMS to replace our ancient 50,000-page hand-coded website. I spent a month researching the choices including Drupal, Joomla, WordPress, and Movable Type. Management loved the results, and we saved $42,000 in personnel costs in the first six months. Here’s how I did it.”

In fact, the introduction to your talk is a lot like the paragraph or two that your user group will send out to advertise it.

The sections of your outline should be of similar length to each other, so you don’t have one big long section and a bunch of little short ones. When you give the presentation, there should be a rhythm to how you speak, so that you talk for a while and dump information, and then the audience gets a little rest. These rests might be time for fielding questions, or maybe a wrap-up at the end of a section. Think of it as a landing at the top of a flight of stairs. Climb climb climb, rest, climb climb climb, rest. Too much climbing and your audience will get weary.

Once you have an outline, you’re ready to start working on your slide deck. And here’s where I give my audience—that is, you—a rest. In next month’s column, I’ll discuss preparing slides, presenting your talk, and how to handle the biggest fears about speaking.

Andy Lester has developed software for more than twenty years in the business world and on the Web in the open source community. Years of sifting through résumés, interviewing unprepared candidates, and even some unwise career choices of his own spurred him to write his nontraditional book on the new guidelines for tech job hunting. Andy is an active member of the open source community, and lives in the Chicago area.

Swaine’s World

A Team of Two
by Michael Swaine
Working with another person can change your perception of time.

Last issue James Duncan Davidson described his and Mike Clark’s project for helping photographers work at their craft every day, The Daily Shoot. Here’s a recent Daily Shoot assignment, delivered via Twitter: “2010/01/21: Quirky things often catch your eye and make for interesting art. Make a photo of something that makes you go ‘Hmmm’ today.” Several things about the project really appeal to me.

I like how it makes perfect use of Twitter. Then there is the idea of artists supporting one another, and the way it helps photographers to improve daily. But it’s not just photographers who need to work at their craft regularly. That’s an important strategy for writers and programmers, too.

The Littlest Workshop

Duncan’s article recalled to me a discipline that a friend and I set up years ago, a paired-writing program that really improved me as a writer.

Back in my grad school days at Indiana University, no matter what graduate degree program I was in (there were a couple of them), I considered myself primarily a writer. In the summers, I signed up for IU’s excellent writer’s workshops, where I got my work critiqued by writers like Ursula K. Le Guin and Clancy Sigal and Roger Zelazny, and was immersed for a week in intense daily writing assignments.

I’ve written about workshopping here before. Dick Gabriel’s book on the subject is worth a read (but is, sadly, out of print; a PDF version can be found here).

But here’s the problem with workshops: when the workshop is over, it’s nearly impossible to keep up the energy. You lose the intense concentration, the camaraderie, the external support for self-discipline. I missed all that when the workshops ended, and pondered how to keep the energy up.

One year, I actually did just that. With a friend I’d met in one of the workshops, I set up a program of weekly assignments that went on continuously for about a year. (I’d finished school by then and was repairing computers and writing code in one of the country’s first computer stores.)

Each week we met after work and did four things:

1. We came up with a new writing assignment that we’d both work on during the coming week.

2. We swapped our completed work from the previous week.

3. We presented our critiques of each other’s work from the week before that.

4. We ate dinner. (We took turns cooking.)

Each assignment was designed to be something we could complete in a week while carrying on our regular jobs. We also deliberately tried to target our weaknesses, giving ourselves assignments that would push us to improve.

The program had much of the intensity of a writer’s workshop. Every week we felt a great relief on turning in (and turning loose of) the current assignment. Then came the pain of having our previous week’s work critiqued, followed by the unbridled playfulness of brainstorming the topic for the next assignment over dinner and wine. It was something like a romance but without benefits.

But there was one huge benefit: I was working at my craft every day, and constantly learning from doing. Plus, this two-person workshop was easier to set up than a real workshop and didn’t have to end after some arbitrary number of sessions.

Pair Authoring

After noting the parallels with The Daily Shoot, I wondered if my two-person workshop idea might have some parallels with the Agile practice of pair programming.

Regarding pair programming, Kent Beck says (in Extreme Programming Explained): “Pair programming doesn’t mean that you can’t think alone. People need both companionship and privacy. If you need to work on an idea alone, go do it. Then come back....”

Pair programmers, Kent says:

- Keep each other on task.

- Brainstorm refinements to the system.

- Clarify ideas.

- Take initiative when their partner is stuck, thus lowering frustration.

- Hold each other accountable to the team’s practices.

The obvious difference with my mini-workshop (and with The Daily Shoot) is that there is no shared task. But there are similarities: keeping each other on task, brainstorming, working together to clarify ideas, and holding each other accountable. And there’s the obvious similarity that both pair programming and mini-workshopping get a second pair of eyes looking at your work. The big danger in working alone is that we all have our blind spots. Another set of eyes can often see what we can’t.

There’s another benefit of working with others that I haven’t seen discussed anywhere: something that has to do with the perception of time.

The Beat of Other Hearts

I wrote a novel in November, or at least a first draft of a novel. I did it through the NaNoWriMo program, and I know I wouldn't have completed it without that support, and I say this as a fiercely independent worker.

I like working alone. I’ve worked in offices where interruptions seemed to be my whole job. It bugged me no end, and was not so great for my productivity. But I’ve also worked at the opposite extreme: twelve hours a day alone in a house at the end of a one-lane road on a mountain ridge. Sometimes when my partner came home from her two-hour-each-way commute, I couldn’t account for my day. Oh, I’d done work, I just couldn’t reconstruct the day. I had no reference points in time to tie things to. This, too, was not good for my productivity.

The past decade I’ve been able to get away by myself or to work with others around, as I choose. Having two offices, separated by a driveway, helps. It also helps to be the boss, so that when I say I’m not to be disturbed when I’m in my home office, people actually listen. I get a lot done when I’m hiding out in the home office. But I get a lot done in my other office, with people all around, too. It’s just a different kind of work. The experience has made me understand that the mere presence of others is a clock, a frame that makes time measurable.

Shared Solitude

Writing, whether articles or code, is at its core a solitary activity. Or so I find it. But learning ways that we can support each other in our solitary work is empowering. And can be a lot of fun.

Michael Swaine created the position of Dr. Dobb's Editor-at-Large for himself in 1987. He's still at large and can be found writing at Dr. Dobb's. He is the editor of PragPub.

The Nostalgia of the New

Reflections on Apple’s iPad
by Chris Adamson
Do we look to the future to take us back to the past?

Apple’s detractors decry the hype in the lead-up to new products, but the company really generates little of that itself. It doesn’t have to. CNN.com’s technology section can reliably be expected to carry at least one Apple-related story in its top five headlines at any time. Some days, Apple news monopolizes the section, which may not speak well for the creativity and insight of the editors, but certainly reduces Apple’s need to spend its own coin on promotion.

Where the Hype Didn’t Stick

But here’s something interesting: I’m writing this on the day after the iPad announcement, and while the mainstream media has obsessed over the long-rumored tablet, it may not be nearly as big a deal among young people. My brief survey of the student newspaper websites of the top US technical universities—MIT, CalTech, Stanford, RPI, Michigan, and Georgia Tech—find not one reference to the iPad. Granted, these papers exist to serve their respective communities, featuring stories on this date like Stanford’s star running back going pro or MIT’s “Bad Ideas Competition,” but these papers typically pick up a collection of news and business wire writes to round out their offerings, and not one apparently saw fit to feature the iPad. Similarly, an intern for “All Things D” interviewed students outside Stanford’s computer science building the day after the iPad announcement to gauge interest; his resulting video consists of one indifferent reaction after another.

Does this mean that Apple fanboys are all old geeks? Maybe, but there’s more to it than that. Writing in Play magazine, editor Heather Anne Campbell recently presented a remarkable thesis that fetishizing these product rollouts, participating in the manufactured excitement, is actually a form of nostalgia. Her argument is that we often find ourselves seeking the joy of discovery, the surprising newness of things, that was so common in our youth, when everything was new to each of us. We remember not the mundane day-to-day details, but the special moments of delight we once had, like seeing “Star Wars” or hearing “American Idiot” for the first time, of seeing our team come from behind and beat a favored opponent, or making a long road trip with friends.

Geek Meets Gadget

Repeated experience gives us the power of anticipation and prediction, and with it, terrible boredom. We’ve seen this story before: boy meets girl, boy loses girl, boy gets girl back. And if we’ve read too much, we even identify those as “plot point 1,” “plot point 2,” and “climax,” and we can set our watches to the necessities of the plot.

And this is where the nostalgia comes in. We’re aching for something new, something different, something to take us back to the idealized joys of our youth that we’ve invented for ourselves. And so, in a crazy irony, we look to the future to take us back to the past.

We want to touch the iPad and feel like it’s 1984 again, and we’re debating with classmates about the 128 KB Macintosh, and whether it really stands a chance against the Commodore 64. We look to this device to open new doors to us, to give us a chance to experience something new, and to get us excited about things again.

That’s a big burden to put on a $500 product of aluminum, glass, and silicon.

Chris Adamson is a writer, editor, developer and consultant specializing in media software development. He is the co-author, with Bill Dudney, of the recently released Pragmatic Bookshelf book iPhone SDK Development. He has served as Editor for the developer websites ONJava and java.net. He maintains a corporate identity as Subsequently & Furthermore, Inc. and writes the [Time code]; blog. He wrote about writing apps for the iPhone in the second issue of this magazine. iPad photo courtesy of Apple.

iPad Roundtable

A Dozen Perspectives on Apple’s iPad
interviewed by Michael Swaine
Is Apple’s latest creation a game changer? Some smart Apple watchers weigh in.

“It’s a dog.”

“It’s a game changer.”

“It’s just a big iPod Touch.”

“It will fail because it lacks [a camera, multitasking, support for Flash, a standard USB port].”

“Once you actually get your hands on it, you’ll understand.”

“iPad? Really? Does Apple have no women in marketing?”

There was no lack of reaction to Apple’s announcement of the iPad in January. Much of it was uninformed, some of it was thoughtful, and taken as a whole it was just inconclusive.

Apple clearly believes it has come up with something of importance in the iPad. I wanted to get some clear thinking about the device, so, after Steve Jobs demo’d Apple’s latest creation, I checked in with about a dozen really smart people. (See their credentials at the end of the article.) They included iPhone developers, Apple watchers, writers, and editors. I asked them to think hard about a few fundamental questions regarding the new device. The result is this roundtable discussion on the significance of the iPad.

How Big a Deal Is the iPad?

Tony Bove: “Big, big deal. It’s a game changer for the Internet as a publishing medium, for the software industry with regard to applications, and for the mobile device industry with regard to the overall digital media experience.”

Alan Smithee: “I’m not good at predicting the market. Might have a better idea after I fondle (er, use) one. Very curious to know about the keyboard, about the feel of the thing, about how apps work—are they still sandboxed? how do I save documents? I tend to be an empiricist—the market will tell us if Apple did it right. ‘It’s like dog food. Until the dogs eat it, you’re not sure.’”

Marcus S. Zarra: “This is a huge development. As a developer I am already considering this device as a replacement for the MacBook Air that I carry around with me everywhere I go.”

Nicolas Bourbaki: “I think this will do for the netbook segment what iPhone did for the smart phone, i.e. redefine it. The market for netbooks is smaller than for phones but over time I think the iPad will penetrate where the netbook has/would not. So yeah, I think it’s huge.”

Ed Burnette: “I’ve got mixed feelings about it. It looks like a very well done, very polished product. I can’t wait until someone does a tear-down on it because I get into that sort of thing, seeing all the parts they used. And I’m curious about the Apple A4 chip. So as a gadget lover, naturally I want one to play with.”

Alan Oppenheimer: “Oh yeah, it is a big deal. Probably not iPhone big, but still pretty big.”

Isn’t It Just a Big iPod Touch?

John Jainschigg: “Pundits are now devaluing Apple’s latest brainchild, calling it ‘a big iPod Touch.’ To these fickle opinioneers I would ask two questions: 1) What else could the iPad reasonably have been? And 2) Isn’t ‘a big iPod Touch’ rather a powerful idea?”

James Duncan Davidson: “It’s not just a big iPod Touch. The people who are pushing that position aren’t in the device’s target market or are just being dismissive. It’s a huge deal. It hits the value proposition that the netbook was trying to, but does it in a manner that will be more successful.”

Alan Oppenheimer: “Will it redefine the mobile device market? Or is it just a big iPod Touch? Neither. It’s most likely a new class of device. Sort of like the iPod was, actually. Both weren’t really new, but were to the general public. And Apple made their UI great.”

John Jainschigg: “I think ‘a big iPod Touch’ is a very powerful idea, and that the iPad constitutes a watershed moment in how the entire economy, experience, benefits, and use-case-collection for net-connected computing works for the average person. It’s very premature to project an Apple win here, since Google’s Android, Moblin, and Microsoft offerings now play aggressively and with increasing competence in this space. But the mockretariat is wrong to perceive this as anything but a significant event.”

Who’s Going to Use It?

Alan Oppenheimer: “Where will it be used? Good question. But there’s so much ‘there’ there, it will be. Education? eBooks? Navigation? In my kitchen? Health care? Many possibilities.”

Marcus S. Zarra: “As other professions realize the power and capabilities of this device, they will be able to commission applications specific to their work needs. Client legal files at your finger tips, X-ray and other scans available to doctors, insurance forms, the list simply does not end.”

Tony Bove: “For people who use a single laptop with a DVD drive, etc., this won’t be attractive for awhile. But laptops are far more fragile and prone to mechanical failures, and become obsolete in about 3 years. By then, the software world will have changed to support more low-cost apps, more videos will stream from the Internet, and you won’t care about having a DVD drive on the road anyway—you’ll want an iPad.”

James Edward Gray II: “I don’t think the iPad is really targeted at über geeks like me. To me, it is pretty much a big iPod. I’m more inclined to want the power tools of my trusty laptop over that. To others, though, perhaps even my parents, it may be all they really need. They don’t care how open the platform is and they won’t miss not having a compiler. They just want simple computing and I think the iPad really pushes the envelope there.”

John Jainschigg: “iPad describes a paradigm already understood and esteemed by every iPhone owner (who will nevertheless purchase iPads too). And it will inherit from iPhone a huge and essentially automatic impetus towards ‘technology populist’ tolerance in the enterprise, as well as likely becoming—by a similar inevitable-as-gravity process—the device of first choice among select vertical markets. For example, telemedicine, which will quickly discover that while iPhones are hard to secure, 3G-less iPads are much easier to build HIPAA-compliant wireless apps around.”

What’s the Real Significance of the iPad?

Dave Thomas: “When I first watched the announcement, I felt somewhere between disappointed and embarrassed. Twenty minutes of Steve Jobs showing us that if you click links in a browser a new page appears seemed fairly lame.

“But talking about it afterwards with my family, I realized that I’d missed the point (and perhaps Apple couldn’t find a good way to make the point). I’m guessing that the thing about the iPad isn’t what it does, it’s what it doesn’t do. I’m guessing that it becomes invisible when you’re using it. I’m guessing that the tactile display becomes second nature after a couple of minutes, and what’s reported to be a fast processor reduces those returns-to-reality you experience when things go slowly.

“So I’m guessing that the iPad is significant because it represents a lower-impedance interface to the ’net.

“For me, the key sentence in the presentation was when Jobs was talking about Fandango, and said something like ‘you’ll pick up the iPad in your kitchen and book a ticket.’ And that’s the way it will be: instant on access to the stuff you need.”

Andy Hunt: “Like most technologies, it will start off as a toy and curiosity. There will be a few cool new uses and applications (small a), but the huge sea change will come over time.

“Ultimately, it will be a very big deal, and redefine how we interact with computing devices. Think about it: no mouse, no stylus, no fixed keyboard. Want a Dvorak keyboard? Or a customized layout for a sophisticated application such as Final Cut or Logic? It’s just code.

“We’re looking at the beginning of the true direct-manipulation interface. No more wiggling a spatially disconnected mouse or scribbling on an eternally blank tablet with no feedback. I think the effect of such an immediate, in-your-face interface will be pervasive and long lasting, in ways that we’re only just beginning to imagine.

“There’s an old story about requirements gathering that says you can’t gauge the needed capacity of a new bridge by counting the number of people who swim across every day. In winter. But once the bridge is there, a whole new ecosystem is created. New opportunities, new possibilities emerge from the new context.

“And I think that’s exactly what we’ll see here. Not at first, but over the course of time, this style of tablet device may well become the primary computing interface for most people. Perhaps it uses your desktop computer (now moved into the back of the closet) for processing power. Maybe it becomes a simple front end for the net, or processing power will grow on the device to replace the laptop. Maybe. At any rate, I can see this interaction style replacing the standard keyboard/mouse/screen arrangement for most people most of the time.”

What Are the Opportunities for Developers?

Nicolas Bourbaki: “The developer opp is similar to iPhone but more. There is more screen real estate to work with, so the user interaction with their data becomes even more physically oriented. The ‘information appliance’ discussion that was happening a couple of years back is where the iPad really shines.”

Marcus S. Zarra: “This device is going to fuel development for the next few years. Just like with the iPhone, we Apple-focused developers are now at the forefront of everyone’s mind. Every company out there needs Objective-C developers and they need them badly. There is simply no better time to be an Objective-C developer than right now. When the iPhone SDK came out, things were great. But I have a feeling we haven’t seen anything yet!”

Tony Bove: “The iPod touch/iPhone/iPad ecosystem is also a publishing medium for software. This changes the game for productivity and Office-like applications, which are now 1/10 the price (Keynote, for example, is $10, while PowerPoint is about $100). Opportunities are wide open for inventions that build on all the strengths of iPhone apps and take advantage of the larger display. Games are huge—this is the perfect game machine. Content becomes more important (yeah!) as a differentiator.”

James Duncan Davidson: “I think the most powerful iPad applications will be those that combine elements of the network with native application features. The iTunes store is the clearest example of this, of course.”

Alan Smithee: “Better immersive apps. Interesting multiplayer apps on the same screen (air-hockey, anyone?)”

What Are the Challenges for Developers?

Kent Beck: “The biggest implication I see for application developers is whether to write native applications or HTML5-based applications. There are huge pluses either way and some serious minuses. It’s great to have Apple handle billing and distribution, but the medieval release process is a giant granite boulder in the middle of Innovation Street. With HTML5 you get freedom from a single platform and the ability to release multiple times per day, but you have to handle the business side yourself and you lose some performance.”

Alan Smithee: “Dealing with the wave of people who didn’t leap on the bandwagon before and will now flood the developer market for the new New Gold Rush.”

Alan Oppenheimer: “More sales versus more work :) The biggest challenge so far is looking like maintaining one code base.”

Marcus S. Zarra: “To exceed the examples that Apple has given us in their iWork suite. Make no mistake; while these are great applications on their own, they have also thrown down the gauntlet to all of the iPhone/iPad developers out there, saying: Here is how it is done; this is the kind of attention to detail and great design we want to see.

“I do have one severe concern for the future of the iPad and that concern is completely controlled by the developers. We must avoid the death spiral of pricing. Lowering your price to combat competition never wins in an open market. Fight on quality, not price.”

Tony Bove: “Apps have to fit into a consumer price structure, so the challenge is to create bite-sized apps that do different functions (and charge for them separately) rather than to create monolithic, higher-priced apps that try to do everything (and often fail). Expensive applications that would lock you into their formats (such as Word and PowerPoint) are now replaced by apps that handle standard formats and cost one-tenth the price. Lock-in is no longer a marketing tool, which is good for the consumer, but a challenge for software companies to make money.”

James Duncan Davidson: “Learning how to design for multitouch and the display format is critical. Even more critical really than with the iPhone. The iPhone is a one-hand device. The iPad is, I think, going to expand to be able to be used well with two hands. Doing that well will be tricky, but will reward those who sort it out.”

Andy Hunt: “We used to tell people not to write C in Java, or Java in Ruby, or whatever the latest technical migration happened to be. And that’s the challenge here: don’t write desktop apps, or even web apps, for the iPad or other tactile tablets. It’s a new world.”

Is iPad a Kindle Killer?

David McClintock: “I must say that the Kindles I see on the subway look a bit primitive now, like black-and-white TVs.”

Ed Burnette: “I know it’s not E Ink like the Kindle, but for me, I’m used to reading things on LCD screens all day anyway. As long as the screen is big enough (and it is on the iPad and some of the new Android tablets) and the resolution is high enough, and the display is bright enough, then I’ll be happy with it.”

Nicolas Bourbaki: “Probably does kill the Kindle, not right away, but the iTunes buying experience is hard to beat. The graphically rich iPad book reader blows away the flat dual-tone Kindle.”

Tony Bove: “It marginalizes Kindle and others like it—devices that don’t offer multiple types of content can reach only a small, segmented market. But Amazon separated its hardware division from book sales. Amazon understands the book market and offers an excellent recommendation system, and could easily sell more books on the iPad (with a Kindle app) than Apple will through its new iBookstore.”

Andy Hunt: “It might kill the Kindle outright, but I think it’s most likely that users will focus on the Kindle for the experience of novels and reading on paper-like E Ink, and focus on the iPad and its successors for a richer, full-color and multimedia experience. Sort of like books versus magazines: different beasts with different goals.”

James Duncan Davidson: “The Kindle is a great idea in a barely acceptable implementation. I’ve loved my Kindle, but having a device that’s a superset of what the Kindle does means that I’ll be selling or giving away my Kindle soon. After all, the iPhone Kindle app is already there. You have to think that Amazon is evaluating what to do.”

James Edward Gray: “Apple has upped the ante and you now need to do more than just read books. There is definitely some competition in the space now and that’s probably good for everyone.”

What Does It Mean for Books and Media?

David McClintock: “This is an Age-of-Aquarius moment for publishing. Authors will have more freedom (and some expectations) to realize those multimedia dreams of the 90s.”

Tony Bove: “The ecosystem helps creators monetize content, such as books, and possibly magazines and newspapers, and guarantees a healthy advertising market. Books may enjoy more sales, and at slightly lower prices; textbooks may drop in price drastically. Newspapers may actually come back to life if they can take some market share back from Google, craigslist and eBay—or find ways to monetize connections to/from these services. We will see pay-walls for the biggest newspapers and magazines, but that may be temporary. Ad sales will be boooooooming. TV shows will be more ubiquitous on the web (finally) and include lots more live broadcasts. And yes, most of this is due to the mobile device explosion, but the iPad will kick this into overdrive. People may actually read more. This device brings back conventional media in a truly accessible form.”

Ed Burnette: “The other day I was buying a paperback book for my wife, I believe it was $7.95 with free shipping from Amazon. Just for fun I looked up the Kindle price: $9.95. In what universe can it be more expensive to download some bits as compared to printing and binding a book, shipping, and warehousing it at the bookseller, then shipping it again to your house?! At Pragprog, eBooks are 30-40% less than the paper version. Books have gotten so expensive lately, especially the paperbacks I used to read all the time. If book stores could make eBooks—to pick a nice round number—half the price of paper books, that would really stimulate demand.”

David McClintock: “The iPad fits well between smart phones and laptops, as Steve Jobs demonstrated. But I’m curious about the other side, between laptop and TV. It may be perceived as an entertainment device, starting with Steve’s leather chair. That’s certainly not a bad place to be, especially if it’s aimed at the ‘personal time at home or on the road’ use case.

“But to swallow the laptop, the business use case has to be made: quick slide shows and videos in impromptu meetings; portability; data entry ‘on the floor’ and in the field. But with only one app open at a time (for now), business users (and students) may balk. And in meetings, the initial gazes of admirers may eventually turn to suspicious looks.”

Is This a Big Boost for the EPUB Format?

Ed Burnette: “The fact that the iPad uses EPUB is fantastic. EPUB is the best format right now for books. It has good styling (unlike MOBI), it reflows well (unlike PDF) and it’s an industry standard. Everybody uses it except Amazon with the Kindle. They should switch. Some things are holding back eBook sales though. The first is a universal format. Pragprog uses PDF for PCs, MOBI for Kindle, and EPUB for everything else. There should be just one format, and I should be able to take one book and read it anywhere. It’s annoying and inconvenient not to be able to do that.”

Marcus S. Zarra: “This is a huge boost for the EPUB and I hope that Amazon is smart enough to recognize that their core business is selling books and it is in their best interests to support EPUB directly.”

James Duncan Davidson: “As far as media goes, that part’s still unclear. EPUB is interesting, but what will be more interesting is what formats open up that allow richer authoring for the device. I’m surprised we didn’t see something like the iTunesLP format except in a subscription format. We still might.”

Tony Bove: “The EPUB format will certainly get more visibility, but many publications (not books) will opt for custom apps or HTML5 pages.”

What Is the iPad’s Greatest Shortcoming?

Alan Oppenheimer: “No multitasking.”

Alan Smithee: “I was surprised by the lack of a camera. Flash? A colleague said, ‘Doesn’t even support Flash? Duuuuude, that’s a feature.’ Just figured out why it has no camera: AT&T would have refused to offer cheap 3G, because people would be videoing non-stop, saturating their net. I wonder if Apple will approve apps that even receive video during chat.

Andy Hunt: “Weight. The Kindle is better than a laptop because it’s easier to read in bed or a recliner. Holding the iPad for any length of time I think will be an issue. But not an intractable one; it will surely get lighter over time with new and better materials, etc.”

Tony Bove: “No multitasking announced yet. But I assume it will happen shortly, and you’ll be able to run several iPhone-sized apps at the same time. No video conferencing or video chat (yet). I don’t really need a camera or video camera in the device (those are already in my phone, which of course is an iPhone), but video-conferencing would be a nice addition and take advantage of the full screen. No GPS (although it probably offers the same location services as an iPod touch, through Wi-Fi). These are shortcomings of the current version; I expect all of these to be part of the iPad for 2011.”

James Duncan Davidson: “I think the lack of an iSight camera for doing video chat is an oversight. Anything else I can think of is a more minor thing. For example, I’d like a built-in SD card reader for removable storage. There’s an optional dongle bit for that, but if it was built in, it’d be nicer. It’s nothing that can’t be fixed in a second rev though. Of course, in use, we’ll find out if there are other shortcomings.

“I’m curious about sync and how documents are handled. A huge thing I’m waiting to see is how well something like Dropbox can work with the iPad. Dropbox has become a major part of my computing experience and I hope it can be leveraged there in a deeper way than just the viewer app that is on the iPhone.”

Ed Burnette: “The issue of multi-tasking is largely overblown. People say, ‘Well, I can’t have Twitter and email (or whatever) going at the same time’ and dismiss it. But even with Android, where you can have all that stuff going at the same time, you can only see one at a time. As a user, you can’t usually tell if there is multi-tasking go on, or if you can just really quickly switch between two or more tasks. Let’s say you’re working on a presentation and you need to look up something on the web. On both Android and iPhone/iPad you press a button to go to the home screen and select the browser app. Does it matter to the user if the presentation app is still running in the background as opposed to having been paused while the browser is up? Not really, unless the background app takes up memory or CPU time and makes the foreground app slower. In that case either the user or the system may want to go kill the background app anyway. That’s why app killers are so popular on Android. Little things like programs that watch for incoming email or chat messages, or play music, make sense to run all the time and are very useful. Apple accommodates that a little, but doesn’t go far enough. Android is wide open, but this gives apps more rope to hang themselves with.”

Marcus S. Zarra: “The biggest shortcoming of the device has more to do with the web than it does with the device itself. This is the reliance of companies on Flash technology. Apple has made it clear they do not want Flash in their devices. Companies need to realize that Flash is a terrible tech and move away from it. Once they do, we will be able to watch more video on the iPad than we can currently. Right now, we are severely limited in our video viewing options due to the current war going on. This does not even mention the other applications of Flash, such as games. Imagine being able to play Farmville on your iPad while traveling cross country in a car or train. That is currently not possible due to their reliance on Flash.”

Dave Thomas: “I’m annoyed that we’re being subjected to the V1.0 marketing game—I want the cameras, and the Verizon deal, and everything else. But I think that, assuming they keep the development on track, this style of device will indeed be something we just leave lying around the house, on hand for whenever we need to plumb into the aether that now holds our brains.”

What Is Its Greatest Strength?

Andy Hunt: “An improved interface paradigm over the forty-year-old mouse/keyboard/screen arrangement that we’re used to. I really can’t understate how important that shift will be over time.”

Tony Bove: “The iPad is fast. Its processor, A4, is a System-on-a-Chip, or SOC. This is one of the main reasons why iPad can deliver a lively Internet experience. It’s also good at managing the power. But the real advantage is, of course, the OS and the ecosystem of stores and apps. Other strengths have nothing to do with hardware/software but with the ecosystem itself: 125 million accounts with credit cards in iTunes/App Store, 75 million people already know how to use it before they even get it.”

James Duncan Davidson: “The strength of the device comes from the combination of an API, the screen size, Multi-Touch, and the performance of the device.”

Alan Oppenheimer: “Multi-Touch (or just touch). Plus Apple’s polish. Plus the ability to run iPhone apps.”

Nicolas Bourbaki: “Multi-Touch interface first, then weight/size, then processing power.”

Alan Smithee: “Multiple strengths: Cheap net over cell network is intriguing if AT&T can hold up. Coolness factor. Price. Cool way to watch movies (I watch most movies on my laptop).”

Marcus S. Zarra: “The form factor. The flood of app discussions that have started since its announcement has been incredible. For me, being able to use the iPad on a plane is going to be a huge improvement over my current setup. The thought of multiplayer board games at my fingertips is going to be a real pleasure. Being able to work on my next book while I am in coach on a cross-country flight is something I especially look forward to. There is no doubt that this device is a game changer.”

Ed Burnette: “This is clearly a Steve Jobs product. He gets a consistent view of how things should work in his head and stubbornly insists on everything being done that way. Which is great if you happen to share his sensibilities. Usually they turn out to be spot on with what a lot of people like, so his products feel natural to use.”

Will You Buy One?

Andy Hunt: “Yes. Will I use it as often as my laptop or iTouch? That remains to be seen. Given its lack of computing power, I would love to try using it over VNC/Remote Desktop to control a full-power desktop computer over WiFi. With enough bandwidth, that could really get you the best of both worlds.”

Alan Smithee: “I need to fondle one first. Then my partner wants one. Then probably not, but I’m intrigued by the idea of a lightweight device that does much of what my laptop does.”

Alan Oppenheimer: “One? We need at least a couple just for development.”

Kent Beck: “I doubt it, unless I want to develop for it. My 13" MBP gives me many of the same portability advantages. The Touch is a superior music device because of size. My big TVs are superior for family video viewing. And AT&T doesn’t have coverage out here in the sticks. I don’t possess the bundles of needs the iPad is supposed meet.”

Tony Bove: “No question about it. My next ‘laptop’ is this. I can see my computing needs taken care of with one desktop system at home that’s always on and connected (with all the trimmings to create multimedia content), and my iPad and iPhone on the road.”

Marcus S. Zarra: “As soon as Apple allows me to give them money I will be ordering at least one.”

Nicolas Bourbaki: “We are most likely going to buy the $850 one for my wife with the $15 data plan to start. We might end up with 7 or 8 by the end of 2011 (one for each member of the family).”

James Duncan Davidson: “Does a monkey have a tail?”

The interviewer feels compelled to point out that, no, not every monkey has a tail. And so we conclude, as we might have known we would, inconclusively.

Kent Beck is the founder and director of Three Rivers Institute. His contributions to software development include patterns for software, the rediscovery of test-first programming, the xUnit family of developer testing tools, and Extreme Programming. He is the author/co-author of Implementation Patterns, Extreme Programming Explained: Embrace Change 2nd Edition, Contributing to Eclipse, Test-Driven Development: By Example, Planning Extreme Programming, The Smalltalk Best Practice Patterns, and the JUnit Pocket Guide. Nicolas Bourbaki is a highly respected author and developer who has been using Objective-C since the NeXTStep days and who, given his relationship with Apple, chooses to appear here under a pseudonym. Tony Bove is a pioneer in desktop publishing and publisher of Tony’s Tips for iPhone Users Manual (iPhone app) and co-author of iPhone Application Development All-In-One Desk Ref. For Dummies and the forthcoming iPad Application Development For Dummies. Ed Burnette is a software industry veteran with more than 25 years of experience as a programmer, author, and speaker. He has authored numerous technical articles and books, including Hello, Android from The Pragmatic Programmers. He writes the Dev Connection blog for ZDNet, and is the creator of Planet Android. James Duncan Davidson (@duncan) is a photographer and recovering software engineer. He travels the world making photographs at interesting conferences such as TED, Web 2.0 Summit, and RubyConf. His website is duncandavidson.com. James Edward Gray II is a Ruby and Rails programmer. He is the author of TextMate: Power Editing for the Mac. John Jainschigg has spent 25+ years in online and print media as Publisher or Editor in Chief of market-leading b2b and b2c technology titles. He founded the first global conference for virtual world developers (Life 2.0) and has been a virtual worlds consultant/vendor in various contexts to IBM, Sun, Cisco, Microsoft, and others. David McClintock founded Wordsupply, a writing, editing, and social media services company, in March 2000. He is the former vice president of Dorset House, a publisher of books on software development and team management. In addition to other activities, he serves as a developmental editor for Pragmatic Bookshelf. Alan Oppenheimer was responsible for many of AppleTalk's protocols, in both the Macintosh and the LaserWriter printer, and is coauthor of the book Inside AppleTalk. Alan left Apple to found Open Door Networks, a Macintosh Internet utilities company, focusing on Internet security. Most recently, Alan has been spending a lot of time with the company's iPhone products. Alan Smithee is another highly-respected author and developer who has been using Objective-C since the NeXTStep days and who, for reasons of his own, chooses to appear here under a pseudonym—which, incidentally, anagrams to Inhale steam. Marcus S. Zarra is the owner of Zarra Studios LLC and the creator of seSales and iWeb Buddy as well as being a co-author of “Cocoa Is My Girlfriend",” a wildly popular blog covering all aspects of Cocoa development. Marcus is the author of Core Data: Apple's API for Persisting Data on Mac OS X. Andy Hunt and Dave Thomas are also known as the Pragmatic Programmers, for their epynonymous first book in 1999, The Pragmatic Programmer. They are founders of the Agile software movement, co-authored the Manifesto for Agile Development, and are my bosses. iPad photo courtesy of Apple.

Barriers to Agility

How to Thread the Barriers to Agility when Failure Is Not an Option
by Johanna Rothman
How do you select a pilot project that will maximize your chances for learning and success?

When a company decides to make the transition to Agile, it’s making an investment in its future. Some companies make a serious investment in their business and people by funding professional help for their Agile transition. But many companies can’t or just don’t.

When the company doesn’t provide professional help with the Agile transition, it leaves people on their own to learn how to make Agile work in their organizations. They might read books, attend conferences, read newsgroups, and/or chat with friends. All to the good. You can learn a lot by reading books, and you can learn specific skills and learn about other people’s experiences by going to conferences. Using newsgroups and your colleagues to bounce ideas off is a great idea.

But when failure is not an option for your Agile transition, it’s time to get some coaching and learn how to do Agile right for your organization, product, and team. And that seems to be a problem for many companies.

For several years now, Gil Broza and I have been giving talks at conferences about common problems we’ve seen in how different organizations transition to Agile. We’ve seen quite a number of Agile Titanics: maiden Agile voyages that sank. Here’s some advice based on our experience coaching Agile transitions.

Select the Right Pilot Project

It’s easy to select the wrong pilot Agile project. Select a tiny project with just a couple of people for a month or so and you won’t learn how to experiment with evolutionary design, or how a team works together to solve problems. Select a big project and you’ve got a mess because too few people have experience with incremental work inside timeboxes. The coordination of a large project is hard, and doubly so if it’s your first time.

Think of Goldilocks when you select your pilot Agile project: the project has to be “just right” for size and risk. Let’s get specific: the project must be large enough that it requires about four to six people for at least three months.

Can the project be larger? Yes, up to nine people. More than nine people on a project and they’ll break into sub-teams—or worse, cliques. If the project is longer than six months or so, you run the risk of being the only Agile project in a waterfall world—an uncomfortable place to be, as a pilot project.

Can the time frame be shorter, or the project smaller? Not really. Shorter than three months and you don’t have enough experience with how your organization imposes or manages the obstacles that the team encounters. Fewer than four people and you don’t have a project with enough risk, so you won’t be able to see how Agile manages risks.

Your pilot project is the project that helps you see the obstacles to your organization implementing Agile. You want to learn from it, in the same way that the project team learns from each iteration. Make it too small or too short or too risky or too safe and you won’t learn enough about how Agile works for you.

Selecting the right project isn’t enough to prevent an Agile Titanic. You need a team who can do the work.

Select the Right Pilot Team

I’ve seen a number of pilot Agile teams composed entirely of developers. When they get to the end of an iteration, they count all the work as done, because their work is done. But the testers have not tested, the writers haven’t written any documentation, and there’s plenty of other work not done yet.

For those of us with Agile experience, the idea of a single-function team piloting Agile doesn’t make sense. But for people coming from years of Waterfall experience, it seems reasonable. So they set themselves up for failure with a single-function team, and when they finish several iterations, or even their part of the project, they don’t understand why they didn’t see different results from the published literature. “But,” they say to me, “we were using Agile. Why didn’t it work? What’s wrong with Agile?”

That’s the wrong question. The right question is, “Why aren’t all the roles across the organization represented on the team?”

A pilot Agile project needs the same team makeup as a real Agile team—that is, the team either has representatives from all the functions in product development, or the team members are able to perform that work. If you have testers on other projects, you need testers on the Agile team. If you have a release team in your organization who makes the builds happen, you need someone to make the builds happen on your pilot Agile team. If you have a DBA to do all the nasty query work, you need someone to do that work on the Agile team.

Because the team has to finish the work they committed to for an iteration, and the work has to be releasable, they need everyone they would normally need for a project on an Agile team. In fact, you could say that the ability to create a cross-functional team—and keep the team together for the entire duration on this project and only this project—is a test of management’s commitment to Agile.

If you can’t manage to create a small cross-functional team working on just one project, you don’t have the right environment to start Agile.

You have other options for lifecycles, and you should take a look at the lifecycle chapter and appendix in Manage It!

When you select a pilot team, follow these principles: Make sure all the roles are represented on the team. Make sure the team can stay together for the entire project. And, for the pilot project, make sure the team is all in one physical location. Yes, you can do Agile with distributed teams, but it’s much harder when people are distributed than it is when everyone is all in one place. It’s easier to learn Agile with a team that’s all in one place.

Other Pilot Agile Suggestions

Gil and I have put together a teleclass series that reveals these issues and how to resolve them. In a recent free teleclass we taught how to select a proper pilot Agile project, how to select the team to work on that project, and how to help the team work together as a cohesive self-organizing team. We also discussed what to do if you had no control over the project or team selection.

On the call, we discussed four other characteristics of the pilot Agile project. We also discussed what to do if your project doesn’t fit into that sweet spot: large enough to learn from but not so large that you have a mess. You have some options: for a too-large project, use Agile on one chunk and learn from it. For a too-long project, use interim releases. For a too-small project, see if you can gather more work and make the project bigger.

That call is over, and the replay is available here.

We wish you success in your Agile transition and we hope you never encounter the iceberg.

Jolt Productivity Award-winning author Johanna Rothman helps leaders solve problems and seize opportunities. She consults, speaks, and writes on managing high-technology product development. She enables managers, teams, and organizations to become more effective by applying her pragmatic approaches to the issues of project management, risk management, and people management. Johanna publishes The Pragmatic Manager, a monthly email newsletter and podcast, and writes two blogs: “Managing Product Development” and “Hiring Technical People.” She is the author of several Pragmatic Bookshelf books, including the recently published Manage Your Project Portfolio: Increase Your Capacity and Finish More Projects.

Better CSS with Sass

Make Your Website Stylesheets Sassy
by Brian Hogan
Brian shows off some of the magic of Sass, a DSL for generating stylesheets.

I hate CSS.

Don’t get me wrong. The concept of CSS, where we keep our presentation separate from design, is great. CSS lets me do some amazing stuff in terms of presenting content to my visitors. But the markup language itself is just awful, and anyone with even a little programming experience gets the feeling that it’s a half-finished implementation.

If you want a border and a titlebar background to share the same color, you have to hard-code that value all over your stylesheet because CSS has no support for variables. If you want to share CSS style rules between multiple elements, you’re going to end up pasting those rules multiple times. If you want your unordered lists in sidebars to look different from unordered lists in your main content, you have to write long scoped selectors. It just doesn’t seem right, and now there’s a solution: Sass.

Sass is a DSL for generating stylesheets. It’s written in Ruby, but it generates standard CSS files that any web browser can understand. That means that you can take advantage of Sass whether you’re working with Rails, ASP.NET, Python, PHP, or static HTML.

How It Works

First, you need Ruby installed. On a Mac, you probably have everything you need, and if you’re on Windows you can snag the RubyInstaller for Windows. Sass is actually part of the Haml package, so to install it, you install the Haml gem. From a terminal, type

gem install haml

That installs everything you need to work with Sass. Let’s try out a really simple example to make sure everything works.

Open up your text editor of choice and type in this code:

h1

color: red

p

line-height: 20px

font-size: 14px

When you type this in, be sure to keep your indentations the same. In this example, the h1 and p selectors are not indented, but the lines below are indented with two spaces. You have to be consistent in your files and you have to be sure not to mix tabs and spaces in the same file. It sounds a little rigid at first, but there’s a reason for it which you’ll discover very quickly.

Save it as test.sass. Now drop back to the command line and type:

sass test.sass > test.css

This generates a regular CSS file that looks like this:

h1 {

color: red; }

p {

line-height: 20px;

font-size: 14px; }

So, Sass saves you from having to use opening and closing curly braces and semicolons. Mildly useful. Yes, but that’s just the very beginning. Let’s build something more complicated.

Rounding Corners with CSS3 and Sass

CSS3 makes it really easy to round corners on elements. In this example, we’ll use Sass and CSS3 to make a rounded callout box with a grey background.

The HTML markup for our callout box is a single paragraph tag wrapped by a div with the class of callout

<div id="callout" class="rounded">

<p>

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do

eiusmod tempor incididunt ut labore et dolore magna aliqua.

Ut enim ad minim veniam, quis nostrud exercitation ullamco

laboris nisi ut aliquip ex ea commodo consequat.

</p>

</div>

Basic Rounded Corners

In order to make it work in Firefox, Chrome, and Safari, you need to define multiple rules like this:

border-radius: 5px;

-moz-border-radius: 5px;

-webkit-border-radius: 5px;

Let’s define a CSS rule with Sass that rounds the corners of any element that has the class of rounded.

.rounded

border-radius: 5px

-moz-border-radius: 5px

-webkit-border-radius: 5px

Notice that once again there’s very little difference, but we can take this and greatly improve it.

Using Variables

I always found it odd that CSS didn’t have support for variables. We use numbers and values so much when we design with CSS that it seems like a no-brainer. We’ve defined the corner radius three times in our previous example. Let’s use Sass’s support for variables to remove that hard-coded value.

!radius = 5px

.rounded

border-radius = !radius

-moz-border-radius = !radius

-webkit-border-radius = !radius

There’s a slight syntax change here. You declare variables by using an exclamation point at the start of the line. You assign the value using the equals sign, and when you use the variable in your rule, you also use the equals sign instead of the colon.

This is wrong:

border-radius: !radius

This is right.

border-radius = !radius

With the radius stored in a variable, we’re free to tweak the value of the radius as we design.

Variables also support math. We could do something like this:

!measure = 20px

!radius = !measure / 4

!font_size = !measure - 8

!h1_size = !measure + 4

You can leverage this to easily define your font sizes and even your color scheme. Our callout needs a background color, so let’s define that as a variable and add it to our definition. We’ll also add a padding to the callout, which we can set to double the radius value.

!radius = 5px

!callout_background = #ddd

.rounded

border-radius = !radius

-moz-border-radius = !radius

-webkit-border-radius = !radius

background-color = !callout_background

padding = !radius * 2

Variables make it really easy to manage measurements and colors. But watch how we can take reuse to the next level.

Sharing Code with Modules

We’ve committed a bit of a sin with our HTML markup. We’ve tied the presentation to the content. Our rule applies the rounded corners to any element with a class of rounded, but really, classes in HTML aren’t supposed to expose the presentation details. Using a class of rounded is kind of like using a class of red_text. You may decide later on that you don’t want callouts to be rounded, or that you don’t want text to be red. You don’t want to have to go through your markup and change it all.

We can solve this problem with Sass by defining a module for the rounding rules which we can easily reuse wherever we’d like.

We declare a module by starting the line with an equals sign, and we place our rules beneath it. We then apply it by using the plus sign. Having done this, we can then change the style rule to apply directly to our callout element. Our Sass file looks like this now:

!radius = 5px

!callout_background = #ddd

=rounded

border-radius = !radius

-moz-border-radius = !radius

-webkit-border-radius = !radius

#callout

+rounded

background-color = !callout_background

padding = !radius * 2

We’ve now removed the need for the rounded class on the element and in the stylesheet.

Styling the Paragraph

Sass uses whitespace indentation to nest rules beneath selectors, but it also uses this indentation to scope selectors. With CSS, to apply a specific style to the paragraph within our callout section, we’d write this selector:

#callout p

With Sass, we place the paragraph selector beneath the selector for the callout.

#callout

+rounded

background-color = !callout_background

padding = !radius * 2

p

line-height: 20px

font-size: 14px

When we generate the CSS, the selectors will be properly generated. If you’ve ever needed to scope selectors within various regions, you can start to see how handy this can be.

Removing the Last Margin

Paragraphs have a default bottom margin, and in a callout box like this, it’s desirable to remove the margin from the last paragraph. CSS3 has a pseudo selector we can use for this.

#callout p:last-child{

margin-bottom: 0px;

}

In Sass, you use the ampersand character to denote the pseudo class selector, like this:

&:last-child

margin-bottom: 0

We nest that below our paragraph selector and end up with a Sass file that looks like this:

!radius = 5px

!callout_background = #ddd

=rounded

border-radius = !radius

-moz-border-radius = !radius

-webkit-border-radius = !radius

#callout

+rounded

background-color = !callout_background

padding = !radius * 2

p

line-height: 20px

font-size: 14px

&:last-child

margin-bottom: 0

When you convert that to CSS, you’ll get this:

#callout {

border-radius: 5px;

-moz-border-radius: 5px;

-webkit-border-radius: 5px;

background-color: #dddddd;

padding: 10px; }

#callout p {

line-height: 20px;

font-size: 14px; }

#callout p:last-child {

margin-bottom: 0; }

Sass does proper descendant-selector creation, and even indents descendants to improve readability. Our colors are inserted, and our padding is multiplied correctly. Notice that even the unit of measure was preserved!

That’s just a small sample of what you can do with Sass, but imagine what you could do if you managed the entire stylesheet like this. You’d have code that’s easier to manage and maintain. If you’re interested in further optimization, you could use Sass to build your stylesheets and then run them through a compressor like YUI Compressor or similar tools as part of an automated build process.

The Future of Sass

If you’re used to the CSS syntax, you may not be that into this new whitespace-sensitive syntax. The Sass developers are well aware that the syntax could be a barrier to entry, and so they’ve begun work on SCSS, a new syntax that looks just like regular CSS, but adds in all of the Sass goodness. If you, like me, happen to love the regular Sass syntax, you can rest comfortably knowing that it’s not going away.

There are some other great features in the works for Sass, and you can follow those by watching the Haml project on Github.

Where to Go Next

If you want to play with Sass without installing anything, you can use a site I built called Rendera, which lets you work with Sass right in your browser. You’ll find some examples there too, including the one from this article.

Once you’re comfortable with Sass, you owe it to yourself to investigate Compass. Compass helps you design better stylesheets by providing a framework for composing stylesheets together. If you’re a fan of the Blueprint CSS framework, you can mix it into your existing stylesheets instead of altering your markup. That can make applying a CSS framework to an existing site many times easier. The best way to get started with Compass is to watch the great screencast on the Compass site.

Sass has proven to be an effective tool for me as a web developer. I don’t work without it anymore, and I’m sure once you give it a try you’ll feel the same way.

I can’t wait to see how you use it!

Brian Hogan has been developing web sites professionally since 1995 as a freelancer and consultant. He’s also built small and large web sites and web applications using ASP, PHP, and Ruby on Rails. He enjoys teaching and writing about technology, particularly web design and development. He is the author of Web Design for Developers: A Programmer's Guide to Design Tools and Techniques.

When Did That Happen?

Recording Information
by Dan Wohlbruck
In honor of Herman Hollerith’s 150th birthday, Dan surveys 100 years of information-recording technology.

On February 19, 1878, Thomas Edison received a patent for the world’s first phonograph. Edison had shown how to record sound and store it on tin-foil wrapped around a cylinder. Exactly three years later, February 19, 1881, Kansas became the first state to make the sale of all alcoholic beverages illegal.

There is no reason to believe that the invention of the phonograph led directly to Prohibition in the state of Kansas. Listening to those crude early recordings, however, may have been a contributing factor.

Cylinders and Discs

The invention of the phonograph was reported in an article in Scientific American. It wasn’t the most exciting record ever made: according to the article, the machine spoke the words: “Good morning. How do you do?” Maybe it was just as well that Edison’s earliest recordings could only be played back once. To the early listeners, the novelty of a talking machine was quickly replaced by the frustration of realizing that the machine couldn’t also listen. Customers were jaded back then, too.

Whatever the sound—the human voice, instrumental music, or static—the device had the ability to store and retrieve it. This storage and retrieval of information was a first step toward the ability to process information electronically.

Ten years after Edison invented the phonograph, in November 1887, Emile Berliner patented the gramophone. The gramophone worked by playing sound recorded on discs instead of cylinders. The sound was recorded on tracks that were grooved in discs of glass and the playback was accomplished by a needle that was perched at the end of an arm and read the recording.

In his book The Age of Spiritual Machines, Ray Kurzweil uses the phonographic record as an example of a technology going from inspiration (Edison) to invention (Berliner) to innovation (we’ll get to that shortly). Kurzweil notes that phonographic recordings reached maturity in 1948 when manufacturers introduced both the 45 rpm disc and 33 1/3 rpm long-playing record. Ultimately, sound was able to be recorded and played with a high degree of fidelity to the original. But it still couldn’t be manipulated.

Hollerith and the 1890 Census

The ability to manipulate, or process, recorded information began about the same time that Berliner was working with those glass discs. We’re not sure of the exact date of Herman Hollerith’s inspiration to use punch cards to record information. It was probably at the end of 1883 or the beginning of 1884. But we do know that in September 1884 he applied for a patent for a tabulating machine. The patent, finally granted in 1889, described a method to count and classify things by using a device that could interpret information that was punched into cards. The patent was approved just in time for Hollerith to build enough machines to process the 1890 census. (The original census-counting card, incidentally, was 20 columns long and 12 rows wide.) By using his cards and card-punch equipment, Hollerith reduced the time needed to tabulate the US census by a full order of magnitude.

Like the phonograph, punch cards and data processing quickly moved into the innovation stage of growth, and by the beginning of World War II, just about everything that could be done to a card or with a card had been done. The punch card had grown to 80 columns in length, the number of different machines that could read cards was well over 100, and punch-card processing was used for everything from calculating payrolls to plotting the orbit of the moon. The punch card had reached maturity—and a new storage medium was needed.

Not in the Cards

IBM, the company that Hollerith had indirectly founded, was the unquestioned king of cards. Not surprisingly, then, when Pres Eckert and John Mauchly launched the Univac I computer in 1951, they avoided these “IBM cards.” Instead, they stored data on metal tapes, read by a tape drive.

Storing data on tape was the inspiration. The invention was to make Mylar and not metal the storage medium. By the 1970s, magnetic tape became the primary medium for storing corporate and institutional data.

During the 1970s, as magnetic tape reached maturity, new ways were found to use random access storage. IBM had used the RAMAC drum storage in the late 1950s and followed the drum with disk storage in the 1960s. Disk storage was expensive and its primary use was to house the computer’s operating system. When Edgar Codd formulated the principles of the relational model of data, however, things changed quickly. By the end of the 1970s, one of Codd’s co-workers at IBM, Larry Ellison, had left Big Blue and was forming his own company, Oracle, where he began to sell database management systems that were built on the relational model of storing and retrieving information housed on disk.

That company is still doing rather well, I hear.

In just over 100 years, the recording of information went from capturing voices on tin-foil cylinders to storing data on magnetic cylinders. And the inspiration, invention, and innovation continue. It all started in February 1878—and that’s when it happened.

Dan Wohlbruck has over 30 years of experience with computers, with over 25 years of business and project management experience in the life and health insurance industry. He has written articles for a variety of trade magazines and websites.

The Quiz

Code in Code
by Michael Swaine
The following snippet of public domain source code is part of a translation of a famous program originally written in 1966 into a programming language created in 1993. (Technically, into source code for an editor that has the 1993 programming language embedded in it.)

And then we encrypted the source using a simple letter-substitution code. Your job is to decrypt the result and identify both the program and the 1993 language. You don’t have to port it back to the 1966 source.

qstgq xhmtunsm Vqneg(uvlu)

qstgq wvojsmov = ""

qstgq hovw = ouwnmc.hjjvw(uvlu)

qstgq hovwSwnc = hovw

-- wgmrsfqk ovqvtuvr wvjqnvo nx ms avkiswro

qstgq wgmrWvjqnvo = {

"IZGU RSVO UZGU OHCCVOU US KSH?",

"N OVV...",

"N'F MSU OHWV N HMRVWOUGMR KSH XHQQK.",

"TGM KSH VQGYSWGUV SM UZGU?",

"UZGU NO PHNUV NMUVWVOUNMC!",

"UZGU'O OS... JQVGOV TSMUNMHV...",

"N HMRVWOUGMR...",

"IVQQ, IVQQ... RS CS SM",

"IZK GWV KSH OGKNMC UZGU?",

"JQVGOV VLJQGNM UZV YGTACWSHMR US UZGU WVFGWA...",

"TSHQR KSH OGK UZGU GCGNM, NM G RNXXVWVMU IGK?",

}

...

-- tsmdhcguv

qstgq tsmdhcguv = {

[" N "] = "KSH",

[" GWV "] = "GF",

[" IVWV "] = "IGO",

[" KSH "] = "FV",

[" KSHW "] = "FK",

[" N'BV "] = "KSH'BV",

[" N'F "] = "KSH'WV",

[" FV "] = "KSH",

[" GF N "] = "KSH GWV",

[" GF "] = "GWV",

}

-- wgmrsf wvjqnvo, ms avkiswr

qstgq xhmtunsm wvjqkWgmrsfqk()

wvojsmov = wgmrWvjqnvo[fguz.wgmrsf(ugyqv.cvum(wgmrWvjqnvo))].."\m"

vmr

Capitalization and punctuation are not affected by the encryption, so all the brackets and quotation marks and equal signs in the above are from the plaintext. You might think that code in an unknown programming language would lack the contextual clues to facilitate decryption, butv we’re pretty sure that there’s enough information here to crack the code.

Solution to Last Month’s Quiz

The following table contains the names of 19 notable (and quotable) language creators, each paired with his or her most famous language creation. We asked you to match each notable quotable language creator with the quote from the list following the table. In the third column of the table you’ll find the answer, in the form of the number of the corresponding quote.

You will note that things don’t quite match up. There are two quotes by one author and no quote by a different author. The odd man out is the ultimate answer to the quiz: Which language creator is unrepresented by any quote?

And the answer is: Rob Pike, one of the creators of Google’s Go. Well, it’s still a young language. Doubtless it will inspire some interesting quotes someday.

The Language Creators and Their Languages

Language Creator

Language(s)

Quote

Dennis Ritchie

C

3

Bjarne Stroustrup

C++

17

Grace Hopper

COBOL

1

Bertrand Meyer

Eiffel

9, 12

Chuck Moore

Forth

15

John Backus

Fortran

6

Rob Pike

Go

—

James Gosling

Java

18

John McCarthy

Lisp

16

Stephen Wolfram

Mathematica

11

Tony Hoare

CSP

17

Niklaus Wirth

Pascal

14

Larry Wall

Perl

13

Rasmus Lerdorf

PHP

2

Guido van Rossum

Python

4

Yukihiro Matsumoto

Ruby

5

Alan Kay

Smalltalk

10

David Farber

Snobol

19

Alan Cooper

Visual Basic

8

The Quotes

1. “The wonderful thing about standards is that there are so many of them to choose from.”

2. “When the world becomes standard, I will start caring about standards.”

3. “When I read commentary about suggestions for where [my language] should go, I often think back and give thanks that it wasn’t developed under the advice of a worldwide crowd.”

4. “Don’t you hate code that’s not properly indented? Making it part of the syntax guarantees that all code is properly indented!”

5. “I believe consistency and orthogonality are tools of design, not the primary goal in design.”

6. “Our thirty year old belief that there is only one kind of computer is the basis for our belief that there is only one kind of programming language.”

7. “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies.”

8. “No matter how cool your interface is, it would be better if there were less of it.”

9. “As for our grandchildren, only the paleontology professors among them will know what C++ was.”

10. “I invented the term ‘Object Oriented’ and I can tell you that I did not have C++ in mind.”

11. “All processes, whether they are produced by human effort or occur spontaneously in nature, can be viewed as computations.”

12. “You can have quality software, or you can have pointer arithmetic; but you cannot have both at the same time.”

13. “Real programmers can write assembly code in any language.”

14. “I am convinced that there is a need for high quality software, and the time will come when it will be recognized that it is worth investing effort in its development and in using a careful, structured approach based on safe, structured languages.”

15. “All computer languages are write-only.”

16. “Everyone needs computer programming. It will be the way we speak to the servants.”

17. “I prefer to have as little as possible to do with Bertrand Meyer.”

18. “It’s been a really weird summer.”

19. “I could tell you stories that would curdle your hair.”

Calendar

Author sightings, partner events, and other notable happenings.

Author Appearances

- Feb 9-11, Speakerconf 2010, Aruba
TBABrian Marick

- Feb 11, Moscone Center, San Francisco
Macworld Expo

- Feb 17-18, PyCon 2010 Atlanta, Georgia
Tutorial session: Test Driven Web DevelopmentTravis Swicegood

- Feb 22, Skills Matter, London
“How to have your Domain Driven Design cake and eat it too”Dan Haywood

- Feb 22-24, JAX London conference
“Agile Coaching Secrets”Rachel Davies, coauthor of Agile Coaching

- Mar 8-9, Devnexus, Atlanta, GA
Java related topicsVenkat Subramaniam

- Mar 9-12, Reston, VA
iPhone Studio, Pragmatic StudiosDaniel Steinberg

- Mar 9-12, Reston, VA
Mastering Ruby and Rails StudiosDave Thomas and Chad Fowler

- Mar 15-17, Reston, VA
Clojure Programming StudioStuart Halloway

- Mar 16-17, Scandinavian Developer Conference, Göteborg Sweden
“I Think I Finally Understand Mocks” and “Artisanal Retro-Futurism Crossed With Team-Scale Anarcho-Syndicalism”Brian Marick

- Mar 18-29, SPARK IT, Bangalore
Groovy and Java topicsVenkat Subramaniam

- Apr 8-9, Philadelphia Emergent Conference
Building DSLs with GroovyVenkat Subramaniam

- Apr 16, Minneapolis
On topics around Groovy, and giving a kickoff talk at GR8 ConferenceVenkat Subramaniam

- Apr 20-23, Bangalore
On topics around Java and Scala, and giving a keynote at Great Indian Developer SummitVenkat Subramaniam

USENIX Events

- Feb 23–26, The Fairmont San Jose, 170 South Market Street, San Jose, CA 95113.
FAST ’10: The 8th USENIX Conference on File and Storage Technologies. Sponsored by USENIX in cooperation with ACM SIGOPS. “FAST ’10 brings together storage system researchers and practitioners to explore new directions in the design, implementation, evaluation, and deployment of storage systems.”

O’Reilly Events

- Feb 22-24, New York Marriott Marquis Times Square, 1535 Broadway, New York, New York 10036 USA
TOC: O’Reilly Tools of Change for Publishing. The O’Reilly TOC Conference “will decipher the tools of change in this industry and help cut through the hype for a more profitable future in publishing.”

- Mar 30-Apr 1, San Jose Marriott, 301 South Market Street, San Jose, CA 95113
Where 2.0: “Now in its sixth year, the Where 2.0 Conference is where the grassroots and leading edge developers building location-aware technology intersect with the businesses and entrepreneurs seeking out location apps, platforms, and hardware to gain a competitive edge.”

- Apr 12-15, Santa Clara, CA
MySQL Conference & Expo: “The largest gathering of MySQL developers, users, and DBAs worldwide.”

Other Happenings

- Feb 9-13
Macworld Expo, SF

- Feb 12
Darwin Day: Charles Darwin’s 201st birthday.

- Feb 24
Steve Jobs is 55.

- Feb 29
Herman Hollerith’s 150th birthday. Celebrate it any time you want, since we don’t have an actual February 29 this year.

- Mar 12-21, Austin, TX
SXSW 2010

- Mar 16
Richard Stallman is 57.

- Apr 5
Dean Kamen is 59.

- Apr 30
The World Wide Web is 17.

Shady Illuminations

Lost Highway
by John Shade
John sees Google’s adventures in China as a road picture starring James Dean and directed by David Lynch, David Cronenberg, or Neill Blomkamp.

So Google thinks it’s too big to fail? Even if it snubs China and threatens to take its search engine and go home? Excellent. From an entertainment point of view, I mean. It’s two crazy guys’ wacky adventures on the road to China.

Let’s review. Here are some key elements of the story as reported, accurately or inaccurately, in the tech press:

Google decides that it will no longer censor its search results for the Chinese government, which it acknowledges may mean that it will have to shut down its operations in China. Google says it is doing this in response to cyberattacks originating in China. Google’s CEO has dinner with the US Secretary of State and the next day she goes to bat for Google. This annoys the Chinese government. At the same time, an LA law firm sues China for 2.2 billion for copyright infringement and gets hit with cyberattacks also originating in China.

Google’s actions make it clear that Google has been collecting information about all its users all the time, for the use of national governments. Meanwhile, Google Gmail, Google Docs, and Google Calendar services are all shown to be highly insecure, and are only somewhat more secure once Google turns on encryption by default immediately after the China incident.

Microsoft is planning to throw a lot of money at Apple so Apple will replace Google with Bing as its search engine on iPhones and iPod Touch, where the majority of mobile advertising is read. Meanwhile, Microsoft has been accused of ripping off an Asian micro-blogging site, the Google attacks are thought to have been enabled by a security flaw in Internet Explorer, and the same security flaw causes the government of Germany to warn users against IE.

Oh, and the government of Italy announces plans to censor the internet. Did I miss anything?

A Road Picture

I see it as a road picture in the age of the information superhighway. You remember those dated Hope and Crosby movies in which some exotic Far East country plays backdrop to the stars’ ad-libbed mugging and crooning? Like that. Yang and Filo and Dorothy Lamour bouncing around Beijing in a rickshaw chased by inscrutable IP pirates, about to crash into a clown car filled with government agents.

“Don’t worry. That guy’s gotta see us.” -James Dean

Part of the fun of this is trying to decide who will benefit. If Android phones suffer a backlash, it seems to me Apple will benefit. If Google search disappears from China, Microsoft benefits. If Google pulls out of China, pretty much everybody but Google and China benefits. Of course, pretty much every company doing business in China is doing it wrong, it seems to me. I do not mean to suggest that there is a right way to do business in China.

Pardon me, but isn’t at least some of this the kind of stuff the Internet was supposed to recognize as damage and route around?

Metaphors of the Open Road

But there are plenty of other things the internet should route around, and doesn’t. You see them in the unfulfilled metaphors of the open road.

Technological metaphorical crashes were already causing real grief and disaster long before the internet enriched the metaphor, but now those crashes can lead to traffic jams and other detrimental alterations to the crucial flow of packet traffic. Roadblocks are erected at country borders, and there are endless arguments about setting up toll gates or imposing speed limits on some drivers and granting car-pool privileges to preferred traffic. On-ramps slow the internet traveler via crappy maintenance, narrow lanes, and the unsuitability of the road construction for high-speed travel. Detours are inherent in the protocol: you have no idea over what roads your trip will take you. You only hope you don’t end up as road kill.

“Just take everything down to Highway 61.” -Bob Dylan

Everyone loves the romance of the road, but I incline to the darker Dylanesque view of the highway as a place where illicit activities occur and secrets lie buried under the blacktop. And, true to the metaphor, the information superhighway, which Al Gore never said he invented, paves over inconvenient truths and leaves untruths stinking on the shoulder.

Trapped in a Meme of Our Own Making

Does the information superhighway metaphor impoverish our perception of the internet? Then wouldn’t it be the case that the same metaphor must enrich our perception of the physical highway? Or is a metaphor not a zero-sum rhetorical device?

You say that the information superhighway metaphor is dead? But powerful metaphors don’t die that easily. Even as influential a thinker as Nietzche couldn’t kill God, although he did apparently get him to move to Utah. To kill a powerful meme, you need a more powerful meme. To kill the hippie meme, they had to parade through the Haight with a coffin.

“The car crash is a fertilizing rather than a destructive event.” -J. G. Ballard

We can’t get along without metaphors. It’s impossible to talk about the Internet or any abstract concept without indulging in metaphor. We invent words for the virtual by overloading the terminology of the physical. And there are worse metaphors than the highway. I can’t read about photo “thumbnails” without thinking of my poor carpentry skills. Which leads to thinking about that scene with Wikus Van De Merwe in “District 9” or the similar one with Seth Brundle in “The Fly.” To me, thumbnails are metaphors of horror.

I’m all for net neutrality—provided it doesn’t start sheltering Nazi gold. Neutrality in the context of the internet is a metaphor, and metaphors can’t be trusted.

The metaphor of the electronic frontier leads to declarations like this:

“Governments of the Industrial World, you weary giants of flesh and steel, I come from Cyberspace, the new home of Mind. On behalf of the future, I ask you of the past to leave us alone. You are not welcome among us. You have no sovereignty where we gather.”

That’s John Perry Barlow, and I have to say, it’s pretty high-toned rhetoric for a Grateful Dead lyricist. Me, I love that kind of talk, and I think there’s nothing wrong with getting all puffed up by the inspiration of it. But I also think that it’s a good idea to at least try to extricate your thoughts from the metaphors they are embedded in before you start loading the muskets.

And that’s all I have to say on the subject. Except for this:

In case you need some help with the movie references in the preceding, David Lynch directed “Lost Highway” (1997), Neill Blomkamp directed “District 9” (2009), and David Cronenberg directed both “The Fly” (1986) and “Crash” (2004). The J. G. Ballard quote is from his book The Atrocity Exhibition and is repeated word-for-word in Cronenberg’s “Crash,” which was actually based on a different Ballard novel and which is not to be confused with the slick 2004 Paul Haggis movie “Crash,” or the even slicker TV series spin-off. The Ballard/Cronenberg “Crash” is unlikely to inspire a TV show. The James Dean quote is one version of his last words, just before the crash.

John Shade was born in Montreux, Switzerland on a cloudy day in 1962. Subsequent internment in a series of obscure institutions of ostensibly higher learning did nothing to brighten his outlook. He claims he failed his first driving test because he didn’t want to go anywhere that roads led.