<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: time4tea</title><link>https://news.ycombinator.com/user?id=time4tea</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 12 Apr 2026 19:00:11 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=time4tea" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by time4tea in "Vinyl Cache and Varnish Cache"]]></title><description><![CDATA[
<p>I initially read this as "we" being "Varnish Software", but maybe that was wrong.</p>
]]></description><pubDate>Sun, 12 Apr 2026 17:31:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=47742250</link><dc:creator>time4tea</dc:creator><comments>https://news.ycombinator.com/item?id=47742250</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47742250</guid></item><item><title><![CDATA[New comment by time4tea in "Vinyl Cache and Varnish Cache"]]></title><description><![CDATA[
<p>Thanks for the info, but I'm a bit confused, sorry.<p>The reason for hitch was that tls and caching are a different concern, and the current recommendation is to use haproxy, which also isnt integrated into varnish/vinyl.<p>But you say that the reason to migrate off hitch is that its not integrated?<p>But what happend to separation of concerns, then? Is the plan to integrate tls termination into vinyl? Is this a change of policy/outlook?<p>Thanks!</p>
]]></description><pubDate>Sun, 12 Apr 2026 17:02:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=47741964</link><dc:creator>time4tea</dc:creator><comments>https://news.ycombinator.com/item?id=47741964</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47741964</guid></item><item><title><![CDATA[New comment by time4tea in "Vinyl Cache and Varnish Cache"]]></title><description><![CDATA[
<p>Thanks for this. You dont mention hitch though. Is that now deprecated/discouraged?<p>It hasn't seen much action in a while, but maybe thats cos it works?</p>
]]></description><pubDate>Sun, 12 Apr 2026 10:10:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=47737952</link><dc:creator>time4tea</dc:creator><comments>https://news.ycombinator.com/item?id=47737952</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47737952</guid></item><item><title><![CDATA[New comment by time4tea in "Vinyl Cache and Varnish Cache"]]></title><description><![CDATA[
<p>just use the tool that does the job.<p>TLS in -> hitch or caddy
Cache -> varnish/vinyl
TLS out -> haproxy<p>Connect them up with Unix sockets, if you like.</p>
]]></description><pubDate>Sat, 11 Apr 2026 08:17:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=47728603</link><dc:creator>time4tea</dc:creator><comments>https://news.ycombinator.com/item?id=47728603</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47728603</guid></item><item><title><![CDATA[New comment by time4tea in "Revision Demoparty 2026: Razor1911 [video]"]]></title><description><![CDATA[
<p>One of the most uplifting things I've seen for a long while.<p>Amazing artistry and skills.</p>
]]></description><pubDate>Fri, 10 Apr 2026 23:24:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47725121</link><dc:creator>time4tea</dc:creator><comments>https://news.ycombinator.com/item?id=47725121</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47725121</guid></item><item><title><![CDATA[New comment by time4tea in "One Method Was Using 71% of CPU. Here's the Flame Graph"]]></title><description><![CDATA[
<p>Quite hard take an article seriously with this line in it:<p>int hour = order.timestamp().atZone(ZoneId.systemDefault()).getHour();<p>(Because... does the hour you did the thing change according to where you run the code? no - it should use either the location of the trader, or the exchange, neither of which are related to where the code runs)<p>Using strings as different kinds ids is kind of an anti pattern too. They are IDs in different domains. They can be a strongly-typed long (or other type, uuid, snowflake, whatever). No string concatenation required. This then carries on to the regular expressions - if you use strong types, you then don't need to validate that the stringly-typed stuff you used earlier, and hopefully didn't permute some function arguments somewhere is actually valid.. it just  is)<p>The example shows rentrantlock for a single entire method.. there's no huge advantage over synchronised in this case.. maybe there's other code thats not shown.<p>Using double for prices & costs? You really need to be much more sure about what number of money you really have. I cant pay you $2.19999999999999.<p>If you have a cpu-bound algorithm, running vastly more threads than cpus isn't ever going to help, and if you really have 200 cores, then you'll want to modify your algorithm to remove synchronization... thanks Amdahl!<p>There may be some suggestions in the article, but it feels forced.<p>edit: added details on timezones, validation & threads.</p>
]]></description><pubDate>Fri, 10 Apr 2026 06:59:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47714528</link><dc:creator>time4tea</dc:creator><comments>https://news.ycombinator.com/item?id=47714528</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47714528</guid></item><item><title><![CDATA[New comment by time4tea in "LLM scraper bots are overloading acme.com's HTTPS server"]]></title><description><![CDATA[
<p>You can block CN, RU, SG, KR, and the level 3 from "ipsum" and the numbers go down a lot.<p>People might not know about ipset - dont use individual rules in iptables.<p>Nginx can reject easily based on country.<p>geoip2 /etc/GeoLite2-Country.mmdb {
          $geoip2_metadata_country_build metadata build_epoch;
          $geoip2_data_country_code default=Unknown source=$remote_addr country iso_code;
  }<p><pre><code>  map $geoip2_data_country_code $allowed_country {
    default yes;
    KR no;
    SG no;
    CN no;
    RU no;
 }
</code></pre>
server {
....
if ($allowed_country = no) {
        return 444;
    }
}</p>
]]></description><pubDate>Wed, 08 Apr 2026 15:20:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=47691454</link><dc:creator>time4tea</dc:creator><comments>https://news.ycombinator.com/item?id=47691454</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47691454</guid></item><item><title><![CDATA[New comment by time4tea in "NYC ends criminal summonses for cyclists, e-bike riders"]]></title><description><![CDATA[
<p>Its because, although sometimes a delivery cyclist might be annoying, the reality is that there are almost zero KSI due to cyclist in any country worldwide.
The rules designed for SUV dont actually make sense for human-scale transport.</p>
]]></description><pubDate>Thu, 19 Mar 2026 23:29:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=47447946</link><dc:creator>time4tea</dc:creator><comments>https://news.ycombinator.com/item?id=47447946</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47447946</guid></item><item><title><![CDATA[New comment by time4tea in "Lazy JWT Key Rotation in .NET: Redis-Powered JWKS That Just Works"]]></title><description><![CDATA[
<p>Its a spectrum, like all things.<p>It crosses from everyone has the keys like in this example, to centralising a signing service using just software, or using something like KMS or CloudHSM, or YubiHSM, or going big and getting a HA Luna (or similar) HSM setup.</p>
]]></description><pubDate>Tue, 10 Mar 2026 08:13:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=47320376</link><dc:creator>time4tea</dc:creator><comments>https://news.ycombinator.com/item?id=47320376</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47320376</guid></item><item><title><![CDATA[New comment by time4tea in "Lazy JWT Key Rotation in .NET: Redis-Powered JWKS That Just Works"]]></title><description><![CDATA[
<p>Private key material should not be kept in the clear anywhere, ideally.
This includes on your dev machine, serialised in a store, in the heap of your process, anywhere.
Of course, it depends on your threat environment, but the article did mention pci-dss.
If you put it in redis, then anyone that has access (internal baddies exist too!) can steal the key and sign something. Its hard to repudiate that.</p>
]]></description><pubDate>Mon, 09 Mar 2026 17:29:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=47312242</link><dc:creator>time4tea</dc:creator><comments>https://news.ycombinator.com/item?id=47312242</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47312242</guid></item><item><title><![CDATA[New comment by time4tea in "Lazy JWT Key Rotation in .NET: Redis-Powered JWKS That Just Works"]]></title><description><![CDATA[
<p>From article:<p>Private key redis key<p><pre><code>    public static string PrivateKey(string kid) => $"{Root}:jwks:private:{kid}"; // full private material (short life)</code></pre></p>
]]></description><pubDate>Mon, 09 Mar 2026 17:16:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=47312025</link><dc:creator>time4tea</dc:creator><comments>https://news.ycombinator.com/item?id=47312025</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47312025</guid></item><item><title><![CDATA[New comment by time4tea in "Lazy JWT Key Rotation in .NET: Redis-Powered JWKS That Just Works"]]></title><description><![CDATA[
<p>The key material is in redis?
Seems odd.
Should be in fips 140 hsm?
Else key can be stolen easy.<p>Maybe missed something.</p>
]]></description><pubDate>Mon, 09 Mar 2026 17:09:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47311927</link><dc:creator>time4tea</dc:creator><comments>https://news.ycombinator.com/item?id=47311927</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47311927</guid></item><item><title><![CDATA[New comment by time4tea in "Dbslice: Extract a slice of your production database to reproduce bugs"]]></title><description><![CDATA[
<p>Copying production data to dev is widely regarded as being a bit of a bad idea, if the data contains any information that relates to a person or real life entity.<p>Uncontrolled access, inability to comply with "right to be forgotten" legislation, visibility of personal information, including purchases, physical locations, etc etc.<p>Of course sales, trading, inventory, etc data, even with no customer info is still valuable.<p>Attempts to anonymise are often incomplete, with various techniques to de-anonymise available.<p>Database separation, designed to make sure that certain things stay in different domains and cant be combined, also falls apart if you have both the databases on your laptop.<p>Of course, any threat actor will be happy that prod data is available in dev environments, as security is often much lower in dev environments.<p>Caveat emptor.</p>
]]></description><pubDate>Fri, 06 Mar 2026 08:18:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=47272366</link><dc:creator>time4tea</dc:creator><comments>https://news.ycombinator.com/item?id=47272366</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47272366</guid></item><item><title><![CDATA[New comment by time4tea in "C64 Copy Protection"]]></title><description><![CDATA[
<p>Can confirm tape-to-tape worked 100%... it got a bit less reliable after copy-of-copy-of-copy though.</p>
]]></description><pubDate>Mon, 02 Mar 2026 21:14:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=47224164</link><dc:creator>time4tea</dc:creator><comments>https://news.ycombinator.com/item?id=47224164</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47224164</guid></item><item><title><![CDATA[New comment by time4tea in "What does " 2>&1 " mean?"]]></title><description><![CDATA[
<p>Useless use of cat error/award<p>But also | isnt a redirection, it takes stdout and pipes it to another program.<p>So, if you want stderr to go to stdout, so you can pipe it, you need to do it in order.<p>bob 2>&1 | prog<p>You usually dont want to do this though.</p>
]]></description><pubDate>Thu, 26 Feb 2026 23:44:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=47173984</link><dc:creator>time4tea</dc:creator><comments>https://news.ycombinator.com/item?id=47173984</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47173984</guid></item><item><title><![CDATA[New comment by time4tea in "New site design and philosophy for Stack Overflow"]]></title><description><![CDATA[
<p>Did anyone click through?<p>That is a horrible website! Wow</p>
]]></description><pubDate>Wed, 25 Feb 2026 00:30:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=47145649</link><dc:creator>time4tea</dc:creator><comments>https://news.ycombinator.com/item?id=47145649</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47145649</guid></item><item><title><![CDATA[New comment by time4tea in "Sewage Spill in the Potomac River"]]></title><description><![CDATA[
<p>Sewage Map is great.<p>You can get a great picture of the scale of the problem in the UK at<p><a href="https://top-of-the-poops.org" rel="nofollow">https://top-of-the-poops.org</a><p>It shows live and historic sewage dumps for the last 5 years for constituencies, beaches & shellfish areas...</p>
]]></description><pubDate>Sun, 22 Feb 2026 16:54:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=47112562</link><dc:creator>time4tea</dc:creator><comments>https://news.ycombinator.com/item?id=47112562</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47112562</guid></item><item><title><![CDATA[New comment by time4tea in "Trunk Based Development"]]></title><description><![CDATA[
<p>TBD - its pretty great... aligned also with continuous deployment:<p>It allows you to get feedback from customers very fast.<p>It allows you to <i>improve</i> the software very fast.<p>It allows you to react to the feedback you just got very fast.<p>Yes, its tricky! You need fast builds, that give you actionable feedback on whether you did a whoopsie.<p>Yes, it works for all sorts of things: regulated industries,  incl finance, embedded systems, apps, websites, ...<p>Yes, you do need to rethink how changes happen, to look for ways to make that big change into multiple or even many smaller changes, this often has lots of unanticipated benefits.<p>Yes, it scales to very large deployments and quite large teams.</p>
]]></description><pubDate>Sat, 21 Feb 2026 21:18:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47104878</link><dc:creator>time4tea</dc:creator><comments>https://news.ycombinator.com/item?id=47104878</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47104878</guid></item><item><title><![CDATA[New comment by time4tea in "Ask HN: How do you find the "why" behind old code decisions?"]]></title><description><![CDATA[
<p>Its what commit messages are for!<p>The diff tells the 'what' - no point in writing 'added method bob()'<p>The message tells the why.<p>You can bet that over time, the jiras, the issues and the confluence, slack, o365, will all have been deleted, "upgraded" or whatever, and all you have is what's in the repo.<p>Using in-repo ADR, and in-repo 'what's missing, what's next' files are also useful, because they co-evolve with the code.</p>
]]></description><pubDate>Fri, 23 Jan 2026 18:45:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=46736130</link><dc:creator>time4tea</dc:creator><comments>https://news.ycombinator.com/item?id=46736130</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46736130</guid></item><item><title><![CDATA[New comment by time4tea in "Medium Was Built for an Internet That No Longer Exists"]]></title><description><![CDATA[
<p>Medium is mid.</p>
]]></description><pubDate>Sat, 17 Jan 2026 03:00:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=46654842</link><dc:creator>time4tea</dc:creator><comments>https://news.ycombinator.com/item?id=46654842</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46654842</guid></item></channel></rss>