Posts tagged with: "twitter"

August 12, 2010

gem twitter open source

New Twitter Button Gem from Intridea

Mini

by Jonathan Nelson

This week Twitter launched the official “Tweet Button,” a button for website owners to count RT’s and let readers easily share content. Mashable was first to report on this shiny new button, but we’re the first to release a tweet-button gem for your next project.

Introducing tweet-button

A new Ruby on Rails gem/plugin to generate shiny new Twitter buttons.

image provided via Mashable.com

Usage

First, include the TweetButton module into your application helper. After that, using it is as simple as adding a single method call to your views:

<%= tweet_button %>

Bam. Done. You’ll have a sweet lookin’ Tweet button all up in your view.

Of course, you can customize it. The method takes a few options. Any default can be overridden universally.

:url - The URL to share; the default is the current URL.
:text - The text that will appear in the tweet; the default is "Check this out!"
:via - The attribution. Defaults to "tweetbutton", but you should change that.
:lang - Set the language for the tweet (no default).
:related - Related Twitter accounts (no default).
:count - The tweet count box position (values can be "none", "horizontal", or "vertical"; default is "vertical").

So, if you wanted to tweet about Hacker News, attribute it to Peter Cooper, and add some custom text, all from a tweet button with a horizontal counter, you’d do this:

<%= tweet_button(:via => "peterc", :url => "http://news.ycombinator.com", :text => "AWESOME.")

Simple enough, eh? Also, this method call will include the Twitter JavaScript into the page (it only does it once, even if you have multiple buttons on the page). To put this wherever you’d like (i.e., your header), then use the twitter_widgets_js_tag method. If you call this method, it will place the tag wherever you call it from (and only place it there; subsequent calls do nothing).

The gem also supports the custom Twitter share links. To generate one, use the custom_tweet_button (aliased to custom_tweet_link also) method:

<%= custom_tweet_button %>

This will generate a link that will link to the share page with the same default options as the standard Tweet Button generator. You can customize your custom link with text as the first argument, the same options as tweet_button (with the exception of the count parameter, which will be ignored) as the second, and HTML options as a third argument. For example:

<%= custom_tweet_button('Tweet it!', {:via => "myself"}, {:class => "tweet-sharey-thing"})

Setting universal defaults

You can set a new default for any option by setting default_tweet_button_options in your application helper. For example:

module ApplicationHelper
  include TweetButton

  TweetButton.default_tweet_button_options = {:via => "myself"}
end

Only the options you specify will be overridden; so if you only specify a new default +:via+ (which you should definitely do), then the other defaults will stay intact.

Coming Soon

Tweet Buttons can also live in an iframe, so we’ll probably be adding that very soon!

Plan on using this gem?

If you plan on using this gem, please let us know in the comments section! We’d love to check it out :-)

Roll the credits!

This awesome sauce gem was written by our very own hackstar Jeremy McAnally. You can follow his tweets here and his Github here.

Comment | 

Skeet: A Twitter Client for Chrome

Mini

by Michael Bleigh

For users of Google Chrome there are a number of useful extensions that enhance your browser in a myriad of ways. Skeet for Chrome is a new Chrome extension that provides a lightweight, simple, and usable Twitter client right inside your browser.

Skeet for Twitter

Skeet is a simple, usable Twitter client for Chrome based on our recent launch of the Present.ly Chrome Extension. It uses OAuth to connect to Twitter so your password is safe and it gives you dead-simple access to your home timeline, mentions, and messages.

We hope you enjoy using Skeet. It’s 100% open-source (available on GitHub) and we aim to make it the best Twitter client for Chrome. Install it today!

To keep up to date with the latest news about Skeet, follow us on Twitter at @skeetapp

Comment | 

TweetStream: Ruby Access to the Twitter Streaming API

Mini

by Michael Bleigh

Twitter’s Streaming API is one of the most exciting developments in the Twitter API in some time. It gives you the ability to create a long-standing connection to Twitter that receives “push” updates when new tweets matching certain criteria arrive, obviating the need to constantly poll for updates. TweetStream is a Ruby library to access the new API.

Installation

Installation of TweetStream is simple, it’s available as a gem on GitHub and Gemcutter.org. To install it from GitHub:

gem sources -a http://gems.github.com
gem install intridea-tweetstream

To install it from Gemcutter:

gem sources -a http://gemcutter.org
gem install tweetstream

Usage

TweetStream creates a long-standing HTTP connection to Twitter, so unlike other Twitter libraries you don’t simply run it once and deal with the results. Instead, you provide a block that will be yielded to with each new status that arrives. The most basic example is:

require 'rubygems'
require 'tweetstream'

TweetStream::Client.new('user','pass').sample do |status|
  puts "[#{status.user.screen_name}] #{status.text}"
end

This will provide you with a small sample snapshot of all of the updates being posted to Twitter at this moment and print them to the screen. There are also methods available to track single-word keywords as well as the updates of a specified list of user ids (integers, not screen names). You can do that like so:

# Track the terms 'keyword1' and 'keyword2'
TweetStream::Client.new('user','pass').track('keyword1', 'keyword2') do |status|
  puts "[#{status.user.screen_name}] #{status.text}"
end

# Track users with IDs 123 and 456
TweetStream::Client.new('user','pass').follow(123, 456) do |status|
  puts "[#{status.user.screen_name}] #{status.text}"
end

Handling Deletion/Limit Notices (Updated in 0.1.4)

Sometimes the Streaming API will send messages other than statuses.
Specifically, it does so when a status is deleted or rate limitations
have caused some tweets not to appear in the stream. To handle these, you can use the on_delete and on_limit methods. Example:

TweetStream::Client.new('user','pass').on_delete{ |status_id, user_id|
  Tweet.delete(status_id)
}.on_limit { |skip_count|
  # do something
}.track('intridea') do |status|
  # do something with the status like normal
end

Daemonization

One of the most useful features of TweetStream is its built-in daemonization functionality. This allows you to create scripts that run in the background of your machine rather than taking up an active process. To create a daemon script, you simply use TweetStream::Daemon instead of TweetStream::Client. Here’s an example:

require 'rubygems'
require 'tweetstream'

# The third argument is an optional process name.
TweetStream::Daemon.new('user','pass','tracker').track('keyword1','keyword2') do |status|
  # Do something like dump the status to ActiveRecord
  # or anything else you want.
end

If you were to place the above code in a file called tracker.rb you could then run ruby tracker.rb to see a list of daemonization commands such as start, stop, or run.

TweetStream is a simple wrapper on the Streaming API, but with built-in daemonization provides powerfully flexible means of accessing the Twitter Streaming API using familiar Ruby tools. More complete code documentation is available at rdoc.info.

Update: I overlooked the deletion and rate limit notices when I wrote the initial version of the gem. As of version 0.1.4 these are handled properly.

Comment | 

RailsConf 2009: Twitter on Rails

Mini

by Michael Bleigh

And I’m back from RailsConf 2009! I had a great time and enjoyed meeting and speaking with a number of Rubyists who had previously only been @-names on Twitter. I also had a great time giving my talk, Twitter on Rails. Thanks to everyone who had a chance to make the session and especially everyone who made it to the Twitter BoF on Wednesday night. I got some great feedback and interesting ideas for future work.

I recorded my entire session as a screencast (a last-minute idea that I’m very glad to have had; with 30+ minutes of livecode the slides are only so useful), and I have also posted the slides (also embedded below) and the completed livecode. I’m happy to answer any questions about Twitter app development, TwitterAuth, or anything else since I didn’t have a chance to take questions during the session.

Thanks to everyone at RailsConf for making it a great conference, and hopefully I’ll see many of you at another Ruby event soon!

Comment | 

April 17, 2009

twitter twitterauth rails sso

TwitterAuth Supports 'Sign in with Twitter'

Mini

by Michael Bleigh

Twitter recently implemented Sign in with Twitter, a convenience layer on top of their OAuth solution that provides a better user experience for those making use of OAuth as a sign-in strategy for their applications. I have just added support for this new feature to TwitterAuth. This is available immediately to new applications made with TwitterAuth as the default implementation.

If you already have a TwitterAuth application that you would like to utilize the new sign in method all you need to do is add one line to each of your twitter_auth.yml environments:

authorize_path: "/oauth/authenticate"

You don’t need to reset any user data or make any other changes, and when you restart your server people should be able to take advantage of the new experience. Enjoy!

Comment | 

Rails Template: Create a Twitter Application in Seconds

Mini

by Michael Bleigh

TwitterAuth has been out for a little while and has received some great feedback. Dr. Nic released a great template that lets you quickly build a TwitterAuth app for deployment to SliceHost and since I have some plans for a number of Twitter applications I wanted to try my own hand at writing one up.

If you have Rails 2.3, all you need to do is run this:

rails -m http://github.com/mbleigh/rails-templates/raw/master/twitterapp.rb yourappname

Changing yourappname to the directory in which you want to generate your application. The template will then prompt you for three things:

  • What is your application called? Just give it a title for the pretty template generators.
  • OAuth Consumer Key: The consumer key that you register at http://twitter.com/oauth_clients
  • OAuth Consumer Secret

It will also ask you if you want to install missing gems and go ahead and generate your databases and run migrations. Once you’ve responded through the prompts though, you’re good to go! Just switch to your application’s directory and script/server. Your http://localhost:3000 should look like this:

When you click on Login via Twitter you will be taken to the Twitter OAuth approval page.

Twitter will then send you back to your application, and guess what? You’re logged in!

You can now build on top of this without having to worry about the basic authentication stack. If you aren’t familiar with TwitterAuth, it works a lot like RESTful Authentication, so it should be easy to pick up.

Enjoy, and I hope you find it useful!

Comment | 

Presently.com: Twitter Meets LinkedIn

_placeholder_profile

by Intridea

On March 14 at SXSW, we launched Presently.com, designed to be the first professional microblogging environment. The idea behind Presently.com is that we wanted to bring the best of microblogging and career/professional social networking into one environment. Think of it as Twitter meets LinkedIn.

Twitter pioneered microblogging and its features, like 140-character status updates, followers/following lists, and direct messages have proven extremely popular with users, and the service is growing dramatically.

LinkedIn provides a more professional focus, but lacks social features, and therefore the true, dynamic Web 2.0 communications platform of a true social network.

Presently.com is based on Intridea's Presently microblogging platform, which is used daily by many large corporations and government organizations. Presently extends and maintains the basic Twitter metaphor with additional features, like group messaging; the ability to embed formatted documents like MS Word, PowerPoint, Excel, video and images; message capacity beyond 140 characters without compromising user experience; and extended user profiles to help people more easily identify others with common interests.

Why Professional Microblogging?

There is no doubt that Twitter is a revolutionary communications tool. But some users, even those who limit the number of people they follow on Twitter, are finding the noise ratio to be too high. Trivial and personal communications are inevitable in any public forum, and are in fact a big part of the appeal of Twitter. With Presently.com, we set out to flip the signal-to-noise ratio from 20-80 to 80-20, so serious users spend less time sifting through trivial information.

The Power of Group Updates

In addition to public updates, and private direct messages, features found in most microblogging environments, Presently.com users can create groups and send updates to just a few people, such as the employees of a company, or members of a workgroup or industry organization.

Anyone can create a group for a specific profession, hobby, project team, or any other community of interest. Groups on Presently.com can be public, private or secret. Public groups are useful for encouraging communications and collaboration within particular communities, such as the legal profession, graphic artists, web designers, and gamers. Private groups require an invitation from a current group member, and are useful for closed communications, within, for example, a committee, a sports team, a company, a project team or workgroup, or multiple parties negotiating an agreement or planning an event. Secret groups are private groups that are not listed in the publicly viewable group directory.

Once a group is created, users can send updates to the entire group, to individuals, or to one or more members of the group. Inviting new members is easy. Users can share documents, such as MS Word, YouTube video, Adobe PDF, PowerPoint, and Excel, and can also enter formatted text, including software code, directly into an update. Presently.com maintains threads so that users can see the origin, progression and completion of a conversation, project or discussion.

Who Can Join Presently.com?

Presently.com is currently free to all users. Presently.com allows users with any email address to join and form groups of common interest. Similar services, like Yammer are built around communities based only on common email domains, such that users from a single company can form a group, but can only include members with the same email domain. (For example, you could form a Yammer group with people who have email addresses ending in @yourcompany.com, but could not add people with email addresses ending in @anothercompany.com.)

Try It Out!

Presently.com had a great reception at SXSW. We were really pleased to be able to chat in person with new friends and old. I hope you’ll check it out. I’d love it if you did your next group chat on Presently.com to see how much more seamless and enjoyable the experience is. On Presently.com, you don’t need hashtags (though you can still use them) so participants, particularly those who are less technical, won’t have to use an additional site or service to monitor the discussion. (And you won’t lose track of people who forget the hashtag or format it incorrectly.)

Speaking of hashtags, Presently.com has a unique and powerful way of dealing with tags. Once a tag is used, it is automatically added to a tag list. Users can see which tags are the most popular, can click on a tag to see all of the updates related to that tag, and can click to be alerted any time someone uses a particular tag.

If you like the idea of professional microblogging, please create a few groups in Presently.com. There are already quite a few there (many of which we created to get the ball rolling), but the site really needs to belong to users to be effective.

You can sign up at: http://www.presently.com/

Comment | 

TwitterAuth: For Near-Instant Twitter Apps

Mini

by Michael Bleigh

TwitterAuth

The public beta of Twitter OAuth support has been released and I’m excited to introduce a new library that I’ve been working on called TwitterAuth. TwitterAuth is a Rails plugin that provides a full external authentication stack for Rails applications utilizing Twitter. Think of it as “Twitter Connect” for Rails, letting you create an application that may be logged into using only Twitter credentials.

TwitterAuth supports both OAuth and HTTP Basic (though OAuth is certainly the recommended strategy) giving you maximum flexibility for building the application. Without further ado, let’s get into the installation and usage of TwitterAuth!

Installation

TwitterAuth is available as a GemPlugin, so the preferred way to install it is simply to add it as a dependency in your config/environment.rb:

config.gem 'twitter-auth', :lib => 'twitter_auth'

You can also choose to install it as a traditional Rails plugin:

script/plugin install git://github.com/mbleigh/twitter-auth.git

Once you’ve installed it, you’re ready to create a new application using TwitterAuth!

The Low-Down

TwitterAuth uses Rails 2.3 Engine support to completely encapsulate the login process within itself. All you need to do is run a generator to make all of the support files necessary in your application. Run it with the --basic option if you want to use HTTP Basic, otherwise it will default to OAuth.

script/generate twitter_auth

This generates a User class, a migration, and twitter_auth.yml. You will need to edit twitter_auth.yml to match the settings of your application, such as providing the OAuth client token and secret.

Once you’ve migrated, that’s it! You are up and running with Twitter authentication; just point users at /login to start the process (login and registration are handled in a single step). For more detailed usage information including how to access the Twitter API through TwitterAuth, take a look at the README file.

The source for TwitterAuth is available on GitHub. I have also created a Lighthouse Project for the reporting of any bugs you may come across. There is also a basic homepage that will be listing who’s using TwitterAuth.

If you’re pretty familiar with Rails authentication systems (particularly Restful Authentication), this is probably all you need to know to get started. Go forth and make awesome apps! If not, I’ve written a quick run-through of the whole process to make it easy for anyone to get started with Twitter apps.

A Quick Run-Through

I think the best way to show what TwitterAuth is capable of is just to show how quickly you can build a simple Twitter application with it. To that end, let’s build a simple way to look at your friends’ timeline in an old-school text-based way (note, this is a totally useless application but works well for a quick demo). First we need to generate the app:

rails texty-twitter

Next we want to install TwitterAuth on the application, so we’ll add this to our config/environment.rb:

config.gem 'twitter-auth', :lib => 'twitter_auth'

Once we have hooked TwitterAuth into the application, we will want to run the generator to build the support files we need:

script/generate twitter_auth --oauth

Before I start on application logic I always lay out a basic HTML layout. Here it is for this application (in app/views/layouts/master.html.erb):

<html>
  <head>
    <style type='text/css'>
      ul.tweets {
        list-style: none;
        margin: 0;
        padding: 0;
      }

      ul.tweets li {
        font-family: monospace;
        font-size: 14px;
        padding: 4px 8px;
      }

      ul.tweets li a {
        color: #fa0;
        font-weight: bold;
        text-decoration: none;
      }
    </style>
  </head>
  <body>
    <%= yield %>
  </body>
</html>

The next step is to edit config/twitter_auth.yml to reflect our OAuth client key and secret (to register your application log in to Twitter and visit http://twitter.com/oauth_clients). Other than the client key and secret, the defaults are fine for our purposes. We’ve now set up a basic TwitterAuth application; that’s really all there is to it. So now let’s make it a working Twitter application. First let’s generate a controller:

script/generate controller timeline

This will just be a one-action controller that will render out the main timeline for the logged in user in an text-based manner. Here’s the contents of the controller:

class TimelineController < ApplicationController
  # this requires us to log in through Twitter before accessing any actions here
  before_filter :login_required

  def index  
    @tweets = current_user.twitter.get('/statuses/friends_timeline')
  end
end

In this action, current_user is the logged in user, and the twitter method provides a simple wrapper around the Twitter REST API that will automatically parse JSON API requests into Ruby hashes for you to use in your application. So current_user.twitter.get('/statuses/friends_timeline') will grab the latest statuses from your friends’ timeline (the main timeline you see when you’re logged in to Twitter) as an array of hashes. Now let’s display the tweets by creating app/views/timeline/index.html.erb:

<ul class='tweets'>
  <% for tweet in @tweets %>
    <li><%= link_to tweet['user']['screen_name'] + ':', 'http://twitter.com/' + tweet['user']['screen_name'], :target => '_blank' %> <%= tweet['text'] %></li>
  <% end %>
</ul>

This simply goes through each of the tweets we pulled down and adds a list item with a link to the author of the tweet and the content of the tweet. The structure of the hashes are identical to their description in the Return Elements section of the Twitter API wiki.

Finally, we need to add some routing to tie everything together. Make the config/routes.rb look like this:

ActionController::Routing::Routes.draw do |map|
  map.root :controller => 'stream', :action => 'index'
end

And we’re done! Fire up your server with script/server and go to http://localhost:3000/. If everything is working properly, it should redirect you to Twitter with a screen like this:

Once you click through and hit allow, it should then take you back and display your tweet stream in an old-school text interface, something like this:

It’s a simple and useless application, but in about 10-15 minutes you’ve created a fully-functioning Rails application that accesses the Twitter API and stores user information. Not bad!

See You At RailsConf!

RailsConf 2009

TwitterAuth is a big part of what I will be talking about at RailsConf in my session ‘Twitter on Rails’. if you’re interested in the plugin and attending RailsConf in May I hope you’ll stop by; I’ll be building an entire Twitter application from scratch during the 45 minute presentation. Also, feel free to follow me on Twitter if you’re so inclined.

Comment | 

Twitter Could Make Money By Charging Per Follower

_placeholder_profile

by Intridea

It’s probably not a new idea, but amidst its rising popularity, and increasing speculation that Twitter might charge “commercial” users, I wonder if charging business users on a per-follower basis might be one way the service could make money.

In the world of print, advertisers are charged on the basis of “impressions,” usually expressed in CPM (cost per thousand). It costs more to advertise in Wired than it does in Model Railroader. (No offense to model railroaders.)

“But wait,” you say. “Isn’t everything online free?” (Of course not, but thank you for asking.) Online advertisers pay Google AdWords based on the popularity of the term and on the number of clicks, measures which represent the number of people who have opted (agreed) to view the advertising content. (The term “social media,” for example, costs $2.28 per click. Save money by buying three word terms like “social media marketing” and “social media PR” for just $.05.)

In other words, marketers have tacitly agreed that they are willing to pay based on cost per impression. When someone follows a company like Southwest Airlines, Zappos, or Dell, that represents something equal to a click, and in fact, may be more valuable, as it indicates agreement to view multiple, ongoing advertising messages from the company.

This proposal raises a number of issues of course. What is commercial use? Clearly a Fortune 500 company promoting its goods and services is engaged in commercial activity. So, too is a crafts person with an Etsy account or a real estate agent, but they don’t stand to achieve the same commercial advantage as the larger corporation. This seems inequitable, although, to be fair, they would pay Google AdWords the same dollar amount for the same words and clicks.

Non-profits, schools, public safety, public health organizations and many other classes of users are non-commercial and should not be charged based on their follower count (and no one is saying Twitter plans to charge them.)

But the intensity with which Twitter users pursue any and every strategy to grow their follower count, including offering expensive prizes like laptops to attract new followers, demonstrates recognition of the value of a large number of followers.

The question is, how many will continue to recognize this value when they are asked to pay for it?

Comment | 

Do's and Don'ts of Social Networking

_placeholder_profile

by Intridea

I was quoted in today's Launch magazine in Do's and Don'ts of Using Social Internet Sites for Business. In the article, I offer the following advice on adding and interacting with contacts on various social networks:

Don't forget your manners.

While nearly all social networks have rules for participation (don't post obscenities or copyrighted material, for example), the etiquette for adding people to each network is defined by the mores of those on the network, Postman says. He offers a few guidelines:

  • Users should be particularly careful to avoid the appearance of flirtation and inappropriate comments and messages. Use the same rules as you would in the workplace.
  • Don't send blatantly commercial messages. Business networking is OK. Shameless promotion and cold calling is not.
  • If the network allows, give the person you are inviting some context for the invitation.
  • Do not take it badly if someone declines or ignores your invitation to connect. That's their option.

The full article can be found here.

Comment | 

Twitter paid model will be goodness for all

_placeholder_profile

by Intridea

Twitterland is chirping with this morning’s news that Twitter has announced its intention to start charging commercial users of the service. If anything good comes to Web 2.0 out of the economic downturn it’s the realization that the “free” (don’t get me started on free) business model is not sustainable and actually hurts users.

The report appeared in a piece by Fiona Ramsay in Twitter to Begin Charging Brands for Commercial Use* in Marketing Magazine (UK), in which Twitter co-founder Biz Stone said, “We can identify ways to make this experience even more valuable and charge for commercial accounts.” Stone did not elaborate on what those ways are, or what kind of charges might be assessed. He also gave his assurance that individuals would not be charged for Twitter.

Why It's Good News

The announcement is great news. First, Twitter could use the revenue to build more reliable IT infrastructure. Service interruptions, unpredictable availability of features and spotty performance are chronic Twitter problems. The monthly service charges probably wouldn’t fund a new data center, but the validation that Twitter can make money would increase its valuation and attract more investment. Ultimately, a commercial model will bring new reliability and new functionality to all users.

The other important outcome of this was touched on by Chris Anderson in The Economics of Giving it Away in the February 2 Wall Street Journal:

“Free is not enough. It also has to be matched with Paid … today's Web entrepreneurs have to not just invent products that people love, but also those that they will pay for. Not all of the people or even most of them -- free is still great marketing and bits are still too cheap to meter -- but enough to pay the bills. Free may be the best price, but it can't be the only one.”
By making the move to at least a partially commercial model, Twitter is sending a signal that the service has worth (and costs). Not everything in the online world wants to be free, nor can it be.

I know it sounds like I am arguing against my own best interests when I advocate the transition from free to paid for the services and content I use. But when I consider the alternative, a world in which everything is “paid for” with spam, contextual crap advertising, and phony informational content that is not so subtly marketing a product or service, I am glad to pay for a few choice things.

What Is a Twitter Account Worth to a Large Business?

Along with HTML and the web browser, e-mail, and instant messaging, I doubt there is anything that has changed the way people use the Internet, and the way they communicate, more than Twitter has. But just what is Twitter worth to a business? Twitter hasn’t made any such announcement, but let’s assume that “commercial users” are companies over a certain size, say, 100 people. (I would hate to see my good friends at House of Jerky or Etsy craft people charged to use Twitter, for example. That would certainly drive them off the site.) How much does a large corporation pay to keep up its web site home page, and what are the comparable benefits of using Twitter?

I have no idea what Twitter is thinking about this, but $20 a month or even $100 seems like nothing to GM (no bailout joke intended here), Dell or Comcast. And speaking of Dell, according to the Marketing piece “Bob Pearson, vice-president of communities and conversations at Dell, said: 'If it becomes complicated and costly, our instinct would be to move elsewhere.'” Where Bob, Plurk? Pownce? If you’re a consumer business and you find benefit to being on Twitter, there is no elsewhere.

This raises a number of questions. Is the move is a good thing for individual users? For businesses? What criteria should be used in identifying “commercial” Twitter use? Would the term apply to anyone selling a product or service? How much should Twitter charge for commercial use?

* Why do marketers refer to corporate entities as “brands”? They’re businesses, not brands, in this instance. Stop the industry doublespeak madness!

Comment | 

It's No Joke: Real Time Search is a BIG DEAL

Mini

by Michael Bleigh

I saw the article ’Google’s First Real Threat: Twitter’ pop up in my RSS readers today from a couple sources and didn’t click through and read; I had already learned the power of Twitter Search on multiple occasions (see my previous discussion here). But then something funny happened: I got an e-mail from O’Reilly saying that all three of my RailsConf proposals were accepted. Then I heard from a colleague here at Intridea that his talk was accepted.

This seemed, frankly, too good to be true. So I hit up Twitter Search for RailsConf, and sure enough, everyone seemed to be elated about getting their proposal(s) accepted. This confirmed my suspicion, and I contacted O’Reilly immediately. In fact, I contacted O’Reilly and they weren’t even aware of the problem yet. I may have been the one who alerted them to the issue in the first place. Confirmation came a few minutes later via the RailsConf Twitter account. While I’m a bit disheartened that I’m not necessarily speaking at RailsConf, it was an object lesson in just how powerful Twitter search has become.

Is Twitter a replacement for Google? No. But Twitter provides an instantaneous connection to what is happening to people right now, and in some (many) circumstances it can give you answers that Google never would, even after they re-index the web. This also to me serves as a lesson in how to truly compete with Google. Don’t try to “out-Google Google” like Cuil did. Instead find a way to provide a search that Google can’t touch, that can’t be created simply by crawling the web endlessly looking for new content.

Pay attention to where Twitter search goes in the coming months and years, because it’s no joke: real time search is a big deal.

Comment | 

Twitter Search Plus: Find Replies Inline with Twitter Search

Mini

by Michael Bleigh

Last night after watching the Lost premiere I had a question to which I was having a hard time finding the answer. The show had just ended and I wanted to know (tiny spoiler alert) who the woman Benjamin Linus was talking to at the end of the episode was. Google was no help (the episode had finished mere minutes before) so I turned to Twitter for some real-time searching.

By searching for lost old woman I was able to find plenty of other people asking the same question I had, but no one was giving the answer. I suspected that a reply to one of the tweets in question would have the answer so a few more minutes of manually searching for replies to the search result tweets finally yielded my answer. It also showed me how useful Twitter Search could be with a built-in way to find replies to the tweets. Rather than request the feature and wait until Twitter decides to implement it, I got my hands dirty with Greasemonkey and rolled my own.

Twitter Search Plus

This userscript (which requires the Greasemonkey Firefox Extension or equivalent userscript support in another browser) will automatically add a “Find Replies” link to the actions on Twitter search results and go out, find, and insert the replies to the user in question inline, just like the Show Conversation view. Here’s a screenshot of it in action:

This makes it really convenient to discover if a tweet you found while searching sparked any conversation. While I used it for entertainment, you could easily also find out who replied to a negative post about your brand, or if anyone else has already answered a question you were about to answer.

Installation and Limitations

You can install the script by following this link and see the source right here as a GitHub Gist. The script has also been posted to UserScripts.org.

Because there is no way to sort Twitter searches from oldest to newest, you will only see the 15 most recent replies to the user posted after the tweet in question. If the tweet is old or the user is extremely popular you might not get the replies you’re looking for. I’m open to suggestions as to how to make this work better.

Happy Twittering!

Comment | 

The Importance of External Downtime Resources

Mini

by Michael Bleigh

Back in the days when Twitter was going down early and often, the biggest complaint by users often wasn't that Twitter was down but rather that they didn't know what was happening or when it would be fixed. Thus the Twitter Status Blog was born, an externally hosted Tumblr that would be updated when they were having issues. GitHub did similarly after a recent bout of outages.

Why are such resources so important? Because ultimately it's not the fact that a service you want to use is unavailable that's a problem so much as the feeling of helplessness of something you want/need to use being unavailable with no hint as to why or when it will be back.

Case in point: today is Black Friday and Live.com is offering a 12 hour 40% cash back promotion with HP. I've been trying to get through for the past six hours with no success (the entire Live.com cashback section has been down for most of that time). This would be fine if I had any idea what the problem was, how I could ensure that I can get the cashback even with the site being down, or even a "sorry, you're out of luck." A call to Microsoft support simply directed me to an e-mail support form with no promise of resolution before the deal expires. Instead I'm a slave to my refresh button trying to get the deal during brief bouts of uptime.

So if you have a product that people depend on, make sure you have some ways to let people know what's happening without depending on your app itself. Present.ly, for instance, employs both a Twitter account that we monitor to quickly respond to any questions about service interruptions and a support site that is externally hosted and will continue to work even if Present.ly is down. It is only in the case of three independent services going down simultaneously that we will be out of luck.

Ultimately all that matters is that your customers are happy. You can keep them happy even in times of outage by making sure that they know that you're working on it, you know about it and you care about it.

Comment | 

Tracking Your Brand With Summize

Mini

by Michael Bleigh

If you have a product in the technology sphere, chances are people are going to be talking about it on Twitter. Given the outspoken nature of most Twitter users, it’s probably a good idea to keep track of what people are saying about your company, product, or yourself. Luckily, Summize, a Twitter search engine, gives you the all tools you need to easily track any term you want to remember on Twitter.

It’s as Easy as One, Two. No Three Required

Just go to Summize and make a query for the brand or product you want to track, joining all of the possible spellings of that product with "OR"s (case does not matter, so MyProduct and myproduct are the same).

Now in the search results, all you have to do is click on the “Feed for this query” button and subscribe to it in your favorite RSS reader. You will automatically be updated any time anyone in the Twitterverse talks about your terms!


On the go? Summizer to the rescue!

Jon Maddox of Mustache, Inc. has created a great tool for iPhone users called Summizer. It lets you track terms via Summize with a simple interface and remembers your terms for your next visit. So if you are more likely to poke around on your iPhone than your RSS feeds, that may be a better solution for you.

Knowing what people are saying on Twitter is a valuable way to hear opinions of some of the tech world’s earliest adopters, and also gives you a chance to respond to criticisms and frustrations. Take the couple of minutes to set up your product’s feed and you will not regret it!

Comment | 

Words we've written view all blog posts »

Featured Article

Intridea at Lonestar Ruby Conference

by Renae Bair on August 18, 2010

For the third straight year in a row, senior-level developers from the Intridea team will be at the Lonestar Ruby Conference, on Thursday, August 26th, teaching students about Ruby. Students attending the Ruby Intrigue class will work with our Director of Mobile Development, Brendan Lim, our Director of Development, Adam Bair, and our Director of Research and Development, Pradeep Elankumaran. Continue reading »

Recent Blog Posts

FlockFeeds Launches From Node Knockout

by Intridea on August 30, 2010

Using NPM with Heroku Node.js

by Michael Bleigh on August 24, 2010

Fixing Common Bundler Problems

by Jerry Cheung on August 23, 2010