Announcing Broadchoice Workspace Free Edition!

Back when we ran the beta program for Broadchoice Workspace we talked about the possibility of offering a completely free version alongside our subscription-based version. By the time we officially launched the product, just before MAX 2008, we settled on a 30-day trial period and a subscription-only model.

Since launch, we've been evolving the product, streamlining the user experience, simplifying the navigation, providing real-time activity notifications ("toasts") and native application menu support. We've also continued to extend the integration with Salesforce, reducing the data entry burden on sales people.

With our latest release today, we are now offering a free edition of Workspace instead of the previous 30-day trial. You can now download Workspace and use it - for free - for as long as you want. Naturally, the free edition has a few restrictions (shown on the pricing page) but for smaller teams or individuals this provides a great collaboration experience without costing you a penny (or a cent).

We originally provided all of our beta testers with a free one-year subscription to thank them for their help in shaping the initial version of the product. We've converted all the beta accounts over to the free edition so that they can continue to use Workspace indefinitely at no cost.

If you've wanted to check out the AIR application but were put off by the 30-day trial, now is your chance to try it out for free and see how it can help you and your colleagues (and friends!) collaborate on projects!

Recentering Flex Alerts on Application Resize

I recently had a bit of a challenge to tackle with our Workspace application and thought I would share some details. As many of you probably know from trying out the application, Workspace is meant to be kept open to fully capitalize on it's collaborative features. The application provides a lot of behavior that is based on real-time communication, such as content being updated or users being added to Spaces. All of this works quite well right now, and we are already working on more features as well as some simplification of the interface to allow new users to get up and running more quickly.

We have, however, noticed a small but annoying glitch that happens as a result of certain real-time notifications that trigger Flex Alerts. Namely, if the application is minimized and an Alert is triggered, when the application is maximized, the Alert does not appear in the proper place. Normally, an Alert will automatically center itself in the window where it appears. But if the application is minimized, this centering does not happen. So when the app is maximized again, the modal Alert is located far in the upper left corner of the screen, with most of it's content off the screen completely. Users had a hard time figuring out what was happening, and since the Alert is modal, the app can't be used until the Alert is closed. This resulted in a lot of confused users!

I set out to solve this issue by triggering a re-centering of any open Alerts when the application is resized, but this turned out to be more difficult than it first appears. At first, this seemed like it should be fairly simple: the Flex SystemManager object contains a property called popUpChildren, which references any PopUp objects that are open. So no problem, right? Just loop over this list and recenter them.

In a frustrating turn of events, Flex Alert objects are not stored in this list. I'm not sure why, but they aren't. This seems like an oversight or bug, but the fact remains that looking at the popUpChildren wouldn't work. This list appears to only contain any PopUp instances created using the PopUpManager, but not any Alert instances. Nor is there a similar list such as alertChildren. It turns out that Alerts are added to the SystemManager's display list but are not actually kept track of anywhere.

The first part of the solution was to add an application resize event handler that loops through all children of the SystemManager's display list and locates any that are instances of the Alert class:


var systemManager : SystemManager = Application.application.systemManager;

// Look for children of SystemManager that are Alerts, and recenter them.
for ( var i:int = 0; i < systemManager.numChildren; i++ )
{
    var thisChild : Object = systemManager.getChildAt( i );
    if( thisChild is Alert )
    {
        PopUpManager.centerPopUp( thisChild as IFlexDisplayObject );
    }
}

This code actually does work and will recenter the Alert. But in another frustrating turn (and what certainly appears to be another bug), the re-centered Alerts did not display correctly. Any text within the Alert box that was "off the screen" prior to re-centering would not display. I tried triggering an invalidateDisplayList() and invalidateProperties(), but nothing would get the Alert to re-draw the text correctly. I was banging my head against the monitor when my astute colleague Joe Rinehart made a suggestion that turned out to give the desired result:


var systemManager : SystemManager = Application.application.systemManager;

// Look for children of SystemManager that are Alerts, and recenter them.
for ( var i:int = 0; i < systemManager.numChildren; i++ )
{
    var thisChild : Object = systemManager.getChildAt( i );
    if( thisChild is Alert )
    {
        PopUpManager.removePopUp( thisChild as IFlexDisplayObject );
        PopUpManager.addPopUp( thisChild as IFlexDisplayObject, this );
        PopUpManager.centerPopUp( thisChild as IFlexDisplayObject );
    }
}

Essentially, you have to kick Flex in the head by removing the Alert, re-adding it, and then re-centering it for good measure. All of this seems like a lot of hoops to jump through to accomplish something that seems like it should be rather easy to do, but there you have it. Going forward, we'll probably set up some sort of centralized manager class that can be used to create and keep track of both Alerts, PopUps, and any other components that need to display at the very top display list of the application (such as Callouts and Tooltips), and we're also looking at some Growl-like notifications to minimize the use of Alerts. But that's a topic for another day (probably in the very near future though). In any event, hopefully this post will help anyone who ends up in a similar situation!

Some Code Statistics for Broadchoice Workspace

Now that the Broadchoice Workspace has been officially released, I thought I'd post a quick entry with some code statistics. I ran the codebase through a line counting tool that gives a breakdown by file, folder, language, etc. We all know that lines of code is not a very good way to judge quality or effort, but it is still interesting in a general way. This is only lines of code, all blank lines and comments were excluded:

  • Total Lines of Code: 50,125
  • Total Files: 633
  • Lines of MXML: 10,784
  • Lines of ActionScript: 12,675
  • Lines of CFML: 7,730
  • Lines of Groovy: 8,878
  • Lines of XML: 1,757
  • Lines of CSS, HTML, JavaScript, etc.: 7,612
  • Lines of SQL: 1,089
  • Lines excluded as comments or blank: 15,778

Workspace Beta 1 Build 4 is live!

This was primarily a bug fix release as we prepare for our official product launch. Build 4 (3.0.0.rev.5695) includes nearly 60 fixes and enhancements with the most notable being:

  • The invitation mechanism has been fully integrated into the AIR application so you can invite users directly into groups and spaces
  • The login dialog now has options to create a new account and retrieve your password (in case you forgot it!)
  • The activity feed search is greatly enhanced, allowing you to search for replies or by types of content or updates vs new content (essentially all of the "filler" words we add when feed items are constructed are searchable now)
The bug fixes are mostly cosmetic but include the activity feed issue that several people spotted where a content update still said "added" in the feed!

A big thank you goes out to all our beta testers who have really been putting the application through its paces and providing a lot of excellent feedback and some great suggestions!

Workspace Beta 1 Build 3 is live!

I'm a day late getting this news out - and all our beta testers have already been notified - but we've added so much new functionality in this build that I wanted to blog about it.

This new build addresses three main areas, based on feedback from beta testers and our own roadmap:

  • Activity feed improvements
  • Salesforce integration
  • Collaboration around notes

The activity feed now provides hot links for the author, the space and the item being added/edited so that you can easily navigate from the activity feed to a specific user, space or content item. This was on our roadmap from day one but took a couple of iterations to arrive at the best implementation (and we're refining it slightly for Build 4, coming soon). You can also reply to messages in the activity feed by clicking on the new "Reply" icon. Replies are automatically posted to the appropriate space and clearly marked as replies. These changes make the activity feed one of the core navigation idioms in the Workspace.

Salesforce integration allows you to connect a Group with a Salesforce API account so that users within that group can automatically see their active opportunities, directly within the Workspace, and easily create collaborative spaces associated with each opportunity. This allows them to have non-Salesforce colleagues help them work on closing deals. We demo'd this new feature at the recent Dreamforce conference (for Salesforce users and developers) and we got a lot of positive feedback on this!

Finally, we have enhanced notes in several ways. We have replaced basic plain text with a Rich Text Editor to allow simple HTML notes to be created. We have expanded the note editor to fill the center panel in the application. We now allow you to mark notes as being editable by other users in your collaborative space. This makes notes much more useful for collaboration. We'll be expanding some of these features into tasks at some point.

And of course we fixed a number of bugs and added a number of minor enhancements (such as adding the ability for group and space owners to remove users or completely delete the group or space).

We're hard at work on Build 4 which will substantially enhance the way Workspace users invite friends and colleagues to participate, as well as allowing new users to sign up directly. Eagle-eyed users will have noticed the "beta" tag has disappeared from the logo in Build 3 and won't be surprised to learn that the last wave of beta testers have been added to the program. Our beta program is closing (and we'll have exciting news for our active beta participants shortly) and the Workspace will be launched officially very soon.

Workspace Updated and another iPod Giveaway

Yes, we're giving away an iPod Nano each week to our beta testers to thank them for their suggestions that will help us make Broadchoice Workspace even better. This week's giveaway is intended to help us test the discoverability of new "public" spaces. We've added a space called "iPod Giveaway" and all you have to do to be eligible is find the space and join it! More details will be posted shortly inside the Workspace itself.

If you're not already part of our beta program, find a friend or colleague who is and ask them to invite you into the program!

Of course, we're also giving away the iPods to encourage more people to join the beta program. We've been watching the trends in invitations sent and accounts activated and we're pleased to see ratios continuing to climb - indicating that increasing numbers of people are inviting friends and colleagues into the program and more people who receive invites are logging in to try the system out. Several of our beta testers are inviting many of their colleagues and using Workspace for real-time collaboration on projects within their organization, getting real value out of our service!

Today's minor update to the Workspace changes the default time filter for activity feeds so that even low-traffic spaces still have their activity displayed. We'll be adding a user-specified time filter shortly so you can customize how much (or how little) activity content you want to see.

In the next build we'll be adding more of the "most requested features" as well as an initial integration with Salesforce.com to allow spaces to be created around opportunities in your Salesforce account.

Workspace Beta 1 Build 2 is live!

If you're in the Workspace Beta program, you should have received an email by now telling you about the new features in this build and asking you to install and test it. Some of our beta participants have already been creating their own groups and providing feedback on the redesigned space navigation (they like it!)

If you're not yet in the Workspace Beta program, you can download the Workspace from the Broadchoice website.

New Workspace Beta Build Coming Soon

We're finishing off the next build of the Broadchoice Workspace and wanted to talk about some of the changes coming in the new build.

The biggest new feature is Groups. A group can represent a company or an organization and offers a private place where people and spaces are separated from other groups. As a group administrator, you control who is part of that group. As we add integration with external systems, this will be how we partition access to those systems. Each group has its own directory of spaces:

This directory lists spaces that have been marked "public" - another new feature in this build. You may join / leave any public spaces within each group using this directory.

When you create a new space, you can place it in any group to which you belong. You can also choose to make the space public - so it appears in the directory for that group - or leave it private so you can control who joins the space.

Adding groups means that the left hand navigation no longer has all spaces together in a single "SPACES" tree but instead has a subtree for each group to which you belong, making it easier to organize and navigate your spaces.

We've also changed the navigation within a space. We discovered that some people did not realize that each space was an expandable tree containing files, notes, tasks etc. They clicked on the space name in the tree, saw the activity feed, and thought that was it. The fact that the expanding arrow in the navigation tree did not highlight when a space was selected contributed to that problem. Here's what the old navigation looked like:

If you clicked on a space name, the tree did not expand but you saw the activity feed and could no longer see the expanding arrow next to the space name. Several beta testers pointed this out (thank you!) so we have removed the tree below a space name and instead switched to a tab bar that appears when you click on a space name:

This makes it easier to discover the functionality of the Workspace and should help people realize the collaborative possibilities more easily. The owner of a space will see a "Settings" tab that allows them to change the name, description and public/private status of a space.

In addition to these new features, we have fixed a number of bugs - including the most requested issue of supporting"quit" (as opposed to just closing the Workspace window); we have overhauled how file upload / download is presented, as well as the underlying multi-file operations; added the ability to remove users from spaces you own; made it possible to unpublish content from a space (rather than just deleting it); allowed for a personal message to be included in invitations you send to friends and colleagues; and many more.

Once the new build is deployed we'll update the Getting Started Guide with more details of these new features as well as bug fixes and so on.

You can download the Workspace from the Broadchoice website.

Coming up for AIR!

The team has been very quiet since mid-September. We've been hard at work on the initial beta version of our new AIR-based Broadchoice Workspace product which we launched in private beta on Thursday October 16th. That was actually about a month ahead of our original schedule so we scaled back a few of the features. So far the response has mostly been very positive amongst our beta testers and most of the suggestions they have been making are for things that are already on our roadmap - which is great validation of what we have been planning!

We're planning a new beta release each week, adding features and fixing bugs reported by beta participants. The beta program will remain private for the next few releases but anyone in the program is able to invite their friends and colleagues so if you can find someone who already has access, you might be able to persuade them to send you an invitation! So far, on average, every active beta participant has invited a friend or colleague into the program and we're seeing increasing rates of account activation as the number of participants grow - which is also very encouraging!

Internally at Broadchoice, we've moved from using an internal prerelease build of the Workspace to using the external beta build as a way to collaborate on features and design and business planning around the promotion of the Workspace product. It has dramatically reduced the amount of email we need to send around the company and has made file sharing much easier. As we continue to add features over the next few builds, collaboration will become even easier and we expect to see beta participants come to rely more and more on the Workspace application.

Over the next few weeks, we'll be blogging more about the technical aspects of the product. Stay tuned!

Behind The Curtain ... continued

A few days back Sean gave us all a sneak peak of the Broadchoice Workspace. He also mentioned we're all very busy lately, and guess what ... the Broadchoice Workspace is not the only application we're working on. Today I'm going to introduce the Broadchoice Workspace Analytics platform.

[More]

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.9.2.002. Contact Blog Owner