Category Archives: Facebook

Whilst being still somewhat of a newcomer to the world of freelance development, it’s already very apparent that the call for services is always heavily affected by online trends both technological and fashionable.

It’s quite understandable, that being the nature of the beast – to be adaptable and reactive, to be able to rapidly assimilate new skills. It’s much simpler for employers to call for contractors who have already worked with a certain platform, rather than channel time and resources into training – neither of which are often in disposable measure.

Recently I’ve taken frequent forays into the Facebook platform, both in the form of Canvas-based applications and Facebook-enabled external sites (what was previously known as Facebook Connect). Both however leveraging the Facebook’s core platform functionality, the Graph API, in strikingly similar ways.

Twice I’ve been tasked with projects that have required building bespoke photo manipulation tools.

Specifically, two (unrelated) applications both offering users the ability to select photos from their Facebook albums, apply some choice or combination of filters, effects or creative imagery and produce a processed image as a result. Awarding them free opportunity to download, share, remix or do whatever they please with the final outcome.

The first was Honda’s CR-Z Mode Art, both a Canvas application and third-party site running from the same code base.

This was Flash-based and applied simple run-time blending modes and colour transformations to a user’s profile image, largely relying on a bank of ready-made illustrated assets (of theme selected by the user) to embellish and augment the picture. Snippets of their profile information were also added.

When deciding upon a methodology for the image processing, I initially suggested that it all be handed to a server to make use a library such as PHP’s GD or ImageMagick.

This would take the weight off the client, both in handling the processing itself and in the delivery of aforementioned asset library. Even with a rudimentary grasp, both offer a much more powerful level of image manipulation than I thought easily achievable with Flash.

But Flash was a must. I recommended using Pixel Bender, mainly for selfish reasons, but also because it offers a complexity of processing down to the pixel level – but that wasn’t an option due to client-imposed restrictions on the Flash Player version.

More recently I was offered a second attempt with a very similar application with Samsung’s Now Project, an entirely PHP-based Facebook Canvas app.

This application offered the user a number of presets to apply to their image, very much along the lines of Hipstamatic – or rather it’s recent successor, Instagram.

Here we made use of GD’s built-in image filter functions, which are really handy.

A lot of the time GD is called upon for the likes of simple image cropping, rotating or resampling. That describes the most of my experience, anyway.

The filter options however offer control over a number of image properties as common as you’d expect in any image editing software, brightness and contrast for example. There’s conversion to grayscale and colour inverting, there’s a colorize method to handle RGB processing, also blur and smoothing options.

All can be used in combination to achieve a wide breadth of results.

In order to create the desired presets, something requiring a more creative eye than mine, I built a custom tool for uploading and processing images on-the-fly so the project designers could tweak and exact filter combination until they found their ideal results. It provided an option to export the settings so I could implement them later.

I’ve recreated that tool in a simpler form here. This one was thrown together very quickly this evening, there are a few images to choose from and a number of settings – it’s all achieved entirely with the GD library. Almost completely untested, not optimised whatsoever – so you’ll have to bear with the waiting time. Have a play!

You get the idea anyway.

GD can be used for watermarking images, often seen applying a transparent PNG to the corner of a picture, say. The same process is used to apply vignettes and overlays of scratches or noise in this example.

It’s really adaptable and still really useful – it hasn’t seen an update since November 2007.

Full source code for the tool is available on GitHub.

Last year Facebook released Facebook Connect and about the same time Google released Friend Connect, they’re two very similar services that allow users to connect with information and with their friends of the respective native platforms from third-party enabled sites. The intention, as I’ve written about before, is to add a layer of social interaction to ‘non-social’ sites, to connect your information and activity on these third-party sites to your information and activity (and contacts) on the original platforms.

Then in March, Yahoo! announced their service sign-on, called Yahoo! Updates.

Now, this week, Twitter have announced their connection service, called ‘Sign in with Twitter‘. It too gives you a secure authenticated access to your information and contacts, in exactly the same way the others do – except this time, it’s Twitter.

Sign in with Twitter

You might ask if we have three, do we need a fourth? Have you ever used any of the other three?

But don’t dismiss it, or think it Twitter are jumping on to any kind of bandwagon, Twitter’s implementation is fundamentally different to the others – and it could cause quite a stir.

The problem with the other services (ultimately the problem with the platforms) is, more than often not, they are completely closed and non-portable. Although you can sign-in to a third-party site and access your data, there’s a lot of limitation to what you can retrieve and publish. These popular social networks have grown and amassed huge amounts of members and data which they horde and keep to themselves. I’m not talking about privacy, I’m referring to data portability.

The infrastructures are like locked-in silos of information and each built differently, because, either, they never considered that you’d want to make your data portable or they didn’t then want (or see value) in you moving your data anywhere else. The services they’ve created to ‘connect’ to your data are also proprietary methods – custom built to channel in and out of those silos. Each of those services too, are singularities, they won’t work with each other.

Twitter though, have come up with a solution that adheres to agreed upon standards, specifically, by using OAuth to facilitate it’s connection. Technically, it’s significantly different, but in practice, you can expect it to do everything the others can do.

The community’s thoughts

Yahoo’s Eran Hammer-Lahav (a frequent contributor to OAuth) has written a good post discussing his thoughts, he says it’s ‘Open done right’ – no proprietary ‘special sauce’ clouds interoperability as happens with Facebook Connect. I think he’s right.

He looks at what happened when Facebook Connect was introduced, that they essentially offered third-party sites two key features: the ability to use existing Facebook accounts for their own needs, and access Facebook social data to enhance the site. The value of Facebook Connect is to save sites the need to build their own social layer. Twitter though, is not about yet another layer, but doing more with that you’ve already got.

Marshall Kirkpatrick also wrote about the announcement, his metaphor for the other ‘connection’ services best describes how they function – ‘it’s letting sites borrow the data – not setting data free’.

But then he talks about Twitter ‘as a platform’, and I think this is where things get interesting. He says:

Twitter is a fundamentally different beast.

All social networking services these days want to be “a platform” – but it’s really true for Twitter. From desktop apps to social connection analysis programs, to services that will Twitter through your account when a baby monitoring garment feels a kick in utero – there’s countless technologies being built on top of Twitter.”

He’s right. Twitter apps do pretty much anything and everything you can think of on top of Twitter, not just the primary use of sending and receiving tweets. I love all the OAuth and open standards adoption – but that’s because I’m a developer, but thinking about Twitter as a platform makes me wonder what kind of effect this will have on the users, how it could effect the climate, even landcape, of social media if, already being great, Twitter is given some real power

People have long questioned Twitter’s future – it’s business model, how it can be monetised, those things are important – but where can it otherwise go and how can it expand? Does it need to ‘expand’? It’s service is great it doesn’t need to start spouting needless extras and I don’t think it will. But in widening it’s connectivity, it’s adaptability, I think could change our perception of Twitter – it’s longevity and road map, the way we use it and think of ourselves using it.

My Thoughts

Irrelevant of Richard Madeley or Oprah Winfrey’s evangelism, Twitter is an undeniable success.

When Facebook reworked and redesigned their feed and messaging model, I almost couldn’t believe it. What was the ‘status’ updates, basically IS Twitter now, and that’s it’s backbone. It’s Twitter’s messaging model, it asks ‘What’s on your mind?’.

I’m probably not the only one who thought this, I’d guess any complaints about this being a bit of a blatant rip-off were bogged down by all the negativity about the interface redesign.

I think Facebook realised that Twitter has become a real rival. I think (and I guess Facebook also think) that as people become more web-savvy and literate to these sociable websites, they want to cleanse.

The great appeal of Twitter for me was, ingeniously, they took a tiny part of Facebook (this is how I saw it two years ago anyway) and made it their complete function – simple, short updates. Snippets of personal insight or creative wisdom, it didn’t matter really, what was important was it ignored the fuss and noise of whatever else Facebook had flying around it’s own ecology (and this was before Facebook applications came around) and took a bold single straight route through the middle of it.

Looking back, a lot of Facebook’s early adoption could be attributed to people growing restless with the noise and fuss of MySpace at the time – Facebook then was a clean and more structured an option.

I remember Twitter was almost ridiculed for basing it’s whole premise on such a minute part of Facebook’s huge machine. Now look at the turnaround.

Now people are growing up out of Web 2.0 craze. A lot went on, there was a lot of ‘buzz’, but a lot of progress was made in connecting things. People now are far more connected, but perhaps they’re over-connected, struggling from what Joseph Smarr calls ‘social media fatigue’. People they have multiple accounts in a ton of dispersed and unconnected sites around the web – true, each unique and successful for it’s own achievements – but it can’t go on.

Twitter for me is streamlined, cleansed, publishing. Whether talking about what I’m doing or finding out information from people or about topics that I follow, the 140 character limit constrains these utterances to be concise and straight-to-the-point pieces of information. The ‘@’ replies and hashtags are brilliant mechanisms conceived to create connections between people and objects where there is almost no space to do so.

I use my blog to write longer discourse, I use my Twitter to link to it. Likewise with the music I listen to, I can tweet Spotify URIs. I link to Last.fm events and anything particularly good I’ve found (and probably bookmarked with Delicious) I’ll tweet that out too.

Twitter for me is like a central nervous system for my online activities. I won’t say ‘backbone’ – because it’s not that heavy. Specifically a nervous system in the way it intricately connects my online life, spindling and extending out links, almost to itself be like a lifestream in micro.

Recently, I saw Dave Winer‘s ‘Continuous Bootstrap‘ which although is admittedly a bit of fun, describes the succession of platforms deemed social media ‘leaders’ (see the full post here).

What I initially noticed is that he aligns successful platforms – blogging, podcasting – with a single application: Twitter. It doesn’t matter whether he is actually suggesting that Twitter alone is as successful as any single publishing form, but it did make me wonder if Twitter, rather than being the current ‘holder of the baton’, will actually be the spawn for whatever kind of Web-wide platform does become popular next.

If the real Data Portability revolution is going to kick in, if it’s on the cusp of starting right now and everything will truly become networked and connected – would you rather it was your Twitter connections and voice that formed that basis for you or your Facebook profile?

I know I’d much rather read explore the connections I’ve made through Twitter. The kind of information I’d get back from the type of people who’d connect in this way would be far more relevant from my pool of Twitter connections rather than the old school friends and family members (notoriously) who’ve added me on Facebook, the kind that just add you for the sake of it.

If Web 3.0 (or whatever you want to call it) is coming soon, I’d rather detox. Twitter is slimmer and still feels fresh to start it out with. For me, Facebook feels far too heavy now, out of date and messy. Maybe I’m being unfair and I feel that way because I’ve fallen out of touch with it and now I visit less frequently, but all the negativity hasn’t done it any favours – and those complaints aren’t unfounded.

Last month I talked about Ted Patrick‘s “Facebook on The Flash Platform“, an Adobe eSeminar discussing development with the Facebook API using Flash. In particular, I pointed to an open source Actionscript API library to work with in the absence of Facebook themselves offering ‘official’ support as they (then) did only for PHP and Javascript development.

This week though, Adobe and Facebook announced a partnership they’d managed to keep neatly under wraps and have now released a new official open source client library for Actionscript 3.

This joint effort is intended to be a complete resource supporting all Facebook APIs, including Facebook Connect, for all Flash and Flex applications for Facebook.

Over on the Adobe’s Facebook Developer Connection, Adrian Ludwig (Adobe) and Josh Elman (Facebook) talk about the library and the partnership. There’s also documentation, example applications, quick starts, inspiration and code.

Adobe Flash Platform - Facebook Platform | Adobe Developer Connection

In his post, Serge Jespers points to a nice quick start by Danny Dura that uses the library to set up a simple connection to Facebook in about ten minutes.

You can tell both Adobe and Facebook are excited about this, adding social elements to games, user experiences or interactions makes them endlessly more engaging, it almost goes without saying. But now that these experiences can be as easily enabled – and in my opinion, enhanced - by Flash, I hope will prove to facilitate some great applications.

It’s equally beneficial for Facebook and Adobe. It means even more applications for the Flash platform and an easily entry point for yet another set of developers to integrate with the Facebook API.

And to help kick that off, Rich Tretola at InsideRIA has announced a new series of articles covering development with the new AS3 library, authored by Mirza Hatipovic – an ambitious 20 articles, from a simple Hello World to advanced PHP and database-supported applications.

I’m particularly looking forward to seeing and playing with the Facebook Connect API – not sure if InsideRIA will cover these – but hopefully whatever I do get up to, I’ll get round to writing about.

Yahoo! have announced Yahoo! Updates, their answer to Facebook Connect and Google Friend Connect.

I’ve spoken about Friend Connect and Facebook Connect a of couple times already as they vie for the mantle of the primary single sign-on for social web applications, but I hadn’t heard anything about Yahoo! offering an implementation on their part – but it turns out to be a pretty good challenge.

They announced on their Developer Network Blog yesterday, that it’s a collaboration with JS-Kit, a leading distributed social network that currently connects over 600,000 sites through powering comments and ratings services. JS-Kit have already got some huge implementations, including sites for AOL, Evite, and Sun Microsystems.

As the JS-Kit blog explains, in this scenario these third-party sites can share user-generated content (e.g. blog comments) directly to a user’s social connections on Yahoo! via the “Updates from My Connections” feed.

This new capability offers a potentially massive new distribution channel for content and a great engine for driving referral traffic from Yahoo!’s global audience. The integration with the Yahoo! Social Directory API enables these sites to allow users to leverage their Yahoo! identity and display their Yahoo! profile photo with their comments. By enabling commenters to use their Yahoo! profile commenting, publishers can build a stronger sense of community at their sites.

Yahoo! have implemented the OAuth open standard to achieve this, a trusted connection to third party sites, not only making users more willing to add content, but by leveraging the social profile data already stored by Yahoo!, makes the commenting and rating an easier process.

This in turn not only means no need for re-registration (cue repetitive form filling), but also a singular, portable syndication of activity can be aggregated on Yahoo! for those users, which, as Marshall Kilpatrick suggests, could then be used by site owners to access verified information about their readers’ profiles and interests.

If this were possible, this could be used to serve more relevant content to those users as well as offer those site owners assurance as to who is contributing to their sites.

Yahoo! talked about their Open Strategy back in October, so it’s good (and about time!) to see some of this come to fruition. They’ve hit the ground running, but the JS-Kit support won’t win this alone – those sites also support Facebook Connect.

I’m more impressed with Yahoo! for consistently championing open standards, as they do with SearchMonkey also, so hope this will expand to other networks in the future. But as much as I enjoy a third contender to the table heating things up, I hope this doesn’t result in three (or more) incompatible platforms heading in their own directions and we’re back to square one.

Ted Patrick has posted a recording of his Adobe eSeminar “Facebook on The Flash Platform” that he presented last Thursday.

Josh Elman, Facebook Platform Project Manager, joins him – offering a little technical history and strategy behind the application platform and Facebook Connect also.

Facebook on The Flash Platform

It’s a good introduction to building Flash applications using the Facebook API. It’s clear that building on the Facebook platform grants developers an equal opportunity to create powerful and successful social experiences.

As Ted and Josh describe, by utilising Facebook users’ social contexts and by the ease of which you can distribute through the social graph, applications can generate a huge amount of traffic – and as Josh puts it, developers can profit wildy. ;)

Ted gives a simple overview of the architecture of a Facebook application, the various application states and talks about FBML, Facebook’s XML mark-up – and shows how to build a simple single-component Flex application that really demonstrates how easy Facebook have made the information retrieval possible via the API.

The Q&A is worth listening to (it starts around 37 minutes), Ted and Josh discuss important development aspects outside of the actual coding – how hosting is managed, handling session keys and such.

But Ted also points to a promising looking Actionscript library designed for Facebook application developers, simply called The Facebook Actionscript API - which definitely sounds worth checking out (no pun intended).

As yet, Facebook only ‘officially’ support their PHP library, but continue to work with developers in the community to support the other languages. Josh claims this will only improve over the next couple of months and through the year – hopefully (it sounded) to develop similar ‘official’ library counterparts.

Ted’s also posted his Facebook on The Flash Platform sample files.

Everybody’s out on the run tonight but there’s no place left to hide.