41554 blogs · [ { "id": "01a08790-4b31-7190-aedf-c1ba791dae69", "title": "Snowmen, Recruiters, and Terry Pratchett: The Web's HTTP Header Junk Drawer", "url": "https://jonlu.ca/posts/http-headers-top-1000", "published_at": "2026-05-30T19:33:57+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba79da833b", "title": "Smoothing the jagged frontier", "url": "https://jonlu.ca/posts/smoothing-the-jagged-frontier", "published_at": "2026-05-24T01:20:00+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba7a59b6fd", "title": "Vibecoding native apps has gotten really good", "url": "https://jonlu.ca/posts/vibecoding-native-apps", "published_at": "2026-02-02T03:34:03+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba7a64c851", "title": "Markets as the ultimate RL environment", "url": "https://jonlu.ca/posts/markets-are-the-ultimate-rl-environment", "published_at": "2025-12-13T23:58:52+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba7a8f8304", "title": "SkyCards, ground truth: reverse‑engineering a flight‑spotting game", "url": "https://jonlu.ca/posts/skycards", "published_at": "2025-09-12T01:50:21+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba7b54d473", "title": "Finding cool custom vanity CA license plates", "url": "https://jonlu.ca/posts/ca-plate-checker", "published_at": "2025-08-28T20:26:40+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba7bbfd84f", "title": "Optimizing AI Model Load Times", "url": "https://jonlu.ca/posts/optimizing-model-load-times", "published_at": "2025-05-03T22:28:40+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba7bcfed63", "title": "Noticing when an app is only hosted in us-east-1", "url": "https://jonlu.ca/posts/us-east-1-latency", "published_at": "2023-06-26T16:26:53+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba7cb37a2b", "title": "Exploring how Magic Link works", "url": "https://jonlu.ca/posts/magic-link", "published_at": "2023-05-31T00:53:42+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba7d19db61", "title": "Semantic search in iMessage, iMessage Wrapped, and AI conversations", "url": "https://jonlu.ca/posts/mimessage", "published_at": "2023-04-14T04:31:20+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba7dee143d", "title": "Getting a vanity phone number with 4 repeating digits", "url": "https://jonlu.ca/posts/verizon-rare-numbers", "published_at": "2022-05-28T22:06:28+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba7e1633db", "title": "Web3, Free Candy, and exploits galore", "url": "https://jonlu.ca/posts/candy-machine", "published_at": "2022-02-26T23:59:43+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba7e77eed1", "title": "Snapshotting memory to scrape encrypted network requests", "url": "https://jonlu.ca/posts/heap-snapshot-scraping", "published_at": "2021-08-08T21:06:09+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba7f58dfd3", "title": "JavaScript gotchas", "url": "https://jonlu.ca/posts/javascript-facts", "published_at": "2021-07-18T13:18:39+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba7fc32450", "title": "Writing fast async HTTP requests in Python", "url": "https://jonlu.ca/posts/async-python-http", "published_at": "2021-06-15T03:02:29+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba80088f72", "title": "A boilerplate for SSR'd Vite, React 17, and TypeScript 4.3", "url": "https://jonlu.ca/posts/vite", "published_at": "2021-05-16T16:49:29+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba8098014c", "title": "How to redeem $2000 of HNS for being a FOSS developer", "url": "https://jonlu.ca/posts/hns-airdrop", "published_at": "2021-05-09T21:22:33+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba814822de", "title": "Fun VPN tricks due to Apple owning all of 17.X.X.X", "url": "https://jonlu.ca/posts/apple-wifi", "published_at": "2021-03-12T16:03:51+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba81495bba", "title": "What is tax loss harvesting?", "url": "https://jonlu.ca/posts/tax-loss-harvesting", "published_at": "2021-03-11T00:39:59+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba81892971", "title": "Zoh-no Zogo: Manufacturing pineapples (and cash) with Burp Suite", "url": "https://jonlu.ca/posts/zogo-zono", "published_at": "2021-01-20T01:55:59+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba81c2a79d", "title": "Setting up Matomo in such a way to bypass adblockers", "url": "https://jonlu.ca/posts/matomo-bypass", "published_at": "2020-12-17T19:10:04+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba828d21bd", "title": "Unlimited free WiFi on flights with T-Mobile", "url": "https://jonlu.ca/posts/tmobile-wifi", "published_at": "2020-11-29T12:12:29+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba8304e28e", "title": "Habitat 2020 - Coliving during COVID", "url": "https://jonlu.ca/posts/habitat", "published_at": "2020-10-31T21:06:30+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba832d3f3e", "title": "American Airlines is an e-currency company that happens to own some planes", "url": "https://jonlu.ca/posts/american-airlines", "published_at": "2020-09-06T20:09:56+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba8394c464", "title": "Thoughts on user growth and product", "url": "https://jonlu.ca/posts/thoughts-on-product", "published_at": "2020-08-30T00:51:20+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba845917a5", "title": "Reversing Lyft's ride history API to analyze 6 years worth of rides", "url": "https://jonlu.ca/posts/reversing-lyft", "published_at": "2020-07-03T23:20:34+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba84e5379b", "title": "How the Nintendo Switch prevents downgrades by irreparably blowing its own fuses", "url": "https://jonlu.ca/posts/nintendo-switch", "published_at": "2020-06-14T20:36:09+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba85e2e444", "title": "Promise.all vs Promise.allSettled in JavaScript", "url": "https://jonlu.ca/posts/promises", "published_at": "2020-05-14T16:50:44+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba8626ee1d", "title": "Goodreads has a time to first byte of nearly 5 seconds", "url": "https://jonlu.ca/posts/goodreads", "published_at": "2020-05-01T06:45:21+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba86cc5335", "title": "Re-enabling context actions on websites", "url": "https://jonlu.ca/posts/reallowing-context", "published_at": "2020-04-01T05:25:40+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba87614beb", "title": "How much space would it take to store every word ever said?", "url": "https://jonlu.ca/posts/word-storage", "published_at": "2020-02-09T20:23:47+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba877a921d", "title": "The hidden value of automation in programming comes from saving mental context switches", "url": "https://jonlu.ca/posts/context-switches", "published_at": "2020-01-18T23:21:31+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba88388c1b", "title": "2019 Travel in Review - 52,848 miles, 137 hours, and 40 flights", "url": "https://jonlu.ca/posts/year-review", "published_at": "2019-12-24T13:17:28+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba88f47131", "title": "Flight stats, entertainment, and trying to crack widevine", "url": "https://jonlu.ca/posts/aa-tracker", "published_at": "2019-12-22T17:18:51+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba898d4b81", "title": "Email authentication: SPF, DKIM and DMARC out in the wild", "url": "https://jonlu.ca/posts/spf-dkim", "published_at": "2019-11-30T02:26:11+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba898e3324", "title": "Reversing private APIs, Safeway, and not-so-extreme couponing", "url": "https://jonlu.ca/posts/safeway", "published_at": "2019-10-12T17:16:27+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba89cca452", "title": "Ember.js, Dr. Carvers Shave Butter, and disappearing products", "url": "https://jonlu.ca/posts/dsc-products", "published_at": "2019-09-08T00:10:04+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba8a2a733c", "title": "An analysis of activity on /r/churning", "url": "https://jonlu.ca/posts/churning-stats", "published_at": "2019-08-31T22:49:35+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba8a9b9ab3", "title": "Compensation in 2019 new grad tech offers", "url": "https://jonlu.ca/posts/tech-offers", "published_at": "2019-07-29T02:48:00+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba8b93bbbe", "title": "Useful shell aliases and functions", "url": "https://jonlu.ca/posts/shell-shortcuts", "published_at": "2019-06-30T01:55:46+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba8be18eca", "title": "What's better - a broken clock or a clock that's always 5 minutes off?", "url": "https://jonlu.ca/posts/clock", "published_at": "2019-06-02T06:23:55+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba8c09a6ea", "title": "Around the world in business class: ANA RTW in J", "url": "https://jonlu.ca/posts/ana-rtw", "published_at": "2019-05-09T04:49:13+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba8ca72871", "title": "Identifying non-default global variables in JavaScript", "url": "https://jonlu.ca/posts/window-vars", "published_at": "2019-04-01T01:22:31+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba8d44a05c", "title": "Experiments, growth engineering, and the perils of not disguising your API routes: Part 1", "url": "https://jonlu.ca/posts/experiments-and-growth-hacking", "published_at": "2019-02-23T20:16:46+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba8d90f43a", "title": "Obfuscated javascript, scam emails, and American Express", "url": "https://jonlu.ca/posts/deobfuscating-amex-scammer", "published_at": "2019-02-02T21:49:14+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba8e0d1afe", "title": "Class schedules, a cease and desist from Viacom, and accidental monetization", "url": "https://jonlu.ca/posts/accidental-monetization", "published_at": "2019-01-29T03:57:33+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba8e209813", "title": "Uber, statistics, and a chrome extension", "url": "https://jonlu.ca/posts/uber-stats", "published_at": "2018-12-22T15:39:48+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba8e8d33cc", "title": "Ryanair, Hamiltonian Cycles, and using graph theory to find cheap flights", "url": "https://jonlu.ca/posts/ryan-air", "published_at": "2018-11-23T21:14:51+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba8f60a169", "title": "An introduction to credit card churning", "url": "https://jonlu.ca/posts/churning-primer", "published_at": "2018-11-11T17:11:41+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba8fe25c7e", "title": "Making high-fidelity audio sound like it came through the phone", "url": "https://jonlu.ca/posts/phone-calls", "published_at": "2018-10-29T01:17:38+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba9095fd21", "title": "Illegal streams, decrypting m3u8's, and building a better stream experience", "url": "https://jonlu.ca/posts/illegal-streams", "published_at": "2018-09-22T15:14:32+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba90d6d2d0", "title": "Leaky vs punch-through abstractions", "url": "https://jonlu.ca/posts/leaky-abstractions", "published_at": "2018-08-04T18:07:47+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba917f27c3", "title": "The Federalist Papers: author identification through K-means clustering", "url": "https://jonlu.ca/posts/the-federalist-papers-author-identification-through-k-means-clustering", "published_at": "2018-07-08T02:06:19+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba91da2618", "title": "The rise of megathreads on reddit", "url": "https://jonlu.ca/posts/the-rise-of-megathreads-on-reddit", "published_at": "2018-06-07T02:06:43+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba92673d9f", "title": "Speeding up zsh and Oh-My-Zsh", "url": "https://jonlu.ca/posts/speeding-up-zsh", "published_at": "2018-05-16T18:43:26+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba9315fb47", "title": "Old code is institutional knowledge", "url": "https://jonlu.ca/posts/old-code-is-institutional-knowledge", "published_at": "2018-04-26T14:55:06+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba935b8652", "title": "On USC's CSCI-350 (Operating Systems)", "url": "https://jonlu.ca/posts/on-uscs-csci-350-operating-systems", "published_at": "2018-04-24T03:10:25+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba93b4093a", "title": "Disambiguating language type systems", "url": "https://jonlu.ca/posts/disambiguating-type-systems", "published_at": "2018-04-19T18:18:17+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba944ad502", "title": "Information and economies of scale", "url": "https://jonlu.ca/posts/information", "published_at": "2018-04-16T16:52:00+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba9470800e", "title": "Words per minute is not a good measure of typing speed", "url": "https://jonlu.ca/posts/wpm", "published_at": "2018-04-15T20:48:35+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba954c07ac", "title": "Why does this blog exist?", "url": "https://jonlu.ca/posts/why-does-this-exist", "published_at": "2018-04-15T19:00:00+00:00" }, { "id": "01a08790-4b31-7190-aedf-c1ba961061f6", "title": "10x Performance Increases: Optimizing a Static Site", "url": "https://jonlu.ca/posts/optimizing-a-static-site", "published_at": "2018-03-16T19:00:00+00:00" } ] posts Claim your blog
Back to jonlu.ca
Blog · corpus.blog/blogs/jonlu.ca/posts

jonlu.ca

jonlu.ca

2026

2025

2023

2022

2021

2020

2019

2018