<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>F43nd1r</title>
    <link>https://faendir.com/</link>
    <description>Recent content on F43nd1r</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>© 2026 F43nd1r</copyright>
    <lastBuildDate>Wed, 30 Jul 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://faendir.com/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Room Ktlint Plugin</title>
      <link>https://faendir.com/projects/android/room-ktlint-plugin/</link>
      <pubDate>Wed, 30 Jul 2025 00:00:00 +0000</pubDate>
      
      <guid>https://faendir.com/projects/android/room-ktlint-plugin/</guid>
      <description>&lt;p&gt;&lt;a
  href=&#34;https://github.com/F43nd1r/room-ktlint-plugin&#34;
    target=&#34;_blank&#34;
  &gt;Room Ktlint Plugin&lt;/a&gt; is a Ktlint rule for automatically formatting SQL queries in Room &lt;code&gt;@Query&lt;/code&gt; annotations using &lt;a
  href=&#34;https://github.com/vertical-blank/sql-formatter&#34;
    target=&#34;_blank&#34;
  &gt;sql-formatter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The plugin integrates with Ktlint and supports autocorrection, making it easy to maintain consistently formatted SQL queries in your Android Room database code. It customizes SQL formatting specifically for Room/SQLite dialects.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>AWS CDK Kotlin</title>
      <link>https://faendir.com/projects/kotlin/aws-cdk-kt/</link>
      <pubDate>Fri, 19 May 2023 00:00:00 +0000</pubDate>
      
      <guid>https://faendir.com/projects/kotlin/aws-cdk-kt/</guid>
      <description>&lt;p&gt;&lt;a
  href=&#34;https://github.com/F43nd1r/aws-cdk-kt&#34;
    target=&#34;_blank&#34;
  &gt;AWS CDK Kotlin&lt;/a&gt; is a generated Kotlin DSL for &lt;a
  href=&#34;https://aws.amazon.com/cdk/&#34;
    target=&#34;_blank&#34;
  &gt;AWS CDK&lt;/a&gt;. It provides a more idiomatic way to work with AWS CDK in Kotlin, enabling fluent, type-safe infrastructure as code.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>An Introduction to Kotlin Symbol Processing</title>
      <link>https://faendir.com/blog/kotlin-symbol-processing-introduction/</link>
      <pubDate>Fri, 10 Jun 2022 00:00:00 +0000</pubDate>
      
      <guid>https://faendir.com/blog/kotlin-symbol-processing-introduction/</guid>
      <description>&lt;p&gt;This article will give an introduction to Kotlin annotation processing using Kotlin Symbol Processing (KSP). We’ll take a look at KSP, compare it to the alternative KAPT, and implement a simple example.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Generating Kotlin DSLs</title>
      <link>https://faendir.com/blog/generating-kotlin-dsls/</link>
      <pubDate>Fri, 06 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://faendir.com/blog/generating-kotlin-dsls/</guid>
      <description>&lt;p&gt;This article will give an introduction to Kotlin DSLs (Domain-Specific Languages) and teach you how to create and generate them with an annotation processor.
We’ll also take a look at Kotlin internals and how we can use this knowledge to our advantage.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>AutoDSL</title>
      <link>https://faendir.com/projects/kotlin/autodsl/</link>
      <pubDate>Wed, 28 Apr 2021 00:00:00 +0000</pubDate>
      
      <guid>https://faendir.com/projects/kotlin/autodsl/</guid>
      <description>&lt;p&gt;&lt;a
  href=&#34;https://github.com/F43nd1r/autodsl-ksp&#34;
    target=&#34;_blank&#34;
  &gt;AutoDSL&lt;/a&gt; auto-generates DSL (Domain Specific Languages) for your Kotlin classes using annotations. It can run with either &lt;a
  href=&#34;https://github.com/google/ksp&#34;
    target=&#34;_blank&#34;
  &gt;KSP&lt;/a&gt; or &lt;a
  href=&#34;https://kotlinlang.org/docs/kapt.html&#34;
    target=&#34;_blank&#34;
  &gt;KAPT&lt;/a&gt;.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Charm</title>
      <link>https://faendir.com/projects/games/charm/</link>
      <pubDate>Mon, 09 Nov 2020 00:00:00 +0000</pubDate>
      
      <guid>https://faendir.com/projects/games/charm/</guid>
      <description>&lt;p&gt;&lt;a
  href=&#34;https://github.com/svenhjol/Charm&#34;
    target=&#34;_blank&#34;
  &gt;Charm&lt;/a&gt; is a mod for Minecraft inspired by the &lt;a
  href=&#34;https://github.com/Vazkii/Quark&#34;
    target=&#34;_blank&#34;
  &gt;Quark&lt;/a&gt; mod in that it is designed to enhance the vanilla game experience without compromising its gameplay style.&lt;/p&gt;
&lt;p&gt;Charm was created by &lt;a
  href=&#34;https://github.com/svenhjol&#34;
    target=&#34;_blank&#34;
  &gt;@svenhjol&lt;/a&gt;. I joined the project during the update cycle for Minecraft 1.16.&lt;/p&gt;</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://faendir.com/projects/games/charm/feature.png" />
    </item>
    
    <item>
      <title>Zachtronics Leaderboard Bot</title>
      <link>https://faendir.com/projects/games/zlbb/</link>
      <pubDate>Tue, 25 Aug 2020 00:00:00 +0000</pubDate>
      
      <guid>https://faendir.com/projects/games/zlbb/</guid>
      <description>&lt;p&gt;&lt;a
  href=&#34;https://github.com/F43nd1r/zachtronics-leaderboard-bot&#34;
    target=&#34;_blank&#34;
  &gt;This project&lt;/a&gt; consists of a leaderboard discord bot for sevaral Zachtronics games, (&lt;a
  href=&#34;https://store.steampowered.com/app/558990/Opus_Magnum/&#34;
    target=&#34;_blank&#34;
  &gt;Opus Magnum&lt;/a&gt;, &lt;a
  href=&#34;https://store.steampowered.com/app/92800/SpaceChem/&#34;
    target=&#34;_blank&#34;
  &gt;Spacechem&lt;/a&gt;, &lt;a
  href=&#34;https://store.steampowered.com/app/504210/SHENZHEN_IO/&#34;
    target=&#34;_blank&#34;
  &gt;Shenzhen I/O&lt;/a&gt;) and a &lt;a
  href=&#34;https://zlbb.faendir.com/&#34;
    target=&#34;_blank&#34;
  &gt;leaderboard website&lt;/a&gt; for Opus Magnum.&lt;/p&gt;</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://faendir.com/projects/games/zlbb/feature.png" />
    </item>
    
    <item>
      <title>Querydsl Kotlin Codegen</title>
      <link>https://faendir.com/projects/kotlin/querydsl-kotlin-codegen/</link>
      <pubDate>Fri, 08 May 2020 00:00:00 +0000</pubDate>
      
      <guid>https://faendir.com/projects/kotlin/querydsl-kotlin-codegen/</guid>
      <description>&lt;p&gt;&lt;a
  href=&#34;https://github.com/querydsl/querydsl/tree/master/querydsl-kotlin-codegen&#34;
    target=&#34;_blank&#34;
  &gt;Querydsl Kotlin Codegen&lt;/a&gt; is a querydsl module which allows you to generate kotlin QClasses. It was upstreamed in querydsl 5.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m also helping with Querydsl maintenance in general.&lt;/p&gt;</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://faendir.com/projects/kotlin/querydsl-kotlin-codegen/feature.png" />
    </item>
    
    <item>
      <title>F43dit</title>
      <link>https://faendir.com/projects/games/f43dit/</link>
      <pubDate>Fri, 03 Apr 2020 00:00:00 +0000</pubDate>
      
      <guid>https://faendir.com/projects/games/f43dit/</guid>
      <description>&lt;p&gt;F43dit is an &lt;a
  href=&#34;http://www.zachtronics.com/opus-magnum/&#34;
    target=&#34;_blank&#34;
  &gt;Opus Magnum&lt;/a&gt; solution editing project.&lt;/p&gt;
&lt;p&gt;There are two parts:&lt;/p&gt;
&lt;p&gt;&lt;a
  href=&#34;https://github.com/F43nd1r/omsp&#34;
    target=&#34;_blank&#34;
  &gt;OMSP&lt;/a&gt; is the solution parser, which transforms solution files into a kotlin model and vice versa.&lt;/p&gt;
&lt;p&gt;&lt;a
  href=&#34;https://github.com/F43nd1r/omsekt&#34;
    target=&#34;_blank&#34;
  &gt;OMSEKT&lt;/a&gt; contains the solution kotlin dsl and transforms the kotlin model into dsl and back again. It also contains an online solution editor hosted &lt;a
  href=&#34;https://om.faendir.com&#34;
    target=&#34;_blank&#34;
  &gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://faendir.com/projects/games/f43dit/feature.png" />
    </item>
    
    <item>
      <title>Liquibase Kotlin DSL</title>
      <link>https://faendir.com/projects/kotlin/liquibase-kotlin-dsl/</link>
      <pubDate>Thu, 19 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://faendir.com/projects/kotlin/liquibase-kotlin-dsl/</guid>
      <description>&lt;p&gt;&lt;a
  href=&#34;https://github.com/F43nd1r/liquibase-kotlin-dsl&#34;
    target=&#34;_blank&#34;
  &gt;Liquibase Kotlin DSL&lt;/a&gt; is a Kotlin DSL for Liquibase changelogs, originally developed by &lt;a
  href=&#34;https://github.com/redundent/liquibase-kotlin-dsl&#34;
    target=&#34;_blank&#34;
  &gt;redundent&lt;/a&gt;.&lt;/p&gt;</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://faendir.com/projects/kotlin/liquibase-kotlin-dsl/feature.svg" />
    </item>
    
    <item>
      <title>Kotlin Cardmarket API</title>
      <link>https://faendir.com/projects/kotlin/cardmarket/</link>
      <pubDate>Mon, 14 Oct 2019 00:00:00 +0000</pubDate>
      
      <guid>https://faendir.com/projects/kotlin/cardmarket/</guid>
      <description>&lt;p&gt;&lt;a
  href=&#34;https://github.com/F43nd1r/cardmarket-api-kotlin&#34;
    target=&#34;_blank&#34;
  &gt;cardmarket-api-kotlin&lt;/a&gt; is a kotlin wrapper for the &lt;a
  href=&#34;https://www.cardmarket.com&#34;
    target=&#34;_blank&#34;
  &gt;cardmarket.com&lt;/a&gt; &lt;a
  href=&#34;https://api.cardmarket.com/ws/documentation&#34;
    target=&#34;_blank&#34;
  &gt;API&lt;/a&gt;.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Acrarium</title>
      <link>https://faendir.com/projects/android/acrarium/</link>
      <pubDate>Wed, 17 May 2017 00:00:00 +0000</pubDate>
      
      <guid>https://faendir.com/projects/android/acrarium/</guid>
      <description>&lt;p&gt;&lt;a
  href=&#34;https://github.com/F43nd1r/Acrarium&#34;
    target=&#34;_blank&#34;
  &gt;Acrarium&lt;/a&gt; is a server application collecting and aggregating bug reports sent from &lt;a
  href=&#34;https://github.com/ACRA/acra&#34;
    target=&#34;_blank&#34;
  &gt;ACRA&lt;/a&gt;.
Reports are automatically categorized and visualized, while also allowing to view all report content manually.&lt;/p&gt;</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://faendir.com/projects/android/acrarium/feature.png" />
    </item>
    
    <item>
      <title>Rhino for Android</title>
      <link>https://faendir.com/projects/android/rhino/</link>
      <pubDate>Fri, 05 Feb 2016 00:00:00 +0000</pubDate>
      
      <guid>https://faendir.com/projects/android/rhino/</guid>
      <description>&lt;p&gt;&lt;a
  href=&#34;https://github.com/mozilla/rhino&#34;
    target=&#34;_blank&#34;
  &gt;Rhino&lt;/a&gt; is an implementation of JavaScript in Java. &lt;a
  href=&#34;https://github.com/F43nd1r/rhino-android&#34;
    target=&#34;_blank&#34;
  &gt;Rhino for Android&lt;/a&gt; allows to use all features of Rhino on Android.&lt;/p&gt;
&lt;p&gt;Features which were previously not working on Android include&lt;/p&gt;</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://faendir.com/projects/android/rhino/feature.jpg" />
    </item>
    
    <item>
      <title>ACRA</title>
      <link>https://faendir.com/projects/android/acra/</link>
      <pubDate>Sun, 03 Jan 2016 00:00:00 +0000</pubDate>
      
      <guid>https://faendir.com/projects/android/acra/</guid>
      <description>&lt;p&gt;&lt;a
  href=&#34;https://github.com/ACRA/acra&#34;
    target=&#34;_blank&#34;
  &gt;ACRA&lt;/a&gt; is a library enabling Android Applications to automatically send their crash reports to a report server. It is targeted to android application developers to help them get data from their applications when they crash or behave erroneously.&lt;/p&gt;</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://faendir.com/projects/android/acra/feature.png" />
    </item>
    
    <item>
      <title>Multitool</title>
      <link>https://faendir.com/projects/android/multitool/</link>
      <pubDate>Sun, 30 Aug 2015 00:00:00 +0000</pubDate>
      
      <guid>https://faendir.com/projects/android/multitool/</guid>
      <description>&lt;p&gt;&lt;a
  href=&#34;https://github.com/F43nd1r/Multitool&#34;
    target=&#34;_blank&#34;
  &gt;Multitool&lt;/a&gt; was a &lt;a
  href=&#34;https://www.lightninglauncher.com/wordpress/&#34;
    target=&#34;_blank&#34;
  &gt;Lightning Launcher&lt;/a&gt; plugin bundling various functions, including&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Animations&lt;/li&gt;
&lt;li&gt;Scheduled Backups&lt;/li&gt;
&lt;li&gt;Gesture Support&lt;/li&gt;
&lt;li&gt;Music Widget&lt;/li&gt;
&lt;li&gt;Calendar Widget&lt;/li&gt;
&lt;li&gt;Script Manager&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Development on Lightning Launcher has seized. This project has been archived.&lt;/p&gt;</description>
      
    </item>
    
  </channel>
</rss>
