Latest Entries »

I worked on a project in 2002 to build a “rich media server” for HP. At that time, I realized that content delivery is essentially an asymmetric activity, where the “command and control” channel needs to be much smaller than the content delivery channel. This was the original philosophy of ISDN phone lines, too, except when you’re processing HD content, it’s at a slightly different scale. It seemed pretty obvious at the time that the infrastructure required to process the content is fundamentally different from that required to process the control signals. The visual we used on this project is a guy sitting in his easy chair pointing a remote control at a TV. The bandwidth of the remote control is extremely tiny, essentially a few hundred bits per second. However, the bandwidth of the projected image and sound is enormous by comparison. That’s the nature of high-quality content.

That’s why I’ve been intrigued by some of the stories I’ve been reading lately. GigaOm covers “fat pipes” in the cloud, which is already happening. From my work in the social technology space, I already know that one reason Joyent has a thriving Facebook application deployment business is the fat pipe it has from its data center directly into Facebook’s. Take that, Net neutrality! I also think the new (nascent?) OnLive service is pretty interesting. The concept there is that by having highly efficient means of rendering games, the end user needs a skinny pipe to “remote control” the game. To be honest, I’ll believe it when I see it. I remember playing Nintendo 64 in a hotel room once for $4/hr, and it was not a good experience. I can’t imagine trying to do that with Call of Duty 5 over the Internet.

But it’s true, I think, that deployments will continue to be optimized and the special sauce for the solutions will be the remote control capabilities. Look at Amazon’s Web Services offerings (including their recent MapReduce offering). By using a Web Services interface, you can remote control deployments, including optimizing the deployment so there is a fat pipe (close association, anyway) between some number of instances. I think Amazon “gets it”. Of course, they’ve had the pain of operating an ecommerce site for so long, and they have been so successful at it, that I probably shouldn’t be surprised.

So, how are you making your solutions “remote controlled”? What integrations with other services do you provide to your customers? How easy do you make it for your customers to control their overall solutions from their easy chair? This will continue to be a huge differentiator for the next few years as it all shakes out.

Value and Profit

In the recent Stephen Colbert interview of Biz Stone (co-founder of Twitter), Biz contrasts building “value” and building “profit”. It’s something that’s been on my mind lately, too. Here are my simple definitions:

  • Value: Customers would miss you when you’re gone
  • Profit: Customers are willing to pay you to make sure you won’t be missed

I think Twitter’s approach is right on, building the value first. Biz claims to have “patient investors”, and I think this is critical to making this approach work. I’d like to think that at Ringside Networks, we built value (based on the number of downloads of the open source platform we built) and the interest in the platform that resulted. We were far from producing profit when we folded, but I still have confidence in the formula.

Cost, Reward, and Adoption

I’m a parent, and like many parents, I think my son is pretty smart. He and I play World of Warcraft occasionally, and recently the world added a new playable class for players who have reached at least level 55. Upon launch, it is clear that the Death Knight is “OP” (Over-Powered). My son provides me with the following analysis, which I am paraphrasing. Last time WoW introduced a new class, it was the Rogue. It, too, has long been considered “OP”, especially in Player-versus-Player (PvP) scenarios, where the Rogue can pwn n00bs all day long through stealth, backstabbing, and the dreaded “stun lock”. Gradually, the Rogue has lost some of what once made it over-powered, and although the “DKs” are more powerful than Rogues when they were introduced, they are now dramatically more powerful. Being a conspiracy theorist and cynic like myself, my son concludes that this was not, in fact, an exercise in fixing the game balance that was broken by an OP class being introduced into the game. Instead, he thinks it may be an intentional strategy to get people using the new class. By making the class desirable (over-powered), WoW can populate the world with as many of the new class as it thinks is right, then “Nerf™” the class by adjusting (read: “removing”) the attributes, skills, and powers that make the class so desirable.

Let’s apply this to Google’s new Location services. Privacy concerns aside (since so few consumers actually care about protecting their privacy, much less understand how to protect it; sounds like a later post!), the location services have the potential to be incredibly valuable to Google over the long term. Location-based advertising the the next nut Google needs to crack to continue to expand their reach in online advertising. By providing these service on mobile devices and now right there in GMail, they are planting the seeds that they will most likely reap in the coming years. Look at YouTube. In that case, they provided “all-you-can-eat” consumer-generated content… totally free and with no obligation. Only now, they are providing ecommerce links (to the songs used to make the video), advertising, etc. to try to monetize the asset. Likewise, these location-based services are likely to be the Trojan Horse that gets lots of consumers to use their location totally for free and with no obligation. That is, until they receive an ad for that Pizza Hut they are standing right next to while watching a YouTube video on their iPhone.

Gaming twitter-based services

When people talk about their “culture”, they often mean their ethnicity, their religion, or the region where they grew up. As a child of the Internet, Internet culture is my culture. One frustrating aspect of Internet culture is the propensity for people to game systems, exploiting the properties of one (or several) person’s (people’s) work to serve their own ends.

When I was checking out DM Fail (because, yes, I do have to watch trains wreck), I was really taken aback by how quickly the “service” devolved to shameless self-promotion. Then I was taken back… back to a time when people wrote short messages to your console screen, normally when you were trying to get some “real work” done (read: playing a MUD; for the uninitiated, that’s like World of Warcraft without the 3D graphics, and it’s much more addictive than it sounds). Back to a time in the Golden Era of the Internet, when the console didn’t always know that your backspace key was meant to delete the character just before your cursor. Instead, it would helpfully print the character code (^H) of the key. Thus was born such tongue-in-cheek gems as:

That new blog post is so boring^H^H^H^H^H^Hinteresting!

Now that I understand that my culture is alive and well, I’d like to declare that, thanks to DM Fail, “dm” is the new “^H”. Enjoy!

I’m a fan of OpenID, OAuth, and the other protocols that make up what Chris Messina calls DiSo (Distributed Social). There is a lot of exciting stuff that can be done using these open protocols, but I haven’t had a compelling reason to integrate them into anything I was working on. But, the Amazon EC2 server I was working on was on the fritz, and I was waiting for the load to go down. This opportunity gave me about 30 minutes to look into how hard (easy?) it is to implement OpenID login.

I had all the key components: an OpenID login (via my friends at; Chris also works for an OpenID provider, Vidoop, and there are many others, covering some people who certainly don’t even know what OpenID is), PHP 5, PEAR, and all the trimmings. I also had experience implementing other authentication mechanisms, such as Facebook Auth. And I had the all-important walk-through at OpenID Enabled. In about 30 minutes and about 50 lines of code (including a login form where I could enter the name of the page I was trying to reach and all the redirect code), I successfully logged into the site I was working on.

Here’s the thing. Implementing the OpenID protocol is, in the immortal words of G.I. Joe, only “half the battle.” The biggest issue facing adoption of OpenID is simply the fact that we have 50 years of legacy where people design authentication into their system when they build it. We even did it at Ringside Networks when building our open source social platform, and we knew about OpenID, OAuth, and the like (something I hope will be addressed, given some community effort and time). If you operate a site that already has authentication built in, you end up having to do significant refactoring of the authentication and user profile system to accommodate OpenID. The net result of an OpenID login is a claimed identity… and not probably not an identity your site knows anything about. I’m sure there are folks smarter than me that, 5 years ago when they were building their Web 2.0 site before there was a Web 2.0 label, separated the concepts of authentication and user profiles. But I’m willing to bet there are plenty who didn’t.

Oh, and your OpenID implementation isn’t free (at least not from me) if it can’t be done in a half an hour, just in case you were wondering!

I must be getting old. Somehow, I just can’t operate a basic e-commerce form. All night, off and on, I have been doing battle with the Digital River implementation on, trying to avail myself of the much-publicized Cyber Monday deal on VMWare Fusion. I have reset my password at least 3 times, live-chatted with a “support” representative who immediately pawned me off on It’s bad enough that VMWare tries to extort support fees for virtualization software during the shopping cart process ($25 to respond to one email support request? Seriously?). I shudder to think what they might try to charge me to fix this issue with me trying to give them money. E-commerce should just work. There should be no barriers to me giving you my money.

While I’m griping, I might as well also gripe that the only reason I need such a piece of software is that Intuit has seen fit not to make the Mac and Windows versions of Quicken binary-compatible, thus locking some 7 years of my financial data in a tomb with my copy of Windows XP. And no, I can’t just export the data and reimport it, since Quicken doesn’t support QIF for anything more complex than a checking or savings account and doesn’t have a clever migration assistant. Something else that doesn’t just work.

Update: Through the magic that is the Internet (and blogging), I managed to get some good customer service from VMWare, and now I have my licenses. To be honest, the discount wasn’t worth the time I spent trying to get it. What can I say, sometimes I obsess! No one at VMWare said anything, but I think we were both victims of Digital River, who for some reason is pedantic about matching phone numbers with physical locations and zip codes. Silly me… I figured if it was good enough for my bank, it should be good enough for a $40 download.

Selecting a PHP IDE

Editing code in PHP can be challenging. Plenty of people I know use a simple, programmer-friendly text editor, like TextMate. However, editing code is only the beginning; there are plenty of other things that a programmer has to do beside typing. But even when typing, features like code completion and code documentation are important. I personally wanted to use a free, open source IDE, which leaves only a few options: Eclipse and NetBeans. I say “a few”, because there are multiple versions of Eclipse environments. I have recently evaluated these options, and I made a switch.

The Requirements

My requirements included: Git support (I’ve recently started trying out, which is a pretty nice, inexpensive way to do source code control), PHP code formatting, PHP code completion.

The Bake-Off

I was originally using Eclipse Europa (3.3) with the PDT and the Subclipse plug-in. Naturally, I started here, since I had an environment that worked. I found the JGit/EGit plug-in, which looked promising, but when I tried to install it via Eclipse updates, it said it required 3.4 of the Eclipse Core (which is part of Eclipse Ganymede). I just wasn’t able to figure out how to get a version for Eclipse 3.3, so I moved on…

Next in line was Eclipse Ganymede (3.4). This version of Eclipse is fast, and the JGit plug-in installed without a hitch. The down side is that the PDT plug-in was completely worthless in my configuration. It was unable to use classes from my PEAR installation, and it failed to auto-complete even for classes inside my Eclipse project. I know, I should dutifully document these shortcomings in Jira for PDT, but I’m being a consumer now, not a developer. This left me with one more last-ditch effort…

Finally, I tried the latest NetBeans IDE. I haven’t used NetBeans since the last millennium (it’s fun to be able to say that), and time has been good to NetBeans. JGit installed without a hitch, and despite its scarily-low version number and unsupported status, it has worked like a champ for me. The PHP support is stellar, allowing me to click through even to classes defined in my PEAR installation. Debugging via XDebug is fairly good, although not quite as good as my experience with Eclipse 3.3. My only complaint so far is that, unlike Eclipse, NetBeans appears to have some memory leaks and can’t be left running for days at a time. That, and the UI looks like it was designed by a cartoon character (call it “gratuitous use of the bubble effect”). I’m happy to live with these minor inconveniences, though.

The Winner (for me, anyway)

In the end, I selected NetBeans. Since it’s been so long since I’ve used NetBeans, this feels a little bit like stepping backward in time. But the improvements made to the IDE over the years are remarkable, and it looks like a strong contender for cross-platform IDE of choice.

Applied Gaming Theory

Like many people interested in computers and technology, I am a video game player. I have played many games, from Asteroids to World of Warcraft, across many genres. Over the years, I began to feel that something was missing from the work-a-day Enterprise software world that was present in these electronic games. What a great feeling it is to find that others not only had similar thoughts, but eloquently crystallized those thoughts exactly! Dan Cook wrote an excellent set of slides (with notes) that not only captures my personal sense of disappointment when I look at a typical web application, but further describes why I feel that way.

Applications sometimes need to be complex. But if you measure success by pure usage numbers, it is some of the simplest applications on the Web that have been successful lately. It is just this simplicity in the face of overwhelming complexity that impresses me. Now I know why, and I intend to apply some of these ideas to my own projects. I encourage you to do the same, and let’s see if we can make the world a simpler place for people who use technology not because they are technophiles and are willing to make the effort to learn complex tools, but for people who want or need to use the technology without needing to make the effort.

Ringside Lessons

Failure. I had to get that out of the way, first. Failing is not fun. Jason Calacanis recently wrote about startup conditions in (The) Startup Depression. That write-up really resonated with me. As a parent, I understand there are some things that can really only be understood by experiencing them (parenthood being one of them, IMHO), and startup lessons may be one of those things. However, as a founder of Ringside Networks, I feel the need to “purge” and also to respond to some of the things written about Our Fine Company yesterday, as Bob Bickel’s blog on the topic made the rounds in the blogosphere.

Many people have commented on our failure, and I plan to comment back. In the spirit of looking forward, though, I try to compare the lessons I have learned and the personal cost of those lessons to a Wharton MBA. I’d like to think I’m slightly ahead right now. And now, I’d like to share some of the lessons I’ve personally learned through this experience:

1. Fail Fast

I know you’ve probably read this about a million times. One more time certainly won’t hurt. Ringside Networks could have avoided some of our negative experiences by holding desparately on to this core concept. We started out with this mantra, promising to use our seed money to fail as quickly as possible (okay, we were slightly more diplomatic, but this was clearly our stated direction). At a certain point, we didn’t give this rule the respect it deserved. If you find yourself in a position to coast along for another few months or to jump into the pool and find out just how freezing cold the water is, do yourself a favor and jump in the pool.

2. Trust your Gut

It’s hard to give this as advice, because, frankly, this isn’t good advice for some people. Some of my favorite moments in reality TV are from The Apprentice, when the project manager fiercely holds on to the wrong concept, and you can see them implode through the show. But this lesson doesn’t mean to trust your gut and never look back; your gut should be constantly checked, because conditions change rapidly at a startup. Personally, this rule has always worked out for me. I confess that sometimes I didn’t do this at Ringside, and those are the only moments I regret.

3. Put the Company First (in business decisions)

A lot of startup pundits won’t have the qualifier “in business decisions,” but that’s just not me. For me, work-life balance (such as it is at a startup) is an important part of the equation. My son is at that age when he will soon want nothing to do with me, and I’ve been married for quite some time (and I’d prefer to keep it that way!). Note that “balance” doesn’t have to mean “50/50”, just something that is tolerable for everyone concerned, given the risk/reward equation.

When making a decision on behalf of the company, though, the only right way to make that decision is to pretend to be the company. This process is similar to the “jump in the pool” process of failing fast. It is uncomfortable, unnatural, and downright weird to completely ignore your own needs in deference to the needs of the company. But that’s what the startup is all about. The startup has the possibility to become the thing that will take care of you (and your family), but only if its needs are met. Ignoring the company’s needs, even for a moment, can be disastrous.

4. Finish What you Start

At Ringside Networks, we finished what we started, which was to build a world-class open source social platform and related technologies. A full Series A, which we failed to get, would have given us a whole new set of goals and challenges, but we didn’t make it that far. Even so, I am tremendously proud of the team and what we were able to accomplish together in such a short amount of time. Nobody new what Ringside Networks would produce at the beginning of this year. I’ll be the first to say that what we produced was just the “table stakes” to play in the social software game, but we built what we set out to build:

  • A social software platform that supports the 2 major social platform APIs (Facebook F8 and OpenSocial)
  • Integrations to map identities across several major social platforms and applications
  • Several innovative social software distribution models
  • A technique for producing a social software “cloud” to easily integrate into web sites

All in all, working on Ringside Networks has been a fulfilling experience for me. I met a bunch of great folks in both the technology sphere, working on social software and services, and in the venture capital arena, working on financing and technology business strategy.

Ringside will be missed, but now I’m ready to get back in the ring!

GreaseMonkey, Master of Demo

I was planning to write about some cool new videos we posted on the Ringside Networks community Wiki that show off features we’re building. I’ll get to that in a minute. Mainly, I want to tell you how we made these, because they are really impactful and people really respond well to the end result. Really.

The technique we used is to apply client scripting (user scripts), powered by GreaseMonkey, to inject our demo into existing web sites. We do this to generate a mock-up unlike anything people have seen before. To see the result, you can check out these videos:

In this video, I demonstrate how to make a site with existing users social… pretty much instantly (okay it took me a whole day to build the app and integrate it into the web site using this technique):

Also check out Rich Friedman demo’ing “Go Ringside”, a way to make pretty much any web site into an instance social network.