Colony on Railo - Initial Testing Looks Good

Today we did initial testing of the Colony platform on the open source Railo 3.1 application server. I am pleased to share our findings that so far Colony runs without any issues on Railo. While we expect most customers that deploy CFML application to continue to use the award winning Adobe ColdFusion 9 Application Server, we are testing Colony on Railo in order to provide a fully free and open source distribution of the Colony application platform. 

Microsoft submits virtualization drivers to Linux kernel

In a small but great piece of news for cooperation between the world's largest software comany and the Linux community, Microsoft has submitted drivers for the Linux kernel that will help Linux virtual machines running on top of a Windows Hyper-V host to run more efficiently.

Kudos to Microsoft for the move.

MySQL Workbench for Linux

Since I use Ubuntu Linux on my desktop for day to day development, I am always looking for good Linux desktop software technical tools to add to my toolkit. One of the categories that has lagged behind Windows is in database modeling and management. There are some freeware tools, but nothing that provides the features I need.

Fortunately, MySQL has released the MySQL Workbench for Windows, MacOS, and Linux.  There are community (read: free) and commercial editions of the product available. The community edition provides reverse and forward engineering of a model to a MySQL database and has a "sync with model" feature that is great. I have just finished porting a model of the Colony application platform into MySQL Workbench. Kudos to the MySQL team for a good release.

Bug in mysqld_safe wrapper

There is a bug in the latest release of mysqld_safe on Ubuntu that is causing cpu times to spike to 100% on the mysqld_safe wrapper. The bug has been documented on Launchpad, and a fix has been committed to the Jaunty (9.04) codebase, so it looks like the bug will be squashed soon. Still, this bug highlights the interconnected nature of software development and our reliance on the correct functionality of many significant components to modern server-based appplications.

 

Upgrading to Ubuntu 9.04 - Go Live

Last night we upgraded our production systems to Ubuntu 9.04. SO far everything looks very good. I am waiting a few days to see how things continue to run before declaring victory, but so far everything looks great. Next on our infrastructure roadmap is setting up a cloud environment for use with some of our systems. 

Usability - Ugh, We Keep Making the Same Mistakes

Why isn't email address/name a top level, persistent email search feature for every mail client in exstence? If I am looking for an email in my mailbox, I generally am looking for a person by name or email address, a company by name or domain, or a particular topic.

Take Thunderbird, my current email client. I can quick search a subject or sender in any single folder, but if I want to search the entire mailbox, I have to pull up a special interface that leaves a lot to be desired from a usability perspective.

We keep making the same mistakes, in part because we keep building the same tools over and over again, trying to re-invent whatever application space we are designing for as we go.  One of the main reasons for us torelease the Colony application platform was to create the potential for large scale code re-use across a broad spectrum of typical web applications. 

Are you planning on building an application in CFML from scratch? Take a look at Colony and see if it might help you. A tutorial on using Colony is coming soon, stay tuned.

ExtJS Tree with Context Menu

I've been playing with the tree control in ExtJS, with an eye toward building a decent tree control to handle management of tree-based content, generally web pages in a basic web site layout. After some experimentation, I put together a tree that has a context menu and supports drag and drop of nodes. I am looking to extend it to enable drag and drop for external objects into the tree. 

Here is a screenshot, right click and select "View Image" to see a full size version:

click for full size image

Ubuntu Flash sound issues resolved

I finally seem to have resolved all issues related to Flash sound on Ubuntu 8.10. I found a very helpful guide on the Ubuntu Forums that provides instructions on fixing issues related to Pulse Audio on Ubuntu. The author points out that you should absolutely not remove Pulse Audio, as it is now part of the Ubuntu core and removing it may cause upgrade problems down the road (as in next month).

Introducing the Colony application platform

For the past three years, I have been working on and off on an open-source CFML-based Web application. It  started out as a simple system to store arbitrary structured and unstructured content. I started using it to build more and more complex Web applications, and over time it grew in size and scope. I thought about it for awhile as a content management system, but content management is not what I was aiming for, and not where the platform has really evolved.

After struggling with terminology and purpose, I started thinking about the application as an application platform. What is that? I see it as an implementation of typical application patterns in an integrated package that allows a develoepr to use it in whole or in part, building on the core libraries to create a new solution. 

Once I had the concept clear in my head, I started casting about for a name. After lots of pondering and brainstorming sessions with my colleagues on the CF-Community list, I decided to call the platform Colony. To me, Colony is all about staking out new territory on the Web, building compelling new services, and advancing the state of software.

Colony is also about shared effort and shared reward. To that end, we have just released the platform in alpha under the Apache Software License 2.0. You can get the alpha code and see more about the platform at www.cfcolony.org. The site is graphically challenged and light on content at the moment, but that wil cahnge soon. 

Ext.History as a Controller for JS Applications

We have been implementing an ecommerce solution using the ExtJS framework, and one of the challenges our clients asked us to meet was to enable Back button support in the fully AJAX-enabled UI. After looking around at possible solutions, I decided to implement the Ext frameworks' Ext.History class as the history provider. Some example code at the Ext site gave me an idea - that it is possible to use the History class on() method to build a controller for a JS application that respects the Back button, allows bookmarking, and provides centralized application flow.

Here is my initial implementation:

     Ext.onReady( function() {
   
        //initialize the History provider
        Ext.History.init();
        //use forward slash for the delimiter
        var delim = '/';

        //set the on('change') event to act as the controller for browser history
        Ext.History.on('change', function(urlString){
            if(urlString){
                var arguments = urlString.split(delim);
                switch(arguments[0]){
                    case 'getPage':
                        getPage(arguments[1],arguments[2]);
                        break;
                    case 'doSearch':
                         doSearch(arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);
                    break;
                }

            }else{
                //reset the page
                setDefaults();
            }
        });


A typical call to a function that I want to track then changes from a direct call to the function to a call to Ext.History.add, so:

    getPage(#rootnode.objectid#,'webPage')

becomes

    Ext.History.add('getPage/#rootnode.objectid#/webPage');

and now I have a controller for the JS application. I may need to re-structure some code to make it neat and tidy, but I can now see the core of a well-structured solution taking shape.

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.8.001.