Viewing Entries For February 2009  [clear date selection]

Mach-II 1.6.0 Development Stats - Wow!


I thought it would be interesting research a bit of a retrospective on the development of Mach-II 1.6 over the past year.  Team Mach-II has decided to make some changes in how we schedule features and enhancements for future releases in order make more frequent releases of the framework instead of larger less frequent releases.  For example even though Mach-II 1.6 was released in early February 2009, the next release of Mach-II which is code named "Simplicity" should be released as Beta in March.

As the stats below indicate, there was a lot of effort put into Mach-II 1.6 by Team Mach-II.  We really discuss, plan and research all the new features that go into Mach-II.  So there are countless hundreds of hours that have been put into the development of the project that go uncounted below.  This happens because we don't engineer any of our features haphazardly instead it almost because an obsessive compulsive desire to make things work "just right".  This is one of the hidden "features" of Mach-II which is the quality of the framework and the effort behind it mostly goes unseen by most users of the framework.  I personally want to say thank you to the rest of the team for all of your efforts into this release. Without further ado, let's get to the stats (and yes, if you know me, I love the "stats"):

Mach-II 1.6 Development Overview

Total Number of Commits:
474

Total Number of Tickets:
127

Total Released Nightlies:
60

Total Development Period:
17 months

Released Versions:
Alpha - 6/1/2008
Beta - 9/23/2008
RC1 - 11/10/2008
RC2 - 1/5/2009
Stable - 2/9/2009

0 Trackbacks  |  Mach-II 1.6  |  Send
Posted 2/26/09 @ 7:00 PM by Peter J. Farrell

Project Update:Tweets, New Developers Group & Using the Wiki


Wow, it's a been a busy month for the project and I apologize for all of the announcement emails going out to the list this week. We just wanted to point a few things of interest that everybody using the framework should know about.

Get Mach-II News at the Team Mach-II Blog

We blog about important things going on in the project on the Team Mach-II blog.  This is the best place to stay up-to-date on the big goings on with the project.  We send out "ANN:" style emails to the list every once in a while for the really important blog entries, but really y'all are missing a lot of stuff if you don't read the blog.

Read us online:
http://www.mach-ii.com/index.cfm/go/blog:showHome

Or point your favorite RSS reader to our feed:
http://www.mach-ii.com/index.cfm/go/blog:showBlogRss/

Follow Our Twitters

Want to be in the know about neat stuff being checked into the repository or be useful tidbits that won't normally get blogged because can't take the time to blog every little cool thing? This is where you'll get information on important entries to the wiki, highlighted commits to the repo, blog posts or just a place to ask a quick question. Just follow mach_ii on Twitter:

http://twitter.com/mach_ii

Developers Google Group - Help Steer New Features in Future Releases

We've setup a Google Group for discussions on the actual development of the framework. This is where you can interact and participate with Team Mach-II by helping us steer, shape and build future releases of the framework. We set this group so only the people who are interested in these types of discussions can join and to not jam up this group with too much development chatter.  Join us today:

http://groups.google.com/group/mach-ii-developers/

Don't Fear the Wiki

The wiki is the best place to find Mach-II documentation. If you haven't checked it out in a while, you should check it out again. A lot of documentation has been contributed by our community members in the last several months. Feel free to add your thoughts, expand sections or add entirely new articles to the wiki. Your contributions can help literally hundreds of other developers and is a great way for you to investment back in the project. Become a "MachStar" by contributing to the wiki today!

http://greatbiztoolsllc.trac.cvsdude.com/mach-ii/wiki/

Just wanted to say thank to the newest "MachStar" Jay Julien yet again for making a half a dozen changes to the wiki earlier this evening.  It's these types of contributions to the project that really makes all of us on Team Mach-II feel good about the project.  Thanks Jay!

A few wiki entries we should note are:

0 Trackbacks  |  Announcements, Resources  |  Send
Posted 2/20/09 @ 5:30 AM by Peter J. Farrell

Call for Features - Help Steer Mach-II 1.8!


Fresh off the release of Mach-II 1.6.0 this past week, we wanted to start the process to get community feedback for Mach-II 1.8.0 rolling while we have this great energy going. So we'll doing a call for features for Mach-II 1.8.0 - be heard and help steer future framework development by participating.

Our Current Feature List

First, we want to mention that Team Mach-II has already been hard at work at enhancements that are natural extension to the features we already offer in the current stable releases of the framework. We seriously plan and discuss everything that goes into Mach-II. Feature and enhancement development is an intensive process that is just "behind the scenes" to most users of the framework and a big group effort. The end product is that we end up with better results than if the framework was developed in a vacuum by a single developer.

Before I get into the specifics on how to make feature suggestions for our next release, we did want to mention a few major features that are already on our list - many of which have already been implemented in the BER. Since we've already started talking about them, there is no need to suggest them again unless you would like to convey a specific concern or argument for or against the potential feature.  Your comments and feedback are welcome - even if it just a "right on" or "exactly what I need to X done".

Your Suggestions

Feedback from users of any project is the only way we can develop software that works for you. No suggestion is too stupid to be said here, but don't be offended if we question if it is in line with the core values behind Mach-II. This is our job ;-)

How To Suggest a Feature

Since Mach-II is open source, we want to share as much with you as possible. We would prefer that people make suggestions via our so everybody can participate. We started the Mach-II Development Google Group to reduce the chatter on the main group so only those who are interested can participate. Here are the guidelines for suggestions:

  • Please start a new thread for your suggestion on our
  • If you feel uncomfortable sharing your suggestion via Google Groups, please direct your idea to info@mach-ii.com.
  • Provide a use case as a concrete reason or example goes a long way to illustrate why something is needed.
  • Show us code! Provide quasi-code to convey your idea. This is especially useful when talking about how things would look in the Mach-II configuration file. Giving us quasi-code will reduce confusion and give us more to talk about.
  • Again, tell us why you want it. Something like "All Mach-II developers need IDEA 1 because of X, Y and Z. This will help us do A, B and C better. We cannot implement IDEA 1 correctly in the current version of Mach-II because we don't have access to method A or it becomes kludgey because of 123."

We Can Do It (With Your Help!)

We have a lot on our plate and we still need to get our new support architecture in place for the project. We can't do it all without you!

If you are interested in volunteering some of your time to Mach-II, please let us know at info@mach-ii.com. Here are some of the things we can use some your mind-power on:

  • Contributing enterprise quality Filters & Plugins for Mach-II "Exchange" (we haven't come up with a name yet)
  • Documentation such as contributing a FAQ or new tutorials
  • Updating sample applications
  • Creating new sample applications

If you are uncomfortable about putting your name on a sample application, then contribute a FAQ or help out with documentation. Even if you have an idea about what plugins and filters you would like see, then at least you're participating! Just imagine if we got just 1% of all the developers that use Mach-II to help. Code for thought...

We're Community Driven

We plan, implement and drive on forward with all of our by listening to our users. We can't move forward without your help and that is why Mach-II is a great community for CFML developers.

0 Trackbacks  |  Mach-II 1.8  |  Send
Posted 2/18/09 @ 7:00 AM by Peter J. Farrell

Making Mach-II development a snap -- download the Dashboard


The dashboard beta is here! Kurt and I worked on the alpha pretty hard over the past few months and think that we've build a pretty handy development tool. A bunch of functionality is available to help you build Mach-II application faster to build and easier to maintain while deployed to production.  It's a quick list of what the dashboard can do for you:

  • Basic authentication (login page)
  • Reload base application or individual modules
  • Reload base ColdSpring bean factory or individual child factories
  • Manage logging include changing logging levels
  • Manage caching including charts of logging statistics
  • Recent exception snapshots for easy debugging
  • Basic server and application configuration information
  • JVM memory usage including charts of memory usage
  • Reload individual listeners, plugins, filters or properties (when using Mach-II 1.8 BER only)

Remember this is at an beta version and might be a few bugs along the way.  Check out the  Dashboard Home for screenshots and additional information.

By the way, the Dashboard requires our latest stable release - Mach-II 1.6.0 or try it with Mach-II 1.8 for event more features.

How to Install

  1. Download the dashboard code from http://www.mach-ii.com.
  1. Unzip the dashboard to your web root.
    1. For example, on Windows the default web root is [DRIVE]:\Inetpub\wwwroot, or if you are using your CFML server's built-in web server, your web root is likely [DRIVE]:\CFusionMX\wwwroot. If you are on a Unix system, your web root will vary.
    2. The end result of this step is that you should have the directory MachIIDashboard (no hyphen) in your web root. Inside this directory you will find the dashboard files.
    3. If you wish to place the core Mach-II Dashboard files in a location that is different from your webroot, just create a mapping called MachIIDashboard in the CFML administrator / control panel that points this mapping to the location where you placed the dashboard files.
  1. Add the dashboard as a module in your Mach-II application configuration file and set the password in the override XML section:
    <modules>
    <module name="dashboard" file="/MachIIDashboard/config/mach-ii_dashboard.xml">
    <mach-ii>
    <properties>
    <property name="password" value="PLACE YOUR PASSWORD HERE" />
    </properties>
    </mach-ii>
    </module>
    </modules>
  2. Reload your Mach-II application and navigate to:
    http://www.example.com/index.cfm?event=dashboard:info.index

(You may have to modify this url if you use a different event parameter other than "event")

0 Trackbacks  |  Announcements, Dashboard  |  Send
Posted 2/17/09 @ 6:30 PM by Peter J. Farrell

Mach-II 1.6 Final Released!


Team Mach-II is very pleased to announce that Mach-II 1.6 final has been released! Since 1.6 has been available in alpha, beta, and release candidate form for a while, many people have already been using it in production and taking advantage of the great new features, but if you haven't checked out 1.6 yet, here's what you're missing:

  • Caching: an easy-to-use, granular caching layer that puts you in total control of what's cached, how it's cached, and how and when it's refreshed. Mach-II 1.6 ships with aCFML caching implementation, but the architecture is designed to allow for other implementations to such as ehcache or memcached to be used seamlessly by creating a simple adapter.
  • Logging: a full logging package that out of the box allows logging to screen, file, or email. The logging package adheres to the Apache Commons Logging levels (trace, debug, info, warn, error, fatal), and allows for different log actions to be taken based on the level of the message. For example, you can easily log a warn level to a file, but send error levels via email. As with the caching package, other implementations of logging can easily be added to Mach-II.
  • Publish/Subscribe Listener Notification: Rather than have redundant lists of listener calls in multiple event handlers, Mach-II 1.6 supports a publish/subscribe method of listener notification, whereby a single message broadcast can notify multiple listeners that have registered an interest in that message. Note that direct listener notification is still supported and may be preferable in many instances, but this is another option that may be used where it makes sense to do so.Multithreaded listener notifications are supported on ColdFusion 8. Multithreading may work fine on Open BlueDragon and Railo as well since they adhere to the CF 8 syntax for threading, but multithreading will be officially supported in Mach-II 1.8 or a post-1.6 maintenance release.
  • Improved Application.cfc Bootstrapper: The Application.cfc bootstrapper has been greatly simplified, with "smart defaults" in the mach-ii.cfc that the bootstrapper extends, meaning in many cases you will not have to manipulate Application.cfc at all. A new MACHII_ONLOAD_REQUEST_TIMEOUT attribute has also been added to give you control over the request timeout for the initial load of the application.
  • New ColdSpring Property: The ColdSpring plugin has been deprecated in favor of the new ColdSpring Property, which is maintained by the Mach-II team and offers greater functionality as compared with the plugin. New in Mach-II 1.6 is the new DEPENDS attribute of the CFCOMPONENT tag, which allows for the resolution of dependencies in listeners, filters, and plugins without writing setters or using constructor argument injection for the dependencies. The ColdSpring Property also allows ColdSpring-managed beans to be injected into the Mach-II Property Manager, making them available as Properties on the Mach-II side of your application.
  • Utility Connector: the Utility Connector allows you to easily extend Mach-II's caching and logging capabilities into the model/business logic layer of your application. Specifically, it does this by allowing the caching and logging layers to be used from withinColdSpring or another bean factory.
  • New Plugin Points: plugin points for onSessionStart and onSessionEnd have been added.
  • An OVERWRITE attribute has been added to <event-arg> which allows you to specify whether or not to use the value of the <event-arg> if an argument with the same name already exists in the event.
  • A PERSISTARGIGNORE attribute has been added to the <redirect> command so that you may specify a comma-delimited list of event arguments that will not be persisted across a redirect.


While we think the caching and logging functionality alone are reason enough to use Mach-II, we designed the caching and logging packages so they may be used independently of Mach-II. Mach-II has built-in loaders for caching and logging of course, but otherwise the caching and logging are in no way tied to Mach-II, so by writing a loader for your own implementation you can use caching and logging outside of Mach-II.

One of the core values of the Mach-II project is transparency in everything we do, and this helped make Mach-II 1.6 a great release. By soliciting feedback on features as early as we possibly can, and through your participation by telling us what you think, how you want the features to work, and most importantly by testing your code on alphas and betas, you are helping make Mach-II stronger. Thanks so much to our fantastic users for their help! We had a couple of companies building large applications on Mach-II 1.6 very early in the process, and their feedback was invaluable.

No rest for the weary (or is that wicked?), so next up is Mach-II 1.8, which is already about 90% complete. As we've said a couple of times before, after the 1.6 release we're going to release fewer features more frequently so that we can better manage our release cycle as well as get new features into your hot little hands even sooner. Look for preliminary specs on Mach-II 1.8 features very soon.

In the meantime, go grab Mach-II 1.6 final and let us know what you think!

Announcements, Mach-II 1.6  |  Send
Posted 2/9/09 @ 9:10 AM by Matt Woodward