JavaScript moves fast. Both the language, and the frameworks and tooling around it are receiving updates at an enormous rate these days. This pace of change oftens means a project you worked on a few months ago is now using “outdated” tools and technologies ... more
JavaScript is anything but a “static” language (pun intended). It seems everything is changing – even the naming of releases has changed, with years marking the language version. And starting with the release of ES6 (officially, “ES2015”), the language ... more
A while back I wrote a post about selecting a base Docker image for Node.js. In that post, I talked about the size difference of the default build for Node.js and the smaller, “slim” and “alpine” builds. The difference can be significant: 650MB for the ... more
JavaScript is rapidly evolving. With the TC39 Working Group setting the course for the language, and the larger community being involved in the process, it’s moving faster than any other language with 20+ years of history behind it. And it can be overwhelming ... more
It’s tempting to use the “:latest” tag of an image when you first get started with Docker and pulling images from DockerHub. After all, who wouldn’t want the latest and greatest version of MongoDB, Node.js, Redis, etc, when they start a project? But ... more
Around a year ago, I wrote a blog post lamenting the high cost of entry for using ES6 features like generators, modules, etc. Since then, the world of JavaScript runtime environments has progressed significantly. Most (if not all) of the features that ... more
A few years ago, JavaScript introduced the idea of generators to the language. It’s a tool that was absolutely needed in the JavaScript world, and I was very happy to see it added, even if I didn’t like the name at the time. But now, after a few years ... more
If you’ve ever written code like this, you know the pain that is asynchronous workflow in JavaScript. Nested function after nested function. Multiple redundant (but probably necessary) checks for errors. It’s enough to make you want to quit JavaScript… ... more
Sometimes it seems like it’s impossible to learn the new stuff without breaking your existing work… installing new versions of Node.js, updating Babel.js plugins, enabling experimental features with command-line flags? Nope. It’s far too easy to break ... more
On March 28th, 2017 I made an appearance on the JS Jabber podcast with a great panel of software developers, talking about Docker for software developers and JavaScript. In addition to the basics of “what is Docker?” we talk about why a developer would ... more
In February, I launched the first of my WatchMeCode: Live! sessions on Docker. This is a series where I do a live webinar-style session of talking about code, providing commentary and getting live Q&A from the audience at the end. For March 2017, ... more
Docker + Node.js is a beautiful combination. But among all of the advantages of using these tools together, there are some mild frustrations… things that just don’t quite fit nicely. Take the npm Wall of Red Text, for example. It seems every time I run ... more
Several years ago, I found myself sitting in a classroom on a Saturday morning. It was an exciting day for me, attending my first code camp. I was surrounded by other developers with a shared enthusiasm for what we do, and had already seen several outstanding ... more
Before you begin to run your Node.js application in a Docker container, or even build the app into a container, you have to answer an important question and make a key decision: Which base Node.js image for Docker do I choose for my app? The easy answer ... more
It’s been a few weeks since the pre-sale of the Docker Recipes for Node.js Development ebook ended, and I haven’t spoken about it much but that doesn’t mean it’s been dormant! Quite the opposite. In fact, I’m a bit overwhelmed by how quickly things are ... more
A curious thing happened in a recent conversation. I was discussing the growth of Docker and I kept hearing bits of information that didn’t quite seem right in my mind. “Docker is just inherently more enterprise” “it’s only tentatively working on OSx, ... more
Last Thursday I posted a short update to the Docker Recipes for Node.js Development ebook pre-sale, setting a stretch goal of 100 sales before today – Monday, January 23rd.d And I’m happy to say that the goal was hit by Friday morning, at 9am! Over the ... more
On Monday, January 16th, I launched my Docker Recipes for Node.js Development pre-sale. The goal is to sell 100 copies of the early-access version of the book, as a way of funding further writing and development of the book. As of writing this on Wednesday ... more
On Monday, January 16th, the pre-sale for my Docker Recipes for Node.js Development ebook opens up. As I said in the last post, I need to sell 100 copies in the pre-order period, to ensure the book moves forward. But before the pre-sale starts, though, ... more
I have another update for the planned Docker Recipes for Node.js ebook – this time focused around the pricing and pre-sale dates. The Pre-sale Dates and Prices These are the details that you need to know, to take advantage of the significant discount ... more
Last week I announced my intention to write a short ebook on solving specific problems with Node.js and Docker, called Docker Recipes for Node.js. I’ve had some time to plan, since then, and I want to share my thoughts on how the book might be organized, ... more
Once you learn the basic commands, building a Docker image is fairly simple. There’s only 2 options required in a Dockerfile, after all: FROM <base image> CMD [“<executable>”] That’s it. Now you can “docker build .” and move on, right? Technically, ... more
As I’ve been releasing my screencasts on learning Docker and working with Node in Docker, along with my (FREE!) cheatsheets for Docker, I’ve been getting a pretty regular stream of questions from people. From these questions, I’ve been able to improve ... more
I recently received a question, via email, about how to get up and running with microservices in Node.js. The person asking was interested in my Microservices w/ RabbitMQ Guide over at WatchMeCode, but was having a hard time wrapping their head around ... more
Wes Bos asked a question on twitter that threw me off a bit. @derickbailey I’ve never understood what rabbitmq is / what it’s for. Do you have a post or something that explains what I would use it for? — Wes Bos (@wesbos) October 10, 2016 It was a simple ... more
When I’m looking at asynchronous JavaScript – network calls, file system, or whatever it may be – I don’t reach for promises, first. In fact, a promise is typically a last resort for me, relegated to specific scenarios. I don’t mean to say promises are ... more
Julia Jacobs recently asked a question in the WatchMeCode community slack, about some asynchronous code she wanted to clean up. In this question, she wanted to know of good options for restructuring deeply nested promises without introducing any new ... more
If you look at the latest Chrome, Safari, Firefox and MS Edge browsers, you’ll notice the compatibility and feature implementation of ES6 is darn near complete. And for the majority of developers that still have to support older browsers? Babel and other ... more
Every developer that has worked with JavaScript knows the frustration of “undefined is not a function”. Most of the time the cause is something simple, though. A quick survey of StackOverflow questions around this error message shows some basic examples, ... more
Years ago I was building a distributed system that had to function with and without a network connection. It was a standalone app for vehicle maintenance that would synchronize data with a central server. After a lot of trial and error, I decided to ... more