Posts on this site are never sponsored.

Savings account investment strategy: what are laddered term deposits / GICs?

I’ve seen the term “laddering” a lot on but many people don’t understand what it means. Many people, if asked whether they ladder their investments, will respond with “What is laddering?”. Here’s a short explanation of laddering in the context of term deposits aka GICs.

Laddering not a special type of account, nor something that is only available to some people, nor something you have to apply for. Rather, it is a simple strategy for increasing the interest rate earned on your savings using standard GICs.

Whether you are heavily invested in stocks or whether you are ultra-conservative and won’t put your money anywhere other than a savings account at a major bank, you’ve probably put money in a GIC or thought about it. There are a couple of common concerns regarding GICs:

  • What if you don’t want to lose access to your money for an extended period of time?
  • What if interest rates rise in the future and you miss out on a better rate?

Typically, the savings account offers the lowest rate, and the longer the term of the GIC, the higher the rate. If you’re looking at a 1.5% savings account and a 1.5% 1-year GIC, especially if you think interest rates have hit rock bottom, there is probably no point to investing in the GIC. With the 1-year GIC, you would be giving up liquidity (easy access to withdraw cash) for an arguably negligible benefit (being guaranteed 1.5% for a year and being better off were the savings account rate to drop during that time). And you might look at a 5-year GIC at 2.75% and decide that it’s not worth stashing away your money for so long. You struggle to try to “time” the market; in other words, how do you know when is the right moment to put all your money in a long term deposit? So your money ends up sitting in your savings account unto forever.

Laddering attempts to address those concerns and is best illustrated with an example. Suppose you have $5,000 in savings. You can split that into 5 x $1,000, and start by opening 5 separate GICs: a 1-year, a 2-year, a 3-year, a 4-year, and a 5-year. (Another common surprise for some is that every major financial institution offers: 1-year, 2-year, 3-year, 4-year, and 5-year GICs, and often shorter and/or longer terms as well.) This means that you can count on some money becoming available again every year. As each term matures, if you don’t need that money, you can invest it in another 5-year term. If you repeat this process (re-investing each $1,000 + interest amount in a new 5-year term when it matures), you will always be invested in the longest term at the highest rate.

In other words, with laddering you split your money into separate investment bundles, all with different terms and maturity dates, so that you can take advantage of higher rates without locking away all of your money. You can vary this approach in a multitude of ways, such as having 3 years as your longest term or making each bundle have unequal amounts. Also, this concept is not limited to GICs; it can be applied to other types of investments as well.

Choices Markets replaces styrofoam meat trays with plastic

According to their monthly newsletter, BC-based Choices Markets is:

… introducing a 100% recyclable meat tray. Starting in September [2012], all of our meat departments will completely switch away from foam trays and begin using a high-density #1 plastic tray that is accepted in Metro Vancouver’s recycling stream. We are well aware that the new trays are still made from a petroleum base, but unlike the old foam trays, the new units are recyclable. In the meantime, we will continue searching for a suitable packaging made from a renewable source that is even more environmentally sound.

Like they say, using plastic is still not the most desirable option, but it’s a step in the right direction. Most municipalities will not recycle styrofoam / polystyrene foam, which is labelled as plastic #6 or simply not labelled at all.

The best long-term option might be for customers to bring re-usable containers instead of buying one-use packaging, but with meat more than almost any grocery item, that would be a serious sanitation issue!

While we’re on the topic, have you considered re-usable produce bags yet?

Varnish mobile redirection

If you have separate mobile and main sites, you usually want to implement automatic redirection from the main site to the mobile site for mobile visitors. Redirection based on the user agent string is the current standard and is relatively straightforward. If your web server directly serves pages, you can implement the logic at the Apache level, either through rewrite conditions and rules or through an Apache module, both of which were discussed here.

If your website is behind a reverse proxy such as Varnish, you do not want Apache to perform such redirections, because you don’t want Varnish to cache the redirect responses. In other words, if the first visitor is a non-mobile user, all subsequent mobile visitors for a certain period of time will get that cached, non-redirected response; if the first visitor is a mobile user, everybody will get redirected for a certain period of time. Therefore, the redirection logic is best placed at the Varnish level.

The example Varnish configuration below, to be placed in the VCL file, redirects mobile users based on a list of mobile user agent strings from It allows users to return to the full site and remain there, bypassing the redirection logic. Of course, this is just a general example that you can tweak depending on your exact use cases. You might have slightly different requirements on allowing users to manually go between the mobile and main sites.

In vcl_recv() to determine whether to redirect:

# Only redirect if we do not force the full browser using a GET parameter or COOKIE
if( !( req.url ~ "\?fullbrowser$" || req.http.Cookie ~ "fullbrowser=1" 
) )
    # Check for mobile device
    if( req.http.User-Agent ~ "(?i)android.+mobile|avantgo|bada\/|blac
kberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |
maemo|meego.+mobile|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)
windows (ce|phone)|xda|xiino" )
        error 750 "Moved Temporarily";

In vcl_error() to perform the redirection:

if( obj.status == 750)
    set obj.http.Location = "" + req.url;
    set obj.status = 302;

In vcl_fetch() to allow a mobile user to stay on the main site via a link that has “?fullbrowser” appended to it:

# Cookie handling for mobile redirects
# Assumes no other GET parameters; modify to match "fullbrowser" anywhere in the string or if there are other GET parameters
if( req.url ~ "\?fullbrowser$" ) {
    set beresp.http.Set-Cookie = "fullbrowser=1;; path=/";

For a more general overview of things to consider when implementing Varnish on a website, see this post.

Recycling aluminum pie plates and cookie tins in Metro Vancouver

Apart from the well-known paper, glass, aluminum can, and plastics recycling, and now food scraps / composting, Metro Vancouver cities also recycle household aluminum pie plates and foil, as well as cookie tins. This has long been the case, but not everybody is aware of this.

With aluminum pie plates and foil, you can of course re-use them for food storage and baking. Cookie tins such as Turtles and other Christmas gift regulars, can be re-used as gift wrapping and other miscellaneous storage. But if you simply have too much of it to re-use or share, you can put them in your “blue box” recycling if your garbage is collected by the city. If you live in a multi-family building (aka an apartment or a condo) and garbage and recycling collection is handled by a private company, you can advocate for them to collect the same materials as the city. You can also bring your recyclables directly to your relevant city’s recycling depot, such as the Burnaby facility (walking distance from Brentwood SkyTrain station, just past Costco).

Don’t hesitate to clear out your overflowing stash of cookie tins (unless they’re collectibles…) but just don’t throw them away!

Parameter differences between date and strftime PHP functions

strftime() has a similar functionality to date(): both functions return formatted date text based on a Unix timestamp, using configurable parameters. strftime() has the advantage of using locale / language specific text, such as a month name, where relevant. date() isn’t solely intended for text output, so it provides some extra parameters, such as whether or not the given year is a leap year.

The two functions share many formatting parameters that are well-documented. However, there are also many differences in equivalent parameters; here are some:

strftime date
Minutes with leading zeros %M %i
Seconds with leading zeros %S %s
Abbreviated day %a %D
Full day %A %l

Be sure to compare the documentation if you’re porting a formatting string between the functions!

For example, to format the current time in the Solr date format using the strftime() function, you would use:

strftime( '%Y-%m-%dT%H:%M:%SZ', time() );

… while the equivalent with date() is:

date( '%Y-%m-%dT%H:%i:%sZ', time() );