Don't rip your hair out when Vows tells you "Errored callback not fired" - try this one weird trick instead

When your vows.js based tests for a Node.js application says "Errored » callback not fired" -- well, it can be very confusing. In my case the code clearly handled all paths ensuring the Vows callback would be called. No matter how many tweaks I performed to try and catch some possible error in test or code, I couldn't figure out what caused this problem. But after some yahoogling, the answer was not only difficult to find, but surprisingly simple.

Oath Keepers, unlicensed security services amid the civil rights protests of Ferguson MO

Since August 2014 the St. Louis suburb of Ferguson MO has been in the news, not because it's a nice town (which it is) but because a Ferguson Police Officer shot and killed an unarmed black teenager. Purportedly the shooting was because the teenager had just committed a "strong arm robbery" by stealing a package of cheap cigars from a convenience store.

Blast from the past - There WERE chemical weapons in Iraq, from the 1980's, built under US cooperation

Remember why it was so important for "us" to go into Iraq to topple Saddam Hussain's sovereign government? I'm not talking about the real reason - access to Iraq's oil fields - but the reason we were told. Remember warnings of mushroom clouds, and Saddam's chemical and biological weapons research programs? The programs for which zero evidence was found once Western forces entered the country and toppled the government?

Distributing, publicly or privately, Node.js modules without using npm repository

The default assumption for distributing a Node.js module is to publish it in the public npm registry. It's a simple declaration in the package.json, and then you tell your customers to simply type "npm install". The public npm registry takes care of the details, and you can even use versioning to make sure your customers use tested module versions. But what if you don't want to publish modules in the public npm registry?

How do you choose between Node.js or other web application technologies?

There are plenty of new server side web application development technologies being developed. With the blizzard of choices before us, how do you choose between one or another? Will the newly hot web app technology really take off, or will it fizzle in a few years? For example, Node.js is getting a lot of excitement, but what about Go, or what about the mature platforms like PHP/Symfony or CakePHP?

You can joyfully parse and manipulate URL's in browser-based JavaScript

URL's are not strings, but are a data structure that's represented as a string. How do you easily and reliably manipulate a URL string programmatically? Do you use regular expressions or other kinds of string manipulations? Given all the ways to encode data in a URL, how do you ensure it remains syntactically correct while doing string manipulation? Manipulating URL's with regular expressions is rather difficult because of the format and nature of a URL.

Silicon Valley housing costs are insane, verified by real data

Housing costs in Silicon Valley are insane. Both rental and purchased housing has always have been outrageous, compared to the rest of the country, but the last two years has seen an absolutely insane rise in property values and rental rates. I haven't looked for data on this, but obviously those at the lower end of the pay scale are being priced out of the market.

Fixing broken images when Drupal adds _0 to uploaded file names; filename and filepath differs

druplicon.large_.pngOccasionally on Drupal sites (perhaps only Drupal 6), uploading a file to a file field, or the file uploads area on a node, results in the "filepath" indicating a different name than the "filename". That is, in the data model for a Node, you can attach files in the "uploads" or in a CCK field (in Drupal 7 this is slightly different) and each attached file is an object (or array) containing attributes named "filename" and "filepath".

Easily offload your CPU-intensive Node.js code with simple Express-based REST server

nodejs-dark.pngNode.js is horrible with CPU bound processing, supposedly. Why? Because CPU-intensive algorithms block the event loop from handling events, blocking the Node.js platform from doing its core competency. Actually, as I demonstrate in my book Node Web Development (see sidebar for link), it's possible to use "setImmediate" to dispatch work through the Node.js event loop, and perform intensive computation while not blocking the event loop.

Unit testing Express route handlers in isolation from everything, including Express

nodejs-dark.pngWhen we write unit tests it's good practice to "mock" out extraneous bits to the code being tested. It's almost like the scientific method in that testing, in the unit testing paradigm, means exercising each small portion of your code in isolation if only to eliminate unwanted variables. While there are other testing paradigms, unit testing has its value. A big question for Node.js web application programmers is - how do you mock out HTTP requests for unit testing?


Subscribe to Front page feed