Nael Shiab
banner
naelshiab.bsky.social
Nael Shiab
@naelshiab.bsky.social
Pinned
Exciting news! 🎉 I’m pressing pause on my work at CBC News for the next three months to focus on a passion project: www.code-like-a-journalist.com.

It’s a free, open-source online course designed to teach data analysis and visualization using TypeScript. 🚀

Stay tuned!
Code Like a Journalist
A free online data analysis and data visualization course using TypeScript by computational journalist Nael Shiab.
www.code-like-a-journalist.com
So happy to see how fast the TypeScript library simple-data-analysis has become for tabular and geospatial data! 🤩

It's now processing data 6x-12x faster than traditional R and Python solutions in my little test in which I crunched a 1.7 GB CSV file.

1/4 🧵
November 13, 2025 at 5:55 PM
Hey @threlte.xyz ! 👋 I was wondering if you knew a good way to record animations made with the amazing Threlte library as videos. Thank you for all of your amazing work!
November 7, 2025 at 9:07 PM
Thanks for the mention in your newsletter, @observablehq.com!
September 23, 2025 at 3:30 PM
Recoding parts of my TypeScript libraries using generics and function overloads. It's beautiful. 🥹
September 8, 2025 at 4:35 PM
We have just updated our international trade tracker with the latest numbers from July. See all imports and exports broken down by country, province, and product!

Link below!
September 4, 2025 at 2:27 PM
My most popular interactive @observablehq.com notebook, Math for Journalists, just got a fresh update! 🧑‍🎓

👉 Sample size and confidence: I explain how sample sizes work, like in a survey.
👉 Tests for statistical significance: I break down what "statistically significant" means.

Link in comments! 👇
September 2, 2025 at 2:57 PM
New project is live! We're now tracking all products coming in and out of Canada 🇨🇦. See how international trade is rapidly shifting, with breakdowns by country, province, and product 🚗🥦🛢️.

Link in the comments! 👇
August 20, 2025 at 12:46 PM
Amazing work by @maxxen.bsky.social and the @duckdb.org team. I've been using the spatial extension for a while now for my geospatial analyses, and it's wonderful to see it getting better and faster.

duckdb.org/2025/08/08/s...
Spatial Joins in DuckDB
DuckDB v1.3.0 significantly improved the scalability of geospatial joins with a dedicated SPATIAL_JOIN operator.
duckdb.org
August 19, 2025 at 1:32 PM
Will you be the 300th person to fall in love with this amazing library? 😏
July 9, 2025 at 5:32 PM
I asked Gemini-CLI to fix mistakes and add examples to the documentation of the open-source library journalism. It updated 58 files and did a pretty good job in half an hour. I used the free tier, but the @simonwillison.net LLM pricing calculator estimated the cost at $6 USD! Very impressed. 😶
July 2, 2025 at 6:40 PM
Last week, we published our interactive project on climate matches. I published my detailed methodology on how we wrangled the data. Here's the link, with a shout-out to @freakonometrics.bsky.social who helped me with the statistical approach! 🧑‍🏫

👇
newsinteractives.cbc.ca/features/202...
July 2, 2025 at 1:55 PM
July 2, 2025 at 12:34 AM
New project! I've always felt climate projections were a bit too abstract. To make them more concrete, I identified North American cities that already experience the projected temperature and precipitation of Canadian cities. And the result is... 😳

Link in the comments! 👇

#dataviz #climate
June 26, 2025 at 1:21 PM
Over 100 heat records could be broken today in Ontario and Quebec. 🫠
June 23, 2025 at 12:38 PM
Terrible air quality in Alberta and Saskatchewan right now. 😷
June 10, 2025 at 5:17 PM
Bad air quality caused by Western wildfires for 54 communities this morning, mainly in Southern Ontario and Quebec. And summer hasn't even started yet... Link to our climate dashboard in the comments.
June 6, 2025 at 12:05 PM
Just updated our Climate Dashboard this morning to add air quality warnings. The smoke from all of those fires out West is being pushed East by the winds. It's pretty bad to breathe in Northern Manitoba and Ontario right now.
June 3, 2025 at 2:31 PM
May 29, 2025 at 1:24 PM
Reposted by Nael Shiab
A look at tonight's wildfire situation in Canada: See where they are, how much has burned and how it's changing air quality www.cbc.ca/newsinteract...
May 28, 2025 at 11:20 PM
The prairies. 🥺
May 28, 2025 at 10:43 PM
Back in March, I attended the fantastic NICAR session "My first LLM classifier" by @palewi.re and @dwillis.bsky.social.

It was eye-opening, but all in Python. And you know I love TypeScript! 🤓 So, I added new features to the SDA library, and Ben kindly let me reproduce his tutorial!

Link below! 👇
May 21, 2025 at 3:00 PM
Fantastic project by my colleagues this morning!
May 15, 2025 at 12:49 PM
Thank you, @craigsilverman.bsky.social, for including Code Like a Journalist in your newsletter!

👉 www.code-like-a-journalist.com
May 12, 2025 at 5:19 PM
Reposted by Nael Shiab
🏠 Canada’s rental crisis

CBC News

Finalist – Best Digital Editorial Package, Large at the 2025 Digital Publishing Awards

Well done to senior producers @naelshiab.bsky.social @alexmigdal.bsky.social and the team!

🔗 zurl.co/h0Rff

#DigitalPublishingAwards #DPA25
May 6, 2025 at 3:06 PM
Wow! 🤩
📊 Where can you afford to rent?

CBC News Labs

Finalist – Best Data Journalism at the 2025 Digital Publishing Awards

Congrats to @naelshiab.bsky.social and the CBC News Labs team!

🔗 zurl.co/a3KGr

#DigitalPublishingAwards #DPA25
May 6, 2025 at 3:11 PM