April 2010 – Page 2 – Stay N Alive

More "Insights" on the Facebook Open Graph API Surface

With Facebook’s F8 Developer’s conference right around the corner, there is a flurry of activity happening as the Facebook team rushes to prepare for many launches at the Conference.  While I know more than I am saying, there is some evidence in plain view, open for all that we know for sure will be launched at the conference which you should prepare for.  Specifically, I’ve already shared information about Facebook’s XFBML tag to enable any website on the web to be “liked” and shared amongst a user’s friends.  While not currently functional, this information was made clear in Facebook’s Open Source Javascript Client libraries available here on their GitHub open source repository (and available to all).  There is much more those libraries reveal though (some which have been there for months), hinting at what could very well become a “Facebook-less” connection to the entire web, making it much less necessary to go back and forth between the Facebook.com website to interact with Facebook on a day-to-day basis.  Here is what we know:

There will be a tag that website administrators and developers can stick onto any website that enables a live stream of just that website’s activity on Facebook.  According to the check in on GitHub, the tag accepts the following parameters:

- site (string): mandatory, site url (ie : facebook.com)
- activities (int): number of activities to display.
- width
- height
- header (boolean): indicates if the header should be displayed or not.

Assuming I understand it right, if you use the sample from the GitHub check in, code like the following would display an activity stream for all posts to Facebook from the CNN.com website:

and 

It’s quite unclear what these are going to do exactly.  One has to expect it is something like the Meebo bar, which puts a bar at the bottom of any Connect (or Open Graph API) enabled website.  The two seem to work together, and, from the code, the fb:connectBar tag seems to prompt each visitor with text that says,

“Hi {firstName}. {siteName} is using to personalize your experience.”

There is an option to click to learn more.  My guess is that is just a way for website owners to spread more word about Facebook Connect to their visitors.  I’m assuming uses as part of the bar website owners place at the bottom (or elsewhere) of their website.  Right now it seems the way to implement is to just place “” or “” in your website somewhere after calling the Facebook Javascript libraries.

Insights for Websites

Perhaps the most intriguing part of the and tags is that they both make a call to a new API method, FB.impression.  The interesting call in the Open Source Client libraries source code is:

FB.provide('Insights',{impression:function(e,a){var b=FB.guid(),g="//ah8.facebook.com/impression.php/"+b+"/",c=new Image(1,1),f=[];if(!e.api_key&&FB._apikey)e.api_key=FB._apikey;for(var d in e)f.push(encodeURIComponent(d)+'='+encodeURIComponent(e[d]));g+='?'+f.join('&');if(a)c.onload=a;c.src=g;}});

In the summary for the check in on Github, they state, “Add new method – FB.impression – for pixel-based impression tracking.”  So, based on that, it would seem that whether released at F8 or not, there may be an Insights component to this OpenGraph API released.  Insights is the product used by Fan Page owners on Facebook to track activity on Facebook Pages.  Ideally, by enabling the above tags, it could enable website owners to gain added social graph data in addition to impressions, visits, and page views for each user that visits their website, including demographics, ages, nationalities, and even names of users.  That would be a very powerful statistics engine, unrivaled by the likes of Google Analytics and other solutions!

While none of the above work outside the Facebook, Inc. Firewall, it is exciting to know they could be coming.  My expectation is that on or around F8, Facebook should turn on the backend code that powers these, and then, the OpenGraph API will be available for all.  While this stuff is all very powerful, I can’t help but wonder if this is the tip of the iceberg.  None of this encompasses open standards of any kind, yet David Recordon and the Open Standards team at Facebook seem to still be preaching “open”.  I’m assuming there will be something very open and distributed, unreliant on Facebook alone, about all of this coming up this F8.  I can’t wait to see what happens.  Keep watching here, as there is even more out there in the open surrounding the Facebook API that I think is pretty cool.

If you’re coming to F8 on Wednesday, come by and say hi to me!

The Coolest Thing I Saw at Chirp? It Wasn’t the Twitter Platform

Amongst all the amazing things being launched at Twitter’s Chirp developer conference: @anywhere, User Streams, New developer Terms, Ad Platform Announcements, and more, nothing truly got me excited in a way that said, “this is the future”.  True, User Streams will save me thousands.  @anywhere is very convenient.  None of them are “change the world” breakthroughs though.  Let’s face it – Twitter, with the exception of real-time (until next week), is playing catch up with Facebook.  However, there was one thing that caught my eye as “game changing”.  That was today, when Loic Le Meur of Seesmic introduced to me his plugin platform for Seesmic desktop.  Here’s what it does:

Basically, Seesmic has enabled an entire Silverlight-based platform for developers to completely customize the entire experience of the Seesmic desktop.  From the streams, to being able to integrate your own photo service, to enabling link parsing and shortening in your own way, to even altering and integrating with the search box, developers have full control of the entire desktop environment for customizing not just your Twitter experience, but your Facebook, LinkedIn, Myspace, or even open environments like Status.net and any environment you choose.  Loic talked to me about a potential Youtube client targeted towards just viewing and finding Youtube videos through the browser.

The great thing is that this is all user-targeted.  Each install is packageable in developers’ or brands’ own skin, in whatever logos or colors you like.  Developers can even specify what plugins get installed as part of the package.  Once the user downloads the initial install, users can then download and modify additional plugins to customize it for their own experience.  The entire experience is win-win for both developers and users!

In one fell swoop, Seesmic has gone from being a desktop client for Twitter, to an entire platform that not only encompasses Twitter, but also Facebook, and potentially Myspace, LinkedIn, Youtube, Status.net, and more.  This is the “core” I was talking about last week, and Loic has embodied the spirit of it all.  I can’t wait to see what developers do with this, and probably in close tie with Kynetx, it’s the most amazing thing I’ve seen since the Facebook Platform launch.

Developers can get started at http://platform.seesmic.com.  The platform is based on Microsoft Silverlight.  Don’t like Silverlight? Write your own environment (Google Gadgets?) as a plugin for developers to write for!  This is amazing stuff – I’m so excited to see what happens, and when we’ll all be meeting for the first Seesmic Conference for developers.

Wanna see it in action?  Check out Scoble’s interview with Seesmic founder, Loic Le Meur here.

Twitter Adds New Terms of Service to Its Developer Platform

There has been a lot of news about Twitter’s new features, @anywhere, a coming social graph API, and their new developer website.  One thing that hasn’t been mentioned however is something that gives me great joy.  Every single developer that signs up for the platform is asked to agree to a very thorough, new, terms of service agreement.  This is a big step in the growth of the Twitter developer platform.

I’ve said over and over Twitter needs more transparency in its developer environment.  Helping the developers to know what they’re getting into, what the rules are, and how they are expected to behave not only gives Twitter some leverage to control their environment, but it also allows developers to build a business knowing what they’re getting into and if all the hard work they put into it is in vain.

I’m the Choir when it comes to preaching about features getting rendered useless due to Twitter changing their rules of the Twitter platform.  Only a few months ago, SocialToo was asked to remove our auto-unfollow service, and many other services, some which that was their only feature, were also asked to remove it.  The problem is I was never asked to sign an agreement, no agreements were presented to me, and very few rules were in place to designate what I could and couldn’t do.

It appears that at least for new developers, that is no longer the case.  Each and every application added to the Twitter platform via http://dev.twitter.com is required to agree to a very thorough agreement.  This means developers can now start knowing what they will be getting into.

Some elements developers are agreeing to:

  • Developers must adhere to rate limits
  • Developers can’t rent, sublicense or redistribute content from Twitter for development and use of other third party services without Twitter’s prior approval (this means Yahoo, for instance, had to have Twitter’s permission to redistribute the Twitter API into YQL for developers to use)
  • Developers can’t remove proprietary notices from Twitter content
  • Developers can’t use Twitter Marks (Trademark) in the names or logos of their products

The new agreement also asks developers to adhere to specific principles, primarily:

  • “Don’t surprise users”
  • “Don’t create or distribute spam”
  • “Respect User Privacy”
  • “Be a Good Partner to Twitter”

The terms are quite long, but have some important content in them for developers.  In my opinion this is actually a good thing for Twitter, and Twitter should really require even existing developers to agree and abide by these terms so everyone is familiar with them.  This is another great step in increased transparency for Twitter.

The full text of the new Developer agreement is below:

Developer Rules of the Road

Twitter maintains an open platform that supports the millions of people around the world who are sharing and discovering what’s happening now.  We want to empower our ecosystem partners to build valuable businesses around the information flowing through Twitter. At the same time, we aim to strike a balance between encouraging interesting development and protecting both Twitter’s and users’ rights.

So, we’ve come up with a set of Developer Rules of the Road (“Rules”) that apply to all developers and companies building products and services that interact with Twitter. If you’re a user of Twitter services, but not a developer, these rules will simply show what our partners are currently allowed to do with the content and information you share with Twitter.

The Rules will evolve along with our ecosystem as developers continue to innovate and find new, creative ways to use the Twitter API, so please check back periodically to see the most current version. If you are doing something prohibited by the Rules, talk to us about whether we should make a change or give you an exception.

I. API ACCESS

1. All use of the Twitter API and content, documentation, code, and related materials made available to you through the Twitter API (“Twitter Content”) in connection with the products or services you provide (your “Service”) is subject to and must comply with these Rules.

2.  You may use the Twitter API and Twitter Content to develop a Service to search, display, analyze, retrieve, view, and submit information to or on Twitter.  You may use the Twitter name or logos and other brand elements that Twitter makes available in order to identify the source of Twitter Content (“Twitter Marks”) subject to these Rules.

3.  Your use of the Twitter API and Twitter Content are subject to certain limitations on access, calls, and use of the Twitter API as set forth on dev.twitter.com or as otherwise provided to you by Twitter.  If Twitter reasonably believes that you have attempted to exceed or circumvent the rate limits, your ability to use the Twitter API and Twitter Content may be temporarily or permanently blocked.  Twitter may monitor your use of the Twitter API to improve the Twitter service and to ensure your compliance with these Rules.

4.  You will not attempt or encourage others to:

(a) sell, rent, lease, sublicense, redistribute, or syndicate the Twitter API or Twitter Content to any third party for such party to develop additional products or services without prior written approval from Twitter;

(b) remove or alter any proprietary notices or marks on the Twitter API or Twitter Content;

(c) use or access the Twitter API for purposes of monitoring the availability, performance, or functionality of any of Twitter’s products and services or for any other benchmarking or competitive purposes; or

(d) use Twitter Marks as part of the name of your company or Service, or in any product,  service, or logos created by you.  You may not use Twitter Marks in a manner that creates a sense of endorsement, sponsorship, or false association with Twitter.  All use of Twitter Marks, and all goodwill arising out of such use, will inure to Twitter’s benefit.

II. PRINCIPLES

We ask that you and your Service follow four principles:

Don’t surprise users

Don’t create or distribute spam

Respect user privacy

Be a good partner to Twitter

1. Don’t surprise users

(a) Maintain the integrity of Tweets. There is a lot of information packed into Tweets even though they are just 140 characters long (i.e., links to usernames, etc.).  The Display Guidelines (http://dev.twitter.com/pages/display_guidelines) provide guidance on how to best convey all the intended information in a Tweet. A few highlights:

o Don’t edit or revise user-generated content delivered through the API except as necessary due to technical limitations or requirements of any networks, devices, services, or media.

o Identify the user that authored or provided a Tweet unless you are either providing Tweets in an aggregate form, or need to make Tweets anonymous due to user privacy or security concerns.

(b) Get users’ permission before:

o sending Tweets or other messages on their behalf. A user authenticating through your application does not constitute consent to send a message.

o modifying their profile information or taking account actions (including following,  unfollowing, and blocking) on their behalf.

o adding hashtags or other content to a user’s Tweet. If your application allows users to send Tweets or other content to Twitter, show the user exactly what will be published.

(c) Your application should not:

o use business names and/or logos in a manner that can mislead, confuse, or deceive users. For more information on use of Twitter Marks, see our trademark usage guidelines (http://help.twitter.com/entries/77641)

o confuse or mislead users about the source or purpose of your application.

o use as its Application Website URL an unrelated URL, a site intended to entice or encourage users to violate our rules, a spam or malware site, or a shortened URL to mask the true destination.

o replicate, frame, or mirror the Twitter website or its design.

o impersonate or facilitate impersonation of others in a manner that can mislead, confuse, or deceive users.

(d) Respect the privacy and sharing settings of Twitter Content.  Promptly change your treatment of Twitter Content (for example, deletions, modifications, and sharing options) as changes are reported through the Twitter API.

2. Don’t create or distribute spam

(a) Spam can take many forms. Please abide by the spam rules (http://help.twitter.com/entries/18311#spam).

(b) If your application performs automatic actions (including Tweeting or other content updates), make sure you comply with the Automation Rules found at http://help.twitter.com/entries/76915.

(c) Do not mass-register applications. This includes:

o creating tokens/applications for the purpose of preventing others from using or selling those names, or other commercial use.

o using feeds of third-party content to update and maintain accounts under the names of those third parties.

o submitting multiple applications with the same function under different names for the purpose of name squatting.

(d) Do not facilitate or encourage the publishing of:

o links to malicious content

o pornographic or obscene images to user profile images and background images

3. Respect user privacy

(a) Clearly disclose what you are doing with information you collect from users.

(b) Clearly disclose when you are adding location information to a user’s Tweets.  Be clear about whether you are adding a place or specific coordinates. If your application allows users to Tweet with their location be sure that it complies with the best practices found at http://dev.twitter.com/pages/geo_guidelines

(c) Do not solicit another developer’s consumer keys or consumer secrets if they will be stored outside of that developer’s control. For example, online services that ask for these values in order to provide a “tweet-branding” service are not allowed.

(d) Do not facilitate or encourage the publishing of private or confidential information.

4. Be a good partner to Twitter

(a) If you display Tweets in an offline context, do so according to the guidelines found at http://help.twitter.com/entries/114233.

(b) Respect the features and functionality embedded with or included in Twitter Content or the Twitter API.  Do not attempt to interfere with, disrupt, or disable any Twitter API features.

(c) If your application causes or induces user accounts to violate the Twitter Rules (http://help.twitter.com/entries/18311) (for example, by retweeting spam updates, repeatedly posting duplicate links, etc.), it may be suspended or terminated. We’ve provided some guidance in our Abuse Prevention and Security help page at http://help.twitter.com/entries/79901.

(d) Respect the intellectual property rights of others.

(e) Do not use the Twitter Verified Account badge, Verified Account status, or any other enhanced user categorization on accounts other than those reported to you by Twitter through the API.

III. CONNECT WITH TWITTER GUIDELINES

The following guidelines apply if you use Connect with Twitter to integrate Twitter functionality into your Service.

1. Connect With Twitter

End users must be presented with the option to log into Twitter via OAuth protocol.  End users without a Twitter account should be given the opportunity to create a new Twitter account as provided by Twitter. You must display the Connect with Twitter option at least as prominently as the most prominent of any other third party social networking sign-up or sign-in marks and branding appearing on you Service.

2. General

(a) If you allow end users to create social updates from your own social service or a third party social networking, micro-blogging, or status update provider integrated into the your Service (“Update”), you must also display a prominent option to publish that content (or a link if the Update is not text or longer than 140 characters) to the Twitter service.

(b) If your service displays Updates commingled with Tweets, you must ensure that Tweets reference Twitter as the source.

3. Twitter Identity

Once an end user has authenticated via Connect with Twitter, you must clearly display the end user’s Twitter identity.  Twitter identity includes visible display of the end user’s avatar, Twitter user name, and a Twitter “t” mark.  Displays of the end user’s followers on the your Service must clearly show that the relationship is associated with the Twitter service.

IV. COMMERCIAL USE

1. Twitter reserves the right to serve advertising via its APIs.

2. Your advertisements cannot be false, misleading, fraudulent, or illegal.

3.  If you use or facilitate the use of affiliate links, you must comply with our Affiliate Rules (http://help.twitter.com/entries/76915#advertising)

4. You must get permission from the user that created the Tweet if you:

o want to user their Tweet on a commercial good or product (for example, using a Tweet on a t-shirt or a poster or making a book based on someone’s Tweets).

o create an advertisement that implies the sponsorship or endorsement on behalf of the user.

V.LEGAL TERMS

1.Termination.

You may terminate any license in these Rules at any time by ceasing your access to the Twitter API and use of any Twitter Content, and deleting all copies of the Twitter API and Twitter Content as described below.  Twitter may immediately suspend your access to the Twitter API or any Twitter Content (or if necessary, terminate this agreement with you) at any time, and without notice to you if you breach any term or condition in this agreement or otherwise engage in activities that Twitter reasonably determines are likely to cause liability to Twitter.  Twitter may also terminate any licenses hereunder for any reason with thirty (30) days notice (including by email to the address associated with your account) to you.  Twitter will not be liable for any costs, expenses, or damages as a result of its termination of this agreement.  Upon termination of this agreement, you will promptly cease accessing and using the Twitter API and Twitter Content and will delete all Twitter Content and any information derived therefrom and all copies and portions thereof, in all forms and types of media from your Service.  Sections 1(4) and V of these Rules will survive the termination of this agreement.

2.Confidentiality.

You may be given access to certain non-public information, software, and specifications relating to the Twitter API (“Confidential Information”), which is confidential and proprietary to Twitter.  You may use this Confidential Information only as necessary in exercising your rights granted in these Rules.  You may not disclose any of this Confidential Information to any third party without Twitter’s prior written consent.  You agree that you will protect this Confidential Information from unauthorized use, access, or disclosure in the same manner that you would use to protect your own confidential and proprietary information of a similar nature and in any event with no less than a reasonable degree of care.

3.Ownership; Feedback.

3.1 Twitter.  You expressly acknowledge that Twitter and its end users retain all worldwide right, title and interest in and to the Twitter Content, including all intellectual property rights therein.  You also acknowledge that as between you and Twitter, Twitter owns all right, title and interest in and to the Twitter API, Twitter Marks, and the Twitter service (and any derivative works or enhancements thereof), including but not limited to all intellectual property rights therein.  You agree not to do anything inconsistent with such ownership.  Any rights not expressly granted herein are withheld.  You agree that you will not challenge Twitter’s ownership of, the validity of any license to use, or otherwise copy or exploit the Twitter Marks during or after the termination of this agreement except as specifically authorized herein.  If you acquire any rights in the Twitter Marks or any confusingly similar marks, by operation of law or otherwise, you will, at no expense to Twitter, immediately assign such rights to Twitter.

3.2 You.  As between you and Twitter, you retain all worldwide right, title and interest in and to your Service, excluding the Twitter API, Twitter Marks, and the Twitter Service (and any derivative works or enhancements thereof), including but not limited to all intellectual property rights therein.  You may provide Twitter with comments concerning the Twitter Content or Twitter API or your evaluation and use thereof.  You agree that Twitter and its designees will be free to copy, modify, create derivative works, publicly display, disclose, distribute, license and sublicense, incorporate, and otherwise use the feedback, including derivative works thereto, for any and all commercial and non-commercial purposes with no obligation of any kind to you.

4.Updates.

Twitter may update or modify the Twitter API, Rules, and other terms and conditions, including the Display Guidelines, from time to time its sole discretion by posting the changes on this site or by otherwise notifying you (such notice may be via email).  You acknowledge that these updates and modifications may adversely affect how your Service accesses or communicates with the Twitter API.  You will have thirty (30) days from such notice to comply with any modifications.  If any change is unacceptable to you, your only recourse is to terminate this agreement by ceasing all use of the Twitter API and Twitter Content.  Your continued access or use of the Twitter API or any Twitter Content following the 30 day period will constitute binding acceptance of the change.

5.Representations and Warranties; Disclaimer.

5.1 Representations and Warranties.  You represent and warrant that:

(a) you have the necessary power and authority to enter into this agreement, and that the performance of your obligations will not constitute a breach or otherwise violate any other agreement or the rights of any third party arising therefrom;

(b) you will maintain throughout the term of this agreement all rights and licenses that are required with respect to your Service; and

(c) your Service and  its use, distribution, sale and license, including the use of any license hereunder, does and will continue to comply with all applicable foreign, federal, state, and local laws, rules, and regulations.

5.2 Disclaimer.   THE TWITTER CONTENT, TWITTER API, AND ANY OTHER TWITTER PRODUCTS AND SERVICES PROVIDED HEREUNDER ARE PROVIDED “AS IS” AND ON AN “AS-AVAILABLE” BASIS, WITHOUT WARRANTY OF ANY KIND.   TWITTER DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, INCLUDING WITHOUT LIMITATION WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, AND ANY WARRANTIES OR CONDITIONS ARISING OUT OF COURSE OF DEALING OR USAGE OF TRADE.  TWITTER DOES NOT WARRANT THAT THE TWITTER CONTENT AND TWITTER API AND ANY OTHER TWITTER PRODUCTS AND SERVICES PROVIDED HEREUNDER WILL MEET ALL OF YOUR REQUIREMENTS OR THAT USE OF SUCH TWITTER CONTENT AND TWITTER API BE ERROR-FREE UNINTERRUPTED, VIRUS-FREE, OR SECURE.

6. Limitation of Liability.

IN NO EVENT WITH TWITTER BE LIABLE TO YOU FOR ANY SPECIAL, INCIDENTAL, EXEMPLARY, PUNITIVE OR CONSEQUENTIAL DAMAGES (INCLUDING LOSS OF USE, DATA, BUSINESS OR PROFITS) ARISING OUT OF OR IN CONNECTION WITH THIS AGREEMENT OR YOUR USE OF THE TWITTER API, TWITTER CONTENT, OR OTHER TWITTER PRODUCTS AND SERVICES WHETHER SUCH LIABILITY ARISES FROM ANY CLAIM BASED UPON CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, AND WHETHER OR NOT YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE.  THE FOREGOING LIMITATIONS WILL SURVIVE AND APPLY EVEN IF ANY LIMITED REMEDY SPECIFIED IN THIS AGREEMENT IS FOUND TO HAVE FAILED ITS ESSENTIAL PURPOSE.  IN ANY CASE, TWITTER’S AGGREGATE LIABILITY UNDER THIS AGREEMENT WILL NOT EXCEED THE GREATER OF ONE HUNDRED DOLLARS ($100) OR THE AGGREGATE FEES YOU PAID FOR ACCESS TO THE TWITTER API IN THE LAST YEAR.

7. Indemnification.

You will indemnify, defend, and hold Twitter, its subsidiaries, affiliates, officers, and employees, harmless from any and all claims, damages, losses, liabilities, actions, judgments, costs, and expenses (including reasonable attorneys’ fees) brought by a third party arising out of or in connection with: (a) any act or omission by you, in connection with your use of the Twitter Content, the Twitter API, or the Twitter Marks; (b) your use of the Twitter Content, the Twitter API, or the Twitter Marks other than as expressly allowed by this agreement; (c) your breach or alleged breach of any of the terms, restrictions, obligations or representations under this agreement; or (d) your Service.  You will assume control of the defense and settlement of any claim subject to indemnification by you.  Twitter may, however, at any time elect to take over control of the defense and settlement of any such claim.  In any event, you will not settle any such claim without Twitter’s prior written consent.

8. Miscellaneous.

These Rules constitute the entire agreement among the parties with respect to the subject matter and supersedes and merges all prior proposals, understandings and contemporaneous communications.  Any modification to the Rules by you must be in a writing signed by both you and Twitter.  You may not assign any of the rights or obligations granted hereunder, voluntarily or by operation of law (including without limitation in connection with a merger, acquisition, or sale of assets) except with the express written consent of Twitter, and any attempted assignment in violation of this paragraph is void.  This agreement does not create or imply any partnership, agency or joint venture.  This agreement will be governed by and construed in accordance with the laws of the State of California, without regard to or application of conflicts of law rules or principles.  All claims arising out of or relating to this agreement will be brought exclusively in the federal or state courts of San Francisco County, California, USA, and you consent to personal jurisdiction in those courts.  No waiver by Twitter of any covenant or right under this agreement will be effective unless memorialized in a writing duly authorized by Twitter.  If any part of this agreement is determined to be invalid or unenforceable by a court of competent jurisdiction, that provision will be enforced to the maximum extent permissible and the remaining provisions of this agreement will remain in full force and effect.

Twitter Announces Live Social Graph Streams

In a Keynote at Chirp by Ryan Sarver, Project Manager over the Twitter API, he announced a new, full API around live content streaming that just saved me thousands.  The new API enables a real-time layer around not just Tweets and search that they’ve enabled in the past, but now direct messages, follows, favorites, and retweets.  As users follow, direct message, or favorite, developers will now be able to pull these actions for each user in real time.

One of the biggest headaches of my own on SocialToo has been the need to constantly poll Twitter.com for new follows and unfollows.  Each request requires an entire snapshot of the user’s friends and followers, and with Twitter’s current structure, can take minutes up to even a half hour or more to pull an entire snapshot of a user’s list of friends.  This takes bandwidth, takes time, and costs money on both the developer’s servers and on Twitter’s end.

The new API will enable one request per follow, one request per DM, and the great thing about it is all of it happens as the user clicks “follow”, as the user sends the DM, and the User benefits from a real-time, live update on new follows and DMs on sites like SocialToo.com.  So, assuming developers are given access soon, you will soon be able to have real-time updates on new followers and unfollowers, as well as new, filtered DMs on sites like SocialToo.com (if you haven’t signed up go sign up today!).

I’m excited for this new announcement, and it’s something I’ve been asking the Twitter API team for awhile now.  It’s good to see Twitter finally getting the capacity to work on these requests.  I hope to continue to see work on developers’ needs like this.

"Don’t Worry About It – It’s Going to be Awesome, and You’re Gonna Love It"

I’m currently sitting in the audience at Chirp, Twitter’s developer conference where they are anticipated to be revealing their plans for the future and overall strategies from here forward.  One of the big announcements so far was from Biz Stone, who boasted that Twitter has over 105 million registered users.  The entire premise of all talks thus far has been about these numbers.  No real big announcements thus far.  I’d like to focus on that number though:

Twitter boasts 105 million users, which is very accurate when you look at the unique ids for users.  In my site, SocialToo’s user cache, the maximum user id that we have recorded (out of 5 million cached users) is 132,851,613.  So, considering a large portion of Twitter’s users have been deleted, that number of 105 million would reflect most likely exactly the number Biz announced this morning.  It’s important to note this number is not total active users like their competitors such as Facebook are announcing.

In contrast, Facebook.com, one of their biggest competitors in the status space (and social advertising space), boasts a total of over 400 million active users, which they freely announce in open form on their press website.  In addition, over half of Facebook’s users log in at least once daily, which I’m pretty sure is far from the numbers Twitter is announcing.  A former employee of Facebook once told me Facebook actually has over a billion records of total registered users in their database.  If that is true, it would put Facebook as the single largest database of linked individuals in the world, next to the Mormon Church’s FamilySearch.org (which, a majority of that database is dead individuals).  Twitter pales in comparison.

The big theme I’m hearing from developers at this conference is that Twitter needs to be more transparent.  In reality, we don’t care about what Twitter’s numbers are.  We don’t even care if they compete with us.  We just want Twitter to be honest with us.  We want full vision of where they’re going, what their real numbers are, and what we can do with those numbers.  In the end, Twitter’s platform is useful because of what it contains, not how many people are using it.  Padding numbers doesn’t help that.

I certainly hope there wasn’t any waving of the Jedi hand when Biz Stone said, “Don’t Worry About it – It’s Going to be Awesome, and You’re Gonna Love It”.

Twitter’s @anywhere and Why it May Be Too Techie for Their Audience

In just one day, we’ll all be sitting in front of Ev Williams and Biz Stone as they announce Twitter’s new Facebook Connect competitor, @anywhere.  This is Twitter’s big statement in the developer ecosystem, stating that they are shifting from a script and backend-focused model of developer integration, to a very front-end, javascript-centered focus that centers around any brand or developer’s own site.  However, I’m worried that Twitter may actually be focusing too much on developers, considering their audience of large brands.

I wondered, just after @anywhere was announced at South-by-Soutwest in Austin, TX, how similar @anywhere would be to Facebook Connect.  Facebook Connect, a Javascript-focused set of libraries that sits on top of any website, enables just about any brand manager, marketer, or even developer from the new to the very advanced to simply copy and paste a piece of code and have it immediately create widgets that integrate tightly with the Facebook environment.  With Facebook Connect also comes a tag language, called FBML (I wrote the book for O’Reilly about it), which enables HTML-like tags to be placed anywhere on a website and also get similar functionality.  So basically, no Javascript knowledge is required.  Know how to write a little HTML?  You can integrate Facebook Connect into your website.  At least that’s the message Facebook wants to send to Marketers and Brand Managers (and it’s true how simple it is).

Twitter seems to have the same audience in mind for their @anywhere platform.  After just launching an Ad platform, you can bet more Enterprise features are about to be announced very likely at Twitter’s Chirp conference along with developer tie-ins to those features.  Twitter wants the brands just as bad as Facebook does.  Running a site that targets Brands, I know first hands that the Brands are where the money is.  Enterprise, and contractual relationships with big companies and brands is big money in this industry.  Twitter wants to be on each and every one of these major websites – that’s why they’re launching @anywhere.

I’m worried that Twitter is trying too much to please developers in this case though.  In a conversation I had with Ryan Sarver back in March, he asked what questions we had about @anywhere.  I asked if it would have an FBML-like tag syntax.  His answer surprised me:

“@Jesse think more @jquery than FBML 🙂 very developer-friendly”

I’m not going to say how, but I’ve been looking at some pieces of the @anywhere Javascript source recently and he’s right.  It’s a very jQuery-focused platform.  The problem with jQuery is no marketer or Brand manager in their right mind is going to want to touch it.  It’s too difficult to understand.  It’s going to take developers to convince the marketers, and I’m just not sure that’s the right approach.  Working with large organizations I know how it works – a marketer or product manager can’t get past the bureaucracy to bring a developer onto their project, so they try to do it themselves.  With Twitter’s jQuery approach, none of these guys will even try.

We’ll see what actually gets announced, but if I’m right, Twitter should really consider adding on a tag-based language on top of all of this.  Something that looks like HTML is going to be much simpler to understand than jQuery in the eyes of a marketer that just wants to try this stuff out.  I’m not sure this is the right approach, but we’ll see.

One good thing we can say about all this is that jQuery, as a framework, is going to have an amazing day in the sun on Wednesday.  Let’s hope they can get the developers to sell this to the big guys like they hope.

Twitter, Two Years Later and Nothing Has Changed

Last year, exactly 1 year yesterday in fact, I wrote an article reminding developers, while venting that we were in a constant state of being at Twitter’s mercy.  In the last year, Twitter has actually improved a lot in regards to stability – they attribute that to Unicorns.  I think it’s because they’ve hired a lot of good people over the last year.  Yet, the core problems of 2 years ago still exist, and you know what – I’m fine with it now.

http://qik.com/swfs/qikPlayer5.swf

Check out the interview (again) that Robert Scoble and I (mostly Robert) did with Ev Williams and Biz Stone almost exactly 2 years ago.  This was in response to Alex Payne writing a blog post calling Robert a “whale” and blaming Twitter’s scaling difficulties on that.  At the time I was also very concerned about the developer ecosystem, and that has not changed since.  Robert Scoble since has been replaced by pop-culture icons on Twitter’s suggested user list, and, as one of Twitter’s top promoters and even the top user for quite awhile, he was thrown under the rug by Twitter as well.

Here’s the thing though – as I said in my article yesterday, I have no problem with this.  Twitter is a business.  They have a core technology they need to build, and they’re going to continue building that to compete.  They even had auto follow for awhile – I competed, we provided a better service (and probably even had more users than Twitter using it), and Twitter eventually didn’t see the need to continue supporting it.  They’ve since replaced several other features my business offers.  We’ve continued to compete there as well.  They even asked me to remove specific features because it was not in their core interest.

At first I was dumbfounded at how I was being treated by Twitter.  I even left the service for a short while due to my disappointment.  Then I think I went into denial.  I’d continue making the same mistakes over and over, continuing to release features only to see Twitter replace them.  For some reason after each time I’d still get mad, complain, and the cycle would continue.  It wasn’t until this year that I’ve finally come to terms with all of this.  Yes, I have a service that relies on Twitter.  Yes, I have many features that risk getting replaced by Twitter.  No, I probably will never be acquired by Twitter, nor will any of my competitors.

I’m okay with that though.  I’ve provided some great services to many people and people actually pay for this stuff and like it.  We still provide the best stats of new and lost followers on Twitter.  We have some of the best filters on the planet for Twitter.  We have one of the best auto follow tools on the planet and have upheld our responsibility to keep Twitter clean in the process of doing that.  We’ll continue to improve these features and add new features in the future.  I started it – I can’t just quit until it’s all over and either someone acquires me, or Twitter completely puts me out of business.  I’ve come to complete terms with that, while at the same time I realize I need to come up with a core and move towards that as a focus.

I’ve been saying this over and over again on this blog over the past 2 years.  Twitter isn’t going to change their ways.  They’ll continue to compete.  They’ll continue to add features.  They’ll even buy one of your (or my) competitors.  That’s life.  And I’m okay with that.  I’ve been through this too many times to get mad any more.

One year from now I’m sure I’ll say the exact same thing I said this year, last, and the year before.  Twitter won’t change.  They’re a business, and they have to compete to stay alive.  It’s time we all start innovating, and let Twitter be Twitter.  The complaining, quite honestly, is getting old (I think I invented it).

It’s funny how Twitter gives us this reminder almost the exact same time every year, yet we all seem to think it’s news when it comes around.

What is Your Core?

In a typical Lego set, there is a core set of building blocks that make up the core of the object you are building.  My son just got a new Star Wars Tie fighter Lego set.  It relies on a few common objects, such as little flat Legos you might see in other sets, but overall, what you would see in this set would be much different than the core of Legos you would see in, say, a set to build a House, or even my 2 year old’s set of Duplos which builds just very simple objects geared towards people his age.  For a house set you will see more block-like structures.  For a Robot you may see more objects with holes in them, to accommodate for axles and gears.  For a plane you may see more flat structures for things like wings and a skinnier body.  In the end, you’re trying to build one core, unique object that is different than any of the other objects around it.

Too often I think entrepreneurs struggle to find out what their core is.  Social Networks should be ubiquitous.  Real time should be ubiquitous.  Open Standards should be ubiquitous. Search should be ubiquitous.  There are already companies out there that have these things as their core.  They’re the experts.  I think entrepreneurs and developers often get stuck (myself included) in this rut of fixing things the experts are already good at, rather than finding something new and innovative they can take ownership at.

There’s already a T-Shirt out there that says “Twitter destroyed my market segment, and all I got was this lousy T-shirt”.  Well, the reason that occurs is because developers are building core blocks that are already part of the Twitter core.  They are building something, the cockpit, the engine, the wheels, that were already destined to be replaced in the original scheme of things.  We developers like to see, and fix, the big picture – I know because I’m in the same boat (or ship?).  However, I think we need to be thinking bigger.  We need to be thinking about what our core is, not what’s missing from others’ cores.

When we talk about “filling holes”, I think the best position to be in is where others are filling the holes that you create.  You own the core that includes the missing parts.  The propellers of Twitter should be added to your core to make your airplane fly.  The Jet Engines of Facebook should be added to your core project to push it forward.  The wheels of Google should be added to your core project to get it off the ground.  But in the end, you still own the airplane.  You have control of the core.  All the other “cores” get to contribute back to your core to make it better.  Heck, you can even take pieces of your core and add it into the other existing cores to complement their space too – the power is you still own your space that way.

As you build new creations, think to yourself, am I contributing to others’ cores, or am I building the core that other cores can add their parts to and make better?  No one should be building another “social network” project.  No one should be building another “search engine” project.  The focus should be on the innovative creations we create, and how other “social networks” and “search engines” can make us better.  It should not be the other way around.

This is the “core” success story of the Building Block Web.  How are you letting Twitter or Facebook or Google make your core project better?

Getting Me to Share Your Posts

One of the things I like to do on my Twitter account is to share interesting articles around the web that I think would be interesting to my readers.  Such articles can be techy, geeky, mainstream, pop-culture, or anything I deem interesting.  Based on your retweets, I think you like it.  I had someone ask me the other day why I wasn’t sharing more of their posts.  It’s actually quite easy – I’d like to share how, and I’m pretty sure you can use this same technique on any other blogger that uses Google Reader.

I have a policy on Google Buzz – it’s the same policy I have on Twitter.  I follow everyone on Buzz who follows me.  The thing is that I think it’s even more powerful on Buzz because, just like Twitter, it gives me an opportunity to discover interesting people I may not have known about before.  For the spam, I have SocialToo for that.  However, with Buzz, for everyone I follow, I also see their Google Reader shares.  That means for every one of you that follows me on Buzz, if your content is interesting, I am very likely to discover your content that you share (that can even be your own blog posts!), and if I like it, that content goes straight to Twitter and Buzz.

So the secret is just to follow me on Buzz!  Yes, I hide many people in my Google Reader, so it’s important you share unique, and interesting posts.  Also, if I know you I’m also more likely to not hide your shares, so get involved in the conversation.  Comment on my shares, retweet my posts, reply to me, comment on my blog.  I read every single comment and try to respond where it makes sense.  As we have more discussions I get to know you better and I’m less likely to hide your content.

I hope that helps.  I don’t think the individual who asked me to share his content more is following me in Buzz.  I’m pretty sure I wouldn’t hide his content because I know him and I like his content.  The secret is to follow on Buzz, join the conversation, and I’ll very likely share your interesting shares on Twitter.  I think the same goes with anyone that uses Google Reader.  There’s a great opportunity here – I hope you use it.

You can follow me on Buzz over on my Google Profile.  Can’t wait to start seeing your shares!

Photo courtesy Creative Commons on Flickr.