<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-us"><title>Posts on Invisible Parade</title><subtitle>Recent posts on Invisible Parade</subtitle><id>https://www.invisibleparade.com/</id><link href="https://www.invisibleparade.com/" rel="alternate" type="text/html"/><link href="https://www.invisibleparade.com/posts.xml" rel="self" type="application/rss+xml"/><updated>2026-03-02T13:45:00+09:00</updated><author><name>Alex Onsager</name></author><generator>Hugo</generator><entry><title>Generative AI lets you consume Creation</title><id>https://www.invisibleparade.com/posts/consuming-creation/</id><link href="https://www.invisibleparade.com/posts/consuming-creation/" rel="alternate" type="text/html"/><published>2026-03-02T13:45:00+09:00</published><updated>2026-03-02T13:45:00+09:00</updated><author><name>Alex Onsager</name></author><content type="html">















&lt;h2 id="consumption-versus-creation"&gt;Consumption versus Creation.&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve long been conscious of two contrasting categories of pastimes – those that consume, and those that create.&lt;/p&gt;
&lt;p&gt;Consumption is fast. Consumption is passive.&lt;br&gt;
Consumption is easy.&lt;/p&gt;
&lt;p&gt;Consumption in today&amp;rsquo;s world is limitless, as there are an infinite number of sources that each provide an infinite amount of content. It&amp;rsquo;s easy to blow this into a dystopian image of people who never leave their couch, but in many cases consumption as a hobby is harmless. People learn about the world, are exposed to new ideas, feel delight or shock or compassion or curiosity or anything, really, at whatever they encounter. And that&amp;rsquo;s fine.&lt;/p&gt;
&lt;p&gt;But consumption is, I think, fulfilling only on a superficial level.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Creation is slow. Creation is active.&lt;br&gt;
Creation is hard.&lt;/p&gt;
&lt;p&gt;There are far fewer creators than consumers, because it is demanding of time and effort. Creation is technically limited by your ability, although in reality there is so much that you can accomplish with only the slightest amount of skill if you allow yourself the challenge.&lt;/p&gt;
&lt;p&gt;Creation can be fulfilling on a truly deep level, proportional to the amount of time and effort you pour into it. I think this can be felt by others, too, because there is a feeling of awe that is evoked when interacting with a work that is full of care.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve always taken pride in being a creator, in my own humble way. I&amp;rsquo;ve tried to be conscious of the amount of time I spend consuming versus creating, because it is easy to slip into habits of excessive consumption. I&amp;rsquo;ve learned that I tend to be happiest when I am able to devote time to creative pastimes.&lt;/p&gt;
&lt;h2 id="generative-ai-changes-things"&gt;Generative AI changes things&lt;/h2&gt;
&lt;p&gt;Of the many things that generative AI is changing about our world, one is allowing people to &lt;em&gt;consume&lt;/em&gt; the &lt;em&gt;process of creation&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Type some words, hit a button, and something novel and interesting comes out. This is consumption. It generates an infinite number of things that can be consumed, each one tailored specifically for you and what you desire. It take minimal effort, and you can interact with it to your heart&amp;rsquo;s content. This is a consumer&amp;rsquo;s dream.&lt;/p&gt;
&lt;p&gt;The novel twist is that it also feels an awful lot like creation. You imagined something, put in some set amount of effort, and now the thing exists. Because you willed it to be so. You can show it to people, and explain that it is yours.&lt;/p&gt;
&lt;p&gt;It strips away the slow, active, hard parts of creation, and serves it to you in a fast, passive, and easy way. You are consuming the experience of creation.&lt;/p&gt;
&lt;h2 id="how-do-i-feel-about-all-this"&gt;How do I feel about all this?&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m really not sure.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m not writing this from a high moral position. I use generative AI at work and in my daily life, and these insights came from recognizing the dynamic at play within myself.&lt;/p&gt;
&lt;p&gt;I feel like I &lt;em&gt;should&lt;/em&gt; feel appalled. That the experience of creation is cheapened and commodified. That I am selling my (limited) skills as a creator short, and jumping into an exo-suit that will only serve to atrophy my muscles. That too many people will start to assume that creation is, or should be, fast and easy, leading to a sharp decline in craftsmanship and overall quality of a technological life.&lt;/p&gt;
&lt;p&gt;But I have to admit that it is so much fun. I can generate useful tools that provide real value to me and my family. These productions can feel great to use, and my pride of them does feel justified, because it is a good solution to a problem that I recognized, and I did put attention to the details that matter to me.&lt;/p&gt;
&lt;p&gt;I feel empowered as a creator like I haven&amp;rsquo;t been since I was learning HTML/CSS for my GeoCities site. Small chops for a small world. The world is so much bigger now, and these big AI chops are so satisfying.&lt;/p&gt;

</content></entry><entry><title>Vertical and horizontal architectures for websites</title><id>https://www.invisibleparade.com/posts/vertical-horizontal-architecture/</id><link href="https://www.invisibleparade.com/posts/vertical-horizontal-architecture/" rel="alternate" type="text/html"/><published>2026-01-22T16:16:00+09:00</published><updated>2026-01-22T16:16:00+09:00</updated><author><name>Alex Onsager</name></author><content type="html">














	

	
	
	
	
		
		
		
		
	

	
	
	
	

	
	
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
				
			
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	

	
		
		
		
	


	

	
	
	
	
		
		
		
		
	

	
	
	
	

	
	
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
				
			
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	

	
		
		
		
	



&lt;p&gt;I recently rebuilt my site, and this gave me an opportunity to rethink how to organize its contents.&lt;/p&gt;
&lt;h2 id="vertical-architecture"&gt;Vertical architecture&lt;/h2&gt;
&lt;p&gt;Most websites have what I consider to be a &amp;ldquo;vertical&amp;rdquo; architecture. This is probably based on early websites being essentially public file servers with files contained in various folders.&lt;/p&gt;
&lt;p&gt;With a vertical architecture, the &amp;ldquo;index page&amp;rdquo; or the &amp;ldquo;top page&amp;rdquo; (see the analogy at work already?) gives an overview of the site&amp;rsquo;s organization and where you can find everything. You decide what you want to see, and start drilling down.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;
 &lt;source srcset="/posts/vertical-horizontal-architecture/vertical_1.webp" type="image/webp"&gt;
 &lt;img src="/posts/vertical-horizontal-architecture/vertical_1.png" alt="Navigating to a post on a vertical blog"
 width="722" height="286"
 loading="lazy" decoding="async"&gt;
 &lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;If you want to visit a different page, you &lt;em&gt;navigate back up&lt;/em&gt;, pick a different spot, and drill down again.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;
 &lt;source srcset="/posts/vertical-horizontal-architecture/vertical_2.webp" type="image/webp"&gt;
 &lt;img src="/posts/vertical-horizontal-architecture/vertical_2.png" alt="Navigating to a different post on a vertical blog"
 width="722" height="286"
 loading="lazy" decoding="async"&gt;
 &lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Moving to a completely different area of the site (in terms of where the file is saved) requires a lot of backtracking, so it&amp;rsquo;s pretty common for all pages to have a quick shortcut back to the very top.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;
 &lt;source srcset="/posts/vertical-horizontal-architecture/vertical_3.webp" type="image/webp"&gt;
 &lt;img src="/posts/vertical-horizontal-architecture/vertical_3.png" alt="Navigating to a different area of a vertical blog"
 width="730" height="286"
 loading="lazy" decoding="async"&gt;
 &lt;/picture&gt;&lt;/p&gt;
&lt;h2 id="horizontal-architecture"&gt;Horizontal architecture&lt;/h2&gt;
&lt;p&gt;A completely different way of organizing content is what I consider to be a &amp;ldquo;horizontal&amp;rdquo; architecture. Rather than arrange everything in meaningful folders, you instead create connections between pages and end up with something like a graph of linked nodes. This is something that you see a lot in wikis.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;
 &lt;source srcset="/posts/vertical-horizontal-architecture/horizontal_1.webp" type="image/webp"&gt;
 &lt;img src="/posts/vertical-horizontal-architecture/horizontal_1.png" alt="A horizontal content graph"
 width="901" height="453"
 loading="lazy" decoding="async"&gt;
 &lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;This is different from the vertical architecture because there is no concept of &amp;ldquo;going back up&amp;rdquo;. You traverse the graph by following links to adjacent pages, exploring the natural connections between their contents.&lt;/p&gt;
&lt;p&gt;There will probably be a home page to give some overview of what you can expect to find, but you most likely will not be returning to it with any regularity.&lt;/p&gt;
&lt;p&gt;With this method, the connections between ideas are organic, and the site as a whole feels very cohesive. Moving to an adjacent page has minimal friction, and the browsing experience is intuitive. You also have the benefit that you don&amp;rsquo;t need to do any organization up-front.&lt;/p&gt;
&lt;h2 id="taking-horizontal-a-step-further"&gt;Taking horizontal a step further&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m really drawn to the horizontal approach. Having a site with this kind of organization motivates me to write more, to publish more, to cultivate this space that some describe as a &lt;a href="https://maggieappleton.com/garden-history" rel="external"&gt;digital garden&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Wikis, Obsidian, and most implementations of this architecture consider mainly links and backlinks – explicit mentions of notes in other notes. I think there is potential for a lot more. One thing I want to explore is the &lt;em&gt;nature of the connection&lt;/em&gt; between notes.&lt;/p&gt;
&lt;p&gt;The core idea is that you want to surface a list of notes that are related to the current one. Notes that the reader might be interested in reading next. There ought to be ways to reveal not just the explicit connections, but more implicit connections as well. And that gives us the opportunity to describe these connections, and explain why we think they are interesting.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;ldquo;Look at this note. It shares these three tags in common.&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;ldquo;This is another book review, about another book in the History genre.&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;ldquo;This note has a contradictory message to the current one. The author is still trying to reconcile these different perspectives.&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;ldquo;This note was written on the same day as this one. They reveal the author&amp;rsquo;s state of mind.&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I think connections like these would be fascinating to explore, and I want to play around with some ideas here to see what&amp;rsquo;s possible.&lt;/p&gt;
&lt;h2 id="what-ive-done-so-far"&gt;What I&amp;rsquo;ve done so far&lt;/h2&gt;
&lt;p&gt;For now, I have surfaced related notes based on tags that they have in common. When displaying a page&amp;rsquo;s &lt;a href="/notes/related-posts/" class="internal"&gt;related posts&lt;/a&gt;, I rank them by how many tags they have in common, since that is probably a good indicator of how related the contents are.&lt;/p&gt;
&lt;p&gt;On an &lt;a href="/notes/tag-pages/" class="internal"&gt;individual tag&amp;rsquo;s page&lt;/a&gt;, I also order the results by the number of other tags they have in common. In a sense, it&amp;rsquo;s not showing a list of &lt;em&gt;pages&lt;/em&gt; that have the tag. It&amp;rsquo;s showing a list of &lt;em&gt;tags&lt;/em&gt; that are related to the current tag, along with the pages that represent that relation. I think that&amp;rsquo;s a lot more interesting.&lt;/p&gt;
&lt;p&gt;This is all I&amp;rsquo;ve done so far because it was pretty easy to implement, but I will see what else I can come up with.&lt;/p&gt;

</content></entry><entry><title>Static site generator wishlist</title><id>https://www.invisibleparade.com/posts/static-site-generator-wishlist/</id><link href="https://www.invisibleparade.com/posts/static-site-generator-wishlist/" rel="alternate" type="text/html"/><published>2026-01-13T11:47:00+09:00</published><updated>2026-01-13T11:47:00+09:00</updated><author><name>Alex Onsager</name></author><content type="html">















&lt;p&gt;A list of things I want to prioritize when choosing and customizing whatever static-site generator I use for building this site.&lt;/p&gt;
&lt;p&gt;Currently using: &lt;a href="https://jekyllrb.com/" rel="external"&gt;Jekyll&lt;/a&gt;, but not enthusiastically
Next contender: &lt;a href="https://gohugo.io/" rel="external"&gt;Hugo&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="1-just-let-me-write-my-words"&gt;1. Just let me write my words&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve recently realized that including software-specific text in my post and pages creates a lot of mental overhead. I make use of a number of handy shortcode functions. For example, creating an image block with descriptions and alt code, with an optional caption using &lt;code&gt;&amp;lt;figcaption&amp;gt;&lt;/code&gt; if I want to provide extra commentary or link back to the source. This is handy, but there are two big problems:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I can never remember the exact syntax, and I have to refer to older posts to see how to declare things. This is a pain&lt;/li&gt;
&lt;li&gt;When authoring the post in a text editor (Obsidian or otherwise), I just see the raw shortcode. It would be so much nicer to be able to actually see the image as I&amp;rsquo;m writing!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Also I fell into the habit of putting various options to customize a page&amp;rsquo;s display into YAML frontmatter. This works, but as the number of options grew, so did the complexity of going through each options and making sure I have everything correct. Minimal frontmatter is fine, like a title and tags.&lt;/p&gt;
&lt;p&gt;This all just leads to a lot of mental overhead. I want to just open a new file, write my words, and hit publish. &lt;a href="http://quartz.jzhao.xyz" rel="external"&gt;Quartz&lt;/a&gt; was very good for this, since it had defaults tailored to match Obsidian&amp;rsquo;s experience. Which leads to the next point:&lt;/p&gt;
&lt;h2 id="2-keep-most-processing-and-customization-within-the-code"&gt;2. Keep most processing and customization within the code&lt;/h2&gt;
&lt;p&gt;I don&amp;rsquo;t want to mix customization and templating code into my files. But I do want to be able to customize things, which means that I want the SSG to be able to define processes separate from the posts.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://quartz.jzhao.xyz" rel="external"&gt;Quartz&lt;/a&gt; was really interesting, because it seems to really embrace this philosophy. I was surprised to find that you can&amp;rsquo;t do something like add &lt;code&gt;{{ snippet/5-recent-posts }}&lt;/code&gt; to a particular page to show recent posts. All of the processing lives outside of your files. What you have to do instead is define a special processor for a certain page, or subset of pages, which will then append 5 recent posts to the page&amp;rsquo;s content. It accomplishes the same thing, with maybe a bit more complexity, but all of your files are still clean markdown. This is great if you write your notes primarily in Obsidian and your goal is to publish the same look to a website.&lt;/p&gt;
&lt;p&gt;What I want is something like this: take the above example of adding an optional &lt;code&gt;&amp;lt;figcaption&amp;gt;&lt;/code&gt; to an image. If I were authoring the file in Obsidian, I would link in the picture, and probably add a line of text directly below the picture as a caption. With no caption, I would add a blank line under the image before starting the next paragraph.&lt;/p&gt;
&lt;p&gt;I want to be able to define this behavior in the SSG and have it process the files automatically. If you see an image, and if there is text on the line directly below it, wrap the image in a &lt;code&gt;&amp;lt;figure&amp;gt;&lt;/code&gt; and add a &lt;code&gt;&amp;lt;figcaption&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Of course there&amp;rsquo;s a balance, because having too much of this invisible processing might make it hard to predict how a page will turn out, but I just need to use discretion when setting things up.&lt;/p&gt;
&lt;h2 id="3-resilience"&gt;3. Resilience&lt;/h2&gt;
&lt;p&gt;My biggest complaint with Jekyll is Ruby, even though I do love the language. It feels like every time I want to add something, there are gems that need to be updated. And if I am using a handful of community plugins, sometimes I get caught in a dependency trap that takes a while to resolve. All of this is a distraction that keeps me from actually building the damn site.&lt;/p&gt;
&lt;p&gt;As a newer SSG, &lt;a href="http://11ty.dev" rel="external"&gt;Eleventy&lt;/a&gt; was very appealing, but I think it runs into the same issue of having hundreds of dependencies that need to be maintained eventually. I want a solution that I requires zero maintenance after I get things working the way I want.&lt;/p&gt;
&lt;p&gt;This is the biggest reason why I&amp;rsquo;m attracted to Hugo now, since it is written in Go and just have a single executable file. People create and share custom functionality, but it&amp;rsquo;s a stretch to call them &amp;ldquo;community plugins&amp;rdquo; because they&amp;rsquo;re basically just a couple of files that you paste into your repository and you&amp;rsquo;re good to go. I like this a lot.&lt;/p&gt;
&lt;h2 id="so-hugo"&gt;So, Hugo?&lt;/h2&gt;
&lt;p&gt;Quartz was pretty interesting to work with, and I love a lot of things about it. In end though it felt like the wrong tool for what I want. Quartz is tied closely with Obsidian, and creating a freeform network of connected notes. My site currently has a fairly tight organization and is focused on displaying things sequentially and with a fair amount of customization. Using Quartz for this doesn&amp;rsquo;t not feel very natural, and I end up having to tweak a lot of minor things all over.&lt;/p&gt;
&lt;p&gt;So Hugo is the top contender. I&amp;rsquo;m looking through the docs now and starting to put together a basic repository to test migrating my site over. I still need to see what the customization feels like. I&amp;rsquo;m sure it&amp;rsquo;s &lt;em&gt;possible&lt;/em&gt; to hack my way through basically anything I want, but it feels bad to go against the grain so to speak, and maintain a hacky workflow that goes against what the software is designed to accomplish. We will see!&lt;/p&gt;

</content></entry><entry><title>Don’t min-max your hobbies</title><id>https://www.invisibleparade.com/posts/min-max-hobbies/</id><link href="https://www.invisibleparade.com/posts/min-max-hobbies/" rel="alternate" type="text/html"/><published>2026-01-10T16:51:00+09:00</published><updated>2026-01-10T16:51:00+09:00</updated><author><name>Alex Onsager</name></author><content type="html">















&lt;p&gt;When I’m having fun with a hobby, nothing kills my motivation faster than learning about a better, more efficient way I could be doing things.&lt;/p&gt;
&lt;p&gt;I was playing Fantasy Life i – chopping trees, making boots, fishing fish, and just generally having a grand time. It felt like alchemy skills were taking longer than the rest to level up, so i checked a wiki to see if i was missing something. Big mistake. What i learned is that, if i haven’t created 4 sunglasses with EXP boost buffs and then started crafting 10 thousand health potions to power level, I’m wasting my time.&lt;/p&gt;
&lt;p&gt;All of a sudden, the time I spent playing the game felt silly. I could be going so much faster. What am I doing wandering around for half an hour looking for one more clownfish to finish a quest? Put your nose on that grindstone and get to work!&lt;/p&gt;
&lt;p&gt;It’s not just about games, too. I love programming and tinkering with software. But The Internet is determined to deny me this pleasure. Why aren’t you using this better framework? Why haven’t you expanded this into a side-hustle yet? Don’t you know that every minute you’re not running automated tools is a minute wasted? The world will leave you behind!&lt;/p&gt;
&lt;p&gt;But of course that isn’t true. It’s ridiculous to think there is a &lt;em&gt;wrong way&lt;/em&gt; to have fun doing what you enjoy. And do you know what happens when you are less efficient progressing through your hobby? You end up spending MORE TIME HAVING FUN doing what you LOVE! Don’t take that away! Let me be slow, and happy.&lt;/p&gt;
&lt;p&gt;But it really does get to me. It’s hard to ignore The Ten Things You Will Definitely Regret Not Learning Sooner. So I do my best not to look things up. And when I inevitably do, I do my best to stay strong, confident in my peaceful pleasure. Good luck in your races – I’m going spelunking.&lt;/p&gt;

</content></entry><entry><title>Buy local</title><id>https://www.invisibleparade.com/posts/buy-local/</id><link href="https://www.invisibleparade.com/posts/buy-local/" rel="alternate" type="text/html"/><published>2026-01-03T10:05:00+09:00</published><updated>2026-01-03T10:05:00+09:00</updated><author><name>Alex Onsager</name></author><content type="html">














	

	
	
	
	

	
	
	
	

	
	
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
		
	
		
			
			
				
			
			
			
				
			
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	
		
	

	
		
		
		
	



&lt;p&gt;I look at reviews before buying things, and I prefer personal websites and youtube channels over large publications because I can get a feel for the person behind the opinions, and their preferences. I&amp;rsquo;ve noticed though that reviews gravitate towards a certain subset of good, but mostly American brands. This is only a problem because I live in Japan, where limited availability and terrible exchange rates makes everything feel twice as expensive as they ought to be.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve recently started leaning towards trying products made by Japanese companies instead, and have been very pleasantly surprised with the overall quality. Most recently when choosing my &lt;a href="/notes/desk-mat/" class="internal"&gt;desk mat&lt;/a&gt;, I ended up buying from both &lt;a href="https://shop.minimaldesksetups.com/products/desk-pad?variant=47324556951745" rel="external"&gt;Minimal Desk Setups&lt;/a&gt; and from a Japanese company called &lt;a href="https://amesoba.com" rel="external"&gt;amesoba&lt;/a&gt;. I knew nothing about this company, but their lineup was impressive and they presented a lot of care in their products. I&amp;rsquo;m very pleased with the desk mat I got from them.&lt;/p&gt;
&lt;p&gt;I still use mostly western products, but I think I&amp;rsquo;ll make an effort to find Japanese alternatives when it comes time to replace items. Japan still has a bastion of creators who are passionate about their craft, and you can find really excellent products from companies that are not widely known.&lt;/p&gt;

</content></entry><entry><title>Media Favorites – 2025</title><id>https://www.invisibleparade.com/posts/media-favorites-2025/</id><link href="https://www.invisibleparade.com/posts/media-favorites-2025/" rel="alternate" type="text/html"/><published>2025-12-29T07:57:00Z</published><updated>2025-12-29T07:57:00Z</updated><author><name>Alex Onsager</name></author><content type="html">















&lt;p&gt;Looking back on the media I consumed in 2025, this is a list of just my favorites.&lt;/p&gt;
&lt;h2 id="-games"&gt;🎮️ Games&lt;/h2&gt;
&lt;h3 id="dragon-quest-v"&gt;Dragon Quest V&lt;/h3&gt;
&lt;p&gt;I was always a Nintendo kid, and have played very few &lt;em&gt;Dragon Quest&lt;/em&gt; or &lt;em&gt;Final Fantasy&lt;/em&gt; games. I&amp;rsquo;d heard that is one of the best, and I finally grabbed the iOS port this year. Among other things, I was really impressed by the clever usage of game mechanics to tell story.&lt;/p&gt;
&lt;p&gt;Early in the game when your dad is traveling with you, having him defeat monsters and heal you constantly cements his presence as someone you can always rely on. Once you set off on your own, the world suddenly feels big and scary. Other battles throughout the story play within existing mechanics, allowing you to take an active role and live through the events. Really creative, masterfully crafted experiences.&lt;/p&gt;
&lt;h3 id="kirby-and-the-forgotten-land"&gt;Kirby and the Forgotten Land&lt;/h3&gt;
&lt;p&gt;This game is a joy to play. I completed it not-quite-to 100% on my own (I plan to go back to it eventually), but this also holds a special place as the first video game we let our son play. And he got good at it so quickly! On the easier mode (what a great option), he has cleared the main story and most of the extra stages as well.&lt;/p&gt;
&lt;h3 id="clair-obscur-expedition-33"&gt;Clair Obscur: Expedition 33&lt;/h3&gt;
&lt;p&gt;This game&amp;rsquo;s world building and creativity blew me away. The gameplay was nothing ground-breaking, which was the correct choice, I think. Give players a familiar playground with some engaging mechanics, introduce them to some monstrously powerful enemies, and then allow characters to grow even stronger. Nothing fancy, just all of the good stuff.&lt;/p&gt;
&lt;p&gt;But the environments, man! This may have been the first game where every single area I entered, including the post-game, compelled me to explore – not by dangling achievements and loot, but by placing me in genuinely compelling settings and taking my breath away. Climbing &lt;em&gt;The Reacher&lt;/em&gt; was a high point in my gaming career.&lt;/p&gt;
&lt;h3 id="alter-aeon"&gt;Alter Aeon&lt;/h3&gt;
&lt;p&gt;This year, I played MUDs for the first time in my life, and Alter Aeon will be the representative of the many I tried. There was something really compelling about accessing a full, vibrant world through a terminal and telnet. While many players were very friendly, it unfortunately felt hard to really connect with the existing player base as a noob, and I had decades of catching up to do. But overall these were very fun experiences.&lt;/p&gt;
&lt;h3 id="fantasy-life-i"&gt;Fantasy Life i&lt;/h3&gt;
&lt;p&gt;The first Fantasy Life game I played was the iOS version, and I really loved it. It took many of the things I enjoyed about MMOs and packaged them into a friendly, approachable single player game. This newest game follows the same formula, and its just very comforting to play. Chicken soup for my gamer soul. Fighting monsters, gathering materials, and crafting items is perfectly balanced to be fun and engaging, but not too tedious or boring.&lt;/p&gt;
&lt;h3 id="chaos-zero-nightmare"&gt;Chaos Zero Nightmare&lt;/h3&gt;
&lt;p&gt;This one was not on my radar, but I heard about it as a roguelike deck-building gacha game. I started it mainly for market research, but was very quickly hooked. Choosing three characters to make a team, and mixing their cards to make your deck gives a lot of room for experimenting with synergies, and the random nature of card upgrades provides a lot of replay value while chasing the perfect deck.&lt;/p&gt;
&lt;p&gt;That said, I am pretty worried about the game&amp;rsquo;s longevity because, while it&amp;rsquo;s a ton of fun to assemble an overpowered deck, what will be left to do once we have all attained them? I&amp;rsquo;m already feeling a very strong power creep after just a couple of months. The game is still in its very early stages, so we will see how the service evolves.&lt;/p&gt;
&lt;h2 id="-books"&gt;📙 Books&lt;/h2&gt;
&lt;h3 id="the-haunting-of-hill-house--shirley-jackson"&gt;The Haunting of Hill House – &lt;em&gt;Shirley Jackson&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;This was introduced to me as the first major literary work featuring a haunted house. A very fun read, it shows that techniques for scaring people through words hasn&amp;rsquo;t changed much in 60+ years.&lt;/p&gt;
&lt;h3 id="the-stormlight-archive--brandon-sanderson"&gt;The Stormlight Archive – &lt;em&gt;Brandon Sanderson&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;After loving the first two books, I read the third and probably never finished the fourth. But since book five is the conclusion to the first arc of this story, I gave the whole series another go. I&amp;rsquo;m glad I did, because I enjoyed it much more the second time around, and book five gave a very satisfying conclusion.&lt;/p&gt;
&lt;h3 id="project-hail-mary--andy-weir"&gt;Project Hail Mary – &lt;em&gt;Andy Weir&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;I love Andy Weir&amp;rsquo;s writing – I was following &lt;em&gt;The Martian&lt;/em&gt; as it was being serialized on his personal site. This book was everything I loved about &lt;em&gt;The Martian&lt;/em&gt;, with even more toppings that only enhance the experience. An absolute joy.&lt;/p&gt;
&lt;h3 id="the-books-of-earthsea--ursula-k-le-guin"&gt;The Books of Earthsea – &lt;em&gt;Ursula K. Le Guin&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;ve never read these books before! How can that be? I&amp;rsquo;m currently most of the way through book 3 and I&amp;rsquo;m loving it. The first book was pretty good, and each consecutive book has been pulling me in more and more.&lt;/p&gt;
&lt;h2 id="-manga"&gt;💬 Manga&lt;/h2&gt;
&lt;h3 id="ルックバック-look-back--藤本-タツキ"&gt;ルックバック (Look Back) – &lt;em&gt;藤本 タツキ&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;This one-shot manga about aspiring Manga writers and their dedication to their craft made me cry on the train. The movie was also fantastic.&lt;/p&gt;
&lt;h3 id="ダンダダン-dandadan--龍-幸伸"&gt;ダンダダン (Dandadan) – &lt;em&gt;龍 幸伸&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;The first manga series in a long time that just completely won me over. The gags are so funny, the action is so good, the poses are so cool. It just perfectly aligns with my tastes. (The fan service was a little excessive in the early chapters though, and I&amp;rsquo;m glad that wide popularity seems to have toned it down a bit.)&lt;/p&gt;
&lt;h3 id="よつばと-yotsuba--あずま-きよひこ"&gt;よつばと! (Yotsuba&amp;amp;!) – &lt;em&gt;あずま きよひこ&lt;/em&gt;&lt;/h3&gt;
&lt;p&gt;A re-read, but this is nourishment for my soul. Now that I have kids of my own, I recognize that a lot of elements of the story should be taken as fantasy. But every time I read this, I&amp;rsquo;m motivated to be a kinder, more loving person – especially to my kids.&lt;/p&gt;
&lt;h2 id="-serial-shows"&gt;📺️ Serial Shows&lt;/h2&gt;
&lt;h3 id="no-no-girls"&gt;No No Girls&lt;/h3&gt;
&lt;p&gt;A reality show following an audition for a girls&amp;rsquo; performance group. Produced by Chanmina, the selection explicitly prioritizes skill and passion – not looks. I was blown away by the care taken in coaching the participants. It is clear that Chanmina truly cares about each of these girls, and is seeing the audition as an opportunity to connect deeply to, and really guide every person through a pivotal point in their professional lives.&lt;/p&gt;
&lt;h3 id="ホットスポット-the-hot-spot"&gt;ホットスポット (The Hot Spot)&lt;/h3&gt;
&lt;p&gt;A comedy SF drama about an alien who lives a relatively normal life in a rural Japanese town, pretending to be human and hiding his marginally useful psychic abilities. Written by Bakarhythm, I will always gladly watch another show by him.&lt;/p&gt;
&lt;h3 id="じゃああんたが作ってみろよ"&gt;じゃあ、あんたが作ってみろよ&lt;/h3&gt;
&lt;p&gt;A weekly drama airing on local Japanese TV about a couple who break up, and then separately do some soul-searching to grow into a better version of themselves. Very cute, and the comedy was on-point as well.&lt;/p&gt;
&lt;h3 id="last-piece"&gt;Last Piece&lt;/h3&gt;
&lt;p&gt;Another reality audition show, this time with boys. It&amp;rsquo;s put on by the same talent agency as No No Girls, so more of the same good stuff. I wasn&amp;rsquo;t planning on watching it at first, but the resulting boy group&amp;rsquo;s performance on TV was really great, and made me want to see their origin story.&lt;/p&gt;
&lt;h3 id="ザロイヤルファミリー-passing-the-reins"&gt;ザ・ロイヤルファミリー (Passing the Reins)&lt;/h3&gt;
&lt;p&gt;A drama series about a racehorse team, following a few generations of their prize horses. This was just a really great story, and very well presented. I really want to know how they filmed the races themselves, because they were all very exciting with the perfect dramatic finishes.&lt;/p&gt;
&lt;h2 id="-movies"&gt;🎬️ Movies&lt;/h2&gt;
&lt;h3 id="侵入者たちの晩餐-trespassers"&gt;侵入者たちの晩餐 (Trespassers)&lt;/h3&gt;
&lt;p&gt;Another by Bakarhythm. This is the story of three unlikely robbers who break into their boss&amp;rsquo; apartment, where antics ensue. The &lt;em&gt;Rashomon&lt;/em&gt;-esque repetition of the events from various characters&amp;rsquo; point of view was delightfully done, too.&lt;/p&gt;
&lt;h3 id="kingdom-4-大将軍の帰還-return-of-the-great-general"&gt;Kingdom 4: 大将軍の帰還 (Return of the Great General)&lt;/h3&gt;
&lt;p&gt;I love the Kingdom comics, and the movies are also a lot of fun. This fourth one though, was damn good. Loved everything about it.&lt;/p&gt;
&lt;h3 id="ザマジックアワー-the-magic-hour"&gt;ザ・マジックアワー (The Magic Hour)&lt;/h3&gt;
&lt;p&gt;I haven&amp;rsquo;t seen very much by Koki Mitani before, but this movie was great. It was kind of similar to the Bill Murray movie, &lt;em&gt;The Man Who Knew Too Little&lt;/em&gt;. A huge misunderstanding persists throughout the entire movie, leading to brilliant suspense and comedy.&lt;/p&gt;

</content></entry><entry><title>Journaling in 2025</title><id>https://www.invisibleparade.com/posts/journal-2025/</id><link href="https://www.invisibleparade.com/posts/journal-2025/" rel="alternate" type="text/html"/><published>2025-12-27T03:13:00Z</published><updated>2025-12-27T03:13:00Z</updated><author><name>Alex Onsager</name></author><content type="html">















&lt;p&gt;&lt;picture&gt;
 &lt;source srcset="/posts/journal-2025/journal-2025.webp" type="image/webp"&gt;
 &lt;img src="/posts/journal-2025/journal-2025.jpeg" alt="An image of my Rollbahn notebook. It features an illustration of a train on Japan&amp;rsquo;s Odakyu line." title="2025 Journal"
 width="1280" height="640"
 loading="lazy" decoding="async"&gt;
 &lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;2025 was the first year that I maintained a physical journal for the entire year. I had never been able to continue the habit, and admired people who could. My goal was pretty simple – at the end of the year, have a journal that I wrote in consistently for 12 months. This has been a success!&lt;/p&gt;
&lt;h2 id="what-to-write"&gt;What to write&lt;/h2&gt;
&lt;p&gt;I have never been one to write down my thoughts and feelings. I understand that it can be very therapeutic for some, but I’m not one of those people. &lt;a href="https://bulletjournal.com/" rel="external"&gt;Bullet Journal&lt;/a&gt; was a great starting point to determine a basic philosophy, even though I did not end up following most of the format.&lt;/p&gt;
&lt;h3 id="the-index-page"&gt;The index page&lt;/h3&gt;
&lt;p&gt;Bullet Journal’s index page is a fantastic idea. Instead of trying to organize your journal into meaningful sections as you fill it out, you just write everything in what ever order it comes out of your head. If you think you might want to find something later, just add it as an entry to your index with its page number. Easy.&lt;/p&gt;
&lt;p&gt;For example, I have a few recipes scattered through my journal. Instead of creating specific Recipe pages that may or may not get filled, my index entry for ”Recipe” has three page numbers listed. No wasted space, no mental overhead when writing.&lt;/p&gt;
&lt;h3 id="a-two-entry-daily-log"&gt;A two-entry daily log&lt;/h3&gt;
&lt;p&gt;The main point of the journal is to write what happened that day, to be able to look back and remind myself. But many days end up being mostly the same:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Wake up and do stuff around the house.&lt;/li&gt;
&lt;li&gt;Go to work.&lt;/li&gt;
&lt;li&gt;Come home for dinner and family time.&lt;/li&gt;
&lt;li&gt;A couple hours free after the kids sleep.
5. Go to bed.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;What do I write on days like this? At first I skipped those days because there was nothing noteworthy, but then I started skipping too many days.&lt;/p&gt;
&lt;h3 id="media-log"&gt;Media log&lt;/h3&gt;
&lt;p&gt;I kept a log of the various media I consumed throughout the year – books, TV shows, movies, and games. I kept it simple, just a single line for each entry with a 5-
star rating. This is the first time I’ve tracked this, and it is a lot of fun to look back on the year and see what all I watched and read.&lt;/p&gt;
&lt;h2 id="japanese-practice"&gt;Japanese practice&lt;/h2&gt;
&lt;p&gt;I think one of the most important things about journaling is making it low-friction, and this completely goes against that philosophy. But my Japanese writing skills are embarrassingly low, and now that everything is more and more digital there is really no opportunity for it to get better on its own. I decided to keep my journal in Japanese, to force myself to practice writing. I’m definitely glad I made this choice, because my writing has improved, even if just a little bit.&lt;/p&gt;
&lt;h2 id="continuing-the-habit"&gt;Continuing the habit&lt;/h2&gt;
&lt;p&gt;Will I continue to keep a journal in 2026? At first I was not sure, but I’ve committed myself to another year. I have a better idea of how I want to approach the journal, so I’ll write another post about the format I’ll follow in 2026.&lt;/p&gt;

</content></entry><entry><title>I was hacked!</title><id>https://www.invisibleparade.com/posts/hacked/</id><link href="https://www.invisibleparade.com/posts/hacked/" rel="alternate" type="text/html"/><published>2025-12-23T05:44:00Z</published><updated>2025-12-23T05:44:00Z</updated><author><name>Alex Onsager</name></author><content type="html">















&lt;p&gt;&lt;a href="https://blog.jakesaunders.dev/my-server-started-mining-monero-this-morning/" rel="external"&gt;Jake Saunders wrote&lt;/a&gt; about discovering that a recent Next.js vulnerability allowed hackers access to their server through an Umami instance. I use Umami, too!&lt;/p&gt;
&lt;p&gt;I logged into my VPS and didn&amp;rsquo;t see any suspicious files or running processes. I then opened my Umami dashboard to poke around, and my browser immediately opened a window to a gambling site. Well, shit.&lt;/p&gt;
&lt;h2 id="damage-assessment"&gt;Damage assessment&lt;/h2&gt;
&lt;p&gt;The browser&amp;rsquo;s developer console showed that an &lt;code&gt;onclick&lt;/code&gt; event was added to the &lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt; object, and this was originating from a file disguised to look like a standard Next.js library file used by Umami. So the attacker was able to modify and add files, as well as spoof the modified date to hide their tracks.&lt;/p&gt;
&lt;p&gt;Umami was running in a Docker container, but I had to check if they had escaped the container. Running various commands revealed that the &lt;code&gt;sudo&lt;/code&gt; command was no longer working properly. Gemini asserted that this was a sure sign that malicious actors had been doing naughty things. I wasn&amp;rsquo;t as confident, but I also am not experienced enough to convince myself that everything was fine, so I decided to play it safe by accepting that everything could have been compromised. I spun up a fresh new VPS and migrated my data and files over. Using Caddy and Docker Compose makes my installations extremely portable, and the migration itself only took a couple of hours.&lt;/p&gt;
&lt;h2 id="tightening-security"&gt;Tightening security&lt;/h2&gt;
&lt;p&gt;My security wasn&amp;rsquo;t &lt;em&gt;too&lt;/em&gt; bad before, but I did take one additional step on the new server by using &lt;a href="https://docs.docker.com/engine/security/userns-remap/" rel="external"&gt;user namespaces&lt;/a&gt; for my Docker containers.&lt;/p&gt;
&lt;p&gt;Some processes within Docker containers need to run as root, which gives attackers an attack route if they break out of the container. By using namespaces, you can remap the container&amp;rsquo;s root user to a non-privileged user on the host machine. Even if an attacker managed to break out of the container, they would not be able to do anything.&lt;/p&gt;
&lt;h2 id="what-was-the-purpose-of-this-attack"&gt;What was the purpose of this attack?&lt;/h2&gt;
&lt;p&gt;In the aforementioned post, the attacker used the compromised server to mine Monero. This makes sense – it&amp;rsquo;s free money. But in my case, all they did was inject a link to a (annoying, but harmless) gambling website. All things considered, this is pretty benign, considering everything else they could have done.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve explored what the motivations for this type of attack may have been. Most likely, the play is to link to a shady site from many compromised sites, in order to increase SEO rankings.&lt;/p&gt;
&lt;p&gt;Another possibility is to collect tons of servers that are available to use, and use them as a proxy network to rotate IP addresses or conceal network activity.&lt;/p&gt;
&lt;p&gt;In either case, there is a benefit to having the compromise go unnoticed for as long as possible. That would explain why the damage seemed so isolated.&lt;/p&gt;

</content></entry><entry><title>Transparent leadership</title><id>https://www.invisibleparade.com/posts/transparent-leadership/</id><link href="https://www.invisibleparade.com/posts/transparent-leadership/" rel="alternate" type="text/html"/><published>2025-12-09T13:11:00+09:00</published><updated>2025-12-09T13:11:00+09:00</updated><author><name>Alex Onsager</name></author><content type="html">















&lt;p&gt;From &lt;a href="https://entropicthoughts.com/transparent-leadership-beats-servant-leadership" rel="external"&gt;Transparent Leadership Beats Servant Leadership&lt;/a&gt;, by Chris at &lt;a href="https://entropicthoughts.com/index" rel="external"&gt;Entropic Thoughts&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In my book, a good leader&lt;/p&gt;
&lt;p&gt;coaches people,&lt;br&gt;
connects people,&lt;br&gt;
[. . .]&lt;br&gt;
creates direct links between supply and demand (instead of deliberately making themselves a middle man),&lt;br&gt;
[. . .]&lt;br&gt;
generally makes themselves redundant.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I really related with many of the points in this post. Coincidentally, I had just recently come to some similar conclusions at my own workplace, too.&lt;/p&gt;
&lt;p&gt;Effective leaders enable people to solve problems and make progress on their own, so the presence of the best leaders will probably be hard to notice.&lt;/p&gt;
&lt;p&gt;I am reminded of a quote from Lao-Tzu (or at least one version of its translation) that has stuck in my mind:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A leader is best when people barely know he exists. When his work is done, his aim fulfilled, they will say: We did it ourselves.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I would often place myself as a middle man in communications deliberately, especially when I was invested in the communication and the other parties involved were also busy doing other things at the same time. The intent was that I could steer the conversation to an efficient consensus, by framing the discussions and paraphrasing or summarizing (what I thought to be) the important points.&lt;/p&gt;
&lt;p&gt;In reality though, I was often doing more harm than good.&lt;/p&gt;
&lt;p&gt;By placing myself in the middle of communications, I make myself a bottleneck. If &lt;em&gt;I&lt;/em&gt; was busy doing something else, I might delay responses, and it was often faster to just have the two people talk to each other directly.&lt;/p&gt;
&lt;p&gt;And when I put information through my own filter of what I felt was important or not, It&amp;rsquo;s too easy to get the nuance wrong. Even if things seemed to work out at the time, small differences in understanding can compound over time and turn into a bigger problem in the future. In these cases too, I think now that it&amp;rsquo;s more effective to just have everyone speak to each other directly.&lt;/p&gt;
&lt;p&gt;Of course, not everyone can be talking to everyone else all the time, and determining how much is too much might be an area where my input could help. But in general, I&amp;rsquo;m trying very hard not to speak for other people, and am trying instead to be someone who can connect people &lt;em&gt;to each other&lt;/em&gt; quickly and efficiently.&lt;/p&gt;

</content></entry><entry><title>Rambling about — Keyboards</title><id>https://www.invisibleparade.com/posts/r-keyboards/</id><link href="https://www.invisibleparade.com/posts/r-keyboards/" rel="alternate" type="text/html"/><published>2025-11-27T15:36:00+09:00</published><updated>2025-11-27T15:36:00+09:00</updated><author><name>Alex Onsager</name></author><content type="html">















&lt;p&gt;I use an &lt;a href="https://iqunix.com/products/magi65" rel="external"&gt;IQUNIX Magi65&lt;/a&gt; keyboard at home, and absolutely love it. I didn&amp;rsquo;t get the Pro version, as I don&amp;rsquo;t really need a dial or media keys, and I preferred the smaller size anyways. The only real criticism I noticed in reviews was that the keyboard is pretty heavy, but this turned out to be a good thing for me. I don&amp;rsquo;t want to carry the thing around with me, and I love the solidity as I type. The typing experience is fantastic.&lt;/p&gt;
&lt;p&gt;I wanted a nice keyboard at work, too, and felt weird about buying 2 of the same keyboard. I figured this was a good opportunity to try something else, so I got the &lt;a href="https://nuphy.com/collections/keyboards/products/nuphy-air75-v3-page" rel="external"&gt;NuPhy Air75 V3&lt;/a&gt; for the office. This was also well-reviewed, and is quite a bit lighter. It seems like people who want low-profile mechanical keyboards also value portability, which makes sense.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been giving it a fair chance, but I have to admit that I really don&amp;rsquo;t like it very much. For lack of a better vocabulary, the keys just feel too light. I find myself mistyping a lot for some reason, and I think it has to do with the keys being pressed very easily without a lot of bounce-back. Maybe I just have to learn to be gentler with my typing? I&amp;rsquo;m not sure, but it&amp;rsquo;s been a while and I still haven&amp;rsquo;t gotten used to it.&lt;/p&gt;
&lt;p&gt;Then, I came across the &lt;a href="https://shop.beekeeb.com/products/toucan-wireless-piantor-wireless-split-keyboard-with-touchpad" rel="external"&gt;Toucan&lt;/a&gt;, which is just absolutely gorgeous. I had never really considered a split keyboard, but I fell in love with this one.&lt;/p&gt;
&lt;p&gt;I still haven&amp;rsquo;t bought one. I&amp;rsquo;m worried about losing so many keys, but this has definitely triggered an interest in split keyboards, and the &lt;a href="https://github.com/foostan/crkbd" rel="external"&gt;Corne layout&lt;/a&gt; especially. I can&amp;rsquo;t justify getting this as a daily driver, or spending so much money on a side-toy, but I&amp;rsquo;m been browsing used markets for a cheap entry model. Who knows, maybe one day I&amp;rsquo;ll find The One and dive off the deep end.&lt;/p&gt;
&lt;p&gt;So what about my work keyboard? I might just get another Magi65, because it is by far my favorite typing experience.&lt;/p&gt;

</content></entry></feed>