Oct 112010

Phoca PDF is a great tool to use if you want to quickly add a custom header and footer to your PDFs. The component, the plugin, and your select font should all be installed, but installation is easy.

What didn’t quite work for me is that my requirement was to print the logo header only on the first page (rather than at the top of every page), and to have no footer. The other issue is that while Phoco had options to cache the generated PDFs, it appeared that they were always generated on-the-fly, and with much longer processing time before showing the PDF to the visitor than with default Joomla.

Rather than try to get Phoca to do what I needed (which would’ve been a bit more time consuming as Phoca is more complex), I made the following modifications to these Joomla files:
(line numbers are approximate)


Lines 33-47, adjust var $_margin_top and $_margin_bottom depending on the height of your logo
Line 211
, comment out these lines:

// Set PDF Header data
// $pdf->setHeaderData(”,0,$this->getTitle(), $this->getHeader());  // this line prints the header on each page


line 561, set var $print_footer = false;
leave as true to get the default Joomla PDF footer,
setting var $print_header=false; will render blank PDFs, leave that value as true.


line 81, modify the code section to look like this:

// prepare header lines
// $document->setHeader($this->_getHeaderText($article, $params));
echo ‘<img src=”http://www.domainname.com/images/stories/printlogo.png” /><br /><br />';
echo ‘<h1>’ . $article->title . ‘</h1>';
echo $article->text;

There you go!

Jul 152010

Created by the same team that also brought us the indispensable YSlow tests, Boomerang allows us to collect the page load times from actual visitors.

While performing page load testing on your development machines using Firebug, YSlow, and other tools is important, nothing beats getting real world “perceived” page load times from your real visitors, along with other useful metrics.

The software works by adding some javascript to the page(s) that you’d like to benchmark and then deploying some php or other code that will save the incoming results into a database. The website below offers example code:

Try Boomerang.

Jul 142010

Rather than asking your visitor to provide their operating system and browser information by asking them to go through various Help -> About menus on their computer, send them to www.supportdetails.com.

This simple, free service will display all of their pertinent information and provide a handy form that they can use to email it to you. Tracking down problems that might or might not be related to browser compatibility is tricky enough, this makes the “OK, what browser are you using?” step much simpler.

Thank you to Imulus Design+Interactive for supplying this service.

May 202010

This works on most Android 1.6 or greater version phones, like the Motorola Droid and the Nexus One.

Long-pressing on the microphone button next to the home screen search box widget or on the hardware itself to bring up the Voice Search window. Any word or phrase spoken will open a google search page for those terms.

You can also speak certain keywords or shortcuts into this prompt to make the phone take certain actions.

List of Android voice shortcuts:

  • Call <contact name> (+ <home|mobile|work>): Dial this contact. If the contact has multiple phone numbers, and you don’t specify which number to dial (i.e. “call Dad work”), you will receive an on-screen prompt to select which number.
  • Dial <phone number>: Dial your selected number: “Dial 3-1-0-5-5-5-1-2-1-2″. I’ve found that you have to speak the number fairly quickly before the voice prompt times out and starts dialing.
  • Find <location>: Open a map a Google Maps displaying pins with the location(s).
    • Specific business name:  “Find Staples”, “Find McDonalds”,
    • Type of business: “Find gas station”, “Find grocery store”, “Find yogurt”,
    • Specific location name: “Find Disneyland”, “Find
    • Type of location: “Find dog parks”
  • Map of <location>: See Find, above.
  • Directions to < location>: Open Google Maps providing driving, mass transit, biking or walking directions to your selected place from your current location. You can use the same types of locations as with Find, above.
  • Navigate to <location>: Start Google Navigate with <location> set as the end point. You can use the same types of locations as with Find, above. General requests like “Navigate to gas station” will produce an on-screen prompt to select which local gas station.
  • Open <application name>: Open the desired application: “Open calendar”, “Open Facebook”, “Open Battery Info”. I’ve seen this shortcut mentioned in forums, but have not been able to get it to work.
  • Post buzz <message>: Generate a Google Buzz posting of your phrase. Posting will be geolocated with your current position.  More info.

* Note that other installed Android Marketplace applications can also set custom voice shortcuts.

* Please leave a comment below if you discover any additional voice shortcuts for any Android application.


  • Speak normally and be articulate. No mumbling!
  • Use conversational volume and speed; no need to raise your voice or to speak verrrryyy slowwwlllyyy — your phone will feel like it’s being patronized.
  • Use in a noisy environment will give you random results.
  • When Froyo (Android 2.2) is released, it should be possible to trigger the Voice Search window by briefly holding down the button on your bluetooth headset.
  • android soft keyboard microphoneBonus tip: The voice-to-text functionality in Android 2.1+ is actually quite amazing. If your phone supports this feature, you will have a small microphone button next to the spacebar on the soft keyword. Press this button and speak phrases into the prompt to quickly send text messages or short emails.