<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>All posts on Jaspers Archive</title><link>https://jas.pe/posts/</link><description>Recent content in All posts on Jaspers Archive</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Thu, 24 Sep 2026 00:36:59 +0000</lastBuildDate><atom:link href="https://jas.pe/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Reading</title><link>https://jas.pe/posts/reading/</link><pubDate>Thu, 24 Sep 2026 00:36:59 +0000</pubDate><guid>https://jas.pe/posts/reading/</guid><description>&lt;p&gt;&lt;strong&gt;It&amp;rsquo;s those damn phones&lt;/strong&gt;, is something I often heard jokes about parents saying, and my parents and grandparents would say things with a similar message.&lt;/p&gt;
&lt;p&gt;Like many in my generation I would shrug it off, however as I have gotten older I have come to notice that many behavioural patterns of mine are so deeply ingrained in me, that I cannot help but use my mobile phone at the earliest (in)convenience.&lt;/p&gt;</description></item><item><title>NotifPWA</title><link>https://jas.pe/posts/notifpwa/</link><pubDate>Fri, 24 Jul 2026 03:06:42 +0000</pubDate><guid>https://jas.pe/posts/notifpwa/</guid><description>&lt;p&gt;I ran into this issue that notifications could not easily be sent to my phone. I wanted something like &lt;code&gt;ntfy&lt;/code&gt;, but self-hosted to keep my infrastructure mine.
The issue with self-hosting &lt;code&gt;ntfy&lt;/code&gt; is that push-notifications do not work &lt;em&gt;(as of 24/07/2026)&lt;/em&gt; on iOS, because Apple™ loves doing things &lt;em&gt;differently&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://support.apple.com/en-au/101566"&gt;&lt;code&gt;iOS 16.4+&lt;/code&gt; supports Web Notifications as long as the site is a PWA&lt;/a&gt;. This is something I can use.&lt;/p&gt;
&lt;h1 id="what-is-a-pwa"&gt;
 &lt;a href="#what-is-a-pwa" class="heading-anchor"&gt;What is a &amp;ldquo;PWA&amp;rdquo;?&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;A &amp;ldquo;&lt;em&gt;PWA&lt;/em&gt;&amp;rdquo; is similar to an App, it can be used like an app, added to the home screen, and offer other platform specific benefits, without getting into the nitty-gritty:
You can use it as if it is an app, built for the platform you are on. What makes it different though is that traditionally websites are experienced more as a place you can visit, other than a place you have. A website doesn&amp;rsquo;t (typically) have a presence on the user&amp;rsquo;s device, instead it is requested / accessed by a browser.&lt;/p&gt;</description></item><item><title>Colors &amp; branding</title><link>https://jas.pe/posts/colors/</link><pubDate>Wed, 22 Jul 2026 01:40:29 +0000</pubDate><guid>https://jas.pe/posts/colors/</guid><description>&lt;p&gt;Everyone has favorite colors, I do too!
So this post has swatches of the colors I like the most, and want to use more consistently with my projects.&lt;/p&gt;
&lt;h3 id="swatches"&gt;
 &lt;a href="#swatches" class="heading-anchor"&gt;Swatches&lt;/a&gt;
&lt;/h3&gt;
&lt;style&gt;
.color-grid {
 --swatch-size: 8.5rem;
 display: grid;
 grid-template-columns: repeat(auto-fill, minmax(var(--swatch-size), 1fr));
 gap: 1.25rem;
 margin: 1.75rem 0;
 padding: 0;
 list-style: none;
}
.color-grid .swatch {
 display: flex;
 flex-direction: column;
 border: 1px solid var(--rule);
 border-radius: 10px;
 overflow: hidden;
 background: var(--bg);
}
.color-grid .swatch-chip {
 aspect-ratio: 1 / 1;
 /* inner hairline so pale chips stay visible on the paper ground */
 box-shadow: inset 0 0 0 1px rgba(61, 84, 103, 0.08);
}
.color-grid .swatch-meta {
 padding: 0.7rem 0.8rem 0.85rem;
 border-top: 1px solid var(--rule);
}
.color-grid .swatch-name {
 font-family: var(--font-sans);
 font-size: 0.9rem;
 font-weight: 600;
 color: var(--fg);
 line-height: 1.25;
}
.color-grid .swatch-code {
 display: block;
 font-family: var(--font-mono);
 font-size: 0.78rem;
 color: var(--muted);
 margin-top: 0.35rem;
 line-height: 1.5;
}
.color-grid .swatch-code .rgb { display: block; }
&lt;/style&gt;
&lt;ul class="color-grid"&gt;
 &lt;li class="swatch"&gt;
 &lt;div class="swatch-chip" style="background: var(--color-green)"&gt;&lt;/div&gt;
 &lt;div class="swatch-meta"&gt;
 &lt;span class="swatch-name"&gt;Greenish&lt;/span&gt;
 &lt;span class="swatch-code"&gt;#0a685a&lt;span class="rgb"&gt;rgb(10, 104, 90)&lt;/span&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/li&gt;
 &lt;li class="swatch"&gt;
 &lt;div class="swatch-chip" style="background: var(--color-green-deep)"&gt;&lt;/div&gt;
 &lt;div class="swatch-meta"&gt;
 &lt;span class="swatch-name"&gt;Greenish Dark&lt;/span&gt;
 &lt;span class="swatch-code"&gt;#095e51&lt;span class="rgb"&gt;rgb(9, 94, 81)&lt;/span&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/li&gt;
 &lt;li class="swatch"&gt;
 &lt;div class="swatch-chip" style="background: var(--color-green-deeper)"&gt;&lt;/div&gt;
 &lt;div class="swatch-meta"&gt;
 &lt;span class="swatch-name"&gt;Greenish Darker&lt;/span&gt;
 &lt;span class="swatch-code"&gt;#085348&lt;span class="rgb"&gt;rgb(8, 83, 72)&lt;/span&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/li&gt;
 &lt;li class="swatch"&gt;
 &lt;div class="swatch-chip" style="background: var(--color-green-deepest)"&gt;&lt;/div&gt;
 &lt;div class="swatch-meta"&gt;
 &lt;span class="swatch-name"&gt;Greenish Darkest&lt;/span&gt;
 &lt;span class="swatch-code"&gt;#07493f&lt;span class="rgb"&gt;rgb(7, 73, 63)&lt;/span&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/li&gt;
 &lt;li class="swatch"&gt;
 &lt;div class="swatch-chip" style="background: var(--color-dim-grey)"&gt;&lt;/div&gt;
 &lt;div class="swatch-meta"&gt;
 &lt;span class="swatch-name"&gt;Dim Grey&lt;/span&gt;
 &lt;span class="swatch-code"&gt;#686963&lt;span class="rgb"&gt;rgb(104, 105, 99)&lt;/span&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/li&gt;
 &lt;li class="swatch"&gt;
 &lt;div class="swatch-chip" style="background: var(--color-teal)"&gt;&lt;/div&gt;
 &lt;div class="swatch-meta"&gt;
 &lt;span class="swatch-name"&gt;Muted Teal&lt;/span&gt;
 &lt;span class="swatch-code"&gt;#8aa29e&lt;span class="rgb"&gt;rgb(138, 162, 158)&lt;/span&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/li&gt;
 &lt;li class="swatch"&gt;
 &lt;div class="swatch-chip" style="background: var(--color-teal-deep)"&gt;&lt;/div&gt;
 &lt;div class="swatch-meta"&gt;
 &lt;span class="swatch-name"&gt;Teal Deep&lt;/span&gt;
 &lt;span class="swatch-code"&gt;#6f8b86&lt;span class="rgb"&gt;rgb(111, 139, 134)&lt;/span&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/li&gt;
 &lt;li class="swatch"&gt;
 &lt;div class="swatch-chip" style="background: var(--color-charcoal)"&gt;&lt;/div&gt;
 &lt;div class="swatch-meta"&gt;
 &lt;span class="swatch-name"&gt;Charcoal Blue&lt;/span&gt;
 &lt;span class="swatch-code"&gt;#3d5467&lt;span class="rgb"&gt;rgb(61, 84, 103)&lt;/span&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/li&gt;
 &lt;li class="swatch"&gt;
 &lt;div class="swatch-chip" style="background: var(--color-coarse-wool)"&gt;&lt;/div&gt;
 &lt;div class="swatch-meta"&gt;
 &lt;span class="swatch-name"&gt;Coarse Wool&lt;/span&gt;
 &lt;span class="swatch-code"&gt;#182027&lt;span class="rgb"&gt;rgb(24, 32, 39)&lt;/span&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/li&gt;
 &lt;li class="swatch"&gt;
 &lt;div class="swatch-chip" style="background: var(--color-smoke)"&gt;&lt;/div&gt;
 &lt;div class="swatch-meta"&gt;
 &lt;span class="swatch-name"&gt;White Smoke&lt;/span&gt;
 &lt;span class="swatch-code"&gt;#f1edee&lt;span class="rgb"&gt;rgb(241, 237, 238)&lt;/span&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/li&gt;
 &lt;li class="swatch"&gt;
 &lt;div class="swatch-chip" style="background: var(--color-rule)"&gt;&lt;/div&gt;
 &lt;div class="swatch-meta"&gt;
 &lt;span class="swatch-name"&gt;Teal-Grey Hairline&lt;/span&gt;
 &lt;span class="swatch-code"&gt;#d4d9d3&lt;span class="rgb"&gt;rgb(212, 217, 211)&lt;/span&gt;&lt;/span&gt;
 &lt;/div&gt;
 &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here are also a few logos I use for my projects, both animated and static:&lt;/p&gt;</description></item><item><title>chatto.ts: Strictly typed Chatto Framework</title><link>https://jas.pe/posts/chatto.ts/</link><pubDate>Thu, 16 Jul 2026 01:19:59 +0000</pubDate><guid>https://jas.pe/posts/chatto.ts/</guid><description>&lt;p&gt;Last week, I was doing my usual browsing of &lt;a href="https://news.ycombinator.com"&gt;ycombinator&lt;/a&gt;, when I came across a post that read &lt;a href="https://news.ycombinator.com/item?id=48833116"&gt;Chatto is now open source&lt;/a&gt;, which caught my attention, especially because the post (at the time of writing) had over 1100 points, so I had to look at what all the fuss was about.&lt;/p&gt;
&lt;p&gt;I checked out the post, and it was immediately filled with &lt;em&gt;incredible- if true&lt;/em&gt; claims, such as &lt;strong&gt;&amp;ldquo;extremely easy to self-host&amp;rdquo;&lt;/strong&gt;, &lt;strong&gt;&amp;ldquo;very light on resources&amp;rdquo;&lt;/strong&gt;, &lt;strong&gt;&amp;ldquo;snappiest frontend that you’ve ever used in an app like this&amp;rdquo;&lt;/strong&gt;, &lt;strong&gt;&amp;ldquo;fully encrypted at rest&amp;rdquo;&lt;/strong&gt;, and &lt;strong&gt;&amp;ldquo;voice and video calls&amp;rdquo;&lt;/strong&gt;.
Now this wouldn&amp;rsquo;t be the first time something like this pops up and it ends up being a lot less than what you would&amp;rsquo;ve wanted, or a garbled mess of AI slop that does not work in the slightest.&lt;/p&gt;</description></item><item><title>Leaving Gitea</title><link>https://jas.pe/posts/leavinggitea/</link><pubDate>Wed, 08 Jul 2026 00:47:46 +0000</pubDate><guid>https://jas.pe/posts/leavinggitea/</guid><description>&lt;h1 id="intro"&gt;
 &lt;a href="#intro" class="heading-anchor"&gt;Intro&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;As the title states, I am leaving Gitea.
I started looking for alternatives after &lt;strong&gt;CVE-2026-27771&lt;/strong&gt;&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;, something that allowed people to pull private container images from the built in container registry without any authentication. It existed for years, and did affect Gitea as-well as Forgejo.&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;While that issue alone wasn&amp;rsquo;t enough to make me migrate, it did make me start looking at alternative options. Combined with the disclosure of &lt;strong&gt;CVE-2026-20896&lt;/strong&gt; and a number of governance concerns (specifically its less than open source company environment) that have accumulated over the past few years, I&amp;rsquo;ve decided it&amp;rsquo;s time to move elsewhere.&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;</description></item><item><title>Moving to Hugo</title><link>https://jas.pe/posts/hugo/</link><pubDate>Tue, 23 Jun 2026 15:16:49 +0800</pubDate><guid>https://jas.pe/posts/hugo/</guid><description>&lt;h1 id="why"&gt;
 &lt;a href="#why" class="heading-anchor"&gt;Why?&lt;/a&gt;
&lt;/h1&gt;
&lt;h2 id="the-beginning-of-trouble"&gt;
 &lt;a href="#the-beginning-of-trouble" class="heading-anchor"&gt;The beginning of trouble&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;On my previous site, I had written my own frontmatter interpreter to make blogging easy.
I did not like the complexity or feel that existing options like wordpress provided, and I did not Google much longer than 30 seconds to see if the tool I was looking for already existed.
So I had coded one, from scratch&amp;hellip; That went predictably horribly and I had to continually make changes just to accomodate new features I didn&amp;rsquo;t think of initially.&lt;/p&gt;</description></item><item><title>Australia</title><link>https://jas.pe/posts/australia/</link><pubDate>Wed, 18 Jun 2025 15:43:19 +0800</pubDate><guid>https://jas.pe/posts/australia/</guid><description>&lt;h2 id="actually-trying-vegemite-2026--7--1"&gt;
 &lt;a href="#actually-trying-vegemite-2026--7--1" class="heading-anchor"&gt;Actually trying vegemite (2026 / 7 / 1)&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Surprisingly it took me over a year of being in Australia to actually try Vegemite.&lt;/p&gt;
&lt;p&gt;I had seen these reaction youtubers make videos about how horrid it tasted, but then taking a spoon full of it and just eating it like that, which is quite clearly not the way you&amp;rsquo;d be meant to eat it. How many people eat butter or margerine with a spoon?&lt;/p&gt;</description></item><item><title>Introduction to Technomancy</title><link>https://jas.pe/posts/intro/</link><pubDate>Wed, 01 Jan 2020 03:01:08 +0000</pubDate><guid>https://jas.pe/posts/intro/</guid><description>&lt;h2 id="introduction"&gt;
 &lt;a href="#introduction" class="heading-anchor"&gt;Introduction&lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Hello there,&lt;/p&gt;
&lt;p&gt;this is my new site.
I will be posting my content here, talking about projects I have been working on, sharing my thoughts, and maybe some drafts.&lt;/p&gt;
&lt;p&gt;For now though, this is it. I just wanted to get this up and running, so I can start posting stuff here.&lt;/p&gt;</description></item></channel></rss>