<?xml version="1.0" encoding="utf-8" standalone="yes"?><?xml-stylesheet href="/feed_style.xsl" type="text/xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="https://www.rssboard.org/media-rss">
  <channel>
    <title>Nik&#39;s Blog</title>
    <link>https://niklp.net/</link>
    <description>Recent content on Nik&#39;s Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>2023-24 to Niklp. Content licensed under [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/legalcode).</copyright>
    <lastBuildDate>Sun, 22 Feb 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://niklp.net/index.xml" rel="self" type="application/rss+xml" /><icon>https://niklp.net/android-chrome-192x192.png</icon>
    
    
    
    
    <item>
      <title>Remove transparency from PNGs</title>
      <link>https://niklp.net/pages/remove_transparency_from_pngs/</link>
      <pubDate>Sat, 16 Dec 2023 00:00:00 +0000</pubDate>
      
      <guid>https://niklp.net/pages/remove_transparency_from_pngs/</guid>
      <description><![CDATA[<p>Context: <a href="https://github.com/Archtec-io/bugtracker/issues/137">https://github.com/Archtec-io/bugtracker/issues/137</a></p>
<p>You can strip transparent pixels with the following command:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>remtransp<span style="color:#f92672">()</span> <span style="color:#f92672">{</span> convert -flatten <span style="color:#e6db74">&#34;</span><span style="color:#e6db74">${</span>1<span style="color:#e6db74">}</span><span style="color:#e6db74">&#34;</span> <span style="color:#e6db74">&#34;</span><span style="color:#e6db74">${</span>1<span style="color:#e6db74">}</span><span style="color:#e6db74">&#34;</span> <span style="color:#f92672">&amp;&amp;</span> optipng -o7 -zm1-9 -nc -strip all -clobber <span style="color:#e6db74">&#34;</span><span style="color:#e6db74">${</span>1<span style="color:#e6db74">}</span><span style="color:#e6db74">&#34;</span>; <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>remtransp mymod_mytexture.png
</span></span></code></pre></div><p>Your system must have <code>convert</code> (ImageMagick) and <code>optipng</code> installed.
To run the <code>remtransp</code> command, move the first line from the code box above into one of your bash config files (e.g. <code>~/.bashrc</code>).</p>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>Benchmarking Minetest modstorage using PostgreSQL</title>
      <link>https://niklp.net/posts/minetest-postgresql-benchmark/</link>
      <pubDate>Tue, 14 Nov 2023 00:00:00 +0000</pubDate>
      
      <guid>https://niklp.net/posts/minetest-postgresql-benchmark/</guid>
      <description><![CDATA[<p><em>Updated: 2023-11-24</em></p>
<p>A while back, Juri and me Niklp decided to migrate the modstorage SQLite&rsquo;s of our Minetest servers to Postgresql. The map, player and auth databases of our servers are using already Postgresql. Since some other people reported performance/latency issues with the Postgres backend¹, we decided to do some benchmarks. You can find the <a href="https://github.com/Niklp09/modstorage_bench">source code</a> of the benchmark mod on GitHub. And the results were <em>yes&hellip;</em> quite bad.</p>
<p>Chart: Average time it took to handle a <code>MetaDataRef</code> call in µs (rounded to full µs). You can find the <a href="https://files.niklp.net/psqlVSsqlite.txt">benchmark output at files.niklp.net</a>.</p>
<p><img src="/images/psql_readable.png" alt="Chart"></p>
<p>Please note: We had to strip down the two marked pillars to make the SQLite pillars visible. An unedited chart <a href="/images/psql_real.png">is available too</a>. We know that our benchmark doesn&rsquo;t measure the data well but we think you should see <em>a difference</em>, especially for <code>storage:set_string()</code> calls.</p>
<p>We had a talk with some other server owners and admins on Discord and it looks like that most people are aware of this bottleneck but ignore it because the modstorage isn&rsquo;t used that much on many servers. We will investigate this more when we get some time.</p>
<p>Feel free to share your results in the comment section here or on GitHub with us.</p>
<p>¹: <a href="https://github.com/minetest/minetest/issues/12873#issuecomment-1284316336">https://github.com/minetest/minetest/issues/12873#issuecomment-1284316336</a></p>
]]></description>
      
    </item>
    
    
    
    
    
    
    
    <item>
      <title>The first post</title>
      <link>https://niklp.net/posts/the-first-post/</link>
      <pubDate>Fri, 14 Jul 2023 00:00:00 +0000</pubDate>
      
      <guid>https://niklp.net/posts/the-first-post/</guid>
      <description><![CDATA[<p>My new site. Take a look at the <a href="/pages/about/">Contact</a> page.</p>
]]></description>
      
    </item>
    
    
  </channel>
</rss>
