Partly Cloudy with a Chance of Hype

April 30th, 2010 by Mike 2 comments »

Last night I gave a presentation at the Colorado Springs Open Source Users Group on the topic of cloud computing called “Partly Cloudy with a Chance of Hype.”  If you were there, I’d love to here your feedback! The slides are posted to Slideshare.

Actionable Activity Streams

April 21st, 2010 by Mike No comments »

Since writing my last article for TheNextWeb on Socialcast and my conversation with Tim Young, I’ve been thinking about the bidirectional, actionable activity stream concept. It’s less relevant to human constructed messages and more related to machine generated activity messages, specifically exceptions raised from the system. When a source system generates an exception based message that’s put into an activity stream, then generally they require some action or acknowledgement . This is where things can get interesting.

For example, let’s say there is an expense management system for managing employee expense reports and payments. Employee Joe submits an expense report with $750 in miscellaneous “entertainment” expenses which raises an exception. The expense management system is integrated with an activity stream engine; it posts a new message into a stream alerting Jim of the exception (this is where permissions, users, groups, identity, etc get tricky – ignoring that here).

So that’s well and good, Jim is alerted to the exception but now what? Wouldn’t it be great if Jim could act on the message in context?

For example, he could discuss the exception with Joe in context of message in the activity steam. “@joe I need more details on the $750 entertainment charge, and it better be good!” Joe replies, “whoops! sorry that should have been $75, please reject and I will fix.” Jim then rejects the expense report in context of the stream and inherently passes along the stream conversation back to the expense management system as notes to the expense report.

Traditionally, Jim may have received the exception notification via email. He then would have logged into the expense management system, looked at the expense report and either rejected it, notating his question about the entertainment expense or would have emailed Joe asking for details on the expense. Joe then might have replied to Jim or logged into the expense system to add a note and fix the error. This doesn’t sound that bad in this simple scenario, but Jim is very busy and receives hundreds of emails a day and the notification from the system might likely be passed over or Jim just didn’t have time to interrupt what he was doing to go log into the expense management system.

The exception based activity stream use case is more powerful if it allows action to be taken in context. So how might you handle this? Now I’m no activity stream expert, and I’ve had no involvement with any of the standards like activitystrea.ms; I’m just a guy thinking aloud….

What really got me thinking about this use case was a presentation given by Neal Ford at the last social on Implementing Evolutionary Enterprise Architecture. It was primarily based on the Richardson Maturity Model, a model of breaking down REST into three steps that introduces resources, http verbs and hypermedia controls. A hypermedia service enforces a protocol by advertising legitimate interactions with relevant resources at runtime.

In the context of the machine generated activity stream message, the payload of the message would contain a representation of state with respect to the source system activity and links that define possible interactions.

The point of the hypermedia controls is to tell us what we can do next, and the URI of the resource we need to do it. For example, in the example above. The entry might look something like this, with two links – one for approve and the other for reject.

This is a loosely coupled way to provide actions for a given activity. The activity stream system can present the activity message in the stream with the options made available in the payload of the message and selectable actions. This makes no assumption of what type of interface you are viewing the activity stream message through, be it browser, mobile, API rendered, etc. The activity stream system would likely need to abstract the actions in it’s API allowing calls to be made back through the APIs in proxy to the source system.

You could obviously take this concept much further, adding a sequence of actions based on the previous action taken on an activity. For example, if you approve the expense report, the REST call response might return a new list of actions like “view’ the updated expense report.

Like I alluded to above, there are many complexities to this including authentication/identity, authorization, the capabilities of the source system, the capabilities of the activity stream system, etc.

I really have no bandwidth to pursue this idea, but it’s been on my mind for that last few weeks so I thought I’d write it up and see what people think.

Grails Solr Plugin Progress Screencast

March 3rd, 2010 by Mike 20 comments »

I started work on this plugin back in December based on the work I did for Patheos.com and by the graces of my employer Avalon Consulting LLC and Patheos, they allowed me to open source the plugin and continue working on it. This week I had some time to get back to it, and today I started creating a basic reference implementation application that will accompany the documentation. Below is a screencast demo of this application which indexes an export of songs from my iTunes library metadata and makes them searchable.

The code for the plugin is at Github and is still a work in progress.  I’m pushing towards a 0.1 release next week with the bulk of the work I still need to do in the form of documentation and clean-up.

So please watch the screencast, and I would love feedback.  I will certainly take offers to help continue the development of the plugin but would like to get 0.1 out first to round out my train of thought and not further delay that basic milestone.

Grails Solr Plugin pre-0.1 Demo from mbrevoort on Vimeo.

Issue negotiating SSL connections from Weblogic

February 16th, 2010 by Mike 2 comments »

This was one of those tough to track down issues that yielded very little in terms of actionable solutions vs. confirmation of similar problems while I Googled the problem symptoms.  I recently upgraded a Grails app from Weblogic 8 to 10.3. The app allowed users to upload videos to Youtube using the Youtube APIs, using ClientLogin for authentication. The problem was after the upgrade the connection to https://www.google.com/accounts/ClientLogin was failing during the SSL negotiation phase.  The errors in the log were

java.lang.IllegalStateException: Cipher not initialized
at javax.crypto.Cipher.c(DashoA13*..)
at javax.crypto.Cipher.update(DashoA13*..)
at com.certicom.tls.provider.Cipher.update(Unknown Source)

and

java.security.InvalidKeyException: Illegal key size

Thankfully I found this thread on a Korean Oracle forum. The solution is to add this JVM parameter:

-Dweblogic.security.SSL.nojce=true

This enables Weblogic to use a FIPS 140-2 compliant crypto module in the server’s SSL implementation.  FIPS 140-2 is a standard that describes U.S. Federal government requirements for sensitive, but unclassified use.

If you have this problem, I hope you stumble upon this post and it helps you.


DOSUG Solr in 5 Minutes Ingnite Presentation

February 4th, 2010 by Mike No comments »

On Tuesday (2/2/2010) I participated in the Denver Open Source User Group’s first Ignite night. My presentation was an quick overview of Solr, the java based open-source search engine. This was my first Ignite style presentation, and the format is challenging! The presentations were each 5 minutes with a 20 slide deck auto advancing every 15 seconds. I stumbled a bit out of the gate with the cold start but was able to get it back on the rails though I felt as if I was trying to dig myself out of quicksand through the rest of it. Overall it was a lot of fun.

The room was packed, somewhere in the neighborhood of 100 people, and overall the quality of the presentations were very good. You can check out the slide decks on Slideshare here. Here are my slides:

And here is a dry-run of my presentation I recorded while practicing the day of:

Annotations with Grails

December 29th, 2009 by Mike 14 comments »

Recently I’ve been heads down writing a Grails Solr plugin for using Solr to index and search Grails domain objects, content and other documents. I share more on that in the next several day and weeks.  While doing so I implement annotations for the first time. In this example, I create an annotation type that lets you annotate a class property to specify a custom Solr index field name.  In usage it looks like this:

import org.grails.plugins.solr.Solr
class aDomain {
  @Solr(field="thedomainstitle")
  String title
}

The imported class above is actually an interface that defines the annotation:

package org.grails.plugins.solr
import java.lang.annotation.*

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Solr {
  String field();
}

This is fairly self explanatory. The name of the annotation is “Solr” and there is one propery field with a value of String. Almost identical to the java equivalent.

Now to access the annotation value for the field, you simply need the get a reference to the annotation and call the method on it defined above: field(). So with a bit of context below, I define an indexSolr() method for each domain class, loop through each property and check if there is an annotation of Solr defined for the field, if so I set the value of field() to the docKey which is used as the Solr field name for the property.

application.domainClasses.each { dc ->
  dc.metaClass.indexSolr < < { ->
    //.......
    application.getArtefact(DomainClassArtefactHandler.TYPE, delegate.class.name).getProperties().each {
      //.......
      def theField = delegate.class.declaredFields.find{ field -> field.name == it.name}

      if(theField.isAnnotationPresent(Solr)) {
        docKey = theField.getAnnotation(Solr).field()
      }
      //........
    }
    //........
  }
}

Powerful, yet simple.

Support ManeGait in Chase’s Facebook Community Giving Campaign

November 19th, 2009 by Mike No comments »

My company Avalon Consulting LLC has done a lot of charitable work for ManeGait including developing and managing their website. They are an amazing non-profit therapeutic horsemanship center in Colin County, TX.  I encourage you to vote for ManeGait in Chase’s Facebook Community Giving Campaign!

Mane Gate Logo

A Fresh Start

November 19th, 2009 by Mike No comments »

Tonight I updated the theme on my blog with something that’s just more clean and fresh using the Green Park 2 theme by Cordobo, and  I added the Wordpress Mobile Pack theme plugin for user-agent based viewing on mobile devices. I replaced how I was pulling in my twitter feeds with the Wickett plugin, set up IntenseDebate for commenting and replaced my share icon set with “Sexy Bookmarks”. Wordpress has really come a long way! Super impressed by all of the amazing extensions available.

I hope to get back to a frequency of a post a week here. Though I haven’t posted here regularly, I have made a few contributions to thenextweb.com including my latest post on my takeaways from the Defrag conference here in Denver last week.

This is Not Comcastic

October 10th, 2009 by Mike No comments »

I wrote a script that pings the IP of the first node outside of my house into Comcast’s network. It pings every two seconds and logs when the connection is up or down based on the ping success. Last week Comcast came and checked my line and said everything looked great and that it may be the onslaught of the cold weather. I’ve been working through Comcast support via Twitter which has been sporadic but convenient when they respond. Today I couldn’t get a response from them (@comcastmelissa and @comcaststeve) and today sucked:

Fri Oct 09 08:20:12 MDT 2009 DOWN!
Fri Oct 09 08:23:41 MDT 2009 UP
Fri Oct 09 09:31:39 MDT 2009 DOWN!
Fri Oct 09 09:31:39 MDT 2009 UP
Fri Oct 09 09:32:15 MDT 2009 DOWN!
Fri Oct 09 09:32:26 MDT 2009 UP
Fri Oct 09 09:33:27 MDT 2009 DOWN!
Fri Oct 09 09:33:27 MDT 2009 UP
Fri Oct 09 09:33:48 MDT 2009 DOWN!
Fri Oct 09 09:33:48 MDT 2009 UP
Fri Oct 09 09:34:14 MDT 2009 DOWN!
Fri Oct 09 09:34:14 MDT 2009 UP
Fri Oct 09 09:34:30 MDT 2009 DOWN!
Fri Oct 09 09:34:30 MDT 2009 UP
Fri Oct 09 09:34:56 MDT 2009 DOWN!
Fri Oct 09 09:34:56 MDT 2009 UP
Fri Oct 09 09:36:13 MDT 2009 DOWN!
Fri Oct 09 09:36:13 MDT 2009 UP
Fri Oct 09 09:37:24 MDT 2009 DOWN!
Fri Oct 09 09:37:46 MDT 2009 UP
Fri Oct 09 09:38:42 MDT 2009 DOWN!
Fri Oct 09 09:38:42 MDT 2009 UP
Fri Oct 09 09:39:28 MDT 2009 DOWN!
Fri Oct 09 09:39:51 MDT 2009 UP
Fri Oct 09 09:41:37 MDT 2009 DOWN!
Fri Oct 09 09:41:37 MDT 2009 UP
Fri Oct 09 09:42:43 MDT 2009 DOWN!
Fri Oct 09 09:42:43 MDT 2009 UP
Fri Oct 09 09:44:50 MDT 2009 DOWN!
Fri Oct 09 09:44:50 MDT 2009 UP
Fri Oct 09 09:45:21 MDT 2009 DOWN!
Fri Oct 09 09:45:21 MDT 2009 UP
Fri Oct 09 09:46:02 MDT 2009 DOWN!
Fri Oct 09 09:46:13 MDT 2009 UP
Fri Oct 09 09:47:25 MDT 2009 DOWN!
Fri Oct 09 09:47:25 MDT 2009 UP
Fri Oct 09 09:47:56 MDT 2009 DOWN!
Fri Oct 09 09:47:56 MDT 2009 UP
Fri Oct 09 09:48:22 MDT 2009 DOWN!
Fri Oct 09 09:48:22 MDT 2009 UP
Fri Oct 09 09:50:08 MDT 2009 DOWN!
Fri Oct 09 09:50:08 MDT 2009 UP
Fri Oct 09 09:51:40 MDT 2009 DOWN!
Fri Oct 09 09:51:40 MDT 2009 UP
Fri Oct 09 09:52:06 MDT 2009 DOWN!
Fri Oct 09 09:52:06 MDT 2009 UP
Fri Oct 09 09:52:37 MDT 2009 DOWN!
Fri Oct 09 09:52:37 MDT 2009 UP
Fri Oct 09 09:53:08 MDT 2009 DOWN!
Fri Oct 09 09:53:08 MDT 2009 UP
Fri Oct 09 09:53:44 MDT 2009 DOWN!
Fri Oct 09 09:53:44 MDT 2009 UP
Fri Oct 09 09:54:25 MDT 2009 DOWN!
Fri Oct 09 09:54:25 MDT 2009 UP
Fri Oct 09 09:54:51 MDT 2009 DOWN!
Fri Oct 09 09:54:51 MDT 2009 UP
Fri Oct 09 09:55:38 MDT 2009 DOWN!
Fri Oct 09 09:55:49 MDT 2009 UP
Fri Oct 09 09:57:00 MDT 2009 DOWN!
Fri Oct 09 09:57:00 MDT 2009 UP
Fri Oct 09 09:57:16 MDT 2009 DOWN!
Fri Oct 09 09:57:16 MDT 2009 UP
Fri Oct 09 09:57:42 MDT 2009 DOWN!
Fri Oct 09 09:57:42 MDT 2009 UP
Fri Oct 09 09:57:58 MDT 2009 DOWN!
Fri Oct 09 09:57:58 MDT 2009 UP
Fri Oct 09 09:58:39 MDT 2009 DOWN!
Fri Oct 09 09:59:12 MDT 2009 UP
Fri Oct 09 09:59:28 MDT 2009 DOWN!
Fri Oct 09 09:59:28 MDT 2009 UP
Fri Oct 09 09:59:55 MDT 2009 DOWN!
Fri Oct 09 10:00:17 MDT 2009 UP
Fri Oct 09 10:00:43 MDT 2009 DOWN!
Fri Oct 09 10:00:43 MDT 2009 UP
Fri Oct 09 10:02:24 MDT 2009 DOWN!
Fri Oct 09 10:02:24 MDT 2009 UP
Fri Oct 09 10:02:45 MDT 2009 DOWN!
Fri Oct 09 10:02:45 MDT 2009 UP
Fri Oct 09 10:03:11 MDT 2009 DOWN!
Fri Oct 09 10:03:11 MDT 2009 UP
Fri Oct 09 10:03:37 MDT 2009 DOWN!
Fri Oct 09 10:03:37 MDT 2009 UP
Fri Oct 09 10:04:14 MDT 2009 DOWN!
Fri Oct 09 10:04:25 MDT 2009 UP
Fri Oct 09 10:04:56 MDT 2009 DOWN!
Fri Oct 09 10:04:56 MDT 2009 UP
Fri Oct 09 10:05:12 MDT 2009 DOWN!
Fri Oct 09 10:05:12 MDT 2009 UP
Fri Oct 09 10:05:33 MDT 2009 DOWN!
Fri Oct 09 10:05:55 MDT 2009 UP
Fri Oct 09 10:06:11 MDT 2009 DOWN!
Fri Oct 09 10:06:11 MDT 2009 UP
Fri Oct 09 10:06:27 MDT 2009 DOWN!
Fri Oct 09 10:06:49 MDT 2009 UP
Fri Oct 09 10:07:05 MDT 2009 DOWN!
Fri Oct 09 10:07:05 MDT 2009 UP
Fri Oct 09 10:07:21 MDT 2009 DOWN!
Fri Oct 09 10:07:32 MDT 2009 UP
Fri Oct 09 10:07:48 MDT 2009 DOWN!
Fri Oct 09 10:07:59 MDT 2009 UP
Fri Oct 09 10:08:15 MDT 2009 DOWN!
Fri Oct 09 10:08:37 MDT 2009 UP
Fri Oct 09 10:08:53 MDT 2009 DOWN!
Fri Oct 09 10:08:53 MDT 2009 UP
Fri Oct 09 10:09:14 MDT 2009 DOWN!
Fri Oct 09 10:09:14 MDT 2009 UP
Fri Oct 09 10:10:10 MDT 2009 DOWN!
Fri Oct 09 10:10:11 MDT 2009 UP
Fri Oct 09 10:10:37 MDT 2009 DOWN!
Fri Oct 09 10:10:37 MDT 2009 UP
Fri Oct 09 10:11:38 MDT 2009 DOWN!
Fri Oct 09 10:11:38 MDT 2009 UP
Fri Oct 09 10:13:04 MDT 2009 DOWN!
Fri Oct 09 10:13:04 MDT 2009 UP
Fri Oct 09 10:14:21 MDT 2009 DOWN!
Fri Oct 09 10:14:21 MDT 2009 UP
Fri Oct 09 10:15:07 MDT 2009 DOWN!
Fri Oct 09 10:15:07 MDT 2009 UP
Fri Oct 09 10:15:43 MDT 2009 DOWN!
Fri Oct 09 10:15:43 MDT 2009 UP
Fri Oct 09 10:15:59 MDT 2009 DOWN!
Fri Oct 09 10:15:59 MDT 2009 UP
Fri Oct 09 10:30:30 MDT 2009 DOWN!
Fri Oct 09 10:30:30 MDT 2009 UP
Fri Oct 09 10:30:56 MDT 2009 DOWN!
Fri Oct 09 10:30:56 MDT 2009 UP
Fri Oct 09 10:32:07 MDT 2009 DOWN!
Fri Oct 09 10:32:07 MDT 2009 UP
Fri Oct 09 10:33:18 MDT 2009 DOWN!
Fri Oct 09 10:33:18 MDT 2009 UP
Fri Oct 09 10:33:34 MDT 2009 DOWN!
Fri Oct 09 10:33:34 MDT 2009 UP
Fri Oct 09 10:36:26 MDT 2009 DOWN!
Fri Oct 09 10:36:26 MDT 2009 UP
Fri Oct 09 13:12:12 MDT 2009 DOWN!
Fri Oct 09 13:15:30 MDT 2009 UP
Fri Oct 09 13:52:12 MDT 2009 DOWN!
Fri Oct 09 13:53:08 MDT 2009 UP
Fri Oct 09 14:34:14 MDT 2009 DOWN!
Fri Oct 09 14:35:09 MDT 2009 UP
Fri Oct 09 15:08:11 MDT 2009 DOWN!
Fri Oct 09 15:11:29 MDT 2009 UP
Fri Oct 09 16:26:15 MDT 2009 DOWN!
Fri Oct 09 16:29:22 MDT 2009 UP
Fri Oct 09 17:26:26 MDT 2009 DOWN!
Fri Oct 09 17:26:26 MDT 2009 UP
Fri Oct 09 17:27:17 MDT 2009 DOWN!
Fri Oct 09 17:27:17 MDT 2009 UP
Fri Oct 09 17:29:14 MDT 2009 DOWN!
Fri Oct 09 17:29:14 MDT 2009 UP
Fri Oct 09 17:30:35 MDT 2009 DOWN!
Fri Oct 09 17:30:35 MDT 2009 UP
Fri Oct 09 17:31:21 MDT 2009 DOWN!
Fri Oct 09 17:31:22 MDT 2009 UP
Fri Oct 09 17:31:58 MDT 2009 DOWN!
Fri Oct 09 17:31:58 MDT 2009 UP
Fri Oct 09 17:33:14 MDT 2009 DOWN!
Fri Oct 09 17:33:14 MDT 2009 UP
Fri Oct 09 18:25:03 MDT 2009 DOWN!
Fri Oct 09 18:25:03 MDT 2009 UP

Yammer, Socialcast, Present.ly… and SocialWok

October 10th, 2009 by Mike 4 comments »

I’ve spent the last several weeks diving into many of the “enterprise”/private SaaS microblogging services available (a.k.a Twitter for the enterprise).  Wow it’s been quite a while since I blogged! I’ve spend most of my “sharing” time on Twitter the last year.

This all began when I was trying out the new “social” features of Confluence.  I really like confluence, and I like the new features like status updates and following other users, but it still is a bit limited.  So I started poking around and tried out SocialText and my first impression was that it felt disheveled; it’s much more than a micro-blogging platform and more comparable to Confluence in fact.  I decided to turn my focus on the more pure play microblogging apps.  So I began a series of twitter searches to see what people were mentioning most with respect to “enterprise twitter”, “micro-blogging”, etc.  So I decided to take a look at: Yammer, Socialcast and Present.ly.

I created accounts in each of these and invited a couple coworkers.  My general first impression of each was as follows.  Yammer was very clean and unintimidating; it felt like you could just jump in and start using it.  Socialcast’s UI turned me off right away as it “felt” a bit dated (a little petty I know, but a first impression none the less).  There seemed to be a little more to it than yammer with the categorizations and the ability to import from a list of outside services (Flickr, YouTube, Digg, Facebook, Slideshare, etc.).  Present.ly was the only one of the three to impose the 140 character status limit but would allow you to attach text or a file, and it was “busy”. There were giant question mark icons and @ symbols next to some updates.  Given these first impressions, I picked Yammer for my organizational experiment.  I wanted to see how micro-blogging fit culturally and within the dynamics of my organization.

So we’re trying out Yammer, but also spent some additional time with Present.ly and Socialcast.  Overall the micro-blogging “experiment” is going really well and here’s my quick take on each service.

Yammer

Yammer

Overall Yammer has a very low barrier to entry, easy to register and easy to begin contributing.  The feed can display as threaded or mixed chronological (like Twitter).  The threaded view is only a single level threading though.  Yammer comes in three levels: Basic (free), Silver ($3/user/mo) and Gold ($5/user/mo) and only has a SaaS hosting model so there is no longer a behind the firewall option.  Yammer segments your network strictly by email domain and you cannot invite members outside of your domain unless you are at a paid level.  At the Basic level each user “owns” their data where with the paid version the user owns the data and you can’t get an export of the data unless you are at the Gold level.

Yammer’s desktop client is mediocre and the search capability is basically dysfunctional.  There is a 3rd party Mac OS native application called Gabble that is a big improvement over the official yammer desktop client.  You have a threaded view capability but no search capability.  There’s a Firefox extension that works much like the Twitter extension that  works well to keep you in the loop announcing “YAM” every time a new message was posted and twitter integration allowing twitter updates to flow into Yammer if you add the tag #yam to your tweet.  There’s several other extension that I didn’t try.  Yammer’s new iPhone app is really, really good.  There’s a push capability and the ability to post photos.  One of my coworkers said the 3rd party Android app worked well, but as I tried to find a link for it at nullwire all of the information is gone and the site is pretty much stripped.

Yammer’s group capability allows for public or private groups and what is really nice is the ability for each user to specify notification preferences for each group (email, IM or SMS).  The profile has a good mix of data but doesn’t allow for custom fields.  There’s also a very nice self directed org chart feature that allows each user to specify who they report to, manage and work with.  I did not try the API.

Socialcast

Socialcast

Though I didn’t pick Socialcast for the experiment, there’s something about them that makes me want to like them.  Maybe it’s how responsive and friendly they are (thanks @carrieyoung @socialcast); I don’t know.  This week Socialcast released a new version that included a a UI overhaul which is MUCH better.  They also launched a Social Business Intelligence capability that looks really compelling.  With Socialcast you own your own data and can request a full data export even in the free version.  They offer two versions: Basic (Free, SaaS) and Enterprise (Behind the firewall virtual appliance, price? offered as SaaS as well?).  Even in the basic version you can “claim” your administration rights and then set your theme, upload a custom logo, manage various metadata and view reports.  You can also send a broadcast messages to the entire community.

In Socialcast you can create custom streams based on people or tags/keywords.  There is similar group functionality as in Yammer, but Socialcast doesn’t have the custom notification settings I liked in Yammer.  The profile is similar to Yammer though you can add custom profile questions.

The desktop app is functional, bland from a UI perspective.  You can’t seem to filter by custom streams or groups but you can filter by categories or types of messages.  The search works much better than Yammer’s desktop search.  They have an iPhone optimized mobile site that works well, but no native mobile apps.  They do have a nice Google gadget though that’s perfect for those organizations using Google Apps.   The REST API looks very capable.

Present.ly

Present.ly

I spent the least amount of time using Present.ly though it is a very capable service as well.  There is a free SaaS version and an enterprise behind the firewall version with perpetual licenses by number of users.  Even the free version has a superior array of configurability allowing you to set custom mail servers, LDAP servers, etc.  There’s a nice array of apps including an iPhone, Android, Blackberry and Windows mobile versions.  I did discover that if you upload a video file (in this case an avi) that Present.ly would process it and render in an integrated player – that was sweet.

SocialWok

SocialWok

At the tail end of my research I stumbled upon SocialWok – basically a social app for Google Apps that runs on Google App Engine.  Since we use Google Apps internally I was excited by the prospect of this app.  With many thousands of companies using Google Apps, already having taken the SaaS cloud plunge, I believe SocialWok is in an incredible sweet spot.  IMO there’s still some key areas of development to be done, specifically there are not private groups and though the UI is a blatant (and intentional) Google copy it’s still rough around the edges in places.  However, the core functionality is there and there’s a solid foundation to build on.  I’m certainly going to keep my eye on SocialWok.

Overall I learned a lot from my survey of these services.  Yammer was the simplest to use and had a stable of applications and even some 3rd party apps.  They seem to have the most momentum and the largest user base.  Thus you have to pay for data “ownership”, the ability to export, etc. Socialcast in my mind is the most exciting given their new Social Business Intelligence capabilities and the strength of their platform as a whole.  Like I said before, for some reason I just like them.  Present.ly seems very capable and would certainly warrant more time if I had it.  SocialWok has reinvented itself exclusively for Google Apps, and they are going to develop the hell out of the niche they are in.

So there are some key differences between each of these services, some others I didn’t mention and many features and capabilities that I just didn’t have time to mention.  In truth I just scratched the surface.  The best way to learn about these services is to sign up for account and try them out first hand.  It’s so easy to get going that it’s scary.  I can only imagine that there are 1000’s of rogue yammer communities out there operating under the noses of organizations.  These things can be very difficult to control once they proliferate.  Now I wonder when Twitter will join the party?  With a $1B valuation and very little revenue you would think that enterprise micro-blogging would be a strategic opportunity for growth…

Powered by Web Design Company Plugins

Switch to our mobile site