<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Simonee</title>
    <description>The latest articles on DEV Community by Simonee (@stimmie).</description>
    <link>https://dev.to/stimmie</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3687156%2Fcbcc7a14-d517-4711-9e59-d115811f024b.jpeg</url>
      <title>DEV Community: Simonee</title>
      <link>https://dev.to/stimmie</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/stimmie"/>
    <language>en</language>
    <item>
      <title>Privacy tools explained with Among Us</title>
      <dc:creator>Simonee</dc:creator>
      <pubDate>Fri, 04 Sep 2026 03:09:51 +0000</pubDate>
      <link>https://dev.to/stimmie/privacy-tools-explained-with-among-us-2j85</link>
      <guid>https://dev.to/stimmie/privacy-tools-explained-with-among-us-2j85</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffodue51ar3i47ubc5p63.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffodue51ar3i47ubc5p63.jpg" alt="Among Us crewmates in a row" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When I was deep into the privacy community, doing stuff like fully encrypting my disk with VeraCrypt, keeping ProtonVPN on with a kill switch, and using Signal instead of Telegram, I came across a bunch of browser extensions that everybody seemed to recommend together. Adblocker, Privacy Badger, LocalCDN. I installed all of them and treated them as collectibles. More tools, more privacy.&lt;/p&gt;

&lt;p&gt;It took me an embarrassingly long time to notice that the three of them do three different jobs, and that two of them barely overlap. Among Us is how it finally made sense to me, so that is how I will explain it.&lt;/p&gt;

&lt;p&gt;A web page is not one place. When you open a news article, the article itself comes from the news site, but the fonts might come from Google, the script library from a CDN, the ads from an ad company, the comments from a company the news site contracted, and the Like button from Facebook. The &lt;a href="https://www.eff.org/" rel="noopener noreferrer"&gt;Electronic Frontier Foundation&lt;/a&gt;, the nonprofit that makes Privacy Badger, opens its own explanation of the tool with this same picture. To check it was not an exaggeration I loaded the &lt;a href="https://www.inquirer.net/" rel="noopener noreferrer"&gt;Inquirer&lt;/a&gt; front page once and logged every request. Four hosts were the Inquirer's own. Twenty-four were other companies, and they got fifty-four requests between them.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Company&lt;/th&gt;
&lt;th&gt;Host&lt;/th&gt;
&lt;th&gt;Requests&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Inquirer&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.inquirer.net" rel="noopener noreferrer"&gt;www.inquirer.net&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;29&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;newsinfo.inquirer.net&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;sports.inquirer.net&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;analytics.inquirernetwork.net&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google&lt;/td&gt;
&lt;td&gt;fundingchoicesmessages.google.com&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;securepubads.g.doubleclick.net&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;pagead2.googlesyndication.com&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;fonts.gstatic.com&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;ep2.adtrafficquality.google&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;fonts.googleapis.com&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;ep1.adtrafficquality.google&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;cm.g.doubleclick.net&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="http://www.google.com" rel="noopener noreferrer"&gt;www.google.com&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;64020afcac2374c8919c09a1eb7e6a94.safeframe.googlesyndication.com&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;iZooto&lt;/td&gt;
&lt;td&gt;cdn.izooto.com&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;rec.izooto.com&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;sbp.izooto.com&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;nhwimp.izooto.com&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;New Relic&lt;/td&gt;
&lt;td&gt;bam.nr-data.net&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;js-agent.newrelic.com&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yieldlove&lt;/td&gt;
&lt;td&gt;cdn.yld.is&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Criteo&lt;/td&gt;
&lt;td&gt;static.criteo.net&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;gum.criteo.com&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Adobe&lt;/td&gt;
&lt;td&gt;use.typekit.net&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;io Technologies&lt;/td&gt;
&lt;td&gt;cdn.onthe.io&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenX&lt;/td&gt;
&lt;td&gt;oa.openxcdn.net&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RTB House&lt;/td&gt;
&lt;td&gt;invstatic101.creativecdn.com&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Adgebra&lt;/td&gt;
&lt;td&gt;adgebra.co.in&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Every request the Inquirer front page made in one load on 5 September 2026, grouped by the company that received it.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In Among Us terms, the site you typed in is the ship you boarded. Every third-party request is a crewmate who walked in from somewhere else. Some of them are doing tasks, like the font and the script library. Some of them are impostors, like the analytics pixel whose only job is to remember you were here. The problem is that from the outside they look identical. Each one is a request leaving your browser, and each request carries your IP address and the page you are on.&lt;/p&gt;

&lt;p&gt;The three tools are three different ways of dealing with the crew.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adblockers
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://ublockorigin.com/" rel="noopener noreferrer"&gt;uBlock Origin&lt;/a&gt;, &lt;a href="https://adblockplus.org/" rel="noopener noreferrer"&gt;AdBlock Plus&lt;/a&gt;, and the rest work from filter lists. The big one is &lt;a href="https://easylist.to/" rel="noopener noreferrer"&gt;EasyList&lt;/a&gt;, which removes most adverts from international webpages and is maintained by four people (&lt;a href="https://github.com/ryanbr" rel="noopener noreferrer"&gt;Fanboy&lt;/a&gt;, &lt;a href="https://github.com/monzta" rel="noopener noreferrer"&gt;MonztA&lt;/a&gt;, &lt;a href="https://github.com/Khrin" rel="noopener noreferrer"&gt;Khrin&lt;/a&gt;, and &lt;a href="https://github.com/Yuki2718" rel="noopener noreferrer"&gt;Yuki2718&lt;/a&gt;) with help from a forum. Its sibling &lt;a href="https://easylist.to/easylist/easyprivacy.txt" rel="noopener noreferrer"&gt;EasyPrivacy&lt;/a&gt; targets tracking rather than ads. A filter list is a long set of rules that match URLs and page elements. If a request matches a rule, the blocker stops it before it leaves your browser.&lt;/p&gt;

&lt;p&gt;In the game this is an emergency meeting where everyone already has a list of names, and anyone on the list gets voted out on sight. It works well enough that almost everyone runs one, and it takes the ads out of the page entirely rather than only stopping the tracking part. The catch is that a tracker not on the list walks straight past, and keeps walking past until a maintainer notices and adds it.&lt;/p&gt;

&lt;p&gt;If you can list everything, why is this not solved? Because the other side reads the list too, and the list is only ever a description of what the ads looked like last week. I pulled the &lt;a href="https://github.com/easylist/easylist" rel="noopener noreferrer"&gt;EasyList commit history&lt;/a&gt; while writing this. In the first week of September 2026 the repository got between 138 and 187 commits a day. On the 8th, by mid-afternoon UTC, Fanboy alone had pushed over ninety commits titled "M: Update", roughly one every eight minutes since early morning.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Day&lt;/th&gt;
&lt;th&gt;Commits to EasyList&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1 Sep 2026&lt;/td&gt;
&lt;td&gt;174&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2 Sep&lt;/td&gt;
&lt;td&gt;149&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3 Sep&lt;/td&gt;
&lt;td&gt;138&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4 Sep&lt;/td&gt;
&lt;td&gt;178&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5 Sep&lt;/td&gt;
&lt;td&gt;173&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6 Sep&lt;/td&gt;
&lt;td&gt;187&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7 Sep&lt;/td&gt;
&lt;td&gt;185&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Most of those commits look like this one. Three new domains, all random letters, added to the ad server list.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;+||donalpapmeat.com^
+||lzazqrrmqjvov.top^
+||wkzmfbrbxstzq.space^
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ad networks register throwaway domains faster than anyone can type them, which is why that one file has over forty thousand lines and grows every day. The other kind of commit goes the opposite direction. On the same day Khrin changed one existing rule because it was breaking something on CNN, and carved out an exception so the rule no longer applies to XMLHttpRequest calls.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-||brightline.tv^$third-party
+||brightline.tv^$third-party,~xmlhttprequest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The bigger players do not bother with new domains. Facebook in 2019 started splitting the word Sponsored on its ads into scrambled pieces of text so that no rule could match it, the maintainers wrote rules for the scrambling, and Facebook changed it again. Some trackers get served from a subdomain of the site you are on, through a CNAME record that quietly points at the tracking company, so a blocker that only looks at the hostname sees a first-party request and lets it through. uBlock Origin on Firefox has been able to unmask those since 2020. When YouTube started blocking adblock users outright in late 2023, the lists were updated within hours, YouTube changed its detection, the lists were updated again, and that went on for weeks. A filter list is never finished. It works because a handful of people keep it current, every day, by hand.&lt;/p&gt;

&lt;h2&gt;
  
  
  Privacy Badger
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://privacybadger.org/" rel="noopener noreferrer"&gt;Privacy Badger&lt;/a&gt; is made by the EFF and it deliberately does not use a list. Their &lt;a href="https://privacybadger.org/#faq" rel="noopener noreferrer"&gt;FAQ&lt;/a&gt; says: "we define what tracking looks like, and then Privacy Badger blocks or restricts domains that it observes tracking in the wild." Whether something counts as a tracker depends on how the domain behaves, not on a maintainer's judgment.&lt;/p&gt;

&lt;p&gt;Concretely, it watches the third-party domains that embed images, scripts, and ads in the pages you visit, and it looks for the techniques trackers use: cookies that uniquely identify you, local storage "supercookies", canvas fingerprinting. If it sees the same third-party host doing that on three separate sites, it stops loading anything from that host. Three is not many. I opened the &lt;a href="https://www.inquirer.net/" rel="noopener noreferrer"&gt;Inquirer&lt;/a&gt;, &lt;a href="https://www.rappler.com/" rel="noopener noreferrer"&gt;Rappler&lt;/a&gt;, and &lt;a href="https://www.philstar.com/" rel="noopener noreferrer"&gt;Philstar&lt;/a&gt; front pages in a row and these eight domains were on all of them.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Domain&lt;/th&gt;
&lt;th&gt;Inquirer&lt;/th&gt;
&lt;th&gt;Rappler&lt;/th&gt;
&lt;th&gt;Philstar&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;googlesyndication.com&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;26&lt;/td&gt;
&lt;td&gt;43&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;doubleclick.net&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;27&lt;/td&gt;
&lt;td&gt;32&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;google.com&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;24&lt;/td&gt;
&lt;td&gt;22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;adtrafficquality.google&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;criteo.com&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;creativecdn.com&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;criteo.net&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;openxcdn.net&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Front pages of the Inquirer, Rappler, and Philstar, loaded one after another on 5 September 2026. Each number is how many requests that domain received during the load.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In the game this is the crewmate nobody reported, who keeps turning up in rooms it has no reason to be in, until after the third room the Badger calls the meeting and ejects it. Because the rule is about behaviour rather than a name, it catches trackers nobody has written a rule for yet. A fresh install does not start from zero either. The EFF runs a training project called Badger Sett that visits thousands of popular sites and pre-learns the trackers on them, and ships that with the extension.&lt;/p&gt;

&lt;p&gt;Privacy Badger does not block ads for being ads, only the ones that track you, which the EFF says is deliberate, to give advertisers a reason to behave. It also sends the Global Privacy Control and Do Not Track signals to every site, and if a tracker ignores them the Badger learns to block it anyway. Social widgets like the Like button get replaced with a click-to-activate placeholder, so the button does not phone home until you press it.&lt;/p&gt;

&lt;h2&gt;
  
  
  LocalCDN
&lt;/h2&gt;

&lt;p&gt;The third tool deals with a leak that the other two mostly leave alone. Sites do not host every script themselves. A large share of them load jQuery, Bootstrap, Font Awesome, or a Google font from a shared content delivery network: ajax.googleapis.com, cdnjs.cloudflare.com, code.jquery.com, cdn.jsdelivr.net, unpkg.com. Those scripts are legitimate, crewmates doing tasks, but every time your browser fetches one, the CDN operator, usually Google or Cloudflare, gets your IP address and the page that asked for the file.&lt;/p&gt;

&lt;p&gt;An adblocker will not touch these because they are real code the page needs, and Privacy Badger usually will not either, because serving a file is not tracking by its definition. The request goes out on every site that uses the library, which is most of them.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Without LocalCDN&lt;/th&gt;
&lt;th&gt;With LocalCDN&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Page asks for&lt;/td&gt;
&lt;td&gt;cdnjs.cloudflare.com/.../jquery.min.js&lt;/td&gt;
&lt;td&gt;cdnjs.cloudflare.com/.../jquery.min.js&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Answered by&lt;/td&gt;
&lt;td&gt;Cloudflare&lt;/td&gt;
&lt;td&gt;a copy bundled in the extension&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Leaves your browser&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cloudflare learns&lt;/td&gt;
&lt;td&gt;your IP, the page you were on&lt;/td&gt;
&lt;td&gt;nothing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;The same jQuery request with and without LocalCDN installed.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.localcdn.org/" rel="noopener noreferrer"&gt;LocalCDN&lt;/a&gt; describes itself as emulating content delivery networks. It intercepts the request, finds the same library at the same version in a bundle it ships with, and injects that instead, so nothing leaves the browser. In the game you never have to go to MIRA HQ to pick up your tools, because somebody already stocked the storage room on the ship.&lt;/p&gt;

&lt;p&gt;If the name &lt;a href="https://decentraleyes.org/" rel="noopener noreferrer"&gt;Decentraleyes&lt;/a&gt; rings a bell, it is the same idea. LocalCDN started in 2020 as a fork of Decentraleyes with a longer list of libraries and CDNs, and it is the one that still gets regular updates. Run one or the other, never both, or they will fight over the same requests.&lt;/p&gt;

&lt;p&gt;The old argument against this was that shared CDNs were good for speed, because a copy of jQuery cached from one site could be reused on the next. That stopped being true a few years ago. Browsers now partition the HTTP cache by the site you are on, so a file cached from site A does not help on site B. Safari has done this since 2013, Chrome since version 86 in late 2020, and Firefox since version 85 in early 2021. What is left of the shared CDN is the privacy cost.&lt;/p&gt;




&lt;p&gt;Put the three side by side and the overlap is smaller than the "install all of these" advice suggests.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ublockorigin.com/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fktpm79l5lki625zgrmi1.png" alt="uBlock Origin" width="128" height="128"&gt;&lt;/a&gt; &lt;a href="https://adblockplus.org/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxyppaj4wqgyg1qc6l17n.png" alt="AdBlock Plus" width="64" height="64"&gt;&lt;/a&gt; &lt;a href="https://privacybadger.org/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3z2urwnb17ep8v7wwja7.png" alt="Privacy Badger" width="128" height="128"&gt;&lt;/a&gt; &lt;a href="https://www.localcdn.org/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1iy7du2b5zi652f7datx.png" alt="LocalCDN" width="128" height="128"&gt;&lt;/a&gt; &lt;a href="https://decentraleyes.org/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F51b56mkozr5iucnfdz8m.png" alt="Decentraleyes" width="64" height="64"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://ublockorigin.com/" rel="noopener noreferrer"&gt;uBlock Origin&lt;/a&gt;, &lt;a href="https://adblockplus.org/" rel="noopener noreferrer"&gt;AdBlock Plus&lt;/a&gt;, &lt;a href="https://privacybadger.org/" rel="noopener noreferrer"&gt;Privacy Badger&lt;/a&gt;, &lt;a href="https://www.localcdn.org/" rel="noopener noreferrer"&gt;LocalCDN&lt;/a&gt;, &lt;a href="https://decentraleyes.org/" rel="noopener noreferrer"&gt;Decentraleyes&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The adblocker with EasyList and EasyPrivacy removes ads and every tracker that someone has already written a rule for, which is most of them.&lt;/li&gt;
&lt;li&gt;Privacy Badger catches the trackers that are not on any list yet, and handles the social widgets and the opt-out signals.&lt;/li&gt;
&lt;li&gt;LocalCDN closes a specific leak, the shared library request, that neither of the others considers a problem.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;None of them do anything about the first party. The site you are on still sees everything you do on it, and the Privacy Badger FAQ says plainly that this is out of scope. If you are logged in, that site knows who you are. They do not hide your IP address from anyone you actually connect to, which is what the VPN was for. They can also break things. Privacy Badger's placeholders exist because blocking a widget outright would leave a hole in the page, and LocalCDN can only substitute a library it has a copy of, so a site that uses an unusual version will fall back to the network anyway.&lt;/p&gt;

&lt;p&gt;What I run now is an adblocker with the two Easy lists, Privacy Badger, and LocalCDN on Firefox. Firefox's own tracking protection overlaps with the Badger, and the EFF says the two get along. I stopped thinking of them as a collection once I understood that they are three crewmates doing three different tasks, and I have stopped expecting any one of them to do the other two's job.&lt;/p&gt;




&lt;p&gt;Sources: the &lt;a href="https://privacybadger.org/#faq" rel="noopener noreferrer"&gt;Privacy Badger FAQ&lt;/a&gt; (how it works, the three-site rule, Badger Sett, GPC and DNT, what counts as a third party); &lt;a href="https://easylist.to/" rel="noopener noreferrer"&gt;EasyList&lt;/a&gt; (maintainers, EasyPrivacy) and its &lt;a href="https://github.com/easylist/easylist" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt; (commit counts and diffs, pulled 8 September 2026); &lt;a href="https://www.localcdn.org/" rel="noopener noreferrer"&gt;LocalCDN&lt;/a&gt; (supported CDNs and libraries); &lt;a href="https://developer.chrome.com/blog/http-cache-partitioning" rel="noopener noreferrer"&gt;Chrome's HTTP cache partitioning announcement&lt;/a&gt; and &lt;a href="https://blog.mozilla.org/security/2021/01/26/supercookie-protections/" rel="noopener noreferrer"&gt;Mozilla's network partitioning post&lt;/a&gt; (why shared CDN caching no longer helps).&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.stimmie.dev/blog/privacy-tools-explained-with-among-us" rel="noopener noreferrer"&gt;stimmie.dev&lt;/a&gt;. Also on &lt;a href="https://dev.to/stimmie/privacy-tools-explained-with-among-us-2j85"&gt;Dev.to&lt;/a&gt; and &lt;a href="https://daily.dev/posts/an-adblocker-privacy-badger-and-localcdn-do-three-different-jobs-real-request-logs-from-three-new-u8a8cu7z1" rel="noopener noreferrer"&gt;daily.dev&lt;/a&gt;. A shorter first version is on &lt;a href="https://medium.com/@stimmieuwu/privacy-tools-explained-with-among-us-6d8a0bd4179c" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;. Source and images on &lt;a href="https://github.com/smmariquit/stimmie.dev" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>privacy</category>
      <category>security</category>
      <category>webdev</category>
      <category>browsers</category>
    </item>
    <item>
      <title>The Death of the Easter Egg</title>
      <dc:creator>Simonee</dc:creator>
      <pubDate>Fri, 04 Sep 2026 01:04:22 +0000</pubDate>
      <link>https://dev.to/stimmie/the-death-of-the-easter-egg-25kl</link>
      <guid>https://dev.to/stimmie/the-death-of-the-easter-egg-25kl</guid>
      <description>&lt;p&gt;There is a flight simulator inside Microsoft Excel 97.&lt;/p&gt;

&lt;p&gt;I wasn't around for it. I learned about it the way most people my age learn about anything from before they were born, which is to say late at night, from a video, with the volume low, and with the vague feeling of having missed something. You open a blank sheet, press F5, type &lt;code&gt;X97:L97&lt;/code&gt;, press Tab, and hold Ctrl and Shift while clicking the chart wizard. The spreadsheet disappears. What is left is a range of purple hills under a black sky, and you are flying over them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1ztx1xv8ry8kcwib72up.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1ztx1xv8ry8kcwib72up.jpg" alt="Jagged purple hills under a black sky with a thin orange sunset line at the horizon, rendered in the Excel 97 flight simulator" width="799" height="412"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;This is a screenshot of Microsoft Excel.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you flew long enough you would find a grey monolith standing in the middle of the terrain, and on its face the names of the people who built Excel would scroll upward, slowly, like the credits of a film. There was a lagoon nearby. Nobody asked for a lagoon.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjeyj5uep284nms93lt3i.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjeyj5uep284nms93lt3i.jpg" alt="A black slab in the Excel 97 flight simulator with the names of the developers printed on it: Amit Dekate, Bob Coffen, Dan Egnor, John Kruper, Kevin Fischer, Rich Kaethler, and the word Externals" width="800" height="420"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The monolith. Those are real people. Some of them are probably still at Microsoft.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7qy5do8xbtc0pmwz6x51.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7qy5do8xbtc0pmwz6x51.jpg" alt="Rolling blue mountains in the Excel 97 flight simulator, low resolution" width="543" height="256"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The same terrain, another day. It was generated at random, which meant no two people saw quite the same hills.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I think about this more than I probably should. A handful of engineers put an entire small world inside a program meant for accountants, and for a few years every finance department on earth carried it around without knowing, which is a strange thing to be moved by and yet here I am. It had no purpose and it wasn't in the manual. It existed, as far as I can tell, because the people who made Excel wanted, in some quiet and probably unexamined way, to be found.&lt;/p&gt;

&lt;p&gt;That won't happen again. I want to be careful about how I say this, because it sounds like nostalgia for a decade I didn't live in, and I am suspicious of my own nostalgia in general. But I've come to believe that the easter egg, the real kind, the kind no one approved, is gone, and that I know, or at least strongly suspect, what took it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The first one
&lt;/h2&gt;

&lt;p&gt;The first easter egg came out of a grudge. In 1979 Atari did not print the names of its programmers anywhere. A person would spend the better part of a year alone with four kilobytes, and the box would go out with a painting of a dragon and no human being credited on it. Warren Robinett wrote Adventure under those terms and decided he would not be erased.&lt;/p&gt;

&lt;p&gt;So he built a room. To reach it you had to find a single grey dot hidden in a wall, carry it across the map, and squeeze through a gap that was not supposed to be there. Inside, in flashing letters, the game said: Created by Warren Robinett. He told no one and left the company. About a year later a teenager found the room and wrote to Atari, and Atari, after working out what a recall would cost, decided to leave it in.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4aptznz1buqhupaewqpd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4aptznz1buqhupaewqpd.png" alt="Blocky Atari 2600 screen showing the words Created by Warren Robinett in a hidden room of Adventure" width="640" height="384"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The room.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I keep returning to what the room needed in order to exist. It needed one person holding the entire program in their head, with no one else reading the code, on a cartridge that shipped once and could never be patched. Most of all it needed someone who had been in there long enough to feel that the thing was theirs.&lt;/p&gt;

&lt;h2&gt;
  
  
  What happened to it first
&lt;/h2&gt;

&lt;p&gt;Several things had already gone wrong with the easter egg by the time I was old enough to notice, though I did not notice.&lt;/p&gt;

&lt;p&gt;Microsoft stopped allowing them in 2002. Bill Gates had sent a memo about trust, and somebody realised that a customer like a government cannot buy a product with code in it that nobody documented. A hidden flight simulator and a hidden backdoor look the same from the outside. So the flight simulator went, and the pinball game in Word went with it, and no one at Microsoft has been allowed to hide anything since. That's compliance for you.&lt;/p&gt;

&lt;p&gt;Everywhere else, code review did the same job. A secret needs a place to hide, and there is nowhere to hide in a codebase where two other people read every line before it is merged. If someone opens a pull request and finds four hundred lines of terrain generation in a spreadsheet, they ask what it is for, and the moment there is an answer it becomes a ticket with an owner.&lt;/p&gt;

&lt;p&gt;Around the same time software started being measured, and an easter egg has no number attached to it, so it never got scheduled. And the internet made the whole thing brief anyway. A hidden room in a game today is on a wiki with the exact button presses within the hour, often before the game is even out.&lt;/p&gt;

&lt;p&gt;And still, through all of that, people kept hiding things.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft9ydm0ylfb7jn5e8045f.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft9ydm0ylfb7jn5e8045f.jpg" alt="Google search results for the word askew, with the entire page tilted a few degrees" width="640" height="641"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Search for the word askew. Google still tilts the page. It also, now, explains the word to you first.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1ph75z8pq2qpazey1xvm.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1ph75z8pq2qpazey1xvm.jpg" alt="Official Minecraft 1.21.5 changelog with the line Removed Herobrine at the end of the list of changes" width="800" height="332"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Every Minecraft changelog for fifteen years has ended the same way. Herobrine was never in the game.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzvnauba9w4pzstfytjje.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzvnauba9w4pzstfytjje.webp" alt="A Minecraft sheep with rainbow-coloured wool" width="360" height="420"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Name a sheep jeb_ and it will not stop changing colour.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fju2kkgnsikfbfdaxav0f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fju2kkgnsikfbfdaxav0f.png" alt="The pixel dinosaur from Chrome's offline page, mid-jump, with a game over message" width="800" height="218"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Chrome, when the internet is gone.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I love all of these. I want that on the record before I say the next thing. They were planned, and specified, and someone in legal nodded at them, and still, behind each one, there was a person who wanted to be there. None of this killed it, though. It limped for a long time, a little more corporate every year, but it limped.&lt;/p&gt;

&lt;h2&gt;
  
  
  What finally took it
&lt;/h2&gt;

&lt;p&gt;What I think actually killed it was the code starting to write itself. Ask why those engineers built a planet inside a spreadsheet. No user wanted it and no metric moved. They built it because they had been living inside that codebase for two years. They knew the charting engine the way you know a house you grew up in, including the parts that were ugly, because they had been awake at two in the morning fixing them. Somewhere in all of that the suffering became a kind of ownership, and ownership, without meaning to, turned into something like love, and love wanted to carve a name into the underside of the desk.&lt;/p&gt;

&lt;p&gt;Robinett's room was what months alone with four kilobytes does to a person.&lt;/p&gt;

&lt;p&gt;I have watched an app appear in the time it takes to make coffee, and I have made some of them myself. You describe what you want to a text box and you step away, and when you come back it is there: the routing, the login, a dark mode toggle, a settings page no one will ever visit. It works, mostly. It took eleven minutes, and in those eleven minutes there was no two in the morning and no ugly corner you came to know by heart, only a wall of plausible code that arrived all at once and had never met you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff69o4c18ug4evjsi22it.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff69o4c18ug4evjsi22it.jpg" alt="A ChatGPT conversation. Someone asks for a JavaScript function to shuffle a deck of cards and receives the full code with an explanation." width="800" height="1096"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Somebody else's text box. This is the illustration on the Wikipedia article for vibe coding.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is the part I find hard to say plainly, so I will say it the long way. It baffles me a little, but you don't want to leave a piece of yourself in that app, and I think it is because no piece of yourself went into it in the first place. The egg needed a person who had earned the right to be possessive about a codebase, and eleven minutes is not long enough to earn that.&lt;/p&gt;

&lt;p&gt;You could ask the text box for one, of course, and it would give you one, and it would be a Konami code that makes confetti, and it would carry exactly as much of you as a birthday greeting from your bank.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3f217a2pxbmfz5zzq7sk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3f217a2pxbmfz5zzq7sk.png" alt="The Konami code as ten buttons: up, up, down, down, left, right, left, right, B, A" width="800" height="108"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The Konami code. Type it on the right website and confetti falls, or the page flips, or a dinosaur appears. It has been the default hidden thing since the eighties.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fue2z4mt2ekj97dh5ikwv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fue2z4mt2ekj97dh5ikwv.jpg" alt="npm search results for konami code, showing over a thousand packages that listen for the sequence" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Over a thousand packages on npm that listen for it. You do not write the easter egg. You install it.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I am not saying
&lt;/h2&gt;

&lt;p&gt;It may be tempting to read all this as a plea to go back, and it isn't one. The old way of building software was slow and it hurt, and a great deal of the hurting was, if we are being honest, pointless. The tools are better and the things get built. I use the text box too, and I will keep using it, and I do not think there is anything to apologise for in that.&lt;/p&gt;

&lt;p&gt;But the unauthorised easter egg was proof that a human being had been inside the machine for a long and unpleasant stay. The lawyers made that risky, code review made it visible, the dashboards left it unfunded, and the internet made it brief. Then the generated code took away the one thing it could not survive without, which was someone who had been there long enough to care.&lt;/p&gt;

&lt;p&gt;The software still works, but it never met anyone.&lt;/p&gt;




&lt;p&gt;I write this more solemnly than the subject deserves, and I know it. It is a spreadsheet with a flight simulator in it, and a sheep that changes colour. But I have noticed that the things I make quickly, I do not remember, and the things I made slowly and badly, at hours I should have been asleep, I can still walk through with my eyes closed.&lt;/p&gt;

&lt;p&gt;If you are still building the slow way somewhere, on something no one asked you for, leave the room in, a line that only shows on one day of the year, or a command that is not in the help text and does something small and unnecessary. No one may ever find it, and that was never the point.&lt;/p&gt;

&lt;p&gt;Perhaps the point was only ever this: that somewhere in the program there is a wall with a name on it, and the name is there because a person was.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://www.stimmie.dev/blog/the-death-of-the-easter-egg" rel="noopener noreferrer"&gt;stimmie.dev&lt;/a&gt;. Also on &lt;a href="https://medium.com/@stimmieuwu/the-death-of-the-easter-egg-cde1ef47a66b" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;, &lt;a href="https://www.linkedin.com/pulse/death-easter-egg-simon-ezekiel-mariquit-ebgze/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;, and &lt;a href="https://daily.dev/posts/the-death-of-the-easter-egg-somebody-hid-a-flight-simulator-in-excel-97-then-the-code-started-writ-uxwsm4wyt" rel="noopener noreferrer"&gt;daily.dev&lt;/a&gt;. Source and images on &lt;a href="https://github.com/smmariquit/stimmie.dev" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>discuss</category>
      <category>webdev</category>
      <category>ai</category>
    </item>
    <item>
      <title>I just made a small contribution to modern mathematics!</title>
      <dc:creator>Simonee</dc:creator>
      <pubDate>Sun, 05 Apr 2026 04:15:12 +0000</pubDate>
      <link>https://dev.to/stimmie/i-just-made-a-small-contribution-to-modern-mathematics-2fmj</link>
      <guid>https://dev.to/stimmie/i-just-made-a-small-contribution-to-modern-mathematics-2fmj</guid>
      <description>&lt;p&gt;I was reviewing some competitive programming concepts in preparation for today's Div 4 Codeforces contest and I came across this sequence while doing a problem on recurrence relations (matrix exponentiation): &lt;a href="https://oeis.org/A322054" rel="noopener noreferrer"&gt;https://oeis.org/A322054&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My math senses were strong enough to spot a logical flaw (just one word!) in one of the examples written by Neil Sloane himself, the founder of the Online Encyclopedia of Integer Sequences, that remained undetected for EIGHT YEARS! (you can see in the image that the OEIS was indeed founded by Sloane and that he authored the sequence)&lt;/p&gt;

&lt;p&gt;This led me to create an OEIS account and promptly fix the error :))&lt;/p&gt;

</description>
      <category>algorithms</category>
      <category>computerscience</category>
      <category>devjournal</category>
      <category>learning</category>
    </item>
    <item>
      <title>I'm excited to announce that I have climbed an excavator for the first time!</title>
      <dc:creator>Simonee</dc:creator>
      <pubDate>Wed, 31 Dec 2025 08:28:43 +0000</pubDate>
      <link>https://dev.to/stimmie/im-excited-to-announce-that-i-have-climbed-an-excavator-for-the-first-time-5afe</link>
      <guid>https://dev.to/stimmie/im-excited-to-announce-that-i-have-climbed-an-excavator-for-the-first-time-5afe</guid>
      <description>&lt;p&gt;Most people see a piece of heavy machinery. I see a metaphor for vertical integration. When I reached the top, I didn't just see a construction site. I saw:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Power of Leverage: If you don't move the earth, the earth moves you.&lt;/li&gt;
&lt;li&gt;Operational Excellence: Sometimes you have to get out of the office to understand the "ground floor" of your business.&lt;/li&gt;
&lt;li&gt;Scalability: Why use a shovel when you can be the engine?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Stop dreaming about the view from the top and start climbing the iron. Who’s with me? #GrowthMindset #HeavyLifting #Disruption #InfrastructureLeadership&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
