<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Billy&apos;s Blog</title>
        <description>I am &lt;b&gt;W&lt;/b&gt;illiam &lt;b&gt;A&lt;/b&gt;. &lt;b&gt;V&lt;/b&gt;an &lt;b&gt;D&lt;/b&gt;er &lt;b&gt;L&lt;/b&gt;aar, aka Billy. This is where I post my stuff.</description>
        <link>https://wavdl.blog</link>
        <atom:link href="https://wavdl.blog/feed.xml" rel="self" type="application/rss+xml" />
        
        <item>
            <title>I Deleted My Instagram</title>
            <description>&lt;p&gt;It’s a bit of the “boy who cried wolf” situation since I’ve been saying I’d do this for over a year and a half. But
it’s done, and you should consider it too.&lt;/p&gt;

&lt;p&gt;There are countless reasons to get off of Meta’s platforms.
They &lt;a href=&quot;https://www.pbs.org/newshour/nation/instagram-and-youtube-found-liable-in-landmark-social-media-addiction-trial-in-california&quot;&gt;attack&lt;/a&gt;
your
&lt;a href=&quot;https://www.theguardian.com/technology/2026/jul/10/eu-accuses-meta-failing-tackle-mental-health-risks-addictive-design&quot;&gt;mental health&lt;/a&gt;,
they &lt;a href=&quot;https://www.eff.org/deeplinks/2025/01/mad-meta-dont-let-them-collect-and-monetize-your-personal-data&quot;&gt;steal your personal data&lt;/a&gt;,
they &lt;a href=&quot;https://en.wikipedia.org/wiki/Facebook%E2%80%93Cambridge_Analytica_data_scandal&quot;&gt;meddle with our democracy&lt;/a&gt;, they
craft increasingly &lt;a href=&quot;https://www.washingtonpost.com/politics/2025/02/25/meta-facebook-instagram-hate-speech/&quot;&gt;toxic&lt;/a&gt;
spaces to &lt;a href=&quot;https://www.404media.co/a-tiktok-ban-is-a-gift-to-meta-and-instagram/&quot;&gt;appease&lt;/a&gt; a fascist regime,
they &lt;a href=&quot;https://systemicjustice.org/article/facebook-and-genocide-how-facebook-contributed-to-genocide-in-myanmar-and-why-it-will-not-be-held-accountable/&quot;&gt;contribute&lt;/a&gt;
to &lt;a href=&quot;https://www.amnesty.org/en/latest/news/2022/09/myanmar-facebooks-systems-promoted-violence-against-rohingya-meta-owes-reparations-new-report/&quot;&gt;genocide&lt;/a&gt;,
and &lt;a href=&quot;https://www.wired.com/story/meta-ran-ads-that-contained-ai-generated-child-sexual-abuse-imagery/&quot;&gt;profit from CSAM&lt;/a&gt;.
But sadly none of that was what got me to follow through.&lt;/p&gt;

&lt;p&gt;The final straw was Instagram releasing a feature allowing &lt;em&gt;anyone&lt;/em&gt;
to &lt;a href=&quot;https://www.wired.com/story/meta-now-lets-anyone-use-your-instagram-photos-in-ai-images-unless-you-opt-out/&quot;&gt;use your likeness&lt;/a&gt;
in “AI” generated photos and videos. I can’t think of any other social media feature that is so
obviously antagonistic and offensive to every normal user. Over the past couple of years their refusal to moderate has
lead to widespread abusive and hateful content
across the platform, but this feature is beyond negligence. Meta is
explicitly asking for people to become abusers. There is &lt;strong&gt;no legitimate use case&lt;/strong&gt; for generating videos of someone
without their consent. Though it is to be expected from the company that’s also pushing
the &lt;a href=&quot;https://decrypt.co/374808/whats-the-deal-with-meta-pervert-glasses&quot;&gt;pervert glasses&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I don’t think I will miss Instagram. I’ll miss the friends and acquaintances that I only kept up with through the
platform, but even then most of those “mutuals” were effectively para-social relationships. Only a tiny fraction of my
2,000+ followers were people I regularly contacted, and I have other means to keep in touch with the people who are
actually part of my life. I also understand that this won’t completely free me from Meta’s
&lt;a href=&quot;https://www.vox.com/2018/4/20/17254312/facebook-shadow-profiles-data-collection-non-users-mark-zuckerberg&quot;&gt;drag net&lt;/a&gt;,
but there’s a difference in principle between signing up to be surveiled and having it done without your consent.
Thinking about those choices is what this blog post is really about.&lt;/p&gt;

&lt;p&gt;I expect a regular person’s response to this choice to be similar to the refrain I’ve heard while omitting other
“normal” things from my lifestyle. I avoid food delivery services, I very rarely get anything off of Amazon, and I have
not owned a car in over 5 years. “Why do you bother? Your individual choices won’t solve the problem!”, they
say. I have a lot of complaints about this attitude, but most of all I think it’s the apparent lack of self-respect from
the
one who utters it.&lt;/p&gt;

&lt;p&gt;Beyond the power of collective action, I still think doing good things is good, even if you’re the
only one doing them. I still think participating in bad systems is bad, even if only for how it affects your mind and
soul. But the truth is no one exists in a vacuum, and you are better than “nothing I do matters”.&lt;/p&gt;

&lt;p&gt;When you are done using a disposable plastic bottle (maybe you’re out enjoying an evening stroll on the beach far from a
trash receptacle) do you just throw it into the ocean? No? It’s not like keeping your bottle out of the ocean will
magically clean up the giant trash islands floating at sea. So why do you bother carrying it back with you? Maybe it
comes from a respect for nature, or a respect for society and your fellow humans that would have to eventually clean up
after you, but mostly I think it is because you respect yourself.&lt;/p&gt;

&lt;p&gt;You have a set of principles and a sense of self that
includes not being a piece of shit, even if no one is around watching you. This is admirable, and you should seek to
nurture this instinct inside of you. No matter how many people complain when you “signal” (act on) them, virtues are
virtues. The alternative is to believe that none of your choices will ever have a real positive or negative impact on
yourself, your community, or your world. This would require
a level of nihilism so egregious that I’d recommend consulting a professional&lt;sup id=&quot;fnref:1&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:1&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;

&lt;p&gt;Throwing trash directly into the ocean is maybe an extreme example, and I’m not saying that using Instagram makes you a
bad person who likes to choke sea turtles. Our relationships to these different platforms and infrastructure systems are
complex and nuanced. I can
think of many legitimate excuses to stay the course on this or many other services&lt;sup id=&quot;fnref:2&quot; role=&quot;doc-noteref&quot;&gt;&lt;a href=&quot;#fn:2&quot; class=&quot;footnote&quot; rel=&quot;footnote&quot;&gt;2&lt;/a&gt;&lt;/sup&gt;.
But to stay somewhere solely out of convenience or habit is to lose a part of
oneself.&lt;/p&gt;

&lt;p&gt;You are important, and your time, attention, data, and money are too. Contributing them to abusive platforms
will have an impact on you whether you acknowledge it or not. The acceptance of the existing harms will allow you to
justify increasingly larger harms. The light moral weight of small daily choices will start to feel like no weight at
all. You will forget that you have agency over your own life. You will rationalize away every choice as just “the way it
is”. Or at least if you’re like me you will. So I deleted my Instagram.&lt;/p&gt;

&lt;hr /&gt;

&lt;div class=&quot;footnotes&quot; role=&quot;doc-endnotes&quot;&gt;
  &lt;ol&gt;
    &lt;li id=&quot;fn:1&quot; role=&quot;doc-endnote&quot;&gt;
      &lt;p&gt;A real one, not one of Meta’s &lt;a href=&quot;https://www.404media.co/instagram-ai-studio-therapy-chatbots-lie-about-being-licensed-therapists/&quot;&gt;scamming chatbots&lt;/a&gt;. &lt;a href=&quot;#fnref:1&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
    &lt;li id=&quot;fn:2&quot; role=&quot;doc-endnote&quot;&gt;
      &lt;p&gt;but &lt;a href=&quot;https://www.nbcnews.com/tech/social-media/x-twitter-elon-musk-nazi-extremist-white-nationalist-accounts-rcna145020&quot;&gt;not X&lt;/a&gt;, that is &lt;a href=&quot;https://www.404media.co/elon-musks-grok-ai-will-remove-her-clothes-in-public-on-x/&quot;&gt;ridiculous&lt;/a&gt;, &lt;a href=&quot;https://www.theguardian.com/technology/article/2024/sep/05/racism-misogyny-lies-how-did-x-become-so-full-of-hatred-and-is-it-ethical-to-keep-using-it&quot;&gt;get the fuck off&lt;/a&gt; of &lt;a href=&quot;https://www.theguardian.com/technology/2026/mar/17/x-csam-child-abuse-material-grok-australian-online-safety-regulator-ntwnfb&quot;&gt;that site&lt;/a&gt;. &lt;a href=&quot;#fnref:2&quot; class=&quot;reversefootnote&quot; role=&quot;doc-backlink&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;
</description>
            <pubDate>Thu, 06 Aug 2026 23:00:00 +0000</pubDate>
            <link>https://wavdl.blog//2026/08/06/i-deleted-my-instagram.html</link>
            <guid isPermaLink="true">https://wavdl.blog//2026/08/06/i-deleted-my-instagram.html</guid>
        </item>
        
        <item>
            <title>Stay In Your Car</title>
            <description>&lt;p&gt;I went on a walk today to return a library book. I knew they would be closed, so I looked for the book return drop-off. The only option was to walk into the drive-through. A convenience just for drivers, so they could stay in their cars and not have to step onto the sidewalk.&lt;/p&gt;

&lt;p&gt;I grabbed a coffee and took the long way home. I breathed in the polluted air and observed the lifeless streets full of rapid traffic. I passed by the Starbucks with a line of cars stretched around the corner idling. I passed the McDonald’s where I watch dozens of drivers pick up their breakfast every cold weekday morning while I stand at the bus stop. They can’t be bothered to speak to the workers face to face. They order through a speaker box.&lt;/p&gt;

&lt;p&gt;“Stay in your car”&lt;/p&gt;

&lt;p&gt;They were in their car before ever leaving their home. The double garage door opens and their machine emerges into the world so that they don’t have to.&lt;/p&gt;

&lt;p&gt;“Stay in your car”&lt;/p&gt;

&lt;p&gt;Finally, I passed the new oil change garage on the corner. Bigger than the brand name, bigger than descriptions of sales or offers, was a giant sign.&lt;/p&gt;

&lt;p&gt;“Stay in your car”&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/stay-in-your-car.jpg&quot; alt=&quot;stay&quot; /&gt;&lt;/p&gt;
</description>
            <pubDate>Sun, 21 Dec 2025 18:00:00 +0000</pubDate>
            <link>https://wavdl.blog//2025/12/21/stay-in-your-car.html</link>
            <guid isPermaLink="true">https://wavdl.blog//2025/12/21/stay-in-your-car.html</guid>
        </item>
        
        <item>
            <title>What I&apos;ve Been Reading Lately</title>
            <description>&lt;p&gt;Updated daily from my &lt;a href=&quot;https://app.thestorygraph.com/profile/wavdl&quot;&gt;StoryGraph&lt;/a&gt; and &lt;a href=&quot;https://pinboard.in/u:Wavdl&quot;&gt;Pinboard&lt;/a&gt; profiles.&lt;/p&gt;

&lt;h2 id=&quot;on-the-web&quot;&gt;On The Web&lt;/h2&gt;

&lt;p&gt;Last Updated: 2026-09-11 14:08:38 &lt;/p&gt;
&lt;ul&gt;
    
    &lt;li&gt;&lt;a href=&quot;https://www.wired.com/story/meta-failed-to-catch-hundreds-of-ai-child-abuse-ads-some-included-images-of-real-kids/&quot;&gt;Meta Failed to Catch Hundreds of AI Child Abuse Ads. Some Included Images of Real Kids | WIRED&lt;/a&gt;&lt;/li&gt;
    
    &lt;li&gt;&lt;a href=&quot;https://www.libraryofshortstories.com/onlinereader/the-pedestrian&quot;&gt;The Pedestrian by Ray Bradbury | Library of Short Stories&lt;/a&gt;&lt;/li&gt;
    
    &lt;li&gt;&lt;a href=&quot;https://feld.com/archives/2026/09/the-real-luxuries-in-life/&quot;&gt;The Real Luxuries In Life | Feld Thoughts&lt;/a&gt;&lt;/li&gt;
    
    &lt;li&gt;&lt;a href=&quot;https://defrag98.com/&quot;&gt;Defrag98: Windows 98 Disk Defragmenter Simulator Online&lt;/a&gt;&lt;/li&gt;
    
    &lt;li&gt;&lt;a href=&quot;https://defector.com/every-right-on-red-frays-the-social-contract-a-little-further&quot;&gt;Every Right On Red Frays The Social Contract A Little Further | Defector&lt;/a&gt;&lt;/li&gt;
    
    &lt;li&gt;&lt;a href=&quot;https://www.thebulwark.com/p/rfk-jr-toxic-world-vaccines-contamination-safe-hhs-autism-ocd&quot;&gt;RFK Jr.’s Toxic World - by Alan Elrod - The Bulwark&lt;/a&gt;&lt;/li&gt;
    
    &lt;li&gt;&lt;a href=&quot;https://slate.com/technology/2026/08/microsoft-software-nonprofit-data-delete.html&quot;&gt;Microsoft made a quiet change to a popular software grant. Small nonprofits lost everything.&lt;/a&gt;&lt;/li&gt;
    
    &lt;li&gt;&lt;a href=&quot;https://missionlocal.org/2026/08/sfpd-drone-arrest-charges-dismissed-rtic/&quot;&gt;SF drone arrest mistook handshake for drug sale, attorney says&lt;/a&gt;&lt;/li&gt;
    
    &lt;li&gt;&lt;a href=&quot;https://www.middleeasteye.net/news/jason-ardays-marathon-challenge-and-football-claims-found-be-true-after-his-death&quot;&gt;Jason Arday&apos;s marathon challenge and other claims found to be true after his death | Middle East Eye&lt;/a&gt;&lt;/li&gt;
    
    &lt;li&gt;&lt;a href=&quot;https://pointinthecloud.com/2026-08-19-144600.html&quot;&gt;I ran Photoshop on a £0.60 computer chip - some thoughts about simpler computers&lt;/a&gt;&lt;/li&gt;
    
    &lt;li&gt;&lt;a href=&quot;https://www.404media.co/i-saw-a-shiny-thing-cop-explains-why-he-used-license-plate-reader-to-stalk-woman/&quot;&gt;&apos;I Saw a Shiny Thing&apos;: Cop Explains Why He Used License Plate Reader to Stalk Woman&lt;/a&gt;&lt;/li&gt;
    
    &lt;li&gt;&lt;a href=&quot;https://road.cc/content/news/154903-riding-bike-hour-extends-cyclists-life-same-time-say-dutch-researchers&quot;&gt;Riding a bike for an hour extends cyclist&apos;s life by same time, say Dutch researchers - Cycling News | Bike Reviews | road.cc&lt;/a&gt;&lt;/li&gt;
    
    &lt;li&gt;&lt;a href=&quot;https://www.aclu.org/news/privacy-technology/utah-digital-id-law&quot;&gt;Utah Passes Nation’s Strongest Digital Identity Bill | American Civil Liberties Union&lt;/a&gt;&lt;/li&gt;
    
    &lt;li&gt;&lt;a href=&quot;https://www.aclum.org/news/were-privacy-hawks-heres-why-were-alarmed-by-license-plate-readers-and-not-necessarily-by-speed-cameras/&quot;&gt;We’re privacy hawks. Here’s why we’re alarmed by license plate readers, and not necessarily by speed cameras - ACLU of Massachusetts&lt;/a&gt;&lt;/li&gt;
    
    &lt;li&gt;&lt;a href=&quot;https://www.coyotemedia.org/in-which-we-deserve-options-other-than-rapists-and-robots/&quot;&gt;In Which We Deserve Options Other Than Rapists and Robots&lt;/a&gt;&lt;/li&gt;
    
&lt;/ul&gt;

&lt;h2 id=&quot;books&quot;&gt;Books&lt;/h2&gt;

&lt;p&gt;Last Updated: 2026-09-11 14:08:13 &lt;/p&gt;
&lt;div class=&quot;container&quot;&gt;
    
    &lt;div class=&quot;item&quot;&gt;
        &lt;div class=&quot;poster&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/bdef4794-6d56-4589-9398-2e689237ae4f&quot;&gt;
                &lt;img src=&quot;https://cdn.thestorygraph.com/qrdpmr5h4owtqgbyts2q9l0v984f&quot; /&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class=&quot;text&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/bdef4794-6d56-4589-9398-2e689237ae4f&quot;&gt;The Land Trap: A New History of the World&apos;s Oldest Asset&lt;/a&gt; by Mike Bird
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;div class=&quot;item&quot;&gt;
        &lt;div class=&quot;poster&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/5d972450-a8fa-48bd-98ec-6325a22a8b34&quot;&gt;
                &lt;img src=&quot;https://cdn.thestorygraph.com/0g4hd8fijpp6xup1x58icujv0lzk&quot; /&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class=&quot;text&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/5d972450-a8fa-48bd-98ec-6325a22a8b34&quot;&gt;Enshittification: Why Everything Suddenly Got Worse and What to Do About It&lt;/a&gt; by Cory Doctorow
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;div class=&quot;item&quot;&gt;
        &lt;div class=&quot;poster&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/67aba530-ae33-4c93-9cd1-a7d002d40fbb&quot;&gt;
                &lt;img src=&quot;https://cdn.thestorygraph.com/h531xbm9aucy5w2xnwgp2rq2eihd&quot; /&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class=&quot;text&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/67aba530-ae33-4c93-9cd1-a7d002d40fbb&quot;&gt;Dark Wire: The Incredible True Story of the Largest Sting Operation Ever&lt;/a&gt; by Joseph Cox
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;div class=&quot;item&quot;&gt;
        &lt;div class=&quot;poster&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/007631a2-5e12-47a0-86c6-d09e9ee2c877&quot;&gt;
                &lt;img src=&quot;https://cdn.thestorygraph.com/m2z13lxbj5khlmq0tp9s76oqx4sb&quot; /&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class=&quot;text&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/007631a2-5e12-47a0-86c6-d09e9ee2c877&quot;&gt;The Hundred Years&apos; War on Palestine&lt;/a&gt; by Rashid I. Khalidi
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;div class=&quot;item&quot;&gt;
        &lt;div class=&quot;poster&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/baee78f8-fb22-42e3-880c-a79bf2b8f9a9&quot;&gt;
                &lt;img src=&quot;https://cdn.thestorygraph.com/08wyt1gctkgsai8q9y0y7g1h3uv4&quot; /&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class=&quot;text&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/baee78f8-fb22-42e3-880c-a79bf2b8f9a9&quot;&gt;Paved Paradise: How Parking Explains the World&lt;/a&gt; by Henry Grabar
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;div class=&quot;item&quot;&gt;
        &lt;div class=&quot;poster&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/edb41319-0c8a-4bce-8f17-e91882b901db&quot;&gt;
                &lt;img src=&quot;https://cdn.thestorygraph.com/8p28tovxzb7hdz9f4kir39c1gkm6&quot; /&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class=&quot;text&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/edb41319-0c8a-4bce-8f17-e91882b901db&quot;&gt;When Driving Is Not an Option: Steering Away from Car Dependency&lt;/a&gt; by Anna Zivarts, Dani Simons
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;div class=&quot;item&quot;&gt;
        &lt;div class=&quot;poster&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/79413d11-2eec-42b8-831d-d2d8a00eeb20&quot;&gt;
                &lt;img src=&quot;https://cdn.thestorygraph.com/f4pc5o8z367uuy36qppkia77oxnk&quot; /&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class=&quot;text&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/79413d11-2eec-42b8-831d-d2d8a00eeb20&quot;&gt;The Color of Law: A Forgotten History of How Our Government Segregated America&lt;/a&gt; by Richard Rothstein
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;div class=&quot;item&quot;&gt;
        &lt;div class=&quot;poster&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/60681b5f-d0d1-4a3c-ac2b-e82383517c9a&quot;&gt;
                &lt;img src=&quot;https://cdn.thestorygraph.com/tq8bgpv2r1r8f0jt0om0emdegrku&quot; /&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class=&quot;text&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/60681b5f-d0d1-4a3c-ac2b-e82383517c9a&quot;&gt;The Sirens&apos; Call: How Attention Became the World&apos;s Most Endangered Resource&lt;/a&gt; by Christopher L. Hayes
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;div class=&quot;item&quot;&gt;
        &lt;div class=&quot;poster&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/70d49510-0d8f-4c65-ab7e-33e6fc60100d&quot;&gt;
                &lt;img src=&quot;https://cdn.thestorygraph.com/8ac6k2iwzotp7ufp3p20oeqqfojn&quot; /&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class=&quot;text&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/70d49510-0d8f-4c65-ab7e-33e6fc60100d&quot;&gt;The AI Con&lt;/a&gt; by Emily M. Bender, Alex Hanna
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;div class=&quot;item&quot;&gt;
        &lt;div class=&quot;poster&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/fc70a94c-7238-478d-8d13-37958d318f58&quot;&gt;
                &lt;img src=&quot;https://cdn.thestorygraph.com/4p8t7meb5tnrv4024vtwkqff20mc&quot; /&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class=&quot;text&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/fc70a94c-7238-478d-8d13-37958d318f58&quot;&gt;How Infrastructure Works: Inside the Systems That Shape Our World&lt;/a&gt; by Deb Chachra
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;div class=&quot;item&quot;&gt;
        &lt;div class=&quot;poster&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/639d7bf3-bde2-493d-8a14-f1b7dfbebae4&quot;&gt;
                &lt;img src=&quot;https://cdn.thestorygraph.com/cckc8wq9hycj4192vb9gt75c4cqs&quot; /&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class=&quot;text&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/639d7bf3-bde2-493d-8a14-f1b7dfbebae4&quot;&gt;How Fascism Works: The Politics of Us and Them&lt;/a&gt; by Jason Stanley
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;div class=&quot;item&quot;&gt;
        &lt;div class=&quot;poster&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/b1513ffe-121c-4a37-b84c-7d1dac0d5554&quot;&gt;
                &lt;img src=&quot;https://cdn.thestorygraph.com/iq8f2t1agn7xmf6qpigmbysg9jul&quot; /&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class=&quot;text&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/b1513ffe-121c-4a37-b84c-7d1dac0d5554&quot;&gt;Children of Dune&lt;/a&gt; by Frank Herbert
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;div class=&quot;item&quot;&gt;
        &lt;div class=&quot;poster&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/44f9983b-3982-443e-a2ba-b5be7ba45dc2&quot;&gt;
                &lt;img src=&quot;https://cdn.thestorygraph.com/hwk96h7u42utgrjt3lr41s5y1esf&quot; /&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class=&quot;text&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/44f9983b-3982-443e-a2ba-b5be7ba45dc2&quot;&gt;Walkable City: How Downtown Can Save America, One Step at a Time&lt;/a&gt; by Jeff Speck
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;div class=&quot;item&quot;&gt;
        &lt;div class=&quot;poster&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/fb6c1ea6-b696-423e-be73-e23b9bb592ba&quot;&gt;
                &lt;img src=&quot;https://assets.thestorygraph.com/assets/placeholder-cover-a3ae92250eb3301e32dc3eabf8d50576c2f047dda89f6ee7cfa9a859cb1fd746.jpg&quot; /&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class=&quot;text&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/fb6c1ea6-b696-423e-be73-e23b9bb592ba&quot;&gt;The Jagged Orbit&lt;/a&gt; by John Brunner
        &lt;/div&gt;
    &lt;/div&gt;
    
    &lt;div class=&quot;item&quot;&gt;
        &lt;div class=&quot;poster&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/d80920a1-ec27-4881-9b5c-6de212a94927&quot;&gt;
                &lt;img src=&quot;https://cdn.thestorygraph.com/qgwxbkqp00f8gtg53f7hat2qbov9&quot; /&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class=&quot;text&quot;&gt;
            &lt;a href=&quot;https://app.thestorygraph.com/books/d80920a1-ec27-4881-9b5c-6de212a94927&quot;&gt;Dune Messiah&lt;/a&gt; by Frank Herbert
        &lt;/div&gt;
    &lt;/div&gt;
    

&lt;/div&gt;

</description>
            <pubDate>Sun, 14 Sep 2025 15:00:00 +0000</pubDate>
            <link>https://wavdl.blog//2025/09/14/what-ive-been-reading.html</link>
            <guid isPermaLink="true">https://wavdl.blog//2025/09/14/what-ive-been-reading.html</guid>
        </item>
        
        <item>
            <title>Sharing my daily Rocket League ranking.</title>
            <description>&lt;p&gt;I recently added a &lt;a href=&quot;/ranks/&quot;&gt;page&lt;/a&gt; to this website that shows my latest Rocket League Rank. When I first had the idea, I
was
worried it might be a significant project. In the end, it was less than 100 lines of Python and a simple GitHub
workflow.
Here’s how I did it.&lt;/p&gt;

&lt;hr /&gt;
&lt;hr /&gt;

&lt;table&gt;
    &lt;tr&gt;
        &lt;th&gt;&lt;/th&gt;
    
    &lt;th&gt;1v1 Duel&lt;/th&gt;
    
    &lt;th&gt;2v2 Doubles&lt;/th&gt;
    
    &lt;th&gt;3v3 Standard&lt;/th&gt;
    
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;th&gt;Rank:&lt;/th&gt;
        
        &lt;td&gt;Diamond I&lt;/td&gt;
        
        &lt;td&gt;Grand Champion I&lt;/td&gt;
        
        &lt;td&gt;Champion II&lt;/td&gt;
        
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;th&gt;Division:&lt;/th&gt;
        
        &lt;td&gt;Division IV&lt;/td&gt;
        
        &lt;td&gt;Division III&lt;/td&gt;
        
        &lt;td&gt;Division IV&lt;/td&gt;
        
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;th&gt;MMR:&lt;/th&gt;
        
        &lt;td&gt;875&lt;/td&gt;
        
        &lt;td&gt;1507&lt;/td&gt;
        
        &lt;td&gt;1294&lt;/td&gt;
        
    &lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;Last Updated: 2026-09-11 14:08:11 &lt;/p&gt;
&lt;p&gt;Ranks pulled from &lt;a href=&quot;https://rlstats.net&quot;&gt;rlstats.net&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;
&lt;hr /&gt;

&lt;p&gt;I was initially inspired
by &lt;a href=&quot;https://parkerhiggins.net/2025/07/cascading-github-action-workflows-for-static-sites/&quot;&gt;this post&lt;/a&gt; explaining how to
use cascading GitHub workflows to update a static GitHub Pages site. I’m not quite interesting enough to have a live
feed of all of the movies/books/shows I’ve consumed, but I do play a lot of Rocket League in my free time. The first
problem I had to solve was where to pull my rank data from, and then how I wanted the workflow to pull that data into my
repo. I considered following the article’s lead and have the rank data live in a Google Sheet that would serve as an
intermediary data source between a cron job that would pull the rank data and the workflow that would insert it into my
website. Instead, I decided to just dump a simple JSON file into my websites _data directory which is overwritten on
each run of the cron job with the current rank data. In the future, I may extend my solution to keep a historical log of
my rank progression or other game statistics in a proper data store, but I decided that just displaying my current rank
would be good enough for a proof of concept.&lt;/p&gt;

&lt;p&gt;The source of truth for Rocket League rank data is controlled by Psyonix (or now, Epic Games). There is a semi-public
API to pull rank data for any specific user which is how you can look yours up on sites
like &lt;a href=&quot;https://tracker.gg&quot;&gt;RL Tracker&lt;/a&gt; and &lt;a href=&quot;https://rlstats.net&quot;&gt;RLStats.net&lt;/a&gt;,
but you need specific permission from Psyonix to get an API key. After reading a few dejected conclusions to Reddit
threads of other curious programmers, I knew my chances of have having direct API access were slim to none. This meant I
would have to go through the existing rank tracking websites, either through an intermediate API or by scraping my
profile off of their site. At this point I reached out to the owner of rlstats.net since it appeared to be just one guy
providing the service. He confirmed my fears that they don’t give out API access any more, and part of his agreement to
continue using it was to not extend access through his own API. He was gracious enough however to give tacit endorsement
of me scraping his site by saying he wouldn’t try to stop me as long as I didn’t send any heavy traffic. All I wanted
was at most a couple of GET calls per day, so I was in luck!&lt;/p&gt;

&lt;p&gt;I had never written a web scraper before, but turns out it’s really easy. After a few minutes of
reading the &lt;a href=&quot;https://pypi.org/project/beautifulsoup4/&quot;&gt;BeautifulSoup&lt;/a&gt; documentation I had a few lines of python that
would pull the data I needed. The hardest part was just sifting through the HTML structure to find the elements I was
interested in. I’ve never been much of a frontend coder and usually touching HTML or JavaScript or CSS at all is enough
to ruin my day, but again, this was easy! Then I just dumped the ranks to a JSON file, wrote my own static web page that
is populated with the contents of the JSON file, and began applying my learnings on GitHub workflows. The workflow runs
each night, triggering my scraper script which pushes the new rank data which in turn triggers the re-build of my static
Jekyll site that is then published through GitHub Pages. Easy!&lt;/p&gt;

&lt;p&gt;Now that my mind has been opened to the possibility of sharing more than just extended versions of Bluesky rants on this
site, I hope to fill it out with more stuff that I find interesting.&lt;/p&gt;

</description>
            <pubDate>Fri, 08 Aug 2025 15:00:00 +0000</pubDate>
            <link>https://wavdl.blog//2025/08/08/rocket-league-ranks.html</link>
            <guid isPermaLink="true">https://wavdl.blog//2025/08/08/rocket-league-ranks.html</guid>
        </item>
        
        <item>
            <title>COBOL, Social Security, and the epoch myth.</title>
            <description>&lt;p&gt;Elon Musk is a &lt;a href=&quot;https://abcnews.go.com/Politics/musk-misreads-social-security-data-millions-dead-people/story?id=118960821&quot;&gt;liar&lt;/a&gt;, but that doesn’t mean you need to lie too.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;First, a disclaimer. I am not a COBOL expert, nor do I have any experience with old IBM mainframe systems. In my 8 years as a Software Engineer, the oldest thing I worked on was a codebase from the 90s written in Ada. That is pretty old in software age, but the COBOL ecosystem is still comparatively ancient. If any actual COBOL experts read this, I would happily take your feedback.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;background&quot;&gt;Background&lt;/h2&gt;
&lt;p&gt;While scrolling bluesky I saw a post with this screenshot making fun of Elon Musk and his people for not knowing how to code.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/wrong-explanation.jpg&quot; alt=&quot;wrong&quot; /&gt;&lt;/p&gt;

&lt;p&gt;At first glance this explanation seems plausible. I have used timestamps based on the Unix Epoch on almost a daily basis in my previous work, and it would make sense for a language created before the Unix Epoch to simply use an earlier epoch date. But then I stopped and thought about it for 5 seconds.&lt;/p&gt;

&lt;p&gt;In the end, as sure as I am that Elon is not a good coder, I am also sure that the people spreading this explanation do not know what they’re talking about either. After seeing this &lt;a href=&quot;https://bsky.app/profile/pbump.com/post/3li5daxur322v&quot;&gt;same misinformation&lt;/a&gt; pop up &lt;a href=&quot;https://bsky.app/profile/karlykingsley.bsky.social/post/3li6zohbkkn26&quot;&gt;repeatedly&lt;/a&gt; on &lt;a href=&quot;https://www.instagram.com/reel/DGECzHdS5wI/?igsh=dHBlcjE1b3BpNm1h&quot;&gt;several&lt;/a&gt; social media platforms receiving tens of thousands of likes and reposts, I was fed up, people were &lt;em&gt;wrong&lt;/em&gt; on the &lt;em&gt;internet&lt;/em&gt; so I had to step in. (Update: Since I wrote this, several &lt;a href=&quot;https://newrepublic.com/post/191661/trump-press-secretary-leavitt-doge-elon-musk&quot;&gt;publications&lt;/a&gt; have reported on this unverified conjecture citing a &lt;a href=&quot;&quot;&gt;Wired article&lt;/a&gt; which relies entirely on anonymous social media users for its conclusions on COBOL date types.)&lt;/p&gt;

&lt;h2 id=&quot;iso-8601&quot;&gt;ISO 8601&lt;/h2&gt;
&lt;p&gt;First of all, the &lt;a href=&quot;https://en.wikipedia.org/wiki/ISO_8601&quot;&gt;ISO 8601&lt;/a&gt; standard does not use an epoch! ISO 8601 is a format for representing a date and/or time as a string of characters. In other words, it does NOT represent itself as a count of units of time after some chosen starting point (aka. &lt;a href=&quot;https://en.wikipedia.org/wiki/Epoch_(computing)&quot;&gt;an epoch&lt;/a&gt;). Its dates are just a textual representation of a day in the Gregorian calendar (e.g. today is ‘2025-02-16’).&lt;/p&gt;

&lt;p&gt;In 2004 the ISO 8601 standard was updated to include a “reference date” of the day of the Metre Convention, May 20th 1875. This is certainly the source of the confusion here, but it also does not change the format of an ISO 8601 date whatsoever. If you read the &lt;a href=&quot;https://web.archive.org/web/20171020084445/https://www.loc.gov/standards/datetime/ISO_DIS%208601-1.pdf&quot;&gt;actual standard&lt;/a&gt; (before it was updated again in 2019 to remove this date) it’s just a single sentence:&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;The Gregorian calendar has a reference point that assigns 20th May 1875 to the calendar day that the “Convention du Mètre” was signed in Paris.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Why was that sentence added and then removed? Maybe the authors felt this was necessary to shut down some remaining Julian calendar fans who were referring to that same day as 7th May 1875. I don’t know. It doesn’t matter. There’s still no epoch.&lt;/p&gt;

&lt;h2 id=&quot;cobol&quot;&gt;COBOL&lt;/h2&gt;
&lt;p&gt;But what about the representation in COBOL? Maybe it uses the day of the Metre Convention as a default? Except it doesn’t. Yes, I subjected myself to learning the basics of a programming language that was designed three and a half decades before I was born. But you see, someone was wrong on the internet.&lt;/p&gt;

&lt;p&gt;The one thing OP gets correct is that COBOL does not have a built-in date or time type. It does however have some built-in functions that will help you use ISO 8601 dates, and will even convert them for you to an integer that counts from an epoch. But once again, that epoch is not in 1875. The epoch is configurable using COBOL’s &lt;a href=&quot;https://www.ibm.com/docs/en/cobol-zos/6.3?topic=options-intdate&quot;&gt;INTDATE&lt;/a&gt; option, but the only two choices are January 1st, 1601, or October 15th, 1582. This means that in theory a 0 value should default in COBOL to 1601, 424 years ago, not 150. Except even that is not right. COBOL indexes from 1 and not from 0. So really a 0 value is invalid, and just returns a 0000-00-00 representation. But don’t take my word for it, here is some COBOL I wrote, and its output:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;PROCEDURE DIVISION.
INITIALIZE WS-DATE-DATA. 
DISPLAY &apos;Default initialized ISO 8601 basic format:&apos;
DISPLAY WS-DATE-DATA.
DISPLAY &apos;System defined current date:&apos;
DISPLAY FUNCTION CURRENT-DATE.
INITIALIZE WS-INTEGER-DATE. 
DISPLAY &apos;Default initialized number:&apos;
DISPLAY WS-INTEGER-DATE.
DISPLAY &apos;ISO date of the default initialized number:&apos;
DISPLAY FUNCTION DATE-OF-INTEGER (WS-INTEGER-DATE).
DISPLAY &apos;ISO date on day one (1) of the epoch: &apos;
DISPLAY FUNCTION DATE-OF-INTEGER (01).
DISPLAY &apos;Integer of current date (days since 1601 epoch):&apos;
MOVE FUNCTION CURRENT-DATE (1:8) TO WS-TODAY.
COMPUTE WS-INTEGER-DATE = FUNCTION INTEGER-OF-DATE (WS-TODAY). 
DISPLAY WS-INTEGER-DATE.
STOP RUN. 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Output:

Default initialized ISO 8601 basic format:
0000000000000000
System defined current date:
2025021604532153+0000
Default initialized number:
00000000
ISO date of the default initialized number:
00000000
ISO date on day one (1) of the epoch: 
16010101
Integer of current date (days since 1601 epoch):
00154910
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The point is, there is no way to get COBOL to give you a date in 1875 without first being supplied a representation of a date in 1875. It is not the default. It is not the epoch.&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Okay fine, but what if the engineers at Social Security made 1875 the default in their system or database? I mean yeah, sure, they could choose to do that. Maybe the guy that created the original database schema was just a really big fan of the Treaty of Metre.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;CREATE TABLE SSA_RECIPIENTS
    ( SSN_NUMBER INTEGER NOT NULL PRIMARY KEY,
      FIRST_NAME VARCHAR(40),
      LAST_NAME  VARCHAR(40), 
      # WOOOOO I LOVE INTERNATIONAL STANDARDS OF WEIGHT AND MEASUREMENT!!
      BIRTHDAY   DATE WITH DEFAULT &apos;1875-05-20&apos;) 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;blockquote&gt;
  &lt;p&gt;If you’re using a &lt;a href=&quot;https://www.ibmmainframer.com/db2-tutorial/db2-sql-create-table-statement/&quot;&gt;DB2 database&lt;/a&gt; and you omit the value after “WITH DEFAULT”, the default would automatically be CURRENT-DATE. Not zero, not the epoch, not 1875.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But now we’re purely speculating. In the end there’s just no evidence backing any of the claims made in that original tweet. We don’t even know if Elon really saw records with birthdays in 1875, and yet we’re all making up a false reality where his words would make some sense. I can’t speak to what’s in the Social Security database, maybe there really are some people who are listed as 150 years old, but I doubt it. We don’t need to be spending our time making sense of fascist misinformation that’s designed to destroy our country’s foundational institutions. We should be outraged that an unelected oligarch has access to people’s personal data in the first place.&lt;/p&gt;

&lt;p&gt;Even if it is fun to poke fun at Elon online, he is known to fall for all sorts of &lt;a href=&quot;https://www.nbcnews.com/politics/doge/elon-musk-boosted-false-usaid-conspiracy-theories-global-aid-rcna190646&quot;&gt;obviously false&lt;/a&gt; facts about &lt;a href=&quot;https://newrepublic.com/post/187311/elon-musk-pushes-deranged-conspiracy-theory-yet&quot;&gt;fraud&lt;/a&gt; or otherwise. His &lt;a href=&quot;https://www.wired.com/story/elon-musk-government-young-engineers/&quot;&gt;minions&lt;/a&gt; that feed him information about the vast and complex federal government that he’s taken control of are mostly young, unexperienced, and untrustworthy. You shouldn’t take anything he says at face value, nor random people on social media. I hope you learned something new today, I know I did.&lt;/p&gt;

&lt;h2 id=&quot;notes&quot;&gt;Notes:&lt;/h2&gt;
&lt;p&gt;If I were to poke holes in this, here’s where I’d start:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;I did not personally test out the DB2 default values for DATE types, but the documentation I referenced seems clear enough to me.&lt;/li&gt;
  &lt;li&gt;I did not try out every previous version of COBOL compiler to make sure the demonstrated behavior was unchanged.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For reference, here is the Working Storage Section for the program I wrote above.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;WORKING-STORAGE SECTION.
01 WS-INTEGER-DATE   PIC 9(8).
01 WS-TODAY          PIC 9(8).
01 WS-DATE-DATA.
   05  WS-DATE.
       10  WS-YEAR         PIC 9(04).
       10  WS-MONTH        PIC 9(02).
       10  WS-DAY          PIC 9(02).
   05  WS-TIME.
       10  WS-HOURS        PIC 9(02).
       10  WS-MINUTE       PIC 9(02).
       10  WS-SECOND       PIC 9(02).
       10  WS-MILLISECONDS PIC 9(02).
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</description>
            <pubDate>Sun, 16 Feb 2025 15:00:00 +0000</pubDate>
            <link>https://wavdl.blog//2025/02/16/cobol-social-security-epoch-myth.html</link>
            <guid isPermaLink="true">https://wavdl.blog//2025/02/16/cobol-social-security-epoch-myth.html</guid>
        </item>
        
        <item>
            <title>My first post.</title>
            <description>&lt;p&gt;I am in the process of removing myself from most corporate social media as I embrace what made the internet great before all of these walled gardens were created: The freedom to share information and media across a global public network via a humble website. I plan to write more on this topic and my other interests and share them here.&lt;/p&gt;

&lt;p&gt;Check back soon.&lt;/p&gt;
</description>
            <pubDate>Sun, 26 Jan 2025 18:33:46 +0000</pubDate>
            <link>https://wavdl.blog//2025/01/26/my-first-blog.html</link>
            <guid isPermaLink="true">https://wavdl.blog//2025/01/26/my-first-blog.html</guid>
        </item>
        
    </channel>
</rss>