Relevance Continually Trumps Timeliness

There’s lots of push lately in the tech community to chase the dragon of real-time.

I do see real-time it most valuable during events that I’m not able to attend in person (the recent IgniteMpls event comes to mind immediately).

Even then, there’s always delay.

Each second delay brings an opportunity to filter for relevance. That’s the biggest win of our increasing use of online services for social interaction. We trust and filter each other [1] [2] [3] [4][5]. While these processes take time, they magically transform a firehose of information into an energizing conversation over a couple of beers.

A friend of mine has opted for a 48-hour delay on his incoming stream. Two days is about how long it takes for daily drama to dissipate. And if it doesn’t – it’s significant, if not relevant.

I was reminded of this earlier today when I received a forwarded email. The email was terribly partisan, terribly incendiary, terribly xenophobic, terribly incoherent, terribly panicked about the economy and the changing face of their community. They even invoked Godwin’s Law2 completely out of the blue.

I received it today.

So I assumed it was written recently – say within the past couple days.

Not at all.

August 2008 it says.

Really?

On second read: apart from a sentence or two, it could have been written in August 2001. Or August 1981. Anytime when significant changes in the American zeitgeist were afoot.

Quite a bit has happened since last August. I can only assume a significant percentage of the people this diatribe was directed at are no longer in positions of power. Do these issues reflect anything 9+ months later?

If this were realtime – no.

Yet, I received it today, and the author’s name has 18,200 Google results2 – all pointing to this identical rant.

Whether or not it reflects the current feelings of the author or their community, this rant has continued to inspire a portion of the American populace to share it with each other.


1. I’d much rather people invoked Steiner’s Law instead.
2. As a comparison, my name has between 18,700 and 32,100 results depending on spelling.

More Usable URLs: Twitter.com

URLs are consistently the least usable aspect of our interaction with web-based information services – which is terribly unfortunate considering their prominence in how we access, share, and interact with these services.

With that in mind, let’s take a look at how Twitter’s URLs could be more usable – by either being more logical, more readable, more share-able, or a combination of all 3.

Here’s a standard Twitter URL:
http://twitter.com/garrickvanburen/status/161277022

Let’s break this apart:
/garrickvanburen
The person’s Twitter account we’re interested in – very clear1.

/status
I’m not sure what ‘status’ is – seems like a very system-centric term. For the sake of this conversation, let’s assume it’s a synonym for ‘note’, ‘message’, ‘news’, ‘memo’, or the collection of things I publish at Twitter.

/161277022
This is the individual ‘status’ identifier. Presumably, it’s the primary key ID of this ‘status’ within all the ‘statuses’ in Twitter’s database – making this ‘status’ ID global – not nested within ‘garrickvanburen’. Again, very system-centric and kind of backwards – if we assume URLs should go from largest logical entity to smallest nested entity.

A RESTful URL structure would dictate the following:
/Plural Version of Resource Name
/Individual Resource Identifier
/Plural Version of Sub-Resource Name
/Individual Sub-Resource Identifier
/(et. al.)

If we mapped Twitter’s existing structure against this model we’d have:
http://twitter.com/people/garrickvanburen/statuses/161277022

We can see, Twitter’s URLS aren’t exactly RESTful, and since they’re not – let’s look at some ways to make them more logical.

Proposal 1: Logically Long
http://twitter.com/garrickvanburen/twitter-suggestion-put-the text-of-the-tweet-in-the-tweets-permalink.
This is the most usable and readable for both people and machines. It has the huge benefit of having the entire message in the URL (the mind reels with possibilities). WordPress does a great of making legal URL strings out of a weblog post’s title.
Benefits: Highly-readable, logical nested structure, great for search engines
Detriments: Long (though Twitter’s built-in limits provide a maximum length)

Proposal 2: Globally Short
http://twitter.com/1612770222
This is akin to my WordPress URL Shortening Hack
Benefits: Short
Detriments: Almost no information provided makes this the least usable and equivalent to the shortened URLs you find throughout Twitter.

Proposal 3: Personally Short
http://twitter.com/garrickvanburen/5954
Where 5954 is the number of the individual message in the pool of all my messages.
Benefits: Short, encourages numerically navigating through a person’s messages.
Detriments: Numbers are always less usable than words.

The great thing about these proposals is they’re not mutually exclusive. In fact – different URL structures bias different usages and contexts. In the same way different formats (HTML, RSS, XML, Text-only, etc) providing different presentations of the same webpage to different devices are more usable – different URL strings pointing to the same webpage are as well.


1. Identi.ca’s URL structure doesn’t include the person’s name [example]- making the number less confusing, but the URL itself less usable.

A Proposal for Shorter Google Maps URLs

I was adding a link to a Google map into my iCal and noticed Google is encouraging me to share the the map URLs in email and IM.

google_share_map_url

But there’s a problem with the Google Maps URLs.

They’re +/- 155 characters.

Here’s the full URL:
http://maps.google.com/maps?oe=utf-8&client=firefox-a&ie=UTF8&q=the+red+pepper,+plymouth,+mn&fb=1&split=1&gl=us&cid=1854680882426337660&li=lmd&z=14&iwloc=A

This URL is neither short, nor easily memorable, nor easily guessable. Which means it’s a completely un-usable – and barely shareable URL. Plus, something tells me this breaks both email and Twitter’s box.

CampaignMonitor says we don’t even get to the geocode.
google_map_url_campaignmonitor

Really Google!?

Even something like this is more share-able (in that it’s short).
http://maps.google.com/1854680882426337660

For the exact same character count, we can make it more guessable and more memorable (therefore more usable).
http://maps.google.com/RedPepperPlymouthMN

Yes, this is the exact same complaint Dave Winer had 5 weeks ago in Solving the TinyUrl centralization problem. Hell, if I’m only 5 weeks behind Winer, I’m cool with that.

How To Cache Highly Dynamic Data in Rails with Memcache – Part 3

In part 1 and part 2, I laid out my initial approaches on caching and performance in Cullect.

While both of them pointed in the right direction, I realized I was caching the wrong stuff in the wrong way.

Since then, I tried replicating the database – one db for writes, one for reads. Unfortunately, they got terribly out of sync just making things worse. I turned off the 2nd database and replaced it with another pack of mongrels (a much more satisfying use of the server anyway).

Cullect has 2 very database intensive processes: grabbing the items within a given reading list (of which calculating ‘importance’ is the most intensive) and parsing the feeds.

Both cause problems for the opposite reasons – the former is read and sort intensive while the latter is write intensive. Both can grind the website itself to a halt.

Over the last couple weeks, I moved all the intensive tasks to a queue processed by Delayed_Job and I’m caching the reading lists’ items in database table – rather than memcache.

Yes, this means every request is pulled from the cache, and a ‘update reading list’ job is put into the queue.

So far, this ‘stale while update’ approach is working far better than the previous approaches.

BTW, as this practice confirms, the easiest way to increase the performance of your Ruby-based app is to give your database more resources.

My Long Bet Against Mobile Carriers: Update 1

Late last year, I extended my T-Mobile contract 2 years.

When I signed it, I had a hunch it will be the last time I’m locked into an agreement like that.

Now, I’m confident – so confident that if I was holding any mobile carrier stock, I’d start shorting.

A couple weeks back, we got a great deal on a 5-day trip to Playa del Carmen, Mexico. We booked it, made arrangements for the kids and packed out bags.

I left the laptop and my Nokia at home – taking my iPod Touch and the Kindle.

Wifi was everywhere – in the airports, Starbucks, probably more places as well – all along the way. While the hotel was only confident of their wifi covering their lobby, coverage was fine in our room.

I was able to check email, Twitter, Cullect, and we used Skype to talk with everyone back home. All on the iPod Touch all over the hotel’s wifi.

When we returned home this weekend, my Nokia greeted me with.

0 messages
0 missed calls

Short URLs Re-defining SEO

It’s conventional search engine optimization wisdom that URLs should contain words, separated by either dashes or underscores. This approach improves the readability of the URL – making it more usable for people while simultaneously giving internet robots something to work on.

But with people sharing URLs within places – like Twitter and Facebook (and … and … and …) – places with a default social context, we’re seeing a URL’s context trump its readability as a significant usability factor.

Who is sharing and how they describe what they’re sharing is more important than the readability of the shared URL itself.

Leaving the search engine robots blocked out completely (disallow, nofollow, etc) or piecing together a pile of redirect URLs (which may or may not exist tomorrow, e.g. RE07.US).

Additionally, the share-er’s pays for each URL with their social capital. ‘Good’ URLs (as deemed by each individual follower) raise the share-er’s capital while ‘bad’ URLs lowers.

Throw in the proliferation of other difficult to index assets like images and video – and we’re talking about an internet that’s not Search Engine Optimized, but Social Engagement Optimized.

Unspoken, Unfortunate, Synonyms

From what I can tell;

  • “SEO” is an unspoken synonym for “works better in Google”
  • “Social Media” is an unspoken synonym for “works better in Twitter”

Both of these are unfortunate for they:

  • turn something easily understandable into something vague and amorphous – the exact opposite of good framing
  • mask the monopoly those companies have on their respective service.

This is analogous to using “entertainment” as synonym for not just “television” but the specific televised offering from BBC Four.

Of course, promoting yourself as an expert in Twitter (without having a Twitter-issued business card) should elicit giggles from anyone within earshot. But at least it’s being honest and authentic – the first step to being more social.

Elsewhere 11 Nov 2009

“That tweeting it is a private breed of microblogging verges on irrelevance. Twitter is now as necessary to tweeting as Google is to search. It’s a public activity under private control.” – Doc Searls

Dog-Eared

Some quick reviews of the handful of books I savored during my recent trip in Mexico.


The End of Prosperity: How Higher Taxes Will Doom the Economy–If We Let It Happen
endofprosperity

I found this month’s Economics book club selection (my first Kindle purchase) an extra-ordinarily frustrating read mainly due to the Fox News-esque partisanship. Despite that, the sections on the incentives and implications of the Laffer Curve, Flat tax, Fair tax were thought-provoking and highly recommended.


Wild Fermentation: The Flavor, Nutrition, and Craft of Live-Culture Foods
wildfermentation

The most inspiring cook book I’ve ever read – all about improvising in the kitchen and embracing the microorganisms around you. The recipes for Persimmon Cider Mead and fruit Kimchi sound pretty delicious.


Belgian Ale
brewlikeamonk

Great book (like all the books in the Classic Beer Style Series) on the history and definition of Belgian ale. The key – don’t be afraid to use 20+% sugar and focus on flavor rather than strict tradition.


Brew Like a Monk: Trappist, Abbey, and Strong Belgian Ales and How to Brew Them
brewlikeamonk

A deep dive into the history, brewing process, and recipes for some of my favorite Belgian beers – Afflighem Blond, Westmalle Trippel – and some of the American beers brewed in the same style. Stan Hieronymus makes a pretty good argument that it’s the Americans that are moving the style forward.

194X: Architecture, Planning, and Consumer Culture on the American Home Front (Architecture, Landscape and Amer Culture)
194X

Fifty years ago, the Great Depression and WWII destroyed the careers of American architects – they switched from building to planning. Planning the new American cities, planning suburbia, planning for the war to be over and their careers to return.


Coffee Cupper’s Handbook
scaacuppingbookfulljpg

THE vocabulary book on describing coffee’s taste. The biggest ‘a-ha’ for me: cooling removes the sweet and bitter aspects of coffee – but has no impact on the sour tastes. Big thanks to Sam Buchanan for loaning me his copy.

WordPress URL Shortening Hack

My last post, Publishers Shorten Yourself, got me thinking about easy, low-tech ways to provide a short url for WordPress blogs.

Turns out, just 1 line of code is needed in the .htaccess file.
RewriteRule ^(d+)$ http://[YOUR-BLOG-URL]/?p=$1

Add it in just after RewriteBase so your .htaccess looks something like this:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^(d+)$ http://[YOUR-BLOG-URL]/?p=$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

To use this short URL in your templates do one of the following:

If you want to use the same domain your blog is on, use this:

<a href="<?php echo get_option('home'); ?>/<?php the_ID(); ?>"><?php echo get_option('home'); ?>/<?php the_ID(); ?></a>

If you have a different, perhaps shorter domain, use this:

<a href="[SHORT-DOMAIN]/<?php the_ID(); ?>">[SHORT-DOMAIN]/<?php the_ID(); ?></a>

Note: You will have to add an additional redirect to the .htaccess file of SHORT-DOMAIN, but that’s not problem, because it’s very similar to the WordPress redirect we started with.

And like that you’ve got a short url, for every post in your WordPress blog. No more worries about whether or not a specific URL shortener will be stealing your referrers or even be around tomorrow.