Category: Writing

New misleading metrics from FB, and the ineffectiveness of online ads

I was recently reminded of a fantastic article about how ineffective digital advertising is:

“The new dot com bubble is here: it’s called online advertising”, by Jesse Frederik and Maurits Martijn. Published in the (now defunct) Correspondent on 6 of November, 2019. [archive link]

Someone linked to it as part of a discussion around the latest nefarious behaviour by Facebook.

It came out that Facebook knowingly mislead advertisers about the size of “potential reach” for campaigns. They overestimated possible campaign reach by including an extra 10% of fake + duplicate accounts.

Continue reading

Toronto’s most beautiful baby

As part of a local art project, I was looking for old photographs of the Mt. Pleasant and Eglinton neighbourhood in Toronto.

What I found was a “Google Streetview Time Machine” of sorts. A project called OldTO which places over 30,000 photos from the City of Toronto Archives on an interactive map of the city. (Just like Streetwiew, it was created by Google. This one, as part of Sidewalklabs’ aborted attempt to romance our city into an unwholesome who-knows-what.)

I was puzzled by one of the first photos I saw.

Continue reading

Common SPF Errors

I saw an interesting discussion about SPF and email infrastructure on hackernews.

User citrin_ru shared the following list of common SPF problems they see:

  1. No space between directives: "v=spf1 ip4:"
  2. Space inside a directive: "v=spf1 ip4:192. 0.2.0/24 -all"
  3. Bad mechanism: "v=spf1 ipv4: -all"
  4. No mechanism: "v=spf1"
  5. = instead of : "v=spf1"
  6. Unicode in SPF, mostly dashes (but I’ve seen zero-width spaces too): "v=spf1 all"
  7. Two SPF records for the same domain: "v=spf1 -all", "v=spf1 ?all"
Continue reading

Presentation: Bet you didn’t think you could put that in an email!

On December 11, 2020, I spoke at Pardot conference Pardreamin’ about unusual types of content you can put into emails. If you are one of the 88 people who attended: thank you for your time and kind comments!

For a copy of the slide deck, click “download” below:

And here is the video recording:

And the hyperlinks that were used on the slides with a “Resources” section:

Continue reading

CanCon Treasures

“Can Con” is a Canadian system of quotas that require radio stations to set aside a percent of airtime towards playing Canadian-created music. If you want to go down the rabbit hole of what qualifies as Can Con, here is a great Can Con writeup from the Frontside Group.

Because of this system, you sometimes get exposed to some unexpected acts here in Canada. Musicians that never made it big globally.

This is a collection of Canadian “Can Con” gems that I like.

Continue reading

6 Ways marketers can be productive despite their “bad data addiction”

Recently Jacques Corby-Tuech, a Marketing Technologist with skills and attitudes similar to my own, wrote a post about how Marketers are addicted to bad data (archive link).

Jacques showed some great examples where marketing data is seen as reliable – but is actually broken. Even the processes used for decision making around marketing data are often broken (ex: split tests and statistical significance)

Because I’m passionate about the topic of marketing data, I’d like to add 2 types of Bad Data to the original list and offer 7 tips for marketers to stay productive despite this issue:

Continue reading

Types of Monopolistic Behaviour

This is a short reference, initial listing is from the Wikipedia page on Anti-competitive prices.


Where a company sells a product in a competitive market at a loss. Though the company loses money for each sale, the company hopes to force other competitors out of the market, after which the company would be free to raise prices for a greater profit.

Ex: I believe this is how Uber and Lyft set their pricing, hoping to drive out traditional taxi services from the market. Once they do this, they’ll either be the only game in town (because nobody can ever start a brand new taxi service ever again, right?), or they’ll have a permanently low cost structure with driverless cars (spoiler: not happening).

Exclusive Dealing

Where a retailer or wholesaler is obliged by contract to only purchase from the contracted supplier.

Price Fixing

Where companies collude to set prices, effectively dismantling the free market.

Refusal to Deal

Two companies agree not to use a certain vendor

Dividing Territories

An agreement by two companies to stay out of each other’s way and reduce competition in the agreed-upon territories.

Limit Pricing

A limit price is a price, or pricing strategy, where products are sold by a supplier at a price low enough to make it unprofitable for other players to enter the market.


Where products that are not naturally related must be purchased together.

Resale Price Maintenance

Where resellers are not allowed to set prices independently.

Canadian Whack-A-Mole

The practice of creating the illusion of competition in an oligopolistic market, by creating subsidiaries and sub-brands.


Mobile Telecom

  • Rogers, Fido, Chatr
  • Telus, Koodo, Public Mobile
  • Bell, Virgin Mobile, Lucky Mobile
  • Shaw, Freedom Mobile

Jan, 2019 – Tefficient report shows Canada has world’s highest carrier revenue per SIM

Oct. 2019 – Tefficient removes Canada from mobile price ranking over industry pressure and CRTC’s delays in releasing information.

The 2019 Price Comparison Study of Telecommunications Services in Canada and with Foreign Jurisdictions, prepared by Wall Communications Inc.

International Comparison: Canada has the highest or second highest PPP-adjusted prices in all five Level baskets.

From the Executive Summary, Mobile Wireless section

Jul. 2019 – Rewheel research shows Canada carriers give you the fewest GB of data for 30 Euros, in the world.

2019 – Telus commissioned NERA study to rebut Rewheel report

Other people’s writing on the topic

Ishmael N. Daro – Canada has an oligopoly problem. This article makes a strong point that having a government-backed player in an oligopolistic market lowers prices for customers. It was interesting to consider that oligoplies exist in media, and that the “public option” CBC is under constant attack. I don’t find ishmael’s points about the big 5 banks convincing – how is that an oligopoly? How are they making life worse for Canadians?

Pardot: finding the Pardot asset when all you have is a landing page

In a situation where you only know a Pardot landing page’s public URL, and you want to open it for editing, here is what you do:

  1. Go to the landing page in your browser (works for forms, too)
  2. add the parameter ?PI_DEBUG_ENABLE=1 to the end of the URL. So
    will become
  3. Hit Enter to go to this new URL
  4. A direct link to the Pardot asset will appear on the upper right of the page. Click it to start editing your page/form right away:


You can create a button that does the above work for you, as a bookmarklet:



Credit for this goes to Cheshire Impact’s post on editing live Pardot pages. As far as I can tell, this is a completely undocumented server-side function.

Sync Outlook Calendar to Google Calendar using Microsoft Power Automate

December 2021 update: people who tried this sync commented about problems with this approach. Personally, this flow stopped working for me. I’ve come to the conclusion that the cloud platform of Power Automate is unstable and unreliable. I recommend that you try a different approach to synchronizing your calendars – like one of the paid options on the market.

Summary: getting Outlook events to show up in Google Calendar can be a challenge due to your workplace’s security settings. If you have access to Microsoft Power Automate (aka Flow), then you can use this .zip package to set up an integration.

This Flow is based on this Outlook to Google Calendar synch package by Alex Matulich. Thank you for laying the groundwork, Alex!

Why sync these calendars?

My personal calendar is in a Google account, and I access it with a Google app on my Android phone. My workplace calendar is in Office 365 Outlook on my work laptop.

I wanted the ability to see work events on my personal calendar/device without having to install the Outlook app on my phone. I did this because it’s a good idea to keep home & work accounts on separate devices. To keep work-time and personal-time fully apart.

Using Microsoft Flow to synch Outlook and Google Calendars

Microsoft Power Automate (aka Flow) is a service that lets you connect different applications and build connections between them. If you’ve heard of IFTTT or Zapier, Flow has the same concept.

Flow was a good option for this sync because it was free and available. The basic free version of Power Automate is already included in Office 365, and apparently allows 750 “runs” a month. This version is good enough for our purposes, although your company may have paid for a more advanced version.

Download your Power Automate .zip package below:

v2 of this flow added on Aug. 7, 2020. It no longer copies the event description to Google Calendar. Long event descriptions were cutting off the important Event ID/Master ID.

v3 of this flow was added on Nov. 17, 2020. It has 1 minute delays between repeated actions, to try and reduce rate limiting problems. Also, changed Outlook settings to look forward only 90 days, instead of 300.

Known issues: the Google Calendar steps error out because they hit rate-limiting limits (“rateLimitExceeded” message). I’ve also encountered lots of problems when making changes to recurring events. If you think of a fix, post it in the comments!

Screenshot of this Microsoft Power Automate Flow that copies Outlook calendar events into Google calendar.

This Flow will copy over new events from Outlook to Google Calendar. It also handles event updates and deletions, as well as supporting recurring events.

Installation Instructions

To get started, sign in at the Power Automate site and Import the .zip package by clicking the Import button at the top. Next, you will be prompted to connect your Office account and your Google account.

Remember, you will need to set up your own Office ID and your own Google Calendar ID within the Flow, in order to make it work with your accounts. Awesome commenter “justme” shows you how to find the Google Calendar ID in the comments below. They say:

If you go to the Settings and Sharing options of your google calendar you should see an ID, that’s a long list of random characters followed by Copy that whole thing into the google calendar ID field in your flow.

You might run into an issue where your provided Google Calendar credentials are not automatically used in this Flow’s elements. The account might say the dummy value “”.

If this happens, then plase go through every instance where those credentials are used, and click on the dropdown to change the account to use your actual Google Account. There are currently 5 spots where that change has to be made. The highlighted parts of the Flow below show where to make the changes:

Credits for the MS Power Automate Flow

This flow is based on the one at Syncing Office 365 Outlook to Google calendar using Power Automate by Alex Matulich. I found it through his helpful question around special date formatting for Google Calendar in a Power Automate discussion thread.

(The date format ended up being “yyyy-MM-ddTHH:mm:ss-00:00” in your own time zone)

Thank you Alex!

My customized Flow is different from Alex’s in that it doesn’t require you to have access to an Excel Online / OneDrive account to keep track of event updates. In my organization, I was not able to make proper use of Excel Tables in the way that Alex’s Flow expected.

Other MS Flows that could be helpful:
Create new events on Google Calendar from Office 365
Copy new events in Office 365 to Google Calendar and send a notification
Update Google Calendar events previously created from

Trying to add Outlook Calendar to Google calendar

There are a few other documented ways to bring your Office 365 Outlook events into G Suite/Google Calendar.

One of them could work for you. It all depends on your employer’s security settings. For me, none of these methods worked. Only the Microsoft Flow method I describe above was effective.

Share calendar from Outlook 2016

You might be able to share your calendar through a “sharing invitation” email, found under the “share calendar” button.

At my organization, sharing a calendar with an external contact was blocked by the admins. A message like “Problem: Your organization’s policy does not allow you to share with this recipient.” comes up whenever you try to share your calendar with a Google account.

Publish to WebDAV server

One recommendation you’ll see for Outlook and Google calendar integration is to use the “Publish to WebDAV Server” option. This requires having an intermediary account on a server like iCal Exchange (accounts are free).

Here is a guide for setting up WebDAV publishing, from Ablebits.

Sync with Google Calendar from Outlook 365 Online

Another option for calendar sync is to go to Outlook 365 Online, then go to Settings -> Calendar -> Accounts.

There is a section there that says “To manage all your calendars in one place, connect your personal accounts with your work account. Details of personal events, like title or location, won’t be shown to other people.”.

Unfortunately, this turned out to be only a one-way sync that brings Google Calendar events into Outlook calendar (the opposite of what I wanted). As of now (July 2020) this also seems to be a feature that’s not available to everyone.

If you are looking to see your Google Calendar from within Outlook, you can try the above method or try this guide for setting up calendar sync on Outlook for desktop.

Thanks for reading and good luck with the setup!

Copyright © 2022 Jacob Filipp

Theme by Anders NorenUp ↑