SSH Tunneling - also known as "Port Forwarding on Steroids"

February 2nd, 2013 No comments

If you need to access network resources behind a firewall, you could set up lots of port forwards.  But it can be cumbersome to manage a large volume of these, and depending on the protocol, this practice may be insecure.  Instead, why not use an SSH tunnel?  An SSH tunnel is an excellent method for handling encryption and authentication.


Mango's Opinion of Sage 50

January 1st, 2013 No comments

Mango evaluated Sage 50 accounting software and was underwhelmed.


Free Tools for Windows

December 29th, 2012 No comments

Everyone seems to have their list of free Windows applications they can't do without, and here's ours.  All of these are free for the download and their authors deserve a serious hat tip for all of their excellent work.  We list them in alphabetical order:

AutoHotkey is the quintessential automator that you really must try to see just how powerful it is.  You can automate almost any program by sending it keystrokes and mouse clicks.  You can remap keys on your keyboard or mouse.  One of our favourite features is that you may compile your finished script into a single EXE that may be run on any Windows computer.


How to Download Previously Downloaded Music from iTunes

December 29th, 2012 No comments

Mango accidentally deleted some music he'd downloaded from iTunes.  Fortunately, iTunes will allow you to download previously downloaded music, though it required some hoop jumping.

1) From the Store menu in iTunes, be sure your computer is authorized.
2) Navigate to the iTunes store and click the link for Purchased.  You may be able to download the files by clicking the Cloud icon.  If not,
3) Shut down iTunes, rename your iTunes Library folder, and restart iTunes.  Only after doing this, we were permitted to download the files.
4) If you had to follow Step 3, shut down iTunes again, restore the original iTunes Library folder, restart iTunes, locate the songs you just downloaded, and add them to your library.

On a slightly related note, in doing this we discovered that iTunes now sells DRM-free music in *.m4a format, not *.m4p.  Though this is old news, we were glad to read it.

Should you use Conventional or Synthetic oil in your vehicle?

September 30th, 2012 Comments off

I recently took my car to an oil change shop that really wanted to upsell me on expensive oil for my car.  I told them to put in whatever the dealer would use and they put in semi-synthetic.  This was a somewhat unfortunate illustration that working with a professional is no substitute for knowing what you're doing.  Though the semi-synthetic won't harm my car, the extra $20 won't offer any benefits, based on the car I drive, what I use it for, and the time of year.  Should you use conventional or synthetic oil in your vehicle?  Keep reading.


Disable Firefox AutoFill / AutoComplete in the Address Bar

September 26th, 2012 No comments

Firefox's AutoFill feature, which appears in new versions of Firefox, makes it more difficult to type a URL such as, if is in your history.

To disable this, enter about:config and set browser.urlbar.autoFill to False.

So I had this dream...

September 23rd, 2012 2 comments

So the other night I had this dream.

The company I worked for was doing well.  Really well.  So well, in fact, that we ended up leasing the old Ikea warehouse in Richmond.  THAT'S how much space we needed for our operations.  (On a recent visit back to British Columbia, I discovered the warehouse in question torn down.  My subconscious was, ostensibly, not aware of this fact.)


Use POTS for all outbound calls on an OBi110

August 6th, 2012 1 comment

A user recently stated that they wanted all outbound calls to be passed directly to their POTS line, with no interaction from the OBi110.  Here is one way you can configure an OBi110 to present the user with a POTS dial tone:

Physical Interfaces >> PHONE Port:
DigitMap: (<:>)
OutboundCallRoute: {li}

DIY: OEM Cruise Control on a 2006-2010 Toyota Yaris for $40 shipped!

August 2nd, 2012 1 comment

We're not even kidding.

We wanted to have cruise control installed on a 2010 Toyota Yaris.  We were dismayed when a dealer quoted $500 for an aftermarket system, even more dismayed when we read bad reviews about Rostra products, and finally, even further dismayed when we discovered this Rostra recall.

Then we discovered cruise control functionality is already built into 2006 and later model Yaris that were sold in North America.  There's no need for an aftermarket kit.  All that's really necessary is simply ordering a few parts and plugging them in.  Here's a Yaris cruise control FAQ with detailed installations and photos.  To order the parts, contact CTScott.

There are a few things about the instructions we would like to elaborate on.  The stalk can be very easily scratched, so we recommend you leave the plastic coating on until the installation is complete.  If you do accidentally scratch it, a little PlastX will have the scratch buffed out in no time.  Also, when they say the Torx T30 screws are tight...they're not just joking.  Be sure to use a T30 driver that you can put a great deal of force on - a Multi Tool or an L Key won't work as you're sure to break either the tool or your skin.

Thanks to CTScott and everyone who made this excellent DIY possible!

OBi110: How to use POTS if VoIP or internet is down

July 24th, 2012 No comments

Many users of the OBi110 route local calls via POTS, and use VoIP for long distance.  But what if your internet service is not working, or your VoIP provider's equipment is down?  Fortunately, the OBi110's Trunk Groups feature will allow you to configure the OBi110 to try different routes in a priority fashion.  For this example, let's assume our VoIP provider is configured on sp1.  This technique may be used with any combination of service providers or the LINE Port.


Using an OBi ATA as an FXO port or Google Voice trunk for Asterisk or your IP Phone

July 22nd, 2012 No comments

If you need an FXO card for your IP PBX, expect to pay hundreds of dollars for a good one.  But what if your PBX doesn't have expansion slots, or is in a different location from your POTS line, or your project is for home/small office use and you require a device that works just as well for a fraction of the price?  You're sure to be delighted with an OBi110.  If you wish to add Google Voice to your call routing, any OBi ATA will be more than up to the challenge.


Blocking Telemarketers with an OBi ATA

July 22nd, 2012 3 comments

No one likes telemarketers, but if you have an OBi ATA, you can easily blacklist them based on their Caller ID.  For this we'll use the ATA's excellent User Defined Digit Maps feature.


Fixing SpamAssassin Spam/Ham Reports on cPanel servers

July 5th, 2012 1 comment

A few months ago, cPanel released an "upgrape" that caused SpamAssassin Spam/Ham reports to include blank lines.  This is a problem because folding continuation lines cannot contain only white space, so the header is invalid.  The result is that the report or other headers may appear in the body of the email if you use an email client such as Outlook, or AVG's email scanner.  Also, the subject may not appear.

Since the two cPanel techs we dealt with, as well as a tech from our datacentre, did not know how to solve the problem, we post the workaround that we wrote here.


Using VoIP for POTS Voicemail with an OBi110

June 24th, 2012 No comments

Those of you who mix VoIP and POTS may find it useful to use VoIP-based voicemail when you're unable to answer your POTS calls.  There are a few reasons you might want to do this.  VoIP voicemail is typically free, but POTS providers often charge for it.  VoIP voicemail often has more/better features, such as email or SMS notification, or even multiple voicemail boxes for different people.  Also, it might be convenient to have one single mailbox to check instead of having to check both a POTS mailbox and a VoIP mailbox.


Run a script on every column of every table in your MySQL database

June 23rd, 2012 No comments

Have you ever needed to recursively run a script in a loop on every single column in your MySQL database?  This PHP code can help.
// Start by getting the list of tables.
$tables_result = mysql_query("SHOW TABLES FROM `$database`") or exit("Error " . mysql_errno() . ": " . mysql_error());
while ($tables_row = mysql_fetch_row($tables_result)) {
 // Loop through the tables.  Get the list of columns from each table.
 $table = $tables_row[0];
 $columns_result = mysql_query("SHOW COLUMNS FROM `$table`") or exit("Error " . mysql_errno() . ": " . mysql_error());
 while ($columns_row = mysql_fetch_row($columns_result)) {
  // Loop through the columns in the table.
  $column = $columns_row[0];
  /* --------- Anything you want happens between here... --------- */
  echo "$table $column\n"; 
  /* ---------------------- ...and, here =) ---------------------- */

Cloning a Windows 7 hard drive

June 23rd, 2012 No comments

Recently when cloning a hard drive with Windows 7 installed on it, we ran into some problems.

We first attempted to use Windows' backup tools; this was unsuccessful as Windows refused to restore the image to the new drive.

We then attempted to use Ghost 11.5 (we didn't have the latest version handy).  Though it appeared to be successful, the computer would not boot afterward and simply displayed a black screen after POST.

We attempted to use CloneZilla which was not successful because the destination drive was slightly smaller than the source drive.  When we attempted to shrink the partition, Windows informed us we could not do this because there were several unmoveable files near the end of the drive.

What finally worked was a clean install of Windows 7 on the destination hard drive, then Ghosting the data partition from the source drive to the destination drive.

Vegetarian Quiche

June 9th, 2012 No comments

Dice ½ red bell pepper and slice ½ a medium zucchini, or other in-season vegetables.  Steam until tender and brightly-coloured, but not wilted.  Lightly saute one diced onion in one tablespoon butter or olive oil.  Arrange the vegetables in a 9" pastry shell and sprinkle ½ cup freshly-grated Parmesan cheese on top.  Beat together 5 eggs, 1/2 cup milk, 1/4 teaspoon curry powder, 1 teaspoon salt, and fresh ground pepper to taste.  Pour over the vegetables.

Bake for 45 minutes at 350F.  Cool for at least 10 minutes before serving.

$90 for PCI Validation?  Get real.

May 3rd, 2012 1 comment

Our merchant services provider, Global Payments, sent us a letter stating that we must be PCI Compliant, or face consequences such as fines, termination of our merchant account, and general woe and spiders.  We already follow the prescribed standards.  So, no problem?  No, problem: they want us to pay $90 to fill in a self-assessment questionnaire.



Canada withdraws the penny in 2012

March 29th, 2012 No comments

The federal government has announced that Canada will withdraw the penny from circulation in 2012.  This means if someone offers a penny for your thoughts, they will have to pay by cheque.

I think they have not fully considered the ramifications of their decision.  For example, anyone selling something that costs a pretty penny will now need to sell a five pack if anyone wants to pay by cash.

If someone usually has to think for a minute before the penny drops, they will be in trouble.

Finally, people who are used to putting their two cents in will need to have opinions that are 2.5 times better.

How to Save for your Child's Education with an RESP

March 26th, 2012 No comments

One can never start saving too early for their child's education.  An RESP can even be opened for a newborn, as long as he or she has a Social Insurance Number.  Once you've opened an RESP, you'll be eligible for many government grants, such as the Canada Education Savings Grant (20% of your contributions up to $500 per year and a lifetime maximum of $7200), the Canada Learning Bond ($500 first year plus $100 subsequent years, if you qualify for NCB supplement), and several provincial grants.


Canadian No-Fee, No-Minimum Bank Account Comparison

March 10th, 2012 No comments

If you like to do most of your banking online, there's no reason to pay fees for everyday banking, maintain minimum balances, or be limited to a certain number of transactions per month.  Here's a comparison of three selected Canadian financial institutions offering bank accounts with no monthly fee and no fee for typical banking transactions, and requiring no minimum balance:

ING DirectBMO IGA/SobeysPC Financial
ChequesFirst book of 50 free, then $0.25 each.First book of 25 free, then $0.20 each.Free
Canadian ATMs>2300>2500>3400
Savings AccountYesNoNo
Chequing account pays interestYesNoYes
BranchesFive cafés across Canada, no teller-assisted transactions.Teller-assisted deposits at over 900 branches free; other transactions $1.00 each.>200 Pavilions across Canada, no teller-assisted transactions.
Free email money transferYesNoNo
Link your other bank accounts and transfer funds back and forthYesNoYes
OverdraftsFree, up to $250 for 30 days.$2.50 per month plus interest or minimum $5 per transaction for a transfer from another account.$4.97 per month in which it is used, plus interest.
J.D. Power ratingFive starsThree starsFour stars


  • BMO IGA/Sobeys does offer a savings account.  However, a fee is charged for withdrawls and the minimum balance is $5000.  Since this is the No-Fee, No-Minimum Bank Account Comparison, it is not considered in the above table.
  • PC Financial offers a savings account; a minimum balance of $1000 is required to earn interest.
  • In the event of a discrepancy between this comparison and the official terms of service of the financial institution in question, the later shall prevail.  (Please notify us if this is the case!)

10 Things We Didn't Know About ING Direct

March 10th, 2012 No comments

Mango's ING Direct account is another one of these things that makes him go, "Shoot!  Why didn't I do this years ago?"

  • Through their association with THE EXCHANGE ATM Network, ING Direct effectively has well over 2000 Canadian ATMs.
  • Owe someone money?  Giving a gift?  You can transfer money to any Canadian bank account, as long as you or the recipient know the transit, institution, and account numbers.  It works in a similar way to Interac e-Transfer, but it's free.  (They also offer Interac e-Transfer; receiving is free, sending costs $1.00.)
  • There is no transaction fee on ING Direct's Investment Savings Account.  You'll earn a higher interest rate than the big banks, AND you can use your savings account for as many bill payments, pre-authorized debits, and direct payroll deposits as you like.  (Similarly, there is no fee and no minimum balance required for their chequing account.)


Canadians: Get a Free Copy of your Credit Report

March 10th, 2012 No comments

We never knew until recently that a Canadian could request a copy of his or her credit report, for free, by mail.  This seems like it would be a good thing to do every year or so.

In order to do this, you should contact both of Canada's credit-reporting agencies.  You can contact them by phone, mail, or fax.

If you need access to your credit report right away, you can order it, along with your credit score, online for a small fee. You may also pay a monthly fee and be notified periodically of any changes.  Your credit score will not be disclosed to you, for free.  However, typical use of having this information is simply to verify that what is on your credit report should indeed be on your credit report.  For this use, the free report will be perfectly adequate.

The report we received in the mail had our information obfuscated.  Though it provided us with the information we needed, it provided little information that could have contributed to identity theft, should the mail have been misdelivered.

For more information, see this document about requesting your free credit report from the Financial Consumer Agency of Canada.

Payment Processing in Canada: Beanstream vs.

February 13th, 2012 4 comments
Beanstream is compatible with many Canadian merchant accounts or will provide you with a blended-rate merchant account with no contract and no works only with Global Payments in Canada (high but negotiable setup fees / 3 year contract / $500 early termination fee / difficult to reach your account manager) and cannot provide you with a Canadian merchant account.  (Edit: Now compatible with Global Payments, Chase Paymentech, Elavon, and First Data.)
Beanstream provides Pre-Authorized Debit and Direct Depost for Canadian and US bank's product supports debit from US bank accounts only.
Basic fraud detection tools are free.Basic tools free, Advanced Fraud Detection Suite available at a cost. (Edit: Now free.)
Phone and email support available.Phone, email, and live chat support available.
Cutoff time is midnight Eastern.Cutoff time is configurable.
Beanstream's user interface is extremely fast.The speed of's user interface is satisfactory.
API very clearly documented and easy to use.API complex, but functional.
First level sales rep didn't understand complicated questions, but escalated to someone who did.Sales rep underquoted our fees, then refused to provide us with the quoted rate.  Later discovered resellers that offered better rates.

Both Beanstream and support payment profiles (new to Beanstream), batch processing, recurring billing, and virtual terminal; they have good reporting, and a powerful API.  Their fees are similar.  Our sales rep underquoted our fees, in writing, by $20/month, but refused to actually provide us with the quoted fees after we'd signed a 3-year contract with Global Payments.  Near the end of our contract, we discovered we could have obtained better rates from an reseller than by dealing with directly.  Our experience caused us to investigate Beanstream as soon as they released their payment profiles feature.

Beanstream and both offer a product that will satisfy any eCommerce merchant's needs, but we prefer Beanstream for its better support of Canadian merchant accounts, its PAD/Direct Deposit product, its clear pricing, and its superior customer service.

Truck Rentals in Canada: Budget vs. U-Haul

February 11th, 2012 5 comments

Budget has a new fleet of trucks.U-Haul's trucks may be new or ancient.
For one-way rentals, only a 16-foot truck is available, in limited parts of Canada.Almost all types of trucks are available for one-way rentals anywhere in North America.
Depots are in major cities.Depots are just about anywhere.
Trucks have a low deck.Trucks have a very low deck; very easy to load; lower clearance required.
$944.23 tax included for a one-way rental from Vancouver to Red Deer$1059.52 for the same move with a truck 57 cubic feet smaller and same insurance
You rent an empty truck.A dolly and furniture pads takes up valuable space in the truck; you can't remove them unless you want to pay for them.
Our truck was provided to us with a full tank of diesel.Our truck was provided to us with less than a quarter tank of gas.
Cube truck"Mom's Attic" over the cab
Diesel or Gasoline fuelGasoline fuel

The verdict: If each end of your move is in or near a city with a Budget depot, and a 16-foot truck will suit your needs if you're doing a one-way rental, we recommend Budget for their newer trucks and competitive prices.

If you're picking up and dropping off your truck at the same location in a major city, you may also wish to investigate Penske and Ryder.  (Note that these two companies have different insurance terms than Budget and U-Haul.)

If your move isn't near a large city, you're doing a one-way move outside of Budget's area, or you're doing a one-way move and a 16-foot truck isn't appropriate, U-Haul will often be your only option.