Making Google Docs Forms send useful email notifications

Forms created in Google Docs can serve as Contact Forms on your web site. You can enable notifications to receive an email when the form is submitted. However, by default the email just tells you that the form was submitted without providing any of the content. Often it would be more useful if the email provided the values submitted in the form. Especially if you are receiving the email on a mobile device where Google Docs is not that easy to navigate.

Making a Google Form send the content of the form is actually quite straightforward. These are the steps that we will follow

  1. Add an onFormSubmit script that sends the form values in an email
  2. Add an On Form Submit trigger to run this function
  3. Disable the default notification email
  4. Test

The following example assumes you've created a form with just two fields. The first field for an email address, and the second field for a name.

Adding a Snow Effect on Blogger

As people start to think about booking holidays for the upcoming winter season we add a snow effect to our Beech Mountain Bliss Blog. Thanks to a script by Kurt Grigg this is simple. In Blogger, go to Layout and add an HTML/JavaScript gadget - I name it "Snow". Paste in the following.

<script src="" type="text/javascript">
* Snow Effect without images-by Kurt Grigg at
* Script featured & available at Dynamic Drive at  
* Please keep this notice intact  

That's it. Save the gadget and view the Blog. You should see white dots drift down from the top.

Bidding Tic Tac Toe Winning Strategy?

At a recent leadership program I was introduced to a bidding version of naughts and crosses. It is a blind bidding variant of Gambling Tic Tac Toe created by Craig Huneke. Here are the rules

  1. Both players start with $3 in coins
  2. Both players write secret bids then reveal together
  3. The winner places their winning bid on the square of their choice to mark their move
  4. The winner now has less money to bid with. Repeat steps 2-3 until one player has a line of 3.
For example, the game might go as follows
  1. Player 1 bids $0.75, and Player 2 bids $1
  2. Player 2 wins, and places $1 (their bid) on the center square
  3. Player 1 bids $1, and Player 2 bids $1.25
  4. Player 2 wins so places $1.25 on one of the corner squares
  5. Now Player 1 still has $3, but Player 2 is only left with $0.75
  6. Player 1 can now bid $1 three times in a row, getting three squares in a row and winning
It seemed that there should be a winning strategy. Perhaps always playing a third of your remaining funds. I started filling pages of paper with games. It seemed that bidding a third of your funds, rounded to the nearest penny was a good strategy. So I decided to write a program that could play this variant of gambling tic tac toe. I would then teach it various strategies and let it play against itself ala Wargames (1983) but without the total global annihilation.

Moving to the Cloud / Part 1 / Do I still need a laptop?

In 2006 I bought a Dell XPS M140 Laptop with Windows XP. I was delighted with the speed. But after a couple of years a combination of increasingly demanding applications, and all the software I had installed on it, were making it feel slow. I was looking for a change. For 10 years (1988-1998) I had used OS/2 as my primary operating system both at work and at home. In 1998 I switched to Windows NT at work, and Windows 98 at home. So following this 10 year refresh cycle it was time for a new operating system.

The two leading candidates seemed to be Apple's Mac OS X or Ubuntu. So I began to compile a list of all the software I was currently using on Windows. Alongside this list I added a column for Apple, and a column for Ubuntu. I indicated in these columns whether there was a version of the same product for that platform, and if not, what similar products existed.

Creating a Reminder Service with Google Apps Script

Google Calendar is great for reminding you of appointments. But if you have actions that must be done, you need something more than a one time reminder. I wanted to keep a list of actions with due dates where each day I would receive one email listing all the actions which were coming due, or overdue.

Google Apps Script is a server side scripting language that interacts with Google Docs and other Google products. Among other things it can be used to add custom functionality to a Google Spreadsheet. I have used it to write a simple reminder service.

This could be made more sophisticated with each action having a different owner that should receive a reminder. But it should serve as an example for someone just getting started with Google Apps Scripts to build on. Or for someone that wants to build their own reminder service.

The steps we're going to follow are

  1. Create a spreadsheet to contain our list of actions
  2. Add a Close Action function
  3. Add Close Action to the spreadsheet menu
  4. Add a Send Reminders function
  5. Add Send Reminders to the spreadsheet menu
  6. Schedule the Send Reminders function to run each night

Capturing and Cropping a Screenshot on a Chromebook

When blogging, I often want to take a screen capture, crop it down and include it in a post. Pressing CTRL + [ ]]] (the "Switch to your next window" key) will save a screenshot into a Screenshots folder under File Shelf. However, this would then need to be uploaded somewhere for editing. Google also offers a Screen Capture extension, but this doesn't offer the ability to crop either.

The extension that I have been using is called Webpage Screenshot. This lets you capture a screenshot and edit it in the browser, including cropping. Once edited you can then share the image. This presents convenient links for emailing, sharing on facebook or twitter among others. It also the simplest way I have found to save the image on a Chromebook for subsequent uploading to Blogger.

Using iPhone with T-Mobile Prepaid SIM Card

Using my iPhone 3G with Rogers (Canada) service when I'm traveling in the US is very expensive. So instead I bought a T-Mobile Prepaid Pay As You Go SIM Card. This is just $6.99 from the T-Mobile web site. Look for their Pay As You Go plans and then for SIM Card Activation Kit. It comes with 10 minutes and they'll ship it to a US address for free. If you don't have a US address or need one immediately then you can just buy it at a T-Mobile store when you're in the US.


  • Inexpensive to buy and (fairly) easy to setup
  • Easy to top-up your balance or add a data plan while on the go
  • Inexpensive web daypass offering unlimited data for 24hrs


  • EDGE only - not 3G

Using Google Voice in Canada

I've been using Google Voice since July 2009. When I moved to Canada on assignment, I was disappointed to learn that Google Voice wasn't supported in Canada. Since I could make free calls from the US to Canada using Google Voice, I had assumed that I could setup Google Voice to forward calls to a Canadian phone number. But no such luck.

Fortunately I had a magicJack device registered with a US phone number. MagicJack supports call forwarding to Canadian numbers at no extra cost.

So here's how I set it up

1. magicJack with US phone number is forwarded to my Canadian mobile phone number
2. Google Voice forwards to magicJack (as well as my US mobile phone number)

Creating an automatic archive page in Blogger

I was looking for a way to add an archive page in blogger. Specifically I had in mind adding the Blog Archive gadget to a page. From the google searches I did I found this article from bloggerbuster on Creating an Archives Page in Blogger. It's a good post, and the archive page looks good (better than the Blog Archive gadget), but on the downside it needs to be maintained manually. I was looking for something which updated with new posts automatically.

I eventually found a clever hack posted by Yoboy on this thread in the Blogger help forum in response to the question How do I put my archive on it's own page? I found this easy to implement, as you can see on my Archive page linked in the tab bar above. I thought I'd take a stab at summarizing the steps here, mostly so that next time I change my template, I'll remember how to implement this. Hopefully other people find this approach to adding a dedicated archive page to their Blog easy to follow too.

Here's the steps at a high level

1. Add an empty Archive page to your blog
2. Add the Blog Archive widget just below the Blog Posts widget
3. Modify your template so that the Blog Archive widget is only shown on the Archive page

Eye-Fi Connect X2 4GB Wireless SD card

Eye-Fi Connect X2 4GB
Wireless SD Card
It always seems to take me a couple of weeks to copy the photos off my camera and upload them. So when I learned about the Eye-Fi SD card it sounded perfect. With Wi-Fi support built into the SD card, it will upload the photos to your chosen photo sharing site without needing to be removed from the camera.

The Connect X2 was $42 from Amazon. A higher end model also supported geotagging, which sounded useful, but a little extravagant at $99. Anyway, the Connect X2 can be software upgraded to support this too, so I figured I'd do it later if I missed it.

Along with the Connect X2 SD card, you get a USB adapter that the card slots into. If you just want to copy files on/off the card, you can plug it into a regular SD slot on your computer. But when you want to configure what photo sharing site to upload too, you need to put it in the USB adapter.

Traveling abroad with Roku

When we go on vacation we generally take our Roku. It's especially useful for the selection of kids shows on Netflix. But this only works when we're traveling in the US. Trying to use Netflix or Amazon Video on Demand from Canada or the UK doesn't work. The services detect your IP address and blocks the programming. Something to bear in mind, especially if you've bought a lot of movies and TV shows on Amazon Video on Demand, and then travel abroad for a period of time.

But for those people just temporarily traveling out of the US, there is a way around this that will let you use your Roku to watch Netflix and Amazon Video on Demand. It involves setting up a router with a public VPN service. There are simpler approaches if you are willing to watch the programming on your laptop. But this is the only way I've found that will work if you want to use a Roku, or other dedicated streaming device like an Apple TV.

Here are the the high level steps to setting this up

  1. Buy a router compatible with DD-WRT (e.g. Linksys E2000)
  2. Install the DD-WRT bootloader
  3. Daisy chain this new router off a spare LAN port on your existing router
  4. Signup for a VPN service (e.g. StrongVPN)
  5. Configure the VPN login and password in the DD-WRT admin screens
  6. Configure your Roku to connect to this new router

Samsung Series 5 3G Chromebook / First Month

I've had my Samsung Series 5 3G Chromebook now for just over one month. I'm still happy with the purchase, and use it instead of my laptop. I also have an Apple iPad which I use for reading email, blogs and books. But my Chromebook is now my preferred device when I need to write anything. However, this Chromebook is not perfect, and I thought I'd share my experiences.