<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Engineering on Thomas Cothran</title><link>https://thomascothran.tech/tags/engineering/</link><description>Recent content in Engineering on Thomas Cothran</description><generator>Hugo</generator><language>en</language><copyright>2023, Thomas Cothran</copyright><lastBuildDate>Wed, 11 Sep 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://thomascothran.tech/tags/engineering/index.xml" rel="self" type="application/rss+xml"/><item><title>The Ocelot Game</title><link>https://thomascothran.tech/2024/09/the-ocelot-game/</link><pubDate>Wed, 11 Sep 2024 00:00:00 +0000</pubDate><guid>https://thomascothran.tech/2024/09/the-ocelot-game/</guid><description>&lt;p&gt;The ocelot game works like this: a developer has written a feature, and presents it to an ocelot.&lt;/p&gt;
&lt;p&gt;Not a real ocelot. Ocelots are playful. But they&amp;rsquo;re wild animals. Their claws easily poke holes in things. We want to poke holes in code.&lt;/p&gt;
&lt;p&gt;The ocelot is a role played by a developer who tries to poke holes in another developer&amp;rsquo;s code. Specifically, they try to change the code in such a way that the feature breaks while still passing the unit tests.&lt;/p&gt;</description></item><item><title>MPAs vs SPAs: The False Dichotomy</title><link>https://thomascothran.tech/2024/01/the-false-dichotomy-mpas-spas/</link><pubDate>Sun, 28 Jan 2024 00:00:00 +0000</pubDate><guid>https://thomascothran.tech/2024/01/the-false-dichotomy-mpas-spas/</guid><description>&lt;p&gt;&lt;em&gt;This is the second post in the series &amp;ldquo;Have Clojure UIs Taken the Wrong Path?&amp;rdquo;. The first post is &lt;a href="https://thomascothran.tech/2023/11/clojure-uis-hypermedia-and-rpc-1/"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;How do we choose between building an application using a hypermedia approach versus the client-side SPA? This post won&amp;rsquo;t answer that question. But it will say how &lt;em&gt;not&lt;/em&gt; to make that choice.&lt;/p&gt;
&lt;p&gt;A common heuristic is the spectrum that stretches between old fashioned &amp;ldquo;Multi Page Apps&amp;rdquo; (MPAs) for basic use cases, to Single Page Applications for rich client interactivity.&lt;/p&gt;</description></item><item><title>Have Clojure UIs Taken the Wrong Path? Part 1</title><link>https://thomascothran.tech/2023/11/clojure-uis-hypermedia-and-rpc-1/</link><pubDate>Fri, 24 Nov 2023 00:00:00 +0000</pubDate><guid>https://thomascothran.tech/2023/11/clojure-uis-hypermedia-and-rpc-1/</guid><description>&lt;p&gt;The Clojure community has focused on React-based solutions for complex front-end clients such as Reagent, Rum, Om, Re-frame, and Fulcro.&lt;/p&gt;
&lt;p&gt;For all their differences, they follow a very similar architecture, making heavy use of client-side state and using RPC for client-server communication. We will call this the “React+” approach.&lt;/p&gt;
&lt;p&gt;But is this the right choice?&lt;/p&gt;
&lt;p&gt;I will suggest the answer may be negative. My suspicion is that as web UI libraries advance, the problems they solve are not essential. Rather, the problems are accidental; they are generated by the React+ architecture.&lt;/p&gt;</description></item></channel></rss>