See you there!
That means your RSS feed may show a number of articles that you have already read on their original dates. I will republish each article using the original date but I can't guarantee they won't show up new for you :)
I've had a great time working with Ray Camden, Joe Rinehart, Brian Kotek and Luke Kilpatrick - as well as the rest of the team (who don't blog). We created a great content management system (Broadchoice Community Platform, powered by Model-Glue 2, ColdSpring and Transfer, running on ColdFusion 8 Enterprise - now up on the Amazon cloud) and we created an incredible desktop collaboration app (Broadchoice Workspace, powered by AIR, Flex, BlazeDS, Spring and Hibernate, running on Groovy and JBoss - with an iPhone web version powered by Model-Glue 3 and ColdSpring, running on Railo 3.0 and JBoss up on the Amazon cloud). I've learned a lot about Flex and AIR and I've gotten to know Railo as an alternative CFML engine.
After working with such a great team on such a great product, what comes next?
I've been using ColdFusion since 2001, back when I worked at Macromedia and my team of Java and C++ developers first encountered CFML in the form of very early builds of what went on to become CFMX (6.0). We were pretty skeptical at first.
Brian's first post just shows the very basic setup (how to specify the classes that Swiz manages and how to load them into your application).
If you're using ColdSpring today in CFML and you're interested in learning Flex, Brian's series might be very useful to you.
If you're tired of the boilerplate code that Cairngorm makes you write (or generate), Swiz might be just what you're looking for and Brian's series will be good reading for you too.
We use Swiz at Broadchoice, in our Workspace for Salesforce desktop application (built with Flex and AIR) and we all love working with the framework!
He says "The application offers lots of functionality" and, in particular, praises the design:
When started this AIR application looks polished from the layout to the iconography used. There is a lot of functionality here but without the large button bars and menu options.Nice to see our hard work getting some public chops. If you want to show your support, pop over to Refreshing Apps and vote for us (we're #3 at the moment with 4.4/5 votes but I'd like to see more votes!).The corporate colour palette mean this application will look right at home on the business desktop and the integration with Salesforce.
I've been working with Spring quite a lot over the last few months - we use it to wire things together behind the Broadchoice Workspace - and it constantly amazes me how comprehensive the Spring project is - see below for an example.
By integrating the open source BlazeDS project directly into Spring, Adobe brings Flex integration to a vast community of Java Spring developers who can now expose their Java services to Flex UIs in a very simple way. It should really help the uptake of Flex in the Java community!
An example of Spring's comprehensive nature: Ray blogged about sending email using Spring's mail support via Groovy. I recently built a new Model-Glue 3 app on top of our Groovy services and needed to send email. I could have used CFMAIL but Railo has a bug that does not allow + in email addresses and I didn't want that restriction (since we send email elsewhere directly from Groovy). It was very simple to use the same Spring mail package directly from CFML by declaring the Spring-managed beans in the CFCOMPONENT tag of my controller so that Model-Glue would autowire it!
Broadchoice Workspace is deployed on the cloud and whilst most of the machinery is Java/Groovy behind the Flex/AIR application, we also have the iPhone-compatible web version which is powered by CFML. It's a Model-Glue 3 / ColdSpring application that reuses the core Groovy services (via a Spring adapter that Joe Rinehart wrote).
So we've been running CFML in the cloud in production for nearly two months now and it's working out really well for us. We're using Railo 3.0, another option for cloud computing.
Adobe have said that cloud deployment is something they want to make possible with ColdFusion so at some point we'll have an embarrassment of riches in terms of choices for CFML in the cloud.
Who else is using CFML in the cloud today? Who is thinking about doing so?
Unit testing has defined my working day. I've been working on the licensing subsystem of the next build of the Broadchoice Workspace today and because we practice Test-Driven Development (thanx Brian!), that means writing unit tests "first" or at least alongside the production code.
I started by writing the License bean and an accompanying LicenseTest. The bean has a handful of properties and two methods. The unit test has nine test methods.
Fairly confident that the bean was correct, I moved on to the data layer. Apart from encryption, this mostly follows our well-tested generic Hibernate DAO. That meant only a couple of unit tests.
Once those tests passed, I moved on to the service layer. Six unit tests for four service methods.
At this point I'm ready to write the remote service facade (which implements user-level security) but I'm fairly confident our licensing subsystem will work as expected. 623 lines of code, just over half of which is unit tests (327 lines to 296 production code). I'll probably add some more data layer unit tests since I have a couple of "untested" methods (they're used in the service layer tests).
Unit tests may seem dull and tedious but they really can make your life easier.
Commercial use will be just $99/user per year with educational licenses at $49/user per year. Registered non-profit organizations can get free licenses.
If you're also a Salesforce user, you'll love the integration between groups in Workspace and your company's Salesforce account, allowing you to see open opportunities directly in the Workspace and create collaborative spaces based on opportunities so that you can work with your non-Salesforce peers on closing deals!
Working with Brian Kotek, Joe Rinehart and Ray Camden on this application has been a wonderful experience. We've all learned a lot from each other as we've learned a lot about Flex, AIR, Groovy, BlazeDS, Spring, Hibernate and integration with CFML via Model-Glue 3 (Gesture) and ColdSpring!
Also, for Workspace users on-the-go, there is an iPhone-compatible web application (with plans for full Blackberry support by year end).
It runs 11am-6pm Monday, 9:30am-5pm Tuesday and 8:30am-5pm Wednesday. Three full days of ColdFusion sessions including an "Uber Panel" on Wednesday morning (10:30-11:30), hosted by Brian Meloche, which includes three of the Broadchoice team (Ray, Joe and myself) as well as Charlie Arehart and, from Adobe, Adam Lehman and Jason Delmore. Bring your hardest questions about ColdFusion!
The entire Broadchoice team will be at MAX and you'll be able to find us at the Adobe Booth on Wednesday, between noon and 1:30pm, as we will be demonstrating the Broadchoice Workspace at the Adobe Partner demo station.
The team has worked almost around the clock this week to add new features, redesign large parts of the user interface and track down and fix a number of bugs.
We're using the Scrum process with each week being a Sprint and it's been working fairly well for us. We each get to focus on a small set of tasks for the week, we finish the week with a new build and then we discuss what is going into next week's Sprint. Joe (Rinehart) has the most experience with Scrum so he's been leading the charge but it seems a very productive way to develop and evolve a complex feature-driven product.
I've learned a couple of (painful) lessons this week and I'll be blogging about those over on the ArgumentCollection soon.
By the way, the whole ArgumentCollection team is going to be at MAX - see you there!
It's running on the Broadchoice Collaboration Platform, our "2.0" ColdFusion-powered platform - not to be confused with the Broadchoice Workspace, our "3.0" AIR/Flex desktop application that launched in beta today!
Here's a screenshot of the latest internal build, running on my laptop (with real content!) - the navigation and layout has changed a bit since our earlier screenshots - but we're all using the Workspace in-house to collaborate on projects as we draw closer to launch:
In addition to the AIR application, we're also working on an iPhone web application - built with CFML - that exposes all the Workspace content as well as providing the ability to send messages to spaces.
Folks who sign up for the beta program will get to experience both of those!
The beta will start next week on a first come, first served basis (so those who have already signed up will get their login credentials and access instructions around the 15th - thank you for your patience!).
Feel free to browse around and, if you want to participate in the forums or ideas exchange, register as a user on the site (it's free of course!).
The site is powered by the Broadchoice Collaboration Platform and runs on Adobe ColdFusion (despite the lack of .cfm in the URLs).
This is a re-post to remind folks who are attending MAX to take another look at this site.
- Monday
- Opening General Session
- Adobe Roadmap: Enterprise
- Flex Architecture Face-Off - panel
- Real-Time Collaboration Apps with Flex and Cocomo - Nigel Pegg
- Tuesday
- Mixing Open Source and Commercial Software
- General Session
- Adobe@Adobe: IT Innovation
- Developing Rich Applications with jQuery and Adobe AIR - John Resig
- The REST of SOA
- Wednesday
- Advanced Patterns for ColdFusion Test Automation - Bill Shelton / Marc Esher (MXUnit)
- Building Real-Time and Collaborative Applications with Flex and BlazeDS
- Event-Driven Programming in ColdFusion - an updated version of my session from Scotch on the Rocks and CFUNITED
- Cocomo Deep Dive: Building Social RIAs with Flex + Adobe Hosted Services - Nigel Pegg
- Developing Enterprise ColdFusion Applications - Joe Rinehart
Also a reminder that BACFUG meets on the Wednesday evening immediately after MAX ends and I am pleased to announce that we are having a double session with some MAX speakers:
- Bill Shelton and Marc Esher will present on Unit Testing in ColdFusion with MXUnit
- Joe Rinehart will present on Model-Glue 3: Gesture
So what does it mean for me, Joe, Brian, Ray and Nico in terms of our personal blogs? Well, posts that relate specifically to what we're doing at Broadchoice will appear on The ArgumentCollection and posts that are more general - or more personal - will continue to appear on our own blogs. We may also post additional commentary on our own blogs, referring to a core technical post on The ArgumentCollection.
We're hoping that the Broadchoice engineering team blog becomes a valuable source of technical information for folks building complex, large-scale systems with ColdFusion, Flex and other complementary technologies. We're also hoping that you all continue to read our own blogs too of course!
Like Joe, Brian was also part of our Global Developer Meetup and, as Joe hints on his blog Brian also survived our somewhat unusual interview process :)
Brian is a great contributor to many online discussions about OO and I'm really looking forward to working alongside him as we all learn from each other on the team.
Brian is taking the engineering lead on our Demand Accelerator product and you'll be hearing more about that on our soon-to-be-launched team blog.
We're planning our next generation services (products) we can't talk much about that. Joe has hinted at the analytics work we're doing but we have a roadmap for three distinct Software-as-a-Service products. We'll be talking more about our products later in the year - stay tuned.
We're adjusting our technology stack to take advantage of performance, power and expressiveness. Again, I can't really talk about what we're doing in detail but I can say that we have more Java and Groovy code in our SVN repository today than we had a few weeks ago. We're still deeply wedded to Adobe ColdFusion but I think this trend toward Java and Groovy - and Spring and Hibernate - will continue. On the other hand, we're adding Flex to our stack now and looking at AIR. We're just diversifying.
We're talking about a Broadchoice team blog where Ray, Joe, Nico, myself and - oh sorry, we can't say yet - will blog about technical issues we hit and (hopefully) solve!
This is all just to say the quietness of my blog is temporary and I expect to be back to full volume soon!
I'm very excited about Joe joining Broadchoice as Systems Architect. I've always enjoyed interacting with Joe on software design and development issues (and socially) so I'm very happy that I can now do that on a daily basis!
Joe's blog post talks about why he joined and what he'll be doing. By the end of his first day on the job, he'd already produced a thought-provoking document on the analytics system that he'll be building with Nicolas (Lierman) and our database specialist, Robert Xiong.
We're a Model-Glue 2 shop right now but we'll be migrating to Model-Glue 3 soon so you can expect several blog posts (from all of us) on that!
Working at Broadchoice just keeps getting better and better! Stay tuned for more hiring news within the next few weeks...
Friday focused on company vision - both business and technical - kicking off with a keynote from our CTO, and then Saturday and Sunday were deep dives into architecture, system integration, user interface design and process & communication.
As a company that has a number of remote engineers, we feel this is an important way to help everyone get on the same page and to encourage intense interactions and information sharing. We're going to try to do this twice a year from now on.
As a result of these sessions, we're also going to be making some changes to how we manage communication internally to help remote folks stay connected (e.g., more video conferencing, more screen sharing when working on projects, regular but brief cross-company conference calls to share business and technical news, increased use of internal blogs).
Does your company do anything like this? How do you work with your remote team members?
The platform is powered by ColdFusion 8.0.1, running Model-Glue 2 (BER), ColdSpring 1.2 BER and Transfer 1.0 BER and runs on a cluster of 64-bit Linux servers with synchronization of the Transfer cache managed through a set of ActiveMQ JMS server instances. The database is MySQL.
We're continuing to work on a stream of minor releases as well as planning our next major release with a lot of new features.
I'll be pulling together some presentations and articles about how we're using the frameworks together (because I think we're doing some interesting and unusual things, behind the scenes). I'll some a few snippets of code at Scotch in both of my presentations (and again at CFUNITED). I'm talking to the CFDevcon organizers about appropriate topics and they suggested a framework-related session so that might be the first unveiling of some of our ColdSpring / Transfer tricks and tips. I expect Ray will also be blogging about some aspects of our application architecture in due course.
Feel free to sign up for a free Broadchoice account and see what we've been up to! Our support site (also powered by the Broadchoice Web Platform, as is our public website - we like to eat our own dog food!) has several ways for you to provide feedback to us!
Broadchoice Delivers First On-Demand Web Platform to Build Corporate Communities and Increase Marketing EffectivenessEverything my team have been working on for the last six months is a reality. We're live. Web sites powered by Broadchoice, powered by ColdFusion 8.0.1 on 64-bit Linux.New Broadchoice Web Platform Integrates Social Networking, Web Content, Marketing Campaigns, and Dynamic Analytics for $1 per Registered User.
As many of you know - especially those who attended cf.Objective() - we hired Alagad to have Mike Brunt perform extensive load testing on our system, built with Model-Glue 2, ColdSpring and Transfer. One of the issues he found was a memory leak and Mark worked tirelessly with us prior to, throughout and after cf.Objective() to track it down and fix it. Mike helped us tune and debug our systems and I look forward to having him back to help us when we move to the next stage with our servers (as we investigate additional instances and more JVM tuning).
So download and test Transfer 1.0 RC 2 and report any issues you find to Mark so that he can fix them in time for the 1.0 release at WebDU!
Anyone else running ColdFusion 8.0.1 in production on 64-bit Linux or are we the first company to do so (on our twelve-server cluster)?
Ray and I have been working together on the new Broadchoice platform for the last few months, initially both as consultants. We both feel Broadchoice is doing something unique, something special and that this is a great move for both of us - and ultimately for a lot of developers out there.
Watch this space!
You can watch the recording if you missed it live.
Not being there in person I missed out on beer and pizza, courtesy of meeting sponsor Broadchoice.
For immediate release
On-Demand Services Attract In-Demand Architect
CASTRO VALLEY, Calif. -- Feb. 16, 2008 -- Sean Corfield today announced that he will be joining Broadchoice, Inc. headquartered in San Mateo, California as their Chief Systems Architect and Vice President of Engineering. In this new position, Corfield will oversee the evolution of Broadchoice's Digital Marketing Manager™ platform, expanding the capabilities and scaling the on-demand service to meet the ever-increasing customer base. Corfield said "Broadchoice has a really gifted team that has already created a winning service, used by companies such as Cisco. I'm excited to be part of that team and to have the opportunity to really take the platform to a new level." Broadchoice's Digital Marketing Manager™ is created and powered by Adobe technologies.
Richard Bennion, Broadchoice Founder & CTO, is a long-time advocate of ColdFusion and has been a pioneer in digital marketing for twenty years. "Bennion's energy and enthusiasm was key in attracting me to this role," said Corfield, "and he and I share an enthusiasm for great experiences created by great technology."
Also joining the Broadchoice team is Luke Kilpatrick, co-manager of the Bay Area ColdFusion User Group (BACFUG) and manager of Fire on the Bay, an Adobe Fireworks User Group serving the San Francisco Bay Area. Kilpatrick brings a wealth of experience in UI development and content management systems to the Broadchoice team. Corfield said "Kilpatrick's a friend of mine and I'm looking forward to having him on my team."
About Sean Corfield
Sean Corfield has been a freelance consultant since leaving the Hosted Services group at Adobe Systems, Inc. in April 2007 and was formerly the Senior Architect for the IT division of Macromedia, Inc. for almost six years. Prior to joining Macromedia, Corfield drove the architecture of a number of high-traffic, high-profile websites for a diverse group of companies after working on the ANSI J16 C++ Standards Committee for eight years and building compilers, interpreters and runtime systems. He is also manager of BACFUG and a frequent speaker at ColdFusion conferences around the world, as well as a contributor to a number of open source ColdFusion projects.
About Broadchoice, Inc.
Broadchoice is the leader in providing on-demand marketing solutions for the enterprise. The Digital Marketing Manager™ platform provides a fully integrated, enterprise application for web content management, enterprise marketing management and channel partner management.
For those who aren't sure, this is intended to be a somewhat tongue-in-cheek announcement but the news is real. I start the new job on Monday, February 18th, and I'm looking forward to hiring some of the best talent to help me grow a very exciting product! Stay tuned!



