Doug Tidwell

Although my career has mostly been a cautionary tale to others, I've spoken hundreds of times at conferences & events worldwide and created dozens of videos & articles on the web. When off the clock, I make The World's Best Manhattan at my home in Raleigh.

Areas of Expertise

docker, kubernetes, containers, serverless, Istio, Java, node.js

Recent Posts

The browser wars and the birth of JavaScript

The browser wars and the birth of JavaScript

“Any application that can be written in JavaScript will eventually be written in JavaScript.” — Atwood’s Law, stated by Jeff Atwood in a blog post titled “The Principle of Least Power,” July 17, 2007

Before anything like an Android device or iPhone existed, desktop computers were the battleground for the browser wars. The battle involved billions of dollars invested by a number of companies, all based on the premise that whoever ruled the desktop browser market would own the internet. Today, mobile devices account for nearly half of all website traffic. Back in the 1990s, however, almost all of the action on the web came from desktop machines, and the vast majority of those desktop machines were running some flavor of Microsoft Windows.

In the browser world, the first-mover advantage belonged to Netscape Communications Corporation. They built the Netscape Navigator browser that made the web accessible to millions for the first time. Netscape had more than 80% of the market, but they also had no shortage of competition. IBM had a browser for OS/2. Oracle had the Powerbrowser, a Netscape-compatible product that included something called the Database Markup Language. The real danger to Netscape, of course, came from the company that owned more than 80% of the world’s desktops: Microsoft.

Strategically, Netscape realized that the web needed to move past static web pages to reach its full potential. Even if they were created dynamically by something like a CGI script on the web server, pages didn’t change once they arrived in your browser. If you wanted to see even a slightly modified version of a page, you had to send a request back to the server and wait for a response. For all its sophistication, a web browser felt a lot like a dumb terminal attached to a mainframe. What web developers needed was a programming language that would run in the browser, taking advantage of the processing power of the desktop machine to give users a richer experience.

Continue reading “The browser wars and the birth of JavaScript”

Share
Using Quay.io to find vulnerabilities in your container images

Using Quay.io to find vulnerabilities in your container images

You’ve created a container image that has all the packages that you and your team need to do something useful, or maybe you’ve built a public image that anybody can use. But, what if that image contains packages with known security vulnerabilities? Regardless of the severity of those vulnerabilities, you’ll want to learn more and take steps to mitigate them as soon as possible.

Fortunately, your team uses Quay.io* as your registry. When you push an image to Quay.io, it automatically runs a security scan against that image.

Continue reading “Using Quay.io to find vulnerabilities in your container images”

Share
Container-related content you might have missed at Red Hat Summit

Container-related content you might have missed at Red Hat Summit

If you weren’t lucky enough to attend the recent Red Hat Summit or you went but couldn’t make it to all the container-related sessions, worry not. We teamed up with Scott McCarty, Principal Technology Product Manager–Containers at Red Hat, to bring you an overview of what you missed.

Choosing the right container base image for your applications

The Red Hat Universal Base Image (UBI) gives you three options for building containers with the full power of Red Hat Enterprise Linux (RHEL) underneath. The goal is to create the smallest possible image that fully supports your application. You select a base image depending on the application you’re packaging in a container. For example, if you have a Golang or .NET application, all of that application’s dependencies are built in. That means you can use the minimal image (ubi-minimal), which contains microdnf, a package manager that only supports install, update, and remove functions. It also includes, well, a minimal set of tools.

Continue reading “Container-related content you might have missed at Red Hat Summit”

Share
How to build a Raspberry Pi photo booth

How to build a Raspberry Pi photo booth

The Coderland booth at the recent Red Hat Summit was all about serverless computing as implemented in the Compile Driver. If you haven’t gone through that example (you really should), that code creates a souvenir photo by superimposing the Coderland logo, a date stamp, and a message on top of an image from a webcam. We thought it would be fun to build a Raspberry Pi version for the booth so we could offer attendees a free souvenir. Here’s a look at the finished product:

Front of the photo booth

Continue reading “How to build a Raspberry Pi photo booth”

Share
Guru Night at Red Hat Summit: Hands-on experience with serverless computing

Guru Night at Red Hat Summit: Hands-on experience with serverless computing

Millions of developers worldwide want to learn more about serverless computing. If you’re one of the lucky thousands attending Red Hat Summit in Boston May 7-9, you can gain hands-on experience with the help of Burr Sutter and the Red Hat Developer team.

Guru Night is a BYOL (bring your own laptop) event taking place Wednesday, May 8 from 5:00 p.m. to 8:00 p.m. at the Boston Convention and Event Center in ML2 East-258AB. (Doubtless there will be a map to show you where or what ML2 East etc. is; we have no idea.) Head to the signup page and fill out your details now.

TL;DR: Beer and pizza will be served.

We felt compelled to point that out. But read on.

Continue reading “Guru Night at Red Hat Summit: Hands-on experience with serverless computing”

Share
Podman basics cheat sheet

Podman basics cheat sheet

Here and elsewhere, we get a lot of questions about post-Docker container tools in Red Hat Enterprise Linux 7.6 and Red Hat Enterprise Linux 8 beta. Tools like podman, buildah, and skopeo enable you to create and manage rootless containers, which are containers that don’t require root access to be built and deployed. To help you master the basics, we’re happy to offer a new podman basics cheat sheet.

Continue reading “Podman basics cheat sheet”

Share
5 Red Hat Summit sessions developers won’t want to miss

5 Red Hat Summit sessions developers won’t want to miss

Oh sure, like countless thousands of others you’re planning on attending Red Hat Summit in Boston this year. But you’re a little anxious that you might miss the best sessions at the show. In no particular order, here are five sessions (actually five sessions and a workshop) that will enrich your life, expand your horizons, and give you the knowledge you need to lead your team forward. Be sure to check them out.

Continue reading “5 Red Hat Summit sessions developers won’t want to miss”

Share
Kubernetes v1.14: What you need to know

Kubernetes v1.14: What you need to know

Kubernetes v1.14 was released today. The primary themes of the release are extensibility and supporting more workloads. It includes 31 enhancements, with a record 10 features graduating from beta to stable. Here are the highlights:

Persistent local storage

This feature, which was previously available as a beta, is now classified as stable. The primary use cases for persistent local storage are databases and distributed file systems. Obviously, local storage performs better than remote disks, whether that storage is a local SSD delivered by a cloud provider or a disk attached to a bare metal system. This has been in the works since Kubernetes v1.5, so its promotion to stable status is a significant milestone.

Continue reading “Kubernetes v1.14: What you need to know”

Share
An overview of Eclipse Che

An overview of Eclipse Che

This video is a brief overview of Eclipse Che presented by CodeReady Workspaces Product Manager Stévan Le Meur. The tour starts in a git repo that contains a link to a Che factory. Opening that factory loads the code from the git repo and sets up a complete development environment. From there, Stévan covers how to build, run, and debug the code within Che.

Continue reading An overview of Eclipse Che

Share
Red Hat Container Development Kit 3.7 now available

Red Hat Container Development Kit 3.7 now available

We are pleased to announce the availability of the Red Hat Container Development Kit (CDK) 3.7. CDK 3.7 is based on Minishift v1.27.0, a command-line tool to quickly provision an OpenShift and Kubernetes cluster on your local machine for developing cloud- and container-based applications. The CDK also includes OpenShift Container Platform v3.11.14. You can use the CDK on Windows, macOS, or Linux.

Here’s a summary of the new features in CDK 3.7:

Continue reading “Red Hat Container Development Kit 3.7 now available”

Share