<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: Ndymium</title><link>https://news.ycombinator.com/user?id=Ndymium</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 01 Jul 2026 00:29:32 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=Ndymium" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by Ndymium in "British Columbia, Time Zones, and Postgres"]]></title><description><![CDATA[
<p>If my user does jog at 2 AM, then it's better to show 2 AM than 7 PM or 10 AM even if there is a slight chance that on one singular day 2 AM might repeat itself. The user who is aware of how daylight savings works will surely be able to figure that out.<p>Technically you might argue that I should show 1 AM if the user did run at 2 AM in summer time, but everyone I personally know keeps their schedule over DST transitions. That is, if they did something at X o'clock before the transition, they'll keep doing it at X o'clock after it (sleep be damned). So generally showing 2 AM would be the most correct solution.<p>You cannot get that information from just UTC if you don't know where the user was when they made those historical events. Thus you either have to keep a history of their location (complicated) or just store the local timestamps (or at least the offsets) at the time of event. Always being able to convert from UTC with no extra data assumes that the user will never move, which might be fine if your application is limited to users in a single country.</p>
]]></description><pubDate>Wed, 24 Jun 2026 05:30:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48655559</link><dc:creator>Ndymium</dc:creator><comments>https://news.ycombinator.com/item?id=48655559</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48655559</guid></item><item><title><![CDATA[New comment by Ndymium in "British Columbia, Time Zones, and Postgres"]]></title><description><![CDATA[
<p>Copying what I posted under the original[0] that no one noticed because it's quite relevant to your mention of UTC for past events:<p>The naming of "timestamp with time zone" is one of my favorite pet peeves. It's one of those things that you can say "well technically it's true" about.<p>The article suggests that for past events, UTC and this timestamptz would be acceptable as a general rule, but even there it depends on what you will be doing with the data. If you intend to interpret it as a series of local occurrences and try to visualize/summarize that data later, you may be in for a surprise as your user has moved to another timezone and now all the past events are translated to the wrong local hours [1]. For example, your system might end up showing that the user's best time for jogging based on historical data is at 2 in the night.<p>[0] <a href="https://news.ycombinator.com/item?id=48558005">https://news.ycombinator.com/item?id=48558005</a><p>[1] <a href="https://blog.nytsoi.net/2022/03/13/utc/" rel="nofollow">https://blog.nytsoi.net/2022/03/13/utc/</a></p>
]]></description><pubDate>Tue, 23 Jun 2026 04:19:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=48640221</link><dc:creator>Ndymium</dc:creator><comments>https://news.ycombinator.com/item?id=48640221</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48640221</guid></item><item><title><![CDATA[New comment by Ndymium in "British Colombia, Time Zones, and Postgres"]]></title><description><![CDATA[
<p>The naming of "timestamp with time zone" is one of my favorite pet peeves. It's one of those things that you can say "well technically it's true" about.<p>The article suggests that for past events, UTC and this timestamptz would be acceptable as a general rule, but even there it depends on what you will be doing with the data. If you intend to interpret it as a series of local occurrences and try to visualize/summarize that data later, you may be in for a surprise as your user has moved to another timezone and now all the past events are translated to the wrong local hours [0]. For example, your system might end up showing that the user's best time for jogging based on historical data is at 2 in the night.<p>[0] <a href="https://blog.nytsoi.net/2022/03/13/utc/" rel="nofollow">https://blog.nytsoi.net/2022/03/13/utc/</a></p>
]]></description><pubDate>Tue, 16 Jun 2026 20:23:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=48561495</link><dc:creator>Ndymium</dc:creator><comments>https://news.ycombinator.com/item?id=48561495</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48561495</guid></item><item><title><![CDATA[New comment by Ndymium in "Job: Head of Stonehenge"]]></title><description><![CDATA[
<p>This is what it looks like right now. Unless there's some huge economic boom coming, which I doubt.</p>
]]></description><pubDate>Tue, 09 Jun 2026 15:43:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=48462598</link><dc:creator>Ndymium</dc:creator><comments>https://news.ycombinator.com/item?id=48462598</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48462598</guid></item><item><title><![CDATA[New comment by Ndymium in "Job: Head of Stonehenge"]]></title><description><![CDATA[
<p>As a Finnish dev with 12 years of experience, I can only aspire for such salary.</p>
]]></description><pubDate>Tue, 09 Jun 2026 05:54:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=48457052</link><dc:creator>Ndymium</dc:creator><comments>https://news.ycombinator.com/item?id=48457052</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48457052</guid></item><item><title><![CDATA[New comment by Ndymium in "SingleRide: Longest route on NYC Subway without visiting the same station twice"]]></title><description><![CDATA[
<p>It's a game. You're supposed to click on the different route options that are presented to you on the bottom of the screen. That's why it goes slower the more options there are.<p>But I also just followed it for the first time from beginning to end, not doing anything. Because I assumed someone had already done the math.</p>
]]></description><pubDate>Thu, 07 May 2026 10:18:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48047621</link><dc:creator>Ndymium</dc:creator><comments>https://news.ycombinator.com/item?id=48047621</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48047621</guid></item><item><title><![CDATA[New comment by Ndymium in "Facebook's Fascination with My Robots.txt"]]></title><description><![CDATA[
<p>While 7700 per hour sounds big, pretty much any dinky server can handle it. So I don't think it's a matter of DDoS. At this point it's just... odd behaviour.</p>
]]></description><pubDate>Mon, 23 Feb 2026 14:17:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47122655</link><dc:creator>Ndymium</dc:creator><comments>https://news.ycombinator.com/item?id=47122655</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47122655</guid></item><item><title><![CDATA[New comment by Ndymium in "Facebook's Fascination with My Robots.txt"]]></title><description><![CDATA[
<p>Forgejo does set "cache-control: private, max-age=21600", which is considerably more than one second, but I grant it uses the "private" keyword for no reason here.</p>
]]></description><pubDate>Mon, 23 Feb 2026 14:13:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=47122605</link><dc:creator>Ndymium</dc:creator><comments>https://news.ycombinator.com/item?id=47122605</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47122605</guid></item><item><title><![CDATA[New comment by Ndymium in "Facebook's Fascination with My Robots.txt"]]></title><description><![CDATA[
<p>For some reason, Facebook has been requesting my Forgejo instance's robots.txt in a loop for the past few days, currently at a speed of 7700 requests per hour. The resource usage is negligible, but I'm wondering why it's happening in the first place and how many other robot files they're also requesting repeatedly. Perhaps someone at Meta broke a loop condition.</p>
]]></description><pubDate>Mon, 23 Feb 2026 12:01:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47121211</link><dc:creator>Ndymium</dc:creator><comments>https://news.ycombinator.com/item?id=47121211</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47121211</guid></item><item><title><![CDATA[Facebook's Fascination with My Robots.txt]]></title><description><![CDATA[
<p>Article URL: <a href="https://blog.nytsoi.net/2026/02/23/facebook-robots-txt">https://blog.nytsoi.net/2026/02/23/facebook-robots-txt</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47121210">https://news.ycombinator.com/item?id=47121210</a></p>
<p>Points: 91</p>
<p># Comments: 53</p>
]]></description><pubDate>Mon, 23 Feb 2026 12:01:46 +0000</pubDate><link>https://blog.nytsoi.net/2026/02/23/facebook-robots-txt</link><dc:creator>Ndymium</dc:creator><comments>https://news.ycombinator.com/item?id=47121210</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47121210</guid></item><item><title><![CDATA[New comment by Ndymium in "Roundcube Webmail: SVG feImage bypasses image blocking to track email opens"]]></title><description><![CDATA[
<p>Note that the API is split into XSS-safe and XSS-unsafe calls. The XSS-safe calls [0] have this noted for each of them (emphasis mine):<p>> Then drop any elements and attributes that are not allowed by the sanitizer configuration, <i>and any that are considered XSS-unsafe (even if allowed by the configuration)</i><p>The XSS-unsafe functions are all named "unsafe". Although considering web programmers, maybe they should have been named "UnsafeDoNotUseOrYouWillBeFired".<p>[0] <a href="https://developer.mozilla.org/en-US/docs/Web/API/HTML_Sanitizer_API#xss-safe_methods" rel="nofollow">https://developer.mozilla.org/en-US/docs/Web/API/HTML_Saniti...</a></p>
]]></description><pubDate>Mon, 09 Feb 2026 11:11:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=46943987</link><dc:creator>Ndymium</dc:creator><comments>https://news.ycombinator.com/item?id=46943987</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46943987</guid></item><item><title><![CDATA[New comment by Ndymium in "Roundcube Webmail: SVG feImage bypasses image blocking to track email opens"]]></title><description><![CDATA[
<p>That's the old sanitizer API. That was already removed and what you linked earlier is the new sanitizer API.</p>
]]></description><pubDate>Mon, 09 Feb 2026 11:07:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=46943957</link><dc:creator>Ndymium</dc:creator><comments>https://news.ycombinator.com/item?id=46943957</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46943957</guid></item><item><title><![CDATA[New comment by Ndymium in "The Gleam Programming Language"]]></title><description><![CDATA[
<p>Gleam is technically as suitable for distributed computing as Erlang: since it compiles to Erlang, it can do anything that Erlang can. You can use Erlang and Elixir libraries and write FFI code to do things that would be unergonomic to do in Gleam. Sure the experience is different and if you want to embrace the guarantees of static typing, then the APIs will look different, like gleam_otp.<p>If you compile it to JS, then the guarantees change to JS's guarantees.<p>Personally I've felt that the JS target is a big plus and hasn't detracted from Gleam. Writing a full stack app with both sides being in Gleam and sharing common code is something I've enjoyed a lot. The most visible impact is that there's no target specific functions in the stdlib or the language itself, so Erlang related things are in gleam_erlang and gleam_otp, and e.g. filesystem access is a package instead of being in the stdlib. If you're just into Erlang, you don't need to interact with the JS target at all.</p>
]]></description><pubDate>Wed, 14 Jan 2026 08:35:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=46613719</link><dc:creator>Ndymium</dc:creator><comments>https://news.ycombinator.com/item?id=46613719</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46613719</guid></item><item><title><![CDATA[New comment by Ndymium in "I announced my divorce on Instagram and then AI impersonated me"]]></title><description><![CDATA[
<p>og:description is exactly the meta tag to use for link descriptions in embeds. Not all meta tags are only for search engines. The app acted correctly here.</p>
]]></description><pubDate>Mon, 22 Dec 2025 10:12:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=46352831</link><dc:creator>Ndymium</dc:creator><comments>https://news.ycombinator.com/item?id=46352831</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46352831</guid></item><item><title><![CDATA[New comment by Ndymium in "Denial of service and source code exposure in React Server Components"]]></title><description><![CDATA[
<p>It's basically what Phoenix LiveView specifically is. That's only one way to do it, and Phoenix is completely capable of traditional server rendering and SPA style development as well.<p>LiveView does provide the tools to simulate latency and move some interactions to be purely client side, but it's the developers' responsibility to take advantage of those and we know how that usually goes...</p>
]]></description><pubDate>Fri, 12 Dec 2025 12:25:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=46243475</link><dc:creator>Ndymium</dc:creator><comments>https://news.ycombinator.com/item?id=46243475</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46243475</guid></item><item><title><![CDATA[New comment by Ndymium in "250MWh 'Sand Battery' to start construction in Finland"]]></title><description><![CDATA[
<p>This is essentially what a ground source heat pump system is. Except instead of a sealed water tank you just make a tall hole that fills with water and the sun will warm it for you during the summer automatically.<p>1800 kWh is <i>very</i> little. We use around 12000 kWh and our neighbours' new house uses around 8000 kWh annually and most of that is heating. I'm not sure how many houses can hit 1800.</p>
]]></description><pubDate>Fri, 28 Nov 2025 04:50:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=46075612</link><dc:creator>Ndymium</dc:creator><comments>https://news.ycombinator.com/item?id=46075612</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46075612</guid></item><item><title><![CDATA[New comment by Ndymium in "Sony PlayStation 2 fixing frenzy"]]></title><description><![CDATA[
<p>Made me laugh though, when in the first level that it completely blocks, the director tells you to get close to a pickup, but the car you're chasing smashes the pickup to the sky like Team Rocket.<p>Last I heard there was a feature branch for testing a software implementation of floating point that would fix these issues, but naturally it would be a lot slower. I haven't tried it myself.</p>
]]></description><pubDate>Tue, 14 Oct 2025 06:35:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=45576915</link><dc:creator>Ndymium</dc:creator><comments>https://news.ycombinator.com/item?id=45576915</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45576915</guid></item><item><title><![CDATA[New comment by Ndymium in "You did this with an AI and you do not understand what you're doing here"]]></title><description><![CDATA[
<p>I admit that latter part is just for whimsy, because I think it looks fun. The dashes I like for their aesthetics and if that makes me eccentric then so be it. They shouldn't distract anyone's reading, or at least they didn't use to before LLMs.</p>
]]></description><pubDate>Tue, 23 Sep 2025 03:29:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=45342533</link><dc:creator>Ndymium</dc:creator><comments>https://news.ycombinator.com/item?id=45342533</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45342533</guid></item><item><title><![CDATA[New comment by Ndymium in "You did this with an AI and you do not understand what you're doing here"]]></title><description><![CDATA[
<p>En and em dashes are easily accessible on both my laptop's and phone's keyboard layouts and I like using them, just like putting the ö in coöperate. It's sad if this now makes me look like a robot and I have to use the wrong dashes to be more "human".</p>
]]></description><pubDate>Mon, 22 Sep 2025 10:27:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=45331428</link><dc:creator>Ndymium</dc:creator><comments>https://news.ycombinator.com/item?id=45331428</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45331428</guid></item><item><title><![CDATA[New comment by Ndymium in "Optimising for maintainability – Gleam in production at Strand"]]></title><description><![CDATA[
<p>Note that you linked to the 0.1.1 version of the gleam_otp documentation. The latest version resides at <a href="https://hexdocs.pm/gleam_otp/index.html" rel="nofollow">https://hexdocs.pm/gleam_otp/index.html</a> and both gleam_erlang and gleam_otp have hit 1.0.0 already. It doesn't contain every feature yet (like dynamic supervisors) but it's usable (and I've rolled my own dynamic supervisor in the meantime).</p>
]]></description><pubDate>Fri, 29 Aug 2025 08:47:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=45061722</link><dc:creator>Ndymium</dc:creator><comments>https://news.ycombinator.com/item?id=45061722</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45061722</guid></item></channel></rss>