Michael Crosby

Other articles

  1. the lost packages of docker

    Docker is a large project that touches many different layers of the system. Everything from a REST api to low level filesystem and execution calls. Docker is also open source so where are all the awesome packages that make docker dock? Why do the docker developers not contribute back reusable ...

    read more
  2. Dockerfile Best Practices - take 2

    Much has changed since my first Dockerfile best practices post. I'll leave the original post up for posterity and this post will include what has change and what you should do now.

    1: Don't boot init

    Containers model processes not machines. Even if you think that you need ...

    read more
  3. Go Dynamic Plugins

    For me, my favorite feature of Go is the static binary. I love compiling once and just dropping the binary into a container running the 2mb busybox image and having my app up and running. No pip, no dlls, no problem. However, this does come with a small price. If ...

    read more
  4. Advanced Docker Volumes

    I have noticed that many people have a hard time understanding what volumes are and how to use them effectively.

    So what is a volume? A volume can be a directory that is located outside of the root filesystem of your container. This allows you to import this directory in ...

    read more
  5. Docker Events

    The proper way to do port allocation in docker is to EXPOSE a private port in a container and let docker map the public port on the host. This can be a pain for reverse proxies, load balances, etc but with the events endpoint in docker you can listen for ...

    read more
  6. Go Helpful Commands

    Here are a few go commands that I find helpful that are hidden in documentation.

    List all installed packages

    go list all

    Build entire pkg directory

    go build . ./...

    Install entire pkg directory

    go install . ./...

    Test entire pkg

    go test . ./...

    Format and simplify code

    go fmt -s -w <file>

    Detect races ...

    read more
  7. Go toolbox

    I have been asked a few times about my Go development environment. Because Go is still a very new language many people do not know where to start. Here are a few tools that I have in my Go toolbox.


    read more
  8. Dockerfile Best Practices

    Dockerfiles provide a simple syntax for building images. The following are a few tips and tricks to help you get the most out of Dockerfiles.

    1: Use the cache

    Each instruction in a Dockerfile commits the change into a new image which will then be used as the base of ...

    read more
  9. Docker Wallpapers

    So we finally have the new docker logo but I have not seen any wallpapers or anything else. The image posted is not very high resolution so I did some quick editing to fill in the background. All credit goes to the original post and author, I just added more ...

    read more
  10. Dockerfile deep dive

    Docker is an amazing project. There is plenty of great documentation and tutorials online to get you up and running with docker, building images, and deploying your apps. There is not much that I can say that others have not said better. Therefore, I am going to start a series ...

    read more
  11. Remote Development

    In the past I have not been a huge fan of "the cloud" for all of the work that I need to do. I still prefer native over web apps but I also like the convenience of having my data accessible everywhere. However, over the past few months I have ...

    read more
  12. Golang JSON RPC

    Go's rpc package has an example for the default rpc implementation but nothing for the jsonrpc package. Here is how to get it work. The rpc example uses some helpers built into the rpc package, I just looked at that code in Go's stdlib to figure out the ...

    read more
  13. Go Lang

    If you don't know about Go it's a programming language for now. Most of the languages that we use everyday are old, 10+ years old. After so many years languages need to start to think about news ways to solve the same problems. Go is a new language ...

    read more
  14. SecureString How To

    Working with the SecureString class in .NET is fairly easy. This class allows you to keep string data encrypted in memory. Maybe you load connection strings, passwords, or financial data into memory when your application starts or loads an object so the least you can do is use the SecureString ...

    read more
  15. F# Url Shortener

    Every year I try to learn a new language. If you are a one trick pony you are not only limiting your self in opportunities but you are also limiting your thinking to the one paradigm that you know.

    So this year I wanted to learn something very different from ...

    read more
  16. Infrastructure - Part 1


    Running your own infrastructure is awesome, if your a hacker like me. If your a square and you don't want to mess with your own hardware you have two choices if you are going to host your website or services online. If you don't feel like spending ...

    read more
  17. Usage Patterns

    Update: I will have updated graphs in a day or two. My time tracking app was only exporting the top 10 applications and I just found the setting to export the top 25.

    I always have an app running on my computer that logs all the time I spend in ...

    read more
  18. Development Infrastructure

    Having servers that automate much of your development process is cool. Entities living out on the web just waiting to process any task that you throw their way.

    I currently have two servers in my cluster that run my network. Everything from my public web sites, to mongodb and Postgresql ...

    read more
  19. web.py server setup

    Python is my favorite language to work with. It is so versatile. I can automate tasks, write quick scripts, process data, and even run a web application. It is very portable and I love the syntax. For a web framework I use web.py because it stays out of your ...

    read more
  20. Objective - C LINQ

    I have been working on two iOS applications over the past few days and have been longing for a LINQ like syntax in Objective-C. LINQ is an amazing way to work with collections and it really adds a productivity boost to your coding. Since Objective C does not have LINQ ...

    read more
  21. Objective C Design Patterns - Factory

    Design patterns can help you solve complex coding problems with proven solutions. This will be a mini series about different design pattern implementations in Objective - C. I will be using a simple console app and updating the code on github with each new pattern.

    Factory Pattern

    This pattern provides a ...

    read more
  22. CodeAssistant

    My second application was published this week.


    CodeAssistant is a simple tool to test code snippets in virtually any language on Windows. It has been in development for four months and has been a great learning experience for domain driven development and .NET's WPF.

    The application is build on ...

    read more
  23. Multithreading in C#

    From my point of view the reason why we create multithreaded applications is so the user experience does not suffer. We have operations that need completed but running these on the main thread will block the UI and piss off our users.

    Most of the operations have some similarities. Atleast ...

    read more
  24. tCal - iCal events in terminal

    I just puked up some old code for a little app that displays your iCal events in the terminal. I have it as one of my startup scripts so when I start a new bash session I see my events for the next 7 days. It's a very simple ...

    read more
  25. Bash Informational Startup

    If you use Terminal on your Mac like I do. It is the first application that is run at starup and the last to close. When you start Terminal in a new window or tab that is a great time to review your computer stats, iCal events, and disk sizes ...

    read more
  26. Compile Vim for Python


    I just added the newest MacVim compiled for python using the 10.7 Lion SDK. You can downloading it below.

    If you want to use the Python auto complete in vim then you have to compile vim for python on your system. If you are running OSX I have ...

    read more
  27. Python talking to Arduino

    I just setup my Arduino with an LCD display. You can follow the tutorial here to get the LCD and board wired up. We will also be using the sample code from that tutorial.

    The Problem

    The issue that I ran into was displaying messages from the Arduino IDE's ...

    read more
  28. How to backup gmail the right way

    So like many people my life is stored in my gmail. I trust google to keep my data safe but since so many things, from contacts to many different online accounts, are all registered under your gmail address it is important to have that data whenever you need it. There ...

    read more
  29. How to manage your website with git

    So this is much easier if you have a static site that is generated using pelican or jerkyll. Both of these apps are great for generating blogs out of markdown or other simple text markup language. I use pelican because it is built with python and that is what I ...

    read more
  30. AVAudioPlayer Memory Leak

    This is a little bug in the AVFoundation framework. When using the AVAudioPlayer in you will get memory leaks when running in the iOS Simulator but not on devices.

    It is a pain whenever you do most of your testing on the desktop during development and then start testing on ...

    read more
  31. SVN to GIT and Extracting Individual Projects

    This post is still not formatting. I switched from worpress and this is a long post and have not had time to update it.

    So here is the issue. You first started to use version control and because you were coding solo and the low learning curve, you started to ...

    read more
  32. Setup your own Git Server over SSH

    The thing about dvsc that makes me nervous is that all the code and revision history is on your local computer. This makes it very fast when committing, branching, and merging but what if you have a drive failure or worse? All your code is gone if you don't ...

    read more
  33. Flex 4.5 vs Pure AS3

    I have built a few applications for Android using the Flex framework. It is a great framework and I can build, test, and publish apps very quickly. It takes productivity to the max.

    However, I have noticed that some of my apps take a noticeable time to launch on my ...

    read more
  34. Setup Password-less Login over SSH

    Everyone needs a fast instance in a datacenter to work with. Amazon's EC2 or any other VPS provider will give you access. Sometimes you need to transfer files around fast or do some data processing. Having a fast instance will help you get your job done faster.

    I have ...

    read more