geek!daily

... it is by will alone i set my mind in motion ...

Live Blog: Graphing Social Patterns, Day 3, Opening the Social Graph

I took a session off to catch up on some other bits. Back in now.

OpenFaced panel: Opening Up the Social Graph - Tantek Celik (moderator), David Recordon SixApart, Chamath Palihapitiya Facebook, Joseph Smarr Plaxo, Ted Grubb Satisfaction Unlimited

Dave McClure "threw down the gauntlet" to Google and Yahoo: if you want to participate in open standards, show up.

[I've followed Joseph a bit as he's been talking about Pulse, a social network aggregator. While I don't know Ted, I know several other folks at Satisfaction via Christina. </disclaimer>]

Joseph led with a Pulse demo. Maybe that's what everyone will do, but I'm not diggin' it. Damn that boy talks fast.

David Recordin talks a bit about his role as kinda the gluemeister at 6A, standing among and between all the 6A products and looking at smart choices for them all. Also coming to this problem from the vox.com perspective. He also lent the laptop folks are demoing from.

Ted shows how Satisfaction is importing user profiles via microformats. MFs are supported all over the place. [me: we should add them to PS] [CW agrees]. Showed how to get the MF profile data from flickr. It also autosyncs, inheriting changes. [me: this lends an interesting model for connecting disparate graphs and makes the connections valuable]

Chamath got pinged on where he thinks open social graph fits ... and almost bit, but stepped back to present FBs take on social graphs. He asserts they believe the world has one social graph. FB has to make sure they make their version of social graph as open as possible (viz they had APIs for social graph data 6 months before FB platform). They intend to get more open over time. Urges to remember that they had to lay a foundation of privacy and respect before people would be comfortable sharing things like name, location, phone, AIM, etc. Scale of this effort is going to be in years, not months.

6A: David Recordon
FB: Chamath Palihapitiya
PX: Joseph Smarr
SU: Ted Grubb

6A: consider any obfuscated object (hashed email) same as the underlying object — if they don't want to share email, don't use hashed email as an identifier.

FB: If you can combine a good privacy model with a graph that remains relevant as it grows, you'll allow sites to remain relevant ... unless users decide to choose a different site. In the end, we're at their mercy. [me: as it should be]

PX: Everybody does better when users are in control of their information. http://opensocialweb.org/ User Bill of Rights [me: shades of Ira Glass's commentary about Ten Commandments] It's not a tech problem; it's more a social, political, privacy problem which is (hopefully) a better problem to have.

MOD: What are the problems for the OSG?

SU: Keeping it as simple and managable for the user
6A: Defining the problem is still the problem. We need to take a step back to see what consumers want. Dave Winer pointed out that they don't know what OSG means ... we need a consistent model, offline and online, which breaks it down in their terms (I have friends, etc.). Embody social conventions of the offline world: if you have the email address of someone in my contacts, you can have their phone number (you'd email me and ask, I'd say yes, etc.)

MOD polls the room for who's members of multiple nets, decreasing hands as he raises the number of nets.

MOD: How much does this matter?

[missed the answer. was short and felt unsubstantial]

PX: For the people I know on FB (a subset of all) I can get some information. Just like in the real world people want to opt in or out

SU: We want the conversations going inside Satisfaction, but we also want people [companies?] to be able to take those conversations to their own websites. We couldn't do that as a FB app.

FB: Info expires because we're custodians of the information. We don't own it.

6A: 24 hour timeout of data you get via the API for more than 24 hours. [me: be sure to segment and age that data]

FB: If they're engaged and using you regularly you'll always have that fresh info. [me: this sort of introduces aging memory to digital info]

Q: What are you all thinking about OpenID?
A: Nearly all do or are getting it running. SU is using MF data but not publishing it?

Q: What about the "Peace and Love" or "Platform Wars" Tim O'Reilly spoke of this morning?
6A: Ask again in a year.
FB: We intend to keep providing what it takes to empower developers to engage and please users.

Q: What does "open" mean?
PX: You're open when you free your data.
SU: Allowing users to own their data.
6A: Allow users to freely manipulate and remove their info.
FB: Enable users to decide how they interact with people.

Q: FB's API limits access to some data. That's at odds with being open.
FB: Our API is evolutionary. We want to keep our users data protected and iterate carefully.
6A: We're not yet sharing info via microformats as we don't think we've yet set the stage for users to understand that the info could be regarded as their identity and how it could be shared/used.

Q: Mark Zuckerberg said FB would deliver openID and microformats when users want it. Who wants it?
(lots of raised hands and pics)

Q: FB wants one social graph ... don't you have to open it up?
FB: We think there's one in the world, we're trying to model it accurately and efficiently.

Q: Bebo and others will likely release APIs which resemble FB. What do you think will be the open app model?
FB: Clearspring (?) already exists and embodies the model of build once publish many, which gets the details out of the way and allows companies to focus on engaging users.
PX: Less true of stitching the OSG across many sites. It's not a theoretical argument at this point.

MOD: What's next in terms of supporting OSG?
PX: Looking to help you syndicate your friends list across many sites.
SU: Implementing OpenID and syncing hCard
6A: Build in tools to allow our users to control who they interact with via their content.
FB: We want as much info to flow across the graph and touch everyone in the world.

[Interesting thought: mark all information with a value of how personal it is to you (think: slider with 3-5 presets, a la "more of this/less of this")]

Chamath was, I think, the most thoughtful and well-spoken. Joseph obviously has a billion ideas screaming around in his head waiting to get out. No slight to David or Ted implied or intended. And now I'm out, heading to see Joel Spolsky in Emeryville.

2007.10.09 in Facebook, Graphing.Social, Social Networks | Permalink | Comments (1) | TrackBack (0)

Live Blog: Graphing Social Patterns, Day 3, Facebook App Design: Elements of Style

Time for Jia Shen. He's a good speaker with dense content delivered well. This should be fun.

Jia Shen of RockYou!

RockYou does many popular FB apps as well as widgets all around; more than 10% penetration in all leading social networks.

FB apps are growing ~7x faster than widgets elsewhere.

Concept and Design

Think mathematically

Gauge target audience: get specific. how big is it? [me: he touches on TAM/SAM/SOM without knowing it]

Model which viral channels you'll be leaning into: invites? notifications?

Your app name is a viral channel: they add you, it's in their minifeed, newsfeed, and on left nav.

Why and how will it spread? How will people share it and share within it? Design your callouts from there.

Invites: for each install:

  • User invites some people
  • Some pct open invite
  • Some pct who open invite install it
  • Some pct who install will uninstall

...must be bigger than 1, more like 2. Over time, this will make growth.

Validate the use case -- typical users will use it?
Test call to action -- will they click?
Validate viral model -- any broken links?

Dev process should by hyper-agile with tons of instrumentation. Measure everything: invites, clickthrus, demos, minifeeds, etc.

Prepare for A/B testing. You're releasing fast, so you want to be able to change things around radically and quickly.

Site stats (google analytics and quantcast again)

Launch!

Phase it out there: make sure it's totally working before you make your splash (1-5K users will give good infor for tuning) then go big.

Promote on ad networks for guranteed performance and hitting your target audience. Tune the ad as you see results.

Ad nets on FB: RockYou (of course), SocialMedia, et al

Tuning

Validate the viral model: identify the total multipliers and look for weaknesses

Find new channels: how are users usint it? did you miss something? Integrate with other apps (viz. WereWolves, Vampires, Slayers, etc)

Tune your underlying channels: make sure your notifications aren't spammy, that you're targeting well, etc.

Monetizing it

Maintain comfortable growth and keep tuning, seeking more engagement. Encourage people to interact in your apps.

Engagement creates value for you to capture.

Some rehash of what I've heard from him before (no surprise) but some new stuff, and interesting to see his talk evolve.

2007.10.09 in Facebook, Graphing.Social, Social Networks | Permalink | Comments (0) | TrackBack (0)

Live Blog: Graphing Social Patterns, Day 3, FB Apps with ASP.NET, Silverlight, and Popfly

I'll be really thin here, splitting attention between session and some code. Also, it's more demo based, so this is largely my comments and inferences rather than Dan's talk.

Aiming to enable non-developers with Popfly.

Users are the stars. The "best" users should be treated like rockstars; get to know them and cater to them.

Embrace self-expression. Be personal.

Entertain. Evidently people want to earn points to buy virtual poop (example from a session I missed yesterday)

For devs: Free, client-side file hosting, works with open source AJAX. You can fully control the code.

The general interface is a node-based graph where you connect outputs to inputs; for my Anim/VFX friends, it's like Shake but with a white background and nodes look like spinny cubes. Ooo. ;p

You connect blocks and can see the results interactively. Good iterative development workflow.

It does dynamic resizing, so making it very small or very big is straightforward.

Building a block for it is pretty straihgtforward; you can clone others as a start, or start from scratch. It's just javascript underneath.

Also makes it easy for users to skin or mash things. Great engagement.

He shows you can use scriptaculous and, off-hand, says "it's an open-source library used on Apple.com" ... almost like a "see, it's not part of our empire, really"

All built on free frameworks (silverlight, et al) so cross-platform, cross-browser compatible.

2007.10.09 in Facebook, Graphing.Social, Social Networks | Permalink | Comments (0) | TrackBack (0)

Live Blog: Graphing Social Patterns, Day 3, FB Platform, Apps, Metrics

We're now 50 minutes behind schedule. Woot! Also, Dave McClure "dated himself" by mentioning back when he was programming VB was the rage. Made me chuckle.

Platform, Apps, and Metrics
Dave Morin, Facebook

FB is a tech company.

[I stepped out for a moment]

Concentrated pretty heavily in 18-24, but outside of that bias it's fairly in line with average demographics.

More than 50% users return daily. They like this; they want to be a utility. 60B pages per day, ~6th most trafficed site. They watch this but try not to pay too much attention to it.

FB doesn't want to own the social graph, just to map it as efficiently as possible.

They try to focus on allowing people to represent their identity online well.

Then, they try to make it really easy for people to communicate, both 1-to-1 and 1-to-many. It strengthens relationships.

They've grown ~3%/week. This has made the social graph stronger. The 43-millionth user gets the same utility from the social graph as the first [me: I'd argue more value, but he's being modest]

FB is the largest photo sharing site on the net, because it ties into the social graph.

FB events was done in a night. And it's more than 3x bigger than Evite.

FB Platform: Deep integration, Mass distribution, and New opportunities

What's it mean to be open when based on user data? [he left this hanging]

They want anyone to be able to build an app as good/bad as theirs.

Three integration points: Profiles, Full Pages (canvas pages), home page

[he walks thru the elements of profiles, etc. stuff you can get better explained in the wiki]

Best practices: (looking at photos)

context is king.

Canvas page: it's really important to represent the social context around your application. Show relevant, up-to-date content through the lens of your friends.

Content page: If a user adds a comment, they've bought in and are more likely to upload content, etc. Make sure you engage users as fractionally as they care to; make the threshold very low.

People aren't using the minifeed enough. Every time a user acts in some user/group's direction, put it on the minifeed.

Media in the feed updates (e.g. pix) drive engagement.

FB's opportunity composed of growth, engagement, and monetization. The platform makes growth and engagement as straightforward as possible.

fbFund was launched to help seed the community with grants without taking equity to help folks "get out from under the man"

How's it going: over 5K apps, over 100 new apps a day, over 90K developers, 80% of users have already adopted one or more apps.

He made good time; we're now only 25 minutes behind schedule.

2007.10.09 in Facebook, Graphing.Social, Social Networks | Permalink | Comments (0) | TrackBack (0)

Live Blog: Graphing Social Patterns, Day 3, Keynote

A late start, thankfully, as there was horrible traffic this morning.

The Facebook Application Market
Tim O'Reilly (wearing a Zimbra t-shirt)

What they really do at O'Reilly: change the world by spreading information to innovators through books and conferences

Watch the alpha geeks to see where the technology is headed (e.g. pringles can wifi antennas implies ubiquitous network, screen-scraping implies web services, the pedal-powered internet implies alternative energy focus)

Social nets are all hacks working around not *really* knowing who our social network is (my phone knows, but I have to tell the app)

http://radar.oreilly.com/research/reports/

(Tim presents a lot of slide andvery fast ... and mostly image based. Good choice)

87% of FB usage is 2% of the apps, which could be very bad news for all the excited app developers (take it with a grain of salt; it's early in its life ... could just be that you've got to be wicked viral and really quickly)

FB app uptake is not even a power law distribution (?) nor log-log.

Many apps cluster around the same users, competing for htem.

Top 5 categories of apps ranked by active users: sports, gaming, chat, fashion, fun (~10%)

Top 5 by number of apps in category: fun, messaging, gaming, video, chat

Top 5 with > 100K users: messaging, dating, gaming, video, fun

Top ten are predominantly is pwned by slide, RockYou.

Top apps adoption rates have slowed

A Web 2.0 Refresher

It's all about openness, sharing, blah, blah, ... and peace and love. ;]

Systems that harness network effect to get better as people use them.

Building a collective db: pay folks to do it (early Yahoo), get volunteers (Wikipedia now), architect it into the heart of the  (P2P file sharing, Google ... and FB)

Harnessing collective intelligence: web2.0 companies are building collective databases whose value follows the number of participants.

Remember: the web has always been about users creating content.

Google's breakthru was finding meaning in all that original, chaotic UGC and turn it into valuable real-time, user-facing services.

Wasabe (and Mint) can look at how you spend your money as an implicit action aka vote. [me: Interesting thing to aggregate]

What's the equivalent of intelligence when filtering my feed? example: geni.com knows about family, company directory knows who's working at O'Reilly, amazon knows who's written books for O'Reilly.

The phone company knows who your friends are: who'd you call and who called you and how often and such. They won't do anything with it (c'mon, they're the phone company). It'd be interesting to get into that data. They're doing it with email a little; Xobni is doing it a lot.

Web 2.0 is about the future of the Internet Operating System (data subsystems)
Location, id, time, products, media types, relationships, price, tags ... what else?

Platforms beat apps every time: Lotus 1-2-3, WordPerfect, Netscape all got beaten by Excel, Word, and IE

Two types of platform: One Ring to Rule Them All (CW: Two keynotes in a row!) or Small Pieces Loosely Joined. The latter seems the robust model; no one will own it all, but we can all join in.  6A is opening the social graph (David Recordon), XFN microformat, etc.

Learn everything you can from your users. If google was a restaurant they'd be weighing every unfinished plate, adjusting portion sizes, etc.

Make your app get better in proportion with the size of your userbase, not just more busy and more crowded. FB is struggling with this a bit.

Make sure you're getting a steady diet of data. If data is the "intel inside" of web 2.0, what data do you own? Make sure your apps are gathering interesting data.

Offer compelling user-facing services.

Be sure you offer more value than you worry about capturing. Does platform give me and my users control? Users are smart, developers are smart.

What I want from the social graph

Reflect my real social network. 5K address book entries, hundreds of FB friends, mostly folks reaching out to Tim. [me: I bet he says his phone knows who's really his friend]

Help me manage those contacts (how to reach them, how they like to be reached, how they're doing) including my friends, acquaintances, and even people I don't know at all but have heard about and want to follow. The amount of info I need is inversely relational to how close we are.

Help me group people meaningfully.

Relationships are asymmetrical

Fine grained control over what to see vs. not (e.g. show me their photos and blogs, not their tweets, etc)

Discover interesting people

Look at geni.com: a special purpose social network that provides excellent reference material for both people and apps.

On FB's relationship offerings when acknowledging a friend request with Steve Case, to whom he'd sold a company: "We hooked up? *laughs* Actually, that probably is accurate ..."

Freebase/MetaWeb is doing interesting things with a structured taxonomy of info.

What does the person want to display about themselves? What of that do I wish to consume? I'd almost want to rearrange their profile to suit my purpose. [me: this is becoming a theme -- profiles are for the consumer/viewer, not the person]

Jaiku was acquired by Google.

Your phone knows where you are. How often have you called someone and found out they're in a different timezone ... or in your timezone [me: gathering intelligence about who's doing what according to where they are/were, viz. Jaiku founder/developer spending a lot of time in Silicon Valley lately]

"I'm an inventor. I became interested in long term trends because an invention has to make sesne in the world in which it is finished, not he world in which it is started." — Ray Kurzweil

Think out to the possible future and design for it, not for now.

Q&A

Q: You mentioned you study history, and Microsoft. They dominate a developer community. Are machines the new developer, or is it still people?
A: It's still the people, though machines are doing a lot more dynamically in the mix. If you look back at the history of MS, ... the real test is whether a large number of developers are able to make significant money on the platform and survive. At the end of the day MS absorbed its dev community, and that's when it went stagnant. ... whoever's the winner of the web 2.0 wars will end up in that same spot.

Q: In regards to the criteria you'd advise for startups, on your own domain vs. on FB, etc.
A: I'm not sure it matters. One of my fundemental beliefs about web 2.0 is that no matter where it is it's about distribution. Depending on your biz model more distribution may be better. The companies on the top are using all of these well; their fundemental biz is developing relationships with their users thru as many contact points as possible. (Incidentally, people seem to be choosing either web or FB; only about 5% overlap according to someone from iLike). App should be focused on the user and interaction with them. [Be mindful of what data you get vs. waht FB gets]

Q: You seem to be an advocate for the open social graph . [...] Isn't FB going to fight tooth and nail to resist their users moving out into the social graph [difusing their lead]?
A: There's a change in the dynamics. Google's a good example: they own some private data, but have the same public website info as any other search engine. You can share an awful lot and still differentiate. If Geni and FB were interoperating, FB could know a lot more useful things. There's a lot of value in this openness; you're actually getting more than you give up in most cases. FB has more to gain right now by the openness; it'll enable them to mine more and more datas. All the trends say that openness is good for you.

Either I'm running slower this morning or Tim talks really fast. Maybe both. Really good keynote, and worth seeing Tim talk. Meanwhile, I find that I miss things in the presentation when I live blog so I'm going to ratchet down the level of detail. Apologies in advance.

2007.10.09 in Facebook, Graphing.Social, Social Networks | Permalink | Comments (0) | TrackBack (0)

One Social Graph To Rule Them All? Not Hardly.

On the heels of my corny-but-very-workable galactic identity metaphor, I'll risk another post on identity to follow up on something said by Reid Hoffman in his keynote today at the Graphing Social Patterns conference. It's being picked up all over the blogosphere: One Social Graph To Rule Them All?

Reid's conclusion was no, there won't be. As he themed his talk, it all comes down to use cases and, at the end of the day, those use cases inform what problems you're solving and how you go about solving them. Each solution you implement closes some (hopefully less interesting) doors and opens some (hopefully more interesting) ones. Just like with people, the choices you make along the way define who you are. Mercator, Lambert, they served different purposes.

He's right, and there's another reason he didn't really touch on: sometimes folks don't want the graphs to overlap, or want to actively hide any overlap. One example I've been quoting in conversation lately is the S&M Grandma*. She really, really wants those graphs to be separate. Other sides of the world kinda separate. She wants you to think that Greenland is Iceland. Believe it.

(I love blogging; it makes me do research and find great sites like Radical Cartography and read cool things in Wikipedia)

* Rule 1, remember?

2007.10.08 in Graphing.Social, Identity, Social Networks | Permalink | Comments (1) | TrackBack (0)

Graphing Social Patterns Geek Day Tomorrow!

Tomorrow's the big payoff for me at Graphing Social Patterns — it's "Apps and Developers Day," yay! The four talks on either side of lunch look golden (I'm becoming a big fan of Jia Shen of RockYou). I got a quick demo of Microsoft's Popfly today from Dan Fernandez, so I'm looking forward to hearing him talk about it in more depth tomorrow.

I'll pick up the live blogging again then, but from what Christina says, it's really hard so lower your expectations.

2007.10.08 in Facebook, Graphing.Social, Social Networks | Permalink | Comments (0) | TrackBack (0)

Live Blog: Graphing Social Patterns, Day 2, Keynote

The Business of Facebook Apps
Reid Hoffman, Founder of LinkedIn

Overview

Social Nets and Platforms
* Friendster kicked it off in 2003, conversation around it was very feature oriented
* Now we have FB, MySpace, Ning

Social Nets v. Professional Networks
* Difference in context

One graph to rule them all?

Evolution

Social nets started as a feature

MySpace ecosystem grew out of oversight: didn't turn off javascript includes

Ning came along with a set of tinkertoys to make your own flavor of social net

FB is the first platform based on a real, broad social graph

Social net takes patterns of social interaction from real life to the web in ways that enable or enrich the experience ... can enable applications which can really change people's lives.

FB Newsfeed == many-to-many messaging

Key differentiator: FB allows you to acquire customers about whom you can know interesting things and message them (and through them, their friends)

FB and LI embody different use cases.
* Search by name on either, you get something that suits the basic context of the app
* Search for "open source expert" on either; FB renders not much, LI is more focused on finding someone of that expertise
* Finding companies for partnerships: not really an FB thing.

The features and general behavior of users in FB vs. LI tends to highlight the different contexts.

SEO: what do you want people to find when they google you?

Trivia: Reid rereads Lord of the Rings every few years.

Q's: is there only one social graph? is there one which contains all different sorts of relationships?

Reid: there will be multiple social graphs based on "the semantics of the connection"

Geek/Blogger dream: one graph and tag everyone in it.

(is it important to see all graphs integrate?)

A sufficiently large graph can provide the foundation of a successful platform; one big graph not required

Possibilities

Current apps: communications, games, music/pics/movies

Future likely holds iterations of today's successes

Interested in seeing where friending apps (Top Friends) and honesty apps (Questions, etc) go.

Enabling platform and luring heaps of developers results in getting to that 0.5% of interesting/useful ideas.

With no limits on how many apps get installed and nothing urging users to uninstall apps, you have to work to rise above the noise. Number of installs becomes uninteresting; number of daily users (engagement) is interesting.

FB apps that don't work so far: biz, politics, money

What's the second act? How do you know it when you see it? [me: you instrument, iterate, play, and learn]

Economics of FB apps parallels the internet gold rush -- cpi installs and advertising inventories/ad network aggregation; these lead to interruptive experiences (crappy ads, etc) and unsupportable models like incented installation or "installations financed by future hope"

Low cost apps with sufficient appeal will survive, as will apps which fit the FB use case which will further define FB's use case.

Still up in the air: any new use case (anything you try to sell others will give away to acquire customers), major apps

Stickiness and engagement will always matter.

FB is redefining communication patterns based around sharing. Their photo sharing is particular genius with their version of tagging.

What's the future of discovery/search on the web? Your social network will certainly be a piece of this.

Ecosystems have microcosms; it's part of the diversity that akes it interesting and sustainable.

Summary

FB will be the entry-point for college-age interesting entrepreneurs

Interesting ties between existing sites and FB app (iLike, Flixter)

Economics will be an issue: keep it on the cheap

Constant newness required for entertainment apps: that's the current model for engagement

Q&A

Q: Why isn't LI providing a FB app to [help us merge the two graphs]? (noted that others, CraigsList, et al also don't)
A: LI will likely provide some FB apps. Biz apps have almost no traction. Bumperstickers, an entertainment app, is one they wrote that has fair traction. Just because you build it doesn't mean people will jump in (viz profusion of search bars yet most still search from Google or Yahoo). Economics of opportunity development haven't yet made it possible.

Q: You mentioned a few things that hadn't worked on FB platform thus far. Do you believe that ecommerce will someday come, or do you believe that social networks will exclude commercial interests?
A:  There will be social commerce on the web, but it might be a year or two off. It'll likely come through sharing (media, etc). Monthly, the most interesting apps on FB are based on communication; the trend will likely continue. There's always the chance of something new.

Q: Curious with your position as angel and developer in the space, [how would you recommend someone try to build a social media business]? (references to FB-only, rich experience elsewhere, both ... ?)
A: Right now, the FB+rich website model seems most interesting. There will be angel things funded on FB, but VCs are looking towards returns which FB apps haven't yet proven out.

2007.10.08 in Facebook, Graphing.Social, Social Networks | Permalink | Comments (0) | TrackBack (0)

Live Blog: Graphing Social Patterns, Day 1, Geek Track, Late Afternoon

Despite being individually wonderful, fresh-popped popcorn and hot coffee don't go together at all. Bye bye, popcorn.

Jia Shen and Raymond (?) from RockYou! talking about launching and distributing your FB app. RockYou are the folks who brought Werewolves, Vampires, and SuperWall, as well as GlitterText.

Widgets for MySpace, Bebo, Friendster, are all like clothing -- self-expressive, no user interaction.

Facebook supports this, but also offers user engagement. It's like a MMORPG vs. the single-player games of the others.

Networks with engagement gives you ~7x more distribution.

(He showed quantcast rockyou.com web statistics)

RockYou is helping monetize now by offering an ad network on FB, both for use by developers to monetize their apps as well as seeking good matches between their apps and advertisers (e.g. Zombies & Resident Evil movie)

New application setup page walkthru:

Add FB Dev app, create a new app, *make sure it's checked on to allow folks to add it*. You can limit that to developers only further down the config.

Picking a good name: expressive, short, and catchy.

Callback URL is your server.

Interaction is: FB App page -> your callback URL -> returns text (FBML) -> FB puts it on the page

You can do iframe within FBML, so there's little advantage to doing iframe instead of FBML.

Developers of your app will be able to see debug messages (as comments in rendered HTML).

Post-Add URL: where you go when someone adds the app. Default is profile page; this is a great opportunity to move them into your app's design flow -- help them take the next step

Post-Remove URL: Isn't called in user space, but at backend.

Adding left vs. right: right side's wider, left will likely place you higher.

*BE SURE TO SET DEVELOPER MODE* They have a dev app with 300K users because they forgot. You don't want to deal with this.

Side Nav URL: set this! users like to nav to the app from there; if you leave it empty, you don't show up.

Private installation is good for dev mode -- don't announce you're adding your test/dev apps.

Make sure to have a banner/splash/screenshot for the app when you're ready to submit it. It shows on the profile page.

insert much configurational fun as we all make dirs on the rockyou dev server. If you want to see what my "app" is up to, it's here.

Each request sends the following pieces in the session:

  • fb_sig_session_key: session key (hopefully infinite)
  • fb_sig_user: uid
  • fb_sig_added: boolean 1/0, is it added
  • fb_sig_time: current time, float sec since epoch
  • fb_sig_friends: comma sep'd list of uids

The wiki is a treasure trove. Keep it open all the time.

Tracking

You need to know you're tuning your app in the right direction. Here's some good stats to track:

  • Infinite Sessions
  • Page Views
  • Installs/Uninstalls
  • Invites Sent/Opened

If you have infinite session key, you can look at their info for as long as you're installed. Allows you to regen their profile regularly, etc.

Use Google Analytics, Quantcast to capture stats.

Not sure if FBJS allows Google Urchin yet.

Google Analytics doesn't manage to capture good stats (gets bad total uniques/page views) sometimes if you're doing "fancy things" where Quantcast is very straightforward, brute-force and rock-solid reliable.

Tracking via post-add URL: how are you getting installed? day-to-day growth is important for sensing how your user community is reacting. Set "next" parameter (&next=...) and send to something that reacts dynamically to that param.

Tracking via post-remove URL:  gets called at uninstall; just be sure you're being pinged by FB and catch the user id. You don't have to ditch their info, but note that they've uninstalled.

Debugging

You must have a dev app and a production app.

FB Dev blog explains how to make test accounts which won't be removed.

Use cases: They're looking at your app but haven't added; they've added; they're looking at someone's profile and have/don't have your app, .... Be sure you consider them all.

Look at HTML for debug info; it shows you everything FB set and sent in a comment.

Firebug: use the console to see the AJAX calls to be sure that the request went out right and got a good response.

Test on all browsers, including IE 6 & 7. Use Fiddler (Windows only HTTP debugging proxy) to see all the calls in IE.

Be sure your browser isn't caching content you expect to be updated.

MS Script Debugger for debugging JS. Allows you to break into JS and step thru.

File logging, email notifications in your app: you'll see invisible errors and track production issues.

Invites

FB gives multi-selector for picking your friends.

fb:request_form tag gives you an easy

After the user clicks the action in invites (either to do it or skip it) you can take care of them (preview, thank, etc). FB tells you who's been sent an invite (friend_ids)

Profile FBML is cached at FB, as are images. You can use API to invalidate cache data.

FB:Refs are also cached.

 

FB carries the bulk of the load. Usually scaling is a DB issue on your side.

Amazon EC2 and S3 are very useful for doing big FB apps.


And then we ran out of time. Jia and Raymond ran a tight session. It kept moving, they actively made sure everyone was moving along well, and I actually got an app running. They kept it really simple, from Hello World to some basic essential concepts, no DB, nothing unnecessary. An ideally structured hands-on workshop.

2007.10.07 in Facebook, Graphing.Social, Hacking, Social Networks | Permalink | Comments (0) | TrackBack (0)

Live Blog: Graphing Social Patterns, Day 1, Geek Track, Post-Lunch

Ahhh, there's nothing like a conference box lunch. Thankfully so.

The example app Tyler wrote to share: Why Are You Awesome? (and source and db schema ql) (will also be posted at Tyler's blog)

Store session keys in db and you can use them as unique user ID for stats, being sure the user's got the latest update of your app, etc.

All the internal FB API calls are built on top of FQL, so writing your app in FQL where possible will give better performance. Ari: "The goal of FQL is not to hide any of the complexity of what we're going to have to do [...] Just to be clear: these queries aren't just run on a DB server; they're processed first."

FQL supports nested selects; they're resolved as individual ops, innermost to outermost.

Template stuff in a separate file as just FBML. (fbml.inc.php)

Interesting files:

  • index.php: the main landing for users
  • logic.inc.php:
  • fbml.inc.php: template stuff including mock AJAX

Mock AJAX can be done from a link with three properties:
<a clickrewriteid="<div_to_rewrite>" clickrewriteurl="<query_url>" cickrewriteform="<form_from_dom_to_send_data_from>" ...>FOO!</a>

Don't call require_login for mock AJAX calls. Duh.

Mock AJAX returns are quite literally pushed into that div, errors included. Catch exceptions aggressively.

Security-wise, don't access the fb_sig_{user,profile} . You can use Firebug to check how secure your calls are ... if you could use Firebug to change the internals of the call and post as someone else, etc, that'd be bad, now, wouldn't it? (Tyler did this once to Superwall a bunch of people as Mark Zuckerberg, inviting them to go shopping for NorthFace jackets. Go figger.)

Make a legit FB test account each for your dev, staging, and live apps. Make your dev, staging apps visible only to you or only to a network of folks who're helping you. You really don't want your dev server buried by viral adoption.

Tyler pushes with rsync and --exclude fu to keep things configurationally close.

Integrating with your existing app:

  • Add a column to track their FB id with your user id
  • Notice cookies (FB, yours, etc) and let that influence your app's behavior

Profile Action Links (the links beneath profile pix) is more a function of the viewer than the person whose profile is being viewed.

Remember that co-developers can remove you as a developer. Choose wisely. You're limited to 5 other than you.

All in all, was less of a "Let's make an app!" and more "Here's a tour of an app." That's fine; I wasn't looking forward to reliving PHP4. Next: Launching and distribution

2007.10.07 in Facebook, Graphing.Social, Hacking, Social Networks | Permalink | Comments (0) | TrackBack (0)

Next »
My Photo

About

 Subscribe in a reader

AddThis Social Bookmark Button

Categories

  • Administrivia
  • Blogs
  • Books
  • Business
  • Computing
  • Data Portability
  • Economics
  • Electronics
  • Engineering
  • Environment
  • Facebook
  • Food and Drink
  • Fun!
  • Games
  • Graphing.Social
  • Hacking
  • History
  • Identity
  • Leadership
  • Linux
  • MacOS X
  • Management
  • Metadata
  • Open Source
  • Organization
  • Parenting
  • People
  • Photography
  • Privacy
  • PublicSquare
  • RailsRumble
  • Reputation
  • Ruby/Rails
  • RubyConf 2007
  • Science
  • Social Networks
  • TagEverything
  • Technology
  • Testing
  • Thinking
  • Trust
  • UI
  • Web 2.0
  • Weblogs
  • Writing

Archives

  • April 2013
  • March 2012
  • August 2010
  • October 2009
  • September 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • January 2009

Words on a Page

  • Carol Tavris: Mistakes Were Made (But Not by Me): Why We Justify Foolish Beliefs, Bad Decisions, and Hurtful Acts

    Carol Tavris: Mistakes Were Made (But Not by Me): Why We Justify Foolish Beliefs, Bad Decisions, and Hurtful Acts

  • Steven Gary Blank: The Four Steps to the Epiphany

    Steven Gary Blank: The Four Steps to the Epiphany

  • Chip Heath: Made to Stick: Why Some Ideas Survive and Others Die

    Chip Heath: Made to Stick: Why Some Ideas Survive and Others Die

  • Patrick M. Lencioni: Silos, Politics and Turf Wars : A Leadership Fable About Destroying the Barriers That Turn Colleagues Into Competitors

    Patrick M. Lencioni: Silos, Politics and Turf Wars : A Leadership Fable About Destroying the Barriers That Turn Colleagues Into Competitors

  • Marc Ian Barasch: Field Notes on the Compassionate Life : A Search for the Soul of Kindness

    Marc Ian Barasch: Field Notes on the Compassionate Life : A Search for the Soul of Kindness

Pages

  • If
  • The Tagline Graveyard