<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: thomasnowhere</title><link>https://news.ycombinator.com/user?id=thomasnowhere</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 08 Apr 2026 01:39:47 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=thomasnowhere" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by thomasnowhere in "You can't cancel a JavaScript promise (except sometimes you can)"]]></title><description><![CDATA[
<p>The never-resolving promise trick is clever but what caught me off guard is how clean the GC behavior is. Always assumed hanging promises would leak in long-lived apps but apparently not as long as you drop the references.</p>
]]></description><pubDate>Tue, 07 Apr 2026 16:14:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47677549</link><dc:creator>thomasnowhere</dc:creator><comments>https://news.ycombinator.com/item?id=47677549</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47677549</guid></item><item><title><![CDATA[New comment by thomasnowhere in "Bombadil: Property-based testing for web UIs"]]></title><description><![CDATA[
<p>This looks nice. I work on a rich text editor and have a large Playwright test suite. The hardest bugs to catch are always the ones where a speciffic sequence of user actions leaves the editor in a broken state, things like formatting inside a merged table cell or pasting content mid-selection. You would never think to write a test for those combos manually.<p>Curious how well the action generators work with contenteditable elements though. Rich text editors have a lot of browser-level behavior that isn't just clicks and keypresses, things like IME input, drag and drop, clipboard events. Can you write custom action generators for that kind of stuff?</p>
]]></description><pubDate>Thu, 26 Mar 2026 20:47:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47535507</link><dc:creator>thomasnowhere</dc:creator><comments>https://news.ycombinator.com/item?id=47535507</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47535507</guid></item><item><title><![CDATA[New comment by thomasnowhere in "Show HN: Revise – An AI Editor for Documents"]]></title><description><![CDATA[
<p>That makes sense, the hidden input approach is clever. Google Docs definitely proved it's viable at scale. The RTL support is a nice touch, that's notoriously tricky to get right.<p>Great work pulling this off in 10 months. Good luck with the project!</p>
]]></description><pubDate>Tue, 24 Mar 2026 19:22:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=47507750</link><dc:creator>thomasnowhere</dc:creator><comments>https://news.ycombinator.com/item?id=47507750</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47507750</guid></item><item><title><![CDATA[New comment by thomasnowhere in "Show HN: Revise – An AI Editor for Documents"]]></title><description><![CDATA[
<p>Impressive that you built the rendering layer from scratch on Canvas. Curious about one thing though, how do you handle accessibility? With contenteditable you get a lot of browser accessibility features for free (screen readers, selection, input methods). With Canvas rendering you'd need to reimplement most of that manually.<p>I've been working on a ProseMirror-based editor and the biggest lesson was how much the browser gives you for free with contenteditable, even though it's painful to work with. IME input handling alone took weeks to get right, and that's with the browser doing most of the heavy lifting. Starting from Canvas seems like an order of magnitude harder.<p>How's the IME/CJK input working? And does it play nice with browser spellcheck?</p>
]]></description><pubDate>Tue, 24 Mar 2026 14:32:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=47503185</link><dc:creator>thomasnowhere</dc:creator><comments>https://news.ycombinator.com/item?id=47503185</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47503185</guid></item></channel></rss>