Author Archives: garywiz

Custom VPN routing and DNS under OSX

      Comments Off on Custom VPN routing and DNS under OSX

It’s very easy to set up a VPN using OSX.   Apple has one of their typical help pages which makes it appear so simple even a child could do it.   But, often you have special cases which are not easily covered by the default setup, and that’s where things get tricky. In my situation, I don’t check the… Read more »

Solving Docker Container Permissions Problems

      Comments Off on Solving Docker Container Permissions Problems

One of the most surprising problems you run into using Docker is how daunting it can be to get containers to work seamlessly with attached data storage such as local volumes (-v) or data containers (–volumes-from). Looking for Solutions None of the proposed solutions are really good.  The best is to use data-containers and burn hardcoded permissions directly into the images.  … Read more »

Docker Container Monitoring inetd-style with Chaperone

      Comments Off on Docker Container Monitoring inetd-style with Chaperone

Recently, Chaperone got an exciting new feature that makes it possible to dynamically launch scripts when a port connection occurs.  This is an old idea, and in fact was the purpose of the original inetd “super server” that was part of BSD 4.3 in 1986! It turns out that this feature is really ideal for lean Docker microservice containers because no… Read more »

Simulating a PID file

      Comments Off on Simulating a PID file

In building new Docker containers, I’ve run into a few programs which don’t support PID files.   You know, those files that you typically find in /var/run that tell you what the process ID of a running daemon are?  PID files are important because process managers like systemd and Chaperone (which I’m using to build all my containers now) recognize PID… Read more »

Monkey-patching Python Core Functionality

      Comments Off on Monkey-patching Python Core Functionality

“Monkey patching” is an often dubious practice whereby you make changes to a running program, usually modifying the core capabilities to add some feature or fix some problem.  There are many pitfalls, especially with languages like Python and Ruby which it easy to do by nature of their flexible, accessible data models. In general, I would never recommend people do… Read more »

Apple Watch: The Trough of Disillusionment

      Comments Off on Apple Watch: The Trough of Disillusionment

For those, like me, who are going gaga over their new Apple Watches, or awaiting delivery, it’s time to pause for a moment and prepare for what lies ahead.  Remember the “Gartner Hype Cycle”?  If you haven’t heard of it, it’s a pretty useful model worth reading about, and describes the five phases of the new technology life cycle: Technology… Read more »