<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: DecoPerson</title><link>https://news.ycombinator.com/user?id=DecoPerson</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 15 Apr 2026 02:03:54 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=DecoPerson" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by DecoPerson in "The unlikely story of Teardown Multiplayer"]]></title><description><![CDATA[
<p>(I’m not a Teardown dev!)<p>I tried this on a local project. It looks very jank and the math falls apart quickly. Unfortunately, using a fixed axis-aligned grid for rotating reference frames is not practical.<p>One to thing I wanted to try but didn’t, was to use dynamic axes. So once an entity is created (that is, a group of voxels not attached to the world grid), it gets its own grid that can rotate relative to the world grid. The challenge would be collision detection between two unaligned grids of voxels. Converting the group to a mesh, like Teardown does, would probably be the easiest and most effective way, unless you want to invent some new game-physics math!</p>
]]></description><pubDate>Tue, 17 Mar 2026 10:51:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=47410952</link><dc:creator>DecoPerson</dc:creator><comments>https://news.ycombinator.com/item?id=47410952</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47410952</guid></item><item><title><![CDATA[New comment by DecoPerson in "Topological Naming Problem"]]></title><description><![CDATA[
<p>I think the word “solve” is better than “hide” here.<p>Fusion 360’s heuristics are so good that I rarely run into these problems. When I do, it’s usually because it was a drastic change to a previous feature in the timeline and I’m expecting to encounter issues because it’s a really fundamental change.</p>
]]></description><pubDate>Wed, 25 Feb 2026 17:08:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=47154322</link><dc:creator>DecoPerson</dc:creator><comments>https://news.ycombinator.com/item?id=47154322</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47154322</guid></item><item><title><![CDATA[New comment by DecoPerson in "Claude Code Remote Control"]]></title><description><![CDATA[
<p>Make a throwaway GitHub account just for it and give it PR access to your private repos.</p>
]]></description><pubDate>Wed, 25 Feb 2026 12:18:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=47150563</link><dc:creator>DecoPerson</dc:creator><comments>https://news.ycombinator.com/item?id=47150563</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47150563</guid></item><item><title><![CDATA[New comment by DecoPerson in "Microsoft says bug causes Copilot to summarize confidential emails"]]></title><description><![CDATA[
<p>I wonder, is Microsoft doing “outsider trading”, where they covertly pipe analytical data to the executives’ independently-owned stock trading houses as “tips”? They’ve had access to so many corporate internal emails for so long, with MS365, but Copilot is the perfect way to mask such analysis. Also Copilot would be good at analysing emails and providing useful “tips”.<p>Just my whacky conspiracy theory of the day!</p>
]]></description><pubDate>Wed, 18 Feb 2026 23:38:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=47067939</link><dc:creator>DecoPerson</dc:creator><comments>https://news.ycombinator.com/item?id=47067939</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47067939</guid></item><item><title><![CDATA[New comment by DecoPerson in "Nvidia's 10-year effort to make the Shield TV the most updated Android device"]]></title><description><![CDATA[
<p>The Steam Link, also from 2015, is also still receiving updates! My partner and I use ours regularly to play co-op games on our TV. I really appreciate the efforts of whomever is keeping it running.</p>
]]></description><pubDate>Sat, 31 Jan 2026 17:03:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=46838381</link><dc:creator>DecoPerson</dc:creator><comments>https://news.ycombinator.com/item?id=46838381</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46838381</guid></item><item><title><![CDATA[New comment by DecoPerson in "Ripple, a puzzle game about 2nd and 3rd order effects"]]></title><description><![CDATA[
<p>Too much speculation. Take the 18th amendment one. Maybe prohibition did have the desired effects, in addition to the undesirable side effects. The two are not mutually exclusive.</p>
]]></description><pubDate>Mon, 05 Jan 2026 02:39:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=46494743</link><dc:creator>DecoPerson</dc:creator><comments>https://news.ycombinator.com/item?id=46494743</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46494743</guid></item><item><title><![CDATA[New comment by DecoPerson in "BYD Sells 4.6M Vehicles in 2025, Meets Revised Sales Goal"]]></title><description><![CDATA[
<p>I know little about stocks, but I've heard China doesn't allow shorting stocks and many other "advanced" stock products/instruments. You can buy, sell and trade stocks, and nothing else. They also audit to ensure stocks are not oversold/traded (e.g.: selling stock you don’t own in the hopes you’ll obtain some in time to fulfil an order).<p>Maybe that's why they behave differently?</p>
]]></description><pubDate>Fri, 02 Jan 2026 07:45:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=46462423</link><dc:creator>DecoPerson</dc:creator><comments>https://news.ycombinator.com/item?id=46462423</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46462423</guid></item><item><title><![CDATA[New comment by DecoPerson in "Ask HN: Thoughts on Webview vs. React Native for mobile app?"]]></title><description><![CDATA[
<p>Go with WebView.<p>As you’re a solo dev, one of your most important resources is your mental capacity. Native platforms & their dev stacks are a world of their own.<p>Going with WebView allows you to spend your time on other things that matter more. It also helps you prototype quickly and get a feel for what works.<p>Later, after you have a better, more solid idea of what your game is, if performance is an issue, then you can convert parts of it (or all of it) to native.<p>(By the time your game is done, I suspect the mobile app dev landscape is going to be quite different than what it is now.)</p>
]]></description><pubDate>Wed, 24 Dec 2025 04:25:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=46372442</link><dc:creator>DecoPerson</dc:creator><comments>https://news.ycombinator.com/item?id=46372442</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46372442</guid></item><item><title><![CDATA[New comment by DecoPerson in "VS Code deactivates IntelliCode in favor of the paid Copilot"]]></title><description><![CDATA[
<p>Try Zed. Open-source (GPL+Apache), reliable, fast, not bloated at all, decently configurable, amazing remote-host support, Vim mode, AI stuff totally optional, extensions/lang-servers available for many languages, and... well overall I find it very neat and polished!<p>(I'm not associated with Zed, just a happy user looking to share the goodness.)</p>
]]></description><pubDate>Tue, 16 Dec 2025 14:38:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46289047</link><dc:creator>DecoPerson</dc:creator><comments>https://news.ycombinator.com/item?id=46289047</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46289047</guid></item><item><title><![CDATA[New comment by DecoPerson in "Russia Bans Roblox"]]></title><description><![CDATA[
<p>Or maybe Roblox is causing harm to children and nationalist governments are the fastest to both recognise and respond to the issue.<p>We can speculate all day, but we should try to analyse these sorts of things from a learning perspective. What can we learn from Russia, China, etc? How are they better?</p>
]]></description><pubDate>Thu, 04 Dec 2025 05:48:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=46144207</link><dc:creator>DecoPerson</dc:creator><comments>https://news.ycombinator.com/item?id=46144207</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46144207</guid></item><item><title><![CDATA[New comment by DecoPerson in "Par programming language (exploring linear types, guaranteed progress, more)"]]></title><description><![CDATA[
<p><a href="https://github.com/faiface/par-lang" rel="nofollow">https://github.com/faiface/par-lang</a><p><a href="https://faiface.github.io/par-lang/introduction.html" rel="nofollow">https://faiface.github.io/par-lang/introduction.html</a></p>
]]></description><pubDate>Thu, 20 Nov 2025 14:47:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=45993088</link><dc:creator>DecoPerson</dc:creator><comments>https://news.ycombinator.com/item?id=45993088</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45993088</guid></item><item><title><![CDATA[Par programming language (exploring linear types, guaranteed progress, more)]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.youtube.com/watch?v=tpICs7uG3n8">https://www.youtube.com/watch?v=tpICs7uG3n8</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45993087">https://news.ycombinator.com/item?id=45993087</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Thu, 20 Nov 2025 14:47:03 +0000</pubDate><link>https://www.youtube.com/watch?v=tpICs7uG3n8</link><dc:creator>DecoPerson</dc:creator><comments>https://news.ycombinator.com/item?id=45993087</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45993087</guid></item><item><title><![CDATA[New comment by DecoPerson in "Large integer precision error in Bash command output rendering"]]></title><description><![CDATA[
<p>Ha, interesting. Using Claude Code in Zed, I never encountered any of these defects.<p>I just open a Claude Code Thread, tell it what I want, bypass permissions (my remote is a container), and let it work. And it works wonderfully!<p>I guess the “integrated” part of IDE is pretty important.</p>
]]></description><pubDate>Thu, 13 Nov 2025 04:53:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=45910819</link><dc:creator>DecoPerson</dc:creator><comments>https://news.ycombinator.com/item?id=45910819</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45910819</guid></item><item><title><![CDATA[New comment by DecoPerson in "Valdi – A cross-platform UI framework that delivers native performance"]]></title><description><![CDATA[
<p>Native escape hatch, for when you need native capability. For example, my app uses the Zebra DataWedge API on Zebra Android devices.<p>Native experience for users, where the app appears in their app drawer/library. The app doesn’t disappear randomly like shortcuts do on iOS (maybe this is fixed now?).<p>Better DX for certain features, like notifications, storage, control of caching, local network device access, etc.</p>
]]></description><pubDate>Sun, 09 Nov 2025 03:40:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=45862702</link><dc:creator>DecoPerson</dc:creator><comments>https://news.ycombinator.com/item?id=45862702</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45862702</guid></item><item><title><![CDATA[New comment by DecoPerson in "Valdi – A cross-platform UI framework that delivers native performance"]]></title><description><![CDATA[
<p>Not a problem if you’re deploying using MDM.</p>
]]></description><pubDate>Sun, 09 Nov 2025 03:36:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=45862686</link><dc:creator>DecoPerson</dc:creator><comments>https://news.ycombinator.com/item?id=45862686</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45862686</guid></item><item><title><![CDATA[New comment by DecoPerson in "Valdi – A cross-platform UI framework that delivers native performance"]]></title><description><![CDATA[
<p>I just rolled my own. I always find frameworks bring too many “weird errors” that waste my time trying to figure them out. Also, they’re just another thing that needs upgrading eventually, and they love to COMPLETELY change their APIs between each major version. (“FrungisFactory is deprecated! Try the new async-fibre-layout BloopisGrid now before we completely delete that thing that worked perfectly for you!”)<p>The platforms provide more than enough capability to build basic WebView apps with minimal effort, and usually the DX is good.</p>
]]></description><pubDate>Sun, 09 Nov 2025 03:34:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=45862683</link><dc:creator>DecoPerson</dc:creator><comments>https://news.ycombinator.com/item?id=45862683</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45862683</guid></item><item><title><![CDATA[New comment by DecoPerson in "Valdi – A cross-platform UI framework that delivers native performance"]]></title><description><![CDATA[
<p>You can still have native views that appear over the WebView for certain tasks. I think you can also provide your own rendering context for <canvas> elements, so you could roll your own <video> element for showing the current camera view. Either way, you can still have full native camera control without having a 100% native app.</p>
]]></description><pubDate>Sun, 09 Nov 2025 03:29:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=45862669</link><dc:creator>DecoPerson</dc:creator><comments>https://news.ycombinator.com/item?id=45862669</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45862669</guid></item><item><title><![CDATA[New comment by DecoPerson in "Valdi – A cross-platform UI framework that delivers native performance"]]></title><description><![CDATA[
<p>I did this and never looked back.<p>It’s called a “WebView app” and you can get a really good experience on all platforms using them. Just:<p>- don’t make any crazy decisions on your fundamental UI components, like breadcrumbs, select dropdowns, etc<p>- add a few platform-specific specialisations to those same components, to make them feel a bit more familiar, such as button styling, or using a self-simplifying back-stack on Android<p>- test to make sure your webview matches the native browser’s behaviour where it matters. For example, sliding up the view when the keyboard is opened on mobile, navigating back & forth with edge-swipes on iOS, etc<p>I also went the extra step and got service workers working, for a basic offline experience, and added a native auto network diagnostic tool that runs on app startup and checks “Can reach local network” “Can reach internet (1.1.1.1)” “Can resolve our app’s domain” etc etc, so users can share where it failed to get quicker support. But this is an app for small-to-medium businesses, not consumer-facing, and the HTML5 part is served from the server and cached. I haven’t thought much about what you might need to do additionally for a consumer app, or a local-first app.</p>
]]></description><pubDate>Sat, 08 Nov 2025 03:33:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=45853891</link><dc:creator>DecoPerson</dc:creator><comments>https://news.ycombinator.com/item?id=45853891</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45853891</guid></item><item><title><![CDATA[New comment by DecoPerson in "Why Nextcloud feels slow to use"]]></title><description><![CDATA[
<p>WebSockets are the secret ingredient to amazing low- to medium-user-count software. If you practice using them enough and build a few abstractions over them, you can produce incredible “live” features that REST-designs struggle with.<p>Having used WebSockets a lot, I’ve realised that it’s not the simple fact that WebSockets are duplex or that it’s more efficient than using HTTP long-polling or SSEs or something else… No, the real benefit is that once you have a “socket” object in your hands, and this object lives beyond the normal “request->response” lifecycle, you realise that your users DESERVE a persistent presence on your server.<p>You start letting your route handlers run longer, so that you can send the result of an action, rather than telling the user to “refresh the page” with a 5-second refresh timer.<p>You start connecting events/pubsub messages to your users and forwarding relevant updates over the socket you already hold. (Trying to build a delta update system for polling is complicated enough that the developers of most bespoke business software I’ve seen do not go to the effort of building such things… But with WebSockets it’s easy, as you just subscribe before starting the initial DB query and send all broadcasted updates events for your set of objects on the fly.)<p>You start wanting to output the progress of a route handler to the user as it happens (“Fetching payroll details…”, “Fetching timesheets…”, “Correlating timesheets and clock in/out data…”, “Making payments…”).<p>Suddenly, as a developer, you can get live debug log output IN THE UI as it happens. This is amazing.<p>AND THEN YOU WANT TO CANCEL SOMETHING because you realise you accidentally put in the actual payroll system API key. And that gets you thinking… can I add a cancel button in the UI?<p>Yes, you can! Just make a ‘ctx.progress()’ method. When called, if the user has cancelled the current RPC, then throw a RPCCancelled error that’s caught by the route handling system. There’s an optional first argument for a progress message to the end user. Maybe add a “no-cancel” flag too for critical sections.<p>And then you think about live collaboration for a bit… that’s a fun rabbit hole to dive down. I usually just do “this is locked for editing” or check the per-document incrementing version number and say “someone else edited this before you started editing, your changes will be lost — please reload”. Figma cracked live collaboration, but it was very difficult based on what they’ve shared on their blog.<p>And then… one day… the big one hits… where you have a multistep process and you want Y/N confirmation from the user or some other kind of selection. The sockets are duplex! You can send a message BACK to the RPC client, and have it handled by the initiating code! You just need to make it so devs can add event listeners on the RPC call handle on the client! Then, your server-side route handler can just “await” a response! No need to break up the handler into multiple functions. No need to pack state into the DB for resumability. Just await (and make sure the Promise is rejected if the RPC is cancelled).<p>If you have a very complex UI page with live-updating pieces, and you want parts of it to be filterable or searchable… This is when you add “nested RPCs”. And if the parent RPC is cancelled (because the user closes that tab, or navigates away, or such) then that RPC and all of its children RPCs are cancelled. The server-side route handler is a function closure, that holds a bunch of state that can be used by any of the sub-RPC handlers (they can be added with ‘ctx.addSubMethod’ or such).<p>The end result is: while building out any feature of any “non-web-scale” app, you can easily add levels of polish that are simply too annoying to obtain when stuck in a REST point of view. Sure, it’s possible to do the same thing there, but you’ll get frustrated (and so development of such features will not be prioritised). Also, perf-wise, REST is good for “web scale” / high-user-counts, but you will hit weird latency issues if you try to use for live, duplex comms.<p>WebSockets (and soon HTTP3 transport API) are game-changing. I highly recommend trying some of these things.</p>
]]></description><pubDate>Mon, 03 Nov 2025 17:44:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=45801907</link><dc:creator>DecoPerson</dc:creator><comments>https://news.ycombinator.com/item?id=45801907</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45801907</guid></item><item><title><![CDATA[New comment by DecoPerson in "How to write in Cuneiform"]]></title><description><![CDATA[
<p>Good stuff, but this has triggered my pet peeve! The title should be:<p><pre><code>    How to Write in Cuneiform, the Oldest Known Writing System in the World
</code></pre>
The added word being: KNOWN<p>You can argue that, "well, obviously!" but correctness and exactness are what makes science, history, journalism, etc good, and allowing incorrectness like this is a step backwards.<p>I read a history book when I was a teenager (can't remember which one, unfortunately), and the author wrote a preface that said something along the lines of "Everything in this book is based on the published information I could discover during my research period of April to September 1999. I have chosen to write in absolutes--stating many things as certain and clear--but in reality there is still much we do not know about this time period. No history author should say their writing is fact and any good historian will make it clear that their work is composed of assumptions layered on assumptions. Please read these works with this in mind."<p>If you don't have a preface like that, you should add "known" to your title/sentence! I will argue with someone all day over this! I will die on this hill!</p>
]]></description><pubDate>Fri, 10 Oct 2025 00:13:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=45534322</link><dc:creator>DecoPerson</dc:creator><comments>https://news.ycombinator.com/item?id=45534322</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45534322</guid></item></channel></rss>