this space intentionally left blank

March 19, 2014

Filed under: tech»web

Spoiled for Choice

Paul Kinlan's post, Add-to-homescreen Is Not What the Web Needs, is only the most recent in a long-running debate surrounding "apps" on mobile, but it is thought-provoking. Kinlan, who cheerleads for the Web Intents integration system in Chrome, naturally thinks that having an "add-to-homescreen" option misses the point:

I want to see something much more fundamental. The web offers something far richer: it encourages lightweight usage with no required installation and interaction with on-demand permissions. I never want to see an install button or the requirement to understand all the potential permissions requried before trying the app. The system should understand that I am using an app and how frequently that I use it and it should then automatically integrate with the launch points in the OS.

Kinlan has a great point, in that reducing the web to "just another app" is kind of a shame. The kinds of deeper integration he wants would probably be prone to abuse, but they're not at all impossible. Mozilla wants to do something similar with Firefox OS, although it probably gets lost in the vague muddle of its current state. Worse, Firefox OS illustrates the fundamental problem with web "apps" on mobile, and it's probably going to take a lot more than a clever bookmark to solve the problem. That's because the real problem with the web on mobile is URLs, and nobody wants to admit that.

As a web developer, I love URLs. They're the command line of the web: a powerful tool for organizing information and streaming it from place to place. Unfortunately, they're also like the command line in other ways: they're arbitrary, much-abused, and ultimately difficult to type on mobile. More importantly, nobody who isn't a developer really understands them.

There is a now-infamous example of the fact that people don't understand URLs, which you may remember as the infamous Facebook login of 2010. That was the point at which the web community realized that for a lot of users, logging into Facebook went a lot like this:

  1. Search Google for "facebook login"
  2. Click the first link
  3. Look for the password box

As a process, this was fine until ReadWriteWeb actually published a story about Facebook's unified login that rose to the top spot in the Google search listings, at which point hundreds of people began commenting on the article thinking that it was a new Facebook design. As long as they got to Facebook in the end, to these people, one skinny textbox was basically as good as another. I've actually seen people do this in my classes, and just about ground my teeth to nubs watching it happen.

In other words, the problem is discovery. An app store gives you a way to flip through the listings, see what's popular, and try it out. You don't need to search, and you certainly don't need to remember a cryptic address (all these clever .io and .ly addresses are, I'm pretty sure, much harder to remember than plain old .com). For most of the apps people use, they probably don't even scroll very far: the important stuff, like Facebook and Candy Crush, is almost certainly at the top of the store anyway. Creating add-to-homescreen mechanisms is addressing the wrong problem. It's not useless, but the real problem is not that people don't know how to make bookmarks, it's that they can't find your web app in the first place.

The current Firefox OS launcher isn't perfect, but it at least shows someone thinking about the problem. When you start the device, it initially shows a search box titled "I'm thinking of...". Tap into the box and even before you start typing it'll instantly start showing a set of curated sites sorted into categories like "social" and "games." If you want isn't there, you can continue to search the web as a whole. Sites launched from this view start in "app mode" with no URL bar, even though they're still just web sites and nothing's technically been installed. Press the bookmark button, and it's added to your homescreen. It's exactly as seamless as we've always claimed the web could be.

On top of this, sadly, Mozilla adds the Marketplace app, which can install "packaged" apps similar to Chrome OS. It's an attempt to solve the discoverability problem, but it lacks the elegant fluidity of the curated results from the launcher search (not to mention that it's kind of confusing). I'm not wild about curation at the best of times — app stores are a personal pet peeve — but it serves a purpose. We need both: an open web, because that's the spirit of things, and a market destination, because it solves the URL discovery process.

What we're left with is a tragedy of the commons. Mozilla's marketplace can't serve the purpose of the open web, because it's a curated and little-loved space that's only for Firefox OS users. Google is preoccupied with its own Chrome web store, even though it's certainly in a position to organically track the usage of web apps via user searches. Apple couldn't care less. In the meantime, web app discovery gets left with the scraps: URLs and search. There's basically no way, other than word of mouth, that your app will be discovered by normal people unless it comes from an app store. And that, not add-to-homescreen flaws, is why we can't have nice things on the web.

February 27, 2014

Filed under: tech»coding

Just Use Ed

There's a regular, recurring movement to replace text-based programming with some kind of graphical version. These range from Scratch (offering "blocks" to make text syntax more friendly) to Pure Data (node-based dataflow programming). Rarely do any of them take off (Scratch and pd are successful within education and audio, respectively, but little-used elsewhere), but that doesn't stop anyone from trying.

It may be the fact that I started as a writer, or that I was a language nut in college, but I've always felt that text-based programming doesn't get a lot of respect. The written word is one of the great advances of civilization. You can pack a lot of meaning into a line of text, and code is no different. Good source code can range from whimsical to workmanlike, a gamut that's hard to imagine existing in the nest of wiring that is the graphical languages.

As a result, text editing is important to me. It's important to a lot of people, but most of them don't write an editor, and I ended up doing that. I figured I'd write up some notes on the different ways people have written their editors, and why I picked one model in particular for Caret. It may be news to many people that there are even multiple models to consider, but that's programming for you: there's at least four ways to put letters into a document, and bitter wars between factions for each of them.

The weirdest editor still in common usage, of course, is Vim. Born from the days when network connections were too slow to actually update text in realtime, Vim uses a shorthand language for text editing. You don't hold delete until some amount of text is gone in Vim — instead, you type "d2w", meaning "delete two words." You also can't type directly until you switch into the "insert" mode with the "i" or "a" commands. Like many abusive subcultures, people who learn this shorthand will swear up and down that it's the only way to work, even though it's clearly a relic of a savage, bygone age.

(Vim and Emacs are often mentioned in comparison to each other, because they tend to be used by very similar kinds of people who, nevertheless, insist that they're very different. I don't really know very much about Emacs, other than it's written in Lisp and it's not as eyeball-rolling weird as Vim, so I'm ignoring it for the purposes of this discussion.)

Acme tends to look a little more traditional, but it is actually (I think) more radical than Vim, because it redefines the relationship between interface and editor. Acme turns all documents into hypertext: middle clicking a filename opens that file, and clicking a word (like "copy" or "paste") actually runs that command (either in a shell, or in Acme). There's no fixed interface in Acme, just a set of menu bars that are also text fields. I love the elegance of this idea, where a person builds an text editor's UI just by... editing text.

Which brings us to Sublime. I've been very clear that Caret is modeled closely on Sublime, with a few changes to account for quirks of the platform and my own preferences. That's partly because it's generally considered the tool of choice for web developers, and partly because it's genuinely the editor that has my favorite workflow tools. Insofar as Sublime has a philosophy, it is to prioritize clarity and transparency over power. That's not to say it's not powerful — it certainly is. But it tries to be obvious in a way that other editors do not.

For example, say you need to change a variable name throughout a function. Instead of immediately writing a regex or a macro, Sublime lets you select all the instances of that variable with the mouse or keyboard, which creates multiple cursors. Then you just type the new name. It's not as powerful as a regular expression, but 90% of the time, it's probably what you wanted to do anyway. Sublime's command/go-to palette is another smart-but-obvious idea: instead of hunting through the menu or the filesystem, open the palette and type to fuzzy-filter the list. It's the speed of a command line without the hostility.

To paraphrase an old saw, the best feature is the one you have with you. That's why putting the command palette in Caret was a must, since it puts all the menu items just a few keystrokes away. Even now, I don't always remember where a given menu item is in the toolbar in my own editor, because I hardly ever use the mouse. There was a good week when menus looked completely wrong, and I never even noticed.

The reason I've started looking over other editors now is that I think Caret can reach for more than just parity with Sublime. I'm intrigued by the ways that Acme makes it easy to jump around files, and lately I've been thinking about what it means to be an editor built in "web technology." Adding the ability to open links from a URL is a given, but it's only the start: given that OAuth provides a simple, standard method of authenticating against a remote server, a File implementation for Caret could easily open files against service endpoints for something like Github or Ghost in a generic way. It would be a universal cloud editor, but easily capable of running locally.

Of course, Caret won't be the last editor to try something different (just this week, Github announced their own effort), but it's still pretty amazing how many ways we have to solve a simple problem like "typing letters into a file." As a writer and a coder, I love being spoiled for choice.

February 20, 2014

Filed under: music»business

The Grind Date

Lots of musicians have given their work away for free, but De La Soul is different. On February 14th, to celebrate the 25th anniversary of Three Feet High and Rising, they uploaded their back catalog and made it available to anyone who signed up for their mailing list. There are at least three really interesting things about De La's Valentine's Day gift, especially given the fact that the albums on offer have never been available digitally before.

Of course, they almost weren't available last week, either. The original links sent out that morning went to a Dropbox account, which (no surprise) was almost immediately shut down for excessive bandwidth use when everyone on the Internet went to download the free tracks. A new solution was soon found, but it just goes to show that even a band that you'd think would absolutely have a nerdy, Internet-savvy friend, didn't. I kind of like that, though. It gives the whole affair a charming, straight-from-their-garage feel to it.

The first interesting thing is the question of why the albums were released for free in the first place. Reports are vague, but the gist is that De La Soul's label, Warner Brothers, hasn't cleared the samples on the albums, so they can't be sold online. Due to the weirdness of music contracts, you can still buy a physical copy of Three Feet High — it's even been re-released with bonus material a couple of times — but you can't buy the MP3. While it's true that people still buy CDs, I'm guessing that number doesn't include most of De La's fanbase.

But that leads us to the second twist in the story, which is that what De La Soul did is probably illegal. Like a lot of musicians, they own the songs, but they don't own the music: the master recordings of those albums are owned by the label instead. The fact that De La Soul could be sued for pirating their own albums explains a lot about both the weird, exploitative world of music contracts, as well as the ambivalence a lot of musicians feel for labels.

Let's say that nobody sues, however, and Warner Bros. decides to tacitly endorse the giveaway. De La Soul still doesn't have access to the masters, so how did they get the songs to distribute? Interesting fact number three: when people examined the metadata for the tracks, they turned out to be from a Russian file-sharing site of dubious legality. Basically, the band really did pirate their own work. I'm a little disappointed they didn't rip their own CDs, but considering that they didn't have anyone around to tell them not to use Dropbox as a CDN, we probably shouldn't be surprised. It was probably easier this way, anyway — which says a lot about the music industry, as well.

If what De La did was legal, does that make the pirated copies also legal? Would it have been legal for me to download the exact same files from Russian servers while the "official" songs were available? And now that the campaign is over and you still can't buy Stakes Is High from Amazon MP3, are the pirate sites back to being illegal? Nothing I can remember from the Napster days answers these questions for me — although to be fair, all I really remember from Napster is a number of novelty punk covers and making fun of Lars Ulrich.

Assuming they're not sued, and so far they've gotten away from it, the download promotion should be good for De La Soul. Or to put it more bluntly, they probably figured it couldn't hurt, and they're likely right: if these songs were never going to end up for sale online, most of their remaining value is promotional (for shows and other albums) anyway. So it's a savvy move, but it's one unlike the other artists (Nine Inch Nails, Radiohead) that have offered their music for free online. Those bands were issuing new material, unencumbered by sample clearance, and in support of an entirely different genre. I suspect a lot of classic hip-hop artists in similar situations may be watching this new promotion with a lot of interest. Chances are, that's just the way De La likes it.

February 12, 2014

Filed under: journalism»industry

Last Against the Wall

I think most of us can imagine the frustrating experience of sharing a newspaper with the New York Times op-ed page. It must burn to do good reporting work, knowing that it'll all be lumped in with Friedman's Mighty Mustache of Commerce and his latest taxi driver. Let's face it: the op-ed section is long overdue for amputation, given that there's an entire Internet of opinion out there for free, and almost all of it is more coherent than whatever white-bread panic David Brooks is in this week.

But even I was surprised by the story in the New York Observer last week, detailing just how bad the anger between the journalists and the pundits has gotten:

The Times declined to provide exact staffing numbers, but that too is a source of resentment. Said one staffer, “Andy’s got 14 or 15 people plus a whole bevy of assistants working on these three unsigned editorials every day. They’re completely reflexively liberal, utterly predictable, usually poorly written and totally ineffectual. I mean, just try and remember the last time that anybody was talking about one of those editorials. You know, I can think of one time recently, which is with the [Edward] Snowden stuff, but mostly nobody pays attention, and millions of dollars is being spent on that stuff.”

First of all, the Times still runs unsigned editorials? And it takes more than ten people to write them? Sweet mother of mercy, that's insane. I thought the only outlet these days with an actual "from the editors" editorial was the Onion, and even they think it's an old joke. You might as well include an AOL keyword at the end.

And yet it's worth reading on, once you pick your jaw up off the floor, to see the weird, awkward cronyism that's not just the visible portions of the op-ed page, but its entire structure. Why is the editorial section so bad? In part, apparently, because it's ruled by the entitled, petty son of a former managing editor, who reports directly to the paper's publisher (and not the executive editor) because of a family debt. Could anything be more appropriate? As The Baffler notes:

What a perfect way to boil tapioca. Dynasties kill flavor. A page edited by a son because dad was kind of a big deal is a page edited with an eye to status and credentials. Hey, Friedman must be good—he won some Pulitzers. That’s a prize, you see, that Pulitzer thing. Big, big prize. We put it up on the wall. (Pause) Anyway, ready for a cocktail?

The Observer argues that the complaints from the newsroom at large are professional, not budgetary: reporters are angry about shoddy work being published under the same masthead as their stories. But it's hard to imagine that money doesn't enter into it at all. A staff of ten or more people, plus hundreds of thousands of dollars for each of the featured op-ed writers, would translate into serious money for journalism. It would hire a lot of staff, pay for a lot of equipment. You could use it to give interns a living wage, or institute a program for boosting minority participation in media. Arguably, you could put it into a sack and sink it into the Hudson, and still end up ahead of what it's currently funding.

Of course, most papers don't maintain a costly op-ed section, so it's not like this is an industry-wide problem. I don't know that I would even care, normally, beyond the sense of schadenfreude, except for the fact that it's such a perfect little chunk of journalistic mismanagement: when finances get strained, the cuts don't get made from politically-connected fiefdoms, or from upper-level salaries. They get taken from the one place that should be protected, which is the newsroom itself.

Call me an anarchist, but the most depressing part of the whole debate is that it's focused on how big the op-ed budget should be, or how it should be run, instead of whether it should exist at all. What's the point of keeping it around? Or, at the very least, why populate it with the same bland, predictable voices every day? One of the things I respect about the New York Times is the paper's forays into bucking conventional wisdom, from the porous subscription paywall to its legitimately innovative interactive storytelling. There's a lot of romance and tradition in the newsroom, but the op-ed page shouldn't be a part of it. I say burn it to the ground, and let's see what we can grow on the ashes.

February 5, 2014

Filed under: tech»web

Chromecastic

After a busy couple of weeks, Seattle went and won the Super Bowl, leading to the world's most polite celebration in our neighborhood:

There was another prize for the weekend: a friend of ours gifted us a Chromecast, which will be much appreciated since there's currently no way to watch HBO on the PS4. On Monday, Google released the public SDK for the platform, so I decided to poke around a bit.

Chromecast has a decidedly-odd way of loading content. The device itself is just a thin shell around a Chrome window, and it loads web pages like any other browser. But there's no keyboard of any kind, so how does it know which page to load? The answer is that each "app" has an ID listed with Google, corresponding to a set of URLs that the developer provides. When a mobile app or a computer running Chrome triggers the Chromecast, it sends the app ID, which the device then sends to Google and gets a URL in return (or, if the app hasn't been listed, it does nothing). From that point on, you can send messages to the page over via Google's cloud, and your page can do whatever you want it to do. Getting your pages linked to an application ID on the Chromecast lookup servers costs $5.

Five dollars is a low price, but it's more than I really want to pay for a glorified DNS. I'm a little dismayed by the restrictions on the open web — I'd like the option to just send a URL directly. I'm also holding out for a pure JavaScript API, instead of piggybacking on the Chrome extension. So I probably won't be writing any Chromecast apps any time soon. But it's certainly not for a lack of ideas. The interaction model that Chromecast uses — where the screen is just a dumb display, but it can receive commands from other web-accessible devices — is strikingly similar to Microsoft's SmartGlass model. And where Microsoft seems to see it as a way to create companion apps for XBox, I think it's interesting to think about how this "distributed I/O" model could be used for standalone applications.

  • The Chromecast isn't going to rival any consoles, but it wouldn't have to be for a lot of group gaming experiences. Just having a screen that could be used as a scoreboard, or a trivia question where phones are used as buzzers, would be a cool usage that doesn't require precise controls or rich graphics. Turn-based games could easily use the screen as a board overview, while letting people zoom in and move their pieces from their local touchscreen. It also provides an interesting split between public and private information for players that many video games (excepting the Wii U and Dreamcast) couldn't duplicate.
  • I love maps. I think they're the real face of augmented reality, as any regular traveler can attest these days. But they don't have to be mobile. A Chromecast could easily serve as a map up on your wall, updated with whatever information you find interesting. Maybe that's as simple as the weather, but imagine being able to tag it with RFID information or last-known positions for people in your household. Systems like Google Now, which learn from your schedule, could even post notifications for the buses that are coming or traffic problems that you're likely to face.
  • Along those same lines, a simple dashboard could be helpful for businesses and individuals. Being able to throw metrics up on the wall with a web browser is not a new thing, but tying it to a smart, feed-aware service would open up all kinds of new tricks, like being able to leave yourself notes via a hashtag on social networks. There's not really any input needed: it's just a passive display of whatever you want to keep yourself caught up on, in an easy at-a-glance format.
  • Finally, it's probably just all the public speaking I've been doing lately, but it's tempting to think that a presentation app for Chromecast would be super-helpful for speakers. A lot of times, when I go to a meetup or a new classroom, it's hard to predict what kind of video hookups the projector will have, assuming that they even have a projector. But many times, there will be a big-screen LCD TV, with a handy HDMI input. Being able to carry a Chromecast with me to make my presentations, especially if the speaker notes can be viewed separately, would be awesome.
When we talk about the web being device-agnostic, the Chromecast is a perfect example of what we're talking about. It's radically different from other web clients: low DPI on a big screen, no local input, and unpredictable performance. But that's the power of the platform — as a toolkit, its reach is unparalleled. And the restrictions prove to be exciting inspiration for new uses, just as touchscreens came with their own unique challenges and advantages. I don't know if Chromecast is going to be successful, but the hacks for it are going to be really interesting.

January 23, 2014

Filed under: random»personal

This Week

...is ridiculously busy. Class at SCCC has ramped up, I've been prepping for the University of Washington workshop, and of course I've got my everyday work at ArenaNet as well. In lieu of a more substantial post, here are some quick notes about what's on my plate.

  • The homepage for the news apps workshop (now formally COM499B at UW) is located here. It's not terribly comprehensive yet, but my goal is to update it with my presentations, things that I mention during class, and in-class work as I go. In other words, it's not a textbook, it's a record that students can refer back to later. I'd welcome suggestions for other additions to it.
  • While uploading the COM499 page, I accidentally overwrote the root index.html on my portfolio, which led to A) a panicky few minutes finding the Google cache of my page and recovering it, and B) the realization that I had no way to recreate my portfolio page, now that it's not generated via Blosxom anymore. As Mike Bostock wrote in his ode to Make, automating any production process is important because it formalizes things, and makes them reproducible. After an hour's work or so, ThomasWilburn.net is still a static page, but it's built from a template and a Node-based recipe, so I'll never lose it entirely again. Once I've cleaned things up a little, I may open-source the tool for other ex-Blosxom users.
  • Caret will break 30,000 users today or tomorrow. This is, to be honest, mind-boggling to me. The last time I wrote about it here, it had 1,500 users. Since that time, I've added a ton of new functionality, accepted contributions from other developers who want to help add features, found out that members of the Chrome team are actively using it (although, I assume, not to write Chrome itself), and filed several bugs against the chrome.* APIs. Caret's my daily editor for class work and personal projects, and I'm incredibly pleased by how well it compares against Sublime and other native editors.
  • Dates have been locked in for Urban Artistry's Soul Society festival in DC this year: April 14-20, with the main event toward the end of the week as usual. We'll be adding specific event schedules in the next couple days, so keep an eye out.

January 16, 2014

Filed under: gaming»software

Field of Streams

At the Consumer Electronics Show, Sony showed off the fruits of their acquisition of Gaikai, a company that streams video games over the Internet. This is something with which I have a little experience: in 2012, I worked for Big Fish on the now-discontinued Big Fish Unlimited, which did the same thing but for casual games. I was pretty sure that it was doomed then, and I'm pretty sure that similar platforms — including Sony's Playstation Now and OnLive — are doomed now, and for the forseeable future. The reason is simple: streaming just doesn't scale.

Let's say you're playing a game by streaming it to yourself from another computer you own, as in Nvidia's Shield or Valve's SteamOS. To do this you need two boxes: one to actually run the game, and one to act as a thin client, providing the display and input support. There are lots of things that can cause problems here — network connectivity, slow hardware, latency — but at the very least you're always going to have enough hardware to run the game, because you own both ends of it. Streaming scales in a linear fashion.

Now pretend you're doing the same thing, but instead of running the host machine yourself, it lives in a remote datacenter. For each person who's playing, the streaming service needs another computer to run the game — the scaling is still linear. You can't cache a game on a cheap edge node like you can a regular file, because it's an interactive program. And there's no benefit to running all those games simultaneously, the way that Google can leverage millions of GMail customers to lower e-mail transmission costs and spam processing algorithms cheaper. No, you're stuck with a simple equation: n players = n servers. And those servers are not cheap: they need hefty graphics cards, local storage, cooling systems, sound cards, etc.

And it gets worse, because those players are not going to obligingly spread their playtime around the clock to keep the load constant. No, they're going to pile in every evening in much higher numbers — much higher — than any other time of the day. League of Legends, a single (albeit very popular) game has had more than 5 million concurrent players. During peak hours, streaming providers will struggle to run enough host boxes. During off hours, all that expensive hardware just sits idle, completely unused.

At first, these problems seem solvable. When you don't have a lot of customers, it's not that bad to add new hosts to compensate for growth. Those earlier players may be more forgiving of wait times, attributing them to growing pains. But consider the endgame: if something like Playstation Now achieves real, widespread success (despite all the other network latency and quality of service issues these services always face), Sony's ultimate scenario is having literally millions of rack-mounted PS4s in datacenters around the country, many of them running at peak capacity for hours on end. That's more servers than Google, Microsoft, and Facebook put together.

At Big Fish, the business argument was that casual games could be run with multiple applications to a machine, so the scaling pressure was lower. But it's still linear: you've lowered the total number of machines you might need in the long run, but there's still a direct relationship between that number and your number of players. The only way to scale online gaming gracefully is to either find a way that games can share state (i.e., MMOs), or offload more of it to the client. As a front-end JavaScript specialist, I always thought Big Fish would have better luck porting its games to the browser instead of streaming them to a Java applet.

But there's only so much you can move to the client when your selling point is "next-gen games without next-gen hardware." In the case of Sony and OnLive, no amount of browser wizardry or Playstation branding is going to solve that fundamental scaling problem. It may be workable for instant demos, or beta previews. But for mainstream gaming, without a miraculous breakthrough in the way games are built and executed, the math just isn't there.

January 10, 2014

Filed under: journalism»new_media

App-y New Year

At the end of January, I'll be teaching a workshop at the University of Washington on "news apps," thanks to an offer from the outgoing news app editor at the Seattle Times. It's a great opportunity, and a chance to revisit my more editorial skills. From the description:

This bootcamp will introduce students to the basic components of creating news applications, which are data-powered digital stories tied together through design, programming and journalism. We’ll walk through all the components of creating a news application, look at industry examples of what works and what doesn’t, and learn the basic coding skills required to build a news app.
Sounds cool, but it's still a wide-open field — "data-powered digital stories" covers a huge range of approaches. What do you even teach, and how do you do it in two 4-hour workshops?

It turns out that for almost any definition of "news app," there's an exception. NPR's presidential election board is a data-powered news app, but it's not interactive beyond an auto-update. Snow Fall is certainly a news app, but it's hard to call it "data-powered." How can we craft a category that includes these, but also includes traditional, data-oriented interactives like The Atlantic's Netflix Genre Generator and the Seattle Times mayoral race comparison? More importantly, how do we get young journalists to be able to think both expansively and productively about telling stories online?

That said, I think there is, actually, a unifying principle for news apps. In fact, I think it cuts to the heart of what draws me to web journalism, and the web in general. News apps are journalistic stories told via hypermedia — or, to put it simply, they have links.

A link seems like a small thing after years on the web, so it's good to revisit just how fundamentally groundbreaking they are. Links can support or subvert their anchor, creating new rhetorical devices of their own. At the most basic level, they contextualize a story. More abstractly, they create non-linearity: users explore a news app at their own pace and with their own priorities, rather than the direct stream of narrative from a text story.

A link is a simple starting place. But it starts us down a path of thinking about more complicated applications and usage. I'm fond of saying that an interactive visualization is constructed in many layers, with users peeling open the onion as far as they may want. If we're thinking in terms of other hypertext documents (a.k.a., the TV Tropes Rabbit Hole) from the start, we're already prepared when readers use similar interaction patterns to browse data-based interactives — either by shallowly skipping around, or diving in depth for a specific feature.

By reconceptualizing news apps as being hypermedia instead of a specific technology or group of technologies, such as mapping or graphing, introducing students to web storytelling gets a lot easier — particularly since I won't have time to teach them much beyond some basic HTML and CSS (in the first workshop) and a little scripting (in the second).

It also leaves them plenty of room to think creatively when presenting stories. I'd love for budding news app developers to be as interested in wikis and Twine as they are in D3 and PostGIS. Most importantly, I'd love for an appreciation of hypertext to leak into their writing in general, if only to reduce the number of print die-hards in newsrooms around the country. You don't have to end up a programmer to create new, interesting journalism that's really native to the web.

December 19, 2013

Filed under: movies»television»elementary

The Watson Problem

The difficulty in making a Sherlock Holmes adaption for American television is that we've already got three or four of them. Hyper-observant detectives are a dime a dozen, from The Mentalist to Monk. Arguably, Psych is just Holmes and his deductive skills with an added dose of arrested development (and I say that as someone who enjoys Psych at its fluffiest). Dule Hill's Gus even serves as a Watson, but reduced to a pharmeceutical rep instead of a doctor to match his detective friend's lack of ambition. The BBC's Sherlock owes Psych a debt for the visual style illustrating the deductive process, although I doubt they'd ever admit it.

I don't envy the people who decided, after the British version aired to wide acclaim, to make another Sherlock Holmes show. That's some tough competition. But I've been watching the first season of Elementary, and I have to say I'm enjoying it. The cast is growing on me, I like the lack of romantic angst, and the infrequent references to the original stories (inasmuch as I can catch them, not being a die-hard fan) are often worth a chuckle.

The biggest problem that Elementary faces is Watson — specifically, figuring out what she's supposed to bring to the team. As played by Lucy Liu, Joan Watson is an ex-surgeon who initially serves as Sherlock's live-in addiction counselor. With the terms of that job running out, partway through the first season, Sherlock offers her a position being groomed as a detective-in-training: someone who can take on his methods and become an equal part of the sleuthing consultancy.

Unfortunately, this is where the show's writers seem to have run out of steam. They know where they want this Watson to end up, and they've told us about it repeatedly, but they don't know how to get her there. She's not shown doing much studying, as such, and Holmes mentions that she doesn't read his research. As a result, Liu's Watson ends up either solving minor b-plot mysteries, dropping medical clues, or providing a convenient anchor toward which Sherlock can toss exposition. It's possible she's learning by osmosis, but this hardly provides a reason why we should care about her character arc.

It's interesting to see how the BBC Sherlock has taken a different tack with its version of the character. The British Watson, played by Martin Freeman, leans heavily on the actor's likeability and finely-tuned air of irritation to create a companion who partners with Sherlock for the adrenaline rush of it. Freeman's Watson is muscle and heart: he humanizes Sherlock and provides support. Ultimately, the relationship between the pair on the BBC show is one of friends. They enjoy going on adventures together. They have a similar restlessness. But Sherlock doesn't need Watson to solve crimes. When the show begins, he's doing relatively fine without him, although Watson's blogging certainly helps build Sherlock's reputation as a detective.

Joan Watson, on the other hand, is interested in being Sherlock — or, at least, being a consulting detective armed with his deductive methods. And in contrast to the Cumberbatch version, Jonny Lee Miller's Holmes is not nearly as self-sufficient. He's abrasive without being charming, dependent on his father for income, and recovering from a drug problem that destroyed his ability to work. Lance Mannion has commented that this weakens Holmes, but I'm not sure that I agree. Given that the original Holmes was a bit of a Mary Sue (a great observer, master of disguise, amateur boxer and stick-fighter, chemist, polyglot, and former spy) I don't miss seeing a version of the character that's less omni-capable.

Elementary wisely forgoes flashy zoom cuts to "show" how Sherlock examines a scene. They don't seem to have developed much of a substitute, unfortunately, so too often the show falls back on simply having characters explain the mystery to us. But I think this is in part because the mysteries are honestly second priority to where Elementary actually wants to focus: on the relationship between Holmes and Watson, with two possibilities for its ultimate outcome. On the one hand, it's hinted that this version of the great detective is really the result of two people working together — that Holmes and Watson together are the equivalent of the BBC Sherlock. Alternately, we're watching the origin story for a second Sherlock embodied in Joan Watson: one that can avoid the mistakes of drug abuse and arrogance, and benefit from her richer life experience as a surgeon.

The danger in speculating about a TV show this way, I've found, is the tendency to write about the show you wish you were watching, not the one that's actually onscreen. It's an easy mistake to make. I remember being mystified by John Rogers' glowing commentary on Jericho, which does not at all resemble the mediocre show that aired under that name, until I realized that really we weren't watching the same program — that the version Rogers was watching was being filtered through all the cool stuff he could have done with its premise.

And so it may be with Elementary. I'm only three-quarters through the first season, and even I will admit that it's uneven at best. It's possible I'm just a sucker for training montages. But the idea that Watson is not just a point of view character or a sounding post, but just the latest heir to a legacy of nigh-uncanny sleuthing... I have to admit, that's like catnip to me. I've got high hopes for it in the second season, and I'd put up with a lot of flexibility around the source material to watch it happen.

December 10, 2013

Filed under: gaming»design

Policing Procedurals

Even if I'm sticking with Steam for most of my gaming, our new PS4 did get me interested in Warframe, the free-to-play shooter that's available on Playstation and PC. I don't normally care for free-to-play, if only because I feel guilty for never buying anything, but I liked the central conceit of Warframe: procedurally-generated levels and highly-mobile Mass Effect-style combat. In retrospect, I probably should have been more skeptical. To understand why, we have to look back at how shooters have been built over the last twenty years.

There was a time, way before Halo and before franchises like Battlefield ran the earth, when one of the main selling points of a first-person shooter was the quantity of unique weapons that it brought to the table--an actual arms race, peaking with Duke3D which (for all its flaws) had some clever joke guns to go with the ubiquitous pistol/shotgun/chaingun trio. I'm not saying this was a better time, or that they were better games, but there was definitely a sense that the genre was about creative destruction, in the same way that fighting games are about combo systems and special attacks.

Then id Software built a monster for competitive deathmatch: Quake and its successors had an incredibly bland set of weapons, because in "serious" multiplayer the goal is to streamline everything except moving and shooting. This was the second refinement of shooter design, and it focused on the levels themselves, but as topology instead of as setting. Players concentrated on learning the levels so that they could plot a path that would keep them supplied, while denying pickups to the other players. A good Quake or Unreal Tournament player knew the game's weapons and how to aim, but more importantly they knew where to go, and when. Navigation became the mark of quality for a deathmatch bot.

Since then, these tendencies have mellowed as the possibility of more complex interactions and narratives has become available. Environments are built more for realism and story, weapons are more traditional and not usually why you buy the game. Which brings us to Warframe, which has basically none of these things. There's hardly any story, the "levels" are randomly generated from a series of tilesets, and the weapons are part of the free-to-play grind: either buy a new gun with real money, or spend a lot of time crafting one within the game's economy. Unlike the Mass Effect and Gears of War titles it resembles, there's no explicit cover system, but players do have a much wider range of movement options than a typical shooter: there are slides, flips, and wall runs available through various key combos.

If Warframe's computer-generated levels were any good, this would be a different post. Good levels would give players a way to put their acrobatic movement skills to good use, rewarding people who have learned the parkour system and can improvise in response to new environments. But the random generator mostly builds long, boring hallways connecting wide-open, pre-designed rooms, none of which require any particular skill outside of strafing and taking cover behind walls. Since players can't learn the levels and their flow, they can't optimize or get better at moving through them. And since new weapons require an investment of serious cash or time, almost everyone's using the same rifle and the same melee weapon, which means you never see anything that makes you want to spend any money or time in the first place.

The irony of this problem is that someone already got the formula right for doing procedural FPS games, and they did it by almost exactly reversing Warframe's formula. Borderlands has hand-built levels and enemy placement, combined with randomized weapon generation: each gun consists of components assembled onto a set of base bodies, which vary by "manufacturer" with certain preset tendencies and aesthetics. For example, Mariwan guns always inflict status effects (poison, fire, etc), while Jacobs weapons are Western-themed and can often fire as fast as the player can mash the button. Within those simple parameters, however, the results when you pull the trigger can vary wildly.

The result is a game that combines the two old-school driving forces of FPS design — clever level design and weapon variety — with the collector's urge that powers massive multiplayer games (Borderlands even borrows the color-coded quality markings from World of Warcraft, making it easy to evaluate a weapon drop in an instant). The innovation is not proceduralism — games like Diablo have long offered that — but figuring out how to balance it with the formula for a replayable and rewarding shooter. As someone who almost totally lacks a collection instinct, but loves the classic FPS genre, Borderlands 2 hits the sweet spot with remarkably few missteps (it's also surprisingly smart and funny, which is a welcome change).

I don't think procedural generation is impossible for first-person games — indeed, I think it's likely to have a bright future, particularly as web games mature and optimize for delivery size — but it illustrates just how difficult the challenge is likely to be for anyone who attempts it. For all that people talk about the genre as if it's just a collection of bro-heavy manshooters, there is undeniably a huge amount of craft that goes into the fundamental mechanics. As Kevin Cloud notes in Dan Pinchbeck's analysis of Doom (now 20 years old!),

Every genre has its real strengths, but in a shooter... if running and shooting is not fun, doesn’t feel natural, doesn’t feel visceral and powerful, then I think you are going to lose out.
Movement in FPS games is not just about how the player transitions from point A to point B, but about all the obstacles and decisions that make up that route. As such, building procedural content is not impossible, but it needs to provide good options for cover, paths for moving between pickups, and unexpected chances to either ambush enemies or be ambushed. Warframe may do this one day, but right now it's failing miserably. In the process, it's showing how little the developers have really thought about how the game they're building fits into the traditions of its genre.

Future - Present - Past