This tutorial will walk you through debugging amd64 AT&T ASM using the GNU
as assembler and
gdb. Why would you ever want to do this? More than likely you were sitting around bored drinking cocktails and decided to give assembly a try.
If you are running an amd64 distribution of Linux, you just need
as installed. Otherwise, you need to download VirtualBox and install amd64 Linux to follow along. The distribution shouldn't matter.
We are going to use an example application that is fairly common. It comes from the book Programming from the Ground Up by Jonathan
A recent event in the Node.js ecosystem received widespread attention. There has been a surprising amount of logical fallacies, conflation of problems, and general misinformation about what transpired. This post is me throwing my hat in the ring as a voice in the conversation.
In this article, we will separate out each individual conversation that has been taking place around the events of #npmgate, we will put forward the reason it caused as much trouble as it did, and how you could have protected yourself from what transpired. This will be entirely from an engineering perspective. The "people", "legal", and "philisophical" questions will be saved for another time.
Separation of Concerns
Much of the misunderstanding and borderline panic has been caused by the conflation of several problems. Before we dive into the opinionated section of this piece, I'm going to take a moment to separate out the individual issues tha
This week I needed to dive deeper into some performance issues I have been experiencing with dante. The first section will detail the struggle that lead me to this point. If you want the quick-n-dirty DIY instructions for profiling Docker, feel free to skip ahead.
At NodeSource, I'm building hundreds (literally hundreds) of Docker Images. This has lead to the pressing need of parallelizing these. Currently, I'm provisioning a 32-core box and triggering 100 simultaneous builds to burn through my 600+ images. I've noticed though that, at any one time, there is never more than ~25 layers actively running. Somewhere, there is a bottleneck. Running
ps shows me that Dante is indeed spawning 100
docker build commands, so it would seem the docker daemon isn't keeping pace.
Diving into the Daemon
So golang has a built-in profiler called [pprof