If you’ve looked at my GitHub page you might be a bit confused by all the projects listed there. What are they and how do they relate to each other?!? I hope this page will explain.
Building Linux virtual machines
I have Mac and Windows laptops, but prefer developing web applications on Linux in virtual machines so I can simulate the environment those apps will be deployed on. Building virtual machines is time-consuming, so I’ve automated the process using several projects.
linux-vm: [Original] [Windows] Builds a complete Linux virtual machine including installing all required software (VirtualBox, Vagrant, Chocolatey, and Git). This project is designed to make it easy to test-drive Linux.
workstation-setup: [Original] [Mac/Linux] After I’ve purchased a new computer or built a virtual machine, it always seems a bit empty. I use this project to specify the Mac/Linux software that I use regularly during developing, including my editor (Sublime Text 2, my shell (Zsh and Oh-my-zsh), my browser (Firefox), my desktop window manager (XMonad), and other useful programs.
pivotal_workstation: [Cloned] [Mac/Linux] This repo contains a large set of recipes used to install software. It was primarily used to configure Mac systems but I’ve been updating it to include more Linux recipes and make it work on CentOS as well as Ubuntu. This project is referenced by workstation-setup to perform the actual software installation work.
dotfiles: [Original] [Mac/Linux] Everyone likes to configure their software to their own special needs. This repository contains the settings I use for my projects. This project is referenced by linux-vm to install my dotfiles; you can clone it so that you can load your changes when you’re building virtual machines.
veewee-berkshelf: [Cloned] [Mac/Linux/Windows] Builds virtual machine “base box” images for Vagrant from Linux ISO files. If you don’t trust others to build Vagrant boxes then you’ll want to clone this recipe and build your own.
chef-solo-search: [Cloned] [All platforms] If you’re using the [Chef] system provisioning platform for Vagrant, you’ll discover many of the system configuration recipes require Chef Server. This repository makes it possible to utilize Chef without Chef Server. I modified the library to incorporate changes by another programmer for Chef 11, which haven’t been accepted into the mainline yet.
chef-dotfiles: [Original] [Mac/Linux] This repository is used by linux-vm to perform installation of “dotfiles” (configuration files) onto computers during the provisioning process.
chocolatey: [Cloned] [Windows] The Chocolatey package manager makes it possible to install software from the command line, or using a script, as I do in the linux-vm install script. I modified the library to add error-handling, which changes have not been accepted into the mainline yet.
chocolatey-packages: [Original] [Windows] Scripts for the Vagrant package when using the Chocolatey package manager.
gnome-config-listener: [Original] [Linux] This project is used to build a program that listens for Gnome desktop configuration changes and writes them to the terminal. I can configure my computer and save all the changes so they can be replayed on other computers.
network: [Cloned] [Linux] A program that visualizes network traffic using 3d imagining. I added some scripts to install the pre-requisites and make the program run “nicely”.
CSNamedPipes: [Original] [Windows]
CSNamedPipes is a demo application that implements interprocess communication (IPC) using Named Pipes in C#. Many programmers had problems handling client-disconnects using Named Pipes, so I wrote this application to (a) learn C# and (b) solve that problem.
coho: [Original] [Windows] This library is a basic toolkit for writing C++ programs from scratch on Windows. After having done this many times before I decided to open-source it so I won’t have to rewrite again. Sadly most of my recent development has been on Linux and this library has languished.
build-linux-vm: [Windows] This was an earlier attempt at building Linux virtual machines, but it requires too many manual steps!
linux-setup: [Linux] An earlier attempt at system configuration that has since been replaced by my workstation-setup and dotfiles repos.
vagrant: [Cloned] [Windows] added SSH support for Windows [merged]