13153115113

Posts tagged writing

Just

Posted April 15, 2011 @ 12:46 pm

“Can’t you just…?”

“Why doesn’t this just…?”

“This should just…”

“Why can’t this just…?”

Yep. Getting really sick of the word “just.” I’m going Sam-Jackson-in-Pulp-Fiction on the next person who uses that word to oversimplify what I do.

Think about it; would you ask your doctor to just cure your cancer? Would you ask your personal trainer to just make you skinnier? Would you ask a scientist to just send some people to Mars? Would you ask a writer to just bang out a few new novels?

When used this way, “just” has two very, very bad connotations.

  1. It shouldn’t take you long to fulfill my request because…
  2. Your work is easy.

You’ve demeaned a colleague by telling him or her that the job he or she does is inherently simple. Nice work, jackass.

Seriously, never make the assumption that someone else’s job involves nothing but trivial work. I’ve yet to meet a professional whose job is wholly uncomplicated. Always assume that the people you’re working with have jobs that are harder than yours. Always. Once you do, you’ll probably never use the word “just” when making a request, because you’ll realize that it makes you look like a 4-year-old asking mom to cut her steak for her.

Maybe this is more prevalent on the Web where developers seemingly wave magic wands and make things appear and disappear. No one sees what happens inside the black box, so they assume that it’s simple. I’m here to tell you that, brother, it ain’t.

Profits, Dummy

Posted April 8, 2011 @ 1:10 pm

Since no one seems to be writing about what the obvious outcome of this so-called battle between HTML5 and native apps will be, I’m going to throw my prediction into the already crowded pundit space.

HTML5 will be great. It is great. But it’s not some write-once-run-anywhere solution. Users have already chimed in; they prefer native apps.1 The only way to get them to like HTML5 apps as much as they like native apps will be to convince the people writing the OSs to treat HTML5 apps as first-class citizens, meaning that an HTML5 app isn’t some other thing wrapped in Safari.

And it ain’t gonna happen. Why? Profits, dummy. Apple and Google can’t charge people for using web apps written in HTML5. If iOS were to put web apps on equal footing with native apps, Apple would lose their 30% cut of App Store purchases. It’s simple economics.

But beyond that, there’s an issue of aesthetics. People want native apps to look like native apps, which means the software has to use the interface widgets that they’re accustomed to seeing. I’m not saying you couldn’t write an HTML5 app with a custom style sheet for iOS and Android that would swap out interface elements depending on the user agent, but that’s such a pain in the ass that most people won’t do it.

Native apps make users happy by providing a consistent experience, and they make Apple happy by providing money.

The future for the Web on mobile devices is simply this: the Web becomes infrastructure for services—pipes and wires—and native apps become the interfaces that sit on top of that infrastructure. It’s a continuation of what’s already happening, an evolution of the holy-shit-we-need-a-mobile-app-compatible-API mentality that so many service have adopted.

You can see the evidence of this in Instagram, a photo-sharing application that has no Web interface and is instead simply pipes and wires that enable an iPhone app.

Web browsers will continue to rule the desktop, and more of our traditional desktop software will be moved to the Web. But if you’re developing for mobile devices, you’d do well to start out with a solid API design first—which isn’t a bad practice anyway—and plan for a native app to sit on top of it.

And if I’m wrong, so what; you’ve still built an API on which you can build an HTML5 app.

Nota bene: I’m not an iOS or Android developer by trade; I’m a web developer. But I’m learning to write iOS software because the future seems pretty clear if you aren’t wearing blinders.


  1. Unless you trust research done by Adobe that speaks to the contrary. 

Heckuva Job, Twitter

Posted March 4, 2011 @ 11:12 pm

You guys are doing a bang-up job over there ever since Dick C. took over. This email? It’s from MY MOTHER. You made my mother swear at you, and she has no idea who you guys are.

She’s not the only one, though. Check this out:

How meta is that, right?

Let’s see what Dick thinks about all of this.

But seriously, Dick? Have you seen your trends? They contain ads. People pay you guys upwards of $100,000 per day to create a social lie, to pretend to be popular. Now you’re making the ads inescapable.

The problem here is that you set the expectations of your users long ago. Now you’re fighting an uphill battle to alter those expectations in favor of making money. No one thinks you shouldn’t make money, but throwing an obtrusive speed bump into your app isn’t the way to go about it.

Frankly, given the attention paid to the creative and beautiful UI in Tweetie and Tweetie 2, I’m surprised Loren Brichter let you guys get away with such an alteration. Which goes to show just how much control he still has over his product. So, y’know, thanks for being the latest in a round of companies to throw another good dev in the gulag while shitting all over his/her great product.

I’ve been pretty vocal about the obtrusiveness of trends in the Web-based Twitter interface in the past. But this latest move goes way beyond anything you guys have done on your site to date.

Back to the money thing for a sec. Yesterday, after reading about the Quick Bar, before I even installed the new Twitter app update, I downloaded and installed Twitterrific and gave the dev $5. I didn’t do this because I think it’s a superior product.1 I didn’t give them money because I necessarily hated the ads in their app and wanted to remove them.2 I gave them $5 because they respected me as a user and gave me the option to pay them for the service they provide.

Wait, I’m feeling meta again.

Do the math; use your own search tool to count up how many people might have actually paid you $5 to continue using your service without the speed bumps. The users who enjoy Twitter—really enjoy it—will pay to use it.

Hell, my mom’s a casual user, and guess what? The Icon Factory made $5 off of her, too.


  1. It is. 

  2. I do and did. 

What’s astounding about this is that the world, for better or worse, is moving to Facebook actually being perceived as the same thing as the Internet. The average person might not distinguish between doritos.com and facebook.com/doritos, and over time, the traffic is at Facebook so they re-direct the .com to Facebook. Scary.

Facebook.com is now the Internet via Think Vitamin

@flowerpower and I have discussed this off and on for a little over a year now. I often make the (possibly obvious) The Time Machine reference. The splintering reminds me of the Eloi and the Morlocks, only instead of living above-ground vs. below-ground, people are dividing themselves between a mock-Internet and the real Internet.

Question is, who represents the Eloi, and who represents the Morlocks? I’ll bet if you put the question to both sides, everyone would tell you they’re the Eloi.1

Facebook users would see themselves as inhabitants of a pristine Web where everything is shiny and blue, while non-Facebook users dwell in a series of tubes. Sewer tubes. Smelly sewer tubes.

Non-Facebook users would espouse that their Internet isn’t a walled garden, that information flows freely, and you can dip your toes in its stream at any point without worry of leaving the confines of your gated Internet community. To them, Facebook is a troll-laden shout-fest of wanna-be Jerry Springer guests, YouTube commenters, and former Ain’t It Cool News forum junkies.

At any rate, I’m slowly becoming paranoid about the seeming necessity of having a Facebook account. About the creation of a separate Internet where all of the data that goes into this one site stays there and never leaves and is never indexed by outside sources. More and more services are using Facebook for authentication. More businesses are abandoning their brochure sites for Facebook pages. And more people are signing up every day.

Makes me twitchy.


  1. Of course, you would have to start by educating the people on Facebook by first showing them a book, explaining how to read it, demonstrating proper spelling and grammar, etc. Could be a long process. Guess which side I’m on. No really, guess. 

Starbucks

Posted January 31, 2011 @ 9:23 pm

I have a theory about why people who really like coffee—call them coffee snobs if you must—hate coffee from Starbucks.

Ever wonder why coffee from Starbucks tastes burned? Wait—it doesn’t taste burned to you? Let me guess: you like to put cream and sugar in your coffee, too, huh? None of that lame-ass skim milk shit or the fru-fru organic sugar in the little brown packets. Full-fat cream. And white, pure-as-the-driven-snow, looks-like-it-could-be-cocaine sugar. Lots of both.

You are the reason people like me—people who actually enjoy coffee—can’t get a decent cup when we’re on the road. Asshole.

Because in order to make something that still tastes like coffee after you’ve dumped your metric buttload of adipose-inducing, flavor-ruining contaminants into your cup, roasters have to burn the shit out of their beans.

The basis for my theory came after I realized that introducing small amounts of both cream and sugar into a cup of Pike’s Place made the charcoal-laced crap almost palatable. It started to taste like real coffee. All I had to do was toss in about 100 extra calories and a couple of grams of saturated fat that I didn’t want.

So, thank you, people who created the culinary environment that brought us the Double Down. You’ve given me one more reason to shop local. And yes, I will drive off the freeway and into a small town to visit the only coffee shop within 50 miles where they’ll charge me $3 for a cup of drip coffee made with a Chemex just so I don’t have to drink something that tastes like runoff from a BBQ pit at a public park.

The Drupal Cake Is a Lie

Posted January 28, 2011 @ 6:55 pm

Ask Drupal developers why they like it, and they’ll likely tell you it’s because they can spin up a site without writing any code. Drop in Drupal, throw in a few modules, and boom, done.

Nice idea. Who wouldn’t love this?

Thing is, though, I’ve built a handful of sites with Drupal now, and in every instance, custom code was required. And not a small amount.

Now, granted, maybe I’m—as they say—doing it wrong. And admittedly, I jumped into these projects after they had already been scoped and started. If I had been part of the development process from the get-go, I would have advocated a different approach. After all, you choose the best tool for the job, right? I don’t believe Drupal’s appropriate for certain projects.

Often, I find that the best tool for the job—one that will provide the best experience for users—is something that’s custom-built for the specific needs of the client and the project, especially when core functionality revolves around unique workflows, data, requirements for data portability, and authentication schemes. And in the past, when I’ve developed something custom, the response from the client was always better than in situations where I used a pre-built CMS.

I eventually spent more time on these Drupal projects fighting with Drupal, dealing with poorly documented and poorly coded modules, writing work-arounds, and coding custom modules than I did implementing features. As a developer, there are few things that are more frustrating than spending lots of time NOT producing something useful and awesome.

“Custom modules? Pff. Why didn’t you just use the blah blah whatever thingee module that can handle—” Let me stop you right there. The available collection of open-source modules that Drupal developers crow about have one major flaw: they’re often designed to perform a highly generalized task, making them useless for projects that have very specific needs.

But—you might ask—what about customizing existing modules? No, and I’ll tell you why. When a critical update is released for that module that patches some security hole, you’re going to have to hunt down the customizations you made to the module in order to perform the upgrade and restore your patches. Or, you skip the upgrade. Or, what if the release also forces you to completely rethink and rewrite your patch? Again, more time spent NOT making something useful or awesome.

My experience so far has made me wonder if there’s really a benefit (at least in terms of saving time) to using something like Drupal or Wordpress or any other CMS versus writing something custom. After all, you’re effectively doing the same thing: dropping in some reusable bits, doing some custom coding to implement very specific features, and wrapping the whole thing up in some HTML and CSS.

I’m willing to bet that a Rails developer with a decent stable of reusable code (for authentication, etc.) and a handful of good gems could probably build a custom version of any of the sites I’ve been working on in the same amount of time (or less) than it would take a Drupal developer using open-source modules and custom code. In fact, given some of the built-in conveniences of Rails, I’d bet a not-insignificant amount of donuts on it.

But going back to the experience point for a second: the Drupal administrative interface is a hairy, wart-nosed crone, a perfect example of what Robert Hoekman Jr. calls implementation-model design.1 Drupal looks like software that’s been built by people who write software, not by people who use software. Sure, there are some themes you can install that’ll throw a pretty face onto it, but from a usability perspective, it’s still a nightmare. Lipstick on a pig.

I’ll put more donuts on the line: a custom application—Rails or otherwise—will have a more appealing interface for people who have to use the software.

I think my beef with Drupal is really a beef with any Swiss-army-knife CMS. As with humans, when software tries to do too many things at once, it ends up doing all of them really poorly. And taking an idea for an application and shoehorning it into pre-existing software restricts your options and forces you to think about your solution within the confines of that software.

Drupal is a bounding box, a manufactured-housing floor plan, a round hole for your square-peg software. You can do anything you want with Drupal so long as it looks like Drupal. And most software—especially stuff developed to client specs—doesn’t look like Drupal.

The bottom line is that planning meetings for new applications shouldn’t start like this: “Here’s what the client wants, now how do we make it fit into [insert goofy CMS name]?” Ideally, you should find yourself asking how to ensure the highest level of satisfaction with the finished product. If that means using Drupal, good on ya. But if not, don’t force it.

I realize that almost everything I’ve said here is based on anecdotal experiences, but this is my blog, and these are my experiences, so … suck it.


  1. In Designing the Obvious, implementation-model design is opposed to mental-model design. 

Non-Modal Pop-Up Confirmations

Posted December 23, 2010 @ 8:30 pm

I was sitting around this evening, alternating between watching The Big Lebowski, solving Ruby Koans, and flipping through the Mac beta of Reeder.

Reeder started out as an excellent RSS reader for the iPhone that syncs with Google’s Reader service. It graduated to the iPad, and now a Mac version is in development. I punched the Mark all as read button to clear out a folder full of junk.

This causes a tiny pop-up dialog to appear:

Here’s why this was a good design choice.

It avoids an ugly OK/Cancel modal dialog box.

Modals are hideous and a left-over from the original Windows-style software era. Yes, I’m referring to traditional windowing UIs as an outmoded era of UI design. Suck it.

And besides, traditional modals have trained people to ignore the action being taken in favor of simply clicking OK.

Less distance to travel with your mouse.

Modals are a pain in the ass because they always appear in the middle of the screen, which forces you to mouse back to the middle of the screen. This non-modal approach keeps the confirmation closer to the cursor, which means…

It provides better context than a modal (with less text!).

By keeping the confirmation dialog close to the trigger—and in this case, pointing an arrow at the trigger—this confirmation method tells the user exactly what action needs to be confirmed.

It’s a sound bit of design. I dig it. And I’m hopeful that iOS UI conventions like this continue to bring more convenience to the desktop.

So if the FCC wants nothing to change, why does it think the Internet needs stricter regulation? Because the Internet is changing. The rapid growth of online video from YouTube, Netflix and Skype is sucking up bandwidth, making it difficult for Internet providers to give speedy service to all of their customers.

First, shame on me for reading CNN Money.

Second, this misses the point entirely.

Time and again we’ve seen multi-billion-dollar corporations complain that they can’t handle the stress on their networks, and it’s OUR fault for using too much bandwidth. But we didn’t build the networks, we don’t own the networks, and we aren’t charged with maintaining those networks. We pay a fee to access the network; that’s it.

To be clear: the problem of taxed, overburdened networks is not the fault of the people who use the networks.

Once money leaves your hand and enters theirs, it’s the job of the company to see to it that the money is spent wisely. The current situation is entirely the fault of the corporations who built the networks for 1) not properly maintaining them and 2) not upgrading them according to the needs of their customers.

This has little to do with the boo-hooing about stress on the network, though, and everything to do with greedy corporations finding new and insidious ways to make more money while doing nothing to advance, upgrade, or even repair their ailing infrastructure.

I’ve joked about it in the past, but now I’m seriously thinking about moving to another country to avoid having to deal with this. Today’s action by the FCC has the potential to impact my livelihood, and it creates a situation that could further position America on the bottom rung of Internet-based innovation.

These new rules—combined with America’s already laughable and overpriced “broadband”—are making it increasingly hard to take the country seriously as a place to build new technology. And honestly, I don’t want to live in a place that lets corporations dictate a caste system based on access to information.

I’m at a loss for why something as important as the Internet—a critical means of communication that’s more important to us as a society now than the telephone—hasn’t been reclassified as a public utility.

Shame on the FCC. And shame on Congress if they don’t step in and attempt to fix this mess.

(via CNN Money)

Outmoded Thinking

Posted December 20, 2010 @ 11:12 pm

Sitting at work today, staring at an Excel spreadsheet, something caught my eye. This:

Why? Why is this here? WHY are these indicators here? And why is the num lock indicator highlighted? Especially when my keyboard looks like this:

NO NUM LOCK KEY.

No scroll lock key, either. In fact, none of Apple’s keyboards have these buttons. Sure, third-party keyboards might, but Apple’s don’t.

And would anyone editing a spreadsheet really look to the screen to figure out the status of a keyboard, especially when a lot of keyboards—the kinds with num lock keys—look like this:

It’s unnecessary cruft indicative of a bygone era of PC-style computing. Or, more simply, it’s just unnecessary cruft.

But why should we be surprised when the save icon still uses a fuckin’ floppy disk?

Rock on, Microsoft.

My Stupid Phone

Posted December 18, 2010 @ 5:15 pm

If you told five-years-ago me that I’d soon have a device that would allow me to do any combination of the following things, then put said device in my pocket, I would have told you to shut your dirty, lying pie hole.

But holy shit; I can do all of these things (and a lot more) on my stupid phone.

Also: play games, pay bills, record HD video, maintain an address book and calendar, video chat with people, browse the Web, AND make phone calls.

If this isn’t blowing your mind, you’re not paying attention, or you’re incapable of reflection. Or both. Or you’re so jaded that you’re able to out-smug everyone I’ve ever met, which makes you a capital-d Douche.

The first computer I ever used was a TRS-80. It was 1985, and my mom taught me how to program on it. I was five. If you wanted to save your code, you had to hook the thing up to a cassette recorder. Let me be clear: CASSETTE TAPES were the medium by which you persisted data. No floppy disks. No Internet forums on which to look up code; just a printed, soft-cover book full of examples.

Flash forward 9 years to when we purchased our first modern-era PC: a Packard Bell 486DX2 66 with 4 megabytes of RAM. The 66 referred to the machine’s processor speed—66 megahertz. If I wanted to play Doom on it, I had to cold-boot to DOS by holding down the shift key when I started it up. Windows 3.1, just shy of 500 MB of storage, and a 9600-baud modem.

The following year, I got a U.S. Robotics 28k modem and my first Internet connection. The ensuing 16 years have been a blur.

Now, my stupid phone has 64 times the amount of storage and 128 times the amount of RAM compared to that Packard Bell.

Maybe I’m getting old, or maybe I’m feeling extra reflective since it’s the end of yet another year, but whenever I pause and look at how far technology has come in a scant 25 trips around the sun (and especially in the last 15), what it’s done to shape our world, and how fast it continues to move forward, I feel a lot less bitter about the fact that I still don’t have a flying car.

I’m growing jealous of kids who were born in the last three years, though. For a lot of them, their first computer will be an iPad. A technology that seems like it was pulled out of a Star Trek episode is going to be the conduit for their first interaction with a computer, and that’s pretty amazing. From where I’m sitting, they’re pretty lucky.

I’m prattling on.

Happy end-of-the-non-Chinese-year. Hug your iDevices and be grateful you don’t have to carry around a cassette deck to read your email.

Ninja Tip: Pressing j and k will autoscroll your browser from one post to the next. Yup, just like ffffound.