Portfolio

WAAF RAMP Search Results Screenshot
  • Served as primary technical liaison with vendor of search engine and search optimization tools.
  • Translated vendor's statements into information that non-technical business managers could understand.
  • Recommended user interface...
WRKO home page
  • Liased with stakeholders to determine needs and managed expectations.
  • Managed development to staging to production workflow for feature enhancements on existing site.
  • Cleaned up and optimized CSS stylesheets written by...
Ticker script screenshot
  • Coded static XML files and PHP scripts to dynamically generate XML to populate iPhone applications with content.
  • Mentored colleagues on writing and using XML for iPhone application content.
WKSE home page and videos page on an iPhone
  • Modified JavaScript provided by vendor that dynamically replaced Flash video players with HTML5 <video> elements. Modifications included JavaScript logic to display playlists (vendor version of script only displayed latest video from...
Entercom.com screenshot
Apache, CSS, jQuery, MySQL, Photoshop, PHP, XHTML
  • Updated and maintained existing PHP scripts on corporate web site.
  • Created contact e-mail form with jQuery-based Ajax form submission.
  • Set up Apache redirects using mod_rewrite.
  • Made usability improvements to...

External Resources

Below are links to online resources I have found useful, along with brief notes about each.

Google help article explaining three methods of blocking Google from indexing a page (.htaccess password protection, robots.txt file, and noindex meta tags). Provides a brief overview of how to implement each method and the relative effectiveness of each.

This brief tutorial explains both how to password-protect a web site using .htaccess and .htpasswd and why you would want to do so.

Easy-to-use tool for generating .htpasswd files and the code to add to .htaccess files.

This article file permissions settings for a Drupal site on Linux or Windows. Very useful for getting started with basic Linux file security.

Blog

Feb 11 2011 - 12:51am
Skills: DrupalTags: GIT

Last night the Portland Drupal User Group had a coordinated series of lightning talks about the migration of Drupal and its contributed modules and themes from CVS version control to GIT version control. It is pretty amazing how many star Drupalists are located right here in Portland and making such a major community contribution. A few things are particularly exciting about this change:

  1. I get the impression that with GIT's handling of branching and merging/rebasing, if I start using it I might actually use branching. With Subversion, I don't really create code branches at all...but I have always had the impression that branching is part of how version control ought to be used.
  2. Everyone with a drupal.org account will get a sandbox on drupal.org for committing code without making it an official contributed module. Thus, it gives people a place to play with code ideas. It also reduces the barrier to entry to contributing your own module: once you have a project in the sandbox, you can apply to get it promoted to contributed module.
  3. Eliza411 has pushed to get excellent documentation for using GIT with Drupal on the web site...this will further reduce the barriers to entry. Yay!
Feb 2 2011 - 2:59am

Met a bunch of designers and developers tonight at the first of what I hope become monthly happy hour meetups. There were some truly hilarious people there. Things now on my radar after hearing about them at the meetup group:

Jan 11 2011 - 3:05am

The other day, I ran into an old friend and colleague of mine, who told me that an unfinished site on which he was working showed up in Google search results. Fortunately, he was able to remove the entry from Google's search index after submitting a request to Google, but I imagine his client was disappointed by the situation and unhappy while waiting for Google to process the removal request. My friend was surprised that the site appeared in Google's index, because he had set up his robots.txt file to block search engines from the site.

Learning the hard way

I can't claim any moral high ground on this issue; I made a similar mistake years ago on one of my first professional web projects. I wrongly assumed that, if there were no sites linking to the development copy of the site on which I was working, search engines would have no way to find and crawl the development site. Wrong! I got a nasty surprise when my client sent me an angry e-mail asking why his half-complete new site was showing up in Google. I had to rush to send a removal request to Google, check several other major search engines to confirm that they had not indexed the site, and apologize profusely to the client. Fortunately he forgave me, and the development site dropped out of Google's search index.

Nov 21 2010 - 6:14pm

This tutorial demonstrates one way of setting up an audio player for a page with multiple audio clips. The end result is the following.

Rain and thunder
Elevator door
Door handle creaking
Applause
School bell

Here's a little background on what led to this solution. Some time ago, I was asked to build a small site that included dozens of audio clips on one page. The client suggested I base this site on an existing site of hers that also had a page with dozens of audio clips. Visitors to the site could play different audio clips by clicking on a play button for each clip. The play buttons for the clips were laid out in a table similar to the one depicted below: