Recent Web Log Entries By Ben Nadel
What If All User Interface (UI) Data Came In Reports?
Posted: April 30, 2013 at 9:53 AM by Ben Nadel
As I've been trying to think more deeply about software application architecture , and experimenting with new ideas, one thing has become painfully obvious to me: shoehorning your domain model into your user interface (UI) leads to pain. Maybe not at first - maybe not when your user interface is a simplistic representation of your domain; but ove... read more »
Comments (36) | Post Comment | Ask Ben | Permalink
Tiny Test - An Exploration Of Unit Testing In ColdFusion
Posted: April 29, 2013 at 9:45 AM by Ben Nadel
I am not good at unit testing my code. I've played around a little bit with MXUnit (for ColdFusion) and Jasmine (for JavaScript) ; but, I've not really committed to using unit testing within my professional workflow. I know this is bad; and, I know it needs to be fixed. So, I decided to sit down and really try to get comfortable with unit testi... read more »
Comments (6) | Post Comment | Ask Ben | Permalink
Stateless Service Singletons vs. Stateful Service Entities
Posted: April 2, 2013 at 4:34 PM by Ben Nadel
The other day, I was watching one of the Test Driven Development (TDD) episodes in the Clean Coder video series by Robert C. Martin . In the episode, Robert Martin (aka Uncle Bob) was using the Red-Green-Refactor approach to refactoring some HTML formatter class. As he was walking through the demonstration, something completely tangential struck ... read more »
Comments (10) | Post Comment | Ask Ben | Permalink
ColdFusion Implicit Getter Has Incorrect Type For Being Called As A Function
Posted: April 1, 2013 at 10:11 AM by Ben Nadel
ColdFusion 9 overloaded the CFProperty tag (or just "property" in CFScript) to allow for the definition of implicit, or synthesized, getter and setter methods . Lately, I've been using these implicit setters as a way to provide dependency injection hooks for Sean Corfield's DI/1 Framework . The setters seems to work without fail. And, 99% of the... read more »
Comments (7) | Post Comment | Ask Ben | Permalink
CFFile Upload - The Filename, Directory Name, Or Volume Label Syntax Is Incorrect
Posted: March 22, 2013 at 9:13 AM by Ben Nadel
In all the years that I've been using ColdFusion, I've never really had a problem with CFFile Upload (ie. CFFile action=upload). It just works; and it's awesome. The other day, however, I started getting this really odd error from my ColdFusion CFFile tag: The filename, directory name, or volume label syntax is incorrect. Since nothing around th... read more »
Comments (3) | Post Comment | Ask Ben | Permalink
Reading Images With Fallback Approaches In ColdFusion
Posted: March 8, 2013 at 5:24 PM by Ben Nadel
One of the things that I love about ColdFusion is how freaking easy it is to read, write, and manipulate images without any 3rd party software. You get all that magic in ColdFusion, right out of the box. Sometimes, however, your users upload an image that ColdFusion doesn't really like, and you have to start taking a different approach. Or rather,... read more »
Comments (6) | Post Comment | Ask Ben | Permalink
POIUtility.cfc Now Hosted On GitHub
Posted: February 26, 2013 at 9:33 AM by Ben Nadel
This is just a quick post to say that my old POIUtility.cfc is now hosted on GitHub . I cleaned the codebase up a little, adding some organizational folders; but, mostly, it was copied over as-is to GitHub. For those of you who have no idea what the POIUtility.cfc is, it's a ColdFusion component (and set of ColdFusion custom tags) that facilitat... read more »
Comments (9) | Post Comment | Ask Ben | Permalink
Exploring Sample Software Application Layers And Responsibilities
Posted: February 22, 2013 at 9:59 AM by Ben Nadel
A couple of months ago, I summarized how I've been thinking about software application layers and the responsibility of those various layers . Of course, putting it on paper and putting it into action are two very different things. And, since then, I've found myself getting lost and confused as to which parts of the application belong in which la... read more »
Comments (12) | Post Comment | Ask Ben | Permalink
Using AtomicInteger To Create Uniquely Named CFThreads In ColdFusion
Posted: February 20, 2013 at 9:39 AM by Ben Nadel
When you use CFThread to run code asynchronously in ColdFusion, all threads in a given request need to be uniquely named. This is (theoretically) because all threads in a single request can be accessed, by name, using the "cfthread" scope, regardless of where in the codebase they were spawned. Failure to provide a unique name will precipitate the ... read more »
Comments (11) | Post Comment | Ask Ben | Permalink
Command-Query-Responsibility-Segregation (CQRS) Makes Domain Models Practical
Posted: December 28, 2012 at 4:22 PM by Ben Nadel
As I've been learning more about software application architecture and trying to get my feet wet with real Object Oriented Programming (OOP), one of the biggest stumbling blocks has been trying to reconcile the constrained nature of a domain model with the rather numerous and diverse set of user interfaces (UI) that leverage said domain model. I... read more »
Comments (7) | Post Comment | Ask Ben | Permalink
Software Application Layers And Responsibilities
Posted: December 21, 2012 at 5:09 PM by Ben Nadel
I know that I haven't done much blogging lately (due to work); but, I've been doing a ton of thinking about software application architecture. Much of this thought has been influenced by previos projects as well as the pain and subsequent refactoring of my current project. On top of that, the people who comment on this blog have been extremely inf... read more »
Comments (16) | Post Comment | Ask Ben | Permalink
What The Heck Is Business Logic Anyway?
Posted: December 14, 2012 at 5:00 PM by Ben Nadel
For the last year, I've been trying hard to become a better programmer. This journey has involved both writing a ton of code as well as constantly evaluating and re-evaluating the way I think about software application architecture. Of course, I can only do so much on my own; which is why I turn - daily - to the blogosphere to see what people are ... read more »
Comments (46) | Post Comment | Ask Ben | Permalink
HTTP Status Codes For Invalid Data: 400 vs. 422
Posted: October 17, 2012 at 9:05 AM by Ben Nadel
Let's say that someone makes a request to your server with data that is in the correct format, but is simply not "good" data. So for example, imagine that someone posted a String value to an API endpoint that expected a String value; but, the value of the string contained data that was blacklisted (ex. preventing people from using "password" as th... read more »
Comments (43) | Post Comment | Ask Ben | Permalink
Using RESTful Controllers In An AngularJS Resource
Posted: October 17, 2012 at 8:23 AM by Ben Nadel
As I blogged last week, AngularJS provides the $resource class as an abstraction layer between your client-side code and the server-side API . This makes performing CRUD-style operations across the network fairly easy. But what happens when you need to execute a command on a RESTful resource that falls outside the standard CRUD (ie. Create, Read,... read more »
Comments (12) | Post Comment | Ask Ben | Permalink
Inlining AngularJS Templates Using ColdFusion
Posted: October 5, 2012 at 4:39 PM by Ben Nadel
In an AngularJS application, you're probably going to make heavy use of templates; or "views" or "partials" or whatever you want to call the snippets of HTML that you bring together in order to construct your user interface. In AngularJS, templates can be loaded using the ngView or ngInclude directives. In either case, the template is defined as a... read more »



