commit 76bf1942b7db7e49940ee8c546b2684dd7739b00
parent be21ae92cff204b38b193a39444a92c549826b5d
Author: Andrew Laack <andrew.laack@imbue.com>
Date: Sat, 4 Oct 2025 18:11:17 -0500
Wrote blog post about privacy
Diffstat:
5 files changed, 183 insertions(+), 8 deletions(-)
diff --git a/posts/entries/adnauseum-track-me-not-and-privacy-through-obscurity.md b/posts/entries/adnauseum-track-me-not-and-privacy-through-obscurity.md
@@ -0,0 +1,81 @@
+# AdNauseum, Track Me Not, and Privacy Through Obscurity
+
+## Date: 2025/10/4
+
+## Context
+
+AdNauseum [1] is a fork of uBlock Origin [2] that hides ads, clicks them in the background, and aggregates the clicked ads in an easy to view interface. The key difference between UBlock Origin and AdNauseum is AdNauseum both hides and clicks ads.
+
+Track Me Not [3] is a browser extension that mimics human search queries to obscure real queries in the noise.
+
+## Usability
+
+AdNauseum is as effective as uBlock Origin at hiding advertisements. For a user, there is no trade off in the usability of the web when compared with uBlock Origin. This is nice because more restrictive approaches to privacy, like GNU IceCat [4] and Tor [5], hinder modern web usage.
+
+Similarly, Track Me Not has almost no impact on the usability of the web. I say almost no because the traffic it generates likely increases the probability of being shown CAPTCHAs, given that the traffic it generates is likely distributionally different than normal traffic.
+
+## Effectiveness at Improving Privacy
+
+AdNauseum is likely worse at protecting your privacy than UBlock Origin. By clicking ads in the background, there is an inherent trail of where you have been. In some ways this trail exists the moment the ad network sells the ad you are shown, but by using a more obscure technology than UBlock Origin, you are more likely to be fingerprinted. Despite this, AdNauseum makes the modern web a better experience to use than not having an ad blocker.
+
+Track Me Not may also hinder privacy, depending on your privacy goals. The inherent problem is it is phoning home to search engines over time, giving them information about where you are. Search providers are also likely to fingerprint you on the basis of these strange searches. The possible saving grace is that by having so much noise in your search history, it could difficult to figure out what you are interested in. I am uncertain about the value of this though as there are likely going to be two search distributions; Track Me Not's, and yours. This allows sophisticated search providers to ignore the synthetic requests and track your real requests while also gaining real time IP information.
+
+In short, I find the idea that these tools improve privacy to be dubious.
+
+## Why You Still Might Want to Use Them
+
+The value of these tools is they are a form of active resistance against ads and tracking. While your privacy is likely hindered by them, you are sending a message. That message costs ad networks and search providers money. In the case of AdNauseum, clicks are expensive for advertisers because most people ignore ads, and Track Me Not imposes computational costs on search providers. Even so, by clicking on so many ads ad networks may catch on and stop charging as much per click. Similarly, search providers may block you or start giving CAPTCHAs which likely impose less computational costs on them than running a query.
+
+## My Thoughts
+
+You probably shouldn't be using them. While I enjoy active resistance, this is unlikely to be the right way to do it. It may mess with their knowledge about you if they are not sophisticated, but any sophisticated search provider or ad network, which I think most of them are, will easily sus out inauthentic traffic and gain more information about you as a result.
+
+Instead of using these tools, I recommend doing the following to improve privacy:
+
+- Use Tor when possible
+- Avoid sites that require signing in
+- Don't use social media
+- Use a privacy respecting browser
+- Use UBlock Origin
+- Use a Pi-hole [6] and privacy respecting DNS servers
+- Minimize your usage of search engines
+- Use a variety of privacy respecting search engines
+- Use local AI tools (if you must use any at all)
+- Use E2EE messaging when possible
+- Minimize the trackability of financial transactions
+- Don't carry a phone and minimize your usage of it
+- Avoid proprietary software and software that collects data
+
+This results in me doing the following:
+
+- Using Tor for most of my traffic
+- Avoiding sites that require signing in
+- Not using social media sites
+- Using LibreWolf [7] as my default non-Tor browser
+- Routing all non-Tor DNS requests through a self-hosted Pi-hole with additional domain filtering
+- Using DuckDuckGo and a variety of public SearX instances for search
+- Running Ollama [8] models locally
+- Preferring communication with PGP encrypted emails, Matrix, or Signal
+- Using cash or Monero when possible for transactions
+- Not carrying my phone with me and only using it when it is the only means of achieving a specific goal (ie. SMS 2FA, communication with certain individuals, etc.)
+- Only using Libre software that doesn't collect data
+
+Unfortunately there are sometimes exceptions to the above for the purpose of completing my work in an efficient manner, but in my personal life, I am unwilling to compromise on these things.
+
+## Citations
+
+[1] - [https://github.com/dhowe/AdNauseam](https://github.com/dhowe/AdNauseam.md)
+
+[2] - [https://github.com/gorhill/uBlock](https://github.com/gorhill/uBlock.md)
+
+[3] - [https://github.com/vtoubiana/TrackMeNot](https://github.com/vtoubiana/TrackMeNot.md)
+
+[4] - [https://www.gnu.org/software/gnuzilla/](https://www.gnu.org/software/gnuzilla/)
+
+[5] - [https://www.torproject.org/about/history/](https://www.torproject.org/about/history/)
+
+[6] - [https://pi-hole.net/](https://pi-hole.net/)
+
+[7] - [https://librewolf.net/](https://librewolf.net/)
+
+[8] - [https://ollama.com/](https://ollama.com/)
diff --git a/posts/site/adnauseum-track-me-not-and-privacy-through-obscurity.html b/posts/site/adnauseum-track-me-not-and-privacy-through-obscurity.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
+<head>
+ <meta charset="utf-8" />
+ <meta name="generator" content="pandoc" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
+ <title>adnauseum-track-me-not-and-privacy-through-obscurity</title>
+ <style>
+ code{white-space: pre-wrap;}
+ span.smallcaps{font-variant: small-caps;}
+ div.columns{display: flex; gap: min(4vw, 1.5em);}
+ div.column{flex: auto; overflow-x: auto;}
+ div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
+ /* The extra [class] is a hack that increases specificity enough to
+ override a similar rule in reveal.js */
+ ul.task-list[class]{list-style: none;}
+ ul.task-list li input[type="checkbox"] {
+ font-size: inherit;
+ width: 0.8em;
+ margin: 0 0.8em 0.2em -1.6em;
+ vertical-align: middle;
+ }
+ .display.math{display: block; text-align: center; margin: 0.5rem auto;}
+ </style>
+ <link rel="stylesheet" href="style.css" />
+</head>
+<body>
+<h1 id="adnauseum-track-me-not-and-privacy-through-obscurity">AdNauseum, Track Me Not, and Privacy Through Obscurity</h1>
+<h2 id="date-2025104">Date: 2025/10/4</h2>
+<h2 id="context">Context</h2>
+<p>AdNauseum [1] is a fork of uBlock Origin [2] that hides ads, clicks them in the background, and aggregates the clicked ads in an easy to view interface. The key difference between UBlock Origin and AdNauseum is AdNauseum both hides and clicks ads.</p>
+<p>Track Me Not [3] is a browser extension that mimics human search queries to obscure real queries in the noise.</p>
+<h2 id="usability">Usability</h2>
+<p>AdNauseum is as effective as uBlock Origin at hiding advertisements. For a user, there is no trade off in the usability of the web when compared with uBlock Origin. This is nice because more restrictive approaches to privacy, like GNU IceCat [4] and Tor [5], hinder modern web usage.</p>
+<p>Similarly, Track Me Not has almost no impact on the usability of the web. I say almost no because the traffic it generates likely increases the probability of being shown CAPTCHAs, given that the traffic it generates is likely distributionally different than normal traffic.</p>
+<h2 id="effectiveness-at-improving-privacy">Effectiveness at Improving Privacy</h2>
+<p>AdNauseum is likely worse at protecting your privacy than UBlock Origin. By clicking ads in the background, there is an inherent trail of where you have been. In some ways this trail exists the moment the ad network sells the ad you are shown, but by using a more obscure technology than UBlock Origin, you are more likely to be fingerprinted. Despite this, AdNauseum makes the modern web a better experience to use than not having an ad blocker.</p>
+<p>Track Me Not may also hinder privacy, depending on your privacy goals. The inherent problem is it is phoning home to search engines over time, giving them information about where you are. Search providers are also likely to fingerprint you on the basis of these strange searches. The possible saving grace is that by having so much noise in your search history, it could difficult to figure out what you are interested in. I am uncertain about the value of this though as there are likely going to be two search distributions; Track Me Not’s, and yours. This allows sophisticated search providers to ignore the synthetic requests and track your real requests while also gaining real time IP information.</p>
+<p>In short, I find the idea that these tools improve privacy to be dubious.</p>
+<h2 id="why-you-still-might-want-to-use-them">Why You Still Might Want to Use Them</h2>
+<p>The value of these tools is they are a form of active resistance against ads and tracking. While your privacy is likely hindered by them, you are sending a message. That message costs ad networks and search providers money. In the case of AdNauseum, clicks are expensive for advertisers because most people ignore ads, and Track Me Not imposes computational costs on search providers. Even so, by clicking on so many ads ad networks may catch on and stop charging as much per click. Similarly, search providers may block you or start giving CAPTCHAs which likely impose less computational costs on them than running a query.</p>
+<h2 id="my-thoughts">My Thoughts</h2>
+<p>You probably shouldn’t be using them. While I enjoy active resistance, this is unlikely to be the right way to do it. It may mess with their knowledge about you if they are not sophisticated, but any sophisticated search provider or ad network, which I think most of them are, will easily sus out inauthentic traffic and gain more information about you as a result.</p>
+<p>Instead of using these tools, I recommend doing the following to improve privacy:</p>
+<ul>
+<li>Use Tor when possible</li>
+<li>Avoid sites that require signing in</li>
+<li>Don’t use social media</li>
+<li>Use a privacy respecting browser</li>
+<li>Use UBlock Origin</li>
+<li>Use a Pi-hole [6] and privacy respecting DNS servers</li>
+<li>Minimize your usage of search engines</li>
+<li>Use a variety of privacy respecting search engines</li>
+<li>Use local AI tools (if you must use any at all)</li>
+<li>Use E2EE messaging when possible</li>
+<li>Minimize the trackability of financial transactions</li>
+<li>Don’t carry a phone and minimize your usage of it</li>
+<li>Avoid proprietary software and software that collects data</li>
+</ul>
+<p>This results in me doing the following:</p>
+<ul>
+<li>Using Tor for most of my traffic</li>
+<li>Avoiding sites that require signing in</li>
+<li>Not using social media sites</li>
+<li>Using LibreWolf [7] as my default non-Tor browser</li>
+<li>Routing all non-Tor DNS requests through a self-hosted Pi-hole with additional domain filtering</li>
+<li>Using DuckDuckGo and a variety of public SearX instances for search</li>
+<li>Running Ollama [8] models locally</li>
+<li>Preferring communication with PGP encrypted emails, Matrix, or Signal</li>
+<li>Using cash or Monero when possible for transactions</li>
+<li>Not carrying my phone with me and only using it when it is the only means of achieving a specific goal (ie. SMS 2FA, communication with certain individuals, etc.)</li>
+<li>Only using Libre software that doesn’t collect data</li>
+</ul>
+<p>Unfortunately there are sometimes exceptions to the above for the purpose of completing my work in an efficient manner, but in my personal life, I am unwilling to compromise on these things.</p>
+<h2 id="citations">Citations</h2>
+<p>[1] - <a href="https://github.com/dhowe/AdNauseam.md">https://github.com/dhowe/AdNauseam</a></p>
+<p>[2] - <a href="https://github.com/gorhill/uBlock.md">https://github.com/gorhill/uBlock</a></p>
+<p>[3] - <a href="https://github.com/vtoubiana/TrackMeNot.md">https://github.com/vtoubiana/TrackMeNot</a></p>
+<p>[4] - <a href="https://www.gnu.org/software/gnuzilla/">https://www.gnu.org/software/gnuzilla/</a></p>
+<p>[5] - <a href="https://www.torproject.org/about/history/">https://www.torproject.org/about/history/</a></p>
+<p>[6] - <a href="https://pi-hole.net/">https://pi-hole.net/</a></p>
+<p>[7] - <a href="https://librewolf.net/">https://librewolf.net/</a></p>
+<p>[8] - <a href="https://ollama.com/">https://ollama.com/</a></p>
+</body>
+</html>
diff --git a/posts/site/feed.xml b/posts/site/feed.xml
@@ -7,9 +7,16 @@
<language>en-us</language>
<managingEditor>andrew@laack.co</managingEditor>
<webMaster>andrew@laack.co</webMaster>
-<lastBuildDate>Wed, 01 Oct 2025 00:01:46 -0500</lastBuildDate>
+<lastBuildDate>Sat, 04 Oct 2025 18:10:30 -0500</lastBuildDate>
<atom:link href="https://blog.laack.co/feed.xml" rel="self" type="application/rss+xml"/>
<item>
+<title><![CDATA[AdNauseum, Track Me Not, and Privacy Through Obscurity]]></title>
+<link>https://blog.laack.co/adnauseum-track-me-not-and-privacy-through-obscurity.html</link>
+<description><![CDATA[<h2 id="context">Context</h2><p>AdNauseum [1] is a fork of uBlock Origin [2] that hides ads, clicks them in the background, and aggregates the clicked ads in an easy to view interface. The key difference between UBlock Origin and AdNauseum is AdNauseum both hides and clicks ads.</p><p>Track Me Not [3] is a browser extension that mimics human search queries to obscure real queries in the noise.</p><h2 id="usability">Usability</h2><p>AdNauseum is as effective as uBlock Origin at hiding advertisements. For a user, there is no trade off in the usability of the web when compared with uBlock Origin. This is nice because more restrictive approaches to privacy, like GNU IceCat [4] and Tor [5], hinder modern web usage.</p><p>Similarly, Track Me Not has almost no impact on the usability of the web. I say almost no because the traffic it generates likely increases the probability of being shown CAPTCHAs, given that the traffic it generates is likely distributionally different than normal traffic.</p><h2 id="effectiveness-at-improving-privacy">Effectiveness at Improving Privacy</h2><p>AdNauseum is likely worse at protecting your privacy than UBlock Origin. By clicking ads in the background, there is an inherent trail of where you have been. In some ways this trail exists the moment the ad network sells the ad you are shown, but by using a more obscure technology than UBlock Origin, you are more likely to be fingerprinted. Despite this, AdNauseum makes the modern web a better experience to use than not having an ad blocker.</p><p>Track Me Not may also hinder privacy, depending on your privacy goals. The inherent problem is it is phoning home to search engines over time, giving them information about where you are. Search providers are also likely to fingerprint you on the basis of these strange searches. The possible saving grace is that by having so much noise in your search history, it could difficult to figure out what you are interested in. I am uncertain about the value of this though as there are likely going to be two search distributions; Track Me Not’s, and yours. This allows sophisticated search providers to ignore the synthetic requests and track your real requests while also gaining real time IP information.</p><p>In short, I find the idea that these tools improve privacy to be dubious.</p><h2 id="why-you-still-might-want-to-use-them">Why You Still Might Want to Use Them</h2><p>The value of these tools is they are a form of active resistance against ads and tracking. While your privacy is likely hindered by them, you are sending a message. That message costs ad networks and search providers money. In the case of AdNauseum, clicks are expensive for advertisers because most people ignore ads, and Track Me Not imposes computational costs on search providers. Even so, by clicking on so many ads ad networks may catch on and stop charging as much per click. Similarly, search providers may block you or start giving CAPTCHAs which likely impose less computational costs on them than running a query.</p><h2 id="my-thoughts">My Thoughts</h2><p>You probably shouldn’t be using them. While I enjoy active resistance, this is unlikely to be the right way to do it. It may mess with their knowledge about you if they are not sophisticated, but any sophisticated search provider or ad network, which I think most of them are, will easily sus out inauthentic traffic and gain more information about you as a result.</p><p>Instead of using these tools, I recommend doing the following to improve privacy:</p><ul><li>Use Tor when possible</li><li>Avoid sites that require signing in</li><li>Don’t use social media</li><li>Use a privacy respecting browser</li><li>Use UBlock Origin</li><li>Use a Pi-hole [6] and privacy respecting DNS servers</li><li>Minimize your usage of search engines</li><li>Use a variety of privacy respecting search engines</li><li>Use local AI tools (if you must use any at all)</li><li>Use E2EE messaging when possible</li><li>Minimize the trackability of financial transactions</li><li>Don’t carry a phone and minimize your usage of it</li><li>Avoid proprietary software and software that collects data</li></ul><p>This results in me doing the following:</p><ul><li>Using Tor for most of my traffic</li><li>Avoiding sites that require signing in</li><li>Not using social media sites</li><li>Using LibreWolf [7] as my default non-Tor browser</li><li>Routing all non-Tor DNS requests through a self-hosted Pi-hole with additional domain filtering</li><li>Using DuckDuckGo and a variety of public SearX instances for search</li><li>Running Ollama [8] models locally</li><li>Preferring communication with PGP encrypted emails, Matrix, or Signal</li><li>Using cash or Monero when possible for transactions</li><li>Not carrying my phone with me and only using it when it is the only means of achieving a specific goal (ie. SMS 2FA, communication with certain individuals, etc.)</li><li>Only using Libre software that doesn’t collect data</li></ul><p>Unfortunately there are sometimes exceptions to the above for the purpose of completing my work in an efficient manner, but in my personal life, I am unwilling to compromise on these things.</p><h2 id="citations">Citations</h2><p>[1] - <a href="https://github.com/dhowe/AdNauseam.md">https://github.com/dhowe/AdNauseam</a></p><p>[2] - <a href="https://github.com/gorhill/uBlock.md">https://github.com/gorhill/uBlock</a></p><p>[3] - <a href="https://github.com/vtoubiana/TrackMeNot.md">https://github.com/vtoubiana/TrackMeNot</a></p><p>[4] - <a href="https://www.gnu.org/software/gnuzilla/">https://www.gnu.org/software/gnuzilla/</a></p><p>[5] - <a href="https://www.torproject.org/about/history/">https://www.torproject.org/about/history/</a></p><p>[6] - <a href="https://pi-hole.net/">https://pi-hole.net/</a></p><p>[7] - <a href="https://librewolf.net/">https://librewolf.net/</a></p><p>[8] - <a href="https://ollama.com/">https://ollama.com/</a></p>]]></description>
+<pubDate>Sat, 04 Oct 2025 00:00:00 -0500</pubDate>
+<guid>https://blog.laack.co/adnauseum-track-me-not-and-privacy-through-obscurity.html</guid>
+</item>
+<item>
<title><![CDATA[The Sustainability of YouTube]]></title>
<link>https://blog.laack.co/the-sustainability-of-youtube.html</link>
<description><![CDATA[<h2 id="context">Context</h2><p>I dislike using cloud services because they may discontinue my service [1] or they may do something stupid [2] that negatively impacts me. These concerns, along with concerns about privacy [3], have led me to keep information and content I care about away from cloud services. This does make me wonder, how many people would be distraught about the loss of their content if YouTube terminated their accounts? This is not the topic today, nor is it something I can easily answer, but it is something I wonder about and would like others to consider.</p><p>Similarly, I am skeptical of “free” services. It’s incorrect to say “if something is free, you are the product” because charity does exist, but when it comes to Google, they aren’t a charity. Their current model with YouTube is to have people upload videos to their site and show ads to some users when they watch said videos. There are also paid subscriptions, but their primary monetization comes from ads. An important point is they don’t purge content on a regular basis, except in cases of ToS violations. As such, there is a (nearly) monotonically increasing function that describes the storage requirements of YouTube. This motivates my question below.</p><h2 id="question">Question</h2><p>When will YouTube’s storage costs exceed their revenue if they don’t start purging old content, assuming their revenue does not increase over time?</p><h2 id="how-to-answer-this-question">How to Answer This Question</h2><p>We need the following information to answer this question:</p><ul><li>What is YouTube’s annual net profit?</li><li>How much data does YouTube store?</li><li>How much does data storage cost?</li></ul><h2 id="youtubes-profit">YouTube’s Profit</h2><p>According to Alphabet’s 2025 Q2 earnings release [4], YouTube ads made a revenue of $9.769 billion. Annualized, this is $39.076 billion, but this is only revenue, not net profit. If we assume the operating margin across Alphabet matches the operating margin of YouTube (32%), we find an approximate net profit of $12.50432 billion / year. Actual net profit could differ from this, but since we are concerned with how much data storage this could support, we don’t need to factor in how this would be taxed.</p><h2 id="storage-needs">Storage Needs</h2><h3 id="total-videos">Total Videos</h3><p>YouTube states on their official blog there are over 20 million videos uploaded per day [5]. While I don’t trust YouTube very much, and they don’t have many incentives to be honest on this topic, they seem more trustworthy in this context than the slop factory sites as they are, in fact, the ones who are hosting the content. As such, I will accept this metric.</p><h3 id="average-video-size">Average Video Size</h3><p>I wrote a python script that uses a curated list of popular Google Trends searches over the past few decades [6] to search YouTube for recently uploaded videos. I ran this script and compiled a list of ~7.65 million YouTube videos.</p><p>Before continuing, I will list a few limitations of this approach:</p><ul><li>YouTube likely imposes some amount of algorithmic filtering when sorting by ‘recently uploaded’</li><li>The videos in question are all public (not inclusive of private/unlisted videos)</li><li>Less popular search terms may have a different distribution of video sizes</li></ul><p>These are the main flaws in my methodology, but any approach will be imperfect without being able to get the data directly from YouTube.</p><p>Of these 7.65 million videos, I sampled 615,222 of them and queried YouTube using <code>yt-dlp</code> [7] to find all video resolutions and formats YouTube will serve. It seems unlikely to me that YouTube stores each of these resolutions on their servers, but I think it is very likely that YouTube is storing the highest resolution version they are willing to serve to users.</p><p>Based on my findings, I propose a lower bound of ~396.17 MB / video, which assumes they are only storing the highest resolution version and all other versions are generated in real time via transcoding (I am confident this isn’t the case, but it provides a nice lower bound). I also propose an upper bound of ~1.44 GB / video, which assumes they are storing every resolution and format for each video they are serving.</p><p>All of the code used for this is available on my git server [8].</p><h3 id="annual-storage-increase">Annual Storage Increase</h3><p>Using my findings above about video size and YouTube’s stated video upload rate, we find:</p><p>Lower bound:</p><ul><li>7.923 PB / Day</li><li>2.89 EB / Year</li></ul><p>Upper bound:</p><ul><li>28.895 PB / Day</li><li>10.547 EB / Year</li></ul><p>Note: These values may vary depending on rounding, but they should be similar to what anyone else would find.</p><h2 id="storage-cost-by-volume">Storage Cost by Volume</h2><p>GCP currently charges $26 / month for 1 TB of standard multi-region, US based, cloud storage [9]. If we assume the same 32% profit margin as before, this would cost ~$17.68 / TB / month or $212.16 / TB / year. I don’t know if this is high or low relative to what they actually pay. YouTube requires quick access to many of their videos, but many of their videos are likely retrieved infrequently. Additionally, it seems likely Alphabet’s cloud storage margins are higher than the average margins across the organization. Additionally, these are only US storage prices so this could vary depending on the regions this data is being hosted in. In any case, I think this is a fair estimate.</p><h2 id="answer-to-the-question">Answer to the Question</h2><p>Given YouTube’s approximated net profit of $12.50432 billion / year and an estimated cost of $212.16 / TB / year for cloud storage, we find their profits can support an additional ~58.94 EB of data.</p><p>At the lower bound of 2.89 EB / year we find YouTube’s storage costs will surpass their current profits in ~20.39 years.</p><p>If we assume our upper bound of 10.547 EB / year we find YouTube’s storage costs will surpass their current profits in ~5.59 years.</p><h2 id="conclusion">Conclusion</h2><p>These are very rough bounds, especially given how difficult it is to estimate the cost per TB / year for storage of this data given their retrieval needs, but we find that in ~5.59 - ~20.39 years, YouTube will be forced to start purging old content to remain profitable at their current profit rate.</p><h2 id="citations">Citations</h2><p>[1] - <a href="https://killedbygoogle.com/">https://killedbygoogle.com/</a></p><p>[2] - <a href="https://arstechnica.com/gadgets/2024/05/google-cloud-accidentally-nukes-customer-account-causes-two-weeks-of-downtime/">https://arstechnica.com/gadgets/2024/05/google-cloud-accidentally-nukes-customer-account-causes-two-weeks-of-downtime/</a></p><p>[3] - <a href="https://www.gnu.org/proprietary/proprietary-surveillance.html">https://www.gnu.org/proprietary/proprietary-surveillance.html</a></p><p>[4] - <a href="https://abc.xyz/assets/cc/27/3ada14014efbadd7a58472f1f3f4/2025q2-alphabet-earnings-release.pdf">https://abc.xyz/assets/cc/27/3ada14014efbadd7a58472f1f3f4/2025q2-alphabet-earnings-release.pdf</a></p><p>[5] - <a href="https://web.archive.org/web/20250911091711/https://blog.youtube/press/">https://web.archive.org/web/20250911091711/https://blog.youtube/press/</a></p><p>[6] - <a href="https://www.kaggle.com/datasets/dhruvildave/google-trends-dataset">https://www.kaggle.com/datasets/dhruvildave/google-trends-dataset</a></p><p>[7] - <a href="https://github.com/yt-dlp/yt-dlp">https://github.com/yt-dlp/yt-dlp</a></p><p>[8] - <a href="http://git.laack.co/blog/log.html">http://git.laack.co/blog/log.html</a></p><p>[9] - <a href="https://cloud.google.com/storage/pricing#multi-regions">https://cloud.google.com/storage/pricing#multi-regions</a></p>]]></description>
diff --git a/posts/site/index.html b/posts/site/index.html
@@ -10,6 +10,7 @@
<h1>Blog Posts</h1>
<p><a href="feed.xml">RSS Feed</a></p>
<ol>
+<li><a href="adnauseum-track-me-not-and-privacy-through-obscurity.html">adnauseum-track-me-not-and-privacy-through-obscurity</a> - <em>2025/10/4</em></li>
<li><a href="the-sustainability-of-youtube.html">the-sustainability-of-youtube</a> - <em>2025/9/28</em></li>
</ol>
</body>
diff --git a/scripts/convert.sh b/scripts/convert.sh
@@ -41,8 +41,7 @@ cat > "$RSS_FILE" <<EOF
<atom:link href="$BLOG_URL/feed.xml" rel="self" type="application/rss+xml"/>
EOF
-declare -A posts_with_dates
-declare -a post_files
+TMP_SORT_FILE=$(mktemp)
for FILE in posts/entries/*.md; do
[ -e "$FILE" ] || continue
@@ -54,14 +53,14 @@ for FILE in posts/entries/*.md; do
DATE_LINE=$(grep -m1 '^## Date:' "$FILE" || true)
DATE=${DATE_LINE#'## Date: '}
- posts_with_dates["$FILE"]="$DATE"
- post_files+=("$FILE")
+
+ SORTABLE_DATE=$(date -d "$DATE" +"%Y-%m-%d" 2>/dev/null || echo "1970-01-01")
+
+ echo "$SORTABLE_DATE|$DATE|$FILE" >> "$TMP_SORT_FILE"
done
-for ((i=${#post_files[@]}-1; i>=0; i--)); do
- FILE="${post_files[i]}"
+sort -r "$TMP_SORT_FILE" | while IFS='|' read -r SORTABLE_DATE DATE FILE; do
BASENAME="$(basename "$FILE" .md)"
- DATE="${posts_with_dates[$FILE]}"
printf '<li><a href="%s.html">%s</a> - <em>%s</em></li>\n' "$BASENAME" "$BASENAME" "$DATE" >> "$INDEX_FILE"
@@ -110,6 +109,8 @@ cat >> "$RSS_FILE" <<EOF
</rss>
EOF
+rm -f "$TMP_SORT_FILE"
+
echo "Blog generated successfully!"
echo "- HTML index: $INDEX_FILE"
echo "- RSS feed: $RSS_FILE"