<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: glass_of_water</title><link>https://news.ycombinator.com/user?id=glass_of_water</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 16 Apr 2026 16:10:43 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=glass_of_water" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by glass_of_water in "Coding Isn't Programming"]]></title><description><![CDATA[
<p>I could not agree more. When trying to understand the distinction between "declarative" and "non-declarative" code, I came to the same conclusion: it's all relative.</p>
]]></description><pubDate>Tue, 25 Mar 2025 13:52:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=43471310</link><dc:creator>glass_of_water</dc:creator><comments>https://news.ycombinator.com/item?id=43471310</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43471310</guid></item><item><title><![CDATA[New comment by glass_of_water in "About Dolly Parton’s Imagination Library"]]></title><description><![CDATA[
<p>If you find the right organization that uses the funds effectively, what's with donating your wealth as opposed to creating your own charitable organization?  Also, I'm sure the tax deduction for donations is exploited when the receiving organization is non-profit in name only, but if the receiving organization really is an effective charity, what's wrong with the donor getting a tax break?<p>Or is the claim not that one approach is more effective than other in terms of positive impact, but that the wealthy, for their own sake, would be better off founding their own organizations?</p>
]]></description><pubDate>Sun, 28 May 2023 09:27:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=36102470</link><dc:creator>glass_of_water</dc:creator><comments>https://news.ycombinator.com/item?id=36102470</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36102470</guid></item><item><title><![CDATA[New comment by glass_of_water in "Introduction to Locality-Sensitive Hashing (2018)"]]></title><description><![CDATA[
<p>How do you deal with false negatives when using Hilbert curves for nearest neighbor searches?  Based on my limited understanding, points close on space can be far from each other on the curve.  Do you use multiple curves or something?</p>
]]></description><pubDate>Fri, 23 Dec 2022 20:25:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=34110218</link><dc:creator>glass_of_water</dc:creator><comments>https://news.ycombinator.com/item?id=34110218</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34110218</guid></item><item><title><![CDATA[New comment by glass_of_water in "Not Mysticizing System Dynamics"]]></title><description><![CDATA[
<p>A function f(x) whose growth rate at x is proportional to f(x).  So anything where growth rate is proportional to the current value.</p>
]]></description><pubDate>Sun, 25 Sep 2022 15:25:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=32972228</link><dc:creator>glass_of_water</dc:creator><comments>https://news.ycombinator.com/item?id=32972228</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32972228</guid></item><item><title><![CDATA[New comment by glass_of_water in "Clasp: A Common Lisp implementation using LLVM for compilation to native code"]]></title><description><![CDATA[
<p>Could you compile to wasm, or is there extra work involved in making that possible?  One reason I shied away from learning Common Lisp is that none of the popular implementations seem to run in the browser.</p>
]]></description><pubDate>Tue, 06 Sep 2022 17:16:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=32740088</link><dc:creator>glass_of_water</dc:creator><comments>https://news.ycombinator.com/item?id=32740088</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32740088</guid></item><item><title><![CDATA[New comment by glass_of_water in "Programming breakthroughs we need"]]></title><description><![CDATA[
<p>If that were true, text books wouldn't contain any diagrams. So I think it's fairly uncontroversial to say that there are cases when text is not the best way to incept ideas.  So why should we be confined to just text when writing code?  Should we not be free to choose the best tool for the job?</p>
]]></description><pubDate>Wed, 17 Aug 2022 22:25:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=32502520</link><dc:creator>glass_of_water</dc:creator><comments>https://news.ycombinator.com/item?id=32502520</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32502520</guid></item><item><title><![CDATA[New comment by glass_of_water in "Making the whole web better, one canvas at a time"]]></title><description><![CDATA[
<p>Canvas already uses double buffering.  OffscreenCanvas lets you issue draw commands from a separate thread.</p>
]]></description><pubDate>Tue, 12 Oct 2021 19:38:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=28844103</link><dc:creator>glass_of_water</dc:creator><comments>https://news.ycombinator.com/item?id=28844103</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28844103</guid></item><item><title><![CDATA[New comment by glass_of_water in "Making the whole web better, one canvas at a time"]]></title><description><![CDATA[
<p>From my understanding, OffscreenCanvas and double buffering are unrelated.  OffscreenCanvas just lets you execute draw calls in a separate thread (in a WebWorker).  I believe the browser already uses double buffering under the hood for drawing to a canvas element.</p>
]]></description><pubDate>Tue, 12 Oct 2021 19:29:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=28843987</link><dc:creator>glass_of_water</dc:creator><comments>https://news.ycombinator.com/item?id=28843987</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28843987</guid></item><item><title><![CDATA[New comment by glass_of_water in "Show HN: Time travel debugger for web development"]]></title><description><![CDATA[
<p>Oh that's cool, using fork() to create checkpoints.  Thank you again for taking the time to explain!</p>
]]></description><pubDate>Wed, 15 Sep 2021 22:36:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=28545278</link><dc:creator>glass_of_water</dc:creator><comments>https://news.ycombinator.com/item?id=28545278</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28545278</guid></item><item><title><![CDATA[New comment by glass_of_water in "Show HN: Time travel debugger for web development"]]></title><description><![CDATA[
<p>As bhackett confirmed, you're right about recording at the system library call level.  I wasn't sure if it was more of an analogy or only referred to a version of Replay targeting backend servers written in other languages like Go, especially since the author mentioned hooking into the JS runtime in <a href="https://medium.com/replay-io/effective-determinism-54cc91f5693c" rel="nofollow">https://medium.com/replay-io/effective-determinism-54cc91f56...</a>.  But it looks like I misunderstood, and their browser product is their generic record/replay library integrated into Firefox, rather than a reimplementation of the same concepts.</p>
]]></description><pubDate>Wed, 15 Sep 2021 22:05:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=28544987</link><dc:creator>glass_of_water</dc:creator><comments>https://news.ycombinator.com/item?id=28544987</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28544987</guid></item><item><title><![CDATA[New comment by glass_of_water in "Show HN: Time travel debugger for web development"]]></title><description><![CDATA[
<p>Thanks for the explanation!  Do you ever run into performance issues with replaying from the start on each backward step or is this not really in issue in practice?  I imagine for most websites and short replays it's probably fine, but for something like a game with a physics engine it sounds like it would be too expensive and you'd need snapshots or something.  I guess that's a super small percentage of the market though.<p>For question 3 on the ordering, I was imagining the following kind of scenario: one thread maybe calls a system library function to read a cursor position and another calls a system library function to write a cursor position.  So even though they're separate functions, they interact with the same state.  Do you require users to manually call to the recorder library to give the recorder runtime extra info in this kind of scenario?  Sorry if this is a dumb question, I haven't really done any programming at this level.</p>
]]></description><pubDate>Wed, 15 Sep 2021 21:57:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=28544896</link><dc:creator>glass_of_water</dc:creator><comments>https://news.ycombinator.com/item?id=28544896</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28544896</guid></item><item><title><![CDATA[New comment by glass_of_water in "Show HN: Time travel debugger for web development"]]></title><description><![CDATA[
<p>I read the medium post (<a href="https://medium.com/replay-io/how-replay-works-5c9c29580c58" rel="nofollow">https://medium.com/replay-io/how-replay-works-5c9c29580c58</a>), which gives an overview of how Replay works, but there are a few things I still don't understand.<p>1) How does the step backward functionality work?  Do you take snapshots every so often of the Javascript environment?  How do you handle destructive assignments?<p>2) Does Replay record actual syscalls made by the browser, or is it recording calls to the browser APIs by the javascript code (which I guess are effectively syscalls from the javascript code's perspective)?<p>3) The ordered lock technique described in <a href="https://medium.com/replay-io/recording-and-replaying-d6102afee273" rel="nofollow">https://medium.com/replay-io/recording-and-replaying-d6102af...</a> makes sure that threads access a given resource in the same order, but what about threads accessing different resources in the same order?  e.g. when recording, thread 1 accesses resource A before thread 2 accesses resource B.  It seems like the ordered lock technique doesn't help you maintain that ordering in the replay.  Is maintaining that kind of ordering across resources not actually necessary most of the time?</p>
]]></description><pubDate>Wed, 15 Sep 2021 20:15:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=28543806</link><dc:creator>glass_of_water</dc:creator><comments>https://news.ycombinator.com/item?id=28543806</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28543806</guid></item><item><title><![CDATA[New comment by glass_of_water in "Show HN: Discover shared videos and live broadcasts from Reddit"]]></title><description><![CDATA[
<p>I had the same issue; I think the error message is wrong. The reason it's not working is that tracking protection is blocking XHR requests to www.reddit.com.  If you disable tracking protection or whitelist www.reddit.com it should work.</p>
]]></description><pubDate>Fri, 21 Aug 2020 16:13:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=24236119</link><dc:creator>glass_of_water</dc:creator><comments>https://news.ycombinator.com/item?id=24236119</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24236119</guid></item><item><title><![CDATA[New comment by glass_of_water in "Google Is Not God of the Web"]]></title><description><![CDATA[
<p>Would an animated SVG work?  Might be the best of both worlds, faster user experience and probably a better score.</p>
]]></description><pubDate>Mon, 01 Jun 2020 23:12:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=23385190</link><dc:creator>glass_of_water</dc:creator><comments>https://news.ycombinator.com/item?id=23385190</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23385190</guid></item><item><title><![CDATA[New comment by glass_of_water in "Perspective: Streaming Analytics via WebAssembly"]]></title><description><![CDATA[
<p>Currently, WebAssembly doesn't can't directly call any of the browser APIs; it has to call back into javascript to make any network requests, make WebGL calls, read to/write from the DOM.  Projects like wasm-bindgen make it look like you're directly calling browser APIs, but it's actually calling out to a Javascript shim.<p>I think this project's use case is that you have a fixed query, but the dataset over which you're running that query is changing over time (getting streaming updates).  The wasm part is doing the work of running the query over the dataset and updating the query results as new data streams in.  So the assumption is that rendering isn't the bottleneck, but running the query is.</p>
]]></description><pubDate>Mon, 01 Jun 2020 17:48:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=23381395</link><dc:creator>glass_of_water</dc:creator><comments>https://news.ycombinator.com/item?id=23381395</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23381395</guid></item><item><title><![CDATA[New comment by glass_of_water in "Joe Rogan got ripped off"]]></title><description><![CDATA[
<p>They didn't ignore that fact, they explicitly mentioned it in the article.<p>> Stern and Rogan are already super rich. The difference between $50mm/year of profit and $100mm means zero to their day-to-day lifestyle. What I imagine does matter to them is the size of their audience and their impact, and both made choices that will limit that forever.</p>
]]></description><pubDate>Fri, 22 May 2020 20:35:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=23276633</link><dc:creator>glass_of_water</dc:creator><comments>https://news.ycombinator.com/item?id=23276633</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23276633</guid></item><item><title><![CDATA[New comment by glass_of_water in "Ask HN: How do I overcome mental laziness?"]]></title><description><![CDATA[
<p>I wouldn't recommend playing games in an attempt to build mental endurance.  I used to play a lot of Starcraft 2 and Dota 2, and it mostly just sapped my motivation for other things.</p>
]]></description><pubDate>Mon, 20 Apr 2020 00:55:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=22920173</link><dc:creator>glass_of_water</dc:creator><comments>https://news.ycombinator.com/item?id=22920173</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22920173</guid></item><item><title><![CDATA[New comment by glass_of_water in "Rust Survey 2019 Results"]]></title><description><![CDATA[
<p>If your requirement is compiling to native binaries, then perhaps dlang with GC enabled?  Admittedly it would be a really poor choice in 2020 though given the lack of adoption.  Golang is GCd and native, but of course the language is lacking in many ways compared to Rust.<p>So I guess you're right, nothing I can think of quite fills the niche that Rust does, if compiling to a native binary is a hard requirement.  Also I'm not aware of any widely-adopted language with borrow checking, if that's a feature that's valuable for your use case.</p>
]]></description><pubDate>Sat, 18 Apr 2020 19:38:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=22910459</link><dc:creator>glass_of_water</dc:creator><comments>https://news.ycombinator.com/item?id=22910459</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22910459</guid></item><item><title><![CDATA[New comment by glass_of_water in "Rust Survey 2019 Results"]]></title><description><![CDATA[
<p>I also don't quite understand the appeal of Rust for applications that can tolerate a GC.  Other than perhaps borrow checking, I don't see the benefits over statically-typed, GC languages.<p>I used to code a lot in C++, but I've come to the conclusion that manual memory management is a cost that has to be considered seriously.  e.g. one burden is that when you're declaring a field on a struct in Rust, you have to consider whether it needs to be a reference, value, automatic reference counted, boxed, if its a reference, what the lifetime is, etc.  The only thing I miss about manual memory management is the RAII pattern.<p>Rust moves down a level of abstraction that IMO is not useful for most applications.</p>
]]></description><pubDate>Sat, 18 Apr 2020 11:17:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=22906924</link><dc:creator>glass_of_water</dc:creator><comments>https://news.ycombinator.com/item?id=22906924</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22906924</guid></item><item><title><![CDATA[New comment by glass_of_water in "Rust Survey 2019 Results"]]></title><description><![CDATA[
<p>I agree that with the rapid change in the language, it's probably premature to standardize on one API for networking.  But as a newcomer to Rust, it's really overwhelming when there are like 5 different async websocket libraries, none of which is a clear standard in the community, each with relatively sparse documentation (other than the method signatures/impls).<p>Also, I haven't been following the Go ecosystem lately, so I could be wrong, but they seem to have done a good job at creating standard libraries for common stuff like http serving, and those libraries seem to have aged just fine.</p>
]]></description><pubDate>Sat, 18 Apr 2020 11:04:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=22906872</link><dc:creator>glass_of_water</dc:creator><comments>https://news.ycombinator.com/item?id=22906872</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22906872</guid></item></channel></rss>