Last Build Date: Thu, 19 Jun 2008 10:57:07 -0400Copyright: Copyright 2008
Thu, 19 Jun 2008 10:57:07 -0400
I have just released AppBooster beta 4. I also have moved my blog to a new server and am now using MachBlog. Please update your bookmarks and RSS reader to use the link below.
Fri, 2 Feb 2007 10:04:55 -0500
At the Frameworks Conference I demonstrated beta 3 of Appbooster. It is available to download at the link below. AppBooster will have a new home on RIAForge soon. New in this version:
AppBooster is a sample/starter application which uses Mach II and ColdSpring to create a skeleton app you can use as the base for your next application. AppBooster comes with a simple admin interface for managing user accounts and roles. It shows how to build CRUD applications using Mach II and ColdSpring.
Thu, 13 Jul 2006 22:24:02 -0400
Better late then never.
I have been working on create some proof of concept code to show that Hibernate can save and load CFC instances. I have finally got an example working. It isn't packaged up or clean but it works and demonstrates how it can be down. With Mark Mandle's help and others on this I think we can this refractored into something a little more clean.
Right now look at the userDAO.cfc and the baseHibernateDAO.cfc under the model directory. There you will see how I map a CFC to a java HashMap and then pass the hash map to and from Hibernate using Hibernate's dynamic map support. I even have it saving a user object composed of an address object. Finally look at the code in kurttest.cfm to see a test of the Hibernate code.
If you want to run this app use the included sql script and place the jars listed in the readme in the cfusion/lib. Eventually Mark's java loader should eliminate this step.
Let me know what you think. Up until right before CFUnited I didn't think anyone was interested anymore. To the follow the discussion please join the Yahoo CFHibernate email list.
Sun, 26 Mar 2006 14:47:29 -0500I have prepared a new release of Appbooster which fixes a few issues with the first beta. I omitted two custom tags that are now included with this release. Also thanks goes out to Bruce Phillips, Matt Williams, and Tracy Logan, for a SQL Server script for Appbooster's DB. You can now run Appbooster with either MySQL 4/5 or SQL Server. Check out the "Read Me" in the docs subdirectory.
Mon, 13 Mar 2006 16:30:23 -0500At CF.Objective() I released a new application that I think the CF community will find valuable.
Sat, 11 Mar 2006 11:44:51 -0500CF.Objective() began with Tom Jordahl of Adobe giving a great presentation on ?Mystic?. Tom covered a lot of same topics as Ben Forta is covering with his Flex 2 for CF developers presentation. Tom also revealed some new information about new features that will be included in the next beta of Flex Builder 2 (to be released ?very soon?). Most of these features surrounded new wizards that will generate CFCs for use with Flex Data Services. These new feature were exciting to me because it appears that Adobe will be supporting developers who use the Active Record pattern as well as the DAO pattern. Flex 2 is shaping up to finally be the killer platform that CF developers have been waiting for! Finally, Tom also gave a really brief slide on new features of the next version of CF, Scoroprio. Tom said that is possible that CF will be getting interfaces, despite quite a bit of internal debate.
Fri, 10 Feb 2006 20:14:30 -0500
cf.objective()'s speaker list is now available. I highly recommend CF developers check out this conference. I think it is great that we now have a more advanced conference which is what really distinguishes cf.objective() from MAX or CFUnited. It covers topics which I think a lot of us CF developers should know more about. Our community needs to continue its path of becoming more then just web developers but real software designers and developers.
Disclaimer: I am going to be presenting two sessions at cf.objective() so I might be a little biased. (image)
The main theme is enterprise development with CF. What exactly does that mean? Well I think it means a team of developers building and deploying applications that are maintainable and scalable. This doesn?t necessary mean you are building applications for a Fortune 500 company, rather it means you are using best practices to build better software. I think this starts out with learning more about building object orientated applications. Matt Woodward is giving a talk on OOP for newbies and Peter Farrell is giving a break down of objects right away on the first day!
The next the thing I believe that you can do to help with maintainable code is to pick up a framework. Jared Rypka-Hauer is covering ModelGlue and Pete and Matt are at it again with a session on getting going with Mach II. Then there is Sean Corfield's presentation, on the second day, covering CFCs and persistence which should have a great break down on the different frameworks available to make writing create/read/update/delete OO applications much quicker and easier. Finally, I believe that in order support the development of these enterprise applications, we need to have some good tools. Simeon Bateman is going to introduce CFEclipse, which in my mind is a must have for CFC development. Then on the second day he is going to cover source code management with Subversion. If you are using version control you need to look into it right way. You will be amazed at how can make your team development easier, not to mention save your butt in a crisis!
I don?t think you can go wrong with this conference. The general sessions haven?t been announced yet and it still is a great line up. The conference hotel is decent and even has a free airport shuttle. Since it is in Minnesota in March you probably shouldn?t plan on getting a nice tan, but hey this is an indoor tech conference.
Sun, 20 Nov 2005 23:20:30 -0500As the ColdFusion community uses more and more object orientated patterns in our applications it has become necessary for us to solve some of the same problems that the Java community has encountered. If you find yourself using a lot of factory CFCs in your application you might be interested in ColdSpring. ColdSpring is a IOC (inversion of control) container modeled after Java's Spring framework. The main idea of ColdSpring is to inject any dependencies your objects have into to them and provide a central repository for these assembled objects.When I develop applications I create a business object (bean) for each main entity in my object model. For each of those beans I usually have a DAO (data access object) which is responsible for reading from a DB, saving (either creating or updating), and deleting. I also have a gateway object which has methods that return query objects. Finally I have a service object which is also sometimes referred to as a manager. This service object is important has it represents the main public interface to this particular entity. Any outside code that needs to do something related to this entity would use this service object. This is especially in situation where my entity is composed of references to other entity objects. In that case I usually have my entity service object depend on the other entities service so I can load it when when creating my entity.A quick real world example might be helpful to see if ColdSpring would be something that would help your application. Lets say we are building a system to allow our friends to draft a fantasy football team. We will probably need the following entities:Player - a football playerA player has a team, fantasyTeam, and position (ie running back, quarter back, ect)Fantasy Team - a team of football players, one for each of your friendsA fantasy team has an owner, name, draft order, and a collection of players that have been drafted.For each of these entities I have a DAO, gateway, and service. Here is some pseudo code of what I might have in my fantasyTeamService.public setFantasyteamDAO()public setPlayerService()public setFantasyteamGateway()public getFantasyTeam() //returns a fantasyTeampublic getFantasyTeamPlayers(fantansyTeamID) //returns a query Here is where ColdSpring becomes helpful. I can setup ColdSpring so that creates my DAO, gateway, and service objects and calls setFantasyTeamDAO(), setPlayerService(), and setFantasyTeamGatway() when creating my FantasyTeamService object. Here is what that would look like in my ColdSpring config file.
Sun, 20 Nov 2005 23:20:23 -0500Recently I needed to add two new features to ColdSpring. I wanted to have an ApplicationContext object to rely on instead of just referencing an instance of the bean factory. I also needed the ability to define a parent bean factory which each of my applications could reference.Both the ApplicationContext and hierarchical bean factory are modeled directly off of Java's Spring framework. http://static.springframework.org/spring/docs/1.2.x/reference/beans.html#context-introduction http://static.springframework.org/spring/docs/1.2.x/reference/beans.html#beans-factoryApplicationContext implements the BeanFactory interface with the addition of a couple of methods which can be used to set a parent AppContext. The applicationContext simple delegates to the local bean factory and then to the parent bean factory if necessary. The idea is that you can have separate AppContexts with different parts of your application and then tie them together in a hierarchical manner. Currently I don't have a need for the hierarchical AppContext in my applications but I can see the day where with all the different services/managers I am building I may need to modularize them further. The example the Spring's documentation cites is that you might want to use it to help in the "loading of multiple (hierarchical) contexts, allowing each to be focused on one particular layer, for example the web layer of an application". In all the Java Spring applications I have worked with I have always interacted with an instance of ApplicationContext rather then with a BeanFactory itself. The hierarchical bean factory is something I specifically needed for the project I am working on. In my project I have a need to setup a set of enterprise wide services for managing things like people, organizations, products, orders, ect. Then each application (which has its own set of services, and thus its own local bean factory) may depend on this these enterprise wide services. Essentially I need a way to have the enterprise services act as a separate module in ColdSpring that can have it own xml config file. Then my app specific services need to be able to have dependencies to services in this bean factory (which becomes the parent bean factory) which contains the enterprise wide services.
Wed, 3 Aug 2005 11:51:44 -0400Tonight myself and Jared are giving a presentation to the Twin Cities CFUG about our experiences on CFUnited 05. I would have to say that CFUnited is best CF conference I have been too. I learned more in one day of this conference then all of MAX last year. I highly recommend any CF developers who are looking for good CF content to look into attending CFUnited 06.
Wed, 29 Jun 2005 09:56:37 -0400At the opening keynote at CFUnited Tim Buntel announced that the CF team will be helping out the CFEclipse project. Dreamweaver will still be heavily supported, a point Tim stressed many times as he read from a corporate statement. Simon Batman came on stage and announced that a new website will for CFEclipse will launch soon as will a new stable release. Macromedia contributions probably won't show up until this fall.
Wed, 29 Jun 2005 07:27:41 -0400
I arrived safely here in DC last night. Apparently I was lucky as some of my friends (Jared and Chris) from Minneapolis had their flights delayed by the thunderstorm we landed in.
I must say that Michael Smith and the CFUnited team have done an excellent job with the conference. The Mariott is very nice and the bag that we get when we registered is actually useful! Now the ASP.net/VB.net book inside isn't very usefull to me except as a doorstop. :) Maybe I can donate it to my local library. I won't have minded if it was a C# book but I refuse to use VB even VB.net.
MiniMAX 2 was a series of short 15 to 20 minute presentations by various speakers. The first presentation was on sIFL (simple inman flash replacement). The presenter didn't show any examples or do a very good job of explaining it. There is supposed to be more info on the MiniMAX website soon. The second presentation was on Adobe After Effects and the presenter couldn't get his demo working which made me really bored so I left briefly. Luckily I returned to see Charlie Arehart give an interesting presentation on Laszlo. I have always thought that Laszlo looks interesting and now with it being open source and therefore more affordable then the $15k Flex product (which is great but my clients cannot afford it) it is worth looking into. New in 3.0 is the ability to have Lazslo produce a swf that can posted any webserver, no server side install required!
I got a chance to talk with Simon Bateman and thanked him for his work on CFEclipse. He is really encouraging everyone to get involved a little with the project to help it move forward. This really means more then just writing code too, it means help with documentation and support. I hope I can help a bit when my life settles down a bit.
Mon, 27 Jun 2005 19:12:21 -0400
I leave tomorrow afternoon for CFUnited which should be an excellent conference. I am excited for this conference because after attending MAX for the past couple of years and being dissappointed at the level of CF content available, almost all the sessions at CFUnited look excellent to me. I am also looking forward to meeting some of the great developers (Sean, Matt, Joe, and Doug just to name a few) who been blogging about their CF experiences.
We are tackling a couple of large interesting projects at work so I hope to be able to get to talk over our approach with a few of the CFUnited attendies and see what they think of our plans. In short we are creating a large enterprise set of software services which all of our applications can use. Our plan is to use ColdSpring with Mach II as our key frameworks. These enterprise services along with a set of nice custom tags I have written should help us really take our applications to a new level of integration and ease of use.
Mon, 27 Jun 2005 18:58:13 -0400Lately, meaning since around November 2004, my blog has sucked. It isn't that I haven't been doing any thing cool at or outside of work, it is just that I have had a difficult time finding time to write. Between wedding planning and buying my first house I have had a lot going on. Hopefully I get back in the swing of things again and give back to the community. I have learned at lot from the Java and ColdFusion developer blogs that I read daily. Gotta like bloglines.com!
Sun, 7 Nov 2004 19:17:30 -0500
Sun, 7 Nov 2004 19:16:09 -0500
Sun, 7 Nov 2004 19:15:02 -0500
Sun, 7 Nov 2004 19:14:24 -0500
Sun, 7 Nov 2004 19:13:36 -0500
Fri, 27 Aug 2004 11:14:17 -0400
I have been working on several Mach II apps lately. For the navagation structure of our applications we are using fusebox like event names like sites.editSection. We want to able to highlight in our interface which navagation item at user is currently at in the interface. Often times we fire off multiple event handlers so we need to be able to determine what was the first one so that the navagation can check that to see if it the active one.
To do this we created a plugin which stores the first event in an event arg.
Then in our navagation tag we check to see if that event matches:
active="#request.event.getArg("mainEvent") eq "sites.edit"#">
active="#request.event.getArg("mainEvent") eq "sites.editSection"#">
active="#request.event.getArg("mainEvent") eq "sites.pageAttributes"#">
active="#request.event.getArg("mainEvent") eq "sites.media"#">
active="#request.event.getArg("mainEvent") eq "sites.upload"#">
Wed, 25 Aug 2004 11:14:51 -0400My co-worker, Shannon Jackson, who is an awesome Flash developer has started a blog. Looks like he will be covering Flash and Mach II. Shannon is a great developer who has a ton of Flash knowledge.
Thu, 29 Apr 2004 09:11:45 -0400I came across this interesting article on JavaPro's website which compares the history of auto mechanics to the history of programmers/software engineers . It is interesting to see where the software development industry is going. No doubt we all need to focus on keep our skills up in order to keep pace with it. For me that means continue to learn Java but more importantly learn about OO and system design issues.
Fri, 12 Dec 2003 10:01:37 -0500These helpful Hibernate resources.
Thu, 11 Dec 2003 11:22:38 -0500
I have the following SSL configuration under Apache 2.0.44 w/OpenSSL 0.9.7a. When I go to my site with SSL I get a message from Firebird or Safari that read something to effect that my certificate could not be verified. I have not gotten the message with IE 6.0 on my Win 2k box but I may have said yes and now have the accepted cert cached locally.
#General server config SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile "bin/www.foo.com.crt" SSLCertificateKeyFile "bin/www.foo.com.key" SSLCertificateChainFile "bin/intermediate.crt"
ServerName www.foo.com DocumentRoot "D:/htdocs/www.foo.com" # CustomLog D:\logs\webtrends\www.foo.com\webtrends.log webtrends CustomLog "|C:/apache/bin/rotatelogs.exe D:/logs/webtrends/www.foo.com/webtrends_%Y_%m_%d.log 604800" webtrends SSLEngine on SetEnvIf User-Agent ".*MSIE.*" \nokeepalive ssl-unclean-shutdown \downgrade-1.0 force-response-1.0
Any idea why my cert cannot be verified. I believe I have a valid certification from Verisign and I also believe I have the right intermediate certification file. Perhaps that is the problem?
Thu, 11 Dec 2003 11:09:17 -0500Last night I upgraded to Apache 2.0.48 w/OpenSSL 0.9.8 and all my SSL problems went away. Turns out I had everything configured right to begin with! :)
Fri, 14 Nov 2003 10:14:53 -0500I will be leaving on Tuesday afternoon for the MAX Macromedia conference in Salt Lake City. This is the first technical event I have had a chance to attend so I am super excited. Unfortunatly I had my wallet stolen two days ago so I am busy tring to get my identity and credit back. Hopefully I can get a valid credit card in time for the trip otherwise I don't know if I will be able to go!
Wed, 12 Nov 2003 10:17:39 -0500I have been following a cool new trick that someone discovered that allows you to run multiple versions of IE at the same time. Before that was thought to not be possible but someone has figured it out. The only confusion piece is on my Win2k machine with IE 6 I get a weird looking about screen when runnning IE 5.x that looks like a cross between IE 5's about box and IE 6s. I have verified it works though. This site has ready to go downloads for a bunch of IE versions. Just download unzip and run! Don't forget these nice icons for your shortcuts to the old versions.
Mon, 10 Nov 2003 23:08:40 -0500Through Jason's weblog I found out about the new wiki entry he put together comparing WebWork2 to WebWork 1.x and Struts 1.1. Pretty interesting. I also discovered that someone has posted a WebWork2 Wafer example app. If you aren't familiar with Wafer, it is a neat open source project whos goal is to discover the different strengths and weaknesses of the different java web frameworks out there by implementing the same basic app with all the frameworks. Finally I found a nice article by Kris Thompson over on TSS which gives a good overview of WebWork2. If the WebWork2 to team can get the level of documentation up another couple of notches and find some time to get the framework out of beta it could gain some more mindshare in the Java community.
Wed, 5 Nov 2003 11:00:07 -0500One of my co-workers has struggled for a week trying to get the CF MX 6.1 installer to work on his Win 2k machine. He used to have CF MX 6.0 installed but uninstalled it. When he ran the install it would just hang after showing him the first screen. His problem was much like the one documented on TalkingTree.com. Using the information from TalkingTree.com about debugging options for the CF installer he was able to create the following installer.properties file and get the installer to work in silent mode from the commandline.
INSTALLER_UI=silent SAVE_DEBUG_OUTPUT=true SILENT_WEBROOT_FOLDER=c:\\Inetpub\\wwwroot SILENT_INSTALL_FOLDER=c:\\cfusionmx SILENT_WEB_SERVER_SELECTION=custom SILENT_RUNTIME_USER=nobody SILENT_CONTEXT_ROOT= SILENT_ADMIN_PASSWORD=admin SILENT_CONFIGURE_SYSTEM_INIT=false SILENT_INSTALLER_TYPE=server SILENT_UPDATER=false SILENT_SERIAL_NUMBER=serial
He then ran the following command on the command line:
d:>coldfusion-61-win.exe -i silent -f d:\installer.properties
No luck on getting it to install the Enterprise version though. :(
Mon, 3 Nov 2003 23:05:37 -0500Using the the hint I put together for MacOSXHints.com, I setup CVS pserver on my new PowerBook which is now running 10.3. The only clevat was that I could not login through pserver for some reason. Eventually I tracked down the problem by using Google and finding a link about setting up password access with CVS. Tips for setting up the CVS passwd file showed me that I needed to use a Perl command to crypt my password and then paste that into the CVS passwd file with my username. This allowed me to finally login via pserver.
Mon, 27 Oct 2003 22:15:39 -0500
Mon, 27 Oct 2003 21:41:57 -0500This weekend I had to move over my Mom's AOL address book to OS X's address book. AOL has its address book stored in binary form inside the application setting files so it wasn't an easy thing to do. Luckly AOL recently released a beta of AOL Communicator for OS X. Communicator is a basically AOL lite which allows you to use AOL features (like email and IM) in a small application that is actually based around Mozilla's XUL. Anyway Communicator can export the AOL address book into LDIF format. I thought this would be perfect since OS X's address book can import that format. It turns out that for some reason OS X's address book refuses to import the LDIF file that Communicator exported. So I downloaded Mozilla and used it's address book app to import the AOL LDIF file. This worked perfectly especially since Mozilla can export addresses to csv format. I took the csv file and then imported that into Entourage which I know could export vCards, the only other format OS X's address book reconizes. I simply dragged all the address book entries out of Entourage and into OS X's address book and they imported perfectly. Quite a few steps to go through but I was impressed I actually got it to work with out resorting to some manual copy and paste.
Wed, 17 Sep 2003 10:15:27 -0400I found this great post (website currently down) about an interesting concept. If are familar with how Java Data Object or object/relational mapping tools/APIs work then this will sound familar to you. It is way to do these things with simple CFCs. This allows to not have to worry about writing and update SQL statements when your objects change. Right now I think it only works in simple situations where you don't have a set of objects that referr to other objects but it can be a good time saver when used with a Data Access Object design pattern. The framework is pretty simple right now but I hope to be able to work with David Ringley when I get a chance to improve this CFC for use in my outside projects.
Wed, 17 Sep 2003 10:04:18 -0400(image)
Fri, 29 Aug 2003 09:37:13 -0400You can now get milestone 3 of Eclipse 3.0. The New and Notworthy has details on the big changes. My favorite is the ablity to syntax hightlight method names. I really liked that feature in NetBeans.
Tue, 22 Jul 2003 00:21:05 -0400Tonight I attended a TCCFUG webcast with Ben Forta. Ben talked about the FireFly components that Macromedia recently released (very cool) as well some very early info on what will be a part of next point release of CF. Of course, this information is subject to change as development continues. No release dates were discussed but I have heard hinted elsewhere that new MX upgrades are slated to be at least announced by the end of the year.
Mon, 7 Jul 2003 00:14:15 -0400I have most of my limited Java web app experience with Struts. I find it to pretty good, however, since I am usually the lone programmer on many projects I have been hoping to find a Java framework that can be competitive to ColdFusion for rapid web app production. Maybe WebWork2 will fit the bill. The Lone Programmer seems to like it and has some interesting thoughts on how he thinks it stacks up to Struts. I checked out the nice slide show from Mike that he linked to and it was very informative complete with some code examples. Hopefully WebWork2 will gain some more documentation and sample apps so I can learn away. I especially like the the possiblities that IoC, interceptors, and action chaining that WebWork2 provides. These seems to be areas where Structs is weak.
Mon, 30 Jun 2003 00:39:23 -0400I have been looking for a replacement for the Verity spider that ships with ColdFusion. I need to a spider which can index our work websites which involve at least three domains. The Verity spider (for licensing reasons) only works with localhost so it cannot spider any of our sites. Any one know of a better solution that is inexpensive?
Mon, 30 Jun 2003 00:29:46 -0400CFLOOP has some interesting components that I might be able to use. Both are methods that could placed in a base class to provide some funcationality. One is for dumping out a CFC for debugging, the other is for Exception Handleing (although the documentation link is broken for that one).
Thu, 26 Jun 2003 19:21:42 -0400I found a nice article on O'Reilly' site about using iText to generate PDFs. Since iText is a open source Java API it could be called through ColdFusion.
Tue, 27 May 2003 18:13:54 -0400I came across this great article on designing web forms in web applications in a link from the CF-Talk list.
Mon, 19 May 2003 00:37:54 -0400I came across this nice Hibernate + XDoclet tutorial. This should be very helpful for my next personal project. Roller seems to be having a lot of success with their replacement of Castor with Hibernate so I am going to have to give it a try for my next app.
Tue, 13 May 2003 23:40:49 -0400Today I created a new topic for my weblog: Rich Internet Applications. I think that in the future there is going to be more of a market and focus on this type of applications. Whether it be a Flash MX, thin Java applet, or XUL based application I think we are going to see more and more applications that strive to provide a more sophisticed user interface then (D)HTML based web applications can provide. One technology that may win out is Flash so I am going to take some time investigate both on my own time and at work. The version of Flash which will probably incorporate the FireFly datacomponents and "Royale" an unreleased XML scheme for building Flash form interfaces should provide solid ground for letting programmers build RIA quickely and effively. It would be nice to see an open technology like XUL make some inroads as well. A Macromedia software engineer weights in on RIA is this TheServerSide.com article.
Fri, 9 May 2003 13:19:41 -0400Straight from Joshua Bloch, (author of the excellent Effective Java Programming Language Guide) we can find more out about the Tiger Java release due by the end of the year. New language features in this, developer focused release, include autoboxing, metadata, type safe enums, generics, and enhanced for loops. Looks like a cool release. I hope they can get it out on time.
Thu, 8 May 2003 19:55:04 -0400Great essay on hackers (aka coders) vs. big companies, computer scientists, and the world. Gives you a little insight into my mind. It is amazing how much I identify with this essay.
Thu, 8 May 2003 15:02:49 -0400It is going to be interesting to use the next version of Pheonix (aka Firebird aka Mozilla Browser) as they move away from the monster that Mozilla is. These new Mozilla release should fix a lot of minor bugs before the road to integrating Pheonix begins.
Thu, 8 May 2003 12:39:36 -0400Denim is an interesting tool for use with a tablet to sketch out a website quickly and then zooming down into the detail of each page while linking pages together. It seems to just be a CS project right now over at the Berkely.
Wed, 7 May 2003 18:08:08 -0400Tonight's presentation marks the release of a beta of Fusebox 4. The creators of Fusebox choose a two pronged approach to the new version: Fusebox XML and Fusebox MX with CFCs.
Tue, 29 Apr 2003 11:20:40 -0400Over at Zeldman's site I found this link to a cool toolbar called PNH Developer Toolbar for Mozilla/Firebird which has lot of handy options for web developers for debugging page layouts. It currently doesn't work with Mac Mozilla 1.3 but hopefully will work soon with Moz 1.3.1. Here are the features: