Blog posts tagged "twitter"

2007 Was Not the Year of the Addressbook

February 28th, 2008
from __future__ import the_cloud |identity|
      if the_cloud.geolocator(the_cloud.dopplr, the_cloud.fireeagle).nearby?(identity)

Last year I wrote a SxSW Twitter killbot, but what I really wanted was the above. I almost wrote it, but there were one of two annoying problems, and I figured someone else would write it for me.

Its one year later, I’m starting to realize that I’m about to go into conference mode again, which on top of a sleep deprived delirium, and a certain disconnect form external data sources, also is the only time when I have Twits come to my phone. And I still can’t do the above! What have you people been working on all year! Don’t make me come back there and start a start up.

Other questions I’ve asked my addressbook lately, and failed to get a response:

Please partition my social graph into a Dijkstra Nikon/Canon split.

Does Bob like cilantro? And is Alice lactose intolerant?

Do any friends.known_vegetarians.have_yelp_reviews(Austin)?

Lots of others, all unanswered.

OAuth in PHP (for Twitter)

October 16th, 2007

Mike released HTTP_Request_OAuth today, so I spent a little while this evening coding up Service_Twitter as helper class for making OAuth authorized requests against the Twitter API.

Both are early enough in the dev cycle to be called proof of concepts.

Mostly I wrote it because I had always envisioned there being wrapper libraries around the low level OAuth implementations that wrapped the calls, and constants, and as Mike graciously went out and wrote a low level library I felt compelled to write a wrapper.

Also twittclient, an interactive client for getting an authed access token, essential to bootstrapping development.

And nota bene, HRO currently only supports the MD5 signing algorithm, which is undefined in the core spec, and subject to change. (Just in case you didn’t believe me about the early state of things.)

update 2008/4/18

This code no longer works because Twitter has taken down their (slightly non-compliant) OAuth endpoint. When they add OAuth support back in, I’ll link to it.

Union Sq. Ventures

July 30th, 2007

The writing was on the wall.

Jack Dorsey: Taking the subway to Union Sq. The NYC one. (July 23rd)

(actually I missed that one, but Twitters from Jack regarding the White Stripes were a dead give away!)

Bit late, but congrats to both Twitter and WeSabe on closing funding with Union Sq. Ventures.

Like Tony said, “All my friends go with Union Sq.”. I’ve been fan (a fan of a VC!?!?) since shortly before their investment, and they continue to fund my favorite start ups.

We walked by their office today, but too busy to stop in and say, “Hi”.

Google Talk Architecture, and High Availability (HA)

July 29th, 2007


Via the HA blog (an obviously unserved niche in retrospect), a very interesting 30 minute presentation on the Google Talk architecture.

ConnectedUsers * BuddyListSize * OnlineStateChanges

Interestingly people keep independently re-discovering that maintaining presence is the hard part of scaling these systems.

Its something that really came home hard in my talking with Twitter helping with their scaling challenges (so much so that we took a slide out of our “Social Software for Robots” talk to talk about it, and Blaine mentioned it again in his “Scaling Twitter” talk)

So by way of a PSA:

Presence isn’t easy.

Growth in social systems in non-linear. Ignore the network effect at your peril.

Kick the Tires

Also interesting was “Real Life Load Tests”. The GTalk team deployed to Orkut and GMail weeks before actually turning on the UI for the features to be able to monitor the load. These are the practices that make Bill’s recent observation on HA systems possible:

An interesting takeaway is that it’s clearly possible to re-architect data storage on super-busy production systems seemingly no matter where you start from.

For the rest of bullets see the HA blog post.

Slides: Social Software for Robots

May 18th, 2007

Blaine and my slides from XTech07. (Oh, and SlideShare needs co-presenter features!)

More XTech ’07 slides.

Twitter, Ruby, and Scaling

April 12th, 2007

Alex gave a phenomenal interview on Twitter and Rails a couple of weeks ago. This morning its all over the Net — but folks I think are taking the wrong lessons from it.

  1. Ruby is dead slow. This is not news, though it can be surprising when you’re used to thinking about scripting languages as all being roughly equal.

  2. Rails trades developer performance for framework performance. Also not news, as this has been the mantra of Rails since day 1.

More importantly he gives a quick insight into the how of making social software scale. It’s hard, it has ugly network effects, it makes databases cry. Alex mentions cache like mad. (because frankly no one but the content creator needs to see fresh data)

Also denormalize like mad, federate like mad, and prune features that make your site slow. (and these are the same techniques that they’re working on behind the scenes at Twitter, and that we use to scale Flickr).

You’ll never build a successful site if you build to scale from day 1, scaling is always a catch up game, but it’s the best game there is.

(And yes, this is my all Twitter all the time blog week)

update: Blaine, lead Twitter engineer, is giving a talk on how they scale Rails/Twitter next weekend at the Rudy SD Forum. (which has done a terrible job of publicizing its existence, but has a pretty killer looking line up)

Crumbling Illusion of Phone Network Security

April 11th, 2007

Tetanus Factory

It’s been “big news” that Twitter and Jott are vulnerable to CallerID spoofing. Can’t speak for the Jott kids, but I know this isn’t news to Twitter kids, given that Blaine and Rabble were demonstrating CallerID spoofing (and related techniques) over Asterisk several years ago.

This is one of those security problems that everyone knows about and quietly agrees not to speak too loudly about because alternatives like Nitesh proposes are usability disasters.

The carriers have designed their networks around the assumption of monopoly practices and zero information sharing, and it means they’re slow and make dumb mistakes. (I always think of it as a nice parallel to the current U.S. administration — organizational tactics constrain your imagination and your coping techniques)

Jabber, btw doesn’t have this problem.

Photo by thristian

Coding a Twitter killbot

March 9th, 2007

j =, pass)

j.received_messages.each do |mesg|
    if mesg.body.match(/austin|sxsw/i)
        sender = mesg.elements['//screen_name'].text
        j.deliver('', "leave #{sender}")

Though truth be told, it isn’t running.

Weather over Twitter

January 12th, 2007

Too Close!!!

And while we’re talking about recent hacks, Blaine and I whipped up a Jabber bot using his Jabber::Simple and the Yahoo weather feeds, to provide twice daily weather updates via Twitter.

Jabber is an intriguing platform to build on top of, and the more I play with it the more potential I find. I keep checking in on it every few years (since MetaEvents days), but recently its gotten much more interesting. In part thats Google’s adoption of the standard (and the subsequent enhancement in tools, libraries, and clients), and partially standards bake slowly, but at the core of it I think we’re reaching a point in the evolution of the Web where Internet-scale deployed messaging standards have a lot to offer of us. A protocol for when HTTP fails you.

If you follow these bots, you’ll receive those updates wherever you normally get your Twitters; IM, Phone, RSS, or just on the web. So far, we have bots for the following cities: Boston, Brighton, Chicago, Helsinki, London, Los Angeles, New York, Paris, Portland, San Francisco, Seattle, Singapore, and Vancouver. If you’d like to see another city, just ask and we’ll provide.

Slightly out of date source available at twitter-weather – Google Code

And taking requests for new cities. Probably do a big batch of new ones sometime next week. (not really an automated process)

Photo by bonsaikiptb

Twitter Curve

December 8th, 2006

First congrats to the Obvious kids (assuming any of you survived your wild bacchanalia of vegetarian and raw foods last night), you’ve made the big time!

You’ve got a Kathy Sierra graph named after you!

And she is talking about Continuous Partial Attention, which is also fascinating. But I think she is wrong about Brain 2.0 not being here yet.

Brain 2.0

I know my own brain is addicted to stimuli: flashing lights, amusing concepts, spinning tops, sugar, caffeine, loud noises, human connections, etc. Note the lack of “fascinating and important new information” in that list.

Unbolding and Broken Promises

That’s why email and feed readers can be so distracting, they slip past our intellectual safe guards by promising us “important and timely information”, but really we go to the trough hoping for stimuli, something to keep the howling 2 year hold cum crack fiend brains of ours from going into withdrawal.

And they don’t deliver. 99% of email is boring, 92% of RSS is boring.

Bad mornings are the ones where I sit at home compulsively unbolding things hoping that somewhere in there there will be the gem of connection and stimuli that gets me out the door.

So we have an activity which consumes a huge amount of time, and delivers low grade rewards intermittently.


And thats where Twitter comes in. I have Twitter going to IM (the excellent Adium). Messages appear at the top left of my screen almost in my peripheral vision, and fade away quickly with no intervention needed (thank you Growl), a quick squirt of connection without requiring agency.

IM is supposed to be asynchronous, but at that the same time you need someone to occasionally make “eye contact” with you to know you aren’t howling in the void, and Twit provides that, its stream of updates providing presence, and occasional directed response.

MySpace Hating

Social software as monolithic web destinations is going to go away over the next 5 years (with the exception of course of certain photo sharing sites). Right now tools like MySpace are structured around the very adolescent desire to make friendship and community a public and performative act, with everyone else piling on due to the network effect. Adults for the most part, don’t need, don’t want, and don’t have time to participate in the continuos and elaborate preening rituals. We’ll want tools that allow us to build tight knit groups, with low cost communication, asynchronous connection, and social discovery. They might look something like Twitter.