Posts in the Tech Category

The Survey, 2010

Published 14 years, 1 month past
I TOOK IT! And so should you — THe Survey For People Who Make Websites, 2010

It’s that time again: the 2010 edition of The Survey For People Who Make Websites is open and taking your input.  If you’re someone who creates web sites,  whether all the time or some of the time or even just occasionally, please take just a little bit of your day (as I write this, the average time-to-completion is just over 10 minutes) to let us know about you.  Furthermore, please spread the word to any groups to which you belong—local SIGs, mailing lists, newsgroups, forums, message boards, and so on.  I truly believe it’s important to the profession as a whole to have as many web folks as possible participate.

I was asked a little while back why we do the survey, and my answer surprised me not just for its content but also for how much passion I felt.  I said:

I think it’s a vital investigation, a look into our profession that nobody else is even attempting and is… essential if we’re going to be taken at all seriously by anyone other than ourselves.

And even more vital than that, it tells us who we are, collectively speaking. We’re scattered. Many of us are solo. We don’t even know what kind of community we’ve joined. The Survey, though limited and imperfect, tells us something profound and essential about us.

That’s why I’ve wholeheartedly supported this effort from its very outset, putting in hours upon hours of thought and effort into its operation and approving the use of [funds] to pay for professional analysis. This matters.

Other professions have it easy: they require certification or degrees or membership in a professional organization before you can take part.  Because of that, they can often estimate to a reasonable degree, or even count directly, how many of them there are.  They can go to their membership rolls and survey a few thousand randomly picked members to find out their age, location, experience, salary, and anything else that seems interesting to know.

We who build the web don’t have that luxury.  Our profession, just like the medium it serves, has no gatekeepers, no central organization, no clear boundaries.  The Survey is our attempt to disambiguate ourselves.

So please, if you’re someone who makes web sites, take ten minutes to tell us about yourself.  If you know people who make web sites, please point them to the survey and ask them the same.  Thank you.


A Textile Filter for BBEdit?

Published 14 years, 1 month past

A few days back I tweeted a request for a Textile filter for BBEdit, which is one of those things people have asked for over the years but has never actually appeared.  There’s been a Markdown filter since forever, but since I find myself on Basecamp a lot for business reasons and Basecamp uses Textile I’d really prefer to stick to one syntax instead of constantly confusing myself by switching between two similar syntaxes.

(And I prefer to use BBEdit because I like it a lot, know it well, and have no compelling reason to switch.  Please take any thoughts of text-editor snobbery or flamewars elsewhere.)

In response, the mighty Arlen Walker told me how to install Xcode, the Text::Textile module, and a short Perl script to drop into  ~/Library/Application Support/BBEdit/Unix Support/Unix Filters.  I did that, and it all worked, but I was unhappy with the <span class="caps"> that default Textile litters all over.  I tried to disable it, failed, tweeted for help, and was contacted by the incredible Brad Choate (who wrote the Text::Textile module!).

The upshot of all this is that Brad not only told me how to disable the spans, but how to convert Textile to a standalone BBEdit filter that, so far as I can tell, shouldn’t require installation of either Xcode or Text::Textile.  I’m pretty sure about this, but since I’ve already installed Text::Textile I can’t be entirely certain.  Who wants to test it out?

All you have to do is download TextileSA_pl.zip, unzip it, and drop the Perl script into ~/Library/Application Support/BBEdit/Unix Support/Unix Filters.  Once you do that, it should immediately become available in BBEdit, even if BBEdit is already running.  (At least that’s what happens in BBEdit 9.x.)  Here’s a test file to Texile-ize if you’re so inclined:

h1. Testing the BBEdit Textile filter

This is _awesome_!  "Arlen":http://theodicius.net/ and "Brad":http://bradchoate.com/ are the *bomb*.

There’s a bug at the moment that means double-quote marks don’t get smart-encoded, but Brad’s aware of it and plans to fix it.  Also, this does a straight Textile run with nothing disabled, so it will in fact still litter <span class="caps"> around any sequence of uppercase letters (like those in, say, “BBEdit”).  If you can’t stand that even during testing, open up TextileSA.pl and insert the following after line 2312:

my $css_flags = $textile->css();
$css_flags->{'class_caps'} = '';
$textile->css($css_flags);

If you don’t mind (or even like) those spans, then of course you can slip that part.

The “SA” in TextileSA.pl stands for “StandAlone”, by the way.  I’ll drop that once I’m sure this actually works and pass it along to the BBEdit gang.


Vendor Prefix Lists

Published 14 years, 1 month past

At the prompting of an inquiry from a respected software vendor, I asked The Twitters for pointers to “canonical” lists of vendor-prefixed properties, values, and selectors.  Here’s what the crowd sourced at me:

Lists more than just prefixed properties, values, and so on.

While there’s no guarantee of completeness or accuracy, these are at least what the vendors themselves provide and so we can cling to some hope of both.  I was also pointed to the following third-party lists:

If you know of great vendor-prefix lists that aren’t listed here, particularly anything from the vendors themselves, please let us know in the comments!

Somewhat if not obviously related: does anyone know of a way to add full Textile support to BBEdit 9.x?  Having it be a Unix filter is fine.  I know BBEdit already supports Markdown, but since Basecamp uses Textile and lots of people I work with use Basecamp, I’d like stick to one syntax rather than confuse myself trying to switch between two similar syntaxes.


Events Sold Out and Coming Up

Published 14 years, 4 months past

Just before noon (Eastern U.S. time) today, An Event Apart Minneapolis sold its last available seat.  That’s three events so far in 2010 and three sell-outs.  If you were hoping to join us in Minneapolis but hadn’t registered yet, we’re sorry we won’t see you there!  You can contact our Event Manager to get put on the waiting list, or you can join us for one of the remaining two shows of the year: Washington DC and San Diego.

There are strong reasons to prefer either one.  In Washington DC, we’ll have our second-ever A Day Apart, a full day of in-depth learning with Jeremy Keith and Ethan Marcotte taking on the topics of HTML5 and CSS3, respectively.  We ran A Day Apart in Seattle earlier this year as something of an experiment, and it was such a huge hit that we immediately decided to add it to a future show.  We settled on Washington DC for a variety of reasons, not least of which was that the hotel had the space available to add a third day.  So far as we know it’s the last time we’ll do A Day Apart in 2010, so if you’re interested, it’s the place to be.

San Diego, on the other hand… well, it’s San Diego!  In November!  It’s also the last chance to see our 2010 lineup of speakers, who’ve been consistently hitting it out of the park with insightful thinking and bold challenges to the status quo.  We may never again see this particular combination of pure smarts and talent, so if you can’t make it to DC (or you’d rather just hit the beach in advance of Thanksgiving) then come on down.

From mobile design to advanced CSS to the latest in HTML5 to smart content to wonderful design, the sessions at AEA this year have been outstanding.  The audience feedback has been really incredible, almost overwhelming.  If you haven’t seen this year’s lineup, you should really consider checking it out.  We’d love to see you there!

(P.S. Want to hear more about An Event Apart’s origin story, growth, vision, and future?  Tune in to The Big Web Show this Thursday at 1pm Eastern U.S.!  I’ll be a guest along with Andy McMillan—he of the fabulous Build Conference of Belfast—talking about web conferences and more.  And if you miss the live show, don’t worry; there will be a lovingly edited version up shortly after we’re done taping.)


Fixing Font Display in Thunderbird 3.1

Published 14 years, 4 months past

If you upgraded Thunderbird and discovered that the fonts used to display messages suddenly changed, and worse still, you were unable to get all messages to obey your font display settings, then this post is most likely for you.

Here’s what happened to me: I upgraded to Thunderbird 3.1, and suddenly all my messages were in a font I didn’t recognize or appreciate.  I insist on seeing only the plain text version (technically, the text/plain part) of all my e-mail; and what’s more, that it be displayed in a monospace font.  Courier 13, in my case.

So I made sure “View > Message Body As” was still set to “Plain Text”, which it was.  Then I went into the preferences and messed around for a bit.  Eventually I set every font setting I could in “Preferences… > Display > Formatting > Advanced…” to be Courier and have a size of 13, and also to make sure that “Allow messages to use other fonts” was not checked.  All this was done, and Thunderbird relaunched to make sure the preferences stuck.  They did, and most of my mail was displayed as I intended.  And yet a number of messages, such as those generated by Basecamp, were still displaying in this new, thoroughly unwanted font.

A screenshot showing that all the relevant preferences have been set over top of a mail message which clearly violates the preference settings by displaying the message in a different font and font size.

At first I thought it was happening with any HTML mail, but after viewing source on a bunch of messages (using command-U, same as in any Gecko browser) that didn’t seem to be true.  I Googled about and came across a post on Daniel Glazman’s blog which decried the problem in terms very similar to those I’d have used.  Unfortunately, all the comments on the post told me was that the interloping font is Menlo, that this was a deliberate decision by the Thunderbird team, and that they didn’t seem to understand why anyone might be annoyed as hell to have their font settings changed out from under them with no apparent recourse.  What they didn’t tell me was how to fix the problem.

Eventually, I tweeted a complaint—you know, the way you do—and Bryan Watson got me pointed in the right direction.  Something just told me that if I dug around in the hidden preferences, I’d find what I needed.  So I went to “Preferences… > Advanced > Config Editor…” and searched for “Menlo”.  I got three hits, and it suddenly became clear what was happening:  Menlo was being used for Unicode-based mail.  Further, it would seem, the GUI options in “Preferences… > Display > Formatting” don’t affect the settings for Unicode mail.  For whatever reason.

A screenshot of about:config (a.k.a. the Config Editor) showing the results of a search for the term

So I ran a new search in the Config Editor, this time for “unicode”.  That got me several results, but it also got me what I needed: the settings for both the font face and the font size used to display monospace and “fixed” type in Unicode mail.

Accordingly, I changed three lines in the Config Editor—the ones in the screenshot which are boldfaced and have a “user set” value for the “Status” column—and with that, my mail was displayed the way I wanted it, which is to say the way it had been displayed for years, which is to say the way it would have continued to have been displayed if Thunderbird hadn’t silently changed the settings on me and then refused to honor my reasserted preferences.

The 'about:config' window showing the results of a search for the term 'unicode'.  The three preferences changed are 'font.name-list.monospace.x-unicode', 'font.name.monospace.x-unicode', and 'font.size.fixed.x-unicode'.  There are thirteen other preferences listed along with the three changed, for a total of sixteen.

If you’ve encountered a similar problem, now you can do what I did and hopefully avoid some of the annoyance I experienced in trying to get my mail client to behave properly.

[Update 8 Jul 10: Mook wrote in to point out where this setting is buried in the preferences UI, for those who might want to set it without diving into the Config Editor.  Thanks, Mook!]

I’m also really rather annoyed that Thunderbird can’t seem to remember that I don’t ever want to see the Message Pane, but that’s a reported bug and I only hope that they fix it sooner rather than later.

Translations


In Defense of Vendor Prefixes

Published 14 years, 4 months past

…that having been the original working title for “Prefix or Posthack“, my latest article for A List Apart.  (Sort of like Return of the Jedi had a working title of Blue Harvest.)  In a fairly quick read, I make the case that vendor prefixes are not only good, they have the potential to be great and to deliver greater interoperability and advancement of CSS.

So far the reaction has been overwhelmingly positive, which frankly came as a bit of a surprise.  The annoyance factor of prefixes is undeniable, and it’s been my experience that annoyance dramatically hardens opposition regardless of whether or not there are good reasons to oppose.  I could flatter myself that the agreement is due to the Obvious Rightness of my argument, but I suspect it’s actually that I merely articulated what most people had already instinctively decided for themselves.  Which isn’t a bad place to be.

Anyway, if you haven’t already, feel free to decide for yourself by reading the article — which, I feel like mentioning for no clear reason, is only the fourth piece I’ve ever written for ALA.


Text, Speech, Video

Published 14 years, 4 months past

All of a sudden, people have been asking me to yak about myself and stuff that I know (or at least think I know).  These things tend to come in waves, and right now I’m surfing like a search engine’s crawlerbot.

I don’t think that metaphor made any sense at all.

Anyway, here’s what I’ve had to say so far:

  • The Geek Talk: Eric Meyer  —  a brief e-mail interview I did a week or so back.  Want to know my favorite color?  Applications?  What I think of CSS3?  What I intend to do this year?  A recent inspiration?  Read and enjoy.

  • The Pipeline, Episode #19  —  a half-hour interview with Dan Benjamin.  We talked very little about CSS and a lot about how I got started with the web, why I’m still with it nearly two decades later, and why I believe quality is everything.  This was a very interesting interview because I went into it entirely cold: we didn’t discuss topics, length, or really anything at all beforehand.  We just jumped in.  Refreshing, maybe a little unnerving, but a lot of fun, not least because Dan is a master interviewer.  Probably one of the most personal interviews I’ve ever done.

…and speaking of Dan, he’ll be the co-host (along with Jeffrey Zeldman) in my next public appearance:  Episode 12 (Thursday, 15 July 2010) of The Big Web Show.  The incomparable Andy McMillan and I are the scheduled guests and the topic of conversation will be web conferences — what goes into them, how to found one, how to help it grow, and so on.  I’m really looking forward to it, being especially interested in what Andy has to say about his experiences with the Build Conference, and I hope you are too!


App Shopping

Published 14 years, 5 months past

While I agree with Neven Mrgan’s Walled Gardens, I feel like the whole imagery of walled gardens is a bit of a metaphorical stretch — not because it’s inaccurate, but because it’s fundamentally unnecessary.  We don’t need metaphors here.

That’s because the iTunes App Store is just what its name states: it is a store.  That has a fairly specific and intentional meaning in the world of commerce.  It means that the stock is not infinite and that someone has screened it.

Think of visiting a store in the real world.  Not a small shop, but a store.  Something large (or at least largish) with lots of things to buy.  Macy’s.  Target.  Wal-Mart.  Or even the local hardware and general store in a small town, where there’s more than just tools and nails and bags of cement mix.

You go there to buy things because it’s a central location for buying a lot of things.  But inherent in the experience is that what you find on the shelves has been selected and vetted by the person or people running the store.  That doesn’t just mean favoring one brand of soap over another, but also deciding what to carry at all.  Your hardware store doesn’t sell flat-panel HDTVs.  Macy’s doesn’t stock six-inch PVC pipe.  Target doesn’t offer porn.  They have all selected some things to carry and rejected, if only implicitly, others.  Certain brands are not carried because their quality didn’t meet the proprietor’s standards, didn’t fit the store’s audience and brand, or weren’t sufficiently profitable to claim valuable shelf space.

This is an assumption about stores that we hardly notice except when it’s clearly not so.  If you’ve ever stepped into a store where it’s fairly obvious that everything, and I mean everything, the owner has ever come across in their life has been thrown onto the shelves on the theory that hell, it might look like junk but you never know what might be valuable to somebody, and you know what I mean.  We subconsciously expect that a store will offer wares which have been screened for quality and price, all conveniently collected in one place for our purchase.

So it is with the App Store.  It’s a central location for iPhone and iPad owners to go shop for apps.  The stock is large — too large for any physical store to handle — but it is still screened.  You may not like the screening criteria, just as you may not like the screening criteria exercised at Wal-Mart, but it exists nonetheless.

In the desktop computing world, of course, no such control exists.  There you find and collect applications wherever you find them, whether in a store or somewhere on the internet.  This is much the same as doing your shopping by driving around to garage sales and flea markets.  Taken as an aggregate, there’s no quality control, no screening, no organization.  It’s catch as catch can.

There’s room in the world for both models, of course.  Some people avoid stores in favor of flea markets and yard sales and the like because that’s what they prefer.  Others go to stores and avoid garage sales because they prefer the more controlled experience.  In fact, think about everyone you know.  How many prefer store shopping, and how many prefer flea market shopping?  In that light, the iTunes Store’s success is really no mystery.  It’s not just curated computing, which some have derided.  It’s curated shopping, a model which has already proven wildly popular.  More than that, it’s simple and cheap curated shopping, which is approximately the square of two wildly popular models.

You may say that there’s a significant difference between the physical world and the iTunes App Store.  If the real world were like iPhone/iPad ecosystem, there would only be one store in the whole world.  Everyone would have to shop there, and any merchant who couldn’t get in would be out of business for lack of customers.  In the real world, we can go to any store we like:  each is curated, but we can shop at the stores that offer what we like (read: that curate in a manner we find pleasing) and not the ones that don’t.  The App Store is the only place to shop.

But that’s only true if you believe that the iPhone/iPad is the only mobile ecosystem in town, which is an assumption a weirdly large number of Apple’s critics seem to make.  In fact, you’re perfectly free to join other ecosystems and shop at other stores.  Android has one, for example.  There are others.  If you don’t like what Apple offers you, then you can shop somewhere else, as many people do.

But let’s assume that you’re personally invested in the iPhone/iPad ecosystem and can’t for some reason avoid or leave it.  In that case, you’re stuck with that one single store, the App Store.

Except that’s only true because until now, nobody has launched an alternate store that offers web stack applications (WSAs).  Maybe that’s because nobody is really building WSAs yet, at least not in numbers large enough to justify building a store to sell them.  But then, maybe developers aren’t building WSAs because there’s no central place to sell them.  The centralization of stores is at least as attractive to sellers as to shoppers.  That’s a driver behind the recent announcements from Google and Mozilla, though as yet they’re just announcements.

A WSA store organized along lines similar to the App Store could do very, very well.  It would need to make the shopping and, more importantly, purchasing experiences as frictionless as possible; this is something the iTunes Store has definitely gotten right.  But suppose someone built a great WSA store and sold WSAs on a 20% commission.  How many developers might look at that and figure that the extra 10% was worth making a shift?

It certainly wouldn’t be as easy as just setting up a store and building a Scrooge McDuck vault; no, there would be many challenges, but nothing truly insurmountable.  Of that I am certain.  And the great thing is that, just like in the physical world, there’s room for multiple stores — boutique app shops, if you like.  Maybe one specializes in games; another in parent- and kid-centric apps; another in productivity apps; yet another in the “naughty” apps Apple booted out of its ecosystem a while back.  (I call them “fapps” for obvious reasons.)  Maybe these are app shops instead of app stores, but then, any large population can support a whole lot of shops.  They can coexist with any number of other stores, including those from Apple and Google and Mozilla and anyone else.

None of these WSA stores and shops would be able to sell native apps, but that’s less of an obstacle than many seem to think.  The window between native app behavior and WSA behavior has narrowed at an astonishing rate recently, and will continue to do so.  I’m not saying that you can do absolutely anything with a WSA that you can do in native code, of course, but a lot of native apps could have been done as WSAs.  Could still be done that way, in fact.

That points to the other advantage of a WSA store: it’s not limited to the iPhone/iPad ecosystem.  A well-written WSA can run in multiple ecosystems.  Being based on web technologies, they can (for the most part) go where the web goes.  The market is suddenly much bigger than the iTunes Store, much bigger than people carrying around Apple devices.  Much bigger than the people carrying around Droids, for that matter.  With WSAs, developers can sell in multiple ecosystems at once, using the most successful cross-platform technology since ones and zeros.

Besides which, in a very real sense, WSAs are not cross-platform apps.  They’re web platform apps that run in a native app that provides a window from a mobile ecosystem into the web.  We call that app a web browser, but it’s becoming more than that, and faster than many would have credited even six months ago.  The opportunities are beyond enormous.

For starters, imagine this: you have bought a number of apps at your favorite WSA store and installed them on your iPhone.  Then you find out you can finally get the hell off AT&T and move to a Verizon iPhone.  When you do that, the WSA store lets you install the apps you’ve already bought on your new ViPhone.  If it’s sufficiently smart, it will even migrate their data for you by way of the store itself.  Then, two years later, you decide you’ve had enough of Apple and want to move to another smartphone.  Once again, your apps and data go with you.

This is what the web stack makes possible.  If you thought mobile number portability was cool, imagine what you’ll think of mobile app portability.


Browse the Archive

Earlier Entries

Later Entries