Mark Mandel and Kai Koenig were recently inspired by the ThoughtWorks "Technology Radar" to create their own, which they featured in episode 31 of 2 Devs Down Under, their conversational podcast. Because they're both somewhere along the spectrum of CFML-to-ex-CFML developers and have worked with Flex etc, their opinions on various technologies are probably of more interest to other CFML developers than the original ThoughtWorks radar. This podcast episode is longer than usual - nearly two hours - and Mark and Kai would love to hear your responses in comments. I decided my response was a bit too long to post as a comment, so I am turning it into a blog post instead.
Entries Tagged as oss
July 24, 2013 · 8 Comments
May 07, 2013 · 1 Comment
I've been asked this several times recently so I figured it was worth a blog post. First of, why would anyone want older versions of the framework? Well, if they're running on Adobe ColdFusion 9.0.0 or earlier, they can't use the 2.x release stream: they're stuck on 1.x. Also, if they're currently using an old version and don't want a major upgrade, they might want a minor upgrade for a bug fix.
Okay, so why haven't I blogged about this before? Truth be told, I thought it was "obvious" how to find specific legacy releases on any Github project. Apparently, it is not obvious for everyone so it is worth blogging about. Every properly managed project on Github tags every official release so that all past releases can be found on the 'tags' page. You can see FW/1's 'tags' page where you can find every release since 1.0. Unfortunately, my choice of naming for tags has not always been consistent and I forgot the 'v' prefix for a while around the release of 2.0. Oops. Unfortunately the typical naming convention for prereleases tends to sort them above their gold release versions - see Clojure's core.logic library's tags for a more striking example. At least Github provides an easy mechanism for provided tagged archive releases.
It's probably worth pointing out that downloading FW/1 directly from the FW/1 RIAForge project page will give you the latest stable release which is currently 2.1.1. That's because it downloads a ZIP file of the "master" branch from the Github site. All development is performed on the "develop" branch. The only time the RIAForge site will slip you something different is when a new release is in the Release Candidate stage and I update the RIAForge page to download a ZIP file of the "develop" branch - and I update the page to clearly state that! - and this is to increase adoption of the new release and help flush out any remaining bugs that haven't been caught during the alpha and beta testing phases.
April 06, 2013 · No Comments
The seventh minor update in four months, this brings a number of bug fixes and enhancements to DI/1 - Inject One since the 0.4.0 release at the beginning of December, 2012:
- Fix optional constructor argument handling (with help from Marcin Szczepanski)
- Fix edge case bug in property / setter / accessor logic
- Setter metadata is cached, improving transient bean handling performance (Grant Shepert)
- Robustness fixes for file path handling and parent bean factory handling
- Add getVersion() API
- Addition of transientPattern configuration option (Matt Levine)
In addition, DI/1 has moved to the FW/1 - Framework One organization on Github. The old repo still exists under my account (and is an up-to-date fork), but you should watch / fork / contribute to the new repo going forward.
January 29, 2012 · No Comments
Last year I attended the first OpenCF Summit and I thought it was a great event for a number of reasons. It's back again this year, Feburary 24-26, in the same great location and it's just $72 for three days of collaborative education.
December 18, 2011 · 4 Comments
After a long period of testing out in the wild FW/1 2.0 reached RC2 back in October and no further bugs have been reported. Only documentation remained and that has now been completed. FW/1 2.0 is gold and can be downloaded from FW/1's RIAForge site. Happy Holidays!
November 30, 2011 · 3 Comments
I try not to pay much attention to popularity contests but I was just browsing Github today and happened to notice that FW/1 is both the "most watched overall" and "most forked overall" ColdFusion project on Github. Thank you!
November 07, 2011 · 5 Comments
After two years in the CFML world, FW/1 (Framework One) comes to Clojure!
Intended to bring the same simple, lightweight, convention-based MVC web application development that has proved so popular in the CFML world to the world of Clojure, FW/1 for Clojure is available on Clojars (0.1.0, as of April 2012). If you clone the github repo, you'll see a "user manager" example application which is a port of the same app from the CFML version of the framework. The documentation is, as always, a work in progress but covers the basic API and how to create a driver program for the framework in Clojure. More information on the rationale, approach and API of FW/1 can be found on the FW/1 (for CFML) wiki. I plan to adapt this for the Clojure version shortly...
September 06, 2011 · No Comments
Packt Publishing has opened nominations for their 2011 Open Source Awards. Nominate your favorite open source CMS (Mura, perhaps?), as well as other categories!
August 13, 2011 · 6 Comments
After a lot of things delayed the alpha release of FW/1 2.0, I've now found time to work on DI/1 again and get it into a usable shape. The idea is that you point DI/1 at one or more folders and it searches those folders for CFCs and builds a bean factory to manage them, all by convention (so no XML required!). DI/1 supports dependency injection, by name, through constructor argument, explicit setter methods and property declarations (with implicit setters enabled).
August 07, 2011 · No Comments
Even tho' it's far from a 1.0 release, I've updated the cfmljure project on github to contain the latest version that we're using at World Singles and update the examples so they work again, along with updated instructions - mainly that the Clojure code needs to be in WEB-INF/classes/ so that it can be picked up dynamically. This is a fundamental piece of our infrastructure at World Singles, since we rely heavily on Clojure for the Model of our application, with our View-Controller in CFML. It's not intended to be general purpose code but if you want to play around with calling Clojure from CFML, it should get you started.
Don't forget the cfmljure mailing list if you need assistance!