Monday, October 5, 2009

The Monthly Release Cycle (or why it's not every two weeks)


The days of a long release cycle are gone.

A year ago, we'd plan this big feature for BigBlueButton, estimate that it would take two months, then end up finishing in four months (twice as long). And while the feature was good, we felt we had somehow missed the mark.

During the past six months, we've released a new version almost every month. This is due to our adopting a more agile development process: two week sprints, daily stand ups, and putting everything in an issue tracking system. The funny part is, we initially wanted to release every two weeks, but we ended up releasing every four weeks (again, twice as long!).

That's OK. In looking closer at our release cycle, our extra effort is a mixture of (a) testing, (b) working on customer-oriented projects for integration of BigBlueButton (which tends to accelerate other features, which is good), and constant refactoring of existing code. All good stuff for a healthy open source project. So, externally, you'll see we now release every month, but internally we are trying to keep our efforts to two week iterations to account for the above.

If you want to see what's planned for our upcoming iteration for this month (October), check the issues tagged for BigBluebutton 0.62 release

Thursday, September 17, 2009

Release of BigBlueButton 0.61

We've released BigBlueButton 0.61 (code named Titan). This release focused on stability, refactoring of source code, simplification of desktop sharing, and support for 640x480 video streams from web cameras.


You can check out the release notes here.

We also incorporated Xuggler, a java wrapper to ffmpeg, into our desktop sharing module for converting the images from the presenter's desktop into a video stream.



Xuggler is licensed under the Aferro General Public License. To understand how this license affects BigBlueButton, please see Installing Desktop Sharing.

Thursday, September 3, 2009

Refresh for www.bigbluebutton.org

While the developers are working on finishing up a new release for BigBlueButton, the main site www.bigbluebutton.org just got an upgrade as well.



This updated site focuses on introducing BigBlueButton to new users more quickly so they can experiment and explore its features with others.

Thursday, August 27, 2009

Phidgets

Phidgets def. A phidget is a physical representation and/or implementation of a GUI widget.

Check out this YouTube video of a raise hand phidget created by Yunatio Li (yuntao2006 at gmail with a dot com), a graduate student at the University of Carleton. Yunatio's supervisor is professor Michael Weiss.

This video demonstrates how an instructor could be notified, by a physical device, when a remote student raises their hand during a presentation in BigBlueButton. Here's another video that demonstrates logging into BigBlueButton using a smart card reader.

Very cool!

Friday, August 14, 2009

Open Source Components

We have just finished creating a page listing all the Open Source components used to create BigBlueButton. Turns out that there are over 14 different components, click here to view the list.

Wednesday, August 12, 2009

Release 0.6!

We're releasing BigBlueButton 0.6 today. The major change in this release is the new integrated VoIP module. That's right, you don't have to use a phone or skype anymore to connect to the voice conference, just connect your headset and click the shiny new icon.

Tuesday, July 28, 2009

Migrating to the Mate Framework

When BigBlueButton started, we used the Cairngorm framework. Then we switched to PureMVC. Now, we're switching to Mate.

While switching to different frameworks takes time and energy, you gain not only by using a better framework, but because the switch forces you to refactor code you've developed since the last time you did it.

Mate is a declarative programming framework for Flex. It lets you write business code the same way you write your Flex UI - using mxml tags. Of course, mxml code simply gets compiled to ActionScript. Mate abstracts this AS code for you, and lets you write clean, simple, minimalistic code.

And because Mate is centered around Events, the code you write is decoupled as there are no direct object-to-object calls, except when you want them

While Mate sounds great, it still has limitations. The framework provides components for most common tasks, such as calling HTTP Services, SQL queries, RemoteObjects, etc... However, when we started using Mate we noticed a lack of component for handling calls to Remote SharedObjects.

Luckily Mate is extensible, so we created our own SharedObjectInvoker. You can read about it and get the source here