<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: jperras</title><link>https://news.ycombinator.com/user?id=jperras</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 17 Apr 2026 17:50:21 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=jperras" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by jperras in "The challenges of soft delete"]]></title><description><![CDATA[
<p>This is just… event sourcing?<p><a href="https://martinfowler.com/eaaDev/EventSourcing.html" rel="nofollow">https://martinfowler.com/eaaDev/EventSourcing.html</a></p>
]]></description><pubDate>Wed, 21 Jan 2026 15:32:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=46707095</link><dc:creator>jperras</dc:creator><comments>https://news.ycombinator.com/item?id=46707095</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46707095</guid></item><item><title><![CDATA[New comment by jperras in "Tell HN: Want a better HN? Visit /newest"]]></title><description><![CDATA[
<p>There's also /classic, which only counts votes from user accounts created before a certain cutoff date.<p>The cutoff used to be early 2008, I believe, but that may have changed in the last ~17 years :)</p>
]]></description><pubDate>Fri, 28 Nov 2025 16:40:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=46080192</link><dc:creator>jperras</dc:creator><comments>https://news.ycombinator.com/item?id=46080192</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46080192</guid></item><item><title><![CDATA[New comment by jperras in "Doom crash after 2.5 years of real-world runtime confirmed on real hardware"]]></title><description><![CDATA[
<p>If you go back further than that, teams used to destroy entire engines for a single qualifying.<p>The BMW turbocharged M12/M13 that was used in the mid-eighties put out about 1,400 horsepower at 60 PSI of boost pressure, but it may have been even more than that because there was no dyno at the time capable of testing it.<p>They would literally weld the wastegate shut for qualifying, and it would last for about 2-3 laps: outlap, possibly warmup lap, qualifying time lap, inlap.<p>After which the engine was basically unusable, and so they'd put in a new one for the race.</p>
]]></description><pubDate>Wed, 17 Sep 2025 15:35:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=45277111</link><dc:creator>jperras</dc:creator><comments>https://news.ycombinator.com/item?id=45277111</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45277111</guid></item><item><title><![CDATA[New comment by jperras in "A pair of scissors on formica table suddenly bursts into flames"]]></title><description><![CDATA[
<p>The reviews are on the Scotch site itself, not on Amazon: <a href="https://www.scotchbrand.com/3M/en_US/p/d/cbgnhw011057/" rel="nofollow">https://www.scotchbrand.com/3M/en_US/p/d/cbgnhw011057/</a></p>
]]></description><pubDate>Tue, 11 Feb 2025 16:32:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=43014823</link><dc:creator>jperras</dc:creator><comments>https://news.ycombinator.com/item?id=43014823</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43014823</guid></item><item><title><![CDATA[New comment by jperras in "A pair of scissors on formica table suddenly bursts into flames"]]></title><description><![CDATA[
<p>Sorry, the reviews are actually on the Scotch site itself: <a href="https://www.scotchbrand.com/3M/en_US/p/d/cbgnhw011057/" rel="nofollow">https://www.scotchbrand.com/3M/en_US/p/d/cbgnhw011057/</a></p>
]]></description><pubDate>Tue, 11 Feb 2025 16:32:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=43014821</link><dc:creator>jperras</dc:creator><comments>https://news.ycombinator.com/item?id=43014821</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43014821</guid></item><item><title><![CDATA[New comment by jperras in "A pair of scissors on formica table suddenly bursts into flames"]]></title><description><![CDATA[
<p>Those scissors apparently have a habit of the handle melting away (see reviews): <a href="https://www.amazon.com/dp/B00SSVNNZC" rel="nofollow">https://www.amazon.com/dp/B00SSVNNZC</a><p>As one comment pointed out, they could be using nitrocellulose in the handle.</p>
]]></description><pubDate>Tue, 11 Feb 2025 15:54:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=43014302</link><dc:creator>jperras</dc:creator><comments>https://news.ycombinator.com/item?id=43014302</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43014302</guid></item><item><title><![CDATA[New comment by jperras in "Show HN: I am Building a Producthunt alternative"]]></title><description><![CDATA[
<p>> Don't use the term "hunt" in the name, to me it just screams "dupe" instead of something unique.
> [...]
> You can have "have you launched yet?", "find the next best thing", "what's trending today"...etc<p>OP: I may or may not be in possession of hasitlaunched dot com, should you be interested in purchasing it…</p>
]]></description><pubDate>Tue, 26 Nov 2024 17:01:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=42247437</link><dc:creator>jperras</dc:creator><comments>https://news.ycombinator.com/item?id=42247437</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42247437</guid></item><item><title><![CDATA[New comment by jperras in "Show HN: Retry a command with exponential backoff and jitter (+ Starlark exprs)"]]></title><description><![CDATA[
<p>> The only time exponential backoff is useful is if the failure is due to a rate limit and you specifically need a mechanism to reduce the rate at which you are attempting to use it.<p>That's what you should be using exponential backoff for. In actuality, the new latency introduced by the backoff should be maintained for some time even after a successful request has been received, and gradually over time the interval reduced.<p>> I much prefer setting a fixed time period to wait between retries (would you call that linear backoff? no backoff?)<p>I've heard it referred to as truncated exponential backoff.</p>
]]></description><pubDate>Wed, 20 Nov 2024 21:06:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=42198100</link><dc:creator>jperras</dc:creator><comments>https://news.ycombinator.com/item?id=42198100</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42198100</guid></item><item><title><![CDATA[New comment by jperras in "Bots, so many bots"]]></title><description><![CDATA[
<p>16 year HN vet here.<p>This place has both changed a _lot_ and also very little, depending on which axis you want to analyze. One thing that has been pretty consistent, however, is the rather minimal amount of trolls/bots. There are some surges from time to time, but they really don't last that long.</p>
]]></description><pubDate>Tue, 01 Oct 2024 15:32:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=41709751</link><dc:creator>jperras</dc:creator><comments>https://news.ycombinator.com/item?id=41709751</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41709751</guid></item><item><title><![CDATA[New comment by jperras in "Japan was the future but it's stuck in the past (2023)"]]></title><description><![CDATA[
<p>Very fair. The line between conscientious preservation and alienation can be (and often is) an easy one to cross.</p>
]]></description><pubDate>Fri, 30 Aug 2024 20:18:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=41404078</link><dc:creator>jperras</dc:creator><comments>https://news.ycombinator.com/item?id=41404078</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41404078</guid></item><item><title><![CDATA[New comment by jperras in "Japan was the future but it's stuck in the past (2023)"]]></title><description><![CDATA[
<p>Québecois here. We've been trying to tell the rest of Canada this for _decades_.</p>
]]></description><pubDate>Fri, 30 Aug 2024 19:58:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=41403933</link><dc:creator>jperras</dc:creator><comments>https://news.ycombinator.com/item?id=41403933</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41403933</guid></item><item><title><![CDATA[New comment by jperras in "Timezone-naive datetimes are one of the most dangerous objects in Python"]]></title><description><![CDATA[
<p>> Er, not really. Not meaningfully. They can be freely compared with timezone-aware timestamps<p>Author here. My original post was a little ambiguous on this topic; I've updated it to make it clearer.<p>The tl;dr is that in Python, `time.time()` calls the c stdlib `time` function (at least in CPython), which follows the POSIX standard. It turns out that POSIX standard does _not_ mention timezones at all: <a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/time.html" rel="nofollow">https://pubs.opengroup.org/onlinepubs/9699919799/functions/t...</a><p>To wit, you can't actually assume that timestamps are UTC in Python, which is a different kind of insanity:<p>```
datetime.datetime.utcnow().replace(tzinfo=pytz.timezone("America/Toronto")).timestamp()
```<p>differs materially from<p>```
datetime.datetime.utcnow().timestamp()
```</p>
]]></description><pubDate>Tue, 16 Jul 2024 20:35:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=40980101</link><dc:creator>jperras</dc:creator><comments>https://news.ycombinator.com/item?id=40980101</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40980101</guid></item><item><title><![CDATA[New comment by jperras in "Timezone-naive datetimes are one of the most dangerous objects in Python"]]></title><description><![CDATA[
<p>Author here.<p>I admit that I didn't fully explain the danger, because I thought it was somewhat self-evident: if you attempt to compare two datetimes correctly, you must know their timezones. Anyone who has used Google Calendar to schedule a meeting in SF when they live in NYC can attest to that.<p>> You only need a timezone if there was some kind of locality to the event (e.g.: when _and_ where this happened), but usually you can convert to local time. So storing UTC time is fine, adding the timezone in rare cases.<p>We're both saying the same thing, here.<p>While UTC is not _technically_ a timezone, most databases/programming languages/etc. let you attach UTC to a datetime. When you say that you're "storing UTC time", you are implicitly storing it with enough information.<p>The difference is that I don't like the implicit nature of assuming a timezone-naive datetime is UTC, because that is a very dangerous assumption to make. Just store the timezone, even if it's UTC!</p>
]]></description><pubDate>Tue, 16 Jul 2024 20:25:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=40979995</link><dc:creator>jperras</dc:creator><comments>https://news.ycombinator.com/item?id=40979995</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40979995</guid></item><item><title><![CDATA[New comment by jperras in "Show HN: I made a split keyboard for large palms"]]></title><description><![CDATA[
<p>I thought the same, and went from an Apple standard keyboard to a Moonlander. Some time after that I went to a custom 36-key split ergo board.<p>It takes a little time to familiarize yourself, but you get very proficient with layers and home-row mods. The main benefit is that every single one of my fingers never has to move more than one key in any direction, and it has markedly improved my wrist health.</p>
]]></description><pubDate>Thu, 04 Jul 2024 15:20:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=40875600</link><dc:creator>jperras</dc:creator><comments>https://news.ycombinator.com/item?id=40875600</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40875600</guid></item><item><title><![CDATA[New comment by jperras in "The Death of NYC Congestion Pricing"]]></title><description><![CDATA[
<p>> Instead of trying to tax the people into complying with your desires, make them want to do so of their own free will!<p>… do you have any idea of the costs that are associated with owning and operating a vehicle in Tokyo?</p>
]]></description><pubDate>Fri, 28 Jun 2024 17:07:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=40822655</link><dc:creator>jperras</dc:creator><comments>https://news.ycombinator.com/item?id=40822655</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40822655</guid></item><item><title><![CDATA[New comment by jperras in "Multi-tenant queues in Postgres"]]></title><description><![CDATA[
<p>Ah, I see - the default transactional isolation level is what I wasn't accounting for.<p>Thanks for the explanation! Very much appreciated.</p>
]]></description><pubDate>Thu, 18 Apr 2024 21:31:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=40080932</link><dc:creator>jperras</dc:creator><comments>https://news.ycombinator.com/item?id=40080932</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40080932</guid></item><item><title><![CDATA[New comment by jperras in "Multi-tenant queues in Postgres"]]></title><description><![CDATA[
<p>Is the `FOR UPDATE SKIP LOCKED` in the CTE necessary? Granted my understanding of Postgres row-level locking and their interaction with CTEs may be a bit lacking, but according to the docs[1]:<p><pre><code>  The sub-statements in WITH are executed concurrently with each other and with the main query. Therefore, when using data-modifying statements in WITH, the order in which the specified updates actually happen is unpredictable. All the statements are executed with the same snapshot (see Chapter 13), so they cannot “see” one another's effects on the target tables.

</code></pre>
1. <a href="https://www.postgresql.org/docs/current/queries-with.html#QUERIES-WITH-MODIFYING" rel="nofollow">https://www.postgresql.org/docs/current/queries-with.html#QU...</a></p>
]]></description><pubDate>Thu, 18 Apr 2024 21:03:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=40080684</link><dc:creator>jperras</dc:creator><comments>https://news.ycombinator.com/item?id=40080684</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40080684</guid></item><item><title><![CDATA[New comment by jperras in "The Montreal problem: Why programming languages need a style czar"]]></title><description><![CDATA[
<p>Lifelong Montréaler here. I think having "problem" in the title is what is ruffling feathers, although I'm not particularly bothered by it. That's perhaps where the analogy is strained the most: stylistic divergence in code can be problematic, but in architecture and urbanism it's typically seen as an asset.<p>Perhaps calling it the "Montréal effect" would be more apropos?</p>
]]></description><pubDate>Fri, 15 Mar 2024 15:24:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=39716793</link><dc:creator>jperras</dc:creator><comments>https://news.ycombinator.com/item?id=39716793</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39716793</guid></item><item><title><![CDATA[New comment by jperras in "Ratchets over Levers"]]></title><description><![CDATA[
<p>> Humans have always had a tendency to develop a deep understanding of their tools, and even to refine them to better suit their needs.<p>Many people in North America use a microwave every day. Does that mean they have or want a deep understanding of magnetrons? Likely not. Of course, this is because microwaves generally just work as expected. But I can't imagine a scenario where microwave home repair would be a thing that people would be okay with if they were unreliable.</p>
]]></description><pubDate>Fri, 08 Mar 2024 04:09:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=39637677</link><dc:creator>jperras</dc:creator><comments>https://news.ycombinator.com/item?id=39637677</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39637677</guid></item><item><title><![CDATA[New comment by jperras in "Bike lanes are good for business"]]></title><description><![CDATA[
<p>Montréaler here. A surprising amount of people cycle all winter long; the days where you see no one cycling about are typically days where you wouldn't even want to be outside in a car due to the inclement weather.<p>Winter cycling is actually popular enough that our bike-share system has started to leave a portion of the sharing infrastructure out during the colder months. They put studded tires on the bikes, put the stations in locations where they aren't in the way of snow plows and the like, and people use them quite a bit! Something like 1,500-5,000 rides per day, just in the shared infrastructure. That doesn't count the even larger number of people here who have their own dedicated winter bike.</p>
]]></description><pubDate>Thu, 07 Mar 2024 18:42:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=39632947</link><dc:creator>jperras</dc:creator><comments>https://news.ycombinator.com/item?id=39632947</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39632947</guid></item></channel></rss>