Social Coding – Page 3 – Stay N Alive

Identi.ca Will Succeed Because Its Technology is Viral

logo.pngYesterday I guest-posted on LouisGray.com about how the technology behind Identi.ca, Laconi.ca, could pose as the launching platform to brand many smaller microblogging services. Today I’d like to share one more power of the service – its working API. Identi.ca/Laconi.ca seem to have introduced a new ideology to Web 2.0 with this code, viral software.

Now, when I mention “viral software”, I’m not necessarily mentioning software that can make things viral. I’m instead meaning software in which the underlying code itself is viral. This could change the face of the way developers write code in the future, and open source is only part of it.

Picture 1.jpgToday I noticed (through Steve Gillmor on identi.ca) another new interesting thing that I knew was coming – Brad Williams (@williamsba) wrote a bridge that essentially allows you to post on identi.ca and have it automatically post to Twitter, prepended by “identi.ca:”. Interestingly enough, “Hippy Steve” (@exador23) pointed out now one of the top trends on Twitter as of today, according to http://search.twitter.com is “identi”. Now, many of the posts you see on Twitter are going to become posts prepended by “identi.ca:”, and many more are going to feel pressured to join identi.ca where they are seeing all their other friends post from. I guess you could consider it competitive micro-advertising, created and distributed on purpose by the users themselves (as Charlene and Josh would put it, we’re seeing a “Groundswell“).

It should be noted that you can remove the “Identi.ca:” from being prepended, but as long as you’re on identi.ca and want those on Twitter to know you’re posting from there and not Twitter, why remove it? You are posting from the competing team, after all. Would anyone want to pretend they’re not posting from Twitter? I’d like to know where my friends are posting from.

Now, onto the viral part. Why did Brad Williams implement this bridge? I’m sure there are preferential issues of trying to get his network onto identi.ca, but the fact of the matter is, from a development standpoint these applications like Brad William’s bridge are simply easier to write for Identi.ca. The lack of limits and plan to keep off those limits on Identi.ca are just one more thing that make the software behind Identi.ca viral. Developers want to develop for Identi.ca. With an API that also supports Twitter (I mean literally, it is simply a change in the hostname for your Twitter code), developing for Identi.ca is just too easy! Again, developers jumping ship could very well mean the demise for Twitter.

I can only hope that developers of the future learn from this experience – in a social era such as today, even your software has to remain viral and easily shareable and distributable. Laconi.ca is the prime example of this – completely open source, based on open protocols, and your software should be able to talk to other instances of itself in some way, preferably using standard protocols. In addition to that, a completely open API is a must – the minute you start closing your API you begin to lose your code’s virality. Brad William’s bridge is only the start of apps that make the transition to Identi.ca much easier. I imagine you’ll see many more of these things in the coming days and weeks.

Looking to learn more on how to make the jump to identi.ca? Check out my friend, Marina Martin‘s site, ohidentica.com for some great howtos and tips all in one place. You can find me at http://identi.ca/jessestay.

Win a Free Book! Enter O’Reilly’s Facebook App Idea Competition.

fbml_essentials_comp.pngO’Reilly just published a great interview with me on their FYI blog. If you want to learn why my book, FBML Essentials is important to you as a Facebook developer or business looking to develop Facebook applications, you should check it out. At the end, Mary Rotman announced a competition that could get you a free copy of my book, straight from O’Reilly.

Here’s the deal: regardless of whether you’re a Facebook developer or not, all you need is an idea. Let’s consider this the pre-cursor to getting your fbFund money — I’ll show you how to get started making the app, fbFund will fund the way. Simply go to O’Reilly’s FYI post and enter in the comments the application you would build (or are building) and how it’s different from the rest of the hundreds of Facebook applications out there. The best one or two ideas get a free copy of FBML Essentials – bring it to the next Social Media conference that I’m at and I’ll even sign it for you! How cool is that???

Facebook Confirms Launch of Platform on iPhone

Ben Ling just announced that the iPhone will be an official Facebook Connect launch partner. As I mentioned earlier, this is part of the developer course today. I’ll be staying tuned today to try and find out more information on how you can include Facebook in your iPhone App building process as the day goes forward.

Just in Time for F8, O’Reilly’s First Book on Facebook Development Released

fbml_essentials_comp.pngI’m proud to announce that this week, just in time for Facebook F8 and OSCON, my book, FBML Essentials, will be available for purchase in print at most book stores. You can purchase it on Amazon here (be sure to leave a review!). It is scheduled to ship this Thursday, July 24th. You can also check it out online right now via O’Reilly’s Safari book store.

Some of the biggest Facebook bloggers and experts in the industry have also contributed their thoughts. Nick O’Neill, of AllFacebook.com and SocialTimes.com, contributed the Foreword for the book. Rodney Rumford, of FaceReviews.com and Gravitational Media, contributed the Afterword for the book. Justin Smith, of InsideFacebook.com and WaterCooler, was generous enough to provide a quote for the back cover (we’re hoping it made it in – I’m told it has). I’d like to thank them for their contribution.

FBML Essentials is essentially a very simple “nutshell” book that should give you all you need to get started with Facebook development in the FBML tag language, minus the API itself. It covers a howto on creating Apps from start to finish, using simple HTML and FBML to get a simple App off the ground. I go over different quirks with HTML and Javascript in regards to how Facebook parses them. I also cover the way Facebook talks to your servers, and provide a few suggestions on where to host and how to get set up properly and make your App viral. The final one half or so of the book is a thorough reference of almost (Facebook just added 2 more tags last week) every single tag Facebook provides, including examples, sample HTML that Facebook renders, and more. I even cover some unknowns (while maybe not so useful, but fun regardless) such as the tag, and tag. (yes, there are such tags, and as of the writing they work!)

If you are a web developer considering learning Facebook development, this book is a great start, and should point you in the right direction on where to go afterwards. If you’re already a Facebook developer, this book will be a great addition to your book collection, and you should be able to refer back to it often as a reference as you see need.

I imagine with today’s launch of the new Facebook design many may be wondering if the book is already out of date. Actually, I was able to get some of the last minute changes in response to the new design out in just the last 2 weeks, so this book is very up to date – O’Reilly has been wonderful to work with for this project.

Looking to learn how to write software on Facebook? FBML Essentials is a great start – pre-order yours now! Look for me at Facebook’s F8 conference this Wednesday – I’ll be shooting video, qik’ing if possible, and live-blogging where I can. Say hi if you see me around!

Utah Social Media Developers / Facebook Developer Garage Tomorrow at 7pm!

Facebook.jpgThose of you in the Facebook Group or Google group have already received notice about this but I just realized I hadn’t blogged about it yet. Tomorrow we have a great Facebook Developers Garage planned here in Salt Lake City. Facebook has sent us a professional copy of the DVD of the Palo Alto Facebook Developers Garage that I was able to attend in May, so we’re going to watch that, and then go over some of the new changes that are coming into play for the new Facebook design.

This should be a great event if your a developer or even non-techie, as it will help you see some of the integration points you can build into with the new design. A lot will be changing with the new Facebook design, so if you are currently, or are planning to build a Facebook application, either as a developer or in a marketing or business position, you’ll definitely want to attend. This is a completely open event so please invite your friends! All I ask is that you RSVP here.

We are still looking for someone that can provide food for the event so if your company would like some great exposure in front of possibly 20-30 developers and Facebook-interested people, please contact me! In the meantime, the event will be hosted at EPIC Ventures in downtown Salt Lake City and they will be providing snacks and drinks for all that attend. I’d like to thank them personally for hosting the event – they are doing this after hosting our food for last month’s event!

All in all, this should be a fun event as all of them are. If for some reason you can’t attend, our next meeting will be September 9th from 7pm to 10pm so put that on your calendar! I’ll look forward to seeing you all there!

Here’s a map to EPIC Ventures – it has been recommended that you park in the Joseph Smith Memorial Building parking lot across the street. I’m told they can provide vouchers for that. Also, if you arrive late a phone number will be posted on the door of the Zions building for Rachel Strate – please call that number and we’ll let you in!:

Epic Ventures
One South Main St, 8th floor
Salt Lake City, UT 84111

Social Coding Series: I’m In Your Social Graph, Hacking Your Life – a Howto

As the first entry to my Social Coding series I’m going to cover Google’s Social Graph API. I saw a demo of this at Google I/O in San Francisco and was so impressed that I immediately started hacking on it when I got home. Little did I know how powerful this API was and how much information it could pull off the web about a single individual!

Google’s Social Graph API takes a cache of the rich storage of links, information, and URLs on Google’s servers, and determines which of those contain information about actual people. It combines OpenID for confirming an individual’s identity, and XFN and FOAF XML protocols to determine links between those identities. With a simple tag on a user’s website, a user can determine other websites that also identify them. If you link to one URL identifying that location as you, and at the linked website, it links back to you, Google can tell for sure both of those websites are yours, and identify you as a person. Not only that, but you can similarly provide XFN information or FOAF information via similar tags or a separately linked file identifying who your friends are. If they link back to you via similar metadata Google can tell for sure that the two of you are friends.

The Social Graph API lives and breaths this data. There are actually quite a few Social networks that use this protocol to identify you and your friends. Sites like Digg, Twitter, and FriendFeed all utilize these protocols to identify your friends. The Google Social Graph API scans this data and organizes it in an easy way for you, as a developer, to access.

Let’s try a simple example, and you don’t even have to be a developer to try it. Google has provided a simple playground to see how the Social Graph API works. If you go to http://socialgraph-resources.googlecode.com/svn/trunk/samples/exploreapi.html, enter in a few URLs of your blogs, social networking profiles, and other identifying locations on the web, leave “Follow ‘me’ Links”, “Pretty Output” checked, and click, “Find connections”. For me, just “twitter.com/jessestay” was all I needed to enter in the textarea.

The resulting structure is organized in a format called JSON – if you’re a Perl developer you might be familiar with this, as it is formatted the same way as a Perl Hash structure. You’ll see under “nodes” a bunch of URLs with different metadata about the URL – these are URLs that Google thinks, based on the metadata in the URL you provided, are you or contain info about you. I’ve found that only those with a “profile” attribute are actual Social Network profiles for yourself, so be sure to pay attention to those.

You can also go back and click “show inbound links” and “show outbound links” – this will then return URLs with links to sites you have identified as yourself, as well as sites you own that claim other sites as identifying for you. Play around with it – there’s a wealth of information it will give you about people!

Now, if you’re not a developer, you can skip over this next section because I’m going to get technical by showing an example. I’m a Perl developer so I’ll show one in Perl.

In Perl it’s simple – you need to install Net::SocialGraph with a command similar to this:

perl -MCPAN -e “install Net::SocialGraph”

Then, a bit of code like this will give you the data you need:

my $sg = Net::SocialGraph->new(‘fme’ => 1);

my @urls = ();
push (@urls,’http://twitter.com/jessestay’);
push (@urls,’http://facebook.com/profile.php?id=683545112′);

my $res = $sg->get(@urls);
my @profiles = ();
foreach my $node (keys %{$res->{‘nodes’}}) {
  if ($res->{‘nodes’}->{$node}->{‘attributes’}->{‘profile’}) {
    push (@profiles, $res->{‘nodes’}->{$node}->{‘attributes’}->{‘profile’});
  }
}

In the above example I instanciate my $sg object, telling it to follow “me” attributes in the response. I add a couple URLs to identify the individual I want profile information for (in this case, me), and then make the call to the SocialGraph API to go get my info based on those URLs with the “get” method provided by the API. Then, I just traverse the response and I can do whatever I want with it. After this, I could take the response information and list all of the user’s profiles as links, or perhaps I could scan those profiles for more information and provide information about each identified profile. You’ll also note that it’s not always correct so you’ll want to let the user intervene. Also, note I’m looking for only links with a “profile” attribute – I’ve found these to be most accurate.

Beyond that, that’s it. Ideally, you could take the Playground example above and look at the resulting URL. The basics of the Social Graph API are just that URL – plug in whatever you want and you’ll get back whatever information you need. You could then parse it with Javascript, Perl, PHP, or just leave it in the “pretty” format the Playground provides you by default.

Now, imagine taking that data and combining it with, say the Twitter API to pull out all of an individual’s friends on Twitter, then applying the Social Graph API to each of those individuals. Soon, you have a tool which can identify which of a user’s friends are on which networks, and if there are any of your friends you have not yet added on those networks. This API is powerful!

The Social Graph API can be an excellent utility to find out more information about any individual using your applications. No longer do you have to ask the individual for that information – so long as they are active on Web 2.0 that information can be provided for them to choose from!

You can learn more about the Social Graph API here.

Please note I too am new to this API – any inaccuracies in this document please let me know in the comments and I will correct them for others to benefit.

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

New Series: Social Coding

I’ve been contemplating for awhile now a good way to share what I know about Social Software Development and helping business owners, marketers, and developers learn how to set up their own social apps. Especially for developers, I know there are many out there looking for howtos and ways to learn more about starting their own App, promoting it, and getting it off the ground. As the author of FBML Essentials, I feel I am well suited for the task so in the next few days I’m going to start doing howtos and overviews on how you can get your own Apps together. If you’re “the business type”, I may get a little technical on you, but I do recommend you keep watching and forward these onto your IT personell – your CIO, CTO, and the like should read these so they can learn what’s possible to integrate into your existing environments. I’ll also try to throw in a little goodie here and there for “the business type”.

So, I’ve created a new category to the right, “Social Coding” – if you want to track just that, click on the category name and add it to your RSS. I’ve also started a new FriendFeed Room where those involved or that want to get involved in Social Coding can discuss, learn, and talk with each other. You can subscribe to that here.

Let’s start by going over the types of sites I could cover. Here are just a few – let me know if you have a particular interest in learning about how to code for any one in particular:

  • Facebook
  • OpenSocial
  • Google Friend Connect
  • Twitter
  • FriendFeed
  • Pligg
  • Digg
  • LinkedIn
  • MySpace
  • WordPress
  • MoveableType
  • Google App Engine
  • Bungee Connect

Stay tuned! I’ll keep posting news and other rants as we go forward – I’ll just be adding in some good howtos at the same time. Oh, and if you’re a developer and would like to do a howto in your preferred language for us, contact me – I’d love to let you do a guest post.