Archive for the 'Software' Category

OpenSource++

Wednesday, May 28th, 2008

Last week I started fiddling with UStream. At first it was just a cool new technology that I was trying out, but it has evolved into a daily part of our lives at Ringside Networks. We’ve been streaming live video for about a week, which has been working out very well. For those team members that are remote (we have 3-4 depending on the day), they have been privy to the office conversation that they have always missed. Since we started streaming, those remote teammates have been clamoring for better cameras, and more of them.

You can view our live stream here. Note that there are portions of the day that are very boring. For example, at the moment, anyone that is tuned in will be watching my face as I type this blog entry and listening to Weezer. However, Twitter is a great tool for notifications. Whenever an interesting discussion is going on, I’ve made a habit of turning the camera outward towards my colleagues and the white board and logging a message on twitter with a link to our live audio/video stream. Follow me on Twitter if you’d like to get these updates.

The most interesting part of our use of this technology is that it pairs nicely with our open source development model. For those developers out there using our software, they can watch and listen while we discuss how to resolve a bug, how we will prioritize our work for the next beta release (every two weeks), or just get a feel for where we stand on a daily basis (our daily stand up meetings are at 2:30pm EST). Even better than watching live though, is that the community will have the ability to participate through the chat window in the UStream interface. For our remote team members, we’ve been using Skype to bring them into the live discussion. As users of our software, you could potentially have the same level of access.

To me, live streaming takes open source development to the next level of openness and provides an engaging experience that will ultimately result in better software and faster solution delivery due to the availability of this rich communication medium.

By the way, we also tried Stickam for a day, which offers group video chat capabilities. Our experience has been that Stickam’s availability is not as good as UStream’s. Also, Stickam’s user interface wasn’t very intuitive or descriptive. We have tried on two separate occasions to coordinate three video streams in the same session without success. Regardless, this service has great potential, and I look forward to improvements that are surely coming.

Demo: ESPN Social Payment

Thursday, May 22nd, 2008

Ringside Networks is working on a social payment service that will enable users to subscribe to real business applications, and in the near future, pay for their friends as well. Application providers will be able to offer payment plans that are specific to social networks such that a user can pay for themselves (say $5/month), themselves plus three friends (say $7/month), themselves and five friends (say $10/month), or themselves and all friends ($25/month). But enough about that - check out the video demonstration.

ESPN Social Payment Demo

Provisioning Pricing Plans for Social Applications

Tuesday, April 29th, 2008

Ringside Networks has released their Social Application Server’s second beta release, which includes pricing plan provisioning for social applications (amongst other great things). What this means is that Facebook application developers could begin charging their users monthly subscription fees for access to one or more levels of value added application features when deployed on the Ringside Social Application Server. The implementation of end to end payment is not yet complete, but the video below will give you a better feel for what’s coming (click the image to see the movie).

Provisioning Pricing Plans Demo

The Case for a Social Starbucks

Saturday, April 26th, 2008

Every Wednesday I leave work at 4:30pm to go to school (I’m going for my MBA at Rutgers). When I get there, the first thing I do is get my $4 latte. Sometimes I stop by a different Starbucks on a major highway on my way to work. When I look around, people are hosting job interviews and business meetings in the seating area of the store. For years, my wife and I have frequented the Starbucks counters that are inside Barnes & Noble stores for a coffee after a dinner out (which was the case this evening). When I look around, people are reading, working on their laptops, or just enjoying conversations together while sipping their lattes.

The point is that Starbucks has found a way to make itself part of people’s lives, and has done so successfully for years. These days however, Starbucks is facing a recession, new competition, and the loss of customers. But not to worry, I have an idea: Starbucks should focus on making themselves part of the online lives of their customers, particularly in a social way.

Starbucks could build applications that enable users to publicize their favorite Starbucks drinks to their friends, to rate drinks (existing and new), or even to send their friends a latte, virtual or real. They could tie their social application to a Starbucks loyalty card…I can foresee a ‘buy five, give one’ type of program that could potentially bring new customers into the store, or into Starbucks’ social network. And these applications are just the tip of the iceberg. Regardless, Starbucks could increase customer engagement with the brand, tap into the viral nature of social networking to attract new customers, and increase brand loyalty by providing a high quality, fun online experience to its customers and their friends. Oh, and let’s not forget, such a solution would be yet another valuable channel for market research.

Starbucks is a very, very strong brand. Everyone knows Starbucks, and they know what they stand for. Therefore, Starbucks shouldn’t settle for a social networking solution that lives behind someone else’s branded look and feel, such as Facebook or MySpace. Nor should they have to invest millions of dollars for a consulting company to build a custom social networking solution on their behalf. Ringside Networks has already provided a starting point, and better yet, the software is free. For little expense (maybe 1-3 consultants) and in a short period of time, they can stand up their own Starbucks branded social network that immediately taps into the Facebook community, and within months the Myspace and Orkut communities as well (pending Ringside’s implementation of OpenSocial support to be delivered in June).

In my opinion, such a move by Starbucks is a no brainer. Customer acquisition is currently expensive, and a social solution, particularly one that requires minimal investment, is likely to have a return on investment that is off the charts.

Cross Social

Wednesday, April 9th, 2008

A couple of weeks ago I saw the news that MySpace had opened up it’s developer platform, so I went to have a look at it. I like to have a beer after work from time to time, so I added the beer application that I found in the MySpace application directory. I went into the application and identified some of my favorite beers.

Then I got to thinking: some of my current and former coworkers are beer aficionados, and I’m friends with those people on Facebook, not MySpace. So I went onto Facebook and searched for beer applications, and wouldn’t you know it? The most popular beer application was made by the exact same company. So I added the application in Facebook.

Well, it didn’t take very long at all for me to be annoyed with this situation. I already spent five or ten minutes on MySpace adding beers; I sure as hell was not about to do it again on Facebook. The application should enable me to “claim” my data that I entered from MySpace.

This is where I see the Ringside Social Application Server coming into play.  If the beer application was hosted on a Ringside server, it would be able to leverage the cross network identity mapping capability.  Users could then login to the beer application through MySpace, Facebook, or even directly with the beer application where it is hosted.  Regardless, the application would enable the user to say, “I’ve used this application before”, and then login to the account where they used it.  The beer application then maps the user’s identities.  In the end, this means my beers are my beers regardless of what social network I’m on.

The implications of this capability are pretty important.  First, it makes the experience better for application users.  Second, the application extends its reach to more users and improves the quality of its data (since users wouldn’t recreate their data for different social networks).  If I’m the beer application developer, the quality of my data is very important since there are many, many brewing companies who might be interested in gaining access to this data for marketing purposes.  Another benefit from the beer application’s perspective is that it can draw users into its own niche social network of beer drinkers, where they would create profiles.  This, yet again, improves the quality of my data, relating beer information and ratings to demographics.

As more and more applications take advantage of these capabilities (and the coming payment support - but more on that later), some might wonder what the effects will be on the social networks.  I think in the end, the offering from Ringside expands the market.  If I’m Facebook, I can’t just assume that all users will come to me first.  Maybe hard core beer aficionados will go to beerapplication.com first, and find out about Facebook from there due to the application’s integration with Facebook.  Look at this across many niches, and I think you have to assume that people will get to them through search engines, and then end up in MySpace or Facebook as a result of their new knowledge of those services from the niche networks.

Anyway, I can’t wait to bridge the gap between my social networks via this new kind of data portability.

Bottoms Up

Monday, February 25th, 2008

So I was listening to an IT Conversations podcast today, and Valdis Krebs offered quite an interesting perspective. Lately I’ve been thinking about social identity and how people can manage their online identities more efficiently, since I’m not aware of any tools that enable users to bridge social networks with one identity.

Anyway, Krebs asserted that today’s “social networks” such as LinkedIn and Facebook are in fact not very representative of the real world. A person’s social network consists of various groups of people, such as family, friends, coworkers, former coworkers, etc. It does not typically include people that sent you an invite that you feel obliged to accept. Regardless of that, he asserts that the technology that most realistically mirrors a person’s true social network is E-Mail. He suggests that people who go to LinkedIn or Facebook are going to a location that is not part of their natural social network in order to connect with people online; he refers to this as the ‘top down’ approach.

In contrast, a ‘bottoms up’ approach might be to leverage the communications technologies that people already use to build their online social networks. For example, building social applications based on a person’s IM client, E-Mail account, and twitter account would
more closely represent a person’s true social network, while at the same time providing convenience for that person. So the ‘bottoms up’ approach builds the network from the person out, instead of from the network down.

I find this idea very intriguing. From a technology perspective, I don’t see why applications couldn’t be built on top of IM clients as a starting point. As a former colleague of mine (excitedly) points out in a recent blog post, XMPP is an extensible protocol that sits at the heart of some IM client implementations. Why couldn’t social profile information be built out on top of these IM clients?

In fact, some IM providers are halfway there already (XMPP or not). If you try to edit your profile in Yahoo IM or AOL IM, you end up at a web page. This seems like a great place to build out a Facebook clone, if you ask me. It wouldn’t necessarily solve the problem of having multiple social identities (unless that IM provider worked towards that goal via partnering agreements and open standards), but it would bridge the disconnect between the ’social network’ web sites and the actual social networks that people already have in their IM clients.

So maybe OpenID isn’t the best answer to the problem. Maybe XMPP is. I’m certainly not making a proclamation here, but I’m convinced that XMPP deserves more careful thought.

Social ID?

Monday, February 25th, 2008

When I investigated OpenID for the first time, I thought it was a good idea, but not sufficient to solve the problem of online identity management from the standpoint of a single person with identities at many, many web sites.

But what if we narrowed the scope? Instead of asking whether OpenID could be an identity solution for all sites, maybe it could do the job for some segment of web sites. For example, could OpenID be a solution for social identity management? I don’t know about you, but I’m part of four social networks (Friendster, MySpace, LinkedIn, and Facebook), though am active on only two (LinkedIn and Facebook). Certainly there are more social networks out there, and certainly there are many people who are an active part of all of them. I’m sure those people would love it if maintaining their profiles was as simple as making a single update.

Of course this raises another issue: privacy. Some people maintain a professional profile in some networks, and a more social profile on others. To have one social identity would mean that users would need the ability to manage access control of profile information as well as application information. This could definitely be handled technically, but by whom? This is probably going to be the topic of another post.

My OpenID Experience

Friday, February 22nd, 2008

Last night I decided that I’m tired of not knowing what OpenID is all about, so I got one and learned how to use it, and thought about whether or not it is a good thing.

So the big idea as I understand it is that people should be able to have one login for all internet sites, instead of having to create an account at each of the 42 web sites that you use. This can be accomplished via the use of a single trusted source (that being your preferred OpenID provider), and having other web sites defer to it for authentication. Sounds good, right?

If you want to experience this for yourself, here’s how you can do that:

  1. Set up an account with a trusted OpenID provider. I set mine up with Verisign because I trust them.
  2. Go to a web site that supports OpenID and login with your newly created OpenID. Try Plaxo.
  3. Use the OpenID login you created (such as http://[username].pip.verisignlabs.com)
  4. Fill in whatever information is requested (this is made easier by the OpenID provider if you’ve fully set up your profile already)
  5. Determine whether you want to trust Plaxo forever, until a specified date, or just for this one moment
  6. Click “Allow”

So there are a couple of things going on here. First, you’re doing the work of setting up your OpenID up front, so that you may save yourself some time later by not having to re-enter that information when you login to a web site that supports OpenID. Second, you’re setting up your trust relationship with Plaxo up front, so that when you need to login there again, all you have to do is enter your OpenID (such as http://[username].pip.verisignlabs.com) and you are into the site (unless you are not currently logged into your OpenID provider’s site).

What does it all mean? Well for one, you don’t have to remember a password to login to Plaxo or any other web site that supports OpenID; you only need to remember the password for your OpenID and the string that represents your username (such as http://[username].pip.verisignlabs.com or http://[username].myopenid.com, depending on your provider). Additionally, you are you across all OpenID supported sites since your OpenID is unique.

It also means that you have to hope that the entire internet supports OpenID at some point in the future, if you only want to remember one password. If this really is your goal, I don’t think OpenID is your answer; you’ll fare better with some sort of locally installed software package that manages your internet credentials for you.

So all in all, I like OpenID, but it needs much more support. Specifically, I’d like to be me across GMail, Yahoo, LinkedIn, and Facebook for starters. In the meantime, if anyone out there knows of some good online identity management software that I could install locally, please comment here and let me know about it.

My experiences with GWT

Monday, July 24th, 2006

Last week I had a need to build a web application prototype for work, and a real user who I could discuss requirements with. Basically, she needed a relational database with a web front end. Of course, I was thinking AJAX, and built the HTML mockup of the design with those types of interactions in mind.

I pretty much knew I was going to use GWT to implement it…I’ve been wanting to dig in to GWT, and here was a perfect opportunity. Also, in a comment from a prior post, I learned that a new beta of my favorite IDE, IntelliJ IDEA, had just built in a GWT integration. Freakin’ sweet!

So off I went. I built a single GWT module with a form that reacted dynamically to events occuring in several controls. The cool thing was that I had my page design in HTML, and I was able to just add an id to certain table cells with a name that I could refer to within my GWT code. This enabled me to just pick my spot, build my control in Java using the GWT API, and add it to the page. Very nice.

By attaching change listeners on list boxes and click listeners on buttons, I was able to control the entire page whenever an event occurred. Of course, this was all done using Java, and GWT took care of translating it into cross browser compatible JavaScript.

Or so I thought. This was the first noticeable problem I encountered. I had the application running very smoothly in the browser tool that is built into the GWT toolkit, but it did not work in IE, Flock, or FireFox. Quite honestly, it didn’t matter too much for me since I was just building a proof of concept. If you’re part of the GWT crew, ping me and I can look into it further so as to isolate the problem.

The next big problem I had with it is that there was no way that I could see to set the value of a list box to something other than what it displayed. So for example, if I had a list box that contained different products for the user to choose from, I might want the actual value of that list box to be the primary key id from the database for that product. Without the ability to do this, my application loses data integrity. Maybe two products have the same name! What should I do then?

This next one really bugged me quite a bit: I couldn’t figure out how to build multi-page applications within a single GWT module. I know this was a limitation of the IDEA integration, and they’ve filed a bug about it. Again, I didn’t try too hard to figure this out due to the time constraints I had to complete the prototype.
Also, I could not figure out how to obtain multiple values from a multi-select list box. Granted, I didn’t tinker with the API regarding this point, but it certainly wasn’t obvious to me that it was possible. I would have expected a getSelectedValues() method that returned a List to be available as part of the ListBox class.
Finally, GWT does not currently support the use of java.util.Calendar. Instead, you have to use the deprecated java.util.Date class and its deprecated methods. Not a really big deal, except that it makes me feel dirty. I hope they add support soon so I can fix that code!

So overall I’m pretty pleased with GWT, despite the various problems I’ve found with it. Of course, these issues may be the result of my own ignorance…but I digress. GWT saved me from having to fiddle with JavaScript (which has tended to piss me off in the past, particularly when trying to support multiple browsers), took care of all serialization between the client and the server, and had a very easy to work with API. Once I had the AsyncCallback interface in place as per the demo from JetBrains, I was rockin’ and rollin’.

If you’ve worked with GWT, what are your impressions?

Blogged with Flock

How Flock can be better

Sunday, July 16th, 2006

For once, I’m not using my laptop, and as a result, I had a realization. I want to check my news from this computer, but my feeds are not set up here.

I love Flock’s news reader, but from this computer, I can’t use it! I’d have to set up my feeds all over again!

So here’s my suggestion: Integrate flock with both newsgator online and rojo.com, and give users the option to set up their feeds using either of those services as a source. Also, every time a feed is added, they should be added to one of those services as well.

That’s a good one, if I don’t say so myself. I’m hoping the folks at Flock agree, and that we’ll see it in the next beta.

Blogged with Flock