<feed xmlns='http://www.w3.org/2005/Atom'>
<title>fun.git/index.html, branch master</title>
<subtitle>Source code of personal website</subtitle>
<id>https://git.tylerhoang.xyz/fun.git/atom?h=master</id>
<link rel='self' href='https://git.tylerhoang.xyz/fun.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.tylerhoang.xyz/fun.git/'/>
<updated>2026-06-05T08:42:03Z</updated>
<entry>
<title>add radio.trainytrain.xyz to server list</title>
<updated>2026-06-05T08:42:03Z</updated>
<author>
<name>Tyler Hoang</name>
<email>tyler@tylerhoang.xyz</email>
</author>
<published>2026-06-05T08:42:03Z</published>
<link rel='alternate' type='text/html' href='https://git.tylerhoang.xyz/fun.git/commit/?id=37b8cc09d852ca63ad40c5ed5b1c24717d7aa520'/>
<id>urn:sha1:37b8cc09d852ca63ad40c5ed5b1c24717d7aa520</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>rebrand site to trainytrain.xyz; update films/up subdomains</title>
<updated>2026-06-05T08:30:38Z</updated>
<author>
<name>Tyler Hoang</name>
<email>tyler@tylerhoang.xyz</email>
</author>
<published>2026-06-05T08:30:38Z</published>
<link rel='alternate' type='text/html' href='https://git.tylerhoang.xyz/fun.git/commit/?id=a90bafa87c076a8fe04c91a49c75f4b4963ccfe8'/>
<id>urn:sha1:a90bafa87c076a8fe04c91a49c75f4b4963ccfe8</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>rename site title to trainytrain.xyz</title>
<updated>2026-06-05T08:27:59Z</updated>
<author>
<name>Tyler Hoang</name>
<email>tyler@tylerhoang.xyz</email>
</author>
<published>2026-06-05T08:27:59Z</published>
<link rel='alternate' type='text/html' href='https://git.tylerhoang.xyz/fun.git/commit/?id=becd43ea2152dd676b8d26a8e92fe693502c98f1'/>
<id>urn:sha1:becd43ea2152dd676b8d26a8e92fe693502c98f1</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>add Keep Android Open system notice + tray countdown</title>
<updated>2026-06-03T22:51:36Z</updated>
<author>
<name>Tyler Hoang</name>
<email>tyler@tylerhoang.xyz</email>
</author>
<published>2026-06-03T22:51:36Z</published>
<link rel='alternate' type='text/html' href='https://git.tylerhoang.xyz/fun.git/commit/?id=d70ce65502caf70daaa9eb6b85c698554786734e'/>
<id>urn:sha1:d70ce65502caf70daaa9eb6b85c698554786734e</id>
<content type='text'>
Auto-opens on first visit (dismissable via localStorage); pulsing
taskbar badge with live days-remaining stays as the persistent
re-entry point. Counts down to Sept 1 2026 UTC.

Co-Authored-By: Claude Opus 4.7 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>updates to neighbors</title>
<updated>2026-05-30T07:05:42Z</updated>
<author>
<name>Tyler Hoang</name>
<email>tyler@tylerhoang.xyz</email>
</author>
<published>2026-05-30T07:05:42Z</published>
<link rel='alternate' type='text/html' href='https://git.tylerhoang.xyz/fun.git/commit/?id=2b9db208ef2c1f4e3185d2174f5beebceeb94972'/>
<id>urn:sha1:2b9db208ef2c1f4e3185d2174f5beebceeb94972</id>
<content type='text'>
</content>
</entry>
<entry>
<title>theme: make chrome the default and move it left in the selector</title>
<updated>2026-05-29T04:13:35Z</updated>
<author>
<name>Tyler Hoang</name>
<email>tyler@tylerhoang.xyz</email>
</author>
<published>2026-05-29T04:13:35Z</published>
<link rel='alternate' type='text/html' href='https://git.tylerhoang.xyz/fun.git/commit/?id=41c352e939a3389b9c7a18065c1c25c005e98bfe'/>
<id>urn:sha1:41c352e939a3389b9c7a18065c1c25c005e98bfe</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>updated</title>
<updated>2026-05-29T04:10:00Z</updated>
<author>
<name>Tyler Hoang</name>
<email>tyler@tylerhoang.xyz</email>
</author>
<published>2026-05-29T04:10:00Z</published>
<link rel='alternate' type='text/html' href='https://git.tylerhoang.xyz/fun.git/commit/?id=a2be1514d46f2992820a2d3b5e708f2a0baa6264'/>
<id>urn:sha1:a2be1514d46f2992820a2d3b5e708f2a0baa6264</id>
<content type='text'>
</content>
</entry>
<entry>
<title>neighbors: open contact window on "drop a line" instead of mailto</title>
<updated>2026-05-29T04:07:30Z</updated>
<author>
<name>Tyler Hoang</name>
<email>tyler@tylerhoang.xyz</email>
</author>
<published>2026-05-29T04:07:30Z</published>
<link rel='alternate' type='text/html' href='https://git.tylerhoang.xyz/fun.git/commit/?id=8691989d150eeb092b7ea58290658a024a90fcd4'/>
<id>urn:sha1:8691989d150eeb092b7ea58290658a024a90fcd4</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>refactor: extract inline css/js from index.html</title>
<updated>2026-05-29T01:25:41Z</updated>
<author>
<name>Tyler Hoang</name>
<email>tyler@tylerhoang.xyz</email>
</author>
<published>2026-05-29T01:25:41Z</published>
<link rel='alternate' type='text/html' href='https://git.tylerhoang.xyz/fun.git/commit/?id=34f0486f091ded7112442a00f8c5c5ecae342265'/>
<id>urn:sha1:34f0486f091ded7112442a00f8c5c5ecae342265</id>
<content type='text'>
index.html shrank from 1650 to 349 lines. Inline &lt;style&gt;
moved to index.css, ARTICLES data to articles.js, the rest of
the inline script to index.js. Also:

- drop unused bindMusicToggle from aero.js
- collapse duplicate click+dblclick icon handlers
- dedup music-toggle gradient via .mt-btn.on class
- replace inline styles in films/podcast/now-playing renderers
  with semantic classes (.film-when, .pod-ep, .np-row, etc.)
- precompute article readMin and plainTitle once instead of on
  every render

Co-Authored-By: Claude Opus 4.7 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>small edits</title>
<updated>2026-05-29T01:13:28Z</updated>
<author>
<name>Tyler Hoang</name>
<email>tyler@tylerhoang.xyz</email>
</author>
<published>2026-05-29T01:13:28Z</published>
<link rel='alternate' type='text/html' href='https://git.tylerhoang.xyz/fun.git/commit/?id=40992af162a7b2564c869da2f4fd3745736346b7'/>
<id>urn:sha1:40992af162a7b2564c869da2f4fd3745736346b7</id>
<content type='text'>
</content>
</entry>
</feed>
