QR Codes and vCards
While playing around with QR Codes as discussed here and here I found myself wondering if I could throw together a dynamic QR Code for creating a vCard. The answer was yes. With a couple small caveats, it looks ugly and I’ve tested it but you need to test it yourself before publishing the QR Code, I’m pretty happy with the results.
I did find that my favorite QR Scanner I use on my iPhone was one of the many that suffers from poor vCard support so data was getting put in the wrong fields. Once I tried QRafter (vCard support is good, but I’m still not sold on the rest of it) I was able to properly test the images.
Feel free to give it a try, right-click on the preferred image to save and post your comments or feedback here. I get the feeling I will be updating this to make it more useful.
Emails and Newsletters
If you are collecting emails on your website for newsletters or email updates you’ll want to make sure that you are compliant with the US CAN-SPAM and/or Canadian C-28 regulations depending on where your email servers and clients are located.
Using ShortCodes in WordPress Text Widgets
Shortcodes can be incredibly useful in WordPress posts but have you ever tried to put them into a text widget? Not much luck there when all you get is the text showing the [shortcode] you entered.
Well, there is a quick and easy solution. Just add this to your functions.php file:
add_filter( 'widget_text', 'shortcode_unautop'); add_filter( 'widget_text', 'do_shortcode');
Source: using shortcodes everywhere
Simple. Now you’ll be able to use your cool shortcodes within text widgets.
Siri, Google Calendar and Unexpected Invitee Emails
I love my iPhone 4S. I love Siri. I love Google Calendar.
However, using Google Calendar there doesn’t seem to be a way of turning off the automatic invite email that gets sent when you tell Siri to “Schedule a meeting with [person's name] on Monday at 10am”. If the the person is in your contacts with an email address they are added as an invitee and Google Calendar automatically emails them the invite. Of course, there are ways around this by changing what you tell Siri but that misses the point of the intuitive nature of Siri and impacts it’s usefulness.
I’ve had a few emails go out to unexpected invitees for tentative meetings I was just planning before contacting the client. I really wish Google would made the automatic sending of invite emails a setting based feature.
If you know of a fix, add-on or workaround that includes leaving the name of the person in the meeting request to Siri, please comment here. Of course, if I find anything on the web I’ll be sure to post it here too.
Multiple Google Calendars Using Sync
Are you using Google Sync but can’t get more than one Google calendar to appear on your iPhone?
On your iPhone open safari browser and go to m.google.com/sync and login with your Google account. Select all the calendars that you want to sync. The default is to only sync the one calendar but from here you can select up to 25 calendars to sync.
Personal Hotspot Not Showing on iPhone 4S
On my main settings screen under Airplane mode and Wi-Fi, Personal Hotspot wasn’t showing so I just assumed my carrier (Virgin Mobile Canada) was blocking it. Turns out the reason it wasn’t showing was it wasn’t turned ON under Settings->General->Network->Personal Hotspot. Once I turned it on, it showed up on the main settings screen.
It’s available via USB, Wi-Fi and Bluetooth.
Sorry I doubted you, Virgin Mobile.
Got a Smartphone, Get a QR Code Reader
Further to my popular post about QR Codes, I figured it was time to talk about reading these codes.
QR Codes are starting to gain a little ground in advertising, who am I kidding, they are popping up everywhere. One of the early adopters of this technology was Real Estate agents and like most implementations you have a broad mix of excellent use to useless. I’ve seen lawn sign with QR Codes in front of a home for sale that link me directly to the house details (photos, price, agent contact info) and location-aware functionality that shows me other homes the agent lists in the area. I’ve also seen the same kind of placement that send me to the agent’s website with no easy way to find details about the house I’m standing in front of. I have clients using them for newsletter signups at their retail counter, others with them on their front door to send after hours visitors to their website and some using them on all their print marketing to engage that “younger audience”. No matter what they are doing with them, it’s up to the viewer to have some way of using the QR Code.
Read more >>
iPhone, 1 Pixel Out Audio Player and HTML5 – The Prequel
Lots of response to my original article about HTML5 and the 1 Pixel Out Audio Player. Unfortunately, most of it was because the original code and links died. I was able to get in touch with the author and he was kind enough to send all his files for me to repost and host here. Below is Ryan’s original article (with a couple minor edits requested):
The Problem
As just about everyone knows the iPhone is incapable of playing any sort of Flash through the mobile Safari browser and generally speaking everyone has adapted and found work arounds or changed their sites accordingly as to not require Flash for certain things.
One of the most used plugins I have installed is the 1 Pixel Out flash MP3 player. And by the number of downloads and searches I’ve seen it’s one of the most popular ways to quickly play an mp3 inline to a blog post. It’s customizable, looks great and most of all it works perfect! That is until you try to view the post from your iPhone.
The Solution
So I hacked around the plugin and created the following patch that will detect if your viewer is using an iPhone, and if so it will serve the MP3 with a clickable “Play” image. This allows your viewer to play the mp3 straight through the iPhone! Your viewers will no longer get the no-flash error but instead get this:
Installation [version 2.0.4.1]
Just download this zip and go to your plugins folder for WordPress. Replace your audio-player.php file with the one provided and put the iphone_play.png image in the assets folder. That’s it!
Please note that this is based on version 2.0.4.1. The older version I have ported are listed below.Also, I haven’t tested all the different methods so you may see an issue here or there. Just hit me up if you have a problem and I’ll try to fix it. I’m hoping that 1 Pixel Out will integrate this into the release officially at some point. BTW, The user agent detection function was borrowed from WPtouch.
For you folks that want to manually do it or see what has been changed just have a look below. In the audio-player.php file you will need to make the following changes:
ETA: added ipad as a user agent as per MartyW’s comment below (not in zip file).
Add the following to line 320:
/** * Detects if the user agent is an iPhone or iPod * returns true or false */ function detectAppleMobile($query = '') { $container = $_SERVER['HTTP_USER_AGENT']; $useragents = array( "iphone", // Apple iPhone "ipod", // Apple iPod touch "ipad", // Apple iPad "aspen", // iPhone simulator "incognito", // Other iPhone browser "webmate" // Other iPhone browser ); $applemobile = false; foreach ( $useragents as $useragent ) { if ( eregi( $useragent, $container ) || file_exists($devfile) ) { $applemobile = true; } } return $applemobile; }after inserting that code around line 562 you will see:
} else { // Not in a feed so return player widget $playerElementID = "audioplayer_" . ++$this->playerID; if (strlen($this->options["flashAlternate"]) > 0) { $playerCode = str_replace(array("%playerID%", "%downloadURL%"), array($playerElementID, $actualFile), $this->options["flashAlternate"]); } else { $playerCode = '<p class="audioplayer_container"><span style="display:block;padding:5px;border:1px solid #dddddd;background:#f8f8f8" id="' . $playerElementID . '">' . sprintf(__('Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version <a href="%s" title="Download Adobe Flash Player">here</a>. You also need to have JavaScript enabled in your browser.', $this->textDomain), 'http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash&amp;promoid=BIOW') . '</span></p>'; } $this->footerCode .= 'AudioPlayer.embed("' . $playerElementID . '", ' . $this->php2js($playerOptions) . ');'; $this->footerCode .= "\n"; return $playerCode; }which needs to be replaced with:
} else { if($this->detectAppleMobile()){ $iphone_player = ''; foreach ( explode( ",", $source) as $afilename ) { $afilename = trim($afilename); $iphone_player .= '<a href="'.$afilename.'"><img src = "'.WP_CONTENT_URL.'/plugins/audio-player/assets/iphone_play.png"></a><br />'; } return $iphone_player; } else { // Not in a feed so return player widget $playerElementID = "audioplayer_" . ++$this->playerID; if (strlen($this->options["flashAlternate"]) > 0) { $playerCode = str_replace(array("%playerID%", "%downloadURL%"), array($playerElementID, $actualFile), $this->options["flashAlternate"]); } else { $playerCode = '<p class="audioplayer_container"><span style="display:block;padding:5px;border:1px solid #dddddd;background:#f8f8f8" id="' . $playerElementID . '">' . sprintf(__('Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version <a href="%s" title="Download Adobe Flash Player">here</a>. You also need to have JavaScript enabled in your browser.', $this->textDomain), 'http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash&amp;promoid=BIOW') . '</span></p>'; } $this->footerCode .= 'AudioPlayer.embed("' . $playerElementID . '", ' . $this->php2js($playerOptions) . ');'; $this->footerCode .= "\n"; return $playerCode; } }Installation [version 2.0 beta 6]
Just download this zip and go to your plugins folder for WordPress. Replace your audio-player.php file with the one provided and put the iphone_play.png image in the assets folder.
Now head on back to my update post to see how to take this one step further and get HTML5 into the mix. – David
Solution to WordPress “File param is missing” no CSS
If you’ve loaded up your WordPress site and found the CSS gone, you’re not alone.
Turns out there is a new bug in the W3 Total Cache plugin of WordPress where the minified CSS and JS files aren’t accessible. Your site will throw a 400 Bad Request error and if you try to access the referenced file directly you’ll get a “File param is missing” message.
The quick fix until it is addressed by the folks at W3 Total Cache is to disable the “Rewrite URL structure” option on the Minify tab in the W3 Total Cache options panel. Hopefully it’s just temporary and the next update will resolve the issue and you can turn the rewrite back on.
Link Building
Getting your website noticed is one of the most challenging things involved in launching and maintaining an online presence. I often have clients contacting me to say they have received an email offering them the opportunity to get great exposure for their website by adding them to directories or lists for a small, one-time fee. It is very tempting to think that it’s a good deal but they are running the risk of actually having a negative impact on their website.
Don’t get me wrong, links are good, they always have been and (I expect) they always will be. What creates a problem is the type of links and how they are perceived by the various search engines. For the sake of discussion and practicality, we can just focus on Google as the search engine of choice for most internet users.
Let’s step back for a moment and consider why you would want links to your website. It seems pretty obvious that the more links pointing to your website the more potential visitors you will have. This is what’s called “referred traffic”. Links will also help search engines find your website and improve how the search engine “sees” it.
Read more >>

