Richard Clayton

Speaking Intelligently about "Java vs Node" Performance

Please understand what's really important when it comes to the benefits of a platform.


Unless you know the differences in the process and concurrency models of Java and Node, don't write a benchmark comparing the two. It will be silly to those who know the difference and misleading to those who don't.

For those deciding between the two platforms understand that performance isn't the only consideration. A . . .

Read More

March 14, 2016

The First 5 Imports

Essential Node/JavaScript Libraries I Can't Live With Out.

When I start a new JavaScript project, it's not uncommon that my first three imports are:

npm install --save lodash async moment 

In fact, I find these three libraries so essential, I don't think you'll find a single project I've touched without them. Each library satisfies what I consider a general short coming in the . . .

Read More

February 24, 2016

Web Proxy Using Nginx and Docker

Need SSL or Basic Auth? Standup a proxy in less than 5 minutes using Nginx and Docker.

I needed to secure (basic auth) a mongo-express instance last night and this little trick with Docker and Nginx blew me away (with how simple it was).

This tutorial assumes you have Docker installed (on Amazon Linux it's as simple as sudo yum install -y docker).

1. Generate a password file:

You will need to have the htpasswd command . . .

Read More

October 06, 2015

Do you really need a UUID/GUID?

The architectural consequences of using UUID/GUID's may outweigh their benefits.

For the purpose of this post, I will use UUID (Universally Unique Identifier) to mean both UUID and GUID (Globally Unique Identifier, Microsoft's implementation of UUID).

I've been thinking a lot about UUID's lately. The system I've inherited at work is plagued by their usage. To many developers, the UUID seems like a . . .

Read More

January 11, 2015

"Third-Time Principle" of Defining Abstractions

In general, only on the third time of encountering a common behavior should you refactor components to share a common abstraction of that behavior.

Clarification: The abstraction could be an abstract class or interface depending on the use case and language.

I've generally used this principle when I'm programming, but have never . . .

Read More

October 16, 2014

MEAN's great, but then you grow up.

Develop a prototype, then reflect on your choice.

The MEAN stack (MongoDB, Express.js, Angular.js, Node.js) is now being heralded as the new LAMP (Linux, Apache, MySQL, PHP), the preferred technology stack for startups.

MEAN is certainly a great technology choice for organizations (particularly startups) seeking to rapidly prototype a capability. However, like all technology choices, the . . .

Read More

August 22, 2014

Software Estimation is a Losing Game

Should we even bother?

This is an argument, and like all arguments, it's supports a specific position. I don't try to defend software estimation; I leave it to my colleagues to present that case. I write about this issue because I believe the software community needs to have an internal debate about whether software estimation in its current form is . . .

Read More

August 19, 2014