<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>Personal Blog of 256</title>
    <link>https://256-32.com/blog</link>
    <description>Relentless verbiage.</description>
    <language>en-GB</language>
    <item>
      <title>First Time Petting a Dog</title>
      <link>https://256-32.com/blog/5</link>
      <pubDate>Fri, 31 Jul 2026 21:22:14 +0100</pubDate>
      <description>&lt;p&gt;&lt;b&gt;2026-07-31&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;I&apos;ve managed to make it to my mid-20s without ever petting a dog, or interacting with one in basically any way. I never grew up with dogs, and as a child I had a fear of them. As I got older I became unafraid, but still tried to avoid them.&lt;/p&gt;
&lt;p&gt;This morning, though, I was walking a footpath beside a brook when I encountered an old lady walking 2 dogs, without leashes, who approached me, barking. I tried to walk around in the hope that they&apos;d avoid me, but they persisted. The lady then had me pet them and feed them, and I was pleasantly surprised by how friendly they were. They stopped barking when I started petting them. This is the final nail in the coffin of my fear of dogs.&lt;/p&gt;
&lt;p&gt;I still prefer cats though. Maybe I&apos;m a Derse dreamer.&lt;/p&gt;
&lt;p&gt;:3&lt;/p&gt;</description>
    </item>
    <item>
      <title>1 Year of Age Verification</title>
      <link>https://256-32.com/blog/4</link>
      <pubDate>Sat, 25 Jul 2026 15:44:08 +0100</pubDate>
      <description>&lt;p&gt;&lt;b&gt;2026-07-25&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;It&apos;s been 1 year today since the generously-named Online Safety Act&apos;s age verification duties went into effect in the UK. The widespread outrage about it seems to have died down, and the country is continuing on the normal trajectory of slow, painful degradation of privacy and free speech.&lt;/p&gt;
&lt;p&gt;I have still never verified my age and never will. If I turn off my VPN, plenty of websites become unusable (if they weren&apos;t already unusable to me due to requiring JS), either because they require me to doxx myself or because they outright block the UK (like Imgur and SpaceHey). There&apos;s an old list of sites that died or blocked the UK &lt;a href=&quot;https://onlinesafetyact.co.uk/in_memoriam/&quot;&gt;here&lt;/a&gt;, although it&apos;s presumably outdated and certainly incomplete.&lt;/p&gt;
&lt;p&gt;I&apos;ve barely ever gotten any age verification prompts, though, not because they aren&apos;t common, but because I don&apos;t use websites that require them (other than through alternative front-ends). There are still plenty of small sites that exist outside the surveillance capitalist panopticon, like the one I&apos;m posting this on, and I&apos;m sure they&apos;ll continue to exist in the future.&lt;/p&gt;
&lt;p&gt;Retreating into the &quot;nerd&quot; corners of the internet seems to be the best survival strategy for the modern web. It&apos;s like Eternal September has been reversed, not because of computer-illiterate people leaving the internet, but because of them sticking to a small number of mainstream sites, leaving the rest of the internet for computer people.&lt;/p&gt;
&lt;p&gt;As for my own site, I have made no attempt to even care about the OSA. I don&apos;t care whether my site complies with it. I&apos;m not digging through a mountain of deliberately impenetrable, dense legalese written by authoritarians simply so I can run a blog. Besides, when a law is sufficiently unjust, you have a moral obligation to disobey it.&lt;/p&gt;
&lt;p&gt;Anyway, I predict that everything will keep getting worse. The general public will become more and more supportive of mass surveillance, laws will get stricter and we&apos;ll have to start hosting hidden services on the TOR network or I2P. Then they&apos;ll make those illegal, and my 1337 hacksaw cyberpunk fantasy world will begin.&lt;/p&gt;
&lt;p&gt;It&apos;ll be like The Matrix. Or V for Vendetta. Or maybe Tron?</description>
    </item>
    <item>
      <title>De-Americanisation</title>
      <link>https://256-32.com/blog/3</link>
      <pubDate>Fri, 03 Jul 2026 17:33:46 +0100</pubDate>
      <description>&lt;p&gt;&lt;b&gt;2026-07-03&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;I grew up on the English-speaking internet, where everyone is American, and as such have unthinkingly absorbed a bunch of Americanisms. More recently I&apos;ve been trying to un-learn them, but they seem to be endless.&lt;/p&gt;
&lt;p&gt;Some are obvious. I once found a preserved chat-log from years ago where I spelt colour without a U, which I definitely don&apos;t do anymore. Some are more subtle, like the spelling of defence and cancelled, or grammatical constructions such as &quot;how it looks like&quot;. The worst ones are probably the cultural and political Americanisms, like implicitly assuming that Parliament works like the US congress or something.&lt;/p&gt;
&lt;p&gt;I think the most dramatic de-Americanisation effort I&apos;ve done, though, is my realisation earlier this year that the British spelling of programme can be used even when talking about software, and subsequent replacement of every instance of &quot;program&quot; with &quot;programme&quot; throughout this site. I did this shortly before the site went live. I even changed the comments and variable names in source code.&lt;/p&gt;
&lt;p&gt;That said, I think the best way to de-Americanise oneself is not to try and consciously enumerate every Americanism (although this is nonetheless a worthwhile effort), but to expose oneself to more British (or wherever you&apos;re from) media, which is what I&apos;ve been trying to do.&lt;/p&gt;
&lt;p&gt;It&apos;s interesting that the great promise of the internet, that it would eradicate borders and bring humanity together, is now the one thing I want to avoid. It&apos;s also interesting that I&apos;m writing this on the eve of the semiquincentennial of the rogue colonies.&lt;/p&gt;</description>
    </item>
    <item>
      <title>This is not the Old Web</title>
      <link>https://256-32.com/blog/2</link>
      <pubDate>Sat, 06 Jun 2026 14:06:53 +0100</pubDate>
      <description>&lt;p&gt;&lt;b&gt;2026-06-06&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;I frequently see people use the term &quot;new web&quot; or &quot;modern web&quot; to refer to mainstream sites, with phone-centric web design and mountains of JS you have to run for basic functionality, all funded by surveillance capitalism. You know, 5 websites all filled with screenshots of the other 4. They&apos;re very similar to each other because they have the same advertising-based incentive structure.&lt;/p&gt;
&lt;p&gt;People also use the term &quot;old web&quot; to refer to small independent sites, with a different funding model or more often no funding at all, implying that they&apos;re some sort of ancient relic still ambling along, even if they were created recently and reflect a fundamentally novel culture.&lt;/p&gt;
&lt;p&gt;I think this old/new distinction is a hold-over from back when social media were new. Like all those towns and cities with &quot;new&quot; in the name that are hundreds of years old. Or New Super Mario Bros., which is probably considered a retro game by now.&lt;/p&gt;
&lt;p&gt;Mainstream social media &lt;b&gt;are&lt;/b&gt; the old web. They&apos;re the massive, traditional, old-fashioned incumbents who are currently falling apart under their own weight, too large and too slow to adapt to problems of their own making, being overtaken, at least in useability and value provided, by smaller sites.&lt;/p&gt;
&lt;p&gt;If this were &lt;i&gt;really&lt;/i&gt; the old old web, we wouldn&apos;t be using HTTPS, for starters. The technical and social elements of modern small sites are massively different from the web of the 2000s when I was a child.&lt;/p&gt;
&lt;p&gt;Whatever you call it, this is not the old web.</description>
    </item>
    <item>
      <title>Learning C++</title>
      <link>https://256-32.com/blog/1</link>
      <pubDate>Sun, 17 May 2026 07:13:52 +0100</pubDate>
      <description>&lt;p&gt;&lt;b&gt;2026-05-17&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;I enjoy low-level asm/C programming. I&apos;m the kind of person who prefers learning about things in a bottom-up way, but in practice I started with higher-level languages and slowly moved to lower-level ones, eventually settling on C as my go-to language for serious programmes.&lt;/p&gt;
&lt;p&gt;On the way down I used C++ for a while but never got good at it; I think I&apos;ve never grasped object-oriented programming in a real way, maybe because most of the tutorials I saw used meaningless contrived examples that are useful for explaining the &quot;what&quot; of how classes work, but not the &quot;why&quot;.&lt;/p&gt;
&lt;p&gt;Now I&apos;m trying to actually learn C++ properly without using it like C. I want to be able to write C code that looks like C code and C++ code that looks like C++ code without confusing the paradigms, and without becoming one of those closed-minded dogmatists who insists on their own preferred &quot;one true way&quot; that all programming languages must adhere to.</description>
    </item>
    <item>
      <title>My 3-Line Diff</title>
      <link>https://256-32.com/blog/0</link>
      <pubDate>Fri, 27 Mar 2026 08:58:08 +0000</pubDate>
      <description>&lt;p&gt;&lt;b&gt;2026-03-27&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;About 10 years ago, in 2016, I wrote a cellular automaton simulator called Reasoning Realm, which was not very good. I was an inexperienced programmer at the time and ended up implementing an algorithm (referred to in the programme as &quot;Ignore Non Changing Cells&quot;) which simulates only cells in a pattern that have changed, or whose neighbours have changed, in the previous generation.&lt;/p&gt;
&lt;p&gt;I implemented it in an O(N&lt;sup&gt;2&lt;/sup&gt;) fashion, where N is the number of cells that are being simulated. For large patterns with only a small number of cells changing, it&apos;s still an improvement, but when larger amounts of change happen it slows to a crawl.&lt;/p&gt;
&lt;p&gt;I last updated Reasoning Realm in 2018, but decided to revisit it specifically to patch this massive performance issue. It took barely a few minutes to figure out how to do it, and I made the following 3-line change (and if you&apos;re not aware, the proverbial &quot;3-line diff&quot; is &lt;a href=&quot;https://www.openbsd.org/lyrics.html#62&quot;&gt;apparently&lt;/a&gt; an in-joke in the OpenBSD community):&lt;/p&gt;
&lt;pre&gt;
--- RR0.3.1.html        2018-12-19 04:15:43.000000000 +0000
+++ RR-dev.html 2026-03-27 08:28:47.257789917 +0000
@@ -448,12 +448,9 @@
 }
 
 function inSparse(x,y){
-  for(ib=0;ib&amp;lt;nextSparse.length;ib+=2){
-    if(nextSparse[ib] == y &amp;amp;&amp;amp; nextSparse[ib+1] == x){
-      return true;
-    }
-  }
-  return false;
+  var ret = nextSparse[&apos;x&apos; + x + &apos;y&apos; + y];
+  nextSparse[&apos;x&apos; + x + &apos;y&apos; + y] = true;
+  return ret;
 }
 
 function fillSparse(){
&lt;/pre&gt;&lt;p&gt;This was one of those morale-boosting moments where I realise how much I&apos;ve improved as a programmer in the last ~8 years. This used to feel like some huge insurmountable problem with the code and now it&apos;s trivial for me.&lt;/p&gt;
&lt;p&gt;It&apos;s not actually 3 lines if you count the deletions, but never mind. And it&apos;s not really a very good solution, since it requires making a string and using it as a key. It&apos;s definitely not what I&apos;d do if I were programming in C or assembly, but it&apos;s still much faster than O(N&lt;sup&gt;2&lt;/sup&gt;). Also, you may have noticed that the old code used a global variable as an iterator; that particular mistake is all throughout my old JS code in general, because I didn&apos;t understand scoping.</description>
    </item>
  </channel>
</rss>
