<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Thrasher on diary</title>
		<link>/tags/thrasher/</link>
		<description>Recent content in Thrasher on diary</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
			<copyright>shawn boyette</copyright>
		
		
			<lastBuildDate>Thu, 16 Jul 2026 00:11:19 -0600</lastBuildDate>
		
			<atom:link href="/tags/thrasher/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Project updates and SteamOS exploration</title>
				<link>/posts/2026/0716-project-updates-and-steamos-exploration/</link>
				<pubDate>Thu, 16 Jul 2026 00:11:19 -0600</pubDate>
				<guid>/posts/2026/0716-project-updates-and-steamos-exploration/</guid>
				<description>&lt;p&gt;Firstly, everything mentioned in the previous post is done. I&amp;rsquo;m&#xA;especially happy with the solution I came up with for build-level&#xA;config in &lt;code&gt;fpc-ctl&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Config within the per-project shell script is removed, excepting a&#xA;pointer to the project&amp;rsquo;s JSON config file&lt;/li&gt;&#xA;&lt;li&gt;Everything that was in the script is moved to a &lt;code&gt;builds&lt;/code&gt; object in&#xA;the config&lt;/li&gt;&#xA;&lt;li&gt;The &lt;code&gt;configmap&lt;/code&gt;, which maps project configuration attributes to&#xA;build variables, has been extended&#xA;&lt;ul&gt;&#xA;&lt;li&gt;When a &lt;code&gt;configmap&lt;/code&gt; value contains &lt;code&gt;::&lt;/code&gt;, the right-hand side of the&#xA;value is treated as an override to the value given at the project&#xA;level&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This has made it possible to cleanly have multiple builds (or even&#xA;subprojects) defined with a single config file, all managed by&#xA;&lt;code&gt;fpc-ctl&lt;/code&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>fpc-ctl and Thrasher Updates</title>
				<link>/posts/2026/0710-fpc-ctl-and-thrasher-updates/</link>
				<pubDate>Fri, 10 Jul 2026 21:03:33 -0600</pubDate>
				<guid>/posts/2026/0710-fpc-ctl-and-thrasher-updates/</guid>
				<description>&lt;p&gt;I did some work this week on the media side of Thrasher. I intended to&#xA;work on playlists, but my mind went elsewhere. Most of the changes&#xA;made were little cleanups, fixes, and catches. The one new thing was&#xA;making facets and people clickable in the web UI to run a query on&#xA;that facet or person. This was ported over to the music side of&#xA;things.&lt;/p&gt;&#xA;&lt;p&gt;I should probably run a new build on t.fp.n so that people can take&#xA;advantage of that, as well as the fact that the previous button now&#xA;acts like it does on pretty much all other music players (jumps to&#xA;beginning of current track unless you push it twice in two seconds).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Devmode</title>
				<link>/posts/2026/06-22-devmode/</link>
				<pubDate>Mon, 22 Jun 2026 21:20:33 -0600</pubDate>
				<guid>/posts/2026/06-22-devmode/</guid>
				<description>&lt;p&gt;I started work today on playlists in Thrasher. It was mostly&#xA;groundwork and UI exploration, so that isn&amp;rsquo;t what this entry is about.&lt;/p&gt;&#xA;&lt;p&gt;This entry is about how happy I am with the new &lt;code&gt;devmode&lt;/code&gt; feature in&#xA;the &lt;code&gt;fpc-ctl&lt;/code&gt; script. It&amp;rsquo;s a simple idea, and a borrowed one&#xA;(including from Hugo, the static site generator that I use for this&#xA;blog). But it&amp;rsquo;s a really good one that saves a lot of time and faffing&#xA;about.&lt;/p&gt;</description>
			</item>
			<item>
				<title>General Updates (But Mostly Thrasher)</title>
				<link>/posts/2026/06-07-general-udates-but-mostly-thrasher/</link>
				<pubDate>Sun, 07 Jun 2026 22:25:46 -0600</pubDate>
				<guid>/posts/2026/06-07-general-udates-but-mostly-thrasher/</guid>
				<description>&lt;p&gt;I really fell off the updates there. Oops. While I&amp;rsquo;ve been away, I&#xA;have mostly been focused on Thrasher. A couple weeks of work went into&#xA;an overhaul/rewrite of the mobile UI.&lt;/p&gt;&#xA;&lt;p&gt;There was never an intent to evern have a mobile interface, as I am&#xA;horrible at UI programming generally, and I had no desire to try to&#xA;make something like Thrasher work on smaller screens. But not long&#xA;after getting the desktop version working, of course, I found myself&#xA;wanting to be able to take it with me. So I hacked together the most&#xA;minimal possible finger-friendly UI. It was seriously done in about 2&#xA;hours of initial effort, followed by maybe a day of tuning. And then&#xA;it sat for months while much bigger changes were made to the service&#xA;and the desktop client.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Thrasher Update</title>
				<link>/posts/2026/05-08-thrasher-updates/</link>
				<pubDate>Fri, 08 May 2026 23:02:30 -0600</pubDate>
				<guid>/posts/2026/05-08-thrasher-updates/</guid>
				<description>&lt;p&gt;So much work has happened here in the past couple weeks. First I&#xA;entered all my visual media into the DB and then erapped up all&#xA;initially planned media handling work.  returned to the music side.,&#xA;and a brief description of what has changed there is:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The old, multi-port, multi-Srvr architecture is gone&lt;/li&gt;&#xA;&lt;li&gt;In its place is a single Srvr, on a single port, which is&#xA;session-aware&lt;/li&gt;&#xA;&lt;li&gt;Sessions are implemented with secure (as long as you&amp;rsquo;re using TLS),&#xA;HTTP-only cookies&lt;/li&gt;&#xA;&lt;li&gt;Users are now a required part of the system&lt;/li&gt;&#xA;&lt;li&gt;There is now a login/authentication flow&lt;/li&gt;&#xA;&lt;li&gt;These architecture changes introduced a race condition on the&#xA;Catalog instance&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&amp;hellip;which was resolved by having the Srvr maintain a set of extant&#xA;sessions, with a Catalog for each&lt;/li&gt;&#xA;&lt;li&gt;&amp;hellip;which caused a change in the Catalog, moving to cloning the DB&#xA;in-memory only optionally (and not by default)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Finally, sessions usefully survive Srvr restarts, if only minimally&#xA;so at the present time&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;And all of this work makes it possible to have things like playlists,&#xA;and playback that resumes across restarts, in the not-too-distant&#xA;future. It&amp;rsquo;s pretty cool.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Cleaning Day</title>
				<link>/posts/2026/cleaning-day/</link>
				<pubDate>Tue, 21 Apr 2026 10:14:19 -0600</pubDate>
				<guid>/posts/2026/cleaning-day/</guid>
				<description>&lt;p&gt;Yesterday, following my abortive attempt to get a Forgejo runner fully&#xA;operative, I did as I said I would in my previous post, and borrowed&#xA;the pre-commit hook from Petrel&amp;rsquo;s repo and put it in all three of&#xA;Thrasher&amp;rsquo;s repos.&lt;/p&gt;&#xA;&lt;p&gt;This led to a pretty big number of small changes, mostly from&#xA;&lt;code&gt;golangci-lint&lt;/code&gt; but also a few from &lt;code&gt;go fmt&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I didn&amp;rsquo;t do this initially, because Thrasher was &amp;ndash; initially &amp;ndash; a&#xA;quick-and-dirty project. A proof of concept, to see if a thing I was&#xA;interested in was possible. I suppose this means that it&amp;rsquo;s a real&#xA;project now, as if the fact that I use it constantly didn&amp;rsquo;t already&#xA;mean that.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Intro to Thrasher</title>
				<link>/posts/thrasher/intro-to-thrasher/</link>
				<pubDate>Mon, 13 Apr 2026 22:36:20 -0600</pubDate>
				<guid>/posts/thrasher/intro-to-thrasher/</guid>
				<description>&lt;p&gt;Since restarting this blog, I haven&amp;rsquo;t just &lt;em&gt;also&lt;/em&gt; restarted work on&#xA;old projects. I actually have a new one, which is quite far along. In&#xA;fact I use it pretty much every day, sometimes for hours at a time.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s called Thrasher &amp;ndash; after the curved-billed thrashers who frequent&#xA;my yard, and the brown thrasher which is the state bird of my home&#xA;state, but don&amp;rsquo;t tell the curved-bills that last part &amp;ndash; and it&amp;rsquo;s my&#xA;media catalogue and music player.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
