Now blogging at diego's weblog. See you over there!

the next blog you'll add to your feed reader... Marc's.

Yup. Go read, and stop wondering what I'm talking about. :)

Categories: ning,, technology
Posted by diego on June 3, 2007 at 9:16 AM

ning javaone slides

I just posted the JavaOne presentation and some notes over at the Ning Developer Blog. Check it out!

Categories: ning,
Posted by diego on May 13, 2007 at 10:46 AM

at javaone tomorrow!


Martin, Brian and myself will be at JavaOne tomorrow presenting Building a Web Platform: Java Technology at Ning. We'll talk about the evolution of the Ning Platform over the last two and a half years and how Java and some specific design choices let us continually grow and expand the platform, replacing and upgrading infrastructure, without affecting users or developers.

The session is TS-6039, in Esplanade 301, at 4:10 pm, so if you're around come say hello. I'll post the slides after and talk a bit more about that and other interesting things. :)

Categories: ning,, technology
Posted by diego on May 9, 2007 at 4:02 PM

the remainder...

... of an interview yesterday at Ning was this equation (click on the image to see a larger version).


As Malcom Reynolds would say: "And that tickles me." :-)

That is all.

Categories: ning
Posted by diego on May 5, 2007 at 8:42 AM

ning + 1

We launched Ning a year ago today! Such a great year. Now there are over 20,000 apps running on Ning, and more and better keep showing up after last week's Photos, Videos, and Group.


Categories: ning
Posted by diego on October 3, 2006 at 10:02 PM

now *this* is what "2.0" looks like :)

As usual, I emerge from my blog hibernation to comment on a cool release we're doing. :) Who knows, someday I may even get my mojo back and keep at it.

Today, it is our launch last night of three new social websites: Photos, Videos and Group. Now we did have versions of those apps before, but nothing like what's there now. The Videos app, in particular, uses our new video transcoding APIs (which allow you to request transcoding into .FLV format of any video uploaded into Ning) as well as supporting embedding from other services. As usual, the point of a site on Ning is to clone it and make it your own, and we've done a lot of work to make it easier to do just that. There's more to do of course, and the next few months will be packed with updates to these apps. Plus, cool embeddables! :)

The apps have been showing up in the blogsphere, starting with GigaOm Tuesday Night, then linked by Battelle, both of which had pretty nice things to say. :) For a more internal perspective, check out David's and Kyle's posts, and that from the Ning blog.

Categories: ning
Posted by diego on September 28, 2006 at 1:45 PM



w00t! It's here! What we've been working on for the last few months has been released. What is it? The Ningbar! It's been a fantastic effort by the whole team and now it's finally out. (Seen, for example, in the screenshot above on Ning Bookmarks).

So what is it? One of the aspects on which we received most feedback from developers was in terms of control of page layout and system services, in particular the sidebar (a 227px wide div that used to sit to the right of the page). The Ningbar not only improves the system services but also makes them unobtrusive and yet within quick reach. But there's more! As we've always done, the Ningbar is fully programmable. Javascript and new REST APIs provide total control to developers looking to customize the user experience on Ning.

For users, there's not only the improved user experience but also cool new features: a built-in, system-wide social network, messaging, contact import, more, simpler customization for apps, and lots of other small and big things that pave the way for even cooler things to come.

And back to developers: now you don't have to build your own social network features. The Ning platform provides them for you, with a fully customizable UI. How's that for advanced web APIs?

I'm really jazzed about this release and what it means for us. Go check it out if you can!

Brian here has more, and there's a great overview by Gina on the Ning blog.


Categories: ning
Posted by diego on June 24, 2006 at 2:25 PM

did you know...?

... that Ning is hiring? But of course you did! Well, here's a reminder then. :) If you're looking for something, go check out our list of current openings at From Java developers/architects to QA engineers and product management, there's something for everyone!

(Did I say Java? Wasn't Ning about PHP? Well, the apps are written in PHP. But there's a ton of Java in there --some really cool stuff-- even if it's not obvious... but that's a topic for another post).

And, hey, if you don't find what you want in there, but you think you want to work with us, send us an email anyway. :)

Categories: ning,, technology
Posted by diego on April 4, 2006 at 9:08 PM

that warm, fuzzy feeling

Late night browsing, I found this article (via Dare) from last year written by Google's Adam Bosworth: Learning from the web lots of good ideas, but here's the kicker at the end:

It is time that the database vendors stepped up to the plate and started to support a native RSS 2.0/Atom protocol and wire format; a simple way to ask very general queries; a way to model data that encompasses trees and arbitrary graphs in ways that humans think about them; far more fluid schemas that don’t require complex joins to model variations on a theme about anything from products to people to places; and built-in linear scaling so that the database salespeople can tell their customers, in good conscience, for this class of queries you can scale arbitrarily with regard to throughput and extremely well even with regard to latency, as long as you limit yourself to the following types of queries.
The one database that supports all that and more?

Yep, that's right: The Ning Content Store. Let's see:

  • Support Atom protocol and wire format? Check!
  • A simple way to ask very general queries? Check! (Just try writing an app, or using any of the apps, and query both your app's data and any other public content in the system)
  • a way to model data that encompasses trees and arbitrary graphs in ways that humans think about them? Check! Well, almost actually. But there's lots of simple ways to navigate the Ning Store hierarchy, even for the app hierarchy.
  • Far more fluid schemas that don’t require complex joins to model variations on a theme about anything from products to people to places? Check!
  • Built-in linear scaling? Check!

We're not a database vendor, true. But then again, perhaps it was a pipe dream on Adam's part to think that the first one to do this would not be a web company.

Cool eh?

Categories: ning
Posted by diego on March 18, 2006 at 9:12 PM

a google homepage module for ning bookmarks

As a followup to my previous post on an IG module for ning photos, here's another for Ning bookmarks.
My friend Dylan, who works on IG pointed out in a comment (very politely even if he didn't have to :-)) that neither document.getElementById() or XmlHttpRequest replacements are required. So who to believe eh? The dude who spent an hour looking at the thing one Friday at 11 pm (i.e., me)? Or the person who built the thing? Well! As a blogger, I *know* it should be me!! hehehe. I guess that the disclaimer Google should add is "Don't try this at midnight after an 18-hour workday and then think it's our fault. Go to sleep and check back in the morning." :)

Seriously though, I apologize for the mistake, nothing more frustrating than seeing bad information being spread (I've amended the original post and linked to this one). I was thinking about why I made that mistake though, aside from being a bit tired perhaps. And I think I know why, having written a second module now: it's the caching system that really confuses me quite a lot. You make one mistake in the file, try to test it, and the previous version loads or doesn't depending on unknown circumstances. Then suppose you pass a wrong parameter to an NXSL call -- the JS console or Venkman both lead you into the Google JS code, which is all compacted into meaningless statements. You get errors like, for example "a is not an object" which isn't particularly useful. So debugging a module becomes a fairly painstaking process of load, reload, add and re-add. At least when you are a n00b using the IG framework, like I am.

Now, I know for experience that these things are hard to do, so my suggestion (assumming it's not done already somewhere, but I honestly can't find it--and I'm sure that if it isn't they're already thinking about that, so this just counts as a +1) is for the doc to suggest some way to create a sandbox for developing that gives better debugging info or provide more clear instructions on how to do reloads when things don't work. And that development modules start off without creating a cached copy, instead of the other way around (thus caching what is quite possibly a module that doesn't work).

Anyway, moving on... nothing to see here! And thanks Dylan for setting me straight. :)

Categories: ning
Posted by diego on March 11, 2006 at 2:26 PM

filebox: a quick way to share files


Many many times I want to quickly send a file to someone for them to look at, and I can never remember the names of the services that let you do this. But there's Ning! :)

So my 1-hour hack for tonight was to create, which allows you to upload files and then share the link with others, and it's deleted after a few days. Basically I cloned Brian's filedrop, modified some things in the code, made the uploads private, added messaging, and made it a little easier on the eye. The power of Ning at work. :)

Categories: ning,, technology
Posted by diego on March 11, 2006 at 12:20 AM

if you don't get ning...

... or you think you're missing something, spend a few minutes and watch the screencast of Yoz's and David's great presentation at etech 06. Some of it is a bit on the technical side, particularly as they get to the Atom API demo in the second half, but that's the nature of the etech audience.

As I watched, I just felt incredibly proud for what we've built in the last year or so. And the fun is just beginning... :)

Categories: ning
Posted by diego on March 10, 2006 at 12:25 AM

new at ning: the ning atom api

logodeveloper_290x40.gif + atom-logo75px.gif

Our representatives at Etech 06 (Martin, David, Yoz and Brian) have just finished their presentation and announced our newly released Atom support, including what is probably the first non-weblog centric implementation and support for the Atom Publishing Protocol!! Here's one of the first summaries posted of the talk (by Dan Hon).

The whole content store is now AtomAPI-accessible. Cool eh?

Martin reports it was standing room, and people got really into it when the Atom stuff was announced. Awesome! We expect really cool stuff to come from this--the API is pretty fast and efficient.

Here's a ning app with a summary of the talk, including an upcoming screencast download.


Categories: ning
Posted by diego on March 9, 2006 at 12:42 PM

a google homepage module for ning photos

I spent a couple of hours last friday tinkering with the Google Personal Homepage (Apparenlty called "ig" or perhaps "iGoogle"? Am I the last one to notice this? Probably). How hard was it to create a module for in that would pull in data from a Ning app? The answer: not hard at all.

So what to do? I decided to write a simple module that would do a nice AJAXy slideshow of public photos posted to Ning Photos. Step one was creating the actual slideshow and making it work as a separate page, and here it is. Step two was taking that behavior and wrapping it in a way that IG would understand, and here is that.

From the POV of Ning development, there wasn't really much to at all. The IG modules were easy to write as well. Something did make me scratch my head for a while: Google is actually flowing content through their servers, and making some heavy mods to the Javascript functions that you can call. The Google Homepage API dev guide is actually pretty clear and straightforward, except for one tiny tiny detail: There's a section on "Writing Robust Modules" that discusses a couple of key things: first, you can't use document.getElementById(), you need to use Google's _get() instead. Similarly, you can't use XML HTTP request calls (typical AJAX stuff) -- you need to use Google's own content fetching thingies (_IG_FetchContent and the NSXL API). All of which is cool, except the docs don't say "you MUST use these functions", at best the docs say you should. My natural tendency (and that of most other devs as I figure it) would be to go and just use what we know unless you explicitly say no. And it took me a while to give up using standard Javascript calls and try Google's at which point everything worked nicely (the heavy caching they're doing of stuff didn't help a lot). My only comment then would be to add a big red box at the beginning of the docs that say "If you want to do X Y and Z use these functions instead of the common JS functions, otherwise your module won't work." Just a doc thing, but it would surely help. (see my follow up post here for more on this topic).

Anyway, it was a cool experiment. I'm thinking about other uses for it, probably a bookmarks module would be the most appropriate one to try next, since it's pretty useful IMO.

ps: if you want to try the module, you need to use the link for it and use the developer module to include it, since it's not yet "published" in Google's list of available modules.

ps 2: of course, all the sources for how the module and the photo view slideshow with fadeout works are accessible from within Ning, both for viewing and for cloned apps. :)

Categories: ning
Posted by diego on March 8, 2006 at 10:08 PM

ning bookmarks - now with opml feeds

As a follow up to my addition of RSS to the Ning Bookmarks app, I've just made a quick update to add OPML feeds, or "reading lists", with the blue icon next to the title. For example, here are my bookmarks in OPML. James wanted to do some interesting stuff with OPML (see the comments of the previous post), and even though this doesn't get him all the way towards seeing a full-on tag-based hierarchy, you can subscribe to RSS or OPML feeds based on certain tags (Example: OPML for tag 'ajax', and here's the source page).

I have a few posts coming up: Personal Google Homepage modules on Ning, Flash (oh lordy), and I install Windows Vista and I am impressed (!). Stay tuned. :)

Categories: ning
Posted by diego on March 4, 2006 at 11:47 AM

bookmarks = lightweight blogging?

Hm. Here's something that came to mind today while setting up some bookmarks in the Ning bookmarks app. I was thinking, wow, that looks kindof like an outline... a bloggish outline... a blog? I remembered this stuff I wrote a while back about a tool's influence. What's missing there is RSS and OPML feeds for each of the views. Won't be hard to add.

Update: And done! All pages now have an RSS subscription icon that you can use to subscribe to any bookmark listing. Example. Took about 20 min to write and test. :)

Bonus: one of my favorite posts of all time. Especially Woody Allen comes to mind: "What if everything is an illusion and nothing exists? In that case, I definitely overpaid for my carpet."

Categories: ning
Posted by diego on February 28, 2006 at 1:10 PM

ning 2.0

ninglogo.gifLast week we released a new version of Ning. With websites and webservices it makes less sense to talk about versions (we've of course made many releases since the launch last October), but this change was both extensive and highly visible. What's new has been discussed at length in the days I was gone, so I won't add to it -- check out the Ning Blog entries (here and here) for the release and David's comments. One of my favorite changes is by now a clear distinction in the UI between developer and non-developer paths. The tension in our first rev between being clear about technical issues and highlighting features developers worry about less but that are crucial for most non-coders was palpable. A single UI can't do everything, and in this case you definitely need two (or, eventually, a self-adapting UI that shows you what you have selected as being interesting, but that kind of degree of control will take more time to implement).

That aside, I have been notoriously slow in producing a blog entry for the ning blog that talks about our architecture and the performance work we've done and continue to do. Hopefully I'll fix that this week.

And now back to work. We've got some pretty cool stuff coming down the line. :)

Categories: ning
Posted by diego on February 20, 2006 at 6:47 PM

a response to dave

Dave, I think I can see why you'd be skeptical (and others too) of what we're doing at Ning. Maybe If I was on the other side of the fence I would feel that way too.

Hopefully by now you can see that we've had none of the "bubbly" behavior that one might expect from people in blue shirts and khakis. In part, that’s probably one of the reasons we were criticized yesterday – we haven’t been out there promoting ourselves, and we may have overdone it (it seems it is possible to do that too -- go figure! :-)).

What we have been doing is focusing on the product and working really hard on improving the experience, talking to users and developers, and building up our community and community resources--something that as you know (having bootstrapped many developer communities yourself) takes time, preparation, and a lot of effort. In the process, we have generally erred on the side of spending our time and efforts talking directly to our users and enhancing the product based on their feedback. Straightforward stuff really, but when you're a small company like we are, this takes up a lot of time and resources.

As to the perception Ning is a bit removed from what people want, both coders and non-coders are finding Ning useful, off the top of my head: to review LA restaurants or even beadstores, giving the thumbs-down to movies in cinecrap, and things that we couldn't have thought of like tech archaics which is a clone of the photosharing app that (as far as we can tell) was used by a class in a German university to keep track/contribute information. There's also technical experimentation on ning, like commentosphere,, Ning avatars.

Sorry for the extensive linking, I kinda sounded like a brochure there for a second :-) -- I just wanted to point to some of the interesting apps that are in use on the service, there are many more.

We will definitely try to do a better job of keeping the larger community regularly updated on what we are doing and we'll continue talking to both with technical and non-technical users about how we can make ning more useful to them. We will also engage more with the technical community to discuss our APIs and how can we improve them, and how we can better support standard formats and APIs on our end, to improve interoperability for our users. Part of this is also just being more vocal a bit our current support (both in features and libraries) for standards, open APIs and formats, something that's less than obvious today.

So all I'd ask is that you give us the benefit of the doubt. :-)

I must confess though, that I do wear Khakis and blue t-shirts. Mostly in the summer. :)

Finally, thanks for the link and the comments--always appreciated!

Categories: ning
Posted by diego on January 21, 2006 at 4:49 PM

nothing like a trashing to get the day started

Picture this: it's a Friday, early in the morning. The office is quiet, there's a smell of fresh coffee in the air. You're still a bit sleepy, and as you're booting up your brain for the day ahead you end up reading a blog post where the writer, basically, has decided that your company is dead.

The attention-grabbing headline is of course something you eventually get used to, but still there's an element of shock involved. That relaxed beginning of the day you were hoping for?

Oh yeah, that's over.

You know? :-)

That's kinda what happened to me today, with this post from Mike Arrington over at techcrunch, catchy title and all. Since a number of people are echoing it (For example here, here, here, and here) I thought I'd add my own 2c and correct the various factual errors in Mike's post and add my own take to the conversation.

The post makes four main points:

First, You have to know PHP, or at least HTML, to build anything unique on Ning.
Well, with Ning's clone feature you can get a decent level of customization without coding or knowing HTML, and we're getting easier to use all the time. However, the key word here is unique. As far as I know, you have to know PHP, or HTML, or Ruby, or something to create anything unique on the Internet, period. Ning doesn't yet allow non-coders to create unique apps with complete flexibility and any features they want, true, but neither does anyone else, and there's a simple reason for that: it's a really hard problem, and one that most definitely doesn't get solved in three months. We want to get there though, and we'll continue working to that end.

Second, there is no support for the key web service APIs out there that people are really excited about mashing up.
That's not true. Aside from support for Google and Yahoo! Maps, the Amazon API, the Flickr API, the Yahoo Search API, as well as RSS, Atom, OPML, and others, anyone can add support for whatever API they need by either uploading their own PHP files, or write their own PHP API on top of whatever REST, XMLRPC or SOAP service they want. The fact that today we only support PHP is a limitation, to be sure, but a Ruby binding is upcoming, to be followed by others such as Python.
Third, Ning keeps all of the applications under the roof. This has benefits like free hosting, but application creators don’t get control of the page to add advertising and they cannot get user registration data direclty [sic].
Also not true. Since last December, any user has been able to run an app under their own domain (domain mapping), run their own ads, make source code private, or get additional storage. In the future you'll also be able to complete remove/edit sidebar preferences to make the experience more uniquely your own.
Fourth, Ning did everything wrong in communicating with their users.
"Everything" wrong? Really? It reminds me of something I wrote back when the controversy about stealth mode happened: "Ah, those pesky generalizations." I said back then. Indeed.

Generalizations aside, there's actually a good point hiding in there-- It's true that we haven't been very aggressive in promoting our new features as we rolled them out, and perhaps we could have done a bit more "outreach" but in part we've spent a lot of time working on stability and new features.

Consider: We went 1.0 in December (the beta period lasted a bit less than three months), and removed the "invitation" requirement to be a developer -- now any user can be a developer. We have added new apps, and improved the original ones, both in speed and features. We added new services, such as domain mapping and ad runner. And more. But we didn't make a big deal out of it, mostly because we're working on a sitewide update that would address those issues in a more uniform way.

Finally, Chris Messina in the comments to Mike's post, nails one of the key issues at hand:

[...] I have to ask — in all sincerity, are the current expectations on timeframes for building platforms reasonable? Did you really expect an entire application platform to be built, soup to nuts, in just over three months? You’re familiar with the issues we’ve had trying to build a cross-platform, open source browser on a platform we’re purposely not forking. I can imagine that startups that aren’t G-sized and aren’t just building another also-ran Rails app will need more time to execute.
While we have been working for more than three months, it does takes time to get something new right, and there's a lot of evolution involved, of ideas, of the software, of the infrastructure. When we launched, most people had no idea what we were about. Many still don't. But that's fine--it's the way it goes. Communication with our users is evolving, and we'll do a better job of it every day.

Sometimes we get too wrapped into what we're working on and even forget that there's a world out there (I know I do at least). Mike's post, errors and all, had the effect of jolting my blogging into action. I've been planning for weeks to talk more about what we're doing and some things that I like about the platform-- time to start making time for it. :)

And as always, comments and questions are most welcome!

Okay, all that said, now to get some work done... :-))

ps: also check out Mike (Rowehl :))'s post on the topic here.

Categories: ning
Posted by diego on January 20, 2006 at 11:42 AM


Ayayay, I'm at risk of turning into a monothematic weblog. Oh well.

Yesterday there was the article. But my favorite for some strange reason is the brief mention of Ning as "the thing" over at USA Today's hot sites section. Sadly, no permalink, so I need to take a screenshot of that, or something.

Speaking of permalinks. Check out the latest post by Gina over at the Ning blog -- I think it's a cool summary of the kinds of things we'll start seeing more of in the playground. Krazydad has also been doing some cool cloning/retargeting/etc (Check out his user pivot). He started off with a great post a couple of days ago and since then he's been cloning and repuposing a bunch of apps for his own interests, for example spot the geek (a clone of this or that), or KrazyBooks (a clone of bookshelf).

Oh, and this one's special for Scoble: Tablet PC Duel! :-).

PS: the "user pivot" I linked to above only shows hits for public, not private, content.

Categories: ning
Posted by diego on October 7, 2005 at 10:29 AM


And here it is.

Also, a bit earlier tonight, digg. MeFi was the first one to pick it up though, early yesterday.

Categories: ning
Posted by diego on October 5, 2005 at 6:08 AM

ning live: day one

What a day. Overwhelming, in a sense--an explosion of discussion around the blogsphere and beyond. Ning shot up to #1 search in Technorati by around noon, and to the #1 tag in Categories: ning,
Posted by diego on October 4, 2005 at 8:18 PM



About an hour ago tonight we took the covers off ning: a playground for building and using social applications on the web (how's that for a brief description?). A super simple way of getting personalized social apps up and running, or a way to experiment without having to worry about all the stuff that's usually, well, way too hard (like, say, DB setup--look ma! no DB!).

It's been an incredible year so far, lots of work but lots of fun too, working with a fantastic team. The last few weeks have been... intense. A million of things I want to write about, which for obvious reasons have been sidetracked.

Anyway, you can bet I'll be writing more about this later! :-)

Categories: ning,
Posted by diego on October 3, 2005 at 10:02 PM

Copyright © Diego Doval 2002-2007.
Powered by
Movable Type 4.37