How to request a meter refund from Impark?

I was mistakenly charged twice by an Impark meter, thus I contacted the company hoping to get a refund for the invalid charges. After waiting for two months for their response, I concluded Impark didn't give a damn about my issue. They did not even drop me line.

So, I wrote this blog entry, which initially I titled "Robbed by Impark? You are not along…". Two days after publishing the post I was contacted by Impark through Tweeter. It turns out my posts are automatically tweeted and somehow Impark noted my tweet.

After that, I had to get on the phone with them and I also had to send some emails back and forth with Steve Tirbhowan, a Senior Parking Manager at Impark.

Finally, I was refunded on January 9th, 2015 for an issue I had on September 24th, 2014. It took a lot of effort from my part to get the money back. Read the whole story below.

Important: If you need to request a meter refund from Impark, I suggest you contact them through their Tweeter page. They pay very little attention to their Contact Us Form; but I discovered that they are are quite responsive on Twitter.

If this was useful to you, share it by clicking the Google Plus (G+) button at the beginning of this post. 

###################### Original story below ######################

Toronto, September 24th, 2014. Around 10:00 AM in the morning. This is the day I became a Canadian Citizen. This is also the day I was robbed by Impark.

I was hoping to park my vehicle in the car park in the picture below. The address is 200 Town Centre Court, Scarborough, Ontario. This is the closest parking lot to the CIC office in which I was to have my citizen ceremony.
Robbed by Impark in this car park

I was robbed by Impark in this parking lot

There are a couple of Impark parking meters in that place. I inserted my MasterCard in the machine (twice), but it reported some kind of error. At the end the machine didn’t deliver any ticket or receipt; which is why I had to leave the premises and find a different place to park.

I ended up parking in a different place no far away. You can see my parking ticket below.
Parking receipt – Canada Auto Parks

Parking receipt – Canada Auto Parks (different place in which I ended up parking)

Hurrah! I was ready to become a Canadian citizen.

A few days later when I was browsing my credit card statements, I noticed two payments to Impark. Yes, the defective Impark meter charged me twice and never delivered the ticket/receipt. So, I was charged for nothing.

I understand that technical problems can happen. So, I contacted Impark twice and asked for a refund. I used their own Contact Us form. They never took the time to even write me a line over email. Almost 3 months have passed since then and I have come to the conclusion that I have been robbed and treated disrespectfully by this entity.

Now you know: I was robbed by Impark the same day I became a Canadian Citizen.  I certainly won’t forget this day.

If you have been wronged by Impark as well, please; share you story on the comments section or click the Google Plus (G+) button at the beginning of this post. Let’s call Impark for what it is: a thief company.

Below, I am adding the communications that I sent to Impark. I never got an answer from them.

To prove my story is real, I am also inserting a snapshot of my credit card statement showing the two payments done to Impark.
Robbed by Impark – Credit Card statement
Robbed by Impark – Credit Card statement

First communication with Impark (October 11th, 2014 )

On September 24th, 2014 (around 10 am if my memory allows) I paid
twice with my MasterCard, but the machine (IMPARK00090417U
877-909-6199 ON) never delivered a receipt. At the end, I had to leave
the premises not being able to park.

Still, for my surprise, I just noticed two payments in my credit card
statement: one for $8.00 and the other for $7.00. I would kindly ask
you to refund the full amount of those payments to me since I was not
able to use the service for lack of the receipts.

For more details, feel free to call me at 647-xxx-xxxx or email me at


   Yanniel Alvarez Alfonso.

Sep 24, 2014    IMPARK00090417U 877-909-6199 ON         8.00
Sep 24, 2014    IMPARK00090417U 877-909-6199 ON         7.00

Second communication with Impark (November 2nd, 2014)

This is the second time I contact Impark about the same meter issue. I
wrote you the first time on October 11t, 2014 and still I am waiting
for an answer.

For your reference, I am copy-pasting below what I sent you in my
first contact. This explains what my claim is about. Please, take care
of this issue. I have been patient enough for this mistake that
Impark made. It's only fair that you correct the issue ASAP.


Yanniel Alvarez Alfonso.  
Update: Two days after writing this blog entry I was contacted by Impark via Twitter. They asked for my contact information, which I provided to them via Twitter's Direct Message.  

Contacted by Impark via Twitter

After this, a support person named Zach called me. I explained the issue to him and he advised me to email my explanation directly to He said I should provide the first 4 and last 4 digits of my credit card so that they could look-up (verify) the erroneous transactions of September 24th, and then issue a refund.

I emailed the info to as Zach told me to. Guess what? Another month has passed and nobody from Impark has contacted me. 

Rogue companies like this one should not be allowed to operate. There's no protection for the consumer that deal with Impark.

This has never been about the money. It's about principles. I don't appreciate being robbed, even if it is just a dollar. 

This is about calling Impark for what it is: a thief company.

The source code history of Free Pascal and Lazarus visualized with Gource

Gource is a software version control visualization tool. I thought it would be fun to visualize Delphi’s source code with Gource, but that is not possible for obvious reasons. So, I decided to try-out Delphi’s cousins: Free Pascal and Lazarus.

I checked-out the respective code bases and ran them through Gource.

Below are the Gource commands I used:

gource -1280x720 -o C:\\gource\\fpc.ppm -s 0.01 --hide dirnames,filenames,progress,mouse C:\\gource\\fpc

gource -1280x720 -o  C:\\gource\\lazarus.ppm -s 0.01 --hide dirnames,filenames,progress,mouse C:\\gource\\lazarus

Gource shows the filenames and directories of the source code by default; still, I decided to hide them in these videos, because they were overlapping. You can play more with Gource, FPC and Lazarus on your own :-) For a comprehensive list of the command line options and arguments of Gource click HERE.

The above gource calls create two files: fpc.ppm and lazarus.ppm. I guess these are some kind of uncompressed video format. The files were huge: ~60GB and ~100GB respectively.

Then, I used FFmpeg to encode the above .ppm files into .avi files. The FFmpeg commands are below:

ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i C:\\gource\\fpc.ppm -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 C:\\gource\\fpc.x264.avi

ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i C:\\gource\\lazarus.ppm -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 C:\\gource\\lazarus.x264.avi

Finally, I uploaded fpc.x264.avi and lazarus.x264.avi to YouTube. You can see them below:

Free Pascal source code history visualized with Gource 

Lazarus source code history visualized with Gource 

If you liked this post; please, show your appreciation but clicking the Google Plus (G+) button at the beginning of the article. Thanks!

How much do you know about your Government? – Toronto, Ontario, Canada.

These are the answers to the questions found in Discover Canada (Citizenship Study Guide) from page 34-35.

The Federal Government part is applicable to all Canada. The Provincial Government part is applicable to Ontario and the Municipal Government part is applicable to Toronto.

Also, I have put together a comprehensive list of questions and answers that will help you in studying for the Canadian Citizenship Test. Just follow the link in the line above.  

Federal Government

Head of State: Her Majesty Queen Elizabeth II

The name of the representative of the Queen of Canada, the Governor General, is Julie Payette

The Head of Government, the Prime Minister, is Justin Pierre James Trudeau

The name of the political party in power is Liberal Party

The name of the Leader of the Opposition is Andrew Scheer

The name of the party representing Her Majesty’s Loyal Opposition is Conservative Party of Canada

The names of the opposition parties and leaders are:
  • New Democratic Party of Canada: Jagmeet Singh
  • Bloc Québécois: Mario Beaulieu
  • Green Party of Canada: Elizabeth May

My member of Parliament(MP) in Ottawa is [See below next to the *]

My federal electoral district is called [See below next to the *]

* Click this link and enter your postal code. This will allow you to find out who your MP is and to which federal electoral district you belong to.

Provincial Government

The representative of the Queen in my province, the Lieutenant Governor, is Elizabeth Dowdeswell

The Head of Government (the Premier) is Doug Ford

The name of the provincial party in power is Progressive Conservative Party of Ontario

The names of the provincial opposition parties and leaders are
  • Ontario Liberal Party: John Fraser (interim)
  • New Democratic Party: Andrea Horwath

My provincial representative is [See below next to the **]

** Click this link and look for your provincial representative (also known as MPP - Member of Provincial Parliament-). You can do this by looking up the MPP for your federal electoral district (riding). You should already know you federal electoral district (riding); for details refer to the note above marked with one asterisk *.

    Municipal Government

    The name of the Municipality where I live is Toronto

    The name of the head of the Municipal government (mayor or reeve) is John Tory.

    I would very much appreciate if you recommend this article by clicking the Google Plus (G+)  button at the beginning of the post? Thanks!

    Canadian Credit Cards with No Foreign Transaction Fee

    The Foreign Transaction Fee is the charge applied to your credit card when paying for a service or product in a foreign (non-local) currency. 

    The currency in Canada is the Canadian Dollar. If you pay for something in a different currency; let’s say US Dollars, Euros, Pound Sterling, etc., then you might get charged with a Foreign Transaction Fee.

    The Foreign Transaction Fee is apparently a big business for banks and other credit cards issuers in Canada. They charge a 2.5% of the amount spent that is NOT in Canadian Dollars. So, be advised that if you pay in US Dollars, Euros, or any other currency that’s not the Canadian currency, then you‘ll get busted with the 2.5% Foreign Transaction Fee.

    As far as I know, to this date, the only issuer of credits cards in Canada that do NOT charge a Foreign Transaction Fee is Chase. Chase is an American bank authorized to conduct businesses in Canada.

    Chase offers various credit cards with No Foreign Currency Transaction Fee. These are some examples:
    • Rewards Visa Card
    • Sears Financial™ MasterCard®
    • Marriott Rewards® Premier Visa® Card
    • Sears Financial™ Voyage™ MasterCard®

    For the more information about the cards provided by Chase visit: Chase for Canadian customers.

    I got myself an Rewards Visa Card. In the details of the card you can read:

    Foreign Currency Conversion: We will bill you in Canadian Currency if you use your account to make a transaction in foreign currency. We will convert it into Canadian currency at the exchange rate set by Visa International in effect at the time we post the transaction to your account. This exchange rate may be different from the rate in effect on the transaction date. We will not charge you any additional foreign currency conversion charge.

    This is the card I use whenever I pay for something in non-Canadian dollars; thus avoiding the sneaky Foreign Transaction Fee. You can do the same and save yourself a few bucks ;-)

    If you think this post might be useful to others, please, share it by clicking the Google Plus (G+) button at the beginning of this entry. Thanks!

    How to open a checking account at Tangerine?

    Everything at Tangerine is done online… opening a checking account is no different: you can do it in 10 minutes (at the most) from the comfort of your home computer while you are in your pajamas. What I have found so far about Tangerine (formerly ING DIRECT) is that all procedures can be done with an extreme simplicity and from the comfort of your home.

    Tangerine calls its checking account: Tangerine Checking Account. It was called THRiVE Chequing Account in the times when the bank was called  ING DIRECT.

    Most checking accounts in Canadian banking institutions charge you a monthly fee. This is ridiculous if you ask me: banks are profiting from our own money, but that’s not enough for them: they still charge us a monthly fee for having our own money within their grasp, money from which they are profiting already.

    This is what a Tangerine Checking Account has to offer:
    • NO MONTHLY FEES. Ask yourself if your current bank charges you a monthly fee and ask yourself if you should be paying for it?
    • Unlimited transitions: once again, you can perform unlimited transitions at Tangerine for free.
    • Earn interest on the money you put on your Tangerine Checking Account (yes, you heard well: this is a checking account that pays interest, just as saving accounts do).
    I am not going to load you with more details…if you want to know more about the benefits of opening a Tangerine Checking Account come here:

    Now, in order to open a Tangerine Checking Account you have to do only TWO things:
    1. Complete an online form that won’t take you more than 10 minutes. I am not exaggerating: this form won’t take you more than 10 minutes to fill. In order to fill the form click here: Open a new Tangerine Checking Account.
    2. Write your initial deposit cheque (payable to yourself) for at least $100, and mail it to Tangerine Bank, 3389 Steeles Avenue East, Toronto, Ontario, M2H 3S8. Note: all new clients of Tangerine opening accounts for at least $100 bucks get a $50 bonus. What does this means? It means that you open your account with $100, but you are credited with $150; so Tangerine welcomes you with $50 bucks.
    That’s all: by completing the two steps above you will open a Tangerine Checking Account, that will treat you with unlimited transactions, no monthly fees, saving interests and a $50 bucks welcome gift.

    If you have any questions, drop a line in the comments section below. I’ll do my best to answer.

    If you think this post might be useful to someone else, don’t hesitate in recommending by clicking the Google Plus (G+) button at the beginning of the post. Thanks!

    HMAC functions in Delphi (HMAC_SHA256, HMAC_SHA1)

    I came across HMAC (Hash-based message authentication code) functions when developing a RESTful client application in Delphi. The RESTful Web Service API required me to send HMAC_SHA256 signatures (Base64 encoded) with each HTTP request.

    HMAC functions take two parameters: a key and a message. The purpose of the HMAC function is to authenticate the message and guarantee the data integrity of the message.

    The cryptographic strength of the HMAC function lies on the underlying hashing function that it uses: MD5, SHA1, SHA256, etc.

    So, these functions are usually are termed HMAC_SHA256, HMAC_SHA1, HMAC_MD5 to connote the core hashing function being used.

    The outcome of a HMAC function is basically an array of bytes, but it is usually represented as a hexadecimal string or encoded as a Base64 string. (The RESTful Web Service API needed the Base64 encoded output).

    I Googled around for a bit, but I didn’t get a clean implementation of HMAC_SHA256 in Delphi (encoded as Base64). I glued together the pieces from some questions on StackOverflow and coded an Indy based implementation that uses generics to specify the core hashing function.

    Brief description: I created a helper class called THMACUtils. Note that this class uses generics to indicate the hashing algorithm (TIdHMACSHA256, TIdHMACSHA1). Three functions are provided:  the main thing happens in the HMAC(...) function; HMAC_HexStr(...) and HMAC_Base64(...) are simply decorations of the output.

    unit HMAC;



      THMACUtils<T: TIdHMAC, constructor> = class
        class function HMAC(aKey, aMessage: RawByteString): TBytes;
        class function HMAC_HexStr(aKey, aMessage: RawByteString): RawByteString;
        class function HMAC_Base64(aKey, aMessage: RawByteString): RawByteString;


    class function THMACUtils<T>.HMAC(aKey, aMessage: RawByteString): TBytes;
      _HMAC: T;
      if not IdSSLOpenSSL.LoadOpenSSLLibrary then Exit;
      _HMAC:= T.Create;
        _HMAC.Key := BytesOf(aKey);
        Result:= _HMAC.HashValue(BytesOf(aMessage));

    class function THMACUtils<T>.HMAC_HexStr(aKey, aMessage: RawByteString): RawByteString;
      I: Byte;
      Result:= '0x';
      for I in HMAC(aKey, aMessage) do
        Result:= Result + IntToHex(I, 2);

    class function THMACUtils<T>.HMAC_Base64(aKey, aMessage: RawByteString): RawByteString;
      _HMAC: TBytes;
      _HMAC:= HMAC(aKey, aMessage);
      Result:= EncodeBase64(_HMAC, Length(_HMAC));


    Below there’s an example of how to use the THMACUtils class.

    program HMACSample;


    {$R *.res}


        Write('HMAC_SHA1("key", "message")'#9#9'= ');
        Writeln(THMACUtils<TIdHMACSHA1>.HMAC_HexStr('key', 'message' ));

        Write('HMAC_SHA256("key", "message")'#9#9'= ');
        Writeln(THMACUtils<TIdHMACSHA256>.HMAC_HexStr('key', 'message' ));

        Write('HMAC_SHA1_Base64("key", "message")'#9'= ');
        Writeln(THMACUtils<TIdHMACSHA1>.HMAC_Base64('key', 'message' ));

        Write('HMAC_SHA256_Base64("key", "message")'#9'= ');
        Writeln(THMACUtils<TIdHMACSHA256>.HMAC_Base64('key', 'message' ));


        on E: Exception do
          Writeln(E.ClassName, ': ', E.Message);

    The console application above looks like this:

    HMAC Sample Application Delphi
    HMAC Sample Application Delphi

    How to obtain an “Option C Printout” from the CRA?

    When you are sponsoring a family member to come to Canada, you are required to provide an Option C Printout of your last Notice of Assessment for the most recent taxation year.

    An Option C Printout is not a Notice of Assessment. An Option C Printout is a document that summarizes your income and deductions for a particular taxation year. It is usually referred to as Proof of income statement (Option ‘C’ Print).

    How to obtain an Option C Printout?

    This can be done either:
    • By Phone or
    • Over the Internet (online).
    If you think this information might be useful to others, please, click the Google Plus (G+) button at the beginning of this post.

    By Phone

    Call Canada Revenue Agency (CRA) at this number: 1 (800) 959-8281. Sometimes the number is busy; in which case try again a few minutes later until you get connected.

    You will be listening to an interactive recorded message; hence, a computer will be doing the talking...

    Listen carefully and select the option that allows you to get the Option C Printout.

    You will need to type these three pieces of information over the phone:
    1. Social Insurance Number. 
    2. Date of Birth.
    3. Amount of Income you reported on Line 150 of your most recent taxation year.
    Make sure you have the information above otherwise the computer won’t be able to authenticate you.

    Once you finally enter the info, the automatic system (computer) will tell you that you have succeeded, in which case the Option C Printout will be mailed by postal mail to the address you have on record with the CRA.

    For instructions about how to update (change) your address with the CRA refer to the following link:

    Over the Internet (online)

    You need to register online with the My Account service of the CRA. Once you are registered with them, just login and look to the left where you will see the My Account menu. Click the option Proof of income statement (Option ‘C’ Print) which will allow you to print the required document.

    The link to register and/or login with My Account is this:

    Below you can see a snapshot of how My Account looks like.

    My Account – CRA – Proof of income statement (Option C Print)
    Related Articles:

    Coin collection - 100th Anniversary of the Canadian Arctic Expedition (year 2013)

    I got the 14k Gold Coin as a wedding gift from a friend. I loved that coin immediately. Later on I bought the remaining silver coins in this collection from the Royal Canadian Mint. I must say the quality of the images below is not really good. The real coins are impeccably beautiful.

    Coins from left to right, top to bottom:
    • Brilliant Fine Silver Dollar  (Mintage: 02610/20000 )
    • 14k Gold Coin (Mintage: 0218/2500)
    • Proof Fine Silver Dollar (Mintage: 12866/40000)
    • Fine Silver Proof Set (Mintage: 21285/25000)
    Coin collection - 100th Anniversary of the Canadian Arctic Expedition (year 2013) - [Reverse]
    Coin collection - 100th Anniversary of the Canadian Arctic Expedition (year 2013) - [Reverse]

    Coin collection - 100th Anniversary of the Canadian Arctic Expedition (year 2013) - [Obverse]
    Coin collection - 100th Anniversary of the Canadian Arctic Expedition (year 2013) - [Obverse]

    The Canadian Arctic  Expedition 1913-1916

    On the antique celluloid, the light flickers. Sled dogs move silently across the Arctic tundra. A man perched on an ice floe surveys the horizon as teams of men and dogs prepare for ice-bound travel behind him. In the distance snow-capped mountains rise into the sky like jagged shards of ice.

    In grainy photos, men stand alongside makeshift fences, before shelters made of skins and furs, in open ice fields, atop sleds packed with gear. Some smile; others stare silently into the lens, arms crossed, thoughts unfathomable.

    These are only a few of the approximately 4,000 photographs and more than 2,700 metres of film capturing one of the twentieth century’s most exciting moments in exploration: the Canadian Arctic  Expedition.

    In 1913, Canadian Prime Minister Sir Robert Borden commissioned an expedition, led by Manitoba-born ethnologist Vilhjalmur Stefansson, to explore and map the western Canadian Arctic. Stefansson and zoologist Rudolph Anderson had travelled through the Far North the previous decade. Knowing that there was a great deal of unexplored potential in the region, Stefansson planned to continue his earlier journey, but the Government of Canada, recognizing the importance of new sovereign territory, hosted the Expedition and broadened its mission significantly. A Northern Party led by Stefansson would undertake the mapping exercise while a Southern Party led by Anderson would explorer the geology, resources, and native inhabitants of the northern mainland.

    Traveling by sea and despite significant hardships, the Northern Party covered thousands of kilometres, mapping land that even the local inhabitants had never seen. The Northern Party discovered four new islands and proved that some of the geography proposed by nineteenth century expeditions was erroneous.

    The Southern Party completed the full mapping of the mainland and produced 14 volumes of scientific data as well as thousands of specimens and artefacts, opening up a new world of wonder for Canadians. Their findings included information about flora and fauna never before recorded, fossil samples, and more. Their cultural research familiarized the world for the first time with the culture and way of life of the Copper Inuit and the aboriginal peoples of the Northwest Territories, Yukon Territory, Alaska and Siberia. From these Aboriginal peoples – some of whom participated in the Expedition as guides and other assistants- they collected artistic artefacts, tools, knowledge, and thousands of photographs as well as extensive film footage.

    The Expedition’s artefacts, photos, and recordings enabled researchers to introduce to the rest of the world cultures that had been virtually inaccessible until that time. The artefacts have also had a broad educational legacy, forming the basis of numerous educational programs and museum exhibits, and are an important pillar of the permanent National collections of the Canadian Museum of Nature and the Canadian Museum of Civilization.

    14k Gold Coin - 100th Anniversary of the Canadian Arctic Expedition

    This 100-dollar coin is certified to be 14-karat gold with a metal content of 12 grams and a diameter of 27 millimetres. In this design, Canadian artist Bonnie Ross depicts several key images representative of the Canadian Arctic Expedition, including a survey team atop an ice floe taking research measurements and, in the background a stylized map of the Canadian Arctic. The obverse features the effigy of Her Majesty Queen Elizabeth II by Susanna Blunt.

    Brilliant Fine Silver Dollar / Proof Fine Silver Dollar - 100th Anniversary of the Canadian Arctic Expedition

    Both the brilliant uncirculated  silver dollar and the proof silver dollar in this collection  are certified to be 99.99% pure silver with a diameter of 36.07 millimetres and a weight of 23.17 grams. Designated by Canadian artist Bonnie Ross, the reverse image draws on photography from the Canadian Arctic Expedition, depicting a group of three men aboard  a dogsled, the waiting dog team before them listening for the command to move across the Arctic tundra. The skyline and horizon behind this portrait are filled with a stylized image of a compass. The obverse features the effigy of Her Majesty Queen Elizabeth II by Susana Blunt.

    Fine Silver Proof Set - 100th Anniversary of the Canadian Arctic Expedition

    This is the 2013 fine silver proof set of Canadian coinage. This is the only set that features the commemorative silver dollar selectively gold-plated and the gold-plated one-dollar coin depicting the common loon.

    The chart below shows the characteristics of each coin in the 2013 Fine Silver Proof Set of Canadian Coinage.

    Characteristics of each coin in the 2013 Fine Silver Proof Set of Canadian Coinage

    Proof of medical examination - Medical Report: Client Biodata and Summary (IMM 1017 Form)

    As part of the Application to Sponsor a Member of the Family Class, the sponsored person and their family members are required to provide “proof” that they have undergone a medical examination.

    I am sponsoring my wife to come to Canada, she lives currently in Cuba and I have been living in Toronto for the last 4 years.

    When I first heard about this “proof of medical examination”, I asked myself:
    • What do they mean by “proof”?
    • How can I obtain this “proof”?
    • How does this “proof” look like?
    For the purpose of sponsoring a Member of the Family Class, Citizenship and Immigration Canada (CIC) requires you to mail the IMM 1017 Form as proof that the medical examination took place with an authorized Panel Physician.

    In other words, the IMM 1017 Form, also known as Medical Report: Client Biodata and Summary, is the "proof" you are looking for. This form is one page long and you will have to mail the corresponding IMM 1017 Forms not only for the sponsored person, but also for their family members (dependants), if any.

    We obtained this form directly from the Panel Physician that examined my wife. We didn’t have to provide a blank form for the doctors to fill. They handled this form to my wife at the end of the medical examination.

    This form does not contain the results of the medical results; it’s merely a confirmation that the person in question was examined by an authorized Panel Physician.

    Below I have added for reference the IMM 1017 Form that my wife received. I erased all personal data from the form and I also scrambled the barcode. 
    I wanted to share this knowledge because the information provided about this topic in the CIC website is quite slim. You should know that I am not a legal or immigration expert. I just want this information to be useful, but you use it at your own risk.

    If you think this information was useful, please, consider clicking the Google plus button (G+) at the beginning of this post. Thanks!

    Related article: