Blog
Writing on data engineering, attribution, visualization, and growth. Posts are plain Markdown files — interactive charts included.
-
How to Detect and Attribute AI-Engine (LLM) Traffic Using Referrers and User-Agents
ChatGPT, Perplexity, Copilot, and Gemini are sending your site traffic — and your analytics is probably filing it under Direct. Here's the practical playbook for detecting, classifying, and attributing AI-engine traffic.
-
Hello, World (Again)
The new site is live — flat files, Markdown posts, and interactive charts. Here's how it works.
-
Interactive Visualizations in a Markdown Blog
A working demo of Plotly and Chart.js charts embedded directly in a Markdown post.
-
Free Printable: Magic Tree House Reading Checklist for Young Readers
A free, printable 3-page checklist of all 67 Magic Tree House adventures — made for my son, shared for every kid who loves checking off the books they've read.
-
How to Host an R Shiny App on AWS EC2 via Shiny Server and RStudio Server on a Windows Machine
Shinyapps.io is a great free resource for hosting your first Shiny app. However, the server space and computing power is quite limited. Upgrading to the cheapest option is $9/month which is more expen
-
How to Create an Interactive WebApp using R Shiny
I am a Data Scientist for the City of Toronto and my objective for this project is to illustrate how citizens can use Open Data to create their own tools and dashboards to understand their locality be
-
Using Python to Download Yahoo Fantasy Sports Data into a Spreadsheet
I’m the self appointed data steward for the office hockey pool. We award small prizes for the team with the highest points every month. This requires saving the total points and standings by team at t
-
Dynamic Pricing: How MLSE Controlled the Sale of Raptors NBA Finals Tickets
Someone paid $76,477.50 CAD for a pair of tickets to Game 1 of the NBA Finals in Toronto. The average household income in Toronto is $65,929 CAD.The average ticket price of NBA Finals games in Toronto
-
Free Local Pickup Option with Shopify
Shopify is great! It helps you ship your products all across the world for discounted rates. But what happens when someone down the street orders from you? Are they going to pay the extra few bucks to
-
How to Tag Products on Instagram with a Shopify Site in 10 Steps
UPDATE: AS OF SEPTEMBER 2019 FACEBOOK AND INSTAGRAM HAVE CHANGED SOME OF THEIR FEATURES AND THIS GUIDE IS OUTDATED. Feel free to try the steps and see if it’ll work for you, but beyond that I cannot h
-
Where the Money Comes From: Toronto Councillors
The Toronto Municipal Election is scheduled for October 22, 2018. Incumbent mayor John Tory is running for re-election, but there is expected to be a lot of change in terms of those governing the city
-
Was there a Toronto Real Estate Bubble?
Background The Toronto Real Estate market (and it’s surrounding areas – the GTA) have been red hot coming into 2017. According to the Toronto Real Estate Board (TREB), home prices on average have rise
-
Pulling Stock Data and Creating an Efficient Frontier in Excel
I mentioned in a previous post on how to get (nearly) live stock data from Google Finance. However, if you start pulling data from different markets, daily historical rates won’t make sense as differe
-
Scraping Stock Data from Google Finance
For this tutorial we will be using Google Sheets. Google Sheets is a great resource for scraping data from the internet and it’s free!
-
Removu K1 vs DJI Osmo+ vs GoPro Hero6/Karma vs Feiyutech Summon+
The GoPro was one of the biggest revolutions when it came to shooting live action footage. Unfortunately, what many people weren’t aware of was with any camera, shooting video is incredibly difficult
-
How to Merge WordPress With Static HTML Files
Backstory A few months ago I had a genius idea. I could create a personal website with Ruby on Rails and host it on Heroku for free using a Free Plan and a monitor robot to keep the website awake. The