Recent Web Log Entries By Ben Nadel
Filter vs. ngHide With ngRepeat In AngularJS
Posted: June 18, 2013 at 9:21 AM by Ben Nadel
Out of the box, AngularJS feels magical. You add a few notations here, define a few objects there, and suddenly your page is actually doing something. And you didn't even need to write any jQuery to make it work. AngularJS is awesome; and it is magical; but sometimes, side-stepping the magic, so to speak, can give you more options. Take, for examp... read more »
Comments (0) | Post Comment | Ask Ben | Permalink
Experimenting With The Amazon Simple Storage Service (S3) API Using ColdFusion
Posted: June 16, 2013 at 6:16 PM by Ben Nadel
Before I say anything, I should probably mention that as of ColdFusion 9.0.1, ColdFusion has had native file-support for Amazon S3 using the "s3://" protocol. That said, I wanted to try experimenting with the Amazon S3 REST API using ColdFusion's CFHttp functionality. I know that I'm like 5 years (at least) behind everyone else on this topic; so, ... read more »
Comments (4) | Post Comment | Ask Ben | Permalink
Working With Inherited Collections In AngularJS
Posted: June 14, 2013 at 8:44 AM by Ben Nadel
In an AngularJS application, $scope instances are all part of a prototypal chain. That is, every $scope instance (except $rootScope, I believe) has, as its prototype, the $parent scope. This is a brilliant way to architect the view-model because it means that data loaded in one controller can be accessed by controllers (and views) farther down in ... read more »
Comments (6) | Post Comment | Ask Ben | Permalink
SOTR 2013 - The Best Conference I Never Went To
Posted: June 12, 2013 at 8:58 AM by Ben Nadel
While I've been to Scotch on the Rocks a few times before, I haven't been able to attend the last two years. Or, so I thought! That, was, until James Allen started tweeting photos of me hanging out in the crowd, giving thumbs up. It turns out that mastermind, David Boyer , had put together ... read more »
Comments (7) | Post Comment | Ask Ben | Permalink
Object Thinking By David West
Posted: June 10, 2013 at 9:49 AM by Ben Nadel
My software is mostly procedural at heart. I've been told time and time again that Object Oriented Programming (OOP) offers great benefits over procedural programming; and I believe this. But, unfortunately, I find Object Oriented Programming to be a topic that continuously eludes my grasp. I haven't had that "ah-ha" moment of clarity where is sta... read more »
Comments (22) | Post Comment | Ask Ben | Permalink
Creating Ruby-Inspired Modules In ColdFusion
Posted: June 7, 2013 at 10:02 AM by Ben Nadel
A couple of months ago, I read Practical Object-Oriented Design in Ruby: An Agile Primer, by Sandi Metz . I haven't reviewed the book yet, but I wanted to explore one of the concepts Metz talked about: Ruby Modules. From what I understood (and this may be somewhat off-base, I'm not a Ruby programmer), a module is a way to "inherit" behavior witho... read more »
Comments (8) | Post Comment | Ask Ben | Permalink
A Sub-Class Should Not Access Private Variables In Its Super-Class
Posted: June 6, 2013 at 9:46 AM by Ben Nadel
A few years ago, I read the Fundamentals of Object-Oriented Design In UML by Meilir Page-Jones . It was an interesting book, but definitely went over my head in many ways. A couple of weeks ago, with a few more years of experience under my belt, I wanted to give it another read. A lot of the book still goes over my head, but something stuck out t... read more »
Comments (6) | Post Comment | Ask Ben | Permalink
Unbinding $watch() Listeners In AngularJS
Posted: June 5, 2013 at 9:09 AM by Ben Nadel
In AngularJS, you can watch for changes in your view-model by binding a listener to a particular statement (or function) using the $scope's $watch() method. You tell the $watch() method what to examine and AngularJS will invoke your listener whenever the item-under-scrutiny changes. In the vast majority of cases, the $watch() statement can be run ... read more »
Comments (2) | Post Comment | Ask Ben | Permalink
Learning About Test-Driven Development (TDD) Using Tiny Test
Posted: June 4, 2013 at 9:57 AM by Ben Nadel
Unit testing and Test-Driven Development (TDD) have, collectively, been one of the largest blind spots in my view of the programming world. A couple of weeks ago, in an attempt to remedy this, I created a very small unit testing framework - Tiny Test - such that I could learn about unit testing from the inside-out. Building the Tiny Test framewo... read more »
Comments (9) | Post Comment | Ask Ben | Permalink
Referencing ColdFusion Query Columns In A Loop Using Both Array And Dot Notation
Posted: May 31, 2013 at 9:30 AM by Ben Nadel
This is a super short blog post, and might be completely obvious to most people; but, I know that my understanding of ColdFusion query column references has evolved over time, so I thought there might be some people who don't know this yet. When it comes to ColdFusion queries, column names can be referenced using both array-notation and dot-notati... read more »
Comments (13) | Post Comment | Ask Ben | Permalink
The 6th Annual Regular Expression Day (And Prizes) - June 1st, 2013
Posted: May 29, 2013 at 9:45 AM by Ben Nadel
Holy cow! I can't believe that it's been six years since we launched the first International Regular Expression Day in honor of one of the most powerful tools in programming history - pattern matching. From validating email addresses to parsing CSV files to transforming data, regular expressions make our lives better; they make our software stro... read more »
Comments (15) | Post Comment | Ask Ben | Permalink
My Approach To Building AngularJS Directives That Bind To JavaScript Events
Posted: May 28, 2013 at 9:11 AM by Ben Nadel
As I've blogged before, AngularJS has a bit of learning curve. For me, the two biggest hurdles have been request routing and Directives. At this time, I think I have a pretty good handle on request routing and rendering nested views ; but some aspects of Directives , on the other hand, are still a bit confusing. I see Directives as having two di... read more »
Comments (9) | Post Comment | Ask Ben | Permalink
Strange Interaction Between DeserializeJson(), ArrayContains(), And Database Values In ColdFusion
Posted: May 22, 2013 at 9:58 AM by Ben Nadel
Yesterday, I was trying to use the arrayContains() method introduced in ColdFusion 9 . Unfortunately, it wasn't working. Even when I double-checked all the values in play, arrayContains() kept telling me that a known value was not in the given array. I tried switching over to arrayFind(), but unfortunately, this exhibited the same broken behavior... read more »
Comments (11) | Post Comment | Ask Ben | Permalink
Using A Dynamic Column Name With ValueList() In ColdFusion
Posted: May 20, 2013 at 9:49 AM by Ben Nadel
For the most part, ColdFusion is awesome when it comes to creating and consuming dynamic variables. Using quotes, we can easily create dynamic variable handles ; we can define dynamic class paths ; we can define dynamic struct keys ; and, we can access dynamic struct keys. ColdFusion even provides ways to invoke dynamic methods on components ... read more »
Comments (6) | Post Comment | Ask Ben | Permalink
The UX Of Prototyping: Low-Fidelity Is The New High-Fidelity
Posted: May 10, 2013 at 10:08 AM by Ben Nadel
As a User Experience (UX) designer, I spend a lot of time with pen and paper, sketching interfaces, testing ideas, and fleshing out use-case workflows. I work exclusively in grayscale. This holds true for both sketching and digital prototyping. On paper, I use a black pen (Pilot Precise Grip, Bold) on white, unruled paper; on the computer, I use a... read more »
Comments (17) | Post Comment | Ask Ben | Permalink
Previously Posted
HashKeyCopier - An AngularJS Utility Class For Merging Cached And Live Data - Posted May 7, 2013
Delegating Nested Directive Behavior To Parent Directive In AngularJS - Posted May 1, 2013
What If All User Interface (UI) Data Came In Reports? - Posted Apr 30, 2013
Tiny Test - An Exploration Of Unit Testing In ColdFusion - Posted Apr 29, 2013
Forced Repaints In Directive Can Cause Accidental Scrolling In AngularJS - Posted Apr 24, 2013
Looking At Prototypal Inheritance To Determine Data Types In JavaScript - Posted Apr 12, 2013
Stateless Service Singletons vs. Stateful Service Entities - Posted Apr 2, 2013
ColdFusion Implicit Getter Has Incorrect Type For Being Called As A Function - Posted Apr 1, 2013
The Clean Code Video Series By Robert C. Martin, aka Uncle Bob - Posted Mar 28, 2013
CFFile Upload - The Filename, Directory Name, Or Volume Label Syntax Is Incorrect - Posted Mar 22, 2013
Understanding CSS Transitions And Class Timing (Revisited) - Posted Mar 20, 2013
Understanding CSS Transitions And Class Timing - Posted Mar 19, 2013
Matthew McCullough And Tim Berglund On Mastering Git - O'Reilly Video Series - Posted Mar 18, 2013
Removing Inline Opacity Filters After Fade-In / Fade-Out Transitions In IE8 - Posted Mar 15, 2013
Reading Images With Fallback Approaches In ColdFusion - Posted Mar 8, 2013
Accessing $scope On The DOM Using AngularJS - Posted Mar 1, 2013
Grouping Nested ngRepeat Lists In AngularJS - Posted Feb 28, 2013
POIUtility.cfc Now Hosted On GitHub - Posted Feb 26, 2013
Exploring Sample Software Application Layers And Responsibilities - Posted Feb 22, 2013
Using AtomicInteger To Create Uniquely Named CFThreads In ColdFusion - Posted Feb 20, 2013
Mixing Static And Dynamic Data In An AngularJS Select Menu - Posted Feb 19, 2013
Adding An ngRepeat List Delimiter In AngularJS - Posted Feb 17, 2013
Using ngController With ngRepeat In AngularJS - Posted Feb 15, 2013
Directive Link, $observe, And $watch Functions Execute Inside An AngularJS Context - Posted Feb 13, 2013
Using jQuery Event Delegation In AngularJS - Posted Feb 12, 2013
Exploring Directive Controllers, Compiling, Linking, And Priority In AngularJS - Posted Feb 9, 2013
Using Controllers In Directives In AngularJS - Posted Feb 1, 2013
Using CSS Pseudo Elements :before And :after - Posted Jan 21, 2013
Exploring Directives, $scope, DOM Rendering, And Timing In AngularJS - Posted Jan 18, 2013
Rendering DOM Elements With ngRepeat In AngularJS - Posted Jan 16, 2013
Clearing Inline CSS Properties With jQuery - Posted Jan 15, 2013
Nested Views, Routing, And Deep Linking With AngularJS - Posted Jan 14, 2013
Creating A Custom Show / Hide Directive In AngularJS - Posted Jan 4, 2013
My Experience With AngularJS - The Super-heroic JavaScript MVW Framework - Posted Jan 3, 2013
Command-Query-Responsibility-Segregation (CQRS) Makes Domain Models Practical - Posted Dec 28, 2012
Software Application Layers And Responsibilities - Posted Dec 21, 2012
What The Heck Is Business Logic Anyway? - Posted Dec 14, 2012
Are HTML FORM Tags Required To Display Form Input Controls? - Posted Oct 26, 2012
HTTP Status Codes For Invalid Data: 400 vs. 422 - Posted Oct 17, 2012
Using RESTful Controllers In An AngularJS Resource - Posted Oct 17, 2012



