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 the New York ColdFusion User Group (Jan. 2008) with: Clark Valberg and Adam Lehman

Ben Nadel

Member since Dec 11, 2008

Recent Blog Comments By Ben Nadel

  • You Can Reference Your Derived SELECT Columns In Your ORDER BY Clause In SQL

    Posted on Sep 19, 2014 at 5:24 PM

    @J, I don't have any practical experience with DB2 or PostgreSQL, but I hear people rave about Postgress. It even has native JSON data types these days, probably trying to bridge some of the NoSQL functionality. Thanks for bringing the differences up; I didn't know that this wasn't part of the core... read more »

  • You Can Reference Your Derived SELECT Columns In Your ORDER BY Clause In SQL

    Posted on Sep 19, 2014 at 5:16 PM

    @Justin, I like that idea. I used to use "table variables" when I was in MS SQL Server; but, when I moved to MySQL, they don't have the same concept. I've done a little bit of reading about the temp table stuff. It seems like they are "session specific", but I never quite know h... read more »

  • Sending MMS (Multimedia Messaging Service) Messages With Twilio And ColdFusion

    Posted on Sep 19, 2014 at 8:59 AM

    @All, Most excellent news! Twilio now supports MMS messages on all US phone numbers. I double-checked this demo and it works as-is! But, of course, what would be the fun in that - I re-tooled the demo to use an upload form just so I could spend some time basking in the awesome goodness that is Tw... read more »

  • Turning Buffers Into Readable Streams In Node.js

    Posted on Sep 16, 2014 at 8:07 AM

    @All, Really minor follow-up; but, as I was looking into this, I discovered that Buffers won't throw an error if you .slice() out of bounds: http://www.bennadel.com/blog/2682-buffer-slice-won-t-error-on-out-of-bounds-indices-in-node-js.htm Very useful technical behavior!... read more »

  • Bind Your Error Handler Before Your Readable Handler When Using Node.js Streams

    Posted on Sep 2, 2014 at 9:55 AM

    @Ray, Not yet. You had mentioned it before and I went to look at it. I didn't know anything about NodeSchool, so I assumed it was a video course. But, it looks like it's an interactive REPL adventure :D I was a little thrown by that - just wasn't what I was expecting. I'm planning on doing it, but ... read more »

  • 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 »