How Docker Is a Dick

You know Docker, that darling of the digerati? The application that is revolutionizing the DevOps world? That god damned motherfucking piece of ill behaved software that is as smug and patronizing as most everyone I’ve ever come in contact with who preaches the Gospel of Docker?

My anger, it is getting ahead of me. Sorry. But, yes, that Docker.

So I’m at work today, rabbiting away like I do and my next task is to install a Docker plug in for Artifactory. This is easy enough in that our Artifactory instance is already there. So I go about setting up a local Docker repository per the instructions on the wiki. Again, this is all monkey work.

There are a few items that aren’t clear to me, however, and I want to test the new repository anyway. To do this I need an installation of Docker. Conveniently enough Docker provides a page of instructions for Windows installations. I go through the steps and determine that my workstation is a suitable candidate for a Docker install. I’m good on the understanding of Docker’s key concepts. After all, I’ve had to sit through several iterations of why Docker is the best thing to ever happen to DevOps. It’s a container. I get that. It contains virtual machines. These are atomic things that can be passed around amongst friends, like a bong.

Finally, about a third of the way down the page we get to the actual installation. Nothing out of the ordinary here.

  1. Visit the Docker Toolbox download page
  2. Download the executable installer
  3. Double-click the installer to launch

Excellent, we’re getting somewhere now.

The first thing one gets is the install dialog window:

The welcome dialog for the Docker installation executable
The welcome dialog for the Docker installation executable

I select the “Next” button to proceed, per the instructions. The standard destination location dialog box pops:

The standard Windows Installer target location dialog.
The standard Windows Installer target location dialog.

This is good. I like to manage all of my workstation installs in D:\ProgramFiles. It gets around the stupid spaces in paths thing that Windows seems to encourage. It also gets around the even stupider special characters like ‘(‘ and ‘)’ that are in the default 32 bit installation path. And it is on the multi-terabyte drive instead of the anemic c:\ that the desktop support folks provide. So, again, this is good. I provide my custom path and continue by pressing ‘Next’.

On to the feature selection dialog:

Can you see what I should have seen?
Can you see what I should have seen?

Docker found my VirtualBox installation. It realized I had Kitematic installed. It didn’t realize I had Git installed though…and I missed that. I should have stopped right there and tried to figure out what Docker’s installer was trying to do and why it wanted to install Git.

But, being in a hurry and trusting that the Docker folks were benign, I clicked “Next”.

And that’s when I saw a dialog say “Uninstalling Git”.

And then I shit a brick.

Because Docker uninstalled Git (from D:\ProgramFiles\Git) and installed it at C:\Program Files\Git. And this isn’t a horrible thing, really. Normally. But my case isn’t normal. Because Git provides an excellent Windows port of the bash shell. I wrap that bash shell with ConEmu. ConEmu allows me to have a single interface to wrap any number of console/terminal applications. So I can run bash and cmd side by side. It’s nice. I promise.

But since Git has moved, ConEmu is gone. Since I’m a dumbass my main .bash_profile was in D:\ProgramFiles\Git. Which is gone. So the bulk of my bash configuration is also gone.

And now for the preachy bit…

I do installers for a living. I’m not the best by any means, but I think I have a general handle on how an installer should behave. An installer should NEVER uninstall any product that it is not directly responsible for. An installer can be chained to install other products. An installer can even do some manipulation of a different installer’s payload in certain, controlled circumstance. It can fail the install. It can toss out a dialog saying it found an installation and that I need to uninstall before re-running the installer. It can maybe, just maybe, even ask if I want to uninstall an application–and then wrap that process for me. But, again, NEVER should a product attempt to uninstall a different product.

That is malware.

And that’s what Docker is to me at this point. Malware. The actual product may just be the next DevOps messiah (we have one of those every few months) but I’ll never know it myself. If its installer executable cannot be arsed to behave itself, why should I think that the app installed–which runs a virtual machine with my workstation as host–won’t completely puke all over vital systems files?

Jesus. I’m still mad.

That kind of day

So among the tabs open in my browser currently:

  1. Office Space on IMDB
  2. A Google image search for “whale tail women”
  3. A Google image search for “unnaturally polish -nail -finger -toe”

It’s been that sort of day. I don’t know what category it gets sorted into, mind, but whatever category that is, this day gets sorted into it.

  1. http://www.imdb.com/title/tt0151804
  2. https://www.google.com/search?q=whale+tail+women
  3. https://www.google.com/search?q=unnaturally+polish+-nail+-finger+-toe

Less please

I’ve been thinking on this for a while and I’ve decided I want a web browser that does less. I don’t want one that suggests URLs based on my browsing history. I don’t want one that guesses what I’m looking for as I type into the address bar. I don’t want one that tries to open embedded media without first asking permission.

I do want something that is W3C compliant. I do want one that throws up barriers to cross-site tracking as the default mode.

Firefox is now suggesting pages to visit based on history. It caches the most common sites and displays a graphical representation of them in the default tab content. It guesses what I’m looking for as I type. It’s starting to feel a bit too intrusive. Chrome is no different in this respect. In fact with the tight integration with the googleplex, it is probably even worse. Opera is just, well, Opera. Safari isn’t exactly cross platform. Just about all of the other major/minor players also fall into that bucket. Internet Explorer is the historical devil.

I guess maybe what I want it to go back to using lynx, only with more pointy-clicky. And maybe some syncing between instances.

Keeping up

I’ve replicated a goodly bit of build infrastructure at the home front now and have poked holes into the LAN so it is available to the outside world. It’s a bit exciting if you’re into this kind of thing.

Confluence:
http://fales.wales:8899/
Stash:
http://fales.wales:7990/
Jenkins:
http://fales.wales:8888/
Tomcat:
http://fales.wales:8080
Apache:
http://fales.wales
Artifactory:
Need to set up port forwarding first

I still haven’t decided on the bug/issue tracking software I want to use. I’ll probably fork over the $10 for the Jira 10 user license. After all, I’ve already forked over $20 for the Confluence and Stash licenses. Having an issue tracker is going to be way nicer than trying to load the whole of a project into my brain whenever I get a chance to work on things.

Another cool thing I discovered is that Confluence now has Evernote integration. Damn it’s good to be an Atlassian Gangsta.

The enemy of the good

So some time right before RAGBRAI I figured out that $CURRENTISP does not block out-going port 80 HTTP traffic. This immediately got my brain to wanting to shift my platform to something JSP-like running under Tomcat on a server in my basement. Needless to say, it is one of about five outstanding projects that I totally want to do but never find time to accomplish. It’s not even close to highest priority.

Yet I tell myself that instead of posting here, I should be working on that Brave New World. So I scratch the posting itch by using Facebook (boo) and the blog loses out on all of that content.

Well, I hereby resolve to get back to posting here and pushing appropriate posts to Facebook. I like being in ultimate control of my content and when Facebook finally gives up the ghost, I won’t be missing out. So here’s to a renewed dedication to NixQuips/Same River Twice/Pixelated Miscellany/More Like This/Life of Fezboy!/whatever other titles this long-running, semi-regular blog has been published under.

Hurfing the durf

It’s days like today when I want to be all “hurf durf global warming buuurrrrnnnnnn” to my denier friends who hurf durf about snow (OMG!) and cold (in winter even!) but are conveniently weather ignorant on days like today:

This is not normal.  It is also not indicative of climate change outside being a point in a larger data set.
This is not normal. It is also not indicative of climate change outside being a point in a larger data set.

But instead I tell myself that weather does not equal climate, that the warming trend is objectively both undeniable and quantitative, and that my friends who play the hurf durf weather game are doing it out of spite more than ignorance.

buuuurrrrrrnnnnnnnnnnnn!

Avoidance

I’m solving a variation of the Knight’s Tour Problem [1] with a little home coding project. I know the best way to solve this problem is a recursive function call. I also know the problem I’m trying to solve has three times the number of possibles at each stop. It’s a damn hairy recursive function.

So I spent several hours trying to solve it non-recursively.

You know what’s hairier than a hairy recursive function? Trying to avoid writing that hairy recursive function. A lesson I keep learning over and over.

[1] https://en.wikipedia.org/wiki/Knight%27s_tour

Turning it off and on again

I’ve read far too much Neal Stephenson [1][2]. I genuinely believe the direction of the evolution of our social organization is bee lining directly toward burbclaves. Nation states will disappear because they are unable to compete against large, multinational corporations or criminal enterprises. [Obligatory joke of that being a distinction without a difference here]. The amalgamation of capital into the hands of an infinitesimally small percentage of the population and the barriers to participation it raises for everyone else require the unlucky masses to do whatever it takes to survive.

The incredibly stupid “War on Drugs” has, for decades now, led to an escalating arms race between nation states and, for lack of a better phrase, narco states. Now we are presented with a criminal enterprise so equipped as to be able to stand toe-to-toe with just about every nation in this hemisphere. And for the ones it cannot yet match up against, it is more than capable of waging asymmetrical warfare on a level that the remaining nations will quickly find demoralizing.

There once was a time where the goals were arming and equipping to stand against competitors and nations. Now they’ve progressed to the point of building out their own parallel communications infrastructure. And kidnapping skilled IT professionals to make it happen [3]. They use even more barbarous [4] techniques [5] to recruit foot soldiers and hit men. They’re building a parallel social organization. One based on fear, projected power, and feudal control of the means of survival.

Once upon a time I thought this situation could be deescalated. That if we stood down, decriminalized, and treated addiction like the medical problem it is the other side would lose their reason for existing. That their funding would disappear and the need for secrecy and loyalty would seem ludicrous to their recruits. I don’t think this can happen any longer. We created a niche for a new social mutation and that mutation may out compete us in the end.

Oh, and the other half of the burbclaves? The corporate side? Yeah, I’m pretty sure we’ve lost the ability to appreciably govern them as well. Hell, we just wrote a nearly trillion dollar check to the multinational financial industry a few years ago. This same industry received large payouts from many other nation states because the pain of letting them fail was greater than the pain of rewarding gambling by socializing the debts. Did we extract a plan for winding down those corporations so this wouldn’t happen again? Nope. And they’re playing the very same games now with basically zero-interest loans from the public treasury.

So, yeah, I’m going to try to get in with Mr. Lee’s Greater Hong Kong [6] on the ground floor [7].

This is the depressing crap that has been running through my head this Friday. How has your Friday been?

[1] https://www.goodreads.com/book/show/830.Snow_Crash
[2] https://www.goodreads.com/book/show/827.The_Diamond_Age
[3] http://motherboard.vice.com/en_ca/read/radio-silence
[4] http://en.m.wikipedia.org/wiki/2010_San_Fernando_massacre
[5] http://en.m.wikipedia.org/wiki/2011_San_Fernando_massacre
[6] http://www.everything2.com/title/Mr.+Lee%2527s+Greater+Hong+Kong
[7] http://www.cryptogon.com/?p=17044