<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title></title>
    <link rel="self" type="application/atom+xml" href="https://jadey.net/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://jadey.net"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-07-17T00:00:00+00:00</updated>
    <id>https://jadey.net/atom.xml</id>
    <entry xml:lang="en">
        <title>Using Java 25 to make Minecraft run just a bit faster</title>
        <published>2026-07-17T00:00:00+00:00</published>
        <updated>2026-07-17T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Jade
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://jadey.net/posts/optimised-java-version/"/>
        <id>https://jadey.net/posts/optimised-java-version/</id>
        
        <summary type="html">&lt;p&gt;Since versions of 1.20.5 and higher, Minecraft started to require Java 21.
After Minecraft v26.1, the Java requirement got boosted to Java 25.&lt;&#x2F;p&gt;
&lt;p&gt;Java 25 has added some experimental command line arguments which make the game run a bit smoother.&lt;&#x2F;p&gt;
&lt;p&gt;Here&#x27;s how you can take advantage of them.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Website of Theseus</title>
        <published>2026-05-20T00:00:00+00:00</published>
        <updated>2026-05-20T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Jade
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://jadey.net/posts/website-revamp/"/>
        <id>https://jadey.net/posts/website-revamp/</id>
        
        <summary type="html">&lt;p&gt;Hi!&lt;&#x2F;p&gt;
&lt;p&gt;If you&#x27;ve ever been on this website you might notice that it has changed by a
bit.&lt;&#x2F;p&gt;
&lt;p&gt;Several things have changed, and I am no longer using a full SSR framework to
render some markdown files.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>That is not a Linux distro. It is a config.</title>
        <published>2025-09-25T00:00:00+00:00</published>
        <updated>2025-09-25T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Jade
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://jadey.net/posts/distro-yapping/"/>
        <id>https://jadey.net/posts/distro-yapping/</id>
        
        <summary type="html">&lt;p&gt;Ubuntu and Debian are distros.&lt;&#x2F;p&gt;
&lt;p&gt;Fedora Atomic and Bazzite are distros.&lt;&#x2F;p&gt;
&lt;p&gt;Arch is a distro, CachyOS is a distro.&lt;&#x2F;p&gt;
&lt;p&gt;But they&#x27;re not the same.&lt;&#x2F;p&gt;</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>Constant quantization (CQP) in ShareX</title>
        <published>2024-12-06T00:00:00+00:00</published>
        <updated>2024-12-06T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Jade
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://jadey.net/posts/sharex-cqp/"/>
        <id>https://jadey.net/posts/sharex-cqp/</id>
        
        <content type="html" xml:base="https://jadey.net/posts/sharex-cqp/">&lt;h1 id=&quot;tl-dr&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#tl-dr&quot; aria-label=&quot;Anchor link for: tl-dr&quot;&gt;TL;DR&lt;&#x2F;a&gt;&lt;&#x2F;h1&gt;
&lt;p&gt;Enable custom commands and replace the normal CBR bitrate setting, which is
like:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#393A34, #DBD7CAEE); background-color: light-dark(#FFFFFF, #121212);&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#59873A, #80A665);&quot;&gt;-b:v&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B56959, #C98A7D);&quot;&gt; 6000k&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;With:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#393A34, #DBD7CAEE); background-color: light-dark(#FFFFFF, #121212);&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#59873A, #80A665);&quot;&gt;-rc&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B56959, #C98A7D);&quot;&gt; constqp&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt;cq&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#2F798A, #4C9A91);&quot;&gt; 24&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-rc constqp&lt;&#x2F;code&gt; enables CQP&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;-cq 24&lt;&#x2F;code&gt; sets the quantization to 24&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h1 id=&quot;the-story&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-story&quot; aria-label=&quot;Anchor link for: the-story&quot;&gt;The story&lt;&#x2F;a&gt;&lt;&#x2F;h1&gt;
&lt;p&gt;I&#x27;m a big fan of high quality recordings, and I&#x27;m an even bigger fan of small
file sizes, which is exactly why I love CQP.&lt;&#x2F;p&gt;
&lt;p&gt;CQP or &quot;Constant Quantization Parameter&quot; is a Variable Bitrate setting which
basically reduces or increases the bitrate to maintain a similar video quality
for each second of the video. Higher quantization means less overall quality for
the video.&lt;&#x2F;p&gt;
&lt;p&gt;In my OBS settings, for recordings, I always enable CQP with Nvidia or CRF with
x264 because it makes desktop screen recordings super high quality but with
really small filesizes, small enough to shove the video straight into a discord
server, where the maximum file size for non paying &quot;citizens&quot; is like 10 MBs.
(Well it used to be 8 MBs then they updated it to 25 MBs and then down to 10 MBs
but that&#x27;s not the point of this post)&lt;&#x2F;p&gt;
&lt;p&gt;I am also a big fan of ShareX and while using the video recording option in it,
as usual, I realised that I should probably enable CQP in it too, but it doesn&#x27;t
come with any kind of CQP options if you&#x27;re using the H264 Nvidia option.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;i.treejadey.com&#x2F;zJNq9&quot; alt=&quot;ShareX settings. Video encoder is set to &amp;quot;H.264 &#x2F; NVENC.&amp;quot; Only option for video recording is constant bitrate, which is set to 6000&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;After seeing that it does not have a CQP option, I started googling for how to
enable CQP in ffmpeg, which is where I realised that it is very much not
documented.&lt;&#x2F;p&gt;
&lt;p&gt;So I jumped straight into the word meatgrinder (with my meatgrinder of choice
being LLama 3.1 70B of the duckduckgo variety), put in the arguments used by
ShareX, and asked it to modify the arguments so it will use CQP instead of CBR.
It told me that I should remove &lt;code&gt;-b:v 6000k&lt;&#x2F;code&gt; and replace it with
&lt;code&gt;-rc constqp -cqp 18&lt;&#x2F;code&gt;, which ended up not working, because &lt;code&gt;-cqp&lt;&#x2F;code&gt; isn&#x27;t a real
argument. It is actually &lt;code&gt;-cq&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;After enabling custom commands, I replaced the bitrate setting with the before
mentioned arguments and it worked. The ffmpeg params which I ended up having
are:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#393A34, #DBD7CAEE); background-color: light-dark(#FFFFFF, #121212);&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#59873A, #80A665);&quot;&gt;-f&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B56959, #C98A7D);&quot;&gt; dshow&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt;thread_queue_size&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#2F798A, #4C9A91);&quot;&gt; 1024&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt;rtbufsize&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B56959, #C98A7D);&quot;&gt; 256M&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt;audio_buffer_size&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#2F798A, #4C9A91);&quot;&gt; 80&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt;framerate&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B07D48, #BD976A);&quot;&gt; $&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B07D48, #BD976A);&quot;&gt;fps&lt;&#x2F;span&gt;&lt;span&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt;i&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B56959, #C98A7D);&quot;&gt; video=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B5695977, #C98A7D77);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B56959, #C98A7D);&quot;&gt;screen-capture-recorder&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B5695977, #C98A7D77);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B56959, #C98A7D);&quot;&gt;:audio=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B5695977, #C98A7D77);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B56959, #C98A7D);&quot;&gt;virtual-audio-capturer&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B5695977, #C98A7D77);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt;c:v&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B56959, #C98A7D);&quot;&gt; h264_nvenc&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt;r&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B07D48, #BD976A);&quot;&gt; $&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B07D48, #BD976A);&quot;&gt;fps&lt;&#x2F;span&gt;&lt;span&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt;preset&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B56959, #C98A7D);&quot;&gt; p4&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt;tune&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B56959, #C98A7D);&quot;&gt; hq&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt;rc&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B56959, #C98A7D);&quot;&gt; constqp&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt;cq&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#2F798A, #4C9A91);&quot;&gt; 24&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt;movflags&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B56959, #C98A7D);&quot;&gt; +faststart&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt;c:a&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B56959, #C98A7D);&quot;&gt; aac&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt;ac&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#2F798A, #4C9A91);&quot;&gt; 2&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt;b:a&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B56959, #C98A7D);&quot;&gt; 128k&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt; -&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#A65E2B, #C99076);&quot;&gt;y&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B5695977, #C98A7D77);&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B56959, #C98A7D);&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B56959, #C98A7D);&quot;&gt;output&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B56959, #C98A7D);&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#B5695977, #C98A7D77);&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Only difference is that I changed the constant quality parameter to be 24
instead of 18, because having a slightly lower quality is totally fine for me.&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
