-
Trust issues
My essay from the book 'Eaten by the Internet'. -
Vancouver 🇨🇦 → San Francisco 🌉
Bye, Canada! -
USENIX PEPR 2023 🌶️
Annual conference on privacy engineering. -
Vinyl
Collecting records for our new record player. -
Delegated Domain Verification
How CDNs use CNAMEs to automate certificate renewal. -
Domain Verification using DNS
Best Practices for doing domain verification using DNS. -
April 1, 2021 RFC
🚨 Establishing the Protocol Police. -
Running Jekyll locally on MacBook M1
Fixing Jekyll architecture issues. -
FLoCBlock
Chrome extension to prevent FLoC ad-targeting code from running in Chrome. -
Solving Sudoku using Knuth's Algorithm X
Have had this post on representing Sudoku puzzles as exact cover problems in my drafts for a long time. -
How to generate a TLS pin from a key or certificate
Given a key or a certificate, how to generate a TLS pin for key-pinning purposes. -
Consent in Contact Tracing
Arguably the most fundamental principle when it comes to automated contact tracing -
Contact Tracing vs. Exposure Notification
Some musings on the differences between (assisted) contact tracing and exposure notification. -
Naming map variables
Mapping meaning to names is hard. -
Keeping in touch
Current strategy for keeping in touch with friends & family. -
PEARG at IETF 104
Recovering from IETF 104. -
2018 - a review
This year was interesting. -
Radio
Short rant on radios. -
Privacy and consent in the age of browsers: The question of WebRTC
Examining browser-based user consent using WebRTC as a case study. -
Ethereum scam on Brian Acton's #deletefacebook tweet
A scammer impersonating Brian Acton posted an 'Ethereum giveaway' on his #deletefacebook tweet. -
How to figure out why users hate your Chrome Extension
Get user feedback through Google Forms. -
Zero-length arrays in C have to go at the end of the struct
Why C makes me appreciate the other things in life. -
Brief intro to NFA, DFA and regexes
Some notes on automata theory. -
TheNews
Read the latest headline every time you open a new tab. -
Typewriter
Generate pretty typewriter-style images from text. -
'Clean your desk' : My Amazon interview experience
The normalization of privacy violation. -
Redirect loops and Wi-Fi login pages: Getting around VIA Rail's stupid network configuration
Spoofing MAC addresses for fun and profit. -
git fresh
Git alias to quickly start developing new feature. -
Writing a compiler for a DSL in Haskell using Parsec
This winter, I took Compiler Design with Prof Laurie Hendren.
-
Markdown to PDF in Vim
An exercise in yak-shaving. -
Boingo HotSpot security loophole
URL hacking to get unlimited Wi-Fi at a Boingo HotSpot at JFK. -
HackMcGill
I recently published HackMcGill’s inaugural post on Medium. Check it out!.
-
Finding min and max in MongoDB with null fields
Command to look for the minimum value for a field in MongoDB. -
aliasify
Tiny script to automate bash alias. -
PrettyPrintGmail
Chrome extension that adds a bunch of print tools to Gmail. -
FrontPageOfScience
Chrome extension that changes New Tab page to show news. -
Authentication Certificate Rejected Locally error while trying to connect to wifi on Chromebook
Enterprise wifi, ugh. -
HashMaps
Chrome extension to search Google Maps from your address bar. -
Running a script in ChromeOS
More ChromeOS shenanigans... -
Editing Read-Only files on Chromebook
Hacking around Chromebook's restrictions. -
Running Chrome Remote Desktop service on waking up host
Script to run on wake. -
Sending email from your McGill email using Gmail
Say goodbye to Outlook. -
Connecting to a Linux box using Chrome Remote Desktop
Chromebooks as thin clients. -
How to install Tuareg Mode on Emacs without needing a hair transplant
Emacs is kinda cool. -
New Post script
Automating blog post creation.