On the day-job front, I’ve recently joined the team at Clearspring, a distributed app/content/widget startup in the area. I am psyched — they’re well-positioned, smart, and have a solid model and big customers even at this early stage. Check out the site to learn more, but as you know I’m a big believer in high-value infrastructure for the distributed web, and think Clearspring has the right idea. Well, now that I work there, I guess I can say that I think we have the right idea.
I’ll be heading up the developer platform outreach side of things, and blogging at the Clearspring Community Blog. Drop by if you’re into it.
Heard these guys on KCRW yesterday. Specifically, on an always-great show called Metropolis. If you’re into mashups, doesn’t get much better than The Arbiters. Lauryn Hill, Gimme Shelter, Mercy Me, holy smokes.
So the suburbs have their advantages, and I guess I live close enough to DC proper (about 2 miles) that it still feels sort of metro-like. I miss NYC, but at least my kids can go to a good school and play on some grass without having to ride the subway for 20 minutes first. Anyway, this morning we went to the Clemyjontri park, which is basically the biggest, most structurally-accomplished park I have ever seen (check out the pic). It’s total craziness, I’m always afraid someone is going to kidnap my children. The suburbs are rubbing off on me I guess, starting to develop irrational fear of, well, everything.
On the way, I took a slight wrong turn, and somehow ended up in a “restricted government facility”. We got the whole treatment — pull over by the orange barrels after driving around all the cement barriers, talk to the police, etc. They eventually let us turn around and go to the park, but it was kind of weird. My wife thinks I look like a terrorist so she was stressed out. I guess the two toddlers in the back seat convinced them that we were harmless. My theory is that there are alien corpses stored there. Or that it’s the “undisclosed location”. Anyway, a little adventure for a Saturday morning.
Then we got home and I went to get a new propane tank for our grill.
Ah, modern American life.
Here’s a big cheer for a relatively new entrant into the blogosphere, Marc Andreesen and blog.pmarca.com. His relatively old-school approach to his site is awesome — all too rare from someone with an industry resume as big as his. The reason he is the cat’s pajamas, however, is that so far he has been posting, exclusively, deeply-reasoned essays — much more the style of blog you see in niche domains, not something that often gets applied to overall industry observation by bloggers with busy day (and night) jobs. Great to see it, I know lots of folks are rightly impressed. He spurs a deeper level of discussion, agreement or disagreement aside — what this thing is really all about, though sometimes we forget. Some highlights from week 1:
Nice work, anxious to see how it all moves forward.
There’s been no shortage of discussion on Facebook of late — Facebook as the new Google, Facebook vs MySpace, etc. etc. — and their overall strategy deserves some discussion, to be sure. But you’ve read all of that by now. As with any great period of hype and furious activity, there are also by now some misconceptions about what you can actually do with Facebook from a practical perspective. I obviously have no idea what I am talking about, but here are some observations after writing some Facebook code (for Cruxy) for a little while now, and why I think all those Facebook apps in your sidebar aren’t what is going to matter.

- Embedded Facebook applications still run externally. This seems to get missed quite a bit by folks that have not actually looked at the FB technology offering. Whether in an iframe or via FBML, Facebook “applications” are still essentially executing in an external website — when you are interacting with a 3rd-party application via your Facebook account, you’re interacting with an external site (integrated at the presentation layer). This is a very efficient way for Facebook to balance the extensibility they want to get for their platform, with a relatively (actually, very) simple technical solution. Of course, it does mean the user experience of Facebook is beholden to some extent to the external application developer — if your app goes down, then the user’s Facebook account is impacted. This is the right gamble to make, kudos to them for doing it — the carriers could learn a thing or two about balancing control and openness from this.
- The Canvas concept is cool, and FBML is not “their own language”. I would attribute that quote except for the fact that I have seen it so many times I wouldn’t know where to start. The concept of the Canvas is essentially that Facebook can render your own application pages within the context of the rest of their UI, by virtue of the Facebook platform sucking in your presentation markup, combining it with the rest of the Facebook presentation, then sending it down to the browser. They do the iframe thing too, but the canvas goes a step beyond in that you can use additional markup tags, referred to as Facebook Markup Language, to make your application share more of the look-and-feel of the rest of Facebook. It’s obvious why they did this — to allow application developers to build a look and feel that closely resembles the rest of the Facebook experience. Custom tags are nothing new on any large web project, it’s amazing that this has gotten so much negative attention for standards non-compliance. Aside from the presentation-vs-data argument, which you could make to a degree, reverse engineering some CSS to get your app to look like something else is a tried-and-true tactic, and what Facebook has done here is offer something much more compelling and convenient for the developers. Custom tags are a form of modular ui development, and they work, and if they hadn’t done this we’d all be hacking up our styles to try to match the Facebook controls anyway.
- The Facebok Profile elements are not truly dynamic. When you have your application add something to a user’s Facebook profile, you’re basically just injecting a piece of static markup into their profile. This makes a ton of sense for performance reasons (you’d hate to see the core “view some user’s profile” operation get bogged down with external server access). It does, however, get interesting when you’re trying to put some dynamic content in there. No timers, etc., the only way I’ve found to really do this is to have your own server responsible for initiating the periodic updates on its own, which means your own server has to deal with persistent user authentication sessions and such. Look at all the Facebook apps for example that don’t update your status until you actually go and interact with the app, and give it a chance to run something to update your profile markup, or the abundance of “refresh now” buttons on third-party profile elements. Anyway, I point this out to draw the distinction that Facebook profile elements are not really dynamic application components a-la some other widget/nugget/snippet systems, and this is very much intentional.
- Development lifecycle management services are weak. Down the road, it’ll be nice to see the way you manage applications, associate them with developers, etc., improve. This is the one area where I think the model really falls down right now. You need to be able to easily share API access keys and application ownership (from the developer standpoint) between users, make the app available to multiple users for testing without opening it publicly, put it through test/release cycles, and all the rest. This will get better, it’s one of 80/20 things right now.
- The Facebook API, separate from the embedded “Facebook Application” experience, is powerful. A set of web services (REST) offering the ability to manage friend data, interrogate it, etc. , whether or not you’re actually building an application design to be experienced through the context of your Facebook account. And this leads us to our conclusion.
In general, the power of the Facebook platform is NOT in the Facebook-resident applications, but in the non-Facebook applications that use Facebook services. There has been some discussion on whether Facebook apps are widgets, whether they offer better extensibility than MySpace (here, here, and here are some good examples), and related. There are some good thoughts here. Personally, though, I think the compelling point isn’t that Facebook is a new platform into which you can inject dynamic application content (widgets or otherwise). It is that Facebook offers a platform API that you can use to build social networking functions into your own, separate, application. This is clear, but this is not what everyone is talking about. Even though Facebook is the cat’s pajamas right now, and yes it’s a cool destination that a lot of people go to, over-time it’d be hard to imagine a single destination where everyone in the known universe would go to use all kinds of disparate applications integrated only though their set of “friends”. Social networks, over time, are inherently too interested-oriented for this to be a viable model. The brilliance in this overall move by Facebook is not as a super-extensible, friend-to-all-developers application container, it is in its ability to, through the APIs and not just through hosted canvasses, offer a core social-networking library to web developers. How relationships are managed, navigated, etc., is value Facebook can add. Being a one-stop shop for all of your application needs is interesting at the moment, but not going to be the long-term success of Facebook.
Ok so I was in Starbucks this morning. I know, that in and of itself is sort of embarrassing, but there’s one right near my house and the “independent” place nearby is too full of hipster attitude. The hipster attitude is annoying in Williamsburg; in the suburbs it is downright upsetting. Anyway, I had the pleasure of seeing a whole cardboard display dedicated to (Sir) Paul McCartney’s new album, Memory Almost Full. Though the fact that the title is mildly computer-related is about 5% amusing, I can’t even begin to describe my depression on hearing snippets of it through the Starbucks PA, seeing the “limited edition” Paul McCartney Starbucks gift card, thinking again of his annoying ex-wife (you know, the one with the leg issue), and generally just remarking to myself on how much of a Beatles fan I am and how much I hate Paul McCartney’s pathetic solo career. It’s doubly depressing these days because I am well aware there are plenty of kids who have never had the joy of getting a real Beatles intro.
Anyway, not much to say here other than that I really really really hate his reincarnated version, and I wish he would just go retire somewhere and give it up. For all the kids that don’t know, the Let It Be remaster is a pretty rockin intro.
Well, actually, it’s a guest-post by David Sacks of geni.com (personally recommended for all your family tree needs). Interesting and very discuss-able view on the future of portals, and to some extent Facebook. Basic premise is the evolution from browse to search to navigation and information consumption powered by social graphs such as the facebook friend network. There’s a lot to debate about the argument here, but it’s a nice change of pace from the usual fare in that it’s actually thought-provoking.
“The advantage of this approach is that it makes it relatively effortless for users to access a world of information that is both increasingly comprehensive and personal to them. Even if all this information were available through search (and it’s not), search actually requires work; the user must know what they’re looking for and type it in. Then they must parse the results to determine which are valuable, labor which is not shared and reused by others. By contrast, Facebook requires no work once your network is set up. Your friends push information to you that is likely to be useful, and if not you can tune your preferences until it is. Facebook promises a kind of Socratic knowledge: it tells users things they didn’t even think to ask.”
Read the post.
Ok I love prefab, as we all should. Just ran across a blog with lots of pics and thoughts. Good distraction.
DO Research
Ok I admit I like this post. Using a helical, single-floor scheme would be cool for an office environment, and some of the mentioned variations are neat:
“The principle is a cylindrical building with a helical shape for the floor. The slope of the floor is 1.5% (it rises by 1.5 cm every meter), thus hardly noticeable. The height of each ’storey’ is 3 meters, so that when you walk 200 meters along the corridor, you have walked a full circle, but you end up one ’storey’ above or below your starting point. This results in a diameter of approximately 60 meters, therefore quite common for large skyscrapers. The corridor is on the outside, so that everybody has access to the fabulous views over the city. Offices are all on the inside. “
Not sure why the Guggenheim isn’t mentioned, and there’s also the very real issue that you need an elevator core for all kinds of infrastructural reasons in an office structure, but it would be a fun place to work.