<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: codebje</title><link>https://news.ycombinator.com/user?id=codebje</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 11 Sep 2026 10:42:23 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=codebje" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by codebje in "Social media use on the rise among Australian under-16s after ban: data"]]></title><description><![CDATA[
<p>Source: Australian, with teenager.<p>1. It's not a ban on using social media, it's a requirement for age verification to create an account. This only limits usage on the few platforms that force an account to do anything.<p>2. The technical controls platforms implement are, unsurprisingly, generally quite weak. Kids are crafty enough to circumvent them, and share how freely.<p>3. Wannabe-influencer parents just create accounts for their kids, making the circumvention trivial.<p>4. There are no consequences for using a social media account while under 16.<p>I think the final point is the main one, though. By design there's no mechanism in place for the government to take any action if a kid gets onto social media, only if a platform fails to implement age checks that satisfy the legislation's criteria. So platforms all implemented tokenistic age checks. Platforms don't care, or need to care, if they get bypassed. The government doesn't care.<p>If I were a more suspicious man I'd say that either the point was never to reduce the use of social media by kids in the first place, or it was well intentioned but railroaded into toothlessness by lobbyists.</p>
]]></description><pubDate>Wed, 26 Aug 2026 12:24:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=49447753</link><dc:creator>codebje</dc:creator><comments>https://news.ycombinator.com/item?id=49447753</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49447753</guid></item><item><title><![CDATA[New comment by codebje in "New Mac mini, featuring M6 and M5 Pro"]]></title><description><![CDATA[
<p>Chinese mini PCs are also affected: they're shipping with less RAM, at higher prices, or both.</p>
]]></description><pubDate>Wed, 26 Aug 2026 00:28:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=49442650</link><dc:creator>codebje</dc:creator><comments>https://news.ycombinator.com/item?id=49442650</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49442650</guid></item><item><title><![CDATA[New comment by codebje in "Anthropic's best AI model struggles to attract users as cheaper tools thrive"]]></title><description><![CDATA[
<p>I pay for my tokens for my own projects, at least when the ones Google seems willing to keep throwing at me for free don't cut it. I'd think that's not too uncommon, especially here where there's likely a high ratio of hobby coders (whether also professionals or otherwise).</p>
]]></description><pubDate>Mon, 24 Aug 2026 01:13:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=49414211</link><dc:creator>codebje</dc:creator><comments>https://news.ycombinator.com/item?id=49414211</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49414211</guid></item><item><title><![CDATA[New comment by codebje in "Quake Shareware, a CD-ROM just a little too full"]]></title><description><![CDATA[
<p>If the phone support issued the decrypt code, you could just replay that same code for every CD stamped from the same master.<p>If phone support issued an encrypted decrypt code that could only be used with your challenge code to decrypt the decrypt code, replay wouldn't be as trivial.<p>Every CD is identical, so no matter how iD went about this there's only ever one decryption key (per title, I assume) and those keys must either have been encoded in iD support's response, or already stored on the CD. TestDrive sold iD on the notion that the process was too hard for hacker groups to reverse engineer, and it wasn't.</p>
]]></description><pubDate>Tue, 18 Aug 2026 01:33:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=49340057</link><dc:creator>codebje</dc:creator><comments>https://news.ycombinator.com/item?id=49340057</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49340057</guid></item><item><title><![CDATA[New comment by codebje in "A third world engineer responds to “RISC-V: They should have known better”"]]></title><description><![CDATA[
<p>Maybe. There's less wiggle room though. You can't make a clone of a WCH, ESP32, GD32V, or RP2040 at a low enough price point to really profit from the gap.<p>If Quintauris successfully makes a RISC-V range for automotive use, there'd probably be margin to clone those and sell at a profit, but skirting automotive certification regulations is a high-risk game that (hopefully!) doesn't have many buyers.<p>If they make an IoT line, again, there might be margin in it, but you'd be trying to fit in between buyers willing and able to engage with Chinese sellers but for some reason unwilling or unable to engage with existing Chinese sellers of existing IoT RISC-V parts. Quintauris is a very, very long way away from being a "household name" along the lines of STM32 or FTDI.</p>
]]></description><pubDate>Mon, 17 Aug 2026 01:07:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=49325497</link><dc:creator>codebje</dc:creator><comments>https://news.ycombinator.com/item?id=49325497</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49325497</guid></item><item><title><![CDATA[New comment by codebje in "Donkey.bas is 45 Years Old – 131 line of Glory"]]></title><description><![CDATA[
<p>You used to be able to do surprising things with those old speakers using a timer interrupt: on an IBM XT it was possible to get 8kHz quality out of it, enough to make 4-channel MOD playback sound about as good as hearing it over a phone.<p>But your more typical use case was to play a single tone for some significant fraction of a second.</p>
]]></description><pubDate>Fri, 14 Aug 2026 02:09:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=49294023</link><dc:creator>codebje</dc:creator><comments>https://news.ycombinator.com/item?id=49294023</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49294023</guid></item><item><title><![CDATA[New comment by codebje in "Don't stop early: Case-folding source code at memory speed"]]></title><description><![CDATA[
<p>Codebases written by native English speakers are almost exclusively ASCII, but codebases written by speakers of languages other than English frequently have non-ASCII content, even if only in the comments, but languages which support it often wind up with non-ASCII identifiers, too.<p>I do not believe that emoji like crosses and ticks are particularly common at all, for any language, but LLMs seem to have picked up heavy use of them from somewhere and inserted them into code (and everything else) they generate.<p>LLM training sets will very likely include the massive corpos of non-English open source code from sites like Gitee, but would be unlikely to generate responses heavily influenced by them unless you've done specific things to make that happen - prompt in Chinese, try to make use of a library only available with Chinese source and/or documentation, perhaps. I've not seen it happen, but I am a light user of LLMs.</p>
]]></description><pubDate>Tue, 04 Aug 2026 23:12:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=49176563</link><dc:creator>codebje</dc:creator><comments>https://news.ycombinator.com/item?id=49176563</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49176563</guid></item><item><title><![CDATA[New comment by codebje in "Show HN: Fuse – statically typed functional programming language"]]></title><description><![CDATA[
<p>Thanks for the link to SPJ's notes, I'll read that tomorrow.<p>Equivalence of terms is an efficient tool for verification; I suspect that isn't really in the set of goals for Fuse, though.</p>
]]></description><pubDate>Mon, 03 Aug 2026 12:30:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=49154879</link><dc:creator>codebje</dc:creator><comments>https://news.ycombinator.com/item?id=49154879</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49154879</guid></item><item><title><![CDATA[New comment by codebje in "CP/M-386 – CP/M for 386 protected mode, derived from CP/M‑68K"]]></title><description><![CDATA[
<p>Also, it was super common practice to just go direct to undocumented internals. You didn't have a clean API to duplicate, you had all the untamed glory of a CPU with no MMU to deal with, and all the programs that did shonky things because they worked.</p>
]]></description><pubDate>Mon, 03 Aug 2026 07:13:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=49152256</link><dc:creator>codebje</dc:creator><comments>https://news.ycombinator.com/item?id=49152256</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49152256</guid></item><item><title><![CDATA[New comment by codebje in "CP/M-386 – CP/M for 386 protected mode, derived from CP/M‑68K"]]></title><description><![CDATA[
<p>CP/M-86 was definitely a thing, but CP/M-386 was not. By the time the 386 existed, DRI had dropped the CP/M name in favour of Concurrent DOS - though they had MS-DOS compatibility in Concurrent CP/M - and, as you say, eventually renamed it to DR-DOS.<p>Much as I loved DR-DOS, it did have occasional compatibility hiccups.</p>
]]></description><pubDate>Mon, 03 Aug 2026 02:41:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=49150632</link><dc:creator>codebje</dc:creator><comments>https://news.ycombinator.com/item?id=49150632</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49150632</guid></item><item><title><![CDATA[New comment by codebje in "Show HN: Fuse – statically typed functional programming language"]]></title><description><![CDATA[
<p>Can you expand on your understanding of GRIN doing parts of supercompilation? As I understand it, GRIN doesn't do any supercompilation; it's a structural transformation optimiser built for functional languages, analyzing program flow across function calls for the whole program at once.<p>As I understand supercompilation, it's an extension of partial evaluation - optimisation is done on a graph of possible execution traces. The downsides should be obvious: execution traces rapidly grow massive, compilation resources grow superlinearly, and there are many cases in which the result is worse than the original.<p>What value would Fuse get from equivalence of terms, do you think?</p>
]]></description><pubDate>Mon, 03 Aug 2026 02:01:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=49150392</link><dc:creator>codebje</dc:creator><comments>https://news.ycombinator.com/item?id=49150392</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49150392</guid></item><item><title><![CDATA[New comment by codebje in "Show HN: Fuse – statically typed functional programming language"]]></title><description><![CDATA[
<p>It's nice to see a GRIN backend in the wild!<p>It looks like a tidy little functional language - a small, easily grasped syntax surface and generally clear semantics. That you've got it to the point that it can compile and run proper programs is a great achievement for a solo dev project!<p>The string type in the standard library isn't Unicode-aware, might be worth just noting that. Unicode support can be a big undertaking, but considering whether you'll add it later or not might affect your library design now.<p>I don't really understand why you have an IO monad. The language isn't pure - `.exec()` means any function can perform IO actions no matter its type signature - so what's IO really for?<p>Do `impl` additions export? What happens when two libraries add the same function name with different signatures (or just bodies!) to a type's `impl` ?<p>Is currying automatic? It doesn't seem to be, but, eg, the `sum(x: i32, y: i32)` function theoretically could be called as `sum(5)` to create a closure, but this isn't a documented feature if so.<p>The website's font is using ligatures, not unicode operator symbols - I'd personally find it much clearer to use a non-ligature font to show what's really there, but that's immaterial to the language.</p>
]]></description><pubDate>Sun, 02 Aug 2026 13:18:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=49144425</link><dc:creator>codebje</dc:creator><comments>https://news.ycombinator.com/item?id=49144425</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49144425</guid></item><item><title><![CDATA[New comment by codebje in "We have proof automation now"]]></title><description><![CDATA[
<p>IMO the biggest issue was always <i>not knowing what correct is</i> in the first place. The vast majority of software we use, the stuff that's riddled with errors, has those errors largely because what it's supposed to do is vague and never, ever deals with edge cases. You can't formally verify your application works correctly under transient network error conditions if you never thought about what your application should do under those conditions.<p>Perhaps that's the same thing as what you're saying, though: we don't specify these things in detail because it's expensive to spend that much time thinking through it all, when users are largely trained to just accept crashes, glitches, inconsistencies, and the occasional sprinkle of data loss.</p>
]]></description><pubDate>Mon, 27 Jul 2026 00:57:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=49063977</link><dc:creator>codebje</dc:creator><comments>https://news.ycombinator.com/item?id=49063977</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49063977</guid></item><item><title><![CDATA[New comment by codebje in "Bonsai 27B: A 27B-Class model that runs on a phone"]]></title><description><![CDATA[
<p>If it can give me the recipe without 14 pages of backstory about how Nonna used to make it, it'd be satisfying a real need.</p>
]]></description><pubDate>Tue, 14 Jul 2026 23:25:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=48914262</link><dc:creator>codebje</dc:creator><comments>https://news.ycombinator.com/item?id=48914262</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48914262</guid></item><item><title><![CDATA[New comment by codebje in "What can you confidently guarantee about your software?"]]></title><description><![CDATA[
<p>Formal verification should definitely be about the software you're verifying exhibiting the properties you desire under the conditions you specify.<p>Formal verification at the undergraduate level, if you even see it, would be about running software on a spherical cow, though.</p>
]]></description><pubDate>Wed, 01 Jul 2026 23:05:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=48754303</link><dc:creator>codebje</dc:creator><comments>https://news.ycombinator.com/item?id=48754303</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48754303</guid></item><item><title><![CDATA[New comment by codebje in "What can you confidently guarantee about your software?"]]></title><description><![CDATA[
<p>You shouldn't have been able to formally verify the algorithm fails to protect the critical section. Wrapping ticket numbers can lead to starvation (literally, if we follow the baker analogy), but the algorithm protects the critical section so long as thread IDs are unique.<p>The sort of environments in which this is a problem would be extremely uncommon. For a start, you need continuous contention. If you ever get a break in contention you no longer have starvation, and you 'reset' the ticket number monotonicity - to zero, if you actually take a maximum of entering thread ticket numbers instead of a cheap global counter.<p>If you do actually have an environment in which you expect to have continuous contention over a critical section, some quick napkin math can tell you if it's something to worry about based on the running time of your critical section. If it's over, say, 10ms, you've got a few years of runtime before it's a problem. If it's under 1ms, maybe you want to use 64-bit arithmetic for your ticket number so you can run your system until long after the human species is extinct.<p>You probably got a 'B' because you didn't give the professor the answer they expected, though, not because of any technical reasons.</p>
]]></description><pubDate>Tue, 30 Jun 2026 01:25:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=48727508</link><dc:creator>codebje</dc:creator><comments>https://news.ycombinator.com/item?id=48727508</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48727508</guid></item><item><title><![CDATA[New comment by codebje in "Cloudflare launched self-managed OAuth for all"]]></title><description><![CDATA[
<p>How different is this to, eg, the Google developer program, in which I can create a new OAuth client for Google users?</p>
]]></description><pubDate>Thu, 25 Jun 2026 03:38:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=48668562</link><dc:creator>codebje</dc:creator><comments>https://news.ycombinator.com/item?id=48668562</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48668562</guid></item><item><title><![CDATA[New comment by codebje in "Vulnerability reports are not special anymore"]]></title><description><![CDATA[
<p>There's lots of things to show for the research!<p>Part of what the research shows is that correctness-by-proof has a cost in developer effort.<p>If there really is a vulnerability-apocalypse due to AI, and it's not just a different flavour of AI hype, the cost of having insecure software will rise to the point that the cost of dealing with insecure or incorrect code at time of creation becomes less than the cost of ignoring it until it blows up.<p>I doubt it'll rise so much that we'll want to face the cost of behaviour proofs for much code at all, but it's quite possible it'll rise enough that we want to do things like prove that indices are in bounds, at compile time, so vector accesses can skip checks without compromising safety.</p>
]]></description><pubDate>Wed, 24 Jun 2026 04:12:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=48655001</link><dc:creator>codebje</dc:creator><comments>https://news.ycombinator.com/item?id=48655001</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48655001</guid></item><item><title><![CDATA[New comment by codebje in "Steam Machine launches today"]]></title><description><![CDATA[
<p>They're using a custom fork of FEX (<a href="https://fex-emu.com/" rel="nofollow">https://fex-emu.com/</a>).<p>CodeWeavers, AIUI, have a plan - and their plan may also be using FEX as a basis.</p>
]]></description><pubDate>Wed, 24 Jun 2026 00:26:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=48653554</link><dc:creator>codebje</dc:creator><comments>https://news.ycombinator.com/item?id=48653554</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48653554</guid></item><item><title><![CDATA[New comment by codebje in "Steam Machine launches today"]]></title><description><![CDATA[
<p>Minor nit: a steam machine is running <i>Proton</i>. Which is wine, yes, but wine that Valve supports, wine with patches and changes (afaik, most of which get upstreamed to wine). On a Mac you're probably going to use CrossOver to package up wine.<p>Wine is wine, yes, but CodeWeavers is not Valve. Mac gaming is niche. The budgets involved are incomparable. Expect it to take weeks to months for hotfixes applied in days to Proton to filter through to CrossOver.<p>(This is my lived experience: HD2 patch 28th April broke wine compatibility, Proton had a hotfix in a day or two, CrossOver had a preview that partially fixed it May 11th and a release that fully fixed it June 9th; it was unplayable from April 28th to June 9th, longer if you count the stuttering issue that it suffered since March.)<p>The future of gaming on a Mac is also made less certain by the upcoming obsolescence of Rosetta. AFAICT Apple won't just pull it out completely, but they're clearly uninterested in supporting it long term, so over time the experience of trying to get x86 games to run on ARM Macs will worsen.<p>(I think I'll aim for a DIY PC build in 2027 in the hopes memory prices decline by then, but it's a faint hope!)</p>
]]></description><pubDate>Tue, 23 Jun 2026 02:19:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=48639373</link><dc:creator>codebje</dc:creator><comments>https://news.ycombinator.com/item?id=48639373</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48639373</guid></item></channel></rss>