I’ve been playing around with Docker a lot recently, and one thing that seems to be lacking is a way to update all of your downloaded images in an “apt-get upgrade” fashion. I know this isn’t usually needed in most cases, but in a home use case for Docker most of the time, you can upgrade everything in one go and not worry about it. So I wrote some quick one-line scripts in Bash and PowerShell that can be used to update all your docker images. Continue reading Updating all your Docker images in one swoop.
Ok, so it’s been awhile since I put up the last part. So long that I actually ended up looking at some other hypervisor options, and still ended up going with Proxmox. I’ve also made it slightly more robust by running two host machines in a cluster configuration. I not running many virtual machines right now, but the ones that I do run are mostly OpenVZ containers from TurnkeyLinux.org, which Proxmox has a built-in integration to download templates straight from them. There are also other OpenVZ templates from Proxmox for a few standard linux server OSes, but the Turnkey Linux ones seem better at being kept up to date. Below the fold is a short list of what I’m currently running and a few that I plan on setting up at some point. Continue reading Running a Home Virtual Server – Part 2: Contemplating Containers
After spending most of this week working with and debugging approximately 8,000 lines of PL/SQL contained in two packages, I want to mention “Refactoring” by Martin Fowler. It’s one of the few books I had to buy in college and have kept since then. If your code smells, clean it up… That is all.
Now back to your regularly scheduled programming.
So I’m working on a project at work to evaluate and implement a source control system to replace a fairly non-existent use of Visual SourceSafe. It has been a while since I’ve looked really in depth at any version control software and I have to say that I’m impressed with the advancements around them. Not necessarily in the version control systems specifically, but in a lot of the auxiliary functionality that they can offer either natively or as with easy add-on. Things like automated builds and continuous integration are things that weren’t even on the map last time I looked at this in any depth.
At my work we decided to evaluate three types of version control; Team Foundation Server (TFS), Subversion, and Git. I’m most familiar with Subversion since that’s what I’ve used in the past and TFS is a fairly obvious choice for us since we are mostly a Microsoft shop with the tools we use. Git however was a bit of a research project for me and I have to say that we fairly quickly decided that it wasn’t for us. Don’t get me wrong it has it’s use cases where it shines, particularly in development environments where the development team is widely dispersed geographically and not necessarily always network connected. In these cases Git seems really ideal which is probably why it has taken off and is so popular in open source projects, but this is completely different from our primary development environment and the downsides outweigh these benefits.
I don’t know which way we’ll end up going at my job. We’re wanting something simple that will be easy to use and we’re just implementing source control as part of the project. This is why I’m starting to think that we might go with Subversion because TFS can be such a bear to administrate and after getting them installed and starting to set them up, I can understand.
In this last post I talked about picking up a computer at my university’s surplus sale to use as a replacement server in my home setup. The plan is to use this machine to run several virtual machines on, mostly to play around on but also as my home server. I didn’t go into to much detail in that first post, so I’m going to break this down into multiple posts that can go into more detail. I’m not sure how many parts there will be as of now, but I’ll be sure to try and link all the posts together so they should be easy to find. First up is a discussion about the hardware and my final decision about what virtual environment I decided to go with.
I’ve played around with FreeNAS in the past. If you aren’t aware it underwent some major changes a while ago where the main developer (Volker) stopped developing and handed over development and maintenance to a company to handle. They basically re-wrote the (now) legacy version (0.7) focusing on business requirements first and foremost and removing many of the features that excited home users about FreeNAS. Since then Volker has been working on a NAS project written on top of Linux (Debian Squeeze) called OpenMediaVault (OMV). Every once in a while I would peek in on each and see how the development has been moving, and from what I can tell OMV has made up a lot of the ground it lost having to write everything from scratch. I’ve started playing around some with OMV in a VirtualBox install and am trying to do some more research to see if it’s “Production” ready for the home environment and would meet any requirements I might have.
FreeNAS is a task specific operating system designed to be used in Network Attached Storage (NAS) devices. It’s built using FreeBSD as the underlying OS which lets it have some fairly low power hardware requirements. For example the Dell I used is an old Pentium 4 1.7 GHz with 512 MB of RAM and it runs like a charm, granted I don’t put a lot of demand on the box in the way of concurrent transfers or running processes. It’s worth mentioning that the recommended way to install FreeNAS is to install to, and boot from a USB thumb drive. This is the recommended method so it can save as much hard drive space for data storage, but even though it looked like I could boot from the thumb drive like a hard drive in the BIOS I had trouble getting it to boot so I installed the OS to the 160 GB hard drive with partitions for the OS and data. Here’s the parts list with some specifics after the jump.
- Old Dell Dimension 4400 – bought at university surplus sale, $5
- Various old IDE hard drives I had sitting around – two ~20 GB; one 160 GB, probably cost me something at some point…
- USB thumb drive – “borrowed” from family, free