<?xml version="1.0" encoding="UTF-8" ?>
  <rss version="2.0">
    <channel>
        <title>JonLuca's Blog</title>
        <link>https://blog.jonlu.ca</link>
        <description>This is my blog RSS feed</description>
        <item>
          <title>Vibecoding native apps has gotten really good</title>
          <link>https://blog.jonlu.ca/posts/vibecoding-native-apps</link>
          <description></description>
          <pubDate>Mon, 02 Feb 2026 03:34:03 GMT</pubDate>
        </item>
<item>
          <title>SkyCards, ground truth: reverse‑engineering a flight‑spotting game</title>
          <link>https://blog.jonlu.ca/posts/skycards</link>
          <description></description>
          <pubDate>Fri, 12 Sep 2025 01:50:21 GMT</pubDate>
        </item>
<item>
          <title>Finding cool custom vanity CA license plates</title>
          <link>https://blog.jonlu.ca/posts/ca-plate-checker</link>
          <description></description>
          <pubDate>Thu, 28 Aug 2025 20:26:40 GMT</pubDate>
        </item>
<item>
          <title>Optimizing AI Model Load Times</title>
          <link>https://blog.jonlu.ca/posts/optimizing-model-load-times</link>
          <description></description>
          <pubDate>Sat, 03 May 2025 22:28:40 GMT</pubDate>
        </item>
<item>
          <title>Noticing when an app is only hosted in us-east-1</title>
          <link>https://blog.jonlu.ca/posts/us-east-1-latency</link>
          <description></description>
          <pubDate>Mon, 26 Jun 2023 16:26:53 GMT</pubDate>
        </item>
<item>
          <title>Exploring how Magic Link works</title>
          <link>https://blog.jonlu.ca/posts/magic-link</link>
          <description></description>
          <pubDate>Wed, 31 May 2023 00:53:42 GMT</pubDate>
        </item>
<item>
          <title>Semantic search in iMessage, iMessage Wrapped, and AI conversations</title>
          <link>https://blog.jonlu.ca/posts/mimessage</link>
          <description></description>
          <pubDate>Fri, 14 Apr 2023 04:31:20 GMT</pubDate>
        </item>
<item>
          <title>Getting a vanity phone number with 4 repeating digits</title>
          <link>https://blog.jonlu.ca/posts/verizon-rare-numbers</link>
          <description></description>
          <pubDate>Sat, 28 May 2022 15:06:28 GMT</pubDate>
        </item>
<item>
          <title>Web3, Free Candy, and exploits galore</title>
          <link>https://blog.jonlu.ca/posts/candy-machine</link>
          <description></description>
          <pubDate>Sat, 26 Feb 2022 23:59:43 GMT</pubDate>
        </item>
<item>
          <title>Snapshotting memory to scrape encrypted network requests</title>
          <link>https://blog.jonlu.ca/posts/heap-snapshot-scraping</link>
          <description></description>
          <pubDate>Sun, 08 Aug 2021 14:06:09 GMT</pubDate>
        </item>
<item>
          <title>JavaScript gotchas</title>
          <link>https://blog.jonlu.ca/posts/javascript-facts</link>
          <description></description>
          <pubDate>Sun, 18 Jul 2021 13:18:39 GMT</pubDate>
        </item>
<item>
          <title>Writing fast async HTTP requests in Python</title>
          <link>https://blog.jonlu.ca/posts/async-python-http</link>
          <description></description>
          <pubDate>Tue, 15 Jun 2021 03:02:29 GMT</pubDate>
        </item>
<item>
          <title>A boilerplate for SSR'd Vite, React 17, and TypeScript 4.3</title>
          <link>https://blog.jonlu.ca/posts/vite</link>
          <description></description>
          <pubDate>Sun, 16 May 2021 16:49:29 GMT</pubDate>
        </item>
<item>
          <title>How to redeem $2000 of HNS for being a FOSS developer</title>
          <link>https://blog.jonlu.ca/posts/hns-airdrop</link>
          <description></description>
          <pubDate>Sun, 09 May 2021 21:22:33 GMT</pubDate>
        </item>
<item>
          <title>Fun VPN tricks due to Apple owning all of 17.X.X.X</title>
          <link>https://blog.jonlu.ca/posts/apple-wifi</link>
          <description></description>
          <pubDate>Fri, 12 Mar 2021 16:03:51 GMT</pubDate>
        </item>
<item>
          <title>What is tax loss harvesting?</title>
          <link>https://blog.jonlu.ca/posts/tax-loss-harvesting</link>
          <description></description>
          <pubDate>Thu, 11 Mar 2021 00:39:59 GMT</pubDate>
        </item>
<item>
          <title>Zoh-no Zogo: Manufacturing pineapples (and cash) with Burp Suite</title>
          <link>https://blog.jonlu.ca/posts/zogo-zono</link>
          <description></description>
          <pubDate>Wed, 20 Jan 2021 01:55:59 GMT</pubDate>
        </item>
<item>
          <title>Setting up Matomo in such a way to bypass adblockers</title>
          <link>https://blog.jonlu.ca/posts/matomo-bypass</link>
          <description></description>
          <pubDate>Thu, 17 Dec 2020 19:10:04 GMT</pubDate>
        </item>
<item>
          <title>Unlimited free WiFi on flights with T-Mobile</title>
          <link>https://blog.jonlu.ca/posts/tmobile-wifi</link>
          <description></description>
          <pubDate>Sun, 29 Nov 2020 12:12:29 GMT</pubDate>
        </item>
<item>
          <title>Habitat 2020 - Coliving during COVID</title>
          <link>https://blog.jonlu.ca/posts/habitat</link>
          <description></description>
          <pubDate>Sat, 31 Oct 2020 21:06:30 GMT</pubDate>
        </item>
<item>
          <title>American Airlines is an e-currency company that happens to own some planes</title>
          <link>https://blog.jonlu.ca/posts/american-airlines</link>
          <description></description>
          <pubDate>Sun, 06 Sep 2020 20:09:56 GMT</pubDate>
        </item>
<item>
          <title>Thoughts on user growth and product</title>
          <link>https://blog.jonlu.ca/posts/thoughts-on-product</link>
          <description></description>
          <pubDate>Sun, 30 Aug 2020 00:51:20 GMT</pubDate>
        </item>
<item>
          <title>Reversing Lyft's ride history API to analyze 6 years worth of rides</title>
          <link>https://blog.jonlu.ca/posts/reversing-lyft</link>
          <description></description>
          <pubDate>Fri, 03 Jul 2020 23:20:34 GMT</pubDate>
        </item>
<item>
          <title>How the Nintendo Switch prevents downgrades by irreparably blowing its own fuses</title>
          <link>https://blog.jonlu.ca/posts/nintendo-switch</link>
          <description></description>
          <pubDate>Sun, 14 Jun 2020 20:36:09 GMT</pubDate>
        </item>
<item>
          <title>Promise.all vs Promise.allSettled in JavaScript</title>
          <link>https://blog.jonlu.ca/posts/promises</link>
          <description></description>
          <pubDate>Thu, 14 May 2020 16:50:44 GMT</pubDate>
        </item>
<item>
          <title>Goodreads has a time to first byte of nearly 5 seconds</title>
          <link>https://blog.jonlu.ca/posts/goodreads</link>
          <description></description>
          <pubDate>Fri, 01 May 2020 06:45:21 GMT</pubDate>
        </item>
<item>
          <title>Re-enabling context actions on websites</title>
          <link>https://blog.jonlu.ca/posts/reallowing-context</link>
          <description></description>
          <pubDate>Wed, 01 Apr 2020 05:25:40 GMT</pubDate>
        </item>
<item>
          <title>How much space would it take to store every word ever said?</title>
          <link>https://blog.jonlu.ca/posts/word-storage</link>
          <description></description>
          <pubDate>Sun, 09 Feb 2020 20:23:47 GMT</pubDate>
        </item>
<item>
          <title>The hidden value of automation in programming comes from saving mental context switches</title>
          <link>https://blog.jonlu.ca/posts/context-switches</link>
          <description></description>
          <pubDate>Sat, 18 Jan 2020 23:21:31 GMT</pubDate>
        </item>
<item>
          <title>2019 Travel in Review - 52,848 miles, 137 hours, and 40 flights</title>
          <link>https://blog.jonlu.ca/posts/year-review</link>
          <description></description>
          <pubDate>Tue, 24 Dec 2019 13:17:28 GMT</pubDate>
        </item>
<item>
          <title>Flight stats, entertainment, and trying to crack widevine</title>
          <link>https://blog.jonlu.ca/posts/aa-tracker</link>
          <description></description>
          <pubDate>Sun, 22 Dec 2019 17:18:51 GMT</pubDate>
        </item>
<item>
          <title>Email authentication: SPF, DKIM and DMARC out in the wild</title>
          <link>https://blog.jonlu.ca/posts/spf-dkim</link>
          <description></description>
          <pubDate>Sat, 30 Nov 2019 02:26:11 GMT</pubDate>
        </item>
<item>
          <title>Reversing private APIs, Safeway, and not-so-extreme couponing</title>
          <link>https://blog.jonlu.ca/posts/safeway</link>
          <description></description>
          <pubDate>Sat, 12 Oct 2019 17:16:27 GMT</pubDate>
        </item>
<item>
          <title>Ember.js, Dr. Carvers Shave Butter, and disappearing products</title>
          <link>https://blog.jonlu.ca/posts/dsc-products</link>
          <description></description>
          <pubDate>Sun, 08 Sep 2019 00:10:04 GMT</pubDate>
        </item>
<item>
          <title>An analysis of activity on /r/churning</title>
          <link>https://blog.jonlu.ca/posts/churning-stats</link>
          <description></description>
          <pubDate>Sat, 31 Aug 2019 22:49:35 GMT</pubDate>
        </item>
<item>
          <title>Compensation in 2019 new grad tech offers</title>
          <link>https://blog.jonlu.ca/posts/tech-offers</link>
          <description></description>
          <pubDate>Mon, 29 Jul 2019 02:48:00 GMT</pubDate>
        </item>
<item>
          <title>Useful shell aliases and functions</title>
          <link>https://blog.jonlu.ca/posts/shell-shortcuts</link>
          <description></description>
          <pubDate>Sun, 30 Jun 2019 01:55:46 GMT</pubDate>
        </item>
<item>
          <title>What's better - a broken clock or a clock that's always 5 minutes off?</title>
          <link>https://blog.jonlu.ca/posts/clock</link>
          <description></description>
          <pubDate>Sun, 02 Jun 2019 06:23:55 GMT</pubDate>
        </item>
<item>
          <title>Around the world in business class: ANA RTW in J</title>
          <link>https://blog.jonlu.ca/posts/ana-rtw</link>
          <description></description>
          <pubDate>Thu, 09 May 2019 04:49:13 GMT</pubDate>
        </item>
<item>
          <title>Identifying non-default global variables in JavaScript</title>
          <link>https://blog.jonlu.ca/posts/window-vars</link>
          <description></description>
          <pubDate>Mon, 01 Apr 2019 01:22:31 GMT</pubDate>
        </item>
<item>
          <title>Experiments, growth engineering, and the perils of not disguising your API routes: Part 1</title>
          <link>https://blog.jonlu.ca/posts/experiments-and-growth-hacking</link>
          <description></description>
          <pubDate>Sat, 23 Feb 2019 20:16:46 GMT</pubDate>
        </item>
<item>
          <title>Obfuscated javascript, scam emails, and American Express</title>
          <link>https://blog.jonlu.ca/posts/deobfuscating-amex-scammer</link>
          <description></description>
          <pubDate>Sat, 02 Feb 2019 21:49:14 GMT</pubDate>
        </item>
<item>
          <title>Class schedules, a cease and desist from Viacom, and accidental monetization</title>
          <link>https://blog.jonlu.ca/posts/accidental-monetization</link>
          <description></description>
          <pubDate>Tue, 29 Jan 2019 03:57:33 GMT</pubDate>
        </item>
<item>
          <title>Uber, statistics, and a chrome extension</title>
          <link>https://blog.jonlu.ca/posts/uber-stats</link>
          <description></description>
          <pubDate>Sat, 22 Dec 2018 15:39:48 GMT</pubDate>
        </item>
<item>
          <title>Ryanair, Hamiltonian Cycles, and using graph theory to find cheap flights</title>
          <link>https://blog.jonlu.ca/posts/ryan-air</link>
          <description></description>
          <pubDate>Fri, 23 Nov 2018 21:14:51 GMT</pubDate>
        </item>
<item>
          <title>An introduction to credit card churning</title>
          <link>https://blog.jonlu.ca/posts/churning-primer</link>
          <description></description>
          <pubDate>Sun, 11 Nov 2018 17:11:41 GMT</pubDate>
        </item>
<item>
          <title>Making high-fidelity audio sound like it came through the phone</title>
          <link>https://blog.jonlu.ca/posts/phone-calls</link>
          <description></description>
          <pubDate>Mon, 29 Oct 2018 01:17:38 GMT</pubDate>
        </item>
<item>
          <title>Illegal streams, decrypting m3u8's, and building a better stream experience</title>
          <link>https://blog.jonlu.ca/posts/illegal-streams</link>
          <description></description>
          <pubDate>Sat, 22 Sep 2018 15:14:32 GMT</pubDate>
        </item>
<item>
          <title>Leaky vs punch-through abstractions</title>
          <link>https://blog.jonlu.ca/posts/leaky-abstractions</link>
          <description></description>
          <pubDate>Sat, 04 Aug 2018 18:07:47 GMT</pubDate>
        </item>
<item>
          <title>The Federalist Papers: author identification through K-means clustering</title>
          <link>https://blog.jonlu.ca/posts/the-federalist-papers-author-identification-through-k-means-clustering</link>
          <description></description>
          <pubDate>Sun, 08 Jul 2018 02:06:19 GMT</pubDate>
        </item>
<item>
          <title>The rise of megathreads on reddit</title>
          <link>https://blog.jonlu.ca/posts/the-rise-of-megathreads-on-reddit</link>
          <description></description>
          <pubDate>Thu, 07 Jun 2018 02:06:43 GMT</pubDate>
        </item>
<item>
          <title>Speeding up zsh and Oh-My-Zsh</title>
          <link>https://blog.jonlu.ca/posts/speeding-up-zsh</link>
          <description></description>
          <pubDate>Wed, 16 May 2018 18:43:26 GMT</pubDate>
        </item>
<item>
          <title>Old code is institutional knowledge</title>
          <link>https://blog.jonlu.ca/posts/old-code-is-institutional-knowledge</link>
          <description></description>
          <pubDate>Thu, 26 Apr 2018 14:55:06 GMT</pubDate>
        </item>
<item>
          <title>On USC's CSCI-350 (Operating Systems)</title>
          <link>https://blog.jonlu.ca/posts/on-uscs-csci-350-operating-systems</link>
          <description></description>
          <pubDate>Tue, 24 Apr 2018 03:10:25 GMT</pubDate>
        </item>
<item>
          <title>Disambiguating language type systems</title>
          <link>https://blog.jonlu.ca/posts/disambiguating-type-systems</link>
          <description></description>
          <pubDate>Thu, 19 Apr 2018 18:18:17 GMT</pubDate>
        </item>
<item>
          <title>Information and economies of scale</title>
          <link>https://blog.jonlu.ca/posts/information</link>
          <description></description>
          <pubDate>Mon, 16 Apr 2018 16:52:00 GMT</pubDate>
        </item>
<item>
          <title>Words per minute is not a good measure of typing speed</title>
          <link>https://blog.jonlu.ca/posts/wpm</link>
          <description></description>
          <pubDate>Sun, 15 Apr 2018 20:48:35 GMT</pubDate>
        </item>
<item>
          <title>Why does this blog exist?</title>
          <link>https://blog.jonlu.ca/posts/why-does-this-exist</link>
          <description></description>
          <pubDate>Sun, 15 Apr 2018 19:00:00 GMT</pubDate>
        </item>
<item>
          <title>10x Performance Increases: Optimizing a Static Site</title>
          <link>https://blog.jonlu.ca/posts/optimizing-a-static-site</link>
          <description></description>
          <pubDate>Fri, 16 Mar 2018 19:00:00 GMT</pubDate>
        </item>
    </channel>
  </rss>