Tags:
-
Jan 7, 2015
More ChromeOS shenanigans...
-
Dec 30, 2014
Script to run on wake.
-
Jan 7, 2015
More ChromeOS shenanigans...
-
Dec 30, 2014
Script to run on wake.
-
Oct 14, 2015
HackMcGill's inaugural post is up on Medium.
-
Aug 31, 2025
Ignore all previous instructions.
-
Nov 3, 2015
URL hacking to get unlimited Wi-Fi at a Boingo HotSpot at JFK.
-
Nov 3, 2015
URL hacking to get unlimited Wi-Fi at a Boingo HotSpot at JFK.
-
Dec 14, 2015
An exercise in yak-shaving.
-
Dec 21, 2025
Turning an HLS stream into an MP4 using browser tools and ffmpeg.
-
Dec 14, 2015
An exercise in yak-shaving.
-
May 18, 2016
Building a compiler for a small domain-specific language in Haskell with Parsec, for a university compilers course.
-
May 18, 2016
Building a compiler for a small domain-specific language in Haskell with Parsec, for a university compilers course.
-
Mar 1, 2017
Some notes on automata theory.
-
May 18, 2016
Building a compiler for a small domain-specific language in Haskell with Parsec, for a university compilers course.
-
May 18, 2016
Building a compiler for a small domain-specific language in Haskell with Parsec, for a university compilers course.
-
Mar 1, 2017
Some notes on automata theory.
-
Mar 1, 2017
Some notes on automata theory.
-
Mar 1, 2017
Some notes on automata theory.
-
Jul 3, 2017
Why C makes me appreciate the other things in life.
-
Jul 3, 2017
Why C makes me appreciate the other things in life.
-
Jul 3, 2017
Why C makes me appreciate the other things in life.
-
Jul 3, 2017
Why C makes me appreciate the other things in life.
-
Jul 14, 2017
Get user feedback through Google Forms.
-
Jul 14, 2017
Get user feedback through Google Forms.
-
Apr 21, 2021
Chrome extension to prevent FLoC ad-targeting code from running in Chrome.
-
Jul 14, 2017
Get user feedback through Google Forms.
-
Jul 26, 2018
Examining browser-based user consent using WebRTC as a case study.
-
Mar 25, 2026
My talk at Global Privacy Leaders Summit @ RSA 2026 on why privacy leadership roles are changing, and why that's a good thing.
-
Jan 26, 2024
The 5 privacy engineer archetypes hired by companies.
-
Dec 2, 2023
My essay from the Meatspace Press book 'Eaten by the Internet'.
-
Sep 15, 2023
Annual conference on privacy engineering.
-
Jul 26, 2018
Examining browser-based user consent using WebRTC as a case study.
-
Jul 26, 2018
Examining browser-based user consent using WebRTC as a case study.
-
Jul 30, 2018
Short rant on how cool radios are, inspired by the book All The Light We Cannot See.
-
Jul 30, 2018
Short rant on how cool radios are, inspired by the book All The Light We Cannot See.
-
Jul 30, 2018
Short rant on how cool radios are, inspired by the book All The Light We Cannot See.
-
Jan 2, 2026
Reflections on another year.
-
Dec 26, 2024
Reflections on the year.
-
Feb 4, 2019
This year was interesting.
-
Dec 2, 2023
My essay from the Meatspace Press book 'Eaten by the Internet'.
-
May 7, 2023
How CDNs use CNAMEs to automate certificate renewal.
-
Apr 16, 2023
Best Practices for doing domain verification using DNS.
-
Apr 26, 2021
Establishing the Protocol Police.
-
Apr 7, 2019
Recovering from IETF 104.
-
Feb 4, 2019
This year was interesting.
-
Apr 7, 2019
Recovering from IETF 104.
-
Mar 4, 2020
Mapping meaning to names is hard.
-
May 15, 2020
Arguably the most fundamental principle when it comes to automated contact tracing
-
May 8, 2020
Some musings on the differences between (assisted) contact tracing and exposure notification.
-
May 7, 2023
How CDNs use CNAMEs to automate certificate renewal.
-
Apr 16, 2023
Best Practices for doing domain verification using DNS.
-
Sep 2, 2020
Given a key or a certificate, how to generate a TLS pin for key-pinning purposes.
-
Sep 2, 2020
Given a key or a certificate, how to generate a TLS pin for key-pinning purposes.
-
Sep 2, 2020
Given a key or a certificate, how to generate a TLS pin for key-pinning purposes.
-
Sep 2, 2020
Given a key or a certificate, how to generate a TLS pin for key-pinning purposes.
-
Sep 2, 2020
Given a key or a certificate, how to generate a TLS pin for key-pinning purposes.
-
Feb 21, 2021
Have had this post on representing Sudoku puzzles as exact cover problems in my drafts for a long time.
-
Feb 21, 2021
Have had this post on representing Sudoku puzzles as exact cover problems in my drafts for a long time.
-
Feb 21, 2021
Have had this post on representing Sudoku puzzles as exact cover problems in my drafts for a long time.
-
Feb 21, 2021
Have had this post on representing Sudoku puzzles as exact cover problems in my drafts for a long time.
-
Feb 21, 2021
Have had this post on representing Sudoku puzzles as exact cover problems in my drafts for a long time.
-
Apr 21, 2021
Chrome extension to prevent FLoC ad-targeting code from running in Chrome.
-
Apr 20, 2026
Mozilla is experimenting with Brave's adblock engine, here's how to turn it on.
-
Dec 21, 2025
Turning an HLS stream into an MP4 using browser tools and ffmpeg.
-
Oct 19, 2025
There's no way to disable Comet leaking your entire browsing history to their backend.
-
Sep 1, 2025
How browsers protect against fingerprinting and how users can protect themselves.
-
Sep 1, 2025
The who, what, why and how of browser fingerprinting.
-
Aug 31, 2025
Ignore all previous instructions.
-
Apr 21, 2021
Chrome extension to prevent FLoC ad-targeting code from running in Chrome.
-
Apr 21, 2021
Fixing Jekyll architecture issues.
-
Apr 21, 2021
Fixing Jekyll architecture issues.
-
Apr 21, 2021
Fixing Jekyll architecture issues.
-
Apr 26, 2021
Establishing the Protocol Police.
-
Aug 5, 2023
Collecting records for our new record player.
-
Sep 15, 2023
Annual conference on privacy engineering.
-
Sep 15, 2023
Annual conference on privacy engineering.
-
Nov 30, 2023
Bye, Canada!
-
Nov 30, 2023
Bye, Canada!
-
Dec 2, 2023
My essay from the Meatspace Press book 'Eaten by the Internet'.
-
Dec 2, 2023
My essay from the Meatspace Press book 'Eaten by the Internet'.
-
Jan 26, 2024
The 5 privacy engineer archetypes hired by companies.
-
Aug 8, 2026
A review of Octavia Butler's Parable of the Sower, our latest book club read.
-
Jan 18, 2026
Spoiler-free review of The Correspondent, a novel I read and loved recently.
-
Oct 12, 2025
Yearn-maxxing in Before Sunrise and In The Mood for Love.
-
May 1, 2024
A review of Salman Rushdie's latest novel.
-
Jan 28, 2024
A review of 2012 film Valley of Saints set in Kashmir.
-
Oct 12, 2025
Yearn-maxxing in Before Sunrise and In The Mood for Love.
-
Jan 28, 2024
A review of 2012 film Valley of Saints set in Kashmir.
-
Aug 8, 2026
A review of Octavia Butler's Parable of the Sower, our latest book club read.
-
Jan 18, 2026
Spoiler-free review of The Correspondent, a novel I read and loved recently.
-
May 1, 2024
A review of Salman Rushdie's latest novel.
-
Aug 31, 2025
Ignore all previous instructions.
-
Apr 20, 2026
Mozilla is experimenting with Brave's adblock engine, here's how to turn it on.
-
Jan 5, 2026
Shaving off 45 MB in the Brave app via FlatBuffers and other perf optimizations.
-
Sep 1, 2025
How browsers protect against fingerprinting and how users can protect themselves.
-
Aug 31, 2025
Ignore all previous instructions.
-
Sep 1, 2025
How browsers protect against fingerprinting and how users can protect themselves.
-
Sep 1, 2025
The who, what, why and how of browser fingerprinting.
-
Jan 4, 2026
Preventing Claude Code from exhausting macOS process limits with a wrapper script.
-
Dec 30, 2025
Turn off Claude Code’s feedback questions using an env var.
-
Oct 16, 2025
Turning off Paste Bracketing in iTerm2. Update: looks like this was caused by Claude Code.
-
Oct 16, 2025
Turning off Paste Bracketing in iTerm2. Update: looks like this was caused by Claude Code.
-
Oct 19, 2025
There's no way to disable Comet leaking your entire browsing history to their backend.
-
Apr 20, 2026
Mozilla is experimenting with Brave's adblock engine, here's how to turn it on.
-
Jan 5, 2026
Shaving off 45 MB in the Brave app via FlatBuffers and other perf optimizations.
-
Oct 19, 2025
There's no way to disable Comet leaking your entire browsing history to their backend.
-
Jan 5, 2026
Shaving off 45 MB in the Brave app via FlatBuffers and other perf optimizations.
-
Jan 5, 2026
Shaving off 45 MB in the Brave app via FlatBuffers and other perf optimizations.
-
Feb 22, 2026
Combining the two things I love most.
-
Mar 25, 2026
My talk at Global Privacy Leaders Summit @ RSA 2026 on why privacy leadership roles are changing, and why that's a good thing.
-
Mar 25, 2026
My talk at Global Privacy Leaders Summit @ RSA 2026 on why privacy leadership roles are changing, and why that's a good thing.
-
Apr 20, 2026
Mozilla is experimenting with Brave's adblock engine, here's how to turn it on.