90 Minutes With Amtrak.com

I’m traveling by train next week. This morning, Amtrak .com wouldn’t let me log into my account with my password, which I have never changed, and which Amtrak.com now says is “incorrect.” When I eventually clicked the “Reset password” link (duh, so Amtrak would send an email with a link allowing me to reset my password), Amtrak thanked me and then never sent that email.

I know they didn’t send that mail. I checked Spam, Trash, Junk, and Junk Mail (I don’t know why my Gmail offers all four of those); ran Gmail searches on amtrak.com; and sent the “Reset password” request several times to be sure Amtrak was definitely not mailing me the “Reset password” email after failing to recognize my password.

Well, when a company no longer accepts your password, and when it will not let you create a new one (because the “Reset password” button does nothing), your next option is simply to give up all your miles and just start a new account, using an alternate email address and creating a new password for that account.

I waited 90 minutes before attempting to do so, in case Amtrak, due to an overloaded gateway or poor engineering, was simply experiencing an extraordinary delay prior to sending “Reset password” emails. Patience is not my chief virtue; anxiety around even familiar, comfortable travel impels me to ward off panic attacks by acting too fast for my own good. But today I did not do that. Today I waited the full 90 minutes.

Then I filled in all the fields at Amtrak.com to create a new account, wrote down my new sign-in information so I’d be able to use it again in the future, and hit “Register.”

At which point Amtrak sent me the following error message:

Due to a system issue, we are currently unable to process your request. Try again later. [Error ID: 1009C]

So my guess is that my original password was probably correct, that Amtrak’s backend simply isn’t functioning correctly, and that when Amtrak can’t connect to its database, it sends incorrect error messages by default, i.e. “your password was wrong” instead of “we cannot connect to our database.”

(I say “backend” and “database” rather than “site” because my Amtrak phone app also bumped me out, and won’t let me sign in. So the problem isn’t specific to the web experience.)

I have only two problems: software and people.

Pinterest giveth, and Pinterest taketh away

Jeffrey Zeldman's Pinterest (excerpt)
AS MY design career has taken on more and more strategic and managerial freight, I’ve done less and less hands-on design. This year, I decided to change that. As part of my reimmersion, I found myself reading less, and absorbing visual information more. Enter Pinterest.

I’d played with the app when it first came out—who didn’t?—but it didn’t stick with me the way a handful of apps do. It didn’t become an obsession, and so I gradually forgot about it. That’s just how apps work for me. They’re heroin, or they’re nothing.

But the moment my days began filling with sketching, and coding, and Photoshop comping, the genius of Pinterest, and the addictive high it provides when used obsessively and compulsively, was revealed to me.

In borderline religious ecstasy, I became a Pinterest junkie, compelled to collect and catalog every artist I’ve ever loved—every type designer, illustrator, filmmaker, social absurdity, comic book character, and book designer; every half-forgotten cartoonist; every city or nation I’ve visited.

Using Pinterest not only revived long-dead visual design brain cells, it created new ones. Work-related layouts and color schemes came easier as I spent more and more “downtime” collecting and cataloging half-forgotten styles, genres, and artists—and discovering new ones.

Jeffrey Zeldman's Pinterest (excerpt)

I ♥ Pinterest

As part of this work—for work it is; call it “research” if you prefer—I spent hours rearranging Boards on my profile for maximum aesthetic effect and rhythm. And more hours choosing and replacing the cover illustration for each Board. (If you don’t use Pinterest, here’s a summary: it lets you pin any image you find on the web, or on your own computer desktop or mobile device, to a virtual whiteboard. Pinterest calls each whiteboard you create a “Board,” and each image you affix to it a “Pin.” Part of the fun comes from sequencing Boards on your profile for aesthetic or educational reasons; choosing the featured image for each Board is likewise important and fun.)

Until a few days ago, you could edit and re-edit the featured image for each Board whether you were using Pinterest on the web (that is, via desktop computer), your phone, or your tablet. Doing these things worked differently on the different devices—choosing the featured image was actually faster and less tedious on iPhone and iPad than it was on the web—but the functionality was available in all three places, because Pinterest recognized that brands exist between devices, and that folks interact with your service on different devices at different times, as they choose.

Likewise, until a few days ago, you could change the order of Boards on your profile via drag and drop whether you were using Pinterest on the web or your tablet. (Likely because of screen space constraints, this functionality was not available on iPhone, where the display of Board content necessarily differs from the more desktop-design-focused method used on the web and on iPad.) Users like me changed the order of Boards to create visual interest, set up ironic contrasts, create visual rhythms up and down the screen, and so on. I’m a designer. I have my ways. These details are important to me—and, I imagine, to many other users, since Pinterest is a drug for visual obsessives.

Jeffrey Zeldman's Pinterest (excerpt)

An unexpected change

Then, a few days ago, Pinterest released an update that removed this functionality from the iPhone and iPad (and, I’m assuming, from Android as well). There was no blog post announcing the change. And no rationale offered for taking away features that mattered a lot to users like me. Pinterest knows these features matter, because Pinterest has our data. That’s the difference between making a digital product folks interact with via the internet, and making, say, a toilet plunger. If I manufacture toilet plungers, I can make assumptions about how folks use my product, but I probably don’t have much real data. If I make an application people use via http, I know everything.

Now, it’s not like people were complaining about the ability to edit their Boards: “We have too much freedom! This software provides too many delightful functions. Please remove two of them. But only from my mobile device.”

No. The features are still there on the website. So Pinterest knows people like these features.

And it’s not like the features are too difficult to put into mobile devices, since they already existed in those mobile devices.

Jeffrey Zeldman's Pinterest (excerpt)

A failure to communicate

You may ask why I’m telling you all this instead of telling it to Pinterest. Good question. The answer is, I tried telling Pinterest, but they don’t provide a forum for it. And that is the biggest problem. A company that makes products people love should have a way to communicate with those people. Not grudgingly offer them a few character-limited form fields on a “survey” page that isn’t even referenced in the site’s navigation.

When the features stopped working on my iPhone and iPad, I assumed something had gone wrong with my apps, so I deleted and reinstalled them. (Remember, there was no announcement; but then why would any company announce that it was taking away loved features for no apparent reason?)

When deleting and reinstalling didn’t help, I sought help and contact pages on Pinterest (and was only able to find them via third-party search engine).

In trying to file a bug report, I ended up in a pleasant (but confusing) conversation with a very nice Pinterest employee who explained that I wasn’t experiencing a bug: the software engineers had made a conscious decision to remove the functions I use every day … and had no intention of restoring them. She wasn’t able to tell me why, or point me to a URL that would offer a rationale, but she did tell me I could use Pinterest’s “Recommend a feature” form to “recommend” that the software engineers put those features back.

Since “Recommend a feature” is hidden from site navigation, the kindly person with whom I was in dialog provided a link where I could type in a few characters requesting that Pinterest restore the “drag Board order” functionality. There wasn’t room in the form fields to explain why I thought the feature should be restored, but at least I was able to make the request. The form asked if I was a Business account user, which I am. I don’t remember when or why I bought the Business tier of service. Maybe for the analytics. Maybe just because, as someone who makes stuff myself, I choose to pay for software so I can support the good people who make it, and do what I can to help their product stick around.

(It’s the same reason I remained a Flickr Pro user even after Yahoo gave the whole world 2GB of photo storage space for free. If everything is free, and nobody pays, services you love tend to go away. Half of web history is great services disappearing in the night after investors were dissatisfied with only reasonable profits.)

I don’t know why my paid status mattered to Pinterest, but I couldn’t help feeling there would be a prejudice in favor of my comment if I checked the box letting them know I was a paying customer. Even though it was information they requested, checking the box made me feel dirty. I also wondered why they were asking me. I mean, don’t they know? I gave them the email address they use for my login. I was logged in. They know my status. Are they just checking to see if I know it, too?

Jeffrey Zeldman's Pinterest (excerpt)

There can only be one (feature request)

But I digress. Because here is the main point. The moment I submitted the tiny, inadequate form requesting the restoration of a recently removed feature, the site set a cookie and sent me a message thanking me for completing the “survey.” It wasn’t a survey, but I guess one task completion message is as good as another.

Then I tried to use the inadequate form to report my second concern—the one about the removal of the ability to choose a featured image for my Board. The way this had always worked on the tablet was far superior to the tedious, painstaking way it works on my desktop. On the tablet, you could scroll through all your images with the flick of a finger, select the image you wanted, and complete the task in a few seconds. On the desktop, you had to click your way through every image on your Board in reverse chronological order. It’s the difference between flicking through a calendar, and clicking backwards from today, to yesterday, to the day before yesterday, and so on. The tablet version was fast, easy, intuitive—you interact directly with your content; you can see all relevant content at a glance. The desktop version is cumbersome and 1999-ish. If I had to pick which platform must lose the functionality I relied on, I would not have chosen the tablet. No customer who used the feature in both places would.

But I wasn’t able to share even a few characters of this thought with Pinterest, because once you submit a “survey” requesting a feature, a steel wall in the guise of a cookie slams down, and you cannot make a second feature suggestion.

Not even the next day. (Which is today. Which I just tried.)

Jeffrey Zeldman's Pinterest (excerpt)

This is a love letter

And that is why, as a hardcore fan and user of Pinterest, a service I love and use compulsively, I am using the public web rather than Pinterest’s somewhat unhelpful help center, to share my request with the brilliant software engineers who create this fabulous product.

And with designers, because these are the mistakes we all make when we create products and content sites. We think we are all about the people who use what we create. But we are probably frustrating the pants off them with our arbitrary design decisions and inadequate customer feedback mechanisms.


Also published on Medium.

The Year in Design

  • Mobile is today’s first screen. So design responsively, focusing on content and structure first.
  • Websites and apps alike should remove distractions and let people interact as directly as possible with content.
  • 90 percent of design is typography. And the other 90 percent is whitespace.
  • Boost usability and pleasure with progressive disclosure: menus and functions that appear only when needed.
  • One illustration or original photo beats 100 stock images.
  • Design your system to serve your content, not the other way around.
  • Remove each detail from your design until it breaks.
  • Style is the servant of brand and content. Style without purpose is noise.
  • Nobody waits. Speed is to today’s design what ornament was to yesterday’s.
  • Don’t design to prove you’re clever. Design to make the user think she is.

Also published in Medium

Translated into German (also here) by Mark Sargent

Translated into French by Jean-Baptiste Sachsé

Translated into Turkish by omerbalyali.

Translated into Spanish by Tam Lopez Breit.

Ad Blocking Phase II

screenshot of Choice app from Been, Inc.

THE WORLD has finally caught up with Been, Inc. Three years ago, this tiny start-up company shared my studio space in New York. Their product idea was remarkably original: instead of passively accepting the data collection and loss of privacy that comes with most ad networks on the web, what if people had a choice—to either block ads and third-party trackers entirely, or earn rewards for letting ads through?

The initial web-based product, playfully designed by Monkey Do, took the scariness and complexity out of tracking issues, and returned the decision making power to the consumer. Unfortunately, the mainstream web wasn’t ready for ad blocking, and consumers en masse either weren’t ready to think about privacy, or simply didn’t know the company’s value proposition because of its nonexistent marketing budget. (The only thing that kills products faster than no marketing is poor execution—although a handful of products have survived both.)

To stay afloat in the face of mass indifference, the company temporarily pivoted, using a portion of their technology to facilitate sharing of web content between consumers, much like the late lamented Ma.gnolia or Pocket’s new Recommended section. But where Ma.gnolia and Pocket were/are text-powered, the pivoted Been app was primarily visual, which helped it gain traction in the eduation market. Grade-school teachers and kids loved using the app for research projects—and their support helped the company stay in business long enough for the internet to catch up with their ideas.

Version 2.0 of their Choice app for iOS is the product of years of work on user privacy, data ownership, and control. iOS fans can download it at www.been.mobi/getv2edu.

The company’s site explains the push-button mechanics through which you can choose to block ads and third-party trackers in your apps and Safari, or earn rewards by letting ads through and sharing (strictly non-personal) information with Been. (Earn Mode is limited to US users for now.)

When I foolhardily put down my deposit on a New York studio that was larger and more costly than what I needed, my hope was that it would attract a like-minded community of designers and tech companies from whom I would learn and be inspired. That was certainly the case with my friends at Been! I wish them great success at helping to bring the changes our web needs.

Progressive Enhancement FTW with Aaron Gustafson

Book cover art - Adaptive Web Design: Crafting Rich Experiences With Progressive Enhancement, 2nd EditionLONGTIME developer, lecturer, and web standards evangelist Aaron Gustafson and I discuss the newly published update to Aaron’s best-selling industry classic “love letter to the web,” Adaptive Web Design: Crafting Rich Experiences With Progressive Enhancement, 2nd Edition (New Riders, 2015) in Episode № 140 of The Big Web Show—everything web that matters.

Topics covered include: Aaron’s superhero origin story as a creator of progressively enhanced websites and applications; “we’re not building things we haven’t built on the web before;” “creating opportunities for people outside your comfort zone;” development in the world of Node.js; “every interface is a conversation;” “visual design is an enhancement;” “interaction is an enhancement;” nerding out over early web terminal interfaces; Microsoft, Opera, and more.

Sponsored by DreamHost, Braintree, and Thankful.

Deal

Save 35% off Aaron Gustafson’s Adaptive Web Design: Crafting Rich Experiences With Progressive Enhancement, 2nd Edition when you enter discount code AARON35 at checkout.

URLS

https://www.aaron-gustafson.com/about/ – About Aaron
http://adaptivewebdesign.info/2nd-edition/ – Adaptive Web Design Second Edition (“95% new material”)
[PDF] – Read the first chapter free (PDF)
http://adaptivewebdesign.info – First Edition, May 2011 (read the entire first edition free)
http://webstandardssherpa.com – Web Standards Sherpa
https://github.com/easy-designs/batch-ua-parser.php – UA Parser Script by Aaron – on Github
https://www.aaron-gustafson.com/notebook/ – Notebook: Aaron’s blog
https://www.aaron-gustafson.com/speaking-engagements/ – Engagements: Aaron’s speaking page, using Quantity Queries
http://alistapart.com/article/quantity-queries-for-css – “Quantity Queries for CSS” by Heydon Pickering in A List Apart
http://alistapart.com/author/agustafson – A List Apart: articles by Aaron Gustafson
http://alistapart.com/article/goingtoprint – Eric Meyer’s “CSS Design: Going to Print” in A List Apart
https://www.whatsapp.com – Whatsapp

Web Performance Today

WEB DESIGNERS have cared about web performance since the profession’s earliest days. When I started, we saved user bandwidth by employing GIF images that had the fewest possible colors—with no dithering, when possible, and by using actual web text instead of pictures of web text. (Kids, ask your parents about life before CSS enabled, type designers created formats for, browsers finally supported, and Typekit quickly popularized web fonts.)

Later, we learned to optimize JPEGs and blur their backgrounds: the blurrier large swathes of a JPEG image can be, the lower the bandwidth requirements for the image. We found the optimally performant size for repeating background tiles (32 x 32 and 64 x 64 were pretty good) and abandoned experiments like single-pixel-wide backgrounds, which seemed like a good idea but slowed browsers, servers, and computers to a crawl.

We developed other tricks, too. Like, when we discovered that GIF images optimized better if they possessed repeating patterns of diagonal lines, we worked diagonal background images into a design trend. It was the trend that preceded drop shadows, the wicked worn look, and skeuomorpic facades, which were themselves a retro recurrence of one of the earliest styles of commercial web design; that trend, which was always on the heavy side, performance-wise, eventually gave way to a far more performant grid-driven minimalism, which hearkened back to classic 1940s Swiss graphic design, but which our industry (sometimes with little knowledge of design history) called “flat design” and justified as being “born digital” despite its true origins going back to pixels, protractors, and a love of Greek mathematics.

All of this nostalgia is prelude to making the obvious comment that web design today is far more complex than it was in those golden years of experimentation; and because it is so much more complex, front-end performance is also far more complicated. You didn’t need an engineering degree to run DeBabelizer and remove needless elements from your markup, but, boy, does front-end design today feel more and more like serious coding.

All of which is to say, if you’re a front-end designer/developer, you should probably read and bookmark Nate Berkopec’s “Ludicrously Fast Page Loads – A Guide for Full-Stack Devs.” While you’re at it, save it to Pocket, and as a PDF you can read on your tablet.

I cannot verify every detail Nate provides, but it is all in line with recommendations I’ve heard over and over at top conferences, and read in articles and books by such performance mavens as Jake Archibald, Lara Hogan, Scott Jehl, and Yesenia Perez-Cruz.

You should also pick up these great books on performance:

(It’s not why I wrote this post, but if you order Scott’s book today, you can save 10% when you enter discount code ABAHARVEST at checkout.)

Even the most complex site should work in any device that reads HTML. It should work if stylesheets fail to load or the device doesn’t recognize CSS. It should work if JavaScript fails to load or the device doesn’t recognize JavaScript. The principles of standards-based design will never change, no matter how complex our web becomes. And as it becomes more complex (and, arguably, much richer), it behooves us to squeeze every byte of performance we can.

Websites can never be too rich or too thin.

You’re welcome: cutting the mustard then and now.

EVERY TIME I hear a young web developer cite the BBC’s forward-thinking practice of “cutting the mustard,” by which they mean testing a receiving web device for certain capabilities before serving content, I remember when my team and I at The Web Standards Project invented that very idea. It’s a million web years ago, by which I mean fourteenish human years ago, so nobody remembers but me and some other long toothed grayhairs, plus a few readers of the first edition of Designing With Web Standards. But I like you, so I will tell you the story.

Back then in those dark times, it was common practice for web developers to create four or more versions of the same website—one for each browser then in wide use. It was also a typical (and complementary) practice to send server-side queries to figure out which browser was about to access a site’s content, and then send the person using that browser to the site version that was configured for her browser’s particular quirks, proprietary tags, and standards compliance failings.

The practice was called “browser detection.” Nobody but some accessibility advocates had ever questioned it—and the go-go dot-com era had no time or care for those folks.

But we at The Web Standards Project turned everything on its head. We said browsers should support the same standards instead of competing to invent new tags and scripting languages. We said designers, developers, and content folks should create one site that was accessible to everyone. In a world like that, you wouldn’t need browser detection, because every browser and device that could read HTML would be able to feast on the meat of your site. (And you’d have more meat to share, because you’d spend your time creating content instead of crafting multiple versions of the same site.)

To hasten that world’s arrival, in 2001 we launched a browser upgrade campaign. Those who participated (example participant here) employed our code and content to send their users the message that relatively standards-compliant browsers were available for every platform, and inviting them to try one. Because if more people used relatively standards-compliant browsers, then we could urge more designers and developers to create their sites with standards (instead of quirks). And as more designers and developers did that, they’d bump against still-unsolved standards compliance conundrums, enabling us to persuade browser makers to improve their standards compliance in those specific areas. Bit by bit, stone by stone, this edifice we could, and would, erect.

The code core of the 2001 browser upgrade campaign was the first instance of capability detection in place of browser detection. Here’s how it worked. After creating a valid web page, you’d insert this script in the head of your document or somewhere in your global JavaScript file:

if (!document.getElementById) {
window.location =
"http://www.webstandards.org/upgrade/"
}

We even provided details for various flavors of markup. In HTML 4 or XHTML 1 Transitional documents, it looked like this:

<script type="text/javascript" language="javascript">
<!-- //
if (!document.getElementById) {
window.location =
"http://www.webstandards.org/upgrade/"
}
// -->
</script>

In STRICT documents, you’d either use a global .js file, or insert this:

<script type="text/javascript">
<!-- //
if (!document.getElementById) {
window.location =
"http://www.webstandards.org/upgrade/"
}
// -->

You could also just as easily send visitors to an upgrade page on your own site:

if (!document.getElementById) {
window.location =
"http://www.yourdomain.com/yourpage.html"
}

Non-WaSP members (at the time) J. David Eisenberg, Tantek Çelik, and Jim Heid contributed technical advice and moral support to the effort. WaSP sysadmin Steven Champeon, the inventor of progressive enhancement, made it all work—under protest, bless him. (Steve correctly believed that all web content should always be available to all people and devices; therefore, in principle, he disliked the upgrade campaign, even though its double purpose was to hasten the arrival of truly standards-compliant browsers and to change front-end design and development from a disrespected world of hacks to a sustainable and professional craft. ((See what I did there? I’m still respectfully arguing with Steve in my head.)))

Discovering rudimentary DOM awareness or its absence in this fashion was the first time web developers had tested for capabilities instead of chasing the dragon in a perpetual and futile attempt to test for every possible browser flavor and version number. It was the grandparent, if you will, of today’s “cutting the mustard.” And it is analogous as well to the sensible responsive design practice of setting breakpoints for the content, instead of trying to set appropriate breakpoints for every possible device out there (including all the ones that haven’t been invented yet).

Which reminds us that the whole point of web standards was and is forward compatibility—to create content that will work not only in yesterday’s and today’s browsers and devices, but in all the wonderful devices that have yet to be invented, and for all the people of the world. You’re welcome.

—CHICAGO, Westin Chicago River Hotel, 1 September 2015


Hat tip: John Morrison

This Week In The Death of Publishing & The Web

FAST COMPANY writes:

Apple, like Facebook, has entered into a standoff with the publishing industry and the open, if for-profit, web. And it’s being done under the aegis of design: choose a better reading experience on our curated platform, they offer, or let us clean up that pesky advertising on the open web.

Source: Apple Saves Publishing… For Itself

N.B. This is not the first time this conversation has arisen, nor will it be the last. Off the top of my head, see also:

⇛ Is the web under threat? Will Facebook or Apple kill or save journalism? Share your thoughts or your favorite links on the subject. Bonus points for older articles.

No Good Can Come of Bad Code: Ask Dr Web in A List Apart

Remember: the future will come whether you design for it or not. If your company charges $300,000 for a website that won’t work on next week’s most popular device, your company won’t be able to stay competitive in this business. It might not even be able to stay in the business, period. After all, clients who pay for sites that break too soon will look elsewhere next time—leaving your company perpetually hunting for new clients in a downward spiral of narrowing margins and diminishing expectations.

Your company’s survival is tied to the ability of the products it makes to work in situations you haven’t imagined, and on devices that don’t yet exist. This has alwaysbeen the challenge of web design. It’s one A List Apart has taken seriously since we began publishing, and our archives are filled with advice and ideas you can boil down and present to your bosses.

Source: No Good Can Come of Bad Code