Contact: (801) 853-8339 or jesse@staynalive.com
Twitter, FriendFeed, LinkedIn, or Facebook
Like StayNAlive.com on Facebook!:
TwitterCounter for @Jesse

Posts Tagged ‘Facebook’

I’m a Dummy! My Next, and Third Book

Wednesday, April 21st, 2010

It’s been 2 years since the release of my second book, FBML Essentials, and everyone keeps asking me when I’m going to write my next.  I admit I’m a little addicted – it’s why I write on this blog.  I hated writing for others in High School and College, but since I started writing for myself I have really gained a sincere appreciation for writing.  Once I wrote my first book, I’m on Facebook–Now What??? with Jason Alba, I was addicted.  I love writing!  That’s why I’m proud to announce that I have signed an agreement with Wiley to write Facebook Application Development For Dummies.

What will it be about?  To tell you the truth, I’m still working that out.  My thought is to keep this one extremely simple.  I want it to be so simple even marketers and brand managers can learn at least a few ways to integrate Facebook Connect on their own websites, or find ways to integrate their brand straight into Facebook.  I’d like to hear from you though – what would you like to learn about Facebook Application Development?  What would you like to learn about the Facebook Platform?

I’m honored to be working with Wiley in this effort.  They are my biggest publisher yet, and from my dealings with them thus far they are going to be a joy to work with.  My wife has agreed to not see me for the next 6-9 months (I love you honey!), and I’m still keeping my day job and running SocialToo.  Yes, I’m crazy.  I think in the end though, based on my interactions with each of you, we need a completely simple instruction on how to get started with the Facebook Platform and what it means for developers and brands.  My hope is that with the time I spend on this book I might be able to benefit each of you in getting started with this incredible platform.

Facebook Application Development For Dummies will go to print some time at the end of this year, and, having learned from my last 2 books, you can bet this book will be very up to date and will have ways of remaining up to date long from its publish date.  Tell me what you want it to include!

I’ll be at Facebook’s F8 developers conference tomorrow (I’ll be one of the only guys with a FriendFeed T-Shirt on) – come look for me!  The first 4 people to mention this post to me at the conference get a free, signed copy of FBML Essentials.

In the meantime, be sure to become a fan of FBML Essentials and I’m on Facebook–Now What??? on Facebook, subscribe to this blog, and I’ll be sure you get updated when we have a home for my new book.

More “Insights” on the Facebook Open Graph API Surface

Saturday, April 17th, 2010

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 <fb:like> 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:

<fb:activity>

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:

<fb:activity width=”300″ height=”400″ header=”false” site=”cnn.com”/>

<fb:connectBar> and <fb:socialBar>

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}. <strong>{siteName}<\/strong> is using <img src=\”{logoUrl}\” alt=\”facebook\”\/> to personalize your experience.”

There is an option to click to learn more.  My guess is that <fb:connectBar> is just a way for website owners to spread more word about Facebook Connect to their visitors.  I’m assuming <fb:socialBar> uses <fb:connectBar> 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 “<fb:connectBar/>” or “<fb:socialBar/>” in your website somewhere after calling the Facebook Javascript libraries.

Insights for Websites

Perhaps the most intriguing part of the <fb:socialBar> and <fb:connectBar> 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

Thursday, April 15th, 2010

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.

What is Your Core?

Saturday, April 10th, 2010

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?

Facebook’s Like Button for the Whole Internet – Here’s How it Works

Thursday, March 25th, 2010

Techcrunch today talked about a new “Like Button for the Whole Internet” which Facebook looks to be launching some time soon, and has been tested amongst several developers as they’ve been told.  What they didn’t mention is that you can access the code for this right now in the code to the latest open source Javascript SDK.  While it does not currently work in its current form, it is open for the entire public to see, and has been there for the last few months (along with a few other hints I’ll let you find).

Assuming the source of the new SDK (currently in alpha) remains the same, the XFBML <fb:like> button can be placed on any website on the internet, and it increments the number of likes when a user clicks on it.  By default it increments the likes for the current page, but there appears to also be the ability to specify a “permalink” attribute, along with a URL to another page.  It’s unclear if that will be changeable in the XFBML tag or not.  Also, a required “node_type” attribute that defaults to “page” can be set.  Lastly, an optional “page_url” can be set.  The XFBML tag loads content from /widgets/like.php (attributes of the XFBML tag get passed as attributes in the URL).  That URL appears to be disabled at the moment.

So it looks like the XFBML tag will look something like the following, and it will be part of Facebook’s widgets architecture:

<fb:like permalink=”http://staynalive.com” node_type=”page” page_url=”http://staynalive.com”></fb:like>

Also of interest, Facebook has an entire tag library devoted to the new tag, like.js.  You can probably gain a little more info from that.  I can’t wait for them to turn on like.php so we can play with this.

My book, FBML Essentials, may just get a lot more interesting as Facebook prepares for their “OpenGraph API”, enabling any website to become its own Facebook Fan Page across the internet.  This is one of many tags I’ve seen that are very interesting – see if you can look through the code and find anything else that looks interesting like this.  I love being a developer. :-)

Facebook Kills More Spammy Apps With New Policy Changes

Wednesday, March 24th, 2010

A common technique used by developers to promote their apps very quickly on Facebook has been to tag all of a user’s friends in a photo.  I’ve complained about this before.  If you visit my Facebook Profile and look at the “photos of Jesse” section you’ll notice a few of these.  They’re usually a single image with a bunch of peoples’ photos, saying something like “people who have visited your profile”, or “your top friends”.  Often they’ll add a link in the comments back to the app to get more installs.  Just now, Facebook announced they’re trying to put an end to this practice with the introduction of new policies to their platform.

The most significant change involves this method of spamming a user’s friends through the photo tagging feature in the API.  Previously, any developer could take a list of a user’s friends without the user’s permission and tag them all on behalf of that user, to get their attention. As of today that’s no more – now developers must explicitely ask the user’s permission for each friend individually before tagging them in a photo on their behalf.  This significantly reduces the potential spamminess of this API call, and I’m sure many people will see much less of this photo spam in their inbox.

The second big change Facebook is enforcing involves the number of spammy wall posts you may be receiving on your Facebook wall.  Right now if you visit my Facebook wall you’ll notice several apps have posted there.  Most of these apps have not been given my permission to do so, but, because I’m friends with the individual that used the app, I’m subject to it sharing to my wall.  Much of this was due to the ability for developers to present a list of multiple friends at the same time that a user could select from and post to their wall.  The app would say something like, “post to 10 friends’ walls and get 10 points towards your garden”, the user would be encouraged to spam their friends, and more spam would appear on the walls of those users.

Now, Facebook is requiring developers to only invite one friend at a time.  No longer will users be able to select from a list of multiple at a time to spam their friends.  Also, users must explicitly have approved the app to publish that entry.  I expect much less spam will result.

Of course, all of this is dependent on Facebook’s enforcement of the measures, but Facebook is known to be pretty good at this.  Even as a developer, I welcome the new rules and the potential of a cleaner Facebook.  Let’s hope this improves the overall environment.

Geeky: PHP Client Library That Works With the New Facebook Javascript SDK

Monday, March 22nd, 2010

Occasionally I write more geeky posts that I don’t expect all my readers to understand.  I’m going to start prefacing those with “Geeky:” so you can know to ignore them in the future.  This is obviously one of those, so if the title doesn’t make sense to you, I don’t blame you for skipping over it all.

I have started playing recently with Facebook’s new Open Source Javascript Client Libraries.  It has actually been quite fun to work with, in that they separate all the code out in a manner that’s easy to access, read, and understand how it works.  Also, if I ever choose, I can host the Javascript files themselves on my own servers and reduce that potential failure point were Facebook’s servers to go down. (granted, you’re still relying on the Facebook API for them to work fully)  I can also contribute to the source in the event I feel something might work better (via my own Github fork).

One problem I’ve come across with the new libraries is that they have simplified the Javascript session cookies so that rather than 5 or 6 separate cookies all getting set and needing to be parsed on the client in order to identify the authorized user, only one cookie is set, and can be parsed using simple URI string parsing functions. This is actually a bonus in that there is less work to be done to authorize the user.  However, it means any old server-side clients that parse those cookies the old way will also need to be modified.  If you don’t modify your server-side client library to recognize the new cookies, your libraries will not be able to authenticate or authorize the user properly.

I needed a solution for the server side that worked well with the new format.  The specific code I’m writing is in PHP so it made sense to go with Facebook’s default PHP libraries, and I created a version of facebook.php that worked with the new Javascript SDK.  To set it up is simple – just take this file, unzip it, and replace the facebook.php in your default PHP Facebook client library install with the one you just unzipped.

Unfortunately, the file isn’t backwards compatible, so you will need to choose between either the new Open Source Javascript SDK or the old Facebook Javascript Client libraries.  This is because if you use the new Javascript SDK when you log the user out it only deletes the new format of session cookie.  Your PHP Client Libraries will set the old format if you don’t replace them with the version above.

There may still be a way to make all this backwards compatible, but for my purposes I haven’t had need to look into it.  Also, I’ve only tested this for my own use-cases, so there may be bugs.  Please send me a patch if you find any bugs and I’ll update my own version of the file.  As soon as it’s possible hopefully we can get this into the Facebook version as well.  I’m going to also update the Github Wiki for the new Javascript SDK so others can benefit.

Let me know if anything needs to be updated.  You can download the zipped facebook.php file here.

Facebook Goes After Their Trademark in Popular Domains

Thursday, March 18th, 2010

It’s common practice, and perhaps necessary for large companies to protect their Trademark.  I’ve written before about Google going after an incorrect spelling of their own Trademark, on http://googleappsengine.com, because it resembles one of their products.  Twitter is known to also go after domains with not only “Twitter” in the name, but “Tweet” and even “Twit” (even though that specific trademark is owned by Leo Laporte).  It has long been known that Facebook Apps are not to have the name “Facebook” in their names, but it would appear that Facebook is starting to go after domain names too.  Just recently, they have asked such major sites as Mari Smith’s WhyFacebook.com, to change their name in defense of their own Trademark.

In a post on Mari’s Facebook Page, Mari stated, “I took down my WhyFacebook.com blog this week. Long story. But basically Facebook are on a mission to reclaim all domains containing “facebook” – soooo, a wee word of warning in case you own any!!”  Mari, perhaps one of the most followed Facebook experts on the site, who also was named by FastCompany Magazine as the “Pied Piper of Facebook”, also ran one of the most intuitive and most followed blogs on how to manage a Facebook Page, build a fan base, and grow an audience using the site.  She had an incredible following of Brand managers and very large companies wanting to improve their brand presence.  She is now moving her content over to her own domain, MariSmith.com for future reference.

The request by Facebook begs the question whether other popular sites, such as AllFacebook.com and InsideFacebook.com (both of which I have contributed articles for in the past), have also received such Cease-and-Desist orders.  Mari states she was told these sites have received “special permission” from Facebook, which makes me wonder how this permission is obtained.  Even the domain for mine and my co-author Jason Alba’s website (which now redirects to our Fan Page) for our book is at risk: FacebookAdvice.com.  Or what about even the name of our book, “I’m on Facebook–Now What???” – is that at risk as well?

I think it’s safe to say that if anyone owns a domain with the name, “Facebook” in the title they are at risk to be taken down by Facebook.  This is something to be aware of when creating any sort of website – even your domain is not safe from Trademark infringement in the future.  Are you aware of any other sites receiving these cease-and-desist orders?

Facebook Starting to Test Fan Page Notifications

Wednesday, March 17th, 2010

My wife just got an interesting e-mail notification from Facebook about a Facebook Page she is a fan of.  The notification was a summary of the activity on the Page for the day.  The text of the e-mail goes as such:

“Here is this week’s summary for the Facebook Page: **************

0 Fans this week (7 total Fans)
0 Wall Posts, Comments, and Likes this week (0 last week)
2 Visits to your page this week (1 Visits last week)

Update your Fans:
http://www.facebook.com/n/?pages%2F*********
Visit your Insights Page:
http://www.facebook.com/n/?business%2Finsights%2F*********
Get more Fans with Facebook Ads:
http://www.facebook.com/n/?ads%2Fcreate%2F&src=pg_edit&fbid=***************

Thanks,
The Facebook Team”

Granted, the Page she was a fan of is not one that gets a lot of activity, it leads me to wonder if Facebook is beginning to enable e-mail notifications for Facebook Page activity on the site.  I wonder if there were comments or Wall posts if those would have been included as well.

Facebook has had amazing notification features for normal user Profiles up to this point, but for Fan Pages, the notifications have been lacking.  Users have been forced to resort to third party solutions such as NutshellMail (of which I am a user) to deliver notifications for such Pages to their e-mail inbox.  On my own Fan Pages for myself and my Facebook books, this has been the biggest complaint amongst Fan Page administrators, that there was no way to be notified off the Facebook.com site when new activity occured on their Fan Page.

It appears this very soon won’t be the problem any more.  Usually when Facebook tests features like this, it means a solution is just around the corner.  Now the big question is, how can I get this enabled on my account?

Is anyone else seeing this on their Facebook Account?  I’m interested to hear what you’re seeing.

Twitter Launches Facebook Connect Competitor, @Anywhere

Monday, March 15th, 2010

I’ve long talked about the MVC model of the Building Block web.  Data Repositories like Amazon Simple Storage, Facebook Data Store, Google Data, and others comprise the Model of this new platform.  APIs like the Twitter API, the Facebook server-side APIs, or other REST-type APIs compose the Controllers of this web.  Then you have the View – something pretty much only Facebook and OpenSocial/Google Friend Connect have covered thus far.  The View enables developers to easily integrate and access code from a user’s Client, the web browser.  Today Twitter added their entry to that game, @Anywhere.

@Anywhere strives to provide a solution for a huge weakness in the Twitter API Platform thus far.  It provides an entire Javascript, Client-side platform for developers and website owners to integrate Twitter easily and simply right on top of their website, no server-side code involved.  This is the missing link Twitter has needed to have a truly competitive solution against Facebook’s Connect platform.

Facebook Connect relies on Javascript to provide an immersive experience into the Facebook environment right on top of any website owner’s site.  With a few lines of Javascript, and an HTML-like tag language called XFBML, website owners can pretty much copy and paste pieces of code in place and immediately have access to comments, become a fan boxes, post to their stream, and even more if you know a little Javascript as well.  It’s unclear if Twitter will be releasing an XFBML competitor (I’d love to help Twitter test if this becomes the case – I wrote the book on Facebook’s FBML), but Twitter is clearly going up against Facebook Connect to provide similar type tools, and I think it’s a very smart move.

I mentioned earlier I was excited about the entry of Josh Elman as product manager at Twitter.  I’m unclear if he had anything to do with this, but you can clearly see the Facebook influence in Twitter’s new API.  With not only Josh, but several others from the Facebook team now working at Twitter, you can bet they’ve compared and contrasted how they could obtain some of the millions of Facebook developers out there.  Making it as easy as possible is the smartest way to do this, and Twitter has already signed on several very big players in the Facebook Connect space, Huffington Post and Yahoo, to be launch partners in this effort.

In addition to those, the most significant partner that I think should not be ignored is Amazon.  Amazon, IMO, is the holy grail in Social E-Commerce, and despite not having a Facebook Connect solution, they seem willing to integrate Twitter into their environment.  Why they are choosing Twitter over Facebook is beyond me – maybe they have a Facebook deal in the works as well?

I’m very excited about this new announcement.  Soon, it will be easy for any developer to very seamlessly, in a single, well-understood language (Javascript), integrate Facebook and Twitter all on a single website with little effort.  As a developer, I’m drooling a bit over this.  I can’t wait to start playing with it.