You be the judge whether this is a “best practice” but here’s my MAMP update process:

  1. Do a manual phpmyadmin backup of all sql dbs first.
  2. Stop the MAMP servers.
  3. Quit MAMP (and/or MAMP PRO)
  4. Rename the folder: /Applications/MAMP e.g. to /Applications/MAMP_old
  5. Copy the new MAMP folder to your Applications folder.
  6. Copy the databases and other files that you want to keep to the new MAMP folder from the old one. Databases are located under /Applications/MAMP/db but there are possibly also other files that you want to keep like the folder /Applications/MAMP/htdocs or configuration files within /Applications/MAMP/conf.
  7. Run kdiff3 on the MAMP/conf folders to bring over the customizations
    • Unless you’re an exquiste documenter of everything you do, it’s good to run a diff on the two files.
      • sites apache vhost config file
      • php.ini updates (but check, new libraries are added and versions modified)
  8. Copy the uploadprogress.so file, rather than recompile:
    • cp -v /Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20060613/uploadprogress.so -> /Applications/MAMP-1-8-4/bin/php5/lib/php/extensions/no-debug-non-zts-20060613/uploadprogress.so
  9. Start new MAMP (or MAMP PRO).

The latest HTML Tidy has much goodness that the version that ships with Snow Leopard is missing. You’ll need to compile it to update your binary. It’s simple after you’ve done it once and easy to forget, so I’m documenting it this time.

  1. Test version
    1. Load Terminal
    2. tidy –version
      1. “HTML Tidy for Mac OS X released on 31 October 2006 – Apple Inc. build 15.3″
      2. No good, should say at least “HTML Tidy for Mac OS X released on 25 March 2009″
  2. Download the source code:
    1. cd to a directory you can track for cleanupcvs -z3 -d:pserver:anonymous@tidy.cvs.sourceforge.net:/cvsroot/tidy co -P tidy
    2. cvs -d:pserver:anonymous@tidy.cvs.sourceforge.net:/cvsroot/tidy login
      • Hit the enter key for password, i.e., no password
    3. cvs -z3 -d:pserver:anonymous@tidy.cvs.sourceforge.net:/cvsroot/tidy co -P tidy
      • This will create a directory, “tidy” in your current directory
  3. Compile
    1. cd into the tidy directory
    2. /bin/sh build/gnuauto/setup.sh
    3. sudo ./configure –prefix=/usr
      1. Reader Stephanie recommends adding “–with-shared // at least on Lion”
    4. sudo make
    5. sudo make install
      • If you error, may the Google search engine be your best friend.
  4. Test version
    1. tidy –version
      • HTML Tidy for Mac OS X released on 25 March 2009
  5. Delete the “tidy” directory
    1. Wow that was easy.

I’m slow to upgrade my OS as I prefer stability to running the latest version of code. As of 2 days ago, however, I have taken the leap to Snow Leopard (now at 10.6.2) and I am very pleased with stability and the reduced footprint of the OS. Also among my upgrade concerns is my MacPorts installation. I have a few ports that I need to have available. This time, my MacPorts migration was the smoothest yet, too. After googling, I first found this blog post about the author’s upgrade, but after reading the blog’s comments found a more reliable (not necessarily more simple  but well worth the added time) way to make the upgrade:

  1. Reboot and boot using the Snow Leopard DVD.
  2. Before running Snow Leopard, perform a “Disk Repair” in disk utility.
  3. Run the Snow Leopard upgrade process. Both of mine were at least 45 minutes; I didn’t stick around for the upgrade.
  4. After completing the Snow Leopard installation install the XCode from the Snow Leopard DVD. (This step is important)
  5. Run Apple’s Software Update (have broadband ready or expect to wait for the download)
  6. Download the latest MacPorts for Snow Leopard disk image.
  7. Then follow the steps at the MacPorts migration page.
    1. port installed > myports.txt
    2. sudo port -f uninstall installed
    3. sudo port clean –work –archive all

This process does take up some time, but I reloaded my entire MacPorts without a hiccup, which was nice. Also nice is that my 10.5 MacPorts list contains a number of ports I no longer needed, so the cleanup was overdue. I saw none of the dependency or other issues that can happen with MacPorts.

There’s so much more to this, but the details of such are outside of my normal scope; so I’m simply noting this:

If you have a apache 2.2.14-served directory from which you intend to have PHP script interpreted within your *.html files, you must except this directory from your Phusion Passenger environment.

The head-scratcher for us was this: http://www.website.com would show the HTML with the unintrepreted PHP code, BUT http://www.website.com/index.html would properly interpret.

This was a real head-scratcher for the CTO for one my clients and myself when we discovered that subdirectories of our main “web-brochure” site were under Phusion’s control. We simply moved that directory to a new location, outside the environment’s paths, and this solved the problem. It appears that  you can use apache directives to achieve the same result, though I couldn’t.

xamp 1.7.2 ships with php 5.3, which is known to be incompatible with Drupal 6.14. You must use 1.7.1. There. I just saved you a couple hours of troubleshooting.

I blogged earlier about my move from dotproject (dp) to web2project; (w2p) read more there for background. The goodness continues. Whereas using dp allowed me to integrate my project tasks with company info, I have now eliminated  the need for slimtimer, a web app for tracking hours. Slimtimer is an excellent web app for tracking hours to activities and has excellent reporting features and I continue to highly recommend it. What bothered me with using slimtimer was cost and project integration. While it is free, the programmer fairly asks for donations. there are a number of alternatives (Quickbooks for example) that I can use to track project hours for free; while slimtimer is a solid, well-programmed application, it wasn’t worth my making a donation. Alas, I didn’t feel I was quid-pro-quo with the application’s programmer. Secondly, and more importantly (as it turns out) is the integration of task hours, task description against the specific task in my w2p application.

web2project login screen for SCIWhere w2p doesn’t offer the same detailed start/stop hours tracker, the time recording offers “just enough” data to be usable. However, the integration of task hour recording with description and project info is critical to making it much more informative in the context of the overall project. Whereas I lose start/stop times, I gain recording the specific activities I executed ,which also allows me to make the project’s tasks more generic, thus reducing the documentation overhead while keeping the data relevant for billing and project summary documentation.

Score another point for w2p. The beauty of w2p is that it’s model has made project management for my company more easy to manage. The redesign by the w2p team has helped to reveal functional aspects that might have been available in dp but now make sense in the broader context of usage. I recently wowwed a client by setting up a project site for one of his projects in 30 minutes, with milestones established and gantt-charted. He immediately requested his internal IT guy to set up w2p on their internal server. There’s more functionality that I haven’t accessed (yet) but does seem very useful depending on the client and project requirements (forums, file storage, calendaring), although I rely heavily on Google’s Calendar; maybe it’s time for a rethink on that?

If you’re looking for a project management application, with excellent support for a small core team; check w2p out.

Performance Optimization WordPress Plugins by W3 EDGE