All posts tagged nerd1 of 5

GitHub is an amazing service for collaborative open-source development. Their pricing model is structured to encourage “social coding,” and provides unlimited open source repositories for free. Not only is that a smart method of easing entry into their service, but it also encourages the open source ethos of peer production. Win win all around.

However, if you’re an independent developer working on multiple, small scale projects that are not collaborative in nature, nor open source, then the advantages of hosting your repository on GitHub aren’t fully realized. If you’re really prolific, these repos can quickly pile up, pinning you against your plan’s private repository limit and forcing you to upgrade.

Until recently I had been hosting Tumblr themes on GitHub as private repositories. For the most part these aren’t actively maintained, but occasionally I’ll revisit the code to add a feature or fix a bug. Smooth sailing until I hit the private repository limit of my GitHub Micro plan. Seven bucks is cool with me, but twelve! Just to archive some code that I’ll touch maybe once a month?1 It didn’t really make sense for me to upgrade simply for additional storage (virtual hoarding?), so in an effort to avoid ascending the GitHub pricing ladder, I started looking into alternative solutions.

The great part about git is that it’s open source. No licensing or monthly fees there. Also, if you’re a web developer, chances are you already pay for hosting. And, if you’re a savvy web developer with a half-decent web host, git is probably already installed on your machine. I use and recommend Dreamhost, and after a quick Google search, I found a few resources detailing how to setup and configure git repositories using my shared Dreamhost server.2 It took a bit of time to get things running, but I now have my own git repository host setup on my account.

As I said earlier, this new setup works really well for an independent developer working on non-collaborative, private repositories. The projects I host on the Dreamhost server are smaller in size, don’t require the social services provided by GitHub, and require infrequent access once they’re deployed. Futhermore, it utilizes resources I already pay for.

Below is a shell script that you can use to automate the remote repository creation, once you’ve got the server configured.3 I have this script saved at /usr/local/bin/remgit which allows me to run it from the command line (make sure /usr/local/bin is in your $PATH).

To create a new git repository, I simply enter the local directory that will serve as the repo root, and run remgit in Terminal. Voilà, new git repo initialized, created on my Dreamhost server, and ready for development.


  1. It would be nice if GitHub adopted the Basecamp convention where archived projects are not counted against your plan limits. I would be more inclined to use GitHub as long-term codebase storage if this were the case.
  2. Hosting Git Repositories on Dreamhost by Craig Jolicoeur provides detailed instructions. I recommend following them through the GitWeb setup (optional step 4). My repository directory is configured as a sub-domain root folder, so accessing them on the web for a quick commit review is really easy (although the GitWeb default styling could be improved).
  3. This script is based on code from Casper Fabricious’ Keeping git repositories on Dreamhost using SSH.

Like many web designers and developers, Mac OS X is my platform of choice, and I typically develop using the latest versions of modern browsers. However, unlike many web designers and developers, chances are your clients, particularly the corporate ones, are running Windows. And if your corporate clients are running Windows, it’s likely they’re trapped in an IT-imposed Internet Explorer time-warp that distorts your beautiful CSS3-compliant site into a tangled mess.

At one point in time, I had a dedicated Dell box tasked with only running Internet Explorer. It was a nightmare to manage and terribly inefficient. I’d update markup on my Mac, then run over and refresh Internet Explorer. It was some sick version of platform pong. After a month the Dell’s cooling fan began making a disturbing whirrrrr whenever the unit was running, making my QC shuttle run even more ridiculous. Remember, this is all to view a fucking website!

The Dell went straight to our local e-cycling program as soon as Mac made the leap to Intel, replaced by a fresh VMware Fusion install. This solution worked great, but running different versions of Internet Explorer was still a hassle, and having to purchase Windows (XP and Vista) just to run a browser irked me. At least I could stay put during the testing.

Fortunately, I’ve finally found a decent solution for all this.1 One that runs on Oracle’s VirtualBox and doesn’t include purchasing Windows software, thanks to their handy VHD files. This free alternative allows you to test Internet Explorer (7-9, no support for 6) in OS X, with each version of IE running in a separate virtual machines.

Requirements

  1. VirtualBox
  2. Windows VirtualPC VHDs
  3. ievms installation script 2

Installation

Refer to the ievms repository for installation instructions, which requires a bit of Terminal knowledge.


  1. Until someone builds a native application that can emulate Internet Explorer, this is the solution I’m running with. Seriously though, someone build a CSSEdit style application that allows me to preview sites in all browsers while editing my markup. It’s a serious problem that currently has no elegant solution.
  2. It’s always a good idea to review shell scripts before executing them.

I spent three days digging through online forums trying to fix my soft-bricked Samsung Vibrant this week. The worst part was that it was an innocent looking system update message that sparked the drama. Let me mention up front that clicking “OK” to a carrier software update prompt on a rooted phone is never a good idea. My bad.

After repeated unsuccessful attempts to rescue my phone on a virtual Windows XP setup, which included getting a refresher course in the lovely “Device Manager” and hunting for system drivers (yippee!), I finally discovered that the path I had been venturing down was a dead end. I pulled the plug on my Mac attempts, headed to my parent’s PC, and restored the stock ROM in thirty minutes.

If you’re modding your Android phones, the single most valuable resource on the web is the XDA-Developers forums. Saved me from an awkward trip to T-Mobile, and there are a ton of great tips and ROMs available.