Stemming out of an heated conversation about who knows what, an idea was born. Jesse and I decided to hold off client projects for one day (just one, calm down!) and set out to build an entire Facebook application from scratch. We had tossed around different ideas in the week before, but by the time we set marker to whiteboard on Monday morning, we had locked down an idea – Facebook friend-based statistics. Jesse is a huge fan of data visualizations, and I like discovering information and patterns out of existing data that I didn’t realize.
So we started from scratch, and by the end of the day, we had the wireframes, full design and a functional version. Jesse was blogging during the day about it.
And now, it’s a full app! Say hello to FriendCompare! We still have a LOT more we want to do with this – even at 1 AM the next morning, Jesse and I were on the phone brainstorming on different things we could do. However, we had to cut it off somewhere!
Development-wise, the application didn’t turn out to be as easy as we thought it would be :-(. Hence why, for the past week, among with working with all our clients, I’ve been working like crazy to get it out.
Some Development Notes:
- Having all the information about the users – their friends, events they attend, education information, is AWESOME – and digging out the interesting nuggets of data poses a really cool challenge.
- FQL, Facebook’s own version of SQL – the language used to access information from just about every modern day database – gives you access to what you think would be a great wealth of today, but also poses HUGE roadblocks, besides the privacy restrictions. You would think that for a statistics application, you would need lots of standard SQL functions like COUNTs and JOINs, but as Facebook had neither, we were left pulling huge amounts of data down onto our server and analyzing it there. This makes any good web developer cringe in pain.
- Additionally, Facebook’s API is horribly slow. If you try to make more than a couple FQL/API calls, Facebook starts timing out, rendering the application useless.
- Enter Preload FQL. Rather than you calling the API from your server, you can specify ahead of time what information you’ll need from the Facebook databases, so when Facebook calls your application, all the data you need is already there. However, developing in that method tripled the amount of time necessary.
- We needed a LOT of different pieces of information, so bearing in mind all the above issues, it took a lot more than a day’s work to get it done.
So, in hindsight, maybe this particular idea wasn’t the best to try and tackle in a day. We were offered an existing codebase, however I turned that down, as it seemed a better decision at the time to write from scratch.
Thanks to everyone who helped out, including Eric and Jay from Lookery! Not to mention all the people who blogged about it and sent messages of support, and our clients for letting us take the day off!
Zvi — thanks so much for rocking this with Jesse. As much as I want you two to be doing client work all the time, I understand the need — and importance — for you to have a little fun, think expansively and be geek-boys. *Hugs* – Leslie
I can’t find FriendCompare on Facebook. I get an error when I follow the link.
@Leslie – Thanks!!
@Tim – bizarre… it should be working… http://apps.facebook.com/friendcompare maybe?
Just installed. Nice job guys!
Thanks Jay!!
Experimentation like this can often lead to wonderful new creations that benefit everyone in ways the creators never expected. Keep playing with the technology, the creations always justify the time spent.
Wow, the application is absolutely beautiful and extremely interesting. At first glance there seem to be a few bugs, though. Let me know if there is a good place to list the issues I come across. Great work guys.