More Adobe product design anti-patterns

August 2, 2009 - Leave a Response

Whenever I Adobe wants me to update Acrobat, it also wants me to quit
Safari – and Firefox? I don’t run Firefox a lot – because it
presumably wants to update the browser PDF viewer plug in. The. Plug.
In. That. I. Do. Not. Use. They know this: I have told them, “No thank
you, I like Apple’s PDF viewer just fine.” Yet they insist on forcing
me to close the fifty tabs I have open in my web browser. Why God,
why?!

 I suppose it’s possible that some people find Adobe’s Acrobat browser
plug in useful[1], but every time they make me restart my browser, I
think about how stupid this is. Is Adobe in a market share war with
Apple over PDF viewers? It sounds ridiculous on the surface, but if
you look through Acrobat Pro, you see all the ways that they are
trying to help you. (I am reminded of Ronald Reagan’s line: “The most
terrifying words in the English language are: I’m from the government
and I’m here to help.”)

 So anyway, here are some things not to do: 1) Don’t force people to
re-start their computers. Or 1a) their web browsers – because web
browsers are the new Emacs.[2] 2) If people don’t want the feature
that forces them to re-start, don’t force them to re-start. (Is it
starting to sound a bit like Fight Club in here?) 3) Don’t cynically
treat your users as an audience to display advertising to, especially
if they’ve paid for your product. And even if they don’t, you’ll be
better off if you take some time to consider the difference between
your crude, myopic, cynical, short-term interests and your
enlightened, long term interests.

 There’s an interesting article from The Big Money (a Slate offshoot)
entitled “The Magazine Isn’t Dying”. An excerpt:

 

Largely, these magazines never caught on with readers.
And it’s not surprising. Magazines are emotional products. They
are objects of aspiration, passion, and desire.
No one needs to
read magazines, but millions of readers still subscribe to their
favorite titles because they harbor deep connections to the glossy
pages. As one veteran editor once explained to me, the best magazines
make you feel like tearing open the plastic wrap the second that they
arrive in your mailbox and curling up on the couch with them, ignoring
whatever plans you had for the evening. [Emphasis added.]

 If you build objects of aspiration, passion, and desire, you’ll find a
way to make some money. (If you want Facebook or Twitter to
continue existing, you better hope this statement is true.)

 Notes

 1: But why? The ratio of just thumbing through a PDF to doing
something interesting with a PDF is extremely high for me. Other
people’s mileage will vary of course. But how hard is it to open the
PDF in Preview or Acrobat Pro on the rare occasions when you want to
manipulate a PDF? I have a theory here: Windows does not have OS X’s
awesome native Postscript graphics engine, nor does it have a built in
PDF reader, and Acrobat Pro is largely superfluous for 90% of Mac
graphic designers – which means probably 99% of general Mac
population. So all of this pain is caused by Adobe’s plodding
bi-platform software development strategy. UIs that are neither quite
Mac nor Windows like get pushed out, and applications – oh, and PDF
viewer browser plug-ins – that make little sense get built out of a
misguided sense of maintaining platform parity. It is true that I use
Acrobat Pro for creating composite PDFs and dealing with the
occasional government form; I don’t wish death upon Acrobat Pro, just
obscurity.

 2: There’s a idea: an article on the similarities between Emacs’s
architecture and modern web browsers. They seem to be converging. The
CSS/JS/HTML stack is powerful enough to allow browser features to be
built using the same technologies that were created to support the
creation of web content. (See Apple’s Safari debugging tools or any
Firefox plug-in.) This is very similar to use of Elisp to build all
but the inner C core of Emacs.

Did you ever notice…

August 1, 2009 - Leave a Response

Hi all,

You’re hiking and you choose the path less taken, and then you don’t know where you are, and you run out of water, and you begin to realize how tired you are, and the fact that you’re utterly lost sinks in, but then you figure out how to get back to the trail head, but it’s down a very steep side of a mountain, and you start to get punchy and make mistakes and start sliding down over wet leaves and rocks. You know how that is.
 
So you stop and write something, trying to be light-hearted, but you’re thinking about the mountain-side and your knees and the mosquitos, so you think now might be the time to take stock: Life is pretty good. I like it. I want to work. I want to be with my friends. I want some water.
 
Hope to see all of you soon!
 
Yours,
Edwin
 

There’s actually water here this year!

August 1, 2009 - Leave a Response

Last summer at Glen Onoko Falls, the water flowed like an unattended garden hose. I’m going to hike up and down this puppy until my iphone’s moisture sensor turns bright red!

I just learned something: Obama is a left-handed.

August 1, 2009 - Leave a Response

Lots of southpaw presidents. And freemasons. Haven’t figured out if Obama’s one. Do they allow Kenyans to join? I digress! Anyway, glad to see one of our own in the White House.

Interesting information about the ingredients of Bud Light

July 30, 2009 - Leave a Response
Our national conversation on beer will hopefully reach its conclusion this evening at 6 P.M., when President Obama, Henry Louis Gates, and Cambridge Police Sgt. James Crowley gather together in the White House and crack the top on an ice-cold Bud Light.

I’ve never had a bottle of the stuff – sorry, I scored off the charts in the self-administered test in the back of “Stuff White People Like” – but I found this interesting nonetheless.

Now I need to find an Illy plaque

July 29, 2009 - Leave a Response

There’s something beautiful about the red rectangle with white type against…reality. To say it pops does it an injustice.

– “What he has to show us is indeed a long way off, and perhaps concerns us little, but all truth is valuable and all knowledge pleasing in its first effects, and may subsequently be useful.” — Dr Johnson

Web application components in Django

July 17, 2009 - Leave a Response

I’m working on an application in Django for which I’ve developed components that are reused. Some are used in precisely the same way, others are aware of their surroundings, showing different information based on the values defined in the current template context.

A web application component, for lack of a better term, as delivered to a user, is comprised of three parts: markup (HTML), styling (CSS), and behavior (Javascript). While it’s possible to simply concatenate these three elements and throw them into the body of an HTML document, it’s gauche. You really want to be able to keep some sort of association between these elements while developing them, but have them delivered appropriately to users. So markup would go into the HTML file’s body, while the styling and behavior would either get included in the head of the HTML file, included as distinct files, or rolled into huge-ass consolidated, master CSS and Javascript files, depending on whatever makes the most sense.

What I need is a way to do this in Django. One thought is to use something akin to blocks, which are used in template inheritance. If a block declaration appended content to the template, we’d be in good shape, as every module could append it’s own CSS or Javascript, and it would duly get rolled into the master sections. This would only work for the “everything in the HTML file” solution, but at this point, I’d be willing to live with that.

Is anyone doing this, without going down the whole portlets rabbit hole?

Designing the design (and development) process

July 10, 2009 - Leave a Response

[ This is a lightly-edited version of an e-mail message I recently sent to Jason Goodwin of Piehead Productions as we discussed the place of visual, interaction, and interface design within an agile ("the Agile"?) development process.]

One of the reasons I prefer working at a start-up to either a large organization or for clients is that you need to do a lot of up-front design to get the Powers That Be on board with a design when you’re working in the latter sorts of environments.

When I did the design for Half.com, I got Josh’s approval on the visual identity by showing him the logo and a mock-up of the front page. Then I went to town on the site itself, basically by sitting next to the developers and designing things as they came up. We’d look at a page, and we’d figure out which established conventions made sense for each element of the page or feature in question, and occasionally we’d come up against problems that called for re-evaluating the visual and interaction language we’d developed up to that point. We might do a one-time-only variant or decide to make changes throughout the product because the solution we’d come up would make the product better if we applied it throughout.

This sort of approach is impractical in a low trust environment. Large organizations are generally low trust environments. Many client relationships take place in low trust (or high fear) environments. A lack of trust drives people to want to see very concrete prototype, but early designs rarely reflect what comes out at the end. Or, if the early designs are faithfully implemented, they are likely to not work well, because it means the technical constraints that are inevitably discovered during development haven’t led to changes in the design.

High-fidelity prototyping (almost a contradiction in terms) makes sense when there’s little technical risk. But it’s extremely expensive (in terms of time and money) and of almost negative value when a project carries more than some threshold level of implementation risk.

Clients also don’t seem to realize that the skin of an application is almost completely malleable. The early development versions of Billing Manager, which we built for Intuit, looked almost identical to Gmail, the product’s interaction model inspiration, and it completely freaked out the project owner at Intuit. I assured her that we could make it look like anything she wanted, and that we were keeping it borderline intentionally ugly in order to avoid giving the impression that this was the visual identity. She was not convinced, so we had to take a week or two and do the design that we could’ve done later, in parallel with QA, when our designers would not be busy working with programmers on building out the site.

I think it’s dealing with these emotional and inter-personal issues (trust, anxiety, fear) that represent the real challenges to successfully creating a successful product. I consider myself a designer in the most general sense, and designing a development process around the reality of the people you have and their personalities is something that deserves as much attention as the design of the product itself. Every product makes trade-offs in its designers’ attempts to deal with the constraints that are imposed on them, and dealing with a “problem” client or VP should be thought of as much a constraint as human factors considerations like “maximum duration in milliseconds a task can take to complete in order to be perceived as instantaneous.”

Timelines

July 7, 2009 - Leave a Response

I like timelines. I like how they put events in context. One of my clients has me put together timelines occasionally, and while I did the first one in Adobe Illustrator, I quickly grew tired of manually laying out events. It’s time consuming and error prone. So I decided to write a program that would build them for me. In pure HTML.

I started off by creating a spreadsheet with the events I wanted to showcase. Here’s an example of a Numbers spreadsheet from Apple’s iWork:

Timeline data in a Numbers spreadsheet

Timeline data in a Numbers spreadsheet

I wrote a script that read the data, generated HTML with CSS styles the appropriately positioned the content. I initially dealt with potentially overlapping event descriptions by defining different classes that staggered descriptions vertically. I then assigned a staggered class to the event if, open visual inspection, it overlapped with another event. I latter wrote some Javascript that (with the help of JQuery) automatically modifies the vertical positions of event descriptions.

Here’s a screen shot of one a timeline, which visualizes data from the Wikipedia article on Antoine de Saint-Exupéry, one of the coolest men to have ever lived:

A screenshot of a dynamically-generated timeline

A screenshot of a dynamically-generated timeline

If you’re using Firefox or Safari, you can check out the live HTML at http://poseur.com/timeline/. I’m pretty proud of this—that’s why I’m posting about it—but there’s a lot more work I’d like to do, both in terms of user interaction as well as adding to the layout engine. Eventually, it’ll be web-based and anyone who wants a nice timeline will be able to build one.

This tool exists because of my laziness and impatience. Three cheers for hating shit-work.

Is a designer an artist?

July 7, 2009 - Leave a Response

We’ve all read—and written—far too many essays, articles, term papers, and love notes that start off with a dictionary definition of the central topic of discussion. I’m going to save you the pain of doing that, mostly because the definition that OS X gives me when I hover over the word “artist” and type Control-Command-D[1] is so ridiculous: “a person who produces paintings or drawings as a profession or hobby.”[2]

Things get much better from there if you read the full entry. Most interestingly for my purposes here is “a person who practices any of the various creative arts, such as a sculptor, novelist, poet, or filmmaker.”

Is a designer a practitioner of a creative art? Yes. QED. End of post.

You still here? Good, because that didn’t feel quite fair. It was like the last time I fell prey to checkmate in four moves, except for Jeremy, who wiped the floor with me, not me.

I’ve been trying to avoid providing context recently, because it gives me an excuse to digress and ramble on, things I need to do less, not more, but in this case, I will, because I think the context is actually important.[3]

Someone asked me what I was at a Fourth of July party. I had just finished a Solo cup full of Australian merlot[4], and was thus feeling a bit saucy, so I said that I was a “philosopher-programmer-artist”. And then Laura[5] asked me what my medium was. I replied, with a straight face, “products, mostly web-based applications.”

Sensing that this answer would be unsatisfying, I then delivered my standard monologue that attempts to square “artist” with “mostly web-based applications.”

You could say that Leonardo or Michelangelo were merely “graphic designers for God” or the Church or their secular patrons, because the idea that a work of art exists detached from any practical purpose is not grounded in the reality of the circumstances that led to the creation of much of what we call art. The art that these guys created was for very practical, very important purposes. Art instructs. Art persuades. Art glorifies.

The world we live in today allows a work of art to be reproduced without a loss in quality.[6] In fact, art can be created expressly for reproduction.[7] And by doing this, by giving up[8] what Walter Benjamin calls the aura of art, the artist has an opportunity to improve people’s lives in ways that a “fine” artist can only dream of.

The fine artist today is narcissistic. Fine art is about the artist. Real art should be about contributing to the human experience. Making it more joyful—or less onerous—no matter what activity your audience is undertaking. Consider the Japanese tea ceremony: it elevates the commonplace to the art, giving awareness to the everyday, in a way accessible to all, or to anyone willing to open their eyes.

I would rather create products that help people send invoices or sell their unwanted books than paint pictures, because I think in the end, there’s an opportunity to create more happiness than most “fine” artists can ever hope to.

As a philosopher-programmer-artist, I wonder about the transcendent, about its place in everyday life. It is not clear to me that the transcendent or the sacred must exist in items that are divorced from everyday existence. We need these things—it’s how we’re wired—and I think many of us feel the need to create these things, to try to create these things, at least, and it leads us to go beyond what is strictly necessary. And that, the going beyond, that constitutes art: the assertion of humanity’s value in the face of much evidence to the contrary.[9]

So is a designer an artist? I don’t want to be one of those people who twists words beyond their commonsense meaning, but sometimes we meet words whose meanings have been twisted. I do not know how practicioners of the traditional “fine arts” can legitimately lay exclusive claim to the term “artist” without bringing up grave questions that threaten to render art meaningless or powerless. Those who create, regardless of the medium, regardless of the utility of the objects being created, can be artists if their aspirations go beyond utility, and I do not think that including these people in the pantheon of artists degrades Leonardo or Michelangelo.

Notes

1. You need to remember this. It will quickly improve your vocabulary and become yet another thing in your computer-mediated existence that you wished existed out there in meatspace.

2. See what I just did? I just started off the post with a dictionary definition.

3. Important, and perhaps interesting. Perhaps.

4. I hate people who stopped drinking merlot after seeing Sideways. It made me not watch the movie until about nine months ago. A mistake. It was actually good. Like merlot can be. Whenever I hear people ordering pinot noir, I make a note to follow up later and find out if they were shamed out of drinking merlot by Paul Giamatti’s character.

5. Not Lauren. Laura. Sorry! I tried really hard.

6. Read about Walter Benjamin’s Thee Work of Art in the Age of Mechanical Reproduction for an interesting-but-ultimately-wrongheaded essay.

7. Like the work my friends at Cereal Art do.

8. Giving up, selflessly. Because no one’s going to call you an artist, and you’ll die anonymous, except to the sorts of people who read Metropolis and watch Helvetica.

9. “The world is a fine place and worth the fighting for and I hate very much to leave it.” Hemingway wrote that for For Whom the Bell Tolls, and it’s my credo. It sums up the world’s imperfection and the imperative to improve it. It is this struggle that, to me, gives life meaning.