<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: franticgecko3</title><link>https://news.ycombinator.com/user?id=franticgecko3</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 18 Jun 2026 11:54:04 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=franticgecko3" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by franticgecko3 in "Show HN: SNKV – SQLite's B-tree as a key-value store (C/C++ and Python bindings)"]]></title><description><![CDATA[
<p>You've been copying and pasting directly from Claude to reply to comments that ask how this works. You also realise you've been caught and are now replying in a completely different style.<p>You've thrown away all credibility.</p>
]]></description><pubDate>Tue, 24 Feb 2026 15:27:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=47138365</link><dc:creator>franticgecko3</dc:creator><comments>https://news.ycombinator.com/item?id=47138365</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47138365</guid></item><item><title><![CDATA[New comment by franticgecko3 in "Show HN: SNKV – SQLite's B-tree as a key-value store (C/C++ and Python bindings)"]]></title><description><![CDATA[
<p>OP seems to self promote this project and other similar vibe coded works every few weeks under two different HN handles.<p>Edit: for me this post appears on the front page of HN. OP this is mission success - add this project to your résumé and stop spamming.</p>
]]></description><pubDate>Tue, 24 Feb 2026 13:29:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=47136907</link><dc:creator>franticgecko3</dc:creator><comments>https://news.ycombinator.com/item?id=47136907</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47136907</guid></item><item><title><![CDATA[New comment by franticgecko3 in "Twelve Days of Shell"]]></title><description><![CDATA[
<p>Tab complete is completely broken on Firefox mobile (Android)</p>
]]></description><pubDate>Mon, 08 Dec 2025 10:54:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=46190864</link><dc:creator>franticgecko3</dc:creator><comments>https://news.ycombinator.com/item?id=46190864</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46190864</guid></item><item><title><![CDATA[New comment by franticgecko3 in "Show HN: I scraped 3B Goodreads reviews to train a better recommendation model"]]></title><description><![CDATA[
<p>They have nothing to do with mathematics but everything to do with being extremely popular books.<p>Most people that have read a mathematics textbook have also read and enjoyed Harry Potter.<p>Given you have enjoyed drinking water and breathing in the past, there is a high likelihood that you will enjoy watching the Star Wars films.</p>
]]></description><pubDate>Fri, 07 Nov 2025 09:10:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=45844764</link><dc:creator>franticgecko3</dc:creator><comments>https://news.ycombinator.com/item?id=45844764</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45844764</guid></item><item><title><![CDATA[New comment by franticgecko3 in "RTO: WTAF"]]></title><description><![CDATA[
<p>I've long suspected it's got to do with office real estate.<p>You spent $10m or $100m on a building that's now half empty.<p>Either you downsize or commit to enterprise scale sunk cost fallacy and enforce RTO so your real estate investment isn't "wasted".<p>City centres also thrive on RTO, with high street shopping on a generational decline it's up to office workers and their employers to prop up the economy of the CBD one overpriced lunch at a time.</p>
]]></description><pubDate>Thu, 25 Sep 2025 10:08:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=45371093</link><dc:creator>franticgecko3</dc:creator><comments>https://news.ycombinator.com/item?id=45371093</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45371093</guid></item><item><title><![CDATA[New comment by franticgecko3 in "Geizhals Preisvergleich Donates USD 10k to the Perl and Raku Foundation"]]></title><description><![CDATA[
<p>I've started learning (in 2025!) and using Perl lately as shell++<p>It's extremely stable, installed almost everywhere, and has much fewer insane idosyncrasies than shell.<p>I can write some Perl and confidently hand it to a colleague where it will almost certainly work on their machine.<p>It's a shame it's so dead, for a scripting language there's nothing else that ticks the same boxes.<p>I would never write systems software with it, of course</p>
]]></description><pubDate>Thu, 18 Sep 2025 15:09:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=45290638</link><dc:creator>franticgecko3</dc:creator><comments>https://news.ycombinator.com/item?id=45290638</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45290638</guid></item><item><title><![CDATA[New comment by franticgecko3 in "Go’s race detector has a mutex blind spot"]]></title><description><![CDATA[
<p>> Have a nightly job that runs unit and integ tests<p>Not enough IMHO.<p>We run all tests on developer machines and CI with -race. Always.<p>It's probabilistic, so every developer 'make test' and every 'git push' is coverage.</p>
]]></description><pubDate>Thu, 31 Jul 2025 13:18:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=44745353</link><dc:creator>franticgecko3</dc:creator><comments>https://news.ycombinator.com/item?id=44745353</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44745353</guid></item><item><title><![CDATA[New comment by franticgecko3 in "Waymo rides cost more than Uber or Lyft and people are paying anyway"]]></title><description><![CDATA[
<p>Assuming OP is in the UK, they're talking about hackney carriages which are subject to more stringent regulation than other private hire vehicles<p><a href="https://en.wikipedia.org/wiki/Hackney_carriage" rel="nofollow">https://en.wikipedia.org/wiki/Hackney_carriage</a><p>I think this would be similar to the medallions of yellow NYC cabs</p>
]]></description><pubDate>Sun, 15 Jun 2025 05:42:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=44280777</link><dc:creator>franticgecko3</dc:creator><comments>https://news.ycombinator.com/item?id=44280777</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44280777</guid></item><item><title><![CDATA[New comment by franticgecko3 in "Why I wrote the BEAM book"]]></title><description><![CDATA[
<p>>Why Elixir + Erlang are not more popular for high concurrency projects is a mystery to me.<p>I work at an Erlang shop.<p>For Erlang to be useful you need to have massive scale, millions of DAU. Yes Elixir might run your website serving thousands of DAU but Erlang and the BEAM was not invented for you. Few companies have the scale that makes Erlang a reasonable choice.<p>More pressing these days I believe is that the Erlang ecosystem is all or nothing, the BEAM is like its own little operating system and has extremely (IMHO) complicated setup and configuration with many moving parts: ERTS, epmd, Rebar,... You don't need or shouldn't use container tech and k8s with Erlang because it's already doing that stuff in its own Erlang way - but it's the Erlang way it's extremely unique and unfamiliar to most.<p>When you have the right use case for Erlang and you see it in action it is truly like black magic, it's been a highlight of my career to work with it.</p>
]]></description><pubDate>Wed, 04 Jun 2025 19:09:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=44184345</link><dc:creator>franticgecko3</dc:creator><comments>https://news.ycombinator.com/item?id=44184345</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44184345</guid></item><item><title><![CDATA[New comment by franticgecko3 in "Generative AI is not replacing jobs or hurting wages at all, say economists"]]></title><description><![CDATA[
<p>I agree with most of your points  but this one<p>>I find it useful for some coding tasks but think LLMs were overestimated and it will blow up like NFTs<p>No way. NFTs did not make any headway in "the real world": their value proposition was that their cash value was speculative, like most other Blockchain technologies, and that understandably collapsed quickly and brilliantly. Right now developers are using LLMs and they have real tangible advantages. They are more successful than NFTs already.<p>I'm a huge AI skeptic and I believe it's difficult to measure their usefulness while we're still in a hype bubble but I am using them every day, they don't write my prod code because they're too unreliable and sloppy, but for one shot scripts <100 lines they have saved me hours, and they've entirely replaced stack overflow for me. If the hype bubble burst today I'd still be using LLMs tomorrow. Cannot say the same for NFTs</p>
]]></description><pubDate>Tue, 29 Apr 2025 13:32:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=43832361</link><dc:creator>franticgecko3</dc:creator><comments>https://news.ycombinator.com/item?id=43832361</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43832361</guid></item><item><title><![CDATA[New comment by franticgecko3 in "A Map of British Dialects (2023)"]]></title><description><![CDATA[
<p>I'm from West Yorkshire, the dialect is slowly fading. My grandfather would speak with a strong accent and with spatterings of Norse words. I notice now that, yes, dialects in the UK are becoming homogenised but there is also some American influence seeping in. The American way of pronouncing a double t as a d "better" => "bedder" is increasingly more prevalent in the UK, it's slightly saddening.</p>
]]></description><pubDate>Sat, 19 Apr 2025 10:35:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=43735503</link><dc:creator>franticgecko3</dc:creator><comments>https://news.ycombinator.com/item?id=43735503</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43735503</guid></item><item><title><![CDATA[New comment by franticgecko3 in "Problems with Go channels (2016)"]]></title><description><![CDATA[
<p>>The biggest mistake I see people make with Go channels is prematurely optimizing their code by making channels buffered. This is almost always a mistake. It seems logical. You don't want your code to block.<p>Thank you. I've fixed a lot of bugs in code that assumes because a channel is buffered it is non-blocking. Channels are <i>always</i> blocking, because they have a fixed capacity; my favorite preemptive fault-finding exercise is to go through a codebase and set all channels to be unbuffered, lo-and-behold there's deadlocks everywhere.<p>If that is the biggest mistake, then the second biggest mistake is attempting to increase performance of an application by increasing channel sizes.<p>A channel is a pipe connecting two workers, if you make the pipe wider the workers do not process their work any faster, it makes them more tolerant of jitter and that's it. I cringe when I see a channel buffer with a size greater than ~100 - it's a a telltale sign of a misguided optimization or finger waving session. I've seen some channels sized at 100k for "performance" reasons, where the consumer is pushing out to the network, say 1ms for processing and network egress. Are you really expecting the consumer to block for 100 seconds, or did you just think bigger number = faster?</p>
]]></description><pubDate>Sun, 13 Apr 2025 20:22:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=43675569</link><dc:creator>franticgecko3</dc:creator><comments>https://news.ycombinator.com/item?id=43675569</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43675569</guid></item><item><title><![CDATA[New comment by franticgecko3 in "Problems with Go channels (2016)"]]></title><description><![CDATA[
<p>> How often are you reaching 10^14 goroutines accessing a shared resource on a single process in production? We mostly use short-lived small AWS spot instances so I never see anything like that.<p>I apologize, that should've said 2^14, each sub-benchmark is a doubling of goroutines.<p>2^14 is 16000, which for contention of a shared resource is quite a reasonable order of magnitude.</p>
]]></description><pubDate>Sun, 13 Apr 2025 18:59:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=43675015</link><dc:creator>franticgecko3</dc:creator><comments>https://news.ycombinator.com/item?id=43675015</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43675015</guid></item><item><title><![CDATA[New comment by franticgecko3 in "Problems with Go channels (2016)"]]></title><description><![CDATA[
<p>> Since CSP is mentioned, how much would this apply to most applications anyway? If I write a small server program, I probably won't want to write it on paper first. With one possible exception I never heard of anyone writing programs based on CSP (calculations?)<p>CSP is really in the realm of formal methods. No you wouldn't formulate your server program as CSP, but if you were writing software for a medical device, perhaps.<p>This is the FDR4 model checker for CSP, it's a functional programming language that implements CSP semantics and may be used to assert (by exhaustion, IIRC) the correctness of your CSP model.<p><a href="https://cocotec.io/fdr/" rel="nofollow">https://cocotec.io/fdr/</a><p>I believe I'm in the minority of Go developers that have studied CSP, I fell into Go by accident and only took a CSP course at university because it was interesting, however I do give credit to studying CSP for my successes with Go.</p>
]]></description><pubDate>Sun, 13 Apr 2025 18:35:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=43674842</link><dc:creator>franticgecko3</dc:creator><comments>https://news.ycombinator.com/item?id=43674842</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43674842</guid></item><item><title><![CDATA[New comment by franticgecko3 in "Go channels are bad (2016)"]]></title><description><![CDATA[
<p>I have replied to another comment with more details: the channel mutex is not the same one that sync.Mutex is using.<p>The article that the OP article references does not show the code for their benchmark, but I must assume it's not using a large number of goroutines.</p>
]]></description><pubDate>Sun, 13 Apr 2025 18:28:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=43674787</link><dc:creator>franticgecko3</dc:creator><comments>https://news.ycombinator.com/item?id=43674787</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43674787</guid></item><item><title><![CDATA[New comment by franticgecko3 in "Problems with Go channels (2016)"]]></title><description><![CDATA[
<p>> Do you have any benchmarks for the pattern you described where channels are more efficient?<p><a href="https://go.dev/play/p/qXwMJoKxylT" rel="nofollow">https://go.dev/play/p/qXwMJoKxylT</a><p>go test -bench=.* -run=^$ -benchtime=1x<p>Since my critique of the OP is that it's a contrived example, I should mention so is this: the mutex version should be a sync.Atomic and the channel version should have one channel per goroutine if you were attempting to write a performant concurrent counter, both of those alternatives would have low or zero  lock contention. In production code, I would be using sync.Atomic, of course.<p>On my 8c16t machine, the inflection point is around 2^14 goroutines - after which the mutex version becomes drastically slower; this is where I believe it starts frequently entering `lockSlow`. I encourage you to run this for yourself.<p>> Do you have any more details about this? Why isn’t sync.Mutex implemented with that same mutex channels use?<p>Why? Designing and implementing concurrent runtimes has not made its way onto my CV yet; hopefully a lurking Go contributor can comment.<p>The channel mutex:
<a href="https://go.dev/src/runtime/chan.go" rel="nofollow">https://go.dev/src/runtime/chan.go</a><p>Is not the same mutex as a sync.Mutex:
<a href="https://go.dev/src/internal/sync/mutex.go" rel="nofollow">https://go.dev/src/internal/sync/mutex.go</a><p>If I had to guess, the channel mutex may be specialised since it protects only enqueuing or dequeuing onto a simple buffer. A sync.Mutex is a general construct   that can protect any kind of critical region.<p>> What is the rule of thumb your Go shop uses for when to use channels vs mutexes?<p>Rule of thumb: if it feels like a Kafka use case but within the bounds of the local program, it's probably a good bet.<p>If the communication pattern is passing streams of work where goroutines have an acyclic communication dependency graph, then it's a no brainer: channels will be performant and a deadlock will be hard to introduce.<p>If you are using channels to protect shared memory, and you can squint and see a  badly implemented Mutex or WaitGroup or Atomic; then you shouldn't be using channels.<p>Channels shine where goroutines are just pulling new work from a stream of work items. At least in my line of work, that is about 80% of the cases where a synchronization primitive is used.</p>
]]></description><pubDate>Sun, 13 Apr 2025 18:19:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=43674735</link><dc:creator>franticgecko3</dc:creator><comments>https://news.ycombinator.com/item?id=43674735</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43674735</guid></item><item><title><![CDATA[New comment by franticgecko3 in "Problems with Go channels (2016)"]]></title><description><![CDATA[
<p>And implying I don't understand toy examples and responding with  this is apparently above the bar for serious discussion.</p>
]]></description><pubDate>Sun, 13 Apr 2025 14:15:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=43672972</link><dc:creator>franticgecko3</dc:creator><comments>https://news.ycombinator.com/item?id=43672972</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43672972</guid></item><item><title><![CDATA[New comment by franticgecko3 in "Problems with Go channels (2016)"]]></title><description><![CDATA[
<p>I'd like to refute the 'channels are slow' part of this article.<p>If you run a microbenchmark which seems like what has been done, then channels look slow.<p>If you try the contention with thousands of goroutines on a high core count machine, there is a significant inflection point where channels start outperforming sync.Mutex<p>The reason is that sync.Mutex, if left to wait long enough will enter a slow code path and if memory serves, will call out to a kernel futex. The channel will not do this because the mutex that a channel is built with is exists in the go runtime - that's the special sauce the author is complaining doesn't exist but didn't try hard enough to seek it out.<p>Anecdotally, we have ~2m lines of Go and use channels extensively in a message passing style. We do not use channels to increment a shared number, because that's ridiculous and the author is disingenuous in their contrived example. No serious Go shop is using a channel for that.</p>
]]></description><pubDate>Sun, 13 Apr 2025 13:22:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=43672638</link><dc:creator>franticgecko3</dc:creator><comments>https://news.ycombinator.com/item?id=43672638</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43672638</guid></item><item><title><![CDATA[New comment by franticgecko3 in "Erlang's not about lightweight processes and message passing (2023)"]]></title><description><![CDATA[
<p>If you write an Erlang function in C you can actually call a function that lets the scheduler know you are willing to yield.</p>
]]></description><pubDate>Sat, 12 Apr 2025 05:15:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=43661558</link><dc:creator>franticgecko3</dc:creator><comments>https://news.ycombinator.com/item?id=43661558</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43661558</guid></item><item><title><![CDATA[New comment by franticgecko3 in "How we centralized and structured error handling in Golang"]]></title><description><![CDATA[
<p>I'm worried readers of this article will be horrified and believe this kind of DIY error handling is necessary in Go.<p>The author has attempted to fix their unidiomatic error handling with an even more unidiomatic error framework.<p>New Go users: most of the time returning an error without checking its value or adding extra context is the right thing to do</p>
]]></description><pubDate>Wed, 18 Dec 2024 08:09:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=42448862</link><dc:creator>franticgecko3</dc:creator><comments>https://news.ycombinator.com/item?id=42448862</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42448862</guid></item></channel></rss>