platform – Stay N Alive

First the PC. Second the Web. Third the Cloud. And Now…The Chain – Why Bitcoin is Not Just a Currency – It’s a Platform!

What if you could transfer stock to another individual, without a stock broker or stock certificate? What if you could sell your home, without a real estate broker or deed? What if you could sell your car without need for a title or vehicle registration? That’s the concept of the technology behind Bitcoin, and why you need to be paying attention to why this is so much more than just a currency or investment, and why your brand could be disrupted soon if it does not adapt.

The technology behind Bitcoin, the currency that is making little-known software developers millionaires as the price has gone from less than $1 per Bitcoin to $800 per Bitcoin in just a couple years, has the potential to revolutionize the way the world authenticates human-to-human transactions within a matter of years. The technology, or protocol, is called “The Blockchain”, and it has the potential to be so much more than just a currency-driven protocol. It’s an entirely new platform. “The Chain”, as I’m now calling this platform, is incredibly powerful, and I truly think it is a paradigm shift on par with the shift from the mainframe to the PC, the PC to the Web, and more recently the Web to The Cloud.

“Colored Coins”

I had the chance to sit down with some of these Bitcoin millionaires and soon-to-be-millionaires (I’m not exaggerating!) at a local event in Provo, Utah (organized by my friends from the upcoming documentary, “Life on Bitcoin“) called a “Bitmob”. The idea is this (in a nutshell): a group of Bitcoiners approach a local business and tell them they will bring x number of people willing to pay with Bitcoin if the business will be willing to accept it. It’s a great way to get businesses to start accepting Bitcoin as a currency, brings a lot of new customers to those businesses, and overall improves the economy of Bitcoin as a whole.

It was at this meeting that my mind was enlightened that Bitcoin is not just a revolutionary, worldwide currency without central control, but it is so much more than that. A group of developers in the Bitcoin community have proposed an addition to the Bitcoin protocol (introduced by a pseudonomous developer named “Satoshi Nakamoto” in 2008, but with precedence in other standards and technologies prior to that), which allows each Bitcoin transfer to contain a payload of text. They call these “Colored Coins“. This payload of text could be synonymous with writing on a $1 bill the words, “I’ll give anyone who gives me this bill a car”. Then, that person would be held to giving each person that gave them that $1 bill a car. However, attaching this to an encrypted digital transaction that can be guaranteed as authentic, traced between the sender and recipient (by code, not necessarily ID of a human – one fatal flaw in Bitcoin IMO), now you have an even more certain guarantee of that agreement that the entire world can audit and ensure took place. If it is dishonored, the entire world knows (instead of just the people that gave the individual the $1 bill). See this video to get a better idea of how their proposal works – it does a much better job explaining:

[youtube https://www.youtube.com/watch?v=fmFjmvwPGKU]
Bitcoin is Just One Implementation of The Platform (The Chain)

The power of why this is possible lies in a worldwide “ledger” called “The Blockchain“, basically a ledger similar to an accounting ledger, that each bitcoin client has access to, can’t delete, and proves the transaction takes place. Because the entire world has access to this ledger, there is no mistake in the transaction, and anyone can prove that the owners of the 2 sides of the transaction are in agreement with each other.

The power of Bitcoin is in a vast, worldwide network of connected computers that can all authenticate what agreements were made from which parties. Each of these computers performs computer algorithms to ensure the strength of encryption on each transaction, further ensuring its authenticity. I’m told that if you added all this computing power worldwide, it would equal the power of more than 500 of the world’s top super computers. The number of trades on the network, today alone, outnumbered the number of transactions on Paypal, and are soon to outnumber the number of transactions by Discover Card.

The sheer number of participants in this worldwide peer-to-peer network, the value attached to each transaction (in Bitcoin – the Bitcoin-to-Dollar ration today is approximately 1/$700 and growing), and most importantly the openness of the network, the Blockchain, and the protocol behind it make this new network designed for commerce as scalable as the Internet, and perhaps even more valuable. As you can see, it can also be used for more than just monetary trade. One individual is using it for authentic transfer of files between individuals, for instance.

The thing is it’s the idea of Bitcoin and the Blockchain that makes all this so powerful. There will be numerous additions to the protocol over time, and I’m sure other versions, making this concept more and more powerful. What’s powerful isn’t that Bitcoin exists – it’s that this is the direction it is taking us as a society, and the technology exists today. For that reason this is a very large platform that will have many components to it, just like the web has HTTP and TCP/IP and MAC addresses, and even OAuth, and OpenID that all work together in one. We’ll see the same with cryptocurrency and online commerce in ways that transform commerce and corporate structure as we know today. There are already other cryptocurrencies like Litecoin and Namecoin. Devs and businesses will create their own currency exchanges (I’ll explain that in another post).

Bitcoin is Much More Than Just a Currency

For that reason I see Bitcoin as much more than just a currency. Bitcoin is an open platform designed for commerce. It is the architecture and Infrastructure for all transactions that Jeremiah Owyang mentions in the Collaborative Economy philosophy. Whether in “colored coins”, or another standard, Bitcoin, and cryptocurrency in general, are the platforms that will power every guaranteed human-to-human transaction on the planet. It’s already globally recognized. Each transaction has an intrinsic value (Bitcoin itself is limited in number, giving it rarity, similar to Gold). Each transaction can be proved, with 100% accuracy. And it’s near impossible to forge, unlike traditional currency. And what’s even better is this is all a platform which will evolve and grow, just like the internet.

Bitcoin is what happens when you apply digital and cryptographic principles to accounting. This is as big a change in technology to come to the world as the PC, the Web, and most recently the Cloud. We are entering a new era of human-to-human commerce where the brand, and the government is no longer “the middle man” in these agreements. Is your business ready to handle it? Are we pushing our governments to adapt? I’ll do some articles shortly on ways brands can adapt, and what I’m telling my clients.

Want to know more about Bitcoin? This video will get you started!:

[youtube https://www.youtube.com/watch?v=Um63OQz3bjo]
Like this article? It’s freely shareable and can be copied and distributed (or linked to) via Creative Commons Attribution license. Or, just send a tip via Bitcoin!:

Address: 19AdCAbjshRuEFhx4py1Ny7i48s1d6RFi

Facebook Kills the Storage Limit

Today at Facebook’s F8 developer’s conference Mark Zuckerberg announced that Facebook would be adapting their policy surrounding the length of time developers can store data taken from the Facebook API on their own servers.  Very soon, the infamous, “store for only 24 hours” limit will no longer be, as developers will be able to store data indefinitely.

Previously, developers were only allowed to store data taken from the Facebook API for 24 hours at a time.  The only data that could be stored longer than this were specific user, photo, event, and other similar IDs, from which developers were required to make API calls back to Facebook to receive data about those objects.  This was a common complaint amongst developers (including myself), causing bandwidth costs and much more effort on the part of a developer (and lack ability to be innovative with that data).

It’s great to hear Facebook opening up on this front.  Stay tuned and I’ll be updating this blog as more news unfolds.

Facebook Posts New Dashboard API Methods, Prepares New Interface

facebook platformEarly today Facebook posted a series of new API methods to their Developer Wiki enabling developers to post updates to what was previously called the “Application Navigation”, but what would now appear to be called “the Dashboard”.  The Dashboard API aims to provide an easier interface for users to find updates to their favorite apps without cluttering the stream.  At the same time, the Dashboard API tries to encourage more users to bookmark applications and provide applications on Facebook Platform another means of sharing information with their users.

The Dashboard, which will appear on the left-hand navigation either in place of or near the Friend Lists, should launch to users in the next week or two according to a vision statement posted by Mark Zuckerberg recently and the current developer roadmap.  When launched, users will be able to bookmark their favorite applications on Facebook or on their favorite Facebook Connect-enabled site and those applications will appear in the left-navigation in the new Dashboard.  Applications can then send updates, incrementing a counter when new updates are posted, enabling users to know when new updates are available from their favorite applications.  When the user clicks on each application they are taken to a page with the updates.

In addition to traditional applications, according to the new developer documentation there will be a games category in the dashboard.  If applications have categorized themselves as a game in the Facebook App directory, their app will appear underneath the Games category.  This category appears to try and make it easier for users to manage all their games under one easy navigation so they can focus on the more productive apps beyond just gaming.  Other applications appear under an Applications category, and there is also a “Friends’ Games” and “Friends’ Applications” category enabling users to view applications and games their friends are using, I assume.

The new Dashboard API enables developers to do all the things mentioned above, and comes alongside the 6 month developer roadmap announced earlier by Facebook.  The roadmap comes with mixed criticism from developers, with some excited for new integration opportunities and better organization, while other developers mad at the removal of some features in the planned changes.  One developer I talked to today was frustrated with the frequent changes Facebook makes on the Facebook.com site itself, opting to begin moving his development efforts more over to Facebook Connect where he has more control.  I believe that is exactly where Facebook wants him.

The new Dashboard API should provide new opportunities for developers to update their users and easily notify users of changes within their apps. The API, according to the documentation, is available for development and testing now.  According to the documentation there is no sandbox for the new API, but developers can start testing these methods on their own servers.  It is unclear how developers will be able to begin testing the UI for the new methods.

Image-GamesDashboard

"X" Marks the Spot for New Paypal Development Platform

“X”. It’s a common variable used in many a code base.  It’s one of the most common variables of any code base.  It’s what counts.  That’s what Paypal wants to become in the hands of developers, as they stated in their kickoff Keynotes this morning at the Paypal X Innovate developers conference in San Francisco this morning.  Paypal is bringing back the name of their original developer platformed, called “X”, to introduce new, easier, and better ways of facilitating transactions for developers.

Paypal has big visions for their new payments platform.  As Ebay CEO Jon Donahue stated, “I believe Paypal will be bigger than Ebay because Paypal can power all e-commerce”.  It would appear any rumors to Ebay selling off Paypal may be bunk in the eyes of their CEO.  Together, Paypal and its customers are working to release the next wave in payments integration. Today Paypal announced a new adaptive payments platform in which developers are now going to have the capability to integrate into their own applications.  Among the examples shared:

Integration of Paypal into your online banking experience — an example was shared of a bank enabling you to pay your friends by simply visiting your bank’s website, entering the e-mail address of your friend, and sending the transaction to that friend through Paypal.  (I wish my banks allowed this!)

Facebook Integration – Payvment did a presentation of their software that enables developers and website owners to integrate an entire shopping cart experience via just a simple snippet of Javascript code.  They also announced that they are open sourcing this software for Facebook developers to also integrate this same shopping cart experience into their own Facebook apps.  (This is very valuable!)  I’ll try to do an interview with them tomorrow.

Sun and Java Integration – Sun Microsystems did a demo of their own sharing how they were using Paypal’s X Platform in their Java store

Mobile – With the launch, Paypal is launching new mobile SDKs.  They did a demo on the spot integrating a simple payment code using Paypal’s iPhone SDK in XCode.  A couple drags and drops and copies and pastes and they had a fully-integrated payment experience on the phone.

In addition to the launch of their new platform, Paypal announced a series of new payment standards.  The payments will be adaptive, depending on the amount being charged, making a very appealing option for micro-payments to even very large payments depending on the size of the transaction.  In addition, developers will be able to decide who pays the commission, something different from their current developer platform, meaning the business itself does not have to pay the commission.  The commission can be paid by either the seller or the buyer, ensuring new creative ways of facilitating payment transactions.

Paypal’s new X platform of course compares with Amazon’s Flexible Payment System.  Tomorrow I’ll do a post comparing the two as I’m able to gather more data.  With the new platform it would seem that Paypal is putting the pressure on Amazon and stepping up the game of finally getting rid of the cash in your wallet in favor of much easier payment services in the cloud.

I look forward to sharing more from the conference.  I’m very intrigued by some of the Facebook solutions, as well as Twitter payment systems and I’ll share those as I get them.  I’ll also be watching the various ways other companies are utilizing the platform.

I truly believe we’re on the cusp of an entirely new wave of payments.  The competition is on in full strength at Paypal X Innovate and I can’t wait to see what comes of it.

Here are a few Cinch recordings I did of the keynotes in case you missed them:

Paypal X Innovate 2009“X”. It’s a common variable used in many a code base.  It’s one of the most common variables of any code base.  It’s what counts.  That’s what Paypal wants to become in the hands of developers, as they stated in their kickoff Keynotes yesterday morning at the Paypal X Innovate developers conference in San Francisco.  Paypal is bringing back the name of their original developer platform, called “X”, to introduce new, easier, and better ways of facilitating transactions for developers.

Paypal has big visions for their new payments platform.  As Ebay CEO Jon Donahue stated, “I believe Paypal will be bigger than Ebay because Paypal can power all e-commerce”.  It would appear any rumors to Ebay selling off Paypal may be bunk in the eyes of their CEO.  Together, Paypal and its customers are working to release the next wave in payments integration. Yesterday Paypal announced a new adaptive payments platform at x.com in which developers are now going to have the capability to integrate into their own applications.  Among the examples shared:

Integration of Paypal into your online banking experience — an example was shared of a bank enabling you to pay your friends by simply visiting your bank’s website, entering the e-mail address of your friend, and sending the transaction to that friend through Paypal.  (I wish my banks allowed this!)

Facebook IntegrationPayvment did a presentation of their software that enables developers and website owners to integrate an entire shopping cart experience via just a simple snippet of Javascript code.  They also announced that they are open sourcing this software for Facebook developers to also integrate this same shopping cart experience into their own Facebook apps.  (This is very valuable!)  I’ll try to do an interview with them tomorrow.

Sun and Java Integration – Sun Microsystems did a demo of their own sharing how they were using Paypal’s X Platform in their Java store

Mobile – With the launch, Paypal is launching new mobile SDKs.  They did a demo on the spot integrating a simple payment code using Paypal’s iPhone SDK in XCode.  A couple drags and drops and copies and pastes and they had a fully-integrated payment experience on the phone.

In addition to the launch of their new platform, Paypal announced a series of new payment standards.  The payments will be adaptive, depending on the amount being charged, making a very appealing option for micro-payments to even very large payments depending on the size of the transaction.  In addition, developers will be able to decide who pays the commission, something different from their current developer platform, meaning the business itself does not have to pay the commission.  The commission can be paid by either the seller or the buyer, ensuring new and creative ways of facilitating payment transactions.

Paypal’s new X platform of course compares with Amazon’s Flexible Payment System.  Later today I’ll do a post comparing the two as I’m able to gather more data.  With the new platform it would seem that Paypal is putting the pressure on Amazon and stepping up the game of finally getting rid of the cash in your wallet in favor of much easier payment services in the cloud.

I look forward to sharing more from the conference.  I’m very intrigued by some of the Facebook solutions, as well as Twitter payment systems and I’ll share those as I get them.  I’ll also be watching the various ways other companies are utilizing the platform.

I truly believe we’re on the cusp of an entirely new wave of payments.  The competition is on in full strength at Paypal X Innovate and I can’t wait to see what comes of it.

Here are a few Cinch recordings I did of the keynotes in case you missed them:

http://www.cinchcast.com/user/default.aspx?albumUrl=Paypal-X-Innovate

Facebook Launches Application Creation API

One of my biggest frustrations as a FacebookFacebook API developer of WordPress plugins has been the need to require my users to go out and create their own application in Facebook for their blog.  To do so they had to install a “developer app” on Facebook and know what forms to fill out after they did.  It was a lot of work and very difficult to explain to people!  Today Facebook launched a way to automate that process, their Create Application API.

According to the developers wiki, starting today developers of WordPress plugins and other 4th-party Facebook applications will be able to automate the process of creating applications on behalf of their users as “child applications”.  This means for the FBFoundations plugin I launched over the weekend I’ll be able to automatically register the user’s blog as an app in Facebook when they activate the plugin.  The user will only need to activate the plugin in WordPress, we’ll grab the API key and everything else, and there will be nothing more for that user to do.

Installing Facebook Connect WordPress plugins just got a whole lot more easy.  Can’t wait to play with this and see what others do with it.  Stay tuned for an FBFoundations plugin update that includes this.  Details are still vague on this, so I’ll update if anything changes – thus far we just have a few wiki articles talking about it.

UPDATE: See my version 2 of this post for an even more interesting perspective on this API.

Twitter Starts the Chatter on API Guidelines

TwitterOn the Twitter development mailing list today Twitter began discussion on rules developers should abide by when writing applications for the Twitter API.  Such terms come on the heels of a much broader Terms of Service launched for the general Twitter user today. I’ve long discussed the need for such guidelines, as many developers are embarking on an unknown adventure when writing apps for the platform, unable to tell when something they are doing is breaking rules for Twitter platform usage.  We’ve seen this get out of hand with the launch of many “get-rich-quick” applications, along with applications that Tweet on your behalf either in public or DM form without your knowledge.

Twitter’s initial platform guidelines include the following, stating that developers of Twitter applications must:

  • Identify the user that authored or provided the Tweet, unless you are providing Tweets in an aggregate form or in anonymous form in those exceptional cases where concerns over user security and anonymity are involved.
  • Maintain the integrity of Tweets and not edit or revise them. Tweets may be abbreviated for display purposes and as necessary due to technical limitations or requirements of any networks, devices, services or media.
  • Get each user’s consent before sending Tweets or other messages on their behalf. A user authenticating with your application does not constitute consent to send a message.
  • Get permission from the user that created the Tweet if you want to make their Tweet into a commercial good or product, like using a Tweet on a t-shirt or a poster or making a book based on someone’s Tweets.

The most significant of the 4 items is that apps will no longer be able to send Tweets on a user’s behalf without their permission, although this is unclear if this includes automated DMs, and if this permission must be on a “Tweet-by-Tweet” basis or not.  In addition, users can feel secure that their Tweets will not be used without their permission in a commercial endeavor, although I’m pretty sure Copyright law will protect this.

This is a great move by Twitter, and one I strongly welcome.  Even if it prevents some developers from building applications, it sets the record straight so they know what they can, and can’t be doing.  Keep in mind that this is only a proposal at the moment, and nothing is set in stone.  You can contribute to the discussion on the developers mailing list.

[youtube https://www.youtube.com/watch?v=jbhnRuJBHLs&hl=en&fs=1&]

Facebook Prepares to Compete With Gmail: Launches Messaging API

FacebookFacebook is moving too fast this week for me to keep up.  On the heels of the Acquisition of Gmail-creator-founded FriendFeed, along with the launch of their new search interface, Facebook just took it one step further today.  In an announcement on their blog along with associated documentation on their developers wiki, Facebook released a set of new APIs for developers to begin writing software that enables them to read and display a user’s inbox and messages from Facebook Platform.

While Facebook has offered a rich set of APIs since the launch of their developer platform in 2007, Facebook’s messaging system has remained stagnant and seemingly untouched during the entire period.  Developers have been itching to get into the messages of a user on their behalf to help fix this.  Not only is Facebook opening this up for developers, but they are also getting ready to launch an entirely new messaging system being tested by a small group of users currently, set to launch “in the coming weeks”.  Facebook also launched an interface into their notifications API enabling developers to read and notify users when they receive new notifications.  I expect this to be used in Desktop applications such as Seesmic.

While people are speculating the fate of FriendFeed after the new acquisition, there seems to be two things on the mind of Facebook recently: Messaging and Search.  With the creator of Gmail on their team and co-founder of one of the best real-time search engines on the internet (that just so happens to have a superior Direct Messaging system as well), you can bet Facebook is already putting him hard at work in helping them on such features.  I hope and expect to see this new API implemented into FriendFeed’s own messaging system, as well – hopefully enabling you to import your Facebook inbox into FriendFeed’s own DM box.  We’ll wait and see.

It’s no secret that E-mail is an old and out-dated technology.  It only goes to say that we’re in a race now for the fastest, most real-time, and responsive messaging system to replace e-mail.  While Google moves forward with Wave, you can bet Facebook will be doing the same with their own messaging.  With the ability to now truly identify individuals socially without need for an actual “address”, E-mail may actually be going by the wayside.

Gmail has yet to launch any sort of API into its own messaging (that I’m aware of) – this move by Facebook is unprecedented.  While Facebook will not allow developers to actually send messages on behalf of users (a wise and careful move, I’m sure), this makes Facebook even more “open” in my book.

Developers can sign up for the new messaging platform by signing up for the Inbox API whitelist.

FriendFeed Opens Up the Firehose to Developers

friendfeed-logo.jpgFriendFeed seems to be staying one (or two or three) step(s) ahead of Twitter in everything they do. Today FriendFeed released their real-time stream of data in beta to any and all developers wishing to write applications. Unlike Twitter, there is no application necessary, no NDA to sign, and all is controlled by simple OAuth. This also means users of FriendFeed-based applications will no longer need to get their special key to manually enter as was previously required.

The real-time stream is based on long-polling techniques to receive near-immediate updates of data from FriendFeed. With Long-polling, developers send a request to a given address, which the server holds open until data is ready for that request. The result is real-time data from the polled source, in this case FriendFeed. It is also less server-intensive as compared to the typical push updates similar to what Twitter is using for their /track and real-time streams, so in theory will scale better (and to me shows the maturity of the FriendFeed team as compared to Twitter’s).

In addition to their real-time stream, FriendFeed released an OAuth solution to developers, enabling users one-click access to the FriendFeed data stream for compatible apps using the platform. SocialToo, my service currently using the Twitter and Facebook platforms, will be using this authentication as well as we integrate FriendFeed into our environment. It will enable simple, one-click login and registration into our system, making it much easier for users to use socially-based applications.

My favorite addition is the integration of social graph data into the stream returned by FriendFeed. Previously, only the list of people a user subscribed to was available via the FriendFeed API. Now, both the list of those subscribed to, and those subscribed to a user are provided, enabling apps like my SocialToo to very soon be able to provide useful analytics around those following you on FriendFeed. Yes, this will also enable auto-follow and auto-unfollow (to keep out spammers) as well if users opt to do so.

Other features released in the API are the ability to upload almost any file attachment to a user’s FriendFeed stream, access to the powerful (and more than 140 character) direct message features of FriendFeed, sharing to multiple streams at once, and more. In addition, FriendFeed is returning the HTML for users and groups, so developers don’t have to differentiate between the two. Hopefully, this will also enable FriendFeed to maintain control of the API and, if you ask me, provide advertising and monetization opportunities via the API in the future as well, which Twitter has completely lost control over.

FriendFeed’s API has proven to have potential as a much more flexible option for developers than Twitter’s in the past, and I think they’re proving that with the new features. In addition to the features launched today, developers can also opt to customize the requests they send to FriendFeed, specifying query parameters about exactly what information they want to retrieve about users, allowing much smaller and much fewer requests to the platform. This is a welcome site as compared to the Twitter platform, which forces entire requests to pull information about a user and their friends, forcing much larger data requests, and higher costs for developers in the end.

FriendFeed is putting the pressure on Twitter with this release. My hope is that developers will see this, and try the platform out, giving Twitter more pressure to fix their own platform issues. If you haven’t tried it, today is the day for Social Platform developers to try FriendFeed’s API.

I Should Have Heeded My Own Advice About Twitter

whale.pngAbout a full year ago, I wrote of developers leaving the Twitter development platform due to Twitter consistently removing features, making changes without warning developers, and effectively putting developers out of business with just a single change of policy.  I advised other developers to be careful building a business model around Twitter, adding that it was a risky move, much more risky than many of the other platforms out there.  It would seem I should have taken my own advice.

It was this time I started SocialToo, a service that originally we built around the auto-follow concept. I named it such because I did not want it to work solely on the Twitter platform.  It was clear Twitter was on an unstable architecture, and their relationship with developers was also quite shaky.  For this reason, I added in features like Facebook profile redirects at the time (a simple “yourusername.socialtoo.com” which redirects to your Facebook profile).  But Twitter, at the time, was the easiest solution to build around, and made the most sense for where we had started so I figured we had to make what we did with it perfect.  Here we are, one year later, and I’m still trying to make it work perfect, but not because our code sucks – it’s because Twitter keeps changing their system, and the rules that go with it!

Today Twitter pulled the rug out from under its developers once more by, with absolutely no notice, announcing that (paraphrased, in my words) since their way was the right way, they were discouraging auto-following, and would only allow a user to follow 1,000 people per day.  What Twitter neglected was that, while not many, myself and others were building business plans around the users that would need this.  A little notice would have been helpful, but is very consistent with the way developers have been treated over the past year or more by Twitter.  Yes, I’m a big boy and we’ll survive, but that’s besides the point.  You can read more about what developers are experiencing over on LouisGray.  Put lightly, I’m not happy.

Twitter Needs a Firm Terms of Service

I know I’m not only one to say this when I say that I don’t have a clue what to expect from Twitter any more.  Any developer out there is prone to this type of treatment, and I can pretty much guarantee it will affect every Twitter developer out there at some point until something is done about it.  The reason for this is that Twitter really has no firm Terms of Service around its platform.  I am not required to agree to any way of using their platform when I write software for them.

Some might see this as a good thing, but what they are neglecting to see is that a Terms of Service gives developers a vision of what to expect, something we don’t have now.  This needs to change, and soon – we as developers need to know what we can and can’t do on the platform.  Can we write apps that auto-follow?  Can we write apps that auto-DM?  What about mass-DM?  Can I store data and what data can I store on my servers and for how long?  What is the definition of spam? There are lots of rules for Twitter users that we agree to, but nothing a developer must agree to when writing apps.  This is why you’re seeing so many apps out there gaming the system, causing these ridiculous rules to have to be made, when it can realistically all be settled before-hand with a simple agreement all developers must agree to before developing apps for Twitter.

If I knew what I could or couldn’t do on Twitter I could avoid it in the first place.  Unfortunately Twitter hasn’t defined that and it’s pretty darn confusing, not to mention extremely risky, to write apps for the Twitter platform right now.  With Facebook, on the other hand, I’m required to agree to a very specific agreement, and they’re very clear when they’re going to change any of the terms, giving developers plenty of warning.  It’s well written out and well defined. It’s a platform with little risk and high reward for businesses because they give developers time to work with any changes they make to it.

We need notice, Twitter!

These “day of” announcements are very immature and something a 15 million user company with millions to billions in the bank shouldn’t be doing.  They were doing this type of stuff a full year ago, and even today they haven’t changed their ways, even though they said they would.  Twitter needs to start notifying developers of these changes or a lot more are going to be put out of business at the drop of a hat.

Every day on the developers mailing list I’m seeing other things like this happening – OAuth technology being removed without notice (I recognize it’s beta, but we still need to know!), no notice to developers on what’s happening when site slowness happens, when things are fixed on the platform, and when they’re broken, and more.  As a developer with 12-15 years of experience in these things, the entire Twitter platform is a joke!  You just don’t do these types of things in the real world of software development!  I worked at places I would have gotten fired for this type of activity!

Developers will continue to leave if this doesn’t change

I have to admit, I’m re-evaluating my strategy to stop working on what I was doing in the Twitter environment, and move more to other platforms at the moment.  When I do that, no, I won’t remove the existing Twitter technology, but I will admit it will be very easy for the users on my service to get the same value they’re currently getting on Twitter on other services, and as they experience similar treatment by Twitter they’ll be leaving as well (as I’m already seeing).  I know I’m not the only developer in this boat right now – there are a lot of frustrated developers out there with almost no signs of change from Twitter.  I know developers that now refuse to develop on the Twitter platform because of the way they were treated, and that will continue to happen.

I have to admit I had to send out e-mails to 20 or 50 or so of Twitter’s very top users today telling them that Twitter wasn’t allowing them to auto-follow.  Those are tough e-mails to write, especially considering the influence Twitter has allowed these individuals to have and the audiences these people are capable of engaging.  I’d like to make Twitter look good for these people, but Twitter isn’t making it very easy.

Twitter, it’s time to get your act together.  Hire some more smart people, get people in management that know how to make these decisions right, and make us believe, not by words alone, but by actual actions, that you’re going to do something about it.  If you don’t, as I’ve said before, when the developers leave, so will your users.

Come follow me over on FriendFeed over at http://beta.friendfeed.com/jessestay or over on Facebook at http://jessestay.socialtoo.com.

1 Prediction Down, 7 to Go – Facebook Launches Connect for the iPhone

FacebookBeginning of February I announced my 8 late predictions that I thought would happen in 2009. One of those, which I actually mentioned originally last year, was that Facebook would launch a developer platform for the iPhone. Such a prediction was hinted at last year by Facebook, was supposed to launch end of last year, and it would appear that this morning it came true. As of this morning, Facebook announced they are releasing Facebook Connect for the iPhone, and announced several of the first apps using it.

The platform integrates with the iPhone XCode platform and provides libraries that make integration of Facebook into any iPhone app easy. (Here’s where I get geeky, so beware) Per the documentation, the basics are that developers simply include the libraries in this manner:

#import “FBConnect/FBConnect.h”

Following that, the basic component of the app is the session object. To create a session object, you just need to provide code similar to this:

session = [FBSession sessionForApplication:myApiKey secret:myApiSecret delegate:self];

Following that, you’ll want a basic login button you can provide to users that authenticates the user and connects with the session object. To display the login button, use code like this:

FBLoginButton* button = [[[FBLoginButton alloc] init] autorelease];
[self.view addSubview:button];

Once the user is logged in, the session object should have the session key from Facebook, and you can make normal Facebook API calls from there. From there, you can get the session key and the session secret and send them back to your servers for processing, or make simple calls back to Facebook directly from the iPhone app using the provided libraries. Facebook provides this sample code as an example on how to do it from the iPhone:

– (void)getUserName {
NSString* fql = @”select name from user where uid == 1234″;
NSDictionary* params = [NSDictionary dictionaryWithObject:fql forKey:@”query”];
[[FBRequest requestWithDelegate:self] call:@”facebook.fql.query” params:params];
}

– (void)request:(FBRequest*)request didLoad:(id)result {
NSArray* users = result;
NSDictionary* user = [users objectAtIndex:0];
NSString* name = [user objectForKey:@”name”];
NSLog(@”Query returned %@”, name);
}

It would appear that 2009 is right on track, and I can’t wait to see what more Facebook has in store for us with the recent launch of their new design, new focuses, and more. This alone may be enough to get me even further into iPhone app development as the iPhone finally has the potential to become much more “Social”.