Before I rolled out the relaunch, I spent a good month trying to figure out the right kind of development environment for tools the I had available. I have three laptops but all of the batteries are toast and the motherboard on one of them has gone the way of the dodo. I convinced myself to develop exclusively off of a big ole Western Digital 80 GB Passport USB external drive. First step done. After doing some research I decided on XAMMP to drive my environment. It was nice but there were some issues.
My real focus for this development environment setup was to be able to plug in the hard drive and code directly off of it. I work off of multiple platforms at home and at the office. Almost all of the apps do not have a single application to launch. I already run some portable apps that support clients in Windows, Mac, and Linux flavors, like KeePass. XAMMP advertised clients for each platform so I decided to give it a try.
XAMMP is a fully integrated web application development server. The purpose of XAMMP is to roll out a fully workable, out of the box *AMP stack. The packages include an Apache2 server, PHP version 4 or 5, MySQL 5, and a torrent of management utilities and open soruce libraries/modules. There are some differences between platforms for the package set, however. The beauty behind it is that you can pick and choose what you want and start work within minutes.
At first, I wanted to setup all of the platform packages on the flash drive. Due to the desire for cleanliness on the drive, however, I tried to install the software locally on all of my workstations. Most of my time is spent on these machines anyway. Linux was the easiest to turn out, mainly because it just dropped everything into the ‘/opt’ directory. I could change the doc and database links and move forward from there. Windows was also a snap as I could modify configuration and turn services on and off with the included XAMMP control panel. The Mac OS X client was not so easy.
The installer package for the Mac does not allow for choice. It scans you computer to see if it’s okay to run on and then drops it straight to the Applications folder. The folder it installs to is not entirely encapsulated. When the configuration points to the database files on the flash drive, the service will crash upon startup. I’ve already been exposed to issues on lock file management on Mac OS X Server, and the workaround didn’t work for this issue. The Apple puts the lock file in a directory other than the MySQL default setup. When I symbolically linked the lock file, the database would start up. This was not working with XAMMP.
After spending some small time here and there for about two weeks on it, I ended up just letting it go. Attempts to find out on their forums page led me nowhere. Also in my research on this topic, I discovered a Portable Apps version of Xammp but it is Windows only. Not much help there. Maybe one day the devs on the project will look for better portable support. Until then, I’m focusing on version management and working off my lil server in my apartment.
I’m still coming to terms with getting distracted on small setup roadblocks. I really didn’t need to waste the time figuring this out when what I really needed to do was to turn out this blog and other projects. Struggling with Xammp taught me that sometimes the perfect environment will trickle down from actually working on things first rather than focusing on a perfect setup for work that hasn’t started yet. Plus it’s alot more fun when you actually have projects in progress instead of dreaming of working on projects.