<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Lainblog</title>
    <link>https://blog.soykaf.com/</link>
    <description>Recent content on Lainblog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-US</language>
    <copyright>Copyright &amp;copy; Copyright Owner. Licensed under &lt;a target=&#34;_blank&#34; rel=&#34;external noopener license&#34; href=&#34;https://creativecommons.org/licenses/by-nd/4.0/&#34;&gt;CC-BY-ND-4.0&lt;/a&gt;.</copyright>
    <lastBuildDate>Thu, 28 May 2020 13:25:03 +0200</lastBuildDate>
    
	<atom:link href="https://blog.soykaf.com/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Lain Thought on End-To-End Encryption with AP Characteristics for a New Era</title>
      <link>https://blog.soykaf.com/post/encryption/</link>
      <pubDate>Thu, 28 May 2020 13:25:03 +0200</pubDate>
      
      <guid>https://blog.soykaf.com/post/encryption/</guid>
      <description>&lt;p&gt;The fediverse has been buzzing with talk about end-to-end encryption. In this (quite long) article, I&amp;rsquo;ll try to explain what E2EE is, what some common approaches to it are in the instant messaging space, and what I think would be the best way to use it on the fediverse.&lt;/p&gt;
&lt;p&gt;&lt;img class=fit src=&#34;https://blog.soykaf.com/img/encryption_catch_1.jpg&#34; /&gt;
(Note: Pictures are just there to break up the boredom. A hotel bar.)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Elixir and Postgres: A Rarely Mentioned Problem</title>
      <link>https://blog.soykaf.com/post/postgresql-elixir-troubles/</link>
      <pubDate>Tue, 18 Feb 2020 09:12:38 +0100</pubDate>
      
      <guid>https://blog.soykaf.com/post/postgresql-elixir-troubles/</guid>
      <description>&lt;p&gt;Last time, we talked about the magic trick to make your full text searches go fast. This time, I&amp;rsquo;ll tell you about another performance issue I encountered that probably also affects your performance, at least if you are using Ecto and PostgreSQL.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the story of the interplay between Ecto, PostgreSQL and the PostgreSQL query planner.&lt;/p&gt;
&lt;p&gt;&lt;img class=fit src=&#34;https://blog.soykaf.com/img/ps_1.jpg&#34; /&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Postgresql Search: From the trenches</title>
      <link>https://blog.soykaf.com/post/postgresl-front-report/</link>
      <pubDate>Wed, 12 Feb 2020 13:51:39 +0100</pubDate>
      
      <guid>https://blog.soykaf.com/post/postgresl-front-report/</guid>
      <description>&lt;p&gt;Team Pleroma is back from FOSDEM and I finally got rid of most of my Tenshi stickers! The meetup was a lot of fun and we did learn a thing or two. One talk I went to see was &lt;a href=&#34;https://fosdem.org/2020/schedule/event/postgresql_the_state_of_full_text_search_in_postgresql_12/&#34;&gt;this one&lt;/a&gt; on the state of full text search in current PostgreSQL. Sadly, it didn&amp;rsquo;t offer any new information to me, but it&amp;rsquo;s a good primer on the subject.&lt;/p&gt;
&lt;p&gt;Overall, it paints a very rosy picture of full text search in PostgreSQL. With the right indexes, you can do efficient and fast full text searches without Elastic or any other additional component. While this is in general true, the devil is in the details. We have been using PostgreSQL for FTS for a while now in Pleroma, so this article is about all the gotchas, pitfalls and caveats that will ruin your search performance and make your users hate you.&lt;/p&gt;
&lt;p&gt;&lt;img class=fit src=&#34;https://blog.soykaf.com/img/postgres_attention_3.jpg&#34; /&gt; (This image is just to grab your attention, what a wall of text, wow.)&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Pleroma 1.0.0</title>
      <link>https://blog.soykaf.com/post/pleroma-1.0/</link>
      <pubDate>Fri, 28 Jun 2019 14:37:36 +0200</pubDate>
      
      <guid>https://blog.soykaf.com/post/pleroma-1.0/</guid>
      <description>&lt;p&gt;After long months of doing only bugfix and security releases, we are finally releasing the long-awaited 1.0 release. No more nines!&lt;/p&gt;
&lt;p&gt;&lt;img class=fit src=&#34;https://blog.soykaf.com/img/pleroma_1.png&#34; /&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Fighting the Bloat! SSH Support in Pleroma</title>
      <link>https://blog.soykaf.com/post/ssh-support-in-pleroma/</link>
      <pubDate>Mon, 01 Apr 2019 04:01:00 +0200</pubDate>
      
      <guid>https://blog.soykaf.com/post/ssh-support-in-pleroma/</guid>
      <description>&lt;p&gt;Pretty much one year ago, we started fighting the typical Web 4.0 Javascript bloat by adding &lt;a href=&#34;https://blog.soykaf.com/post/gopher-support-in-pleroma&#34;&gt;Gopher support&lt;/a&gt;. After a wildly successful &lt;a href=&#34;https://blog.soykaf.com/post/pleroma-release-0.9.9&#34;&gt;0.999 release&lt;/a&gt;, we heard your calls for more debloating. The biggest complaint with the gopher support was the inability to post. So today, we&amp;rsquo;re taking it a step further: Making Pleroma a BBS.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#39;https://blog.soykaf.com/img/pleroma-ssh-help.png&#39; class=fit /&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Pleroma&#39;s First Release! 0.9.9</title>
      <link>https://blog.soykaf.com/post/pleroma-release-0.9.9/</link>
      <pubDate>Fri, 22 Feb 2019 13:58:34 +0100</pubDate>
      
      <guid>https://blog.soykaf.com/post/pleroma-release-0.9.9/</guid>
      <description>&lt;p&gt;(Hey! Don&amp;rsquo;t know what Pleroma is? Check out &lt;a href=&#34;https://blog.soykaf.com/post/what-is-pleroma/&#34;&gt;this&lt;/a&gt; page!)&lt;/p&gt;
&lt;p&gt;The &lt;a href=&#34;https://git.pleroma.social/pleroma/pleroma-fe/tree/191c02af1ebfc7e6c53dc88d97c4e3ca23fbea8b&#34;&gt;first commit&lt;/a&gt; in Pleroma happened 2016, on October 26th. Now it&amp;rsquo;s a few years and months later, and we are doing our first stable release!&lt;/p&gt;
&lt;p&gt;Are you still running &lt;code&gt;develop&lt;/code&gt;? That&amp;rsquo;s so 2018.&lt;/p&gt;
&lt;p&gt;&lt;img class=fit src=&#34;https://blog.soykaf.com/img/0.9.9.screenshot.png&#34; /&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How Federation Works</title>
      <link>https://blog.soykaf.com/post/how-federation-works/</link>
      <pubDate>Fri, 04 May 2018 10:46:00 +0200</pubDate>
      
      <guid>https://blog.soykaf.com/post/how-federation-works/</guid>
      <description>&lt;p&gt;A lot of people join our support channel (#pleroma on freenode) with the same sentence: &amp;ldquo;I just set up Pleroma but federation isn&amp;rsquo;t working&amp;rdquo;. Usually, this is not actually true, they just have an empty timeline. What they don&amp;rsquo;t know is how posts actually get into your instance. This short post is about the mechanisms that can make a post use your instance.&lt;/p&gt;
&lt;p&gt;This is Pleroma specific, other fediverse servers may use different systems, although they are all very similar.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Gopher Support in Pleroma</title>
      <link>https://blog.soykaf.com/post/gopher-support-in-pleroma/</link>
      <pubDate>Sun, 01 Apr 2018 04:01:00 +0200</pubDate>
      
      <guid>https://blog.soykaf.com/post/gopher-support-in-pleroma/</guid>
      <description>&lt;p&gt;As you may already know, &lt;a href=&#34;https://blog.soykaf.com/post/what-is-pleroma&#34;&gt;Pleroma&lt;/a&gt; is high-performance and low-resource fediverse server mean to run even on small devices like a Raspberry Pi.&lt;/p&gt;
&lt;p&gt;Still, there is one part of Pleroma that is wasteful to the extreme&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#39;https://blog.soykaf.com/img/no-js.png&#39; class=fit /&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s true! Pleroma&amp;rsquo;s mother allowed it to have TWO frontends, but both are resource-hogging Javascript monstrosities. If you don&amp;rsquo;t have a &amp;lsquo;modern&amp;rsquo; browser that turns your PC into a heater, you won&amp;rsquo;t be able to see any posts!&lt;/p&gt;
&lt;p&gt;So where did we go wrong? I think the problem goes way back. We made a deal with the Devil when we accepted free-form HTML into our systems. The best solution is to not make this mistake anymore, and go back to the future to a better alternative.&lt;/p&gt;
&lt;p&gt;And that&amp;rsquo;s why, today, I&amp;rsquo;m announcing &lt;a href=&#34;https://en.wikipedia.org/wiki/Gopher_(protocol)&#34;&gt;Gopher&lt;/a&gt; support for Pleroma!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Privacy and Tracking on the Fediverse</title>
      <link>https://blog.soykaf.com/post/privacy-and-tracking-on-the-fediverse/</link>
      <pubDate>Sun, 25 Mar 2018 16:22:20 +0200</pubDate>
      
      <guid>https://blog.soykaf.com/post/privacy-and-tracking-on-the-fediverse/</guid>
      <description>&lt;p&gt;Recently, there have been some shocking revelations. Facebook, a company in the business of selling your data to advertisers, had some of its data used illegally by a third party that used it to advertise to you. As people hate nothing more than getting their data misused without Facebook getting a cut, they are now up in arms and want to leave Facebook once and for all.&lt;/p&gt;
&lt;p&gt;Media eye seems to have fallen on &lt;code&gt;the Mastodon network&lt;/code&gt; as a solution this time. For an example, look at this Washington Post article, &lt;a href=&#34;https://www.washingtonpost.com/news/the-switch/wp/2018/03/23/the-new-technology-that-aspires-to-deletefacebook-for-good&#34;&gt;The new technology that aspires to #DeleteFacebook for good&lt;/a&gt; (19 trackers on the page, including Facebook), in which they tout it as a privacy-preserving alternative to walled-garden company-run networks.&lt;/p&gt;
&lt;p&gt;Mastodon BDFL Gargron himself wrote an article with the nice subtitle &lt;a href=&#34;https://medium.com/tootsuite/deletefacebook-fafdc4090307&#34;&gt;Perspective from a platform that doesn’t put democracy in peril&lt;/a&gt;. He is privacy conscious, so this page only has two trackers.&lt;/p&gt;
&lt;p&gt;(Aside: This article contains the delightful phrase &amp;ldquo;#DeleteFacebook is trending on Twitter.&amp;quot;)&lt;/p&gt;
&lt;p&gt;In all of these articles, Mastodon (and by extension, the Fediverse) are described as a more private and secure way of posting cat pictures and &amp;ldquo;please subscribe to my patreon&amp;rdquo; online. But is this actually true? Let&amp;rsquo;s check the situation on the fediverse.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>What Is Pleroma?</title>
      <link>https://blog.soykaf.com/post/what-is-pleroma/</link>
      <pubDate>Wed, 07 Mar 2018 10:28:10 +0100</pubDate>
      
      <guid>https://blog.soykaf.com/post/what-is-pleroma/</guid>
      <description>&lt;p&gt;In my last few posts I talked a bit about &lt;a href=&#34;https://pleroma.social&#34;&gt;Pleroma&lt;/a&gt;. Since then, we had a lot of questions about what Pleroma is, how it is different from GNU Social and Mastodon, why you should use it and so on. This post will be an introduction to Pleroma, so read on if you are interested.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>ActivityPub in Pleroma</title>
      <link>https://blog.soykaf.com/post/activity-pub-in-pleroma/</link>
      <pubDate>Sun, 04 Mar 2018 11:35:09 +0100</pubDate>
      
      <guid>https://blog.soykaf.com/post/activity-pub-in-pleroma/</guid>
      <description>&lt;p&gt;After &lt;a href=&#34;https://git.pleroma.social/pleroma/pleroma/tree/feature/activitypub&#34;&gt;some work&lt;/a&gt;, ActivityPub support will be merged into the develop branch of Pleroma in the next days.&lt;/p&gt;
&lt;p&gt;This change will add the following user facing features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Support for Mastodon&amp;rsquo;s visibility suggestion settings, like private posts and direct messages.&lt;/li&gt;
&lt;li&gt;Slightly faster federation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Not too much for a few weeks of work. Anyway, here are my thoughts about the whole process.&lt;/p&gt;
&lt;p&gt;&lt;img class=fit src=&#34;https://blog.soykaf.com/img/pleroma-ap.png&#34; /&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Repairing a Sharp Twin Famicom Disk Drive</title>
      <link>https://blog.soykaf.com/post/repairing-a-sharp-twin-famicom-disk-drive/</link>
      <pubDate>Fri, 16 Feb 2018 22:05:09 +0100</pubDate>
      
      <guid>https://blog.soykaf.com/post/repairing-a-sharp-twin-famicom-disk-drive/</guid>
      <description>&lt;p&gt;&lt;img class=fit src=&#39;https://blog.soykaf.com/img/famicom-open-with-disk.jpg&#39; /&gt;&lt;/p&gt;
&lt;p&gt;I recently got a Sharp Twin Famicom for around 70€. This is rather cheap, they usually go for over 200€ in good condition. The Twin Famicom is a Famicom with a built-in Famicom Disk System drive. This was a floppy disk system for the Famicom that was only used in Japan. The one I got worked well with carts (at least with 8BIT MUSIC POWER FINAL), but disks wouldn&amp;rsquo;t read at all.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Testing a Cheap Chinese Mega Everdrive</title>
      <link>https://blog.soykaf.com/post/testing-a-cheap-chinese-mega-everdrive/</link>
      <pubDate>Fri, 16 Feb 2018 21:05:31 +0100</pubDate>
      
      <guid>https://blog.soykaf.com/post/testing-a-cheap-chinese-mega-everdrive/</guid>
      <description>&lt;p&gt;&lt;img class=fit src=&#34;https://blog.soykaf.com/img/mega-everdrive.jpg&#34; /&gt;&lt;/p&gt;
&lt;p&gt;If you remember my post from a few days ago, you&amp;rsquo;ll know that I modded my PAL Mega Drive with a region switch. This works well for Mega Drive games, but Mega CD games have their own problems. The Mega CD bios is region locked and will display an error when you start it in the wrong region.&lt;/p&gt;
&lt;p&gt;There are a few ways to get other bios roms running on the system. One is to swap the EPROM on the Mega CD with either another region or a region free bios. This is rather invasive and involves soldering. An easier way is to use a Mega Drive flash cart. These can also run the Mega CD bios files, which makes them a good way to make your Mega CD region free.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Pleroma Encyclical: ActivityPub</title>
      <link>https://blog.soykaf.com/post/pleroma-encyclical-activity-pub/</link>
      <pubDate>Sat, 10 Feb 2018 20:23:00 +0100</pubDate>
      
      <guid>https://blog.soykaf.com/post/pleroma-encyclical-activity-pub/</guid>
      <description>&lt;p&gt;In my free time, I develop a free software social network server called &lt;a href=&#34;https://pleroma.social&#34;&gt;Pleroma&lt;/a&gt; (&lt;a href=&#34;https://git.pleroma.social/pleroma/pleroma&#34;&gt;code&lt;/a&gt;). It is compatible with GNU Social, Mastodon, Friendica, and any other server that implements the OStatus protocol. Recently, there has been some buzz about a new protocol for federated social networking: ActivityPub. This protocol is now a W3C Recommendation, which means that it&amp;rsquo;s a kind of &amp;lsquo;standard&amp;rsquo;, if you care about that sort of thing. Here&amp;rsquo;s my opinion on it, and how it came to be where it is now.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Wiring Up a Neo Geo MVS</title>
      <link>https://blog.soykaf.com/post/wiring-up-a-neo-geo-mvs/</link>
      <pubDate>Sat, 10 Feb 2018 15:11:26 +0100</pubDate>
      
      <guid>https://blog.soykaf.com/post/wiring-up-a-neo-geo-mvs/</guid>
      <description>&lt;p&gt;If you want to get a Neo Geo, you should probably get the MVS (arcade) model instead of the AES (home) model. The games are much cheaper and 200-in-1 type cartridges are readily available. If you have an MVS board, you&amp;rsquo;ll need a way to power it and a way to connect controls and the screen.&lt;/p&gt;
&lt;p&gt;As the Neo Geo MVS uses the JAMMA arcade connector standard, there are many ready-made solutions that will give you standard SCART RGB output, some controller connectors and a way to connect a power supply (either ATX or special arcade ones). I got one from &lt;a href=&#34;http://retroelectronik.com/en/supergun/144-autofire-system-for-supergun-and-neo-geo-5674864654513.html&#34;&gt;http://www.retroelectronik.com&lt;/a&gt;. You can reuse this for non Neo Geo arcade boards, too.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the system how it was when I got it.&lt;/p&gt;
&lt;p&gt;&lt;img class=fit src=&#34;https://blog.soykaf.com/img/neo-geo-dirty.jpg&#34; /&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Region Switching Mod for Pal Mega Drive</title>
      <link>https://blog.soykaf.com/post/region-switching-mod-for-pal-mega-drive/</link>
      <pubDate>Sat, 10 Feb 2018 14:32:29 +0100</pubDate>
      
      <guid>https://blog.soykaf.com/post/region-switching-mod-for-pal-mega-drive/</guid>
      <description>&lt;p&gt;&lt;img class=fit src=&#34;https://blog.soykaf.com/img/mega-drive.jpg&#34; /&gt;&lt;/p&gt;
&lt;p&gt;The PAL Mega Drive can rather easily be modded with a switch that enables switching between PAL, NTSC-J and NTSC-US. It doesn&amp;rsquo;t require much skill, if you can do basic soldering, this one is for you. For proper instructions, take a look at &lt;a href=&#34;https://mdpal60.net/regionmod&#34;&gt;this site&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s a picture of my Mega Drive running at 50hz.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Running Touhou Games on a PC98 Laptop</title>
      <link>https://blog.soykaf.com/post/running-touhou-games-on-a-pc98-laptop/</link>
      <pubDate>Thu, 08 Feb 2018 10:07:44 +0100</pubDate>
      
      <guid>https://blog.soykaf.com/post/running-touhou-games-on-a-pc98-laptop/</guid>
      <description>&lt;p&gt;If you try running the Touhou games on newer PC98 machines like my PC-9821 Na12 laptop, you might run into issues. When I tried to start any of the games, they would just hang on initialization of the sound driver. This makes sense, because my system has an enhanced FM chip, that is not fully backwards compatible with the original FM chips of the PC98. Interestingly, this has never been a problem in any game but in Touhou for me.&lt;/p&gt;
&lt;p&gt;I tried to just load other FM drivers and then manually start the games, which nearly worked: I was able to use the menus, listen to the music, select new game&amp;hellip; and then it would crash.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Writing PC-98 Floppy Images Under Linux</title>
      <link>https://blog.soykaf.com/post/writing-pc98-floppy-images-under-linux/</link>
      <pubDate>Fri, 02 Feb 2018 17:45:37 +0100</pubDate>
      
      <guid>https://blog.soykaf.com/post/writing-pc98-floppy-images-under-linux/</guid>
      <description>&lt;p&gt;I have a &lt;a href=&#34;https://en.wikipedia.org/wiki/PC-9800_series&#34;&gt;PC-9821&lt;/a&gt; laptop computer. This is a Japanese system that&amp;rsquo;s almost-but-not-quite IBM compatible, with the biggest differences being the graphics and sound system. It&amp;rsquo;s an interesting system, with a few thousand games that never came out in the west in any way, including the first five Touhou Project games.&lt;/p&gt;
&lt;img class=&#34;fit&#34; src=&#34;https://blog.soykaf.com/img/pc98-1.jpg&#34;&gt;</description>
    </item>
    
  </channel>
</rss>