A very good friend of mine has been working at 24 Hour Laundry for many months now. Unfortunately, I was unable to convince him to share any information about his top secret project. Well, he did say it was “quite interesting,” but that didn’t get me very far.
Therefore, I was quite excited to see Russ blog about the launch of ning.com. Now I could finally see what all the excitement was about. Well, I must agree with David. It certainly is quite interesting.
To quote from the faq: “Ning is a free online service… for people to build and run social applications.” Think of it as a mashup between Jot and, well, something else. Jot is Joe Kraus’s application wiki platform, and something else is the union of flickr + del.icio.us + friendster + Google Maps.
I wanted to blog about it immediately; however, I really didn’t have anything interesting to say. Not that it’s stopped me before, but still. As a rule, I feel that in order to really understand something, you need to get your hands dirty using it. And in this case, I couldn’t just explore the example sites, I actually had to figure out how to build an application on the ning platform.
Fortunately, I know PHP 5 and so does ning.
I did the simplest thing I could possibly do that was still of value to me. I cloned the sample restaurant rating application; extended it to add two fields: airport code and location; and created the “Airport Restaurant Review” guide.
At first, I ran into a little bit of a problem understanding that I had to use the “my” namespace. Data went in fine, but it didn’t come out. Exception city, sweetheart. Sigh.
I must admit, I hate frameworks because I never have any idea how to go about debugging them.
However, I left the application alone for a day and it managed to debug itself. Well, not really, but after I came back it only took me five minutes to give in and actually read the docs to guess the proper fix. All better now.
Speaking of developer docs, I can tell David has really been cranking away on them. There’s *a lot* of material there: tutorials, API references, and full-featured sample applications.
This Airport Restaurant Review guide is actually something I’ve wanted to write for a over a year now, and even managed to convince someone to do for me, but we never launched it. Now it’s up and running in less than an hour of programming time.
My next task is to refactor the application to create a separate airport class instead merely adding properties to an AirportRestaurant class. Unfortunately, I’m not quite sure how to migrate the underlying data in the store, so I’m kinda stuck. The key to ning is the ever-evolving nature of the applications, so I’m sure I’m missing something here.
But while the code is necessary part of a social application, it’s not sufficient. You need users and data and a community of people to care about what’s happening inside your application. That’s what makes it social.
In other words, a photo sharing application with 200 photos isn’t flickr, even if it looks the same and has feature parity. In fact, your photo has less value outside of flickr than in, even though it’s the same photo with the same set of tags.
So I guess one of the questions on my mind is “is there room for more than one flickr on the Web?”
Some types of sites lend themselves to a “the rich get richer” design: marketplaces (eBay), payments (PayPal), communications (Skype), IM (AIM, Y! Messenger, ICQ).
Others do not: search (Y!, Google, MSN, Ask), e-mail (Y!, Gmail, Hotmail, ISPs), content (Y!, Google News, MSNBC, blogs, newspapers, etc.)
Do social networks fall into the first category? Or are people perfectly happy forming their own little social cliques? Dunno.
I suspect we’ll end up with something similar to IM. There are multiple good-sized networks that have a clear advantage due to their size, but not necessarily a “winner take all” outcome, such as what Microsoft’s done with Windows and Office.
One of the advantages of ning is a shared data store, so people can remix data from other applications into their own. On the face of things, this looks like an excellent way to aggregate data across multiple micro applications into a unified global database of socially created content — exactly what a social network needs to become powerful.
However, you permission to other people’s data is read-only, so I can’t actually propagate my Airport Restaurants reviews back into the main set of core Restaurant reviews.
This leads to data fragmentation, which I think undermines the benefit of a social network.
It’d be great if I could request write access to someone’s data store. If a AirportRestaurant isa Restaurant (or aggregates a Restaurant), then everything should map correctly.
This certainly complicates matters — if you think refactoring was hard before, how do you coordinate it now? — but adds a great deal of value from my point of view.
I’m pretty sure ning will continue to evolve, and I’m quite interested to see where this quite interesting platform goes in the next few months.
Popularity: 6% [?]