<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: umvi</title><link>https://news.ycombinator.com/user?id=umvi</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 10 Aug 2026 21:55:45 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=umvi" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by umvi in "Zed DeltaDB"]]></title><description><![CDATA[
<p>Sometimes OOM Killer can stop it before it wrecks too much havoc, but often everything grinds to a complete halt and I have to just power cycle.</p>
]]></description><pubDate>Thu, 06 Aug 2026 02:50:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=49191826</link><dc:creator>umvi</dc:creator><comments>https://news.ycombinator.com/item?id=49191826</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49191826</guid></item><item><title><![CDATA[New comment by umvi in "Zed DeltaDB"]]></title><description><![CDATA[
<p>Hmm, yeah before "DeltaDB" I have a big list of things I would rather they develop/fix:<p>- Vertical activity bar (<a href="https://github.com/zed-industries/zed/pull/58868#issuecomment-4871602351" rel="nofollow">https://github.com/zed-industries/zed/pull/58868#issuecommen...</a> - rejected because it "doesn’t match our design vision for Zed")<p>This is my #1 annoyance: clicking microscopic icons at the very bottom of the screen to switch views.<p>- Don't crash my entire PC when there's a large (100+ MB) JSON file in the working directory<p>- Don't freeze when resuming from suspension (I suspect this is GPU-driver related on linux) forcing me to `killall zed-editor`</p>
]]></description><pubDate>Wed, 05 Aug 2026 21:07:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=49189014</link><dc:creator>umvi</dc:creator><comments>https://news.ycombinator.com/item?id=49189014</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49189014</guid></item><item><title><![CDATA[New comment by umvi in "Producing ammonia and fertiliser using wind power in Morris, Minnesota"]]></title><description><![CDATA[
<p>So basically: wind generators power electrolysis to create hydrogen, the hydrogen is fed to a normal Haber-Bosch plant which is still powered by coal or gas. So basically the wind power is just replacing the carbon footprint of a single input (hydrogen) to a H-B plant?</p>
]]></description><pubDate>Sat, 25 Jul 2026 20:22:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=49051164</link><dc:creator>umvi</dc:creator><comments>https://news.ycombinator.com/item?id=49051164</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49051164</guid></item><item><title><![CDATA[New comment by umvi in "Terence Tao's ChatGPT conversation about the Jacobian Conjecture counterexample"]]></title><description><![CDATA[
<p>yeah you'd have to make a "mathematical grammar" to cover all the cases. one problem with current mathematical notation is that it is optimized for writing by hand, not with keyboards. If you want to write mathematical notation with keyboards you have to use a complex typesetting tool like LaTeX to position all the super/sub-scripted, nested, etc. symbols.<p>And it all seems arbitrary anyway. Why are trigonometric functions written in english ("tan" being short for "tangent") but other stuff uses greek letters and other stuff still uses esoteric/abstract symbols? Why is the integral symbol shaped the way it is, and why use super/sub symbols for the bounds versus `integral [0,Inf] ...`?<p>In my ignorance, I'm assuming math is the way that it is because that's the way it's been for centuries, and messing with it harms its ubiquity. Math notation is not the way that it is because it's particularly well thought out. It's centuries of legacy tech debt that can't be changed. Kind of like how English is a crappy language in a lot of ways, but we can't change it now because too many people use it and you'd never get enough momentum to switch.</p>
]]></description><pubDate>Thu, 23 Jul 2026 18:00:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=49025662</link><dc:creator>umvi</dc:creator><comments>https://news.ycombinator.com/item?id=49025662</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49025662</guid></item><item><title><![CDATA[New comment by umvi in "Terrence Tao's ChatGPT Conversation about the Jacobian Conjecture Counterexample"]]></title><description><![CDATA[
<p>Momentum, mainly. Richard Feynman invented a more intuitive triangle-based syntax for sin/cos/tan/etc but eventually abandoned it and conformed with mathematical norms for the sake of ubiquity.</p>
]]></description><pubDate>Thu, 23 Jul 2026 01:40:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=49015781</link><dc:creator>umvi</dc:creator><comments>https://news.ycombinator.com/item?id=49015781</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49015781</guid></item><item><title><![CDATA[New comment by umvi in "Terrence Tao's ChatGPT Conversation about the Jacobian Conjecture Counterexample"]]></title><description><![CDATA[
<p>My example was contrived, I'm sure some smart people could come up with a SQL-esque language that is even more readable to non-technical folks than programming syntax. At a certain point though, your layman has to know the "atomic" (as in, you can't break them down further) mathematical concepts like "functions" and "infinity":<p>`sum function(x) from x=0 to x=infinity`</p>
]]></description><pubDate>Wed, 22 Jul 2026 21:26:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=49013682</link><dc:creator>umvi</dc:creator><comments>https://news.ycombinator.com/item?id=49013682</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49013682</guid></item><item><title><![CDATA[New comment by umvi in "Terence Tao's ChatGPT conversation about the Jacobian Conjecture counterexample"]]></title><description><![CDATA[
<p>No, the problem with mathematics is that it is basically its own language separate from your native tongue. You have to learn dozens of symbols and greek letters and such and memorize what their meaning is in the context of mathematics in order to "follow" a mathematical conversation.<p>Mathematics would be much more approachable if it just used plain English like `sum(0, Infinity, my_func)` instead of a big Greek sigma with nested function nomenclature. But on the flip side, mathematics being its own language means that a mathematician from any country can read and understand mathematics from a different country without needing to translate words such as "sum" and "infinity"</p>
]]></description><pubDate>Wed, 22 Jul 2026 21:13:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=49013513</link><dc:creator>umvi</dc:creator><comments>https://news.ycombinator.com/item?id=49013513</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49013513</guid></item><item><title><![CDATA[New comment by umvi in "Typing Speed Test, but for Developers"]]></title><description><![CDATA[
<p>When I was typing "ssh-copy-id" I typed "ssh-c" and then hit tab... I was disappointed</p>
]]></description><pubDate>Sat, 18 Jul 2026 22:29:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=48963096</link><dc:creator>umvi</dc:creator><comments>https://news.ycombinator.com/item?id=48963096</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48963096</guid></item><item><title><![CDATA[New comment by umvi in "Why Vanilla JavaScript"]]></title><description><![CDATA[
<p>> And yet you're using one<p>I'm using a TS type stripper API from a go package inside the server. I'm not actually doing any "bundling" which implies resolving imports, tree shaking, combining multiple files into one, minification, uglification, etc. I'm strictly stripping out types and serving what's left directly to the browser. This costs less than 1ms of cpu time on a cold load (and usually costs nothing because of front-end caching/etags)<p>Look, I don't want to argue with you. Just sharing my setup. I develop medical device software which means dependencies are very expensive because they incur regulatory burden. SBOMs and associated CVEs have to be tracked and reported to the FDA. My TS/golang stack means:<p>- My docker images can be from scratch or from busybox with a statically linked go binary<p>- My frontend can be vanilla TS with zero dependencies (npm or otherwise)<p>- Debugging is dead simple: set breakpoints directly in dev tools and it's WYSIWYG (no map files needed, etc)<p>- Feedback is instantaneous. If I change a file in TS and hit refresh, the change is reflected instantly (compare to bloated Vue/React shops I've seen where every change requires a 10 second frontend compile pipeline to run before you can get feedback in the browser)</p>
]]></description><pubDate>Tue, 14 Jul 2026 20:13:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=48912401</link><dc:creator>umvi</dc:creator><comments>https://news.ycombinator.com/item?id=48912401</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48912401</guid></item><item><title><![CDATA[New comment by umvi in "Why Vanilla JavaScript"]]></title><description><![CDATA[
<p>You don't need a bundler, just a type stripper. And yeah you need a middleware to perform the type stripping, the server won't do it automatically, but it's like 10 lines of backend code. The basic flow would be something like:<p>1. Browser requests /js/foo.js<p>2. Server middleware checks if /js/foo.ts exists<p>3. If yes, server middleware strips types from the file before returning it<p>In golang I use the go package github.com/evanw/esbuild[1] to do type stripping on the fly. The middleware looks like this:<p>```
return esbuild.Transform(string(fileBytes), esbuild.TransformOptions{
    Loader: esbuild.LoaderTS,
    Format: esbuild.FormatESModule,
})
```<p>It only takes a few microseconds and I don't need any bundlers or tsc or anything like that. Everything on my frontend is 100% vanilla TS; I make changes directly to TS and then hit refresh in my browser and the changes are reflected instantly without needing a bundler or even node/npm for that matter. Note: for this setup to work, your front end TS has to use ES modules import/export which browsers natively support. If you try to use CommonJS or something like that, you would start needing a bundler again because browsers can't resolve "require" statements.<p>In node it should be even easier than Go because Node added native type stripping starting with v22[2]<p>But even on older versions of Node, a type stripping middleware would still be very easy to implement[3][4].<p>[1] <a href="https://pkg.go.dev/github.com/evanw/esbuild" rel="nofollow">https://pkg.go.dev/github.com/evanw/esbuild</a><p>[2] <a href="https://nodejs.org/api/module.html#modulestriptypescripttypescode-options" rel="nofollow">https://nodejs.org/api/module.html#modulestriptypescripttype...</a><p>[3] <a href="https://github.com/bloomberg/ts-blank-space" rel="nofollow">https://github.com/bloomberg/ts-blank-space</a><p>[4] <a href="https://esbuild.github.io/api/#js-async" rel="nofollow">https://esbuild.github.io/api/#js-async</a></p>
]]></description><pubDate>Tue, 14 Jul 2026 15:55:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48908778</link><dc:creator>umvi</dc:creator><comments>https://news.ycombinator.com/item?id=48908778</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48908778</guid></item><item><title><![CDATA[New comment by umvi in "Why Vanilla JavaScript"]]></title><description><![CDATA[
<p>Why doesn't it make sense? I actually do exactly this in my own setup, but with golang instead of Node.</p>
]]></description><pubDate>Tue, 14 Jul 2026 02:38:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=48901628</link><dc:creator>umvi</dc:creator><comments>https://news.ycombinator.com/item?id=48901628</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48901628</guid></item><item><title><![CDATA[New comment by umvi in "Why Vanilla JavaScript"]]></title><description><![CDATA[
<p>Presumably Node is the server (back end), and when the browser requests a TS file, Node is stripping the types before serving it to the browser.</p>
]]></description><pubDate>Mon, 13 Jul 2026 05:29:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=48888292</link><dc:creator>umvi</dc:creator><comments>https://news.ycombinator.com/item?id=48888292</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48888292</guid></item><item><title><![CDATA[New comment by umvi in "Why Vanilla JavaScript"]]></title><description><![CDATA[
<p>Not everyone is building complex UIs like google sheets. Most people are building static pages with a sprinkle of interactivity, or maybe form pages for doing CRUD.</p>
]]></description><pubDate>Mon, 13 Jul 2026 05:26:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=48888264</link><dc:creator>umvi</dc:creator><comments>https://news.ycombinator.com/item?id=48888264</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48888264</guid></item><item><title><![CDATA[New comment by umvi in "Why Vanilla JavaScript"]]></title><description><![CDATA[
<p>Web components, invoker commands API, etc.</p>
]]></description><pubDate>Mon, 13 Jul 2026 02:32:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=48887159</link><dc:creator>umvi</dc:creator><comments>https://news.ycombinator.com/item?id=48887159</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48887159</guid></item><item><title><![CDATA[New comment by umvi in "Why Vanilla JavaScript"]]></title><description><![CDATA[
<p>Even better: vanilla TypeScript + golang middleware (esbuild) on the backend that converts to JS on the fly. Like vanilla JS but with all the benefits of a type system and no bundler or npm required.</p>
]]></description><pubDate>Mon, 13 Jul 2026 02:28:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=48887135</link><dc:creator>umvi</dc:creator><comments>https://news.ycombinator.com/item?id=48887135</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48887135</guid></item><item><title><![CDATA[New comment by umvi in "Weightlifting beats running for blood sugar control, researchers find (2025)"]]></title><description><![CDATA[
<p>Dr. Bernstein has long argued this and documents it extensively in his book "Dr. Bernstein's Diabetes Solution"[1]. The main reason being that muscles act like natural glucose sinks that drain sugar directly out of the bloodstream, bypassing the liver, so more muscles = more glucose control.<p>I highly recommend the introductory chapter to "Dr. Bernstein's Diabetes Solution" by the way, even for non-diabetics. It's basically just the "Life and career" section of his wiki page, but in way more detail -- a really interesting biographical account about an industrial engineer doing diabetes self-experiments with a glucose meter he procured through his wife and going up against the medical community/orthodoxy and failing, only to finally break through when he got a medical degree late in life. I could probably upload and link to just that section if people are interested.<p>[1] <a href="https://en.wikipedia.org/wiki/Richard_K._Bernstein" rel="nofollow">https://en.wikipedia.org/wiki/Richard_K._Bernstein</a></p>
]]></description><pubDate>Sat, 11 Jul 2026 23:19:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48876769</link><dc:creator>umvi</dc:creator><comments>https://news.ycombinator.com/item?id=48876769</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48876769</guid></item><item><title><![CDATA[New comment by umvi in "California AB 2047 makes 3D printers off-limits to students, educators, business"]]></title><description><![CDATA[
<p>> The required technology is not possible - 3D printers read code, not intent; they cannot tell what a shape is for.<p>"Anthropic announces Project Disarm, a new model designed for 3d printer manufacturers to quickly infer whether the intent of an stl file is a weapon. The printer first submits the job to the cloud, and only after it's approved will it print."<p>Not that I want this future, just that I can imagine it.</p>
]]></description><pubDate>Tue, 23 Jun 2026 22:57:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=48652693</link><dc:creator>umvi</dc:creator><comments>https://news.ycombinator.com/item?id=48652693</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48652693</guid></item><item><title><![CDATA[New comment by umvi in "Deno Desktop"]]></title><description><![CDATA[
<p>So I guess this is a competitor to Electron?</p>
]]></description><pubDate>Mon, 22 Jun 2026 19:23:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48634810</link><dc:creator>umvi</dc:creator><comments>https://news.ycombinator.com/item?id=48634810</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48634810</guid></item><item><title><![CDATA[New comment by umvi in "Excessive nil pointer checks in Go"]]></title><description><![CDATA[
<p>Go needs a good static analyzer to detect potential nil pointer dereferences. That would help identify and  eliminate any unnecessary nil checks. .NET has a good one for C#.</p>
]]></description><pubDate>Sun, 21 Jun 2026 20:55:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=48622513</link><dc:creator>umvi</dc:creator><comments>https://news.ycombinator.com/item?id=48622513</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48622513</guid></item><item><title><![CDATA[New comment by umvi in "VPN ban update for UK households as government looks at 'age-gate'"]]></title><description><![CDATA[
<p>Ban infinite scroll? Sounds like a slippery slope and also hard to enforce. I don't even know how you would craft such a law.</p>
]]></description><pubDate>Sat, 20 Jun 2026 18:10:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=48611454</link><dc:creator>umvi</dc:creator><comments>https://news.ycombinator.com/item?id=48611454</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48611454</guid></item></channel></rss>