<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Code on Pauls Blog</title><link>https://prule.github.io/pauls-blog/tags/code/</link><description>Recent content in Code on Pauls Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 22 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://prule.github.io/pauls-blog/tags/code/index.xml" rel="self" type="application/rss+xml"/><item><title>Creating and releasing an application</title><link>https://prule.github.io/pauls-blog/post/coding/2026/creating-an-application/</link><pubDate>Sun, 22 Mar 2026 00:00:00 +0000</pubDate><guid>https://prule.github.io/pauls-blog/post/coding/2026/creating-an-application/</guid><description>&lt;h2 id="creating-and-releasing-an-application"&gt;Creating and releasing an application&lt;/h2&gt;
&lt;p&gt;I love sim racing, so I thought it would be an interesting exercise to create an application that makes use of Assetto Corsa Competizione (ACC) telemetry.&lt;/p&gt;
&lt;p&gt;The basic operation is this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The client sends a registration message to ACC&lt;/li&gt;
&lt;li&gt;ACC replies and starts sending telemetry messages&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is all done over UDP.&lt;/p&gt;
&lt;h2 id="acc-messages"&gt;ACC messages&lt;/h2&gt;
&lt;p&gt;The first step was to create a library that could parse the message byte streams. There is a little bit of documentation in the way of some C# code and a &lt;code&gt;ServerAdminHandbook.pdf&lt;/code&gt; that can be found in the ACC installation.&lt;/p&gt;</description></item><item><title>Clean architecture - part 1</title><link>https://prule.github.io/pauls-blog/post/coding/2024/clean-architecture-1/</link><pubDate>Sun, 25 Aug 2024 00:00:00 +0000</pubDate><guid>https://prule.github.io/pauls-blog/post/coding/2024/clean-architecture-1/</guid><description>&lt;div class="sect1"&gt;
&lt;h2 id="_clean_architecture_part_1"&gt;Clean architecture - part 1&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;After porting my template app over to Kotlin, I thought it was time to attempt rewriting from a layered architecture to a ports and adapters/hexagonal architecture.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;In the layered version, the usual patterns exist:&lt;/p&gt;
&lt;/div&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The domain models ARE the database entities&lt;/p&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The domain model is compromised, cluttered with persistence concerns and far from clean&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Services implement the business logic, manipulating the domain (database entities) and persisting them via the repositories&lt;/p&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Unfortunately the services usually end up being classes with a bunch of methods&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description></item></channel></rss>