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() 2011 (Minneapolis, MN) with:

Justice

Member since Apr 30, 2009

Recent Blog Comments By Justice

  • Using JavaScript's With Keyword To Create A Dynamic Scope Chain For Method Execution

    Posted on May 27, 2011 at 4:43 PM

    @WebManWalking, Runtime resolution is not equivalent to lazy evaluation. In fact, most languages that feature runtime resolution nevertheless default to strict (non-lazy) evaluation. By contrast, the language Haskell features static resolution but lazy evaluation. - Justice... read more »

  • Using JavaScript's With Keyword To Create A Dynamic Scope Chain For Method Execution

    Posted on May 27, 2011 at 4:27 PM

    @WebManWalking, I haven't ever used it because I haven't ever liked it. Crockford put forward an explanation of why it's just not a good feature. But the stuff about the compilers and minifiers comes from following the compilers and minifiers. - Justice... read more »

  • Using JavaScript's With Keyword To Create A Dynamic Scope Chain For Method Execution

    Posted on May 27, 2011 at 3:40 PM

    @WebManWalking Property references are resolved at runtime, because the runtime must walk the prototype chain. See http://mckoss.com/jscript/object.htm Local variable references are generally resolved at compile time, *except* when in the presence of a `with` block. @Ben The `with` keyword of... read more »

  • Using Encrypted JSON Data To Hide Cookie Implementation In ColdFusion

    Posted on Mar 15, 2011 at 12:14 PM

    @Mike, If your website is served over SSL and all sensitive cookies are marked as SSL-only, then you will not have a FireSheep issue. If your website is not served over SSL or if sensitive cookies are not marked as SSL-only, then you will have a FireSheep issue where the attacker has the ability t... read more »

  • Using Encrypted JSON Data To Hide Cookie Implementation In ColdFusion

    Posted on Mar 9, 2011 at 10:29 AM

    Ben, A few points. 1. Do not tie the session to an IP address because IP addresses are not static over time and do not identify client computers. 2. Do not use CFMX_COMPAT - it's bogus and you might as well not be enciphering/hashing/authenticating. Use real crypto algorithms. AES-256 is a good d... read more »

  • Exploring Race Conditions In Javascript With SetInterval(), SetTimeout(), And AJAX

    Posted on Feb 10, 2011 at 10:14 AM

    @Craig, If you use google-chrome: * you can browse to about:memory to see memory usage per-tab * you can right-click the top and click Task Manager to see CPU usage per-tab * and you can hit ctrl+shift+j to see network requests (including timing, caching, etc) for the current tab and you get a cons... read more »

  • Exploring Race Conditions In Javascript With SetInterval(), SetTimeout(), And AJAX

    Posted on Feb 9, 2011 at 1:32 PM

    @Ben, Correct, web workers may run in their own fibers/threads/processes; but because they communicate with each other only via message-passing, and because web workers are not permitted to touch the DOM, you will not see odd race conditions with them. Each callback being executed on the main thre... read more »

  • Exploring Race Conditions In Javascript With SetInterval(), SetTimeout(), And AJAX

    Posted on Feb 9, 2011 at 11:34 AM

    @Ben, The browser JavaScript runtime has a single execution thread. You cannot create threads in JavaScript. For asynchronous or event-driven programming, you can schedule callbacks which the JavaScript runtime thread will execute in response to events. But the callbacks will be executed in the mai... read more »

  • jQuery Does Not Post Undefined Values In AJAX Requests

    Posted on Feb 8, 2011 at 12:33 PM

    @Ben, Note that in the sample code with screenshot, you did not include *null* values. You included *undefined* values. These are two very different things in JavaScript. In the example of clientSideData.c, c is undefined. What happens if you set clientSideData.c = null (rather than undefined, i.e.... read more »

  • Seven Languages In Seven Weeks: Ruby - Day 3

    Posted on Dec 2, 2010 at 11:14 AM

    Ben, Here's another nice description of how methods (and blocks) work. http://rubylearning.com/blog/2010/11/03/do-you-understand-rubys-objects-messages-and-blocks/ Cheers!... read more »

  • Seven Languages In Seven Weeks: Ruby - Day 3

    Posted on Nov 28, 2010 at 10:22 PM

    Ben, You can actually copy the code samples in my post above and paste them directly into the Ruby interpreter (irb) to see what they do. The code: people.each(&:yell!) is generally equivalent to: people.each do |p| p.yell! end Keep in mind that in Ruby, when you "call a met... read more »

  • Seven Languages In Seven Weeks: Ruby - Day 1

    Posted on Nov 28, 2010 at 8:41 PM

    Ben, StackOverflow and GitHub use backticks to denote inline code. Example: English English English `code code_code + code * code` English English. Or, you could just treat any regular code tag-pair where the beginning tag is immediately preceded by a newline and the ending tag is immediately... read more »

  • Seven Languages In Seven Weeks: Ruby - Day 3

    Posted on Nov 25, 2010 at 2:30 PM

    Ben, There is a lot of confusion out there about passing blocks in Ruby, and what the ampersand does. Yehuda Katz's blog entry cleared it up for me completely, though: http://yehudakatz.com/2010/02/25/rubys-implementation-does-not-define-its-semantics/ Basically, in Ruby, there is a special argu... read more »

  • Seven Languages In Seven Weeks: Ruby - Day 1

    Posted on Nov 25, 2010 at 1:14 PM

    Ben, Looks like my comment to you got ... formatted. Any chance you've got support for inline code formatting that will just format code, inline with the rest of the text, in a monospace font, rather than turning it into its own separate paragraph? Cheers!... read more »

  • Seven Languages In Seven Weeks: Ruby - Day 1

    Posted on Nov 25, 2010 at 1:12 PM

    Hal, If you want to go even more idiomatically Ruby, you don't even need to use "if abc.nil?" - you can use "unless abc" (so long as abc won't be a Boolean value). @super_programmer = SuperProgrammer.find_by_last_name( "Nadel" ) return false unless @super_programme... read more »

  • Seven Languages In Seven Weeks: Ruby - Day 1

    Posted on Nov 25, 2010 at 1:09 PM

    Ben, One of the purposes of Ruby is to read as closely to English as possible. Your goal, in writing a Ruby program, is to be able to read it as easily and as quickly as you read English. That's why, for examples, Ruby does not force you to use various keyboard symbols in the syntax, and that's why... read more »

  • What If ColdFusion's CFThread Tag Had An Interval Attribute?

    Posted on Aug 12, 2010 at 6:58 PM

    Note that JavaScript setInterval and setTimeout do not execute code async. They defer execution of the code, but the code is nevertheless executed within the ui thread (or, in a WebWorker, in the WebWorker thread).... read more »

  • Connecting Ruby To Apache On My MacBook Pro Using A VirtualHost

    Posted on Aug 10, 2010 at 11:01 PM

    Yep! Except that Rack is extensible and permits any Ruby app (including Sinatra and Rails apps) to hook into Rack and add their own middlewares and endpoints. When you run a Ruby app, your Ruby app is running in its own process and starts up its own Rack within the process, so your app has full cont... read more »

  • Connecting Ruby To Apache On My MacBook Pro Using A VirtualHost

    Posted on Aug 10, 2010 at 10:37 PM

    Like ColdFusion, it is best to run Python and Ruby web apps in an application server such as Rack. Rails and Sinatra, two popular web frameworks for Ruby, both use Rack under the hood as the application server. No need for Apache to develop apps in Sinatra or Rails (you may want it for a production... read more »

  • Extending ColdFusion Components And Its Impact On Page Performance

    Posted on Aug 10, 2010 at 3:04 PM

    @Randall Use a version control system such as Subversion, Git, Mercurial, or Darcs (or others). That is the solution to your problem. Your suggestion will simply make your existing problem even worse. Cheers, Jay... read more »