<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Oxetene&#39;s website</title>
        <link>https://oxetene.net</link>
        <description>Recent content on Oxetene&#39;s website</description>
        <copyright>Copyright Oxetene 2026</copyright>
        
        <item>
            <title>The open encrypted chat protocol</title>
            <link>https://oxetene.net/the-open-encrypted-chat-protocol</link>
            <description>&lt;p&gt;After years and years of talking about it, I&amp;rsquo;ve finally made it. Toechat is here, and it has been made with simplicity in mind from the start. In this short blog post, I&amp;rsquo;ll explain how Toechat works under the hood. For implementation-specific details, please visit the &lt;a href=&#34;https://codeberg.org/oxetene/toechat&#34;&gt;repository&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Toechat can only do two things. Send text and send files, both wrapped in XChaCha20-Poly1305. To achieve this, the following header is used:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;      +-----+-----+-----+-----+-----+-----+-----+-----+
      |  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|  0  | Text size |             File size             |
+-----+-----------+-----------------------------------+
|  1  |                                               |
+-----+                                               |
|  2  |              Cryptographic nonce              |
+-----+                                               |
|  3  |                                               |
+-----+-----------------------------------------------+
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The text size must always be larger than 0. If the file size is 0, the data sent after the header is interpreted as a regular text message. If the file size is larger than 0, the text is interpreted as a file name and the received data is written to that file. In every case, the data is chunked with a maximum chunk size of 65535 bytes, followed by a 16-byte MAC. In a packet with multiple chunks, the first chunk always contains text, while the rest contain the raw data of an attached file. An 8-byte large chunk would look like this:&lt;/p&gt;</description>
            <guid>6</guid>
        </item>
        
        <item>
            <title>Why x86 is unfathomably bloated</title>
            <link>https://oxetene.net/why-x86-is-unfathomably-bloated</link>
            <description>&lt;p&gt;Wouldn&amp;rsquo;t it be interesting to count the percentage of the x86 ISA that a program uses? Well, first of all, we need to define what the term &amp;ldquo;instruction&amp;rdquo; even means when it comes to the behemoth that is x86. For a detailed explanation, I highly recommend reading &lt;a href=&#34;https://fgiesen.wordpress.com/2016/08/25/how-many-x86-instructions-are-there&#34;&gt;this article&lt;/a&gt;. In this post, I&amp;rsquo;ll follow &lt;a href=&#34;https://github.com/intelxed/xed&#34;&gt;XED&amp;rsquo;s&lt;/a&gt; definition of an instruction, which is: &lt;a href=&#34;https://intelxed.github.io/ref-manual/group__IFORM.html&#34;&gt;Intel® XED classifies instructions as iclasses (ADD, SUB, MUL, etc.) of type xed_iclass_enum_t&lt;/a&gt;. All of these &amp;ldquo;iclasses&amp;rdquo; are defined inside xed-iclass-enum.h, turns out there are 1974 of them at the time of writing this post (ignoring XED_ICLASS_INVALID and XED_ICLASS_LAST).&lt;/p&gt;</description>
            <guid>5</guid>
        </item>
        
        <item>
            <title>Forcing OpenWRT on a WD N600 router</title>
            <link>https://oxetene.net/forcing-openwrt-on-a-wd-n600-router</link>
            <description>&lt;p&gt;According to the &lt;a href=&#34;https://openwrt.org/toh/western_digital/n600&#34;&gt;OpenWRT wiki&lt;/a&gt;, there are three tested methods to install OpenWRT on a WD N600 router. However, when I got my hands on one, neither method worked. Every time I tried to flash the factory image (version 24.10.0 at the time), the router&amp;rsquo;s light would slowly turn on and off, as if the image was being flashed, but it would never stop. The router would get stuck and never reboot. After a couple hours of tears and frustration, I managed to figure out what the issue was. After giving the factory image a shorter name and following the wiki&amp;rsquo;s first method, the router would successfully boot into OpenWRT.&lt;/p&gt;</description>
            <guid>4</guid>
        </item>
        
        <item>
            <title>The mathematically perfect knife</title>
            <link>https://oxetene.net/the-mathematically-perfect-knife</link>
            <description>&lt;p&gt;A delicate and modest blade, meant to be gripped by two fingers, crafted from an interconnected symphony of equations, harmoniously dancing as one. Ponder its alluring splendor, and lose yourself in its enchanting &lt;a href=&#34;https://www.desmos.com/calculator/aa2nam62dn&#34;&gt;beauty&lt;/a&gt;.&lt;/p&gt;</description>
            <guid>3</guid>
        </item>
        
        <item>
            <title>List of dungeon synth artists</title>
            <link>https://oxetene.net/list-of-dungeon-synth-artists</link>
            <description>&lt;p&gt;All of them are awesome, give them some love:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://aindulmedir.bandcamp.com&#34;&gt;Aindulmedir&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://arthuros.bandcamp.com&#34;&gt;Arthuros&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://atriumoftime.bandcamp.com&#34;&gt;Atrium of Time&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://neverwood.bandcamp.com&#34;&gt;Chanterelle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://chaucerianmyth.bandcamp.com&#34;&gt;Chaucerian Myth&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://darkrunesynth.bandcamp.com&#34;&gt;Darkrune&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://iamdim.bandcamp.com&#34;&gt;DIM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://elyvilon.bandcamp.com&#34;&gt;Elyvilon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://erang.bandcamp.com&#34;&gt;Erang&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://fief.bandcamp.com&#34;&gt;Fief&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://thefogweaver.bandcamp.com&#34;&gt;Fogweaver&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://frer1.bandcamp.com&#34;&gt;Frér&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://galdur.bandcamp.com&#34;&gt;Galdur&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://gondolinrecords.bandcamp.com&#34;&gt;Henbane&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://ingvarr.bandcamp.com&#34;&gt;Ingvarr&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://kenosis2.bandcamp.com&#34;&gt;Kenosis&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://lordlovidicus.bandcamp.com&#34;&gt;Lord Lovidicus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://murgrind-music.bandcamp.com&#34;&gt;Murgrind&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://neverlur.bandcamp.com&#34;&gt;Neverlur&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://oldtower.bandcamp.com&#34;&gt;Old Tower&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://heimatderkatastrophe.bandcamp.com&#34;&gt;PAFUND&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://dungeonsdeeprecords.bandcamp.com&#34;&gt;Paths of the Eternal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://questmaster.bandcamp.com&#34;&gt;Questmaster&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://ringoftam.bandcamp.com&#34;&gt;Ring of Tamyrlin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://satchelbearer.bandcamp.com&#34;&gt;Satchel Bearer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://seregost.bandcamp.com&#34;&gt;Seregost&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://sequesteredkeep.bandcamp.com&#34;&gt;Sequestered Keep&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://siegegolem.bandcamp.com&#34;&gt;Siege Golem&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://sombrearcane.bandcamp.com&#34;&gt;Sombre Arcane&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://neverwood.bandcamp.com&#34;&gt;Sprites Of The Wood&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://swordsofmidi.bandcamp.com&#34;&gt;SWORDS OF MIDI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://talesundertheoak.bandcamp.com&#34;&gt;Tales Under The Oak&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://ulkmusic.bandcamp.com&#34;&gt;Ulk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://umbriasynth.bandcamp.com&#34;&gt;Umbría&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://verminaard.bandcamp.com&#34;&gt;Verminaard&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://vindkaldr.bandcamp.com&#34;&gt;Vindkaldr&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://wraithknight.bandcamp.com&#34;&gt;Wraith Knight&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://unrealestaterecords.bandcamp.com&#34;&gt;Ziggurath&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
            <guid>2</guid>
        </item>
        
        <item>
            <title>Calisthenics workout routine</title>
            <link>https://oxetene.net/calisthenics-workout-routine</link>
            <description>&lt;p&gt;To start, simply choose one exercise from each progression category. The lower an exercise is listed, the harder it is. Assistance exercises aren&amp;rsquo;t listed in any particular order, just pick one that helps you achieve your current goals. Once you can do 5 sets of 8-12 reps, move on to a more challenging variation.&lt;/p&gt;
&lt;p&gt;PUSH (Monday, Thursday):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Dip progression:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bench dips&lt;/li&gt;
&lt;li&gt;Negative dips&lt;/li&gt;
&lt;li&gt;Full dips&lt;/li&gt;
&lt;li&gt;Single bar dips&lt;/li&gt;
&lt;li&gt;Ring dips&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Push-up progression:&lt;/p&gt;</description>
            <guid>1</guid>
        </item>
        
    </channel>
</rss>
