I’m still catching up but now that I’ve hit the stride for the music portion (see http://h0key.net), I can catch up a bit in the morning. Day 4 for the Interactive portion of the conference saw myself hit up a PHP themed workshop, a couple of mobile web talks, and some interesting thoughts on authentication and privacy on the web. All in all it was fairly fun, even so some the of night time stuff was a little light.
So at the day job I grew weary working with Windows Vista and decided to do something about it. I was sitting on a quad-core Intel machine. The only issue really was the lack of memory. Well that and it was a 32-bit version of Vista sitting on a 64-bit capable machine. Upgrades weren’t available at the time. I opted to bump up the machine to a 64-bit install of Ubuntu Linux. So far it’s been great but there have been some bumps. The surprising thing to me was how easily my workflow transferred over.
The install was a snap. I chose to install it on a separate partition than to place it within Windows Vista or wipe the whole thing entirely. I still needed my docs from the other machine. After about an hour or two, the machine rebooted and I stepped right into my desktop. I had to add some sources and download some files separately, but the development environment ended up being pretty much the same for me on Windows Vista. Here’s what I did:
- IDE: I was using NetBeans with a PHP plugin development setup. I also had some Subversion modules and a tasty Vim keyboard setup plugin. Instead of keeping the same way, I decided to jump to Eclipse. Some of my other projects uses the Eclipse environment so I decided to go all in. I use the Aptana plugin, which is fantastic, and found that Subclipse and vWrapper were great substitutes for revision control and Vim emulation. Once I got settled in the only real issue I’m still stuck with is that vWrapper is completely polished and I’m finding that vWrapper and some auto complete features created some errant bugs.
- Browser: Most of the work outside of the IDE is in the browser. I use Chrome sparingly because of the lack of extension support, but the Chromium browser is a great replacement for it. Essentially, it is the open source base Google uses to build Chrome off of. The rest of the heavy lifting is with Firefox. I use Firefox Sync to keep me up to date with all of my Add-Ons and Tabs. I’ll talk about that later. Also, the restricted packages set for media and other non-free type libraries should be installed for optimal Firefox usage.
- Communication: I used Pidgin on the old setup and the new setup has Pidgin as well. Ubuntu is pushing Empathy but I am much more comfortable with Pidgin. Also, I ditched Thunderbird altogether. Evolution is on the setup but I only use it for sending attachments and some templating. I moved most of my work over to my integrated GMail. It’s just easier for me collect all the email into one bucket. I do miss Skype/Google Voice capabilities but I never really use it at work.
- LAMP: I used an all in one solution for LAMP development by the name of XAMPP. It’s great for a default install and run but some of the intricacies needed for real server management go away. Since we enjoy Linux thoroughly all around, moving to Ubuntu let’s me mirror a closer setup to what we deploy on. That said, I had to do some extra work getting PEAR and our libraries to work nicely. Also, it took me running into some bugs to turn on the error reporting that was on in XAMPP.For the database side of things, XAMPP came with phpMyAdmin but I was using a real great application called Datadmin. It’s a .NET binary that handles just about any database type and it could export to different database types rather effortlessly. I still miss it. I tried to get it working with Wine but it was too much of a pain. In its place, I now use phpMyAdmin and Navicat SQL Lite. It does the basic of what want, which is a desktop binary that lets manage with multiple windows and/or tabs.
- The Rest: The only other thing I truly require is background music. I’m a big podcast listener so I latched onto the horrid ITunes on the Windows side of things. Yes, it stinks for everything else, but there is no better client for podcast management out there. Once you get the Smart Playlist setup correctly you can have a real nice queue of podcasts updated in real-time. I still miss it a big but I have a good enough workaround. I now use VLC and gPodder. It’s shame they are not integrated. gPodder manages all of the downloading and play management while VLC is the terminal for audio output. I had to adjust the settings for VLC to run as one instance and then pass a ‘–plalist-enqueue’ command as part of the VLC choice for gPodder to get it to work more smoothly.The remaining thing that I use heavily is terminal access. On Windows I use the great PuTTy set of applications to do all my terminal work and key management. Now since I’m on a machine that has terminals built-in by default, the usage is way better. I did have to work around the format of keys that PuTTy uses and import them into my OpenSSH setup but after that things are going better than before. I especially see it when I check out and check in from Subversion.
Overall, the transition was rather smooth. It’s taken a week for me to get back in the swing of things. There are no real killer apps I need on the Windows side of things. Everything I do uses open source so the move to Ubuntu was an obvious one. It’s left me with a good feeling in my stomach. I now know I can produce professional quality work on an open source stack. Back in the day I used to use Linux more than have in recent memory. Making the jump was great and I urge anyone else with the similar environment setup on Windows to make the same move.
Welcome back to part 2 of my Subversion install series. What we are going to go over is developing the right structure for the repository, importing a website, updating a website, then testing and deploying the website using some of Subversion’s command sets. There were some road blocks along the way and I will talk about that as well as some other thoughts about the process. After that I’ll talk about what’s next but first let’s setup and deploy some code.
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.