Dean Yeazel (pictured, right) is the senior software engineer for Saris Cycling Group. His primary area of responsibility is PowerAgent, which is the subject of the interview below. Dean's been a developer for 15 years and was previously a consultant for Compuware, where he did primarily Microsoft .NET development for both the web and PC applications.
He's been with Saris Cycling Group, Inc. for 18 months now. Saris are a small outfit, so that's why he's the sole PC application developer responsible for project management, design, and development of PowerAgent, as well as various tools used for automated testing of the hardware.
Hi Dean, what's PowerAgent's purpose?
PowerAgent communicates with the device (bike computer) to download all of the detailed data. The data is analyzed and summary metrics (such as average power, average speed, etc.) are computed. The user can then use a variety of on-screen graphs to look at a summary of their ride or the detailed second-by-second data. Other graphs are available to analyze trends over time.
For example, here is the "Ride Detail" graph, (click to enlarge both screenshots below). The rider's speed, pedaling cadence, and power is shown:
And here's the "Ride Overview" screen, showing the rider's average and maximum power output:
If the cyclist did a ride with a bike computer that has an altimeter, PowerAgent can recreate the hills of that ride for one of our indoor cycles.
While all of our bike computers can be configured directly on the device, PowerAgent provides a richer UI to do the same configuration. Data such as the rider's weight and normal power output are critical to give them the best analysis while riding.
PowerAgent is also used to re-flash our bike computers when a new version of firmware is available. PowerAgent connects to a web service to get any information about available updates. If there is an update available, it downloads and decrypts the firmware image and then flashes the device.
Where does PowerAgent fit into the Saris Cycling Group's business?
PowerAgent is a companion product to our line of power meters and electronic trainers.
Our PowerTap power meter replaces the rear hub of a bicycle and continuously measures the power a cyclist puts out. The power is measured in watts, just like a light bulb. Elite cyclists and triathletes use PowerTap to train to peak levels of performance because, for cycling, power is a better measure of an athlete's abilities than their heart rate. There are a number of prominent professional cycling teams that use the PowerTap, such as Lotto-Pharma, the Cervelo Test Team and Euskaltel-Euskadi, as well as top finishers in the Ironman Triathlon series.
We have a special bike computer that records the rider's power output, speed, pedaling cadence, heart rate and altitude. This data is recorded once per second throughout the ride. When the ride is finished, the rider connects their bike computer to their PC to download the data—that's where PowerAgent comes in.
We also have indoor cycles (excercise bikes) that use specialized bike computers to record the data. Finally, we have an indoor cycle and trainer that can electronically control the resistance the rider feels, so we can simulate the hills of an actual ride indoors.
Can you say something about the technical details of PowerAgent?
- NetBeans Platform 6.1
- Operating Systems: Windows XP/Vista/7, Mac OS X 10.4/10.5/10.6, Linux
- Data is stored in a SQLite database
- Communicates with bike computers via serial (FTDI chipset) and USB mass storage protocols.
- Charts using JFreeChart
How did you get "up to speed" about the NetBeans Platform? I.e., how did you gain the knowledge needed for creating the application?
I jumped into the deep end. We had the existing application that needed some additional features added to support a new cycle computer. I don't think the curve was too steep. However, as with any new framework, there are always some under the hood details that it takes a while to wrap your brain around.
What are the three main benefits this specific application gains from the NetBeans Platform?
Well, first of all, the NetBeans Platform was chosen before I started, so I'm not sure what the justification was. However, to me, the three main benefits are window management, branding, and build management.
As a tip for other developers using the NetBeans Platform on the Mac, I would recommend to get comfortable with the Mac terminal commands. Our build script modifies the info.plist for the Mac version of PowerAgent, creates a disk image, and builds the installer package.
Thanks for the interview, Dean, and happy cycling with the NetBeans Platform!