Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.
I am the chief technical officer at InVision App, Inc - a prototyping and collaboration platform for designers, built by designers. I also rock out in JavaScript and ColdFusion 24x7.
Meanwhile on Twitter
Loading latest tweet...
Ben Nadel at cf.Objective() 2014 (Bloomington, MN) with:

Ben Nadel

Member since Dec 11, 2008

Recent Blog Comments By Ben Nadel

  • The User Experience (UX) Of Custom Scrollbars

    Posted on Aug 27, 2014 at 7:07 AM

    @Lola, Yeah, good example of an odd scrollbar. Plus, I think it's really odd when you see two scrollbars right next to each other, which is probably why they try to hide the scrollbar when you're not hovering over the ticker. Also, I find it distracting the way the scrollbar keeps appearing and dis... read more »

  • The User Experience (UX) Of Custom Scrollbars

    Posted on Aug 27, 2014 at 7:06 AM

    @Edward, I've never actually used ExtJS myself, but I've heard really good things about it. And, I work with Cutter Blades, who I believe wrote a book or two on ExtJS, so I've got some great resources.... read more »

  • The User Experience (UX) Of Custom Scrollbars

    Posted on Aug 27, 2014 at 7:05 AM

    @Tushar, Awesome, my man! Glad that we were able to connect on this :)... read more »

  • Creating A Reusable Timer In AngularJS

    Posted on Aug 26, 2014 at 9:06 AM

    @Edward, Ha ha, the D/I stuff is pretty cool. I've played a bit with FW/1 on the server, so am somewhat familiar with it. But this is the first time I really used it in JavaScript. It's pretty cool! The only issue with it in AngularJS is that the D/I container has to be populated up-front. Meaning,... read more »

  • Creating A Reusable Timer In AngularJS

    Posted on Aug 25, 2014 at 1:34 PM

    @Lars, Thanks my man! I'm seeing that as more of a trend - people not really exposing the "new" operator directly and using a factory that does it for you. I see this in Node.js a lot as well.... read more »

  • Using Scope.$watch() To Watch Functions In AngularJS

    Posted on Aug 22, 2014 at 8:24 AM

    @Andrei, Awesome! I'm super excited to hear that :D... read more »

  • MySQL GROUP_CONCAT() Fails Silently When It Hits Its Size Limit

    Posted on Aug 11, 2014 at 9:34 AM

    @Adam, Totally agree - the function is working exactly as it is documented. My gripe is simply that the implementation seems sub-optimal. Using this function was a poor choice, which we unfortunately didn't catch until it was in production. And, since I've never used it before, it didn't set off an... read more »

  • Looking At Nested Event Timing And DOM Structure In AngularJS

    Posted on Aug 11, 2014 at 8:58 AM

    @Emilio, I think the order of the scopes is guaranteed; in that the higher-up scopes will receive it before the lower-down scopes (just a guess). But, once you are inside a scope, I think you're right - there is no guarantee as to which callback will be invoked first. I think it mostly has to do wi... read more »

  • MySQL GROUP_CONCAT() Has Buggy Interaction With UNION Clauses

    Posted on Aug 11, 2014 at 6:33 AM

    @Tanyar, If I do 147, then I still get 147 in the first group (since that's all there is). And, more importantly, I still get 49 in the UNION-based select. So, that's one's still problematic even if I am not truncating my result set.... read more »

  • MySQL GROUP_CONCAT() Fails Silently When It Hits Its Size Limit

    Posted on Aug 9, 2014 at 7:59 AM

    @All, Unfortunately, it looks like MySQL's GROUP_CONCAT() is even more problematic and fails even more mysteriously when it's used in conjunction with a UNION or UNION ALL clause: http://www.bennadel.com/blog/2670-mysql-group-concat-has-buggy-interaction-with-union-clauses.htm This erratic beha... read more »

  • MySQL GROUP_CONCAT() Fails Silently When It Hits Its Size Limit

    Posted on Aug 8, 2014 at 7:09 AM

    @Adam, I think it is a cool function. And, when I first learned about it, I was really excited since so much of programming is related to gathering groups of IDs :D I guess my biggest gripe is simply that it didn't throw some sort of error - that is just silently truncated the results :(... read more »

  • Parsing Http Time Strings With ParseDateTime() In ColdFusion

    Posted on Aug 5, 2014 at 10:51 AM

    @Brian, It's funny you mention that. I actually started off trying to use the dateTimeFormat(). But, I was getting a really odd output. I had a mask that was something link: "Mmm d, yyyy 'at' h:nn:ss TT" ... but the 'at' kept getting converted to 'p'. Not sure why. Even the examples in ... read more »

  • Using Plupload For Drag & Drop File Uploads In ColdFusion

    Posted on Aug 1, 2014 at 10:23 AM

    @Dani, The IDs for each Plupload instance most likely need to be unique, especially if you're going to have several instances in the DOM (Document Object Model) at the same time. Regardless of Plupload, your IDs need to be unique on the given state of a page, otherwise the underlying query selector... read more »

  • Sticky CDN - A Content Delivery Network (CDN) For Your Local Development Environment

    Posted on Jul 31, 2014 at 1:38 PM

    @James, Re "local storage", correct, it's just reading/writing to the filesystem. Essentially, it makes an HTTP request to the origin server; then, saves that file to the local file system: sticky_cdn/site/cache/ Then, on subsequent requests, it looks at the local file system first, and... read more »

  • Node.js Transform Streams vs. Through2 Streams

    Posted on Jul 24, 2014 at 9:38 PM

    @mathrick, Ah, no problem :) When I hit the "reply" button, the code automatically upper-cases the first character. Cheers.... read more »

  • Node.js Transform Streams vs. Through2 Streams

    Posted on Jul 24, 2014 at 8:38 AM

    @Mathrick, Oh man, you're absolutely right. I can't believe I missed that! I think I was trying so hard to wrap my head around Node.js streams, it didn't even occur to me that patterns could have forward-slashes. Excellent catch! I took a stab at a more durable version of the cloning, with the abi... read more »

  • CFFinally Tag Will Execute Even After An Abort In ColdFusion

    Posted on Jul 22, 2014 at 9:13 AM

    @Adam, Those Railo guys are so freaking agile. No matter what, you have to given them that! Awesome stuff :)... read more »

  • My First Look At Streams In Node.js

    Posted on Jul 22, 2014 at 9:12 AM

    @All, This post uses a Node.js Transform stream that I constructed by explicitly extending stream.Transform and defining prototype methods. It seems that this kind of stuff - in Gulp.js - is often encapsulated using the Through2 module. As such, I wanted to refactor this experiment using Through2: ... read more »

  • My First Look At Streams In Node.js

    Posted on Jul 21, 2014 at 9:21 PM

    @Ray, Thanks for the link. I think I've heard of them, but have definitely never seen that site before. This looks like some really good content. Awesome sauce!... read more »

  • CFFinally Tag Will Execute Even After An Abort In ColdFusion

    Posted on Jul 21, 2014 at 8:33 AM

    @Brad, It's funny, you just get so used to "abort" being the "final say", that it's hard to imagine that anything else can run after it. When in doubt, I test it out :D I'm just guessing here, but I assume the CFLocation tag is just setting the status-code and the "Locatio... read more »