Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.
Ben Nadel at CFUNITED 2009 (Lansdowne, VA) with: Jim Leether
Ben Nadel at CFUNITED 2009 (Lansdowne, VA) with: Jim Leether@VWRacer )

Recent Blog Posts by Ben Nadel

Time-Boxing A CFThread And Then Terminating It If It Takes Too Long To Complete In ColdFusion

Every now and then, I have some processing that I need to perform in ColdFusion; but, I want to time-box the processing such that I can terminate it if it runs for too long. As of late, I've been using the CFThread tag to carry out this scenario. I'll spawn an asynchronous "worker" CFThread; then, ... read more »


ColdFusion 2016 Skips Over Undefined Elements With For-In Array Loop

This morning, when I was writing up my post on generating a Java Thread Dump programmatically in ColdFusion , one thing I had to cope with was an Array that may or may not contain undefined elements. I wanted to use a for-in loop to iterate over the given array; but, I wasn't sure how ColdFusion w... read more »


Generate A Java Thread Dump Programmatically Using ColdFusion

As I've been getting used to managing an application within a larger, Kubernetes (K8) based platform, I've found myself needing to do much more programmatic introspection of the ColdFusion application and its underlying JVM (Java Virtual Machine). With such introspection, I can [hopefully] make my ... read more »


Understanding The Limitations Of Template Syntax Desugaring In Angular 7.0.4

CAUTION : The conclusions in this post are based on the results of experimentation - they are not based on documentation. Nor are they based on logic that I can find in the Angular source code. Last week, I looked at the fact that the Async Pipe "as" syntax is nothing more than the "$implicit"... read more »


Using Presentation Components In Order To Hide Async Pipe Complexity In Angular 7.0.3

CAUTION : This post is really just me thinking out loud on state management concepts in Angular 7. Consider this nothing but a work in progress from the mind of someone who barely understands what they are doing . Last week, I shared some of my frustration over the elusive nature of State Mana... read more »


Async Pipe "as" Syntax Is Just The $implicit View Context Property In Angular 7.0.3

When I started to experiment with the Runtime abstraction for state management in Angular 7.0.3 , I used the Async Pipe for the first time. The Async Pipe is nice in that it inherently manages RxJS Observable Stream subscriptions for you; but, it ends up producing noisier Angular Template markup. ... read more »


Experimenting With The Runtime Abstraction For State Management In Angular 7.0.3

CAUTION : This post is really just me thinking out loud on state management concepts in Angular 7. Consider this nothing but a work in progress from the mind of someone who barely understands what they are doing. Earlier this week, I shared my current mental model for state management and the ... read more »


Considering State Management Boundaries And The Separation Of Concerns

For the last few weeks, I've been actively struggling to understand state management in a Single Page Application (SPA) . Or perhaps more specifically, I've been struggling to understand how to use Redux in a JavaScript application. And, the more I looked at reducers and action creators and thunks... read more »


Human Redux By Henrik Joreteg

For the last couple of weeks, I've been struggling to wrap my head around state management in a Single-Page Application (SPA). Or, perhaps more specifically, I've been struggling to understand how a library like Redux can be used to make state management easier to implement and to reason about. L... read more »


Creating A Simple setState() Store Using An RxJS BehaviorSubject In Angular 6.1.10 - Part 2

CAUTION : This post is a mostly a note-to-self, so that I can close the circle on a thought I was having yesterday. Yesterday, I took a look at creating a simple, React-inspired .setState() store using an RxJS BehaviorSubject in Angular 6.1.10 . Since a BehaviorSubject() is practically a state-s... read more »


Creating A Simple setState() Store Using An RxJS BehaviorSubject In Angular 6.1.10

After struggling to wrap my head around Redux-inspired state management , I wanted to step back and consider simpler solutions. I'm not saying that a simpler solution is the right solution - only that moving my brain in a different direction may help me make new connections. As such, I wanted to s... read more »


I Am Struggling To Understand The Atomic Boundaries Of Redux Actions

CAUTION : This post contains no answers, only questions and statements of confusion . I'm writing it in hopes that by getting it out of my head and onto paper, I might be able to make more sense of it. For the last few weeks, I've been noodling on the implementation of state management in JavaSc... read more »


Software Design Decoded: 66 Ways Experts Think By Marian Petre And Andre van der Hoek

Last weekend, I was listening to an episode of Software Engineering Radio in which the hosts were discussing the book, Software Design Decoded: 66 Ways Experts Think , with the authors Marian Petre and Andre van der Hoek . The conversation was fascinating; so, I ordered the book right then an... read more »


Searching For The Wrong Type Of Simplicity Can Lead To An Explosion Of Complexity

For the last few weeks, I've been revisiting the idea of state management in an Angular application. It's a topic that I've never felt very confident with; so, I've decided to start building some state management classes as a means to dig in and feel the pain such that I can better understand the e... read more »


Trying To Create A Message Bus Using An RxJS Subject In Angular 6.1.10

CAUTION : I'm very new to RxJS. And, I'm not particularly good at TypeScript. As such, this post should be viewed as an experiment and not as a confident suggestion. I've been thinking a lot about state-management in an Angular application lately. And, one of the thoughts that I keep coming back ... read more »


THIS IS US Opening Titles Animation Using CSS Animations

My brain is somewhat fried from thinking about state-management in a Single-Page Application (SPA). As such, I needed a little mental palette cleanser; and, something that I've been wanting to do for a while is try to recreate the "This Is Us" opening titles sequence using CSS animations. ... read more »


On The Code Smell Of Asynchronous Middleware In Redux

CAUTION : This post is 100% subjective . To start off, I like the idea of Redux. And, of one-way data flows. I like that Redux provides a predictable state management system. And, I even like the idea of having middleware so that I can perform cross-cutting concerns like logging actions and capt... read more »


Sanity Check: Shared Style URLs And Emulated Encapsulation Attributes In Angular 6.1.10

A year ago, I performed a sanity check to confirm that shared style URLs were only compiled once in an Angular application . And, now that I've been digging into the mechanics of emulated encapsulation attributes , the question of shared style URLs has popped back into my mind. Specifically, I wa... read more »


Emulated Encapsulation Host And Content Attributes Are Calculated Once Per Component Type In Angular 6.1.10

Yesterday, while experimenting with recursive components in Angular 6.1.10 , I was briefly confused by the fact that recursive nesting of a single component required a little bit of CSS chicanery in order to prevent CSS styling from bleeding down into descendant nodes. Recursion tends to mess your... read more »


Playing With Recursive Components In Angular 6.1.10

This past week, I started noodling on how to use recursion in an Angular application. And, instead of reaching directly for a component-based solution, I first took at look at implementing recursive views using the Ng-Template directive . Ng-Template is fairly flexible; and, it allows for a recurs... read more »


Playing With Recursive Ng-Template References In Angular 6.1.10

Yesterday, I started to think about recursive Angular layouts for the first time. And, as someone who has bought into the "everything is a component" point-of-view, my natural instinct was to reach for recursive components. But then, I remembered that Ng-Templates allow for some very dynamic rende... read more »


Updating InVision Router Experiment To Use Lazy Loading Feature Modules In Angular 6.1.9

Earlier this year, I embarked on an exciting adventure in trying to recreate the InVision app user interface (UI) with the new Angular 5 router . It took me several months to get it done, taking many tangents along the way to solve intermediary Angular problems. But, I have to say that I was very ... read more »


ProvidedIn FeatureModule Is A Confusing Concept For Me In Angular 6.1.9

CAUTION : I don't really have a good grasp on Angular Modules. Or, on how modules related to the dependency-injector hierarchy, as is clearly demonstrated in this blog post. This post is really just for my own codification and an attempt to build a better mental model. Feel free to ignore. TL;DR... read more »


It Doesn't Have To Be Crazy At Work By Jason Fried And David Heinemeier Hansson

I'm a long-time fan of the project-management system, Basecamp . But, more so, I'm a fan of the strongly-opinionated and often controversial co-founders, Jason Fried and David Heinemeier Hansson (DHH) . I've read and quite enjoyed their two earlier books, Remote and Rework. So, when I saw last ... read more »


Playing With RegExp Named Capture Groups In Node 10

A couple of weeks ago, at the NYC Node.js Meetup, Franziska Hinkelmann went over the exciting new features of Node 10, which had just recently entered Long Term Support (LTS). Of the features that she listed, the one that really caught my ear was the addition of "named capture groups" in the Regu... read more »


The Transformative Power Of Love

A few months ago, I watched the movie, Eight Grade , which was a challenging but rewarding peek into the final weeks of middle-school for an introverted and somewhat awkward young woman. Of all the memorable scenes, the one that has stuck with me the most is a phone exchange in which a high-school... read more »


Preloading Lazy-Loaded Feature Modules In Angular 6.1.9

In the last couple of days, I've started to dig into the lazy-loading of feature modules in Angular 6 . With lazy-loading, segments of the code-base get loaded on-demand as the user navigates to the relevant areas of the application. The Angular router, however, provides a configuration that can p... read more »


Showing A Loading Indicator For Lazy-Loaded Route Modules In Angular 6.1.7

Now that I've been able to get the lazy loading of routes to work in Angular 6.1.7 with Ahead of Time (AoT) compiling and Webpack 4 , I wanted to think about how to steward the user through a lazy-loaded application. Especially when that user is on a slower network connection and the lazy-loading ... read more »


Microservices Patterns: With Examples In Java By Chris Richardson

I first became familiar with Chris Richardson through his online resource, Microservices.io . Which, to be honest, provides an overwhelming amount of information - information that I've deferred consuming because I didn't really know how to approach it; especially with my lack of microservices e... read more »


Using Commons IP Math To Check If An IP Address Exists In An IPv4 Or IPv6 CIDR Range In ColdFusion

Last week, I discovered that ColdFusion's underlying Java resources expose a Jakarta Commons Net utility called SubnetUtils. This SubnetUtils class makes it super simple to see if a given IP address exists within a given IPv4 CIDR range . Unfortunately, SubnetUtils has no support for IPv6. As such... read more »