Thin, light, elegant and off-kilter

I updated to iOS7 and all I got was this flimsy look-n-feel:

http://sloppyui.tumblr.com/

Srsly, even on the lock screen, everything looks ‘off’ by a pixel here and a pixel there. The rest of their examples, it just looks like they stopped paying their visual consistency engineers/QEs halfway through the design refresh. For such a mammoth undertaking, it’s understandable some things slip through–except if you’re the largest company in the world who made their killing on Insanely Great user experience.

More persistently annoying, though, are some tiny frustrations that add up like the rough spots on an injured tooth:

  1. Slower keyboard response. Time between tap and letter-appearing is greater, not much, but this is realllllly crucial interval. Makes the whole phone feel sluggish.
  2. Loss of Calendar’s “agenda” view. This was the bomb, especially if your day sometimes involves one event at 7 am and another at 9pm, or if you want to scroll through what your next few days look like. If we’re getting rid of skeuomorphism, how about getting rid of this slavish adherence to a linear time axis?
  3. The thrifting of Safari’s bottom-bar buttons. I didn’t need that extra screen real estate so much that it’s worth hiding my nav and bookmark buttons. I navigate a LOT, the result of reading very fast. Yes, I eventually figured out that if you scroll up a ways, the buttons re-appear; so I get to waggle my finger all over the screen trying to find my way to my bookmarks.
  4. Continuing the thrifting to save space, Safari now doesn’t show page titles. Well, who adds <title> tags any more these days anyway? Other than everyone? I guess they’re still useful for naming your bookmarks.

The ontology problem (in CSS)

Too Many Spellings!

This table illustrates up one of my fundamental annoyances with CSS. Here are five common ways to emphasize text using CSS; below are the properties and values you need to specify:

font-weight: bold
font-decoration: underline
font-style: italic
font-variant: small-caps
texttransform: all-caps

Five different ways to do it. One of them doesn’t even have the word ‘font’ in it, though perhaps that’s best, given that many non-technical people don’t consider any of these a ‘font’ operation–they work on text.

The problem is, each of these choices makes sense in isolation. Bold really is about font weight. And we should let people change the weight by itself. We may want semi-bold, so let’s allow that. And some people might want more control, so let’s support a number too, from (for some reason) from 100 to 900, but only in steps of 100. For now.

And yeah, ‘italic’ is a style for your font. So’s ‘oblique’, and you can’t have those at the same time. (But is this an important distinction? While an oblique italic may look horrid, so do most obliques by themselves, and people use them all the time.) Let’s make it a new property, and allow only these two values (plus ‘normal’, of course).

Oh, and small caps is a variant. (Of course, you could argue italics and bold are also variants.) Let’s put that in ‘font-variant’, even if ‘small-caps’ is the only possible value (again, other than ‘normal’).

Each of these choices makes sense individually. It’s just when you see them all together that you shake your head and strain your memory. “Is small-caps a style, or a decoration?”

The Thingification Of Things

The problem is one of ontology–how to build trees of meaning.

When learning a computer science degree, sooner or later you have to build an ontology of Things. You know–the teacher says, “Describe all the things on a dinner table, organized by type.”

Things are pretty easy to start with. Cup, plate, spoon, fork, knife. Steak knife, butter knife. You can group things fairly simply–cups and plates are ‘dishware’. Steak and butter knives are ‘knives’. Knives (of whatever type) join up with spoons and forks and become ‘flatware’.

(Ignore for the moment that ‘dishware’ and ‘flatware’ make no sense as names, and were in fact coined by some poor person who had to do this many years past.)

And of course you need this all in one tree, so you create ‘tableware’ which includes both dishware and flatware. Or maybe ‘Object’, or ‘Thing’, which everything is descended from.

But then you get to the paring knife next to the turkey, and the serving spoon stuck in the stuffing. They’re clearly flatware–but they’re also serving utensils. And really, they’re more like the serving bowl, which is flatware, but is also a serving…well, can’t call it utensil. Call it “servingware”…but do serving knives go under that, or under flatware? Or both?

Now you’ve got things in two “places”. That’s the fundamental problem CSS has. David Weinberger wrote a great book about this problem (Everything Is Miscellaneous). Forcing things to live in a single place is an artifact of the real world, where physics makes us choose.

In the information domain, it’s far better to let people put things in multiple places. This is the idea behind ‘tags’ and ‘folksonomies’, and that works fine for content. Put ‘paring knife’ in ‘knife’ and ‘paring’ and ‘servingware’ and ‘tableware’ and ‘flatware’, all of it, and everyone’s happy, right?

The Usability Of The Little Languages

But for languages it’s much more difficult–you’re trying to define a formal grammar. Right? So you have to very specific. Everything must have a single expansion. We must define a context-sensitive grammar, because I learned Backus-Naur Form as an undergrad and remember that it’s trivial to write a parser for it.

But at what cost to CSS authors? How bad would it be, really, if was able to write “font: bold small-caps italic”? How hard would that be, really, to interpret? The alternative is remembering the three hundred and twenty different special cases that currently make up CSS3, and that’s not very usable. Sure–my text editor can often help me out, proposing the right property when I start typing. I still have to remember that the correct spelling of ‘all caps’ starts with a ‘t’.

The web took off due to a permissive syntax–HTML tries its darndest to make sense out of whatever malformed string you hand it. Is it time for permissive CSS?

A more nuanced conversation on privacy

It’s time for a finer-grained definition of on-line privacy. When consumers hear “Google Mail users shouldn’t expect privacy“, it quickly gets flattened into an “all or nothing” proposition that just doesn’t work in the real world.

The decision cited in the quote is from the Smith v Maryland (1979), a case that is way over-applied in the modern age. It’s troubling that Google’s lawyers cited it, and it’s a precedent that should be sharply narrowed given the qualitative difference in intrusiveness between a pen register and the contents of emails.

In face-to-face life, we have a very finely graded sliding scale of privacy. It’s enforced by a host of social constructs and mores (closing the door when you’re in the bathroom), physical layout (frosted glass for bathroom windows), policies (e.g., privacy policies), and laws (reasonable expectation of privacy).

Privacy should be just as nuanced online. There is an enormous qualitative difference between:

  • your email provider looking at your email to execute automatic filtering rules that you set up
  • your email provider using the contents of your messages to show you more relevant search results and/or advertisements
  • your email provider using the contents of your messages to send email to all your friends about your inner thoughts
  • your email providing your email as fodder for a Federal investigation because you used certain Words Of Interest
  • your email provider’s employees sitting around on Friday nights and laughing at emails they’ve flagged as especially entertaining
  • the spy who loves you, showing up on a Tuesday evening with flowers, because your email to your friend said you were lonely and looking for a good man, and your calendar indicated you’d be home then

Each of these has its own level of creepiness and intrusion, from ‘none’ to ‘criminal stalking behavior’.

Let’s talk about these things separately, rather than squashing them all together into a single, untenable bucket called “privacy”. Then let’s write laws that adequately balance the rights of individuals, the needs of companies, and the demands of keeping a populace safe.

Every project ever

I have this great idea!
Coding Starts
Oh, I suppose we should have a design
90% done
95% done
99% done
Ok ready to submit
No wait I found something
DEADLINE #1
Rescoping
50% done, really
25% done, REALLY
That weekend of coding
Well okay it’s 75% done, but we’re ignoring half of what we planned to do because it’s impossible
85% done!
Wrote the tests
Every test fails
This is never getting done
DEADLINE #2
We’ve added two engineers
We’re making great progress!
New engineer wants to use CoolioTech64
Srsly we are like 10% done
But it runs on my machine
ORIGINAL SHIP DATE!
Half the tests pass and I commented out the other half so it works, right?
User testing reveals users are idiots, can’t use simple software anyone can see works just fine
SHIP!
Oops.
SHIP AGAIN!
Ooooops.
What if we rewrite the GUI so they can’t do that?
PATCH 1!

The rise of the ad-hoc company

Some years ago (1998 or so), seeing the future looming, I hypothesized a move toward ad-hoc workgroups, forming and disbanding on the fly many times during the day. People would pull in their friends to solve problems or brainstorm or contribute, then go their separate ways, in groups that overlap and subset each other and generally are a lot more flexible than a traditional work group.

Wind forward a decade and a half, and the future has become a reality.

Ad-hoc Every Day

Every day there is a new attempt to enable this sort of workflow–which has, with a generation raised on constant SMS contact, become more familiar and more desirable. Google Hangouts, Facebook’s ubiquitous chat, and social review sites.

Want to build a website, but you aren’t the strongest at visual design? Chat up your graphic designer buddy for half an hour of chatting, or send him a feedback request on RedPen. Get feedback from more folks on Dribbble. Need to work on a thorny CSS problem? Pop it in JSFiddle or CodePen and get your buddies to bang on it. Post a tough question on Stack Overflow and get expert answers in minutes. Or just tweet about it, and have people chime in. All in a single afternoon.

(I’m in the design field, so the examples I have are centered around that. Are there these sorts of social review sites in your field?)

Got a longer project? Manage it on PivotalTracker or RedMine or Trello, letting collaborators come in and out on their own schedule, asynchronously. Host it on GitHub and leverage the entire ‘net–and let others build on your project.

These technologies enable all sorts of wonderful, opportunistic interactions, which make very efficient use of scarce, expert resources.

The ‘real world’ is a drag: money, property, and liability

But many (most?) employers are still not comfortable with this–and we haven’t quite worked out how to monetize it yet. There’s the wage-slave version with the Mechanical Turk, but for creative work, it’s more challenging.

While there are plenty of apps to track freelance time contributions, generally you still need to present a unified bill to a client, or have a single entity paid out by the distributor. Customers want to pay money to a persistent identity of some sort, even if the people behind the company name change.

Then you need to split the earnings among the team manually. (A bit like splitting the hoard after slaying a dragon, perhaps?) Deciding who gets what share of the IP can likewise be challenging. Your graphic designer buddy–does he get a cut? How much? Or is it just noise, and you owe him one?

And there’s a lack of comfort on the legal side–who is liable for this work? How do you ensure a release schedule? Who knows about the work? How do you protect trade secrets in such an environment?

These issues have been worked out before–this is why corporations were invented. And for more fluid collaborations, there are plenty of models to draw on, from artist’s collectives to musical supergroups to publishing houses.

Maybe it’s time to encode some of this structure into a social website–a way to generate legally binding collaborations, even if it only lasts an afternoon.

Liking Stuff: You Can Help

Remember when the way to look cool was to be disinterested in everything, and cut everyone else’s achievements down?

“Nice backpack? Yeah, I guess so, for a nerd who still wears a backpack.”

“The Bangles? Yeah, I used to listen to them. But then I used to listen to Sesame Street, too. *scoff*”

I think it used to be called ‘high school’. And then we theoretically grew out of it; though some of us never played that game in the first place, which is cool, too.

No matter what it was, you couldn’t get excited about it. That would be…uncool.

A young dog sporting a set of hot pink saddlebags, and looking vaguely bored.

Oogie doesn’t care what you think of her backpack.
(Based on Oogie got a backpack, a photo by Karin Dalziel on Flickr)

Lately it seems like the internet is full of these poseurs.

  • “Oh, the new display with the highest resolution ever? That’s nice, I guess, if you want to stare at a screen all day.”
  • “You survived cancer, huh? Oh, but it was only stage 2, so, whatever.”
  • “300 horsepower? What is this, the 60s?”
  • “President? *Pfft*, like he has any power.”

Well, I’m tired of paying attention to mores and customs better suited to a pack of powerless, insecure kids with the emotional sensitivity of a stunted turnip. I’d rather pay attention to the rich audience of complex human beings that I know.

The problem is, it’s infectious. It’s simply easier to be dismissive. And it draws others in, cutting us off from each other until we bond only by how much we can belittle each other.

I’ve written about this before, and I’ll probably write about it again, the same way I’ll probably blog about food again, or mention how lovely the weather is on nights like tonight when the wind curls around the clouds at dusk and the air is just cool enough to allow for a really vigorous walk without the risk of a sweat.

Just like I’ll probably pull the “yeah, so, whatever” shenanigan at you some time in the future. Cause we’re all imperfect, and it’s such an alluring mode: makes you feel so powerful, so all-knowing, at the same time as you look so ridiculous to folks not caught up in the spiral of it.

So consider this a call to action. How do we defuse these bogged-down spirals of negativity? Some ideas–and here’s where You Can Help!

Because–let’s face it–the world is full of interesting stuff. And liking it is awesome.

A wood wall, completely covered in tools, gears, pulleys, and bottles.

There is cool stuff everywhere. The internet brings me a new batch every morning.
(Based on “The Wall Of Stuff”, a photo by Spencer Burrows on Flickr.)

First, I think, we resolve this behavior by not feeding it. It’s a form of trolling, and trolls only shrivel up when killed with fire starved of their sole food, attention. Simply disengage from conversations where someone’s done this. The downside is, that may be their goal: sabotage. If so, continuing the conversation while ignoring their contribution may also be a way to go–but you have to have everyone in the conversation on board.

Second may be confronting the problem: naming the behavior, rather than engaging on the content. Dunno. That one needs more exploration; I feel it will work with some people, and less with others.

Third is to continue to do cool things, even when people deride them. Do imperfect things. Fail better. Celebrate small victories. This is basically my guiding mantra, as it is for some of you, and it’s damn hard in practice. The critics suck blood–so bleed more. If you’re lucky they’ll let go and fall off; or perhaps they’ll be so invigorated; or perhaps others will kill them with fire gently dislodge them from you with tweezers.

Fourth is…well, I’m not sure! I’d love to hear what you think.