<?xml version="1.0" encoding="utf-8"?>
<!-- btw this entire feed is handwritten lol, i dont have a static site generator -->

<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
  <title>sebsite</title>
  <link href="https://sebsite.pw/feed.xml" rel="self" />
  <link href="https://sebsite.pw/" />
  <icon>https://sebsite.pw/St.png</icon>
  <updated>2026-08-06T04:00:00Z</updated>
  <author>
    <name>seb</name>
    <email>sebastian@sebsite.pw</email>
    <uri>https://sebsite.pw/</uri>
  </author>
  <id>https://sebsite.pw/</id>

  <entry>
    <title>python string literals are kinda funny</title>
    <link rel="alternate" href="https://sebsite.pw/w/20260806-pystrings.html" />
    <id>urn:uuid:b7cde837-237f-4d09-9365-b5709e2dd65b</id>
    <updated>2026-08-06T04:00:00Z</updated>
    <summary>pop quiz: which of these lines is valid python, and what's the content of the resulting string? [...]</summary>
  </entry>

  <!--<entry>
    <title>quick thing about rejection sensitivity</title>
    <link rel="alternate" href="https://sebsite.pw/w/20260802-rejection.html" />
    <id>urn:uuid:2139a116-434f-4c79-af22-810e1d0c8a06</id>
    <updated>2026-08-02T17:50:00Z</updated>
    <summary>i have adhd, and with that comes a hefty dose of rejection sensitivity dysphoria. it basically means that any kind of perceived rejection hurts much more to me than to most people. and "rejection" is really any kind of feedback which could be interpreted as negative. [...]</summary>
  </entry>-->

  <entry>
    <title>sizeof is surprisingly difficult to parse in c</title>
    <link rel="alternate" href="https://sebsite.pw/w/20260802-sizeof.html" />
    <id>urn:uuid:d72e9294-95e8-4212-866d-b725423b6ce8</id>
    <updated>2026-08-02T04:20:00Z</updated>
    <summary type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <small>(because of course it is, literally everything in c is surprisingly difficult to parse).</small>

        <p>for those unaware, the operand of <code>sizeof</code> is either a unary expression, or a parenthesized type name. so the following are all valid: [...]</p>
      </div>
    </summary>
  </entry>

  <entry>
    <title>python's pre-declared constants are kinda weird</title>
    <link rel="alternate" href="https://sebsite.pw/w/20260801-pythonconstants.html" />
    <id>urn:uuid:0f230f68-68db-4a80-9e94-f6bb499d40df</id>
    <updated>2026-08-01T04:05:00Z</updated>
    <summary type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>python has 6 pre-declared "constants": <code>True</code>, <code>False</code>, <code>None</code>, <code>__debug__</code>, <code>Ellipsis</code> (or equivalently <code>...</code>), and <code>NotImplemented</code>. but they all behave slightly differently, for some reason. [...]</p>
      </div>
    </summary>
  </entry>

  <entry>
    <title>mashups are an underutilized art form</title>
    <link rel="alternate" href="https://sebsite.pw/w/20260731-mashups.html" />
    <id>urn:uuid:890773ce-e70a-46d8-ba01-bb0eb60c29a0</id>
    <updated>2026-07-31T18:50:00Z</updated>
    <summary>here's what i mean: sometimes two songs just naturally fit together; you don't need to do anything else to make the mashup work. and that's great! but sometimes songs don't quite work together. like, there's clearly potential, but the pieces don't quite connect. [...]</summary>
  </entry>

  <entry>
    <title>a neat trick i found for reusing physical memory</title>
    <link rel="alternate" href="https://sebsite.pw/w/20260728-cow.html" />
    <id>urn:uuid:7a1a24b4-ba12-45fb-86f9-a95da1a446ba</id>
    <updated>2026-07-28T04:00:00Z</updated>
    <summary type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>i found a neat trick which lets you take advantage of <abbr title="copy on write">CoW</abbr> to duplicate memory without allocating anything upfront. maybe some people already know about this, but i just discovered it and i think it's cool (and i kinda wish it was easier to take advantage of this with higher-level stdlib functions) [...]</p>
      </div>
    </summary>
  </entry>

  <entry>
    <title>game genie codes to uncap the level and speed of mixed match in SNES "Tetris &amp; Dr. Mario"</title>
    <link rel="alternate" href="https://sebsite.pw/w/20260727-snesgamegenie.html" />
    <id>urn:uuid:b4b16ee6-6286-44a7-bc17-7b7b145dbf8e</id>
    <updated>2026-07-27T04:30:00Z</updated>
    <summary type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>here are the game genie codes i made for "Tetris &amp; Dr. Mario" for SNES. they uncap the options in mixed match, including level and speed.</p>

        <p>normally the tetris level is capped at 10. but if you wanted to, for example, play tetris on level 18, this game genie code lets you do that!</p>

        <p>if you scroll past "HI" when selecting the dr mario speed, the names look really glitchy, and as far as i can tell there's no pattern to the actual in-game speed of each option (which makes sense). the speed immediately after "HI" is "-1Y", which is <em>very</em> fast (maybe the fastest possible speed?). i always find it fun to try to play with -1Y; it makes clearing dr mario feel very rewarding :)</p>

        <p>note that point scaling doesn't work correctly when selecting higher levels/speeds. i actually like this: it evens the playing field if i'm, for example, playing against someone who isn't as good at tetris as me. i can just select a higher level to give myself a handicap, while still scoring roughly the same amount of points for line clears.</p>

        <p>here they are:</p>

        <ul>
          <li>uncap player 1: <code>DD37-D446</code></li>
          <li>uncap player 2: <code>DD3A-D4C6</code></li>
        </ul>

        <p>at some point i might write a blog post with a deep-dive on how i made these codes and how they work, but i dont feel like it rn</p>
      </div>
    </summary>
  </entry>

  <entry>
    <title>maybe sometimes the black pill is ok (a response to Andrew Kelley)</title>
    <link rel="alternate" href="https://sebsite.pw/w/20260726-blackpill.html" />
    <id>urn:uuid:ec64bf87-2664-4dcd-8b99-0a59222a3d32</id>
    <updated>2026-07-26T05:28:00Z</updated>
    <summary type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>this is gonna be a pretty disorganized blog post, bear with me. something something more time shorter letter</p>

        <p>i just got around to watching Andrew Kelley's talk "<a href="https://youtu.be/zLZwpH5lCD4">don't take the black pill</a>". it's a great talk and i'd recommend it to pretty much anyone. and i mostly agree with everything he says. mostly.</p>

        <p>this blog post is about the stuff i disagree with. or, rather, the stuff i feel conflicted about. again, to be clear, i really liked the talk! i just don't have nearly as much to add about the stuff i agree with.</p>

        <p>(i'm not gonna give an overview of the talk cuz i don't feel like it, writing is hard enough as is. if you haven't seen the talk you should watch it. if you watch it at 2x speed it's like 17 minutes of your time, it's worth it)</p>

        <p>after watching the talk, i thought of a couple times in which i've "chosen the black pill". and it got me thinking about how i feel now, looking back at those choices:</p>

        <p>[...]</p>
      </div>
    </summary>
  </entry>

  <entry>
    <title>the perils of parsing type inference declarations in c</title>
    <link rel="alternate" href="https://sebsite.pw/w/20260725-auto.html" />
    <id>urn:uuid:4962efc0-72ad-44d4-b088-2178a1c901ec</id>
    <updated>2026-07-25T04:00:00Z</updated>
    <summary type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>here's something fun. assume that <code>x</code> was declared in an outer scope as a typedef: [...]</p>
      </div>
    </summary>
  </entry>

  <entry>
    <title>i ported hare's match construct to c</title>
    <link rel="alternate" href="https://sebsite.pw/w/20260718-harematch.html" />
    <id>urn:uuid:e97d6d96-a9c3-405c-a774-cccee99b1da4</id>
    <updated>2026-07-18T07:00:00Z</updated>
    <summary>today i'd like to show you one of the most cursed things i've ever made. but first, some context: [...]</summary>
  </entry>

  <entry>
    <title>i've been thinking about null pointers</title>
    <link rel="alternate" href="https://sebsite.pw/w/20260715-null.html" />
    <id>urn:uuid:ad9e8f19-9334-4e82-ab96-7a689af43045</id>
    <updated>2026-07-15T04:30:00Z</updated>
    <summary>null is weird. you ever think about null pointers? because i've been thinking about null pointers. [...]</summary>
  </entry>

  <entry>
    <title>you should make personal versions of songs you like</title>
    <link rel="alternate" href="https://sebsite.pw/w/20260714-songedits.html" />
    <id>urn:uuid:24c76bb6-eae9-421e-accb-b1d3c068ba76</id>
    <updated>2026-07-14T06:00:00Z</updated>
    <summary type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>an underrated part of knowing how to use a <abbr title="digital audio workstation">DAW</abbr> is that if i ever hear a song and think "i wish they did this part a little differently", i can just, like, change it. like i can make my own personal version that's tweaked in small ways which sound better to me. not enough people do this i think. [...]</p>
      </div>
    </summary>
  </entry>

  <entry>
    <title>a bunch of stuff i used to not know about K&amp;R C</title>
    <link rel="alternate" href="https://sebsite.pw/w/20260712-kandr.html" />
    <id>urn:uuid:077871fc-0495-49ec-9af8-89ff1b99e6f6</id>
    <updated>2026-07-12T07:00:00Z</updated>
    <summary type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>ok so i've been reading the "specification" from "the c programming language" (1st edition). alongside that, i've also been reading the c89 rationale document, and the source code for the 7th edition unix c compiler. i've also been reading some other related stuff.</p>

        <p>and i didn't really know anything about pre-ansi c until i did this research, but i found a bunch of stuff, so i'm documenting my findings here :3 [...]</p>
      </div>
    </summary>
  </entry>

  <entry>
    <title>PEP 3099 is really funny to me</title>
    <link rel="alternate" href="https://sebsite.pw/w/20260710-pep3099.html" />
    <id>urn:uuid:5269700a-bfe8-4941-a885-37253798fe26</id>
    <updated>2026-07-10T06:00:00Z</updated>
    <summary type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p><a href="https://peps.python.org/pep-3099/">PEP 3099 "Things that will Not Change in Python 3000"</a> begins with:</p>

        <blockquote>Some ideas are just bad. While some thoughts on Python evolution are constructive, some go against the basic tenets of Python so egregiously that it would be like asking someone to run in a circle: it gets you nowhere, even for Python 3000, where extraordinary proposals are allowed. [...]</blockquote>
        <blockquote>If you think you should suggest any of the listed ideas it would be better to just step away from the computer, go outside, and enjoy yourself. Being active outdoors by napping in a nice patch of grass is more productive than bringing up a beating-a-dead-horse idea and having people tell you how dead the idea is.</blockquote>

        <p>looking through the list of ideas that will "never be added to python", three of them have since been added to python: [...]</p>
      </div>
    </summary>
  </entry>

  <entry>
    <title>two case studies of NaN</title>
    <link rel="alternate" href="https://sebsite.pw/w/20260709-nan.html" />
    <id>urn:uuid:75c40d34-92f1-49e1-87bd-25dab97323e2</id>
    <updated>2026-07-09T06:00:00Z</updated>
    <summary type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        IEEE-754 NaN is weird. and because of that, it's often accidentally left unaccounted for. i found two instances of this leaking into programming language design. that is, the semantics of these languages hold implicit assumptions which break with NaN. [...]
      </div>
    </summary>
  </entry>

  <entry>
    <title>neither gcc nor clang are compliant with standard c++</title>
    <link rel="alternate" href="https://sebsite.pw/w/20260708-badstdcxx.html" />
    <id>urn:uuid:7af7c576-c112-43cf-aa6c-0fc29b690e76</id>
    <updated>2026-07-08T06:00:00Z</updated>
    <summary type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        in c++, function types have a "language linkage" associated with them: this is either "C++", "C", or some other implementation-defined language. and the standard very explicitly states that <q>Two function types with different language linkages are distinct types even if they are otherwise identical.</q> the idea is that some implementations may have different calling conventions for c++ functions than for c functions, so they can't be intermixed [...]
      </div>
    </summary>
  </entry>

  <entry>
    <title>The Mystery Dungeon (video)</title>
    <link rel="alternate" href="https://www.youtube.com/watch?v=hmQmc9N0KDA" />
    <id>urn:uuid:46c1f44c-2c67-4951-8e3b-5680cd92681b</id>
    <updated>2026-06-28T16:00:00Z</updated>
    <summary type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        this video is about a niche "game mode" in syobon action, aka shobon no action, aka cat mario. i've never done anything like this before, i hope the video doesn't suck<br /><br />
        <a href="https://git.sr.ht/~sebsite/ultimate-syobon-action">ultimate syobon action</a>
      </div>
    </summary>
  </entry>

  <entry>
    <title>critical super mario 64 review after 100%ing it for the first time in a few years</title>
    <link rel="alternate" href="https://sebsite.pw/w/20260422-sm64.html" />
    <id>urn:uuid:9e402794-7ab8-4ce7-bd9d-7e4785d60842</id>
    <updated>2026-04-22T21:57:41.909Z</updated>
    <summary>(this is far from the first time i've 100%'d the game, but it's been a little bit and i had Thoughts this time) [...]</summary>
  </entry>

  <entry>
    <title>review of the super mario galaxy movie (no spoilers)</title>
    <link rel="alternate" href="https://sebsite.pw/w/20260411-smgmovie.html" />
    <id>urn:uuid:aab315bb-6e65-48f4-b69b-efc0f623f27b</id>
    <updated>2026-04-11T07:24:04.314Z</updated>
    <summary>give it a year and i will feel completely differently about this movie, but having just watched it today, i fucking loved it [...]</summary>
  </entry>

  <entry>
    <title>no one has been able to tell me what the fsf even, like, does</title>
    <link rel="alternate" href="https://sebsite.pw/w/20251013-fsf.html" />
    <id>urn:uuid:4e472e76-417e-4132-a4b2-212e0591f7b3</id>
    <updated>2025-10-13T05:36:54.611Z</updated>
  </entry>

  <entry>
    <title>"what no one's thinking" (ajr) review</title>
    <link rel="alternate" href="https://sebsite.pw/w/20250905-wnot.html" />
    <id>urn:uuid:49c1579b-a325-41af-99a6-6be16964e268</id>
    <published>2025-09-05T06:17:34.531Z</published>
    <updated>2025-09-08T21:42:23.501Z</updated>
    <summary>...it was, underwhelming, ngl. [...]</summary>
  </entry>

  <!--<entry>
    <title>Lua notes</title>
    <link rel="alternate" href="https://sebsite.pw/w/lua.html" />
    <id>urn:uuid:956a6437-262a-42ba-bbfc-3b5a8101d6b7</id>
    <updated>2023-06-26T00:00:00Z</updated>
    <summary>(or: my very long mostly unreadable list in which i analyze some oddly specific aspects of Lua)</summary>
  </entry>-->

  <entry>
    <title>Way more information than you wanted to know about NES Tetris' playfield</title>
    <link rel="alternate" href="https://generic-tetromino-game.sebsite.pw/docs/nes-playfield/" />
    <id>urn:uuid:9e78bbfb-0961-4bdc-b43c-4e425a99a17c</id>
    <updated>2023-03-14T00:00:00Z</updated>
  </entry>
</feed>
