Visit Pensacola


Lead Developer

Live Site

Google appliance Search

The search engine on VisitPensacola is driven by a Drupal Google Appliance Module.

A Google Appliance is a stand-alone server that constantly indexes ( follows the links- called crawling ) on a WebSite and tabulates the results.  The advantage of such an appliance is evident in the speed at which new content is added to the search index. Google's bots, which crawl the web and re-index it's content, have their work cut out for them and may not re-visit a site for months at a time ( depending on traffic hit rates internally tabulated by Google ).  The disadvantage of an appliance as opposed to standard search-engine indexing is the lack of click-tracking to adjust relevance - most search engines rank results not only on content but on how often the result is chosen by the visitor.  The disadvantage of an appliance as opposed to a site-specific content search is it's lack of understanding of site structure and relevance - it can only index by word occurrence.

On the surface the implementation of a standardized module for search indexing seems simple: install the module, direct it to the appropriate search appliance, and you're done.   In practice the implementation becomes quite complicated.  The results index is full of duplicate results, and a finely-crafted set of rules need to be implemented in the appliance to allow the delivery of relevant results.

Custom Mega-Drop Menu

Clients tend to assume that an open-source WCMS, such as Drupal, will allow the simple addition of modules to enhance their site.  The problem is generic modules written for Dave's blog simply won't contain the features the client desires for their site.

The next question is inevitably "why can't you get a pre-made module and adapt it to our needs".  This sounds simple in theory, but in practice it often takes LONGER to backtrace and debug a pre-made module for custom deployment than to just create a new module from scratch.  "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not clever enough to debug it."

The custom drop-menu I developed for VisitPensacola is highly dynamic, with an administration interface to allow site editors to update the content - it is not simply a hard-coded collection of links.  There are over 20 database calls and routines necessary to build the menu content, so it caches itself and only updates every 24 hours or when an editor alters the content.


php java W3C jQuery jQuery Mobile Knockout Omniture Google Analytics SVN Apache MySQL Adobe Zend MCSE