Subscribe: kdub's log
Added By: Feedage Forager Feedage Grade B rated
Language: English
address book  appbooster  application  applications  bean factory  bean  code  coldspring  event  flash  java  new  object  services 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: kdub's log

kdub's log

My interests currently include Java web applications (with Spring, Hibernate, Ant, and Tomcat), Mac OS X (the world's best OS), and ColdFusion.

Last Build Date: Thu, 19 Jun 2008 10:57:07 -0400

Copyright: Copyright 2008

New Blog Location

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.

AppBooster Beta 3

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:

    Using ColdSpring AOP to log method calls to the userService.cfc
  • Public login interface
  • New version of Stitch which allows events to be grouped into sections for easier security and navigation
  • New Flex 2 interface, currently this only displays a list of users but this demonstrats how to use ColdSpring's remote proxy factory

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.

Download AppBooster Beta 3

Download Appbooster Flex Beta 3

CFHibernate Proof of Concept

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.

Download the proof of concept code

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.

AppBooster Beta 2

Sun, 26 Mar 2006 14:47:29 -0500

I 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.

Appbooster beta 2

The next step for Appbooster is to convert it over to use Reactor so people can see how easy it is to swap out a persistence layer using ColdSpring with service objects. I also want to show some really cool skinable custom tags that Shannon Jackson has been working. Finally I would like to create a Flash or Flex front end to use how easy Flash Remoting can be with this type of application architecture.

Anyone who is interested in contributing to Appbooster or who has questions is encouraged to join the new Appbooster mailing list. Simply send an email to appbooster at with the word "subscribe" in the subject and body.

Introducing AppBooster

Mon, 13 Mar 2006 16:30:23 -0500

At CF.Objective() I released a new application that I think the CF community will find valuable.

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.

To install appbooster but all the folders from the zip archive into your web root. This should include the MachII and coldspring directories. Using your favorite mysql tool run the sql script in the appbooster/db directory. Finally create a datasource in the CF admin interface called "appbooster".
Over the next several weeks I will be blogging about Appbooster and some of the tips and techniques that I use when developing Mach II application with ColdSpring. In the future I intend on enhancing Appbooster to use Reactor for persistence and to add better skinning support. In addition plan to have a mailing list and source code repository publicly available to encourage your contributions.

CF.Objective(): Tom Jordahl

Sat, 11 Mar 2006 11:44:51 -0500

CF.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.

cf.objective: Why you should attend

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.

Why you should use ColdSpring

Sun, 20 Nov 2005 23:20:30 -0500

As 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. ${dsn} ${dsn} The great thing is that you can use ColdSpring with any framework out there. There are already good plugins for Mach II and Model Glue. Hopefully you have found this brief example helpful. If you think the full source code for this example would be helpful please post a comment. [...]

Hierarchical Bean Factory Support For ColdSpring

Sun, 20 Nov 2005 23:20:23 -0500

Recently 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. 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.                 I will try to post this to my blog too along with more an explanation of how my services are structured. Hopefully more people in the CF community can build better OO applications by utilizing ColdSpring and solid OO models with services/managers, DAOs, and getways. Hopefully people find this explanation helpful. An example application with this structure might also be helpful. [...]

CFUnited TCCFUG Presentation

Wed, 3 Aug 2005 11:51:44 -0400

Tonight 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.

Macromedia joins up with CFEclipse

Wed, 29 Jun 2005 09:56:37 -0400

At 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.

CFUnited: Arrival and MiniMAX 2

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 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

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.

CFUnited Here I Come

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.

The Lack of Posts

Mon, 27 Jun 2005 18:58:13 -0400

Lately, 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!

HTML or Flash

Sun, 7 Nov 2004 19:17:30 -0500

  • HTML superior for browsing large dbs of text content. Sites used for brief periods of time for a small piece of text.
    • Example
  • Multi-step forms are a excellent place to use flash. Good for guiding interfaces because it can provide more feedback and consistent screen layout from step to step. It is also easier to go back to a previous step.
    • Example: macromedia store checkout vs amazon checkout
  • Portals – he believes that is it is a tossup. HTML superior for text content; Flash superior for configuration and multi-media integration. Portals are generally used often but briefly. In the flash site you also can link to particular area. Customization was difficult in the HTML version.
    • Example: Road Runner vs.
  • Dashboards – Winner is defiantly flash since flash is great for data manipulation and display (graphs, ect). Caching and clear graphics also give flash an advantage.
    • Brocade (flash) vs. (html)
  • Best of Both Worlds – HTML is used for content browsing. Flash for interactivity.
    • NetShop (flash widget in a largely html page) and NetShop 2 (DHTML and Flash via use of layers)

MAX Day 2: CF Printing and Reporting

Sun, 7 Nov 2004 19:16:09 -0500

  • used for generating pdf or flashpaper for printing
    • Supports HTML 4.01/XHTML and CSS 1 and 2
    • Page breaks, headers, and footers are supported through the
    • can have its own header and footer
  • - template attribute should point to a .cfr
    • You can pass in parameters using the cfreportparam tag.
    • By using the filename attribute you can save the file to disk instead of streaming to the browser.
  • CF Report Builder
    • To show page x of y change the time of evaluation for the y expression (calc.page_number) to “report”.
    • You can use “print when” to provide a condition for when the field should be showed. This can be used for conditional formatting of a field.
    • Anything in the page scoped can be called including udfs.
    • Subreports can have nested subreports

Securing CF Applications – Sarge and John Cummings

Sun, 7 Nov 2004 19:15:02 -0500

  • Flash remoting request with setCredentials() called will trigger the cflogin tag to process a login.
  • There is a bug with cflogin when using the preferred session scope for storing login information. Technote 19490 has more details. Even using cookie storage has a serious bug as well.
  • When authenticating through LDAP with Active Directory you often have to use the user’s full name instead of username to login.
    • LDP or the LDAP Browser by Softterra are good tools to explorer your LDAP schema.
  • There were some interesting slides on Flash Remoting and web services security that he didn’t get time to cover.
  • New scriptprotect attribute of cfapplication for securing scopes against XSS attacks.
  • If you write your own security and know how to do it there isn’t really a good reason to use cflogin right now.

CF Performance Tips and Tricks – Rob Rusher

Sun, 7 Nov 2004 19:14:24 -0500

  • The biggest improvements are seen in the DB
    • Use query analyzer to find slow queries and help you add the appropriate indexes.
    • blockFactor allows CF to return multiple records (rows) per request (packet). Determine the max size (in bytes) of each row, divide into 32k, max blockFactor = 100
  • Better code can also help performance
    • CF has to search scopes when not specified
    • Arrays are now faster then lists in MX due to slow string processing in Java.
    • EQ/NEQ are better with integers and IS is better with strings
    • Reduce whitespace by using and
    • Lock calls to 3rd party tools esp. COM objects.
    • Caching many places and ways to cache including page, query.
  • CF Settings
    • Simultaneous requests – rough guess approx 3/cpu (MX)
    • Template cache – high enough to hold all .cfm and .cfc
    • JVM tuning
    • Heap – watch over time and set accordingly
    • GC – control aggressiveness with the HeapFreeRatio flag. Recommended –XX:HeapFreeRatio=20) in java.args

MAX Day 1: Using CF with Flash – Jeff Tapper

Sun, 7 Nov 2004 19:13:36 -0500

  • Always returns arrays instead of queries because that is more efficient and easier to work with in Flash. Uses a UDF queryToArray to convert everything on the server side before returning to flash.
    • There is some extra internal translation on the flash side to convert a cf query object to a flash object. Returning a CF array makes that translation faster.
  • Bindings in Flash are only really usable for rapid prototyping. In real world development he finds that they are too limiting.
  • The new remoting connector is really nice and brings remoting up to par with the web services connector.
  • NetConnection debugger helps you see what the remoting calls are returning.
  • Doesn’t use screens because they are slow to compile and add extra overhead. Recommends Flex (if you can afford it :))

Get Mach II's First Event

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 ""#">
active="#request.event.getArg("mainEvent") eq "sites.upload"#">

A New Flash Blog

Wed, 25 Aug 2004 11:14:51 -0400

My 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.

Mechanics and Engineers in Software Development

Thu, 29 Apr 2004 09:11:45 -0400

I 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.

Apache SSL Cert Problems

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
SSLCertificateFile "bin/"
SSLCertificateKeyFile "bin/"
SSLCertificateChainFile "bin/intermediate.crt"

DocumentRoot "D:/htdocs/"
# CustomLog D:\logs\webtrends\\webtrends.log webtrends
CustomLog "|C:/apache/bin/rotatelogs.exe D:/logs/webtrends/ 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?

Apache Problem Solved

Thu, 11 Dec 2003 11:09:17 -0500

Last 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! :)

MAX is coming up

Fri, 14 Nov 2003 10:14:53 -0500

I 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!

Running Multiple Versions of IE

Wed, 12 Nov 2003 10:17:39 -0500

I 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.

WebWork2 Findings

Mon, 10 Nov 2003 23:08:40 -0500

Through 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.

Partial Solution to a Dead CFMX 6.1 Installer

Wed, 5 Nov 2003 11:00:07 -0500

One 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 Using the information from about debugging options for the CF installer he was able to create the following file and get the installer to work in silent mode from the commandline.


He then ran the following command on the command line:

d:>coldfusion-61-win.exe -i silent -f d:\

No luck on getting it to install the Enterprise version though. :(

CVS pserver on OS X 10.3

Mon, 3 Nov 2003 23:05:37 -0500

Using the the hint I put together for, 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.

My Fav Free OS X Apps

Mon, 27 Oct 2003 22:15:39 -0500

  • DesktopManager for virtual desktops
  • Adium or Fire for instant messanging
  • Aqua Data Studio for DB queries and editing
  • Fink and FinkCommander for getting all the Unix apps I need.
  • iTerm and excellent terminal with tabs.
  • skEdit a great HTML editor. Unfortuantly this is the one app that isn't free but I included it since I think it is so great.
  • Transmit An excellent shareware FTP client.
Don't forget to checkout list of Panther hints too!

Migrating an AOL Address Book to OS X

Mon, 27 Oct 2003 21:41:57 -0500

This 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.

Cold Fusion Data Objects (CFDO)

Wed, 17 Sep 2003 10:15:27 -0400

I 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.

A New PowerBook Will Be Mine

Wed, 17 Sep 2003 10:04:18 -0400

I ordered a new 15 inch PowerBook G4 last night. I got the 1.25 Ghz with a combo drive and 512 MB RAM (1 DIMM) for about $2600. I figured I don't have much use for the Superdrive since I don't have a digital video camera. Someday though. :) Pretty sweet if you ask me especially since the ship date is mid next week which means with the $12 shipping option I got I should have by next Friday if things good well. It isn't a G5 but those are a ways off for the PBs I think.

The Mall of America Apple Store had some units in stock yesterday but sold them all pretty quickly. They say that they will have display model up today hopefully. The 15inch has alumium case which it didn't have before with the ports on the side similar to the 17 inch. The 17 and 12 inch models use the same alumium casee as before but with different internals.

Matt may want to try pricing the systems with out Apple's pricey 1 GB RAM modules. That cut the price for my 15 inch down $400. Instead I got the 1 512 MB DIMM option (+$100 from the base config). I figure I can add after market RAM later for cheaper. The 1.25 Ghz G4s used in the new PBs are supposed to be 10% faster then the same 1.25 Ghzs in the iMacs because of the slightly new chip design. This is even without the L3 cache that the old PBs had because they double the amount of one chip L2 cache in the new PBs. :)

Eclipse 3.0M3 is out

Fri, 29 Aug 2003 09:37:13 -0400

You 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.

Ben Forta on the next version of CF

Tue, 22 Jul 2003 00:21:05 -0400

Tonight 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.

Here is what Ben said would be a part of tha next CF release:
  • Better backward compatablity with CF 5 and simpilar migration
  • Support for Windows 2003 Server and Red Hat 8 & 9
  • New compiler which goes directly from CFML to Java byte code skipping the Java code generation step. This basically sounded like a JIT (just in time compiler) which really speeds development of an app by reducing the time you are waiting for the CF template to compile each time you make changes. Ben said this compilar is pretty darn fast so much so that you may not even need to cache the .class to disk.
  • Better and newer installers
  • CFC Enhancements including better support for inheridence through the "super" keyword/structure. Very nice!
  • Major enhancements for cfmail. Mutliple cfmail threads can now process 1 million messages/sec.
  • A new version of Dreamweaver is in the works which targets CF developers and is meant to be a complete replacement for CF Studio.
Again no word on when these features will be ready but they definatly represent what would be a part of a point release of CF rather then a whole new version number (likely). Some nice polish that seems to be mainly meant to get the companies that haven't upgraded from CF 5 on the MX bandwagon.

Update 7/21: Ben has just posted a note on his blog stating that I misquoted him on the performance of cfmail. cfmail will be able to do 1 million msgs per _hour_ not _sec_ sorry Ben!

WebWork2 Looks Sweet

Mon, 7 Jul 2003 00:14:15 -0400

I 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.

Replacement for the CF Verity Spider?

Mon, 30 Jun 2003 00:39:23 -0400

I 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?

One option I was thinking of was to make my own spider that could index content by throwing it into a DB and then using Verity or by user Jakarta Lucene. I recently show a post by Aaron Johnson in which he showed a neat project, HTMLParser which I might be able to use. He even mentioned it in the same context. It comes with some sample code for building a spider. I suspect that problem has been run into before by other CF developers that work in a multihomed environment so I wonder if there is some pre-built inexpensive solution. Of course Google might be one option! :)

Useful Components

Mon, 30 Jun 2003 00:29:46 -0400

CFLOOP 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).

Generating PDFs from CF

Thu, 26 Jun 2003 19:21:42 -0400

I 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.

Web Application Interface Design: Forms

Tue, 27 May 2003 18:13:54 -0400

I came across this great article on designing web forms in web applications in a link from the CF-Talk list.

Hibernate + XDoclet Tutorial

Mon, 19 May 2003 00:37:54 -0400

I 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.

New RIA Topic

Tue, 13 May 2003 23:40:49 -0400

Today 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 article.

Building Flash Element Programmically

Tue, 13 May 2003 23:18:55 -0400

I found a nice article about building Flash components programmically. It explains a little bit of the mystery surrounding how ActionScript and Flash work. It is nice to know that I can leverage my Java and Javascript skills in my Flash learning.

Java 1.5 The "Tiger"

Fri, 9 May 2003 13:19:41 -0400

Straight 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.

Hackers and Painters

Thu, 8 May 2003 19:55:04 -0400

Great 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.

Mozilla 1.3.1 and 1.4 Beta released

Thu, 8 May 2003 15:02:49 -0400

It 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.

Denim: a Java tool for drawing out websites

Thu, 8 May 2003 12:39:36 -0400

Denim 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.

Fusebox 4 Beta

Wed, 7 May 2003 18:08:08 -0400

Tonight'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.

Fusebox XML uses an XML file in place of the infamous fbx_switch file. The main seems to be to provide a controller file that is language natural allow it to be used in a php port of a CF application, for example, with out any changes. Personally I don't really find this to be that great of an advantage, in fact, since I do a lot of variable setting and basic manipulation in my fbx_switch file losing this capability in the controller is somewhat disappointing.

Fusebox with CFCs uses a brings an OO approach to the Fusebox architecure much like Struts or WebWork does in the Java world. Only basic details of this approach are online at the moment.

It will be very interesting in the coming days to see the community's reaction to this new release. At the moment I am actually somewhat dissappointed, but I don't have the full details yet so I am withholding judgement.

Cool Mozilla Toolbar for Web Developers

Tue, 29 Apr 2003 11:20:40 -0400

Over 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:
  • Links to most W3C Specifications
  • Automated submission to many validation tools
  • Hide & show style sheets
  • Apply your own external style sheet
  • Highlight many HTML elements
  • Resize Window to specific dimensions for testing
  • Highlight form information
  • View page cookies