Posts Tagged ‘twitter’

The 140-character pitch

Tired: “the elevator pitch.” Also: escalator pitch, Reader’s Digest version, treatment, etc.

Wired: the Twitter pitch. Call it the SMS pitch if you prefer. It’s the new “25 words or less”–give me the summary in the length of a tweet.

Modern, timely, fun. Plus the first ten times you use it you’ll get to explain the term to your audience and lighten the mood of the room.

Business

What will Promoted Tweets mean for ecommerce?

The news that Twitter is getting into the advertising business has exciting implications for companies ready to harness real-time conversations for ecommerce activity.

Companies with products and services to sell will be able to tap into the immediacy of conversations on Twitter and provide targeted offers in real time. Frustrated with a travel booking? Post a tweet and watch as a travel agent enters your tweet stream. Bouncing around ideas on which shoes to buy? Watch an ad for Zappo’s appear at the perfect moment.

If executed well, it’s the kind of advertising that consumers might admit to enjoying. More relevant than display ads and less intrusive than mobile, Promoted Tweets–once the kinks are smoothed out–could be downright useful.

Consider: C.C. Sabathia of the New York Yankees pitches another great game and completes his no-hitter. People (including, probably, this author) are tweeting rapidly about the feat, starting in the middle innings and hitting a crescendo around the end of the game. As the volume hits its max, Steiner Sports (an Ai client) inserts ads into the chatter: “Buy Sabathia’s game-worn jersey from his no-hitter! Get details now.” Instantly thousands of people are tuned into an item that might appeal to them at the moment of its maximum appeal. It’s search marketing for conversations.

Twitter’s conversations are essential, of course, and Promoted Tweets will have to be obvious without being intrusive. With the right execution, though, they will be huge.

Reblog this post [with Zemanta]
Branding

Take your batch into the cloud

About a year ago I wrote a webapp called twitter2gtalk, which simply takes your latest Twitter message and sets it as your Google Talk Status. Shortly there after I attended an App Engine Hackathon (GAE) at Google NYC. At the hackathon, I started porting the app over to app engine. At the time, there was no scheduling or cron support in GAE. I created a hybrid app running between GAE and my webfaction server. My webfaction server would handle the cron, proxy out the requests, and do some of the longer running tasks (the limit on an app engine request is 20 seconds).

Now with the release of the Task Scheduler and Task Queues, you can break up a long winded process into the cloud. My batch was taking around 18 minutes to run, with about 800 users being processed each time. For each user the app had to get their Twitter status, then connect to Google’s xmpp server, and after a couple of xmpp calls, update the Google Talk Status. Even being single threaded, this whole process started eating up a lot of juice on the server. The rest of my apache processes suffered and the entire site slowed down

Using the new app engine features, I was able to do two things: 1) Move the scheduling into app engine itself and 2) have app engine do the bulk of the work, by having each user-update be its own task. These worker tasks are then processed anywhere in the cloud, and can be run in parallel, independently of each other.

The original code was something like:

for users in all my users:
get twitter status
connect to gtalk
get current status
update status

My process for converting this to app engine tasks was as follows:

  1. Create a process to load all of the users into a Task Queue
  2. Set up each Task Queue so that it can independently do the work for the user that it is associated with
  3. Schedule Step 1 to run every half hour

Skeleton Code for Step 1:

class TaskLoader(BaseRequestHandler):
def get(self):
logging.info(“Starting to load tasks %s” % datetime.datetime.now())
users = Account.gql(‘WHERE active = :1′, True)
count = 0
for user in users:
send_key = # data to send to the worker
taskqueue.add(url=’/worker/’, params={‘key’: send_key})
count += 1
logging.info(“Ended load tasks (%d users) %s” % (count, datetime.datetime.now()))

The Url call for this method: (‘/taskloader/’, TaskLoader),

The Skeleton code for step 2:

class TaskWorker(BaseRequestHandler):
def post(self):
key = self.request.get(‘key’)
t = ”.join(["http://django.gpowered.net/xmppproxy/", key])
logging.info(“URL !%s!” % t)
result = urlfetch.fetch(t,
None,
urlfetch.GET,
{‘Cache-Control’:'no-cache,max-age=0′, ‘Pragma’:'no-cache’})

Url call for this method: (‘/worker/’, TaskWorker),

So, TaskLoader loads all of the users into the Task queue. App Engine processes these when it has the cpu cycles to do so, and for each of these, TaskWorker is called

I can schedule these using cron.yaml in my project:
cron:
- description: load the task queue
url: /taskloader/

schedule: every 30 minutes

This is a general overview of how to break up your batch in to smaller, easier to manage tasks. Please see the App Engine documentation for more detailed information.

Technology

To friend or not to friend?

The digital profiles that represent our personal and professional lives are becoming increasingly intermingled. My Facebook account isn’t just made up of my friends, but a motley mash-up of friends, family, colleagues, clients, others, and some dude who said he went to my high school but I swear I can’t remember him. On Twitter, I follow co-workers, clever people, some people I sold concert tickets to, and the family members that signed up for Twitter accounts whose both posts (first and last) were “This is my first twitter post.” On LinkedIn, I accept any request, unless it’s from an aggressive recruiter.
The (inter)net effect of my mixed up profiles is that I must always consider this varied audience when posting an update. Do I want everyone knowing that I had a nice time at the zoo this weekend with my kids? (maybe) Do I want clients knowing that I was out late the night before a big meeting? (probably not) Do friends care that we just won awards for some website? (most definitely) Does anyone care that my Entourage crashed and the rebuild progress on its database? (no, but they don’t ask me to stop tweeting about it)
So it shouldn’t be surprising that I was thrown two curve balls during recent new business engagements. During the first, we had reached the end of an exciting, and very competitive RFP process. I learned it was down to 2 firms. I was invited out to coffee to make our case, one-on-one. I did my best, explained our passion for the project, shared our ideas, and spoke to our other relevant success. I thought the meeting went well. On my way home that evening I see a LinkedIn request from the gentleman I had coffee with just an hour earlier. “I’d like to invite you to Join my LinkedIn Network!”
What did this mean? Was he saying that we had won the business and this was a cute way to notify me? Was he saying that he needed to complete more due diligence on me, check out my network, see who I know, and try to glean more information about me and our firm? Or was he simply asking me to join his network, even though we weren’t really networked yet?
I couldn’t very well ignore the request; I had to accept it and see how things developed. Spoiler: we won the business, it’s an incredible project, and our client is a fabulous company to work with.
More recently, we were involved in another very competitive RFP engagement. We traveled to our client for the big pitch, presented, said our goodbyes, and were on the way back to the office. Suddenly an email comes in: “PersonX would like to make you a friend on Facebook.” PersonX? Who was that again? Does anyone remember who was PersonX? Why are they friending me? To see if I really *get* social media and will promptly accept the friend request? To see if I had properly maintained a filter between my personal and professional life in my digital profile? To maybe find some forgotten nugget on me that I had posted years ago?
I agonized a bit over this one, but again came to the only logical conclusion: I had to accept the friend request. Spoiler: again we won the business, and have partnered with this truly awe-inspiring institution.
In both cases, but perhaps more importantly with Facebook, I felt completely comfortable accepting the requests because I have taken great care to preserve my digital image. Sure, Google can find a few oddball posts from Usenet and some funny discussion forums, but all in all, I’m squeaky clean. Some friends and colleagues maintain two profiles: work and fun. That seems like way too much effort and is far too dangerous. Just imagine the “did I just say that out loud?” moment when you post your opinions on the latest scandal to befall your favorite Yankees player to your Twitter feed usually reserved for ecommerce and UX tips.
In the two cases above the outcome was positive. But that’s not always going to be the case. I have a friend that consistently uses Twitter to complain about his frequent air travel, usually to one particularly annoying destination to see a client. He doesn’t seem worried one bit that the client will start following him on Twitter and will be somewhat put off to read, “oh joy, traveling again to the armpit of the U.S. via XYZ airport.” Another colleague complains about meetings and co-workers, right on Twitter, for the whole world to see. He masks names, but everyone who knows him knows exactly who he’s talking about. And yes, we’ve welcomed an employee or two ambling late into work one morning after posting 3am FB updates from the bar the night before.
I only see the personal/professional divide becoming more blurred. So, Caveat Twitterer: once you hit send, it’s out there for the entire world to read. And if someone–a friend, significant other, a prospective client–wants to dig up a little dirt, it’s just a search away.

Business

Witness the birth of a twitter spam bot!

We are witnessing an historic event, ladies and gentlemen. Captured on film for the very first time is the birth of a Twitter Spam Bot. Why, this is spectacular! Look at the rate at which she’s growing.
Shh, quiet, as we get a bit closer to her and watch her spawn followees and followers. Stupendous! In just 30 seconds she’s followed over 100 people and almost doubled her followers.
Rejoice with us in this momentous occasion:
http://www.screencast.com/t/ZQWkpIeTmvo

Business

Change on the internet happens faster than you think.

twitter-icon-300x300 (1).jpgAs an avid fan of new (well maintained) web based software, I’ve noticed a common attribute: it changes often, and it changes fast. Yesterday, Alex and I were testing a twitter application we created. He was certain that his followers were not seeing his replies to other followers and I was certain that they could. It turns out that I had enabled a setting in twitter to allow me to see them. We discovered that 98% of users did not have this enabled. This did not fare well for our application. It was back to the drawing board.
To our surprise, and not even a day after, we received news that twitter had removed that setting completely, and in favor of our application!
If you find yourself wishing that a software feature was different, try again soon, it may just be there next time.

Technology

A real use for Twitter?

Having been very skeptical of any usefulness I (or society) could derive from Twitter, I recently began finding real-world benefits.
Lost?
This morning a friend’s tweet scrolled across my screen:

So apparently there are 5 W hotels in NYC. The conference is not at the one I went to. In cab.

Ever the good samaritan, I scrolled down a few tweets earlier, found the conference this friend was attending (he habitually let’s everyone in his life know where he’s going), looked up the hotel address, and direct messaged him back. Sure my friend could have called someone, hopped on his mobile browser to figure this problem out himself, or used an antiquated alternative communications method like email. But something about the thought of my friend driving aimlessly from W to W in NYC compelled me into action.
New Business
I am responding to an RFP that a former employee broadcast to his network on Twitter. I don’t keep in touch with this colleague too often, and this was a great way to reconnect and talk about the opportunity.
Advice
The other day I was researching hosting options for a client. I could have spent several hours googling, reading online reviews, or researching options. Instead, I sent a tweet to my friends and received advice back from three trusted sources within moments. Soon after I chose my web host.
G-T-what?
A significant downside to my recent love affair with Twitter is the sharp decline in my GTD/Inbox Zero Zen. I fanatically adhere to my system that shuts off all digital distractions when I need to get work done: I empty my inbox, close extraneous applications, and hit the trusty CTRL-o keyboard shortcut (an applescript that puts Entourage into offline mode, closes iChat, and turns my desktop background to a soothing gray that says, “get your sh*t done now!”). Except recently I started using Tweetdeck, an application designed to push every last bit of digital Twam right under your nose. While trying to do work, and laden with guilt, I secretly leave Tweetdeck running. What if I miss something? (Admission: I responded to a tweet while drafting this post.)
So we’ll see where my recent Twitter obsession takes me…and for the time being, I continue to enjoy the strange irony of following the very active streams produced by @hotdogsladies and @gtdguy.
Update: CTRL-o now silences Tweetdeck.

Uncategorized