<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ux on Ally's Rhythm</title><link>https://allys-rhythm.vlagopus.ca/tags/ux/</link><description>Recent content in Ux on Ally's Rhythm</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 10 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://allys-rhythm.vlagopus.ca/tags/ux/index.xml" rel="self" type="application/rss+xml"/><item><title>We built a one-bad-word detector</title><link>https://allys-rhythm.vlagopus.ca/field-notes/we-built-a-one-bad-word-detector/</link><pubDate>Tue, 10 Mar 2026 00:00:00 +0000</pubDate><guid>https://allys-rhythm.vlagopus.ca/field-notes/we-built-a-one-bad-word-detector/</guid><description>&lt;p&gt;We had a question: when is a puzzle game &lt;em&gt;too hard&lt;/em&gt;? The usual answer — &amp;ldquo;when players drop off&amp;rdquo; — is too slow and too lossy. People rage-quit quietly. They don&amp;rsquo;t fill out forms.&lt;/p&gt;
&lt;p&gt;So we built a little tool. It sits on the test build&amp;rsquo;s telemetry pipeline and watches for a single signal: &lt;strong&gt;keypress frequency on the delete key within 500ms of a failed signal sync&lt;/strong&gt;. That&amp;rsquo;s it. That&amp;rsquo;s the whole thing.&lt;/p&gt;</description></item></channel></rss>