Posts Tagged ‘Comic’

It’s People!

Monday, August 20th, 2012
CSSquirrel #95: It's People

In addition to being a guest in today’s comic, Michael Sippey is the Director of Consumer Product at Twitter.

He’s also the author of a post over at the Twitter Developer Blog that you may have already heard about: Changes coming in Version 1.1 of the Twitter API.

In it, Michael reveals that Twitter is really tired of people using other (better) “traditional” Twitter clients instead of their own website and apps, and that they’re going to be making it a lot harder for those to exist in the future. Between changing Display Guidelines to Display Requirements, sharply limiting the amount of client tokens a client app can serve and requiring such client apps to go to Twitter to “work together”, it’s apparent that Twitter is continuing its campaign to shut “traditional” Twitter clients down.

I wish I could feign surprise, but the fact is that such ungrateful, brutish behavior has become the norm for social media companies. First they rely on third party developers to make their service more popular by extending functionality and drawing in users while the service is fragile and young. Then they steal those features for their native experience. Lastly they eventually shut down the third party clients to force their service’s users back into the native client so they can cram ads down their throats.

It’s the way of the web. It shouldn’t be, and I’d love to see some other model come to dominate the space, but at present I’m only ever shocked when a popular web-based service doesn’t screw over the partners that helped them get to where they are.

There’s a different level of dick behavior that I’d like to address, however. It’s how Twitter is using this dicking of their developer “partners” to further dick their users.

In his post, Michael encouraged developers to move away from the traditional client apps and towards other types of applications with the following chart:

This chart has four quadrants. The upper right one, which contains virtually any app that you, I or any other user of the Twitter service would typically use, is what they’d prefer developers to shy away from. The other three, which turn the users into products, are what they want to see more developer engagement with.

Let’s let that sink in. They want developers to focus on turning us into products.

This isn’t a shock. After all, ever since the advent of advertisements we users of a given service have been little more than eyeballs that can be sold in everything from newspapers to television networks that specialize in shows featuring orange midgets copulating in hot tubs.

Ultimately I’m aware that Twitter needs to make money. Which, when your whole service is letting people blather about the contents of their breakfast for free, is a bit of a challenge. So I get it (but don’t like it) when promoted tweets end up in my Twitter stream.

But to me there’s a stark difference between feeding themselves and encouraging an entire ecosystem to become a bunch of frenzied human-eating services that exist not to serve the user experience, but instead to transform users into a product for companies to exploit and consume.

Apparently “Director of Consumer Product” means exactly what it sounds like. It turns people into product.

I’ve been pondering (without any success) how web services that don’t sell products (whether physical like toilet paper or digital like MP3s) are supposed to make income without putting their users through the wood chipper and selling them on a platter to interested parties. I’m thinking that Kickstarter is pointing in the right direction (consider Penny Arcade’s Kickstarter project to get their ads off their site). But just because I don’t have a solution yet doesn’t mean that I like the status quo, and I think it’s a major step backwards in consumer relations for Twitter to be essentially forbidding its developers from building any product with their API that actually serves to us, instead of serving us up.

Am I quitting Twitter? No. Too much of my personal social ecosystem is currently on that platform, and for better or worse I’m going to continue to play the role of Internet chum for the circling marketing sharks until something better comes along (I know, I’m too late for a timely Shark Week reference). But when a better option does come along, there’s a good chance I’ll jump if it looks like it will get traction. And any plans I had on building any Twitter API-based projects are going the way of the dodo.

Bad form, Twitter.

The Egotistical Puppet King & I

Tuesday, May 15th, 2012
CSSquirrel #93: The Egotistical Puppet King and I

In a way I should be grateful to Ian “Hixie” Hickson for being an egotistical tyrant. Without his inability to acknowledge that a consensus-driven, well-crafted and usable solution built by a group of well-meaning, hard-working people could actually somehow be better than his own personal opinion, he’s pulled me out of my long-hiatus and back to to the drawing board.

Today’s comic is in fact three comics. No single idea could encompass everything. In all three Hixie gets top billing as the editor-for-life of HTML’s “living spec”. The first comic features Naepalm, chinchilla alter ego of fellow Mindflier Janae Wiedmaier. The second one includes the irreplaceable Justin McDowell. Lastly we see Matt May, Dylan Wilbanks and Ethan Marcotte joining forces with the Squirrel in a bid to take down the HTML king.

(Today’s comics as per usual aren’t meant to imply that the people represented therein endorse my views. I’m saying it outright today because I’m feeling particularly vitriolic and don’t want my words to reflect on them.)

The Situation

For those of you just tuning in, today’s outrage focuses around Hixie’s decision to adopt a problematic, late-arriving, Apple-proposed attribute of the <img> tag into the HTML standard as the solution to the adaptive images issue. In the process he again reinforces his inability to heed the creed of HTML’s priority of constituencies (end users over authors over implementers) while also tossing away the hard work of a community group of developers that built a very functional, very usable solution to that problem in the form of the <picture> element.

If you’d like a summary, you can check out the aptly titled WTFWG by Tim Kadlec, or take a look at Zeldman’s take on the situation over here, which links into an A List Apart article by Mat Marquis on the topic.

I wish this was a new situation. Or that it was surprising. Or that I didn’t feel like I was repeating myself each time I mention Hixie in blog or comic form. The fact is that as the Editor of HTML, Ian keeps doing this. And we keep letting him.

The Puppet

At one point I attributed this issue solely to his gigantic ego and clearly overwhelming case of not invented here syndrome. Now I’m frankly convinced that although these qualities contribute to the problem, the real issue is that he’s the puppet of the browser vendors, namely the three most involved in WHATWG: Apple, Opera, and Google. Although the priority of constituencies dictates that implementers (aka, browser vendors) should be lower priority than developers (who are in turn answerable to end users), it seems that without fail Hixie will bow to the vendors before considering any work on the part of developers at a solution, no matter how reasonable, well-built and documented that solution is.

That’s not a kind accusation, that a man is a puppet. But clearly every attempt to work with the WHATWG has always resulted in developers being treated as second-class citizens to the browser makers. And let’s make it clear: this is our job. We make websites for a living, and the tom-foolery that Ian is engaged in is directly impacting our present and future workflow. We work on making websites every damn day. We know what works for us, and what doesn’t.

And he doesn’t care in the slightest.

“Work With Us”

At this point, Hixie and his backers are relying on the same smoke and mirrors to distract people. Present use cases. Keep engaged with the WHATWG and let them know your technical objections. Get involved in their IRC. But the fact is we as developers have done this over and over and over. Yet at the end of the day, regardless of the hard work put in and all the proof jammed into the pudding, it all amounts to naught. Hixie spends twelve seconds coming up with his own solution or takes what the browser makers gives him and uses that instead.

It happened with metadata. It happened with the <time> element. It’s happening now with responsive images.

The fact is that Ian doesn’t give a shit.

He’s going to do it his way, or failing that he will do what Google and the other browser makers in the WHATWG tell him to do. He’s not going to look at what the developers have built and give that solution a thumbs-up. As John Foliot said: “Dev community, if you continue to author to the WHAT WG doc, you lend your tacit support to heir hixie. Look where that gets you.”

Enough Is Enough

Being part of their process is being part of the problem. I’ve never seen things resolved by following the WHATWG’s “process”, as it amounts to little more than distracting developers while he goes off and implements a less functional, more complex solution to the problem.

Don’t deal with Hixie. Don’t deal with the WHATWG. Directly object to the browser vendors. “Occupy” HTML by making use of the consensus-built techniques that already have functional polyfills. Do what makes sense, and what works for you.Sooner or later, the browser vendors will be tired of the grief sent their way and tell Hixie to roll over.

<time> wasn’t fixed because we followed the WHATWG’s process.

I’m going to say it: I don’t believe that WHATWG is part of the solution anymore. As I’ve been told by others, democracy isn’t always the best approach. Sure, ok. But so far when it comes to the community-build, consensus-driven approach and Hixie’s brain, the community’s solution has proven more effective more often.

I’m going with the community, not the puppet.

Stop Soap.

Wednesday, January 18th, 2012
CSSquirrel #91: Stop Soap

Soap isn’t our enemy. Properly done, copyright and the enforcement of it isn’t our enemy.

But SOPA and PIPA, the legislation currently being considered by Congress, pose a very real and dangerous threat to a free Internet as well as free speech.

Today, January 18th, a lot of sites are blacking themselves out in protest over SOPA and PIPA, helping show how the Internet might exist if these legislation are allowed to pass.

Get informed. You can see some people’s carefully considered views on how dangerous SOPA and PIPA are here, here and here.

Get involved. Tell your senator or representative that SOPA and PIPA are bad.

Snow, Blood and Cookies

Friday, December 9th, 2011
CSSquirrel #90: Snow, Blood and Cookies

Today’s comic features Opera’s viking doing some nasty, brutal stuff. Because if a public community representative of Opera acts out of line, and the company doesn’t call them on it, they might as well be endorsing it. Luke Wroblewski also stars as the stand-in for well-meaning folk who are trying make peace at the expense of correcting bad behavior.

Buckle up.

I’m going to throw myself on the grenade and be the curmudgeon.

You don’t have to like what I’m about to say, but I think you need to read it.

We are, as a community, allowing ourselves to be abused. We’re Kevin Bacon in Animal House, bent over in our underwear and thanking someone for beating us. And, like any sadist with a free pass, they’re continuing to hit us again, and again, and again.

I get it. It’s the holidays. We’re stressed out by end-of-year deadlines, driving on icy roads and getting our Christmas shopping completed and hoping that at the end of the day we can kick back an egg-nog and just be merry. We don’t want the stress of confronting and condemning bad behavior, so we’re trying our damnedest to shrug it off.

Additionally, most of us want to be liked. And we want our friends to like each other. Whether it’s in our neighborhoods, in our Facebook profiles, or in our professional circles we just want people to be friendly and think highly of one another, but especially us. So when a flare-up starts between two peers we’d rather put our fingers in our ears and hum the Benny Hill theme song than owe up to the fact that there’s a problem.

But I’m here to be the bearer of bad news: there is a problem. Not only that, we’re responsible for it.

When I was growing up, my mother made it clear that certain behavior was not acceptable. Among other rules of childhood, I couldn’t go about tossing insults at people. Not my parents. Not my siblings and not friends. Heck, I was expected to maintain at least some decorum around the kids I disliked.

Going outside the bounds of socially acceptable behavior carried with it a penalty. Maybe soap in the mouth, or a spanking, or being grounded in my room, or at the bare minimum no desert after dinner. It was unpleasant. I was a pretty big crybaby, so any sort of punishment or chastising resulted in a waterfall of tears and a sniffling cry that would last for hours. I guarantee my mother hated having to deal with it. She probably would have enjoyed her evenings much more pretending I didn’t doing anything wrong, instead of listening to me cry and sniffle in my room as she desperately tried to read a book in peace.

But she did it anyway. As a result, I learned the difference between right and wrong and stopped doing the bad behavior. It didn’t mean that I stopped thinking ill of kids I disliked, or devising a choice insult for my brother when he provoked my ire. But it did mean I knew it was unacceptable to act on those thoughts, and it made me consider my words before I said them. If, after a good hard think I decided it was worth provoking my mother’s wrath, I’d still take the risk of insulting someone.

I did, however, think first.

In a pattern that goes back probably for quite some time but for certain seems to have flared up this week we’ve been permitting ourselves to be subject to bad behavior. We’d rather read our books in peace, so we are ignoring the misdeeds of an entitled few in the hopes that it will all go away.

And it’s not going away.

There’s literally thousands of amazing, talented developers and designers currently involved in making the Web a better place. A whole lot of them are like me, working hard for a very modest living in a small design firm that doesn’t get awards or fancy big-name clients. A great many also work as embedded Web people in a large corporation or other entity, thanklessly fighting the ignorance or misinformation of their bosses and co-workers while trying to apply their awesome skills to making their corporate site a better, slicker place to visit.

Then there’s the superstars, Web folk that work as community representatives and star developers for the big Web companies that take leadership roles (by fiat or by standards) in developing and proselytizing the advancement of the very technologies we use to make awesome Web stuff.

These people don’t just speak at conferences, they speak at dozens of conferences. They don’t just make cool web projects. They make amazing, cutting-edge projects that push forward the meaning of “good Web design”. They talk a lot about community participation and self-learning and being involved.

They’re intelligent, creative and successful people.

Sometimes, they can be utter dicks.

Anyone can be a jerk. From the drug-addled homeless man currently shooting up in the alley down the street from my office to the richest men in the world. Every person is capable of forgetting those lessons in basic decency that their parents (hopefully) taught them as children and slip up from time to time.

When it happens, it’s usually considered acceptable to say “Dude. No.”

The worse the bad behavior, usually the more stringent the chastisement should be. Action. Consequence. It’s a no-brainer, right?

But what happens when thought leaders, community representatives of important companies in the industry, and superstar talents start to repeatedly engage in or endorse bad behavior? It usually goes something like this.

  1. The superstar does something socially unacceptable. Like refer to a recent article by the owner of a small design firm as drug-enduced bullshit. (original was deleted, here’s a retweet).
  2. Individuals call the superstar on the behavior, noting how unacceptable an action it is. Especially for a community representative of a major player in our industry (although, really, it’s just unacceptable period).
  3. The superstar sort of apologizes. Usually in the vein of “I’m sorry for using strong language” or “I’m sorry you got upset”.
  4. The individuals (rightfully) insist that’s not an acceptable response, and demand a genuine, public apology.
  5. The superstar does so.
  6. Supporters of the superstar retaliate by calling the original individuals the curmudgeons in this situation. They in essence defend the bad behavior by shaming them for “bullying” the superstar, say the “crap” they’re saying is undeserved.
  7. The rest of the community, straining to retain a smile, do everything in their power to bury the “firestorm” under a (likely well meant) pile of hugs and cookies universally handed out to everyone involved, including those that defended the bad action and the superstar that did it in the first place. All are pardoned, nobody is wrong.
  8. The superstar states how tired they are of the drama… seemingly ignoring the fact that it was their own behavior that caused it.

This is all sorts of messed up. Nobody’s learned a lesson, because as a community we’re too concerned about “drama” that we’ll do anything to quash it instead of uniting as a community to call down the person who started the drama with their attack in the first place. We’re sending such a mixed message of supporting the peace or the person without collectively condemning the behavior.

Anyone who ever raised a kid or was a kid knows exactly where that will lead. To more bad behavior.

I’m not calling for punishment. But the launch of a pro-community “make the web better” website (which I will not be linking or mentioning by name for reasons I’ll make clear below) should have been a source of joy in the holiday season. Instead, two individuals tied to that effort have engaged in either passive/aggressive sniping or outright insulting of individuals and their efforts in this week alone. And according to people in the know, this isn’t the first time for some of those involved. And what kills me, what hurts me is how highly I thought of these people prior to now. But how can I promote the work of people who engage in socially abusive bad behavior?

I can’t. No matter how much I agree with the message of their product, I cannot in good conscience promote their goods and services when they’re behaving in a fashion that I know to be wrong. And as near as I can tell, they’re not sorry for how they’ve behaved. They’re simply sorry they were called on it.

The only way we’re going to improve as a community is to grow up and realize we can’t hide everything under soothing hugs and cookies. People messed up. Worse yet, people who are well known and respected representing companies with power or social clout messed up. If they are protected for their behavior, they will continue to abuse us, the community. And many of us will, over time, mimic that behavior in a misguided attempt to become as successful as they are.

Shame on you, Divya. Shame on you, Paul. You’re grown adults. You know better.

Next time you want to blame the drama, stop for a moment and think about who actually started it.

And to the rest of you, I’m sorry. I don’t want a cookie. I want it made clear that this behavior should never have happened, and can’t be allowed to keep occurring.

Happy holidays.

The Value of Meaning

Friday, November 11th, 2011
CSSquirrel #89: The Value of Meaning

Divya Manian is a bright cookie. When it comes to the web, you can say with complete assurance that she knows her s***. She’s in that category of people that makes me insanely jealous of their creativity and intelligence.

All of which makes me think that somehow she’s trolling us today.

Our Pointless Pursuit of Semantic Value is a shortsighted piece, placing the value of markup solely upon the capabilities of browsers (and other user agents) today at the expense of tomorrow. It’s the sort of article that I would have perhaps expected from the internal website developer of a large corporation at the turn of the century that only permitted its employees to use Internet Explorer 6.

When I started getting paid to make websites instead of pizza, I was bombarded non-stop by the value of making websites that weren’t locked into the limits of the less-capable browsers of the moment (some of which, like the big blue e, were more than a little antiquated), but was instead encouraged to embrace forward-looking mentality of making the best of emerging features where I could and creating a fallback position where necessary. I can’t remember if we called this graceful degradation or progressive enhancement (I’ve heard the two used and misused so much that they blur in my brain), but nowadays we just call this technique “common sense”.

Did I make special span tags on elements that had rounded corners, placing background graphics on four separate corners so that the Great Blue Mentally Misunderstood Beast of the Internet could have pretty edges? Hell, no! I used border-radius and knew that somehow, someday, all browsers would eventually understand it meant I wanted pretty, round corners to nuzzle up against and whisper sweet nothings to at night.

I’m aware that HTML isn’t CSS, and what applies to one doesn’t necessarily apply to the other. But I’m fairly convinced that if anything, the principle applies even more with HTML today than it did with CSS yesterday. Barring a few legacy browsers that need to ride the HTML5 Shiv/Shim Short Bus, using a div or a header isn’t going to have any impact on a browser’s ability to properly render an element. Which means there’s no harm being done by using a semantic element before user agents get around to taking advantage of its extra meaning.

If I had to summarize Divya’s points in her article (I recommend you read it rather than relying on what’s bound to be a dramatic oversimplification on my part), it is that we shouldn’t bother with semantics because:

  1. Semantics Are Hard
  2. Current Browsers, Search Engines and Assistive Technology Don’t Understand It, So Don’t Bother
  3. Spending As Little as 40 Minutes To Learn About HTML5 Markup Is A Waste Of Time

Semantics Are Hard

Divya points out a piece by Mark Pilgrim on the difficulty of semantics. So, Semantics is hard. So what? Last I checked, I was a professional doing a job for a living. It’s my job to know what part of a website is its navigation or is its primary content. HTML5 isn’t really demanding much brainpower from me on deciding what element to use for what job. I’m fairly confident that the general meanings of header, footer, nav, time, audio, video, progress and summary elements are easy enough to grasp as a person who works with websites for a living. Agreed, article and section are a bit confusing, but I don’t think by and large that HTML5 semantics are a byzantine labyrinth of alien thought impressions that cannibalize the minds of sane men.

Current Browsers, Search Engines and Assistive Technology Don’t Understand It, So Don’t Bother

When I was making a few years back, Internet Explorer didn’t understand border-radius. Yet, despite that, I used it in making websites. And not only does IE now understand (and render) those pretty corners, but many of those websites still exist, using the same code I wrote back then. If I had chosen to not use border-radius because of the limitations of the time, the sites wouldn’t look good today because of my short-sightedness.

HTML5 is still settling down into its patterns. Some of the meanings are still being locked in. It’s not “done”, as evidenced by Hixie’s arbitrary and somewhat bizzare attempt to remove the time element from the spec. Does this mean that I shouldn’t be using elements from the specification because it’s not done now? Of course not! The sites I’m making today will not only be live for years, they very likely won’t see a redesign for much of that lifetime. Relying only on what’s “finished” now would be a disservice to my clients today, preventing them from benefiting from features for years because of a technicality on the spec’s status or the full support level of browsers.

AT, browsers, search engines, they will all catch up with taking meaning from semantics at some point in the future. When they do, would you rather that your website was ready for them, or would you like to spend time (and money) re-coding your mess of divs into something slightly more relevant? There is no harm in using divs now (when other, more semantic elements might be better). But there is a very good chance that it will put your site at a disadvantage later, when the technology catches up.

Saying that I shouldn’t use semantic markup because AT, browsers or search engines aren’t consistently taking advantage of it in the present is like saying that I shouldn’t use video or audio elements because some browsers aren’t taking full advantage of them yet. It’s limiting my future benefits by over-adhering to the present. How many of Divya’s CSS tricks shown at her presentations at conferences work on all current browsers? In all likelihood, none of them. Does that mean they don’t have value, and shouldn’t be used?

How is making use of semantic markup any different?

It’s not.

Spending As Little as 40 Minutes To Learn About HTML5 Markup Is A Waste Of Time

I am shocked that she said this. I’d almost characterize it as insulting. We are professionals in a career that demands continuing education.

At the end of the very same post, Divya suggests that developers learn Javascript. Which is good advice. Learn it. Love it. But how can you advocate the value of self-education while simultaneously characterizing spending forty minutes of your time to familarize yourself with the meaning of some of HTML5′s elements as a waste of time?

Sometimes the choices we make in markup don’t result in manna from heaven. Personally, I don’t attempt to adhere to sensible, semantic markup for the sake of SEO (which I consider a bunch of snake oil bulls*** anyhow) or for accessibility purposes. I do it because there’s an inherent value in attempting to do something in a consistent and correct fashion. There is meaning and purpose in constantly attempting to improve one’s level of craftsmanship.

There is nothing pointless in pursuing good standards, including adding semantic value to your website. Even if there was no future benefit to properly, professionally crafted markup (and there will be), there’s an inherent value in taking pride in your work and producing a product that is more elegant than that of your hurried, slapdash competitor.

There is meaning in striving for meaning.

Or as Karl commented in Divya’s post:

inadf, rjfsnsl nx pjd yt zsijwxyfsi jfhm tymjw. ny’x ymj xthnfq htsywfhy ns gjybjjs tzw nijfx. dtz fwj rncnsl uwthjxxnsl fsi rjfsnsl. vznyj xfi.