<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: ephaeton</title><link>https://news.ycombinator.com/user?id=ephaeton</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 10 Jun 2026 08:49:29 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=ephaeton" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by ephaeton in "IPv6 Adoption in 2026"]]></title><description><![CDATA[
<p>having less addresses than humans is a feature that gets broken by IPv6. IMO, there ought to be less globally valid IPv4 addresses (say, a kilo less or so, maybe even a mega. We probably could even do with a giga less if you're willing to do continent/major compass routing first).<p>IPv6 is a bit of a surveillance backbone. First you need an ID space that is big enough to give everybody a (or many) unique tags. The rest follows. If identity clashes are too costly, the identifier ceases being a useful tracking tool. If your network is based on an ID space that can satisfy your tracking needs already, how nice is that?<p>In the past thirty years, I have not encountered a use-case where I thought, Oh, I wish I had one (or a million, billion, or whatever) IPv6 addresses available here! But then again, I haven't developed software for bad actors.</p>
]]></description><pubDate>Sat, 21 Feb 2026 13:06:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47100476</link><dc:creator>ephaeton</dc:creator><comments>https://news.ycombinator.com/item?id=47100476</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47100476</guid></item><item><title><![CDATA[New comment by ephaeton in "GNU Guix 1.5.0 Released"]]></title><description><![CDATA[
<p>time to try guix again!
Let's see ... hey, let's install inside an arch nspawn on arch.
Oh no, builds won't complete. Can't mount a proc directory.
Doesn't matter if root or not, with or without systemd-nsresourced, etc, spawn ran as root or not, or ..<p>Fine, let's give it a shot in a qemu: doesn't work. After eons it just .. fails. Some HTTP timeout.<p>Ok, ok, let's install the thing on my box. I didn't want to but let's give this a try .. install, try and install the first package ... whoa, that computing my solution is taking forever, my oh my ... oh it does something!<p>```
In ice-9/boot-9.scm:                                                                                                                                                                                                                            
  1685:16  1 (raise-exception _ #:continuable? _)                                                                                                                                                                                               
  1685:16  0 (raise-exception _ #:continuable? _)<p>ice-9/boot-9.scm:1685:16: In procedure raise-exception:
In procedure struct-vtable: Wrong type argument in position 1 (expecting struct): #f
```<p>Wow, same experience as the last three times. Sink time into making sure I'm up to date with concepts, ideas, implementation details, read the docco, try the simplest things and ... fail.<p>Obviously this is not the default experience of you all. But it doesn't seem to be for me :'(</p>
]]></description><pubDate>Mon, 26 Jan 2026 14:27:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=46766036</link><dc:creator>ephaeton</dc:creator><comments>https://news.ycombinator.com/item?id=46766036</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46766036</guid></item><item><title><![CDATA[New comment by ephaeton in "Stunnel"]]></title><description><![CDATA[
<p>same here. This thing is gold for "80% solutions" in that respect. It's easier to sanely integrate with legacy transport protocols than trying to update the legacy code base to implement mutual trust the harder, more direct and more error-prone way, IMO.</p>
]]></description><pubDate>Fri, 23 Jan 2026 10:30:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=46730812</link><dc:creator>ephaeton</dc:creator><comments>https://news.ycombinator.com/item?id=46730812</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46730812</guid></item><item><title><![CDATA[New comment by ephaeton in "Disable AI in Firefox"]]></title><description><![CDATA[
<p>To my surprise, in Librewolf this was also enabled. To how much effect, I wouldn't know (I hadn't noticed any shenanigans, then again, I just updated my librewolf and don't know if that brought it in).</p>
]]></description><pubDate>Fri, 24 Oct 2025 17:25:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=45696909</link><dc:creator>ephaeton</dc:creator><comments>https://news.ycombinator.com/item?id=45696909</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45696909</guid></item><item><title><![CDATA[New comment by ephaeton in "Show HN: Infinite Hagakure"]]></title><description><![CDATA[
<p>Do I read slowly if this is scrolling too fast for me? Oooph. 
"If this scrolls too fast for you, you're getting old!", hehe</p>
]]></description><pubDate>Thu, 22 May 2025 15:34:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=44063088</link><dc:creator>ephaeton</dc:creator><comments>https://news.ycombinator.com/item?id=44063088</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44063088</guid></item><item><title><![CDATA[New comment by ephaeton in "Things Zig comptime won't do"]]></title><description><![CDATA[
<p>at "build time", the default language's build tool, a zig program, can reach anywhere and everywhere. To build a zig project, you'd use a zig program to create dependencies and invoke the compiler, cache the results, create output binaries, link them, etc.<p>Distinguishing between `comptime` and `build time` is a distinction from the ivory tower. 'zig build' can happily reach anywhere, and generate anything.</p>
]]></description><pubDate>Mon, 21 Apr 2025 11:05:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=43750534</link><dc:creator>ephaeton</dc:creator><comments>https://news.ycombinator.com/item?id=43750534</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43750534</guid></item><item><title><![CDATA[New comment by ephaeton in "Things Zig comptime won't do"]]></title><description><![CDATA[
<p>I feel that's such a red herring.<p>You can @setEvalBranchQuota essentially as big as you want, @embedFile an XML file, comptime parse it and generate types based on that (BTDT). You can slow down compilation as much as you want to already. Unrestricting the expressiveness of comptime has as much to do with compile times, as much as the restricted amount, and perceived entanglement of zig build and build.zig has to do with compile times.<p>The knife about unrestricted / restricted comptime cuts both ways. Have you considered stopping using comptime and generate strings for cachable consumption of portable zig code for all the currently supported comptime use-cases right now? Why wouldn't you? What is it that you feel is more apt to be done at comptime? Can you accept that others see other use-cases that don't align with andrewrk's (current) vision? If I need to update a slow generation at 'project buildtime' your 'compilation speed' argument tanks as well. It's the problem space that dictates the minimal/optimal solution, not the programming language designer's headspace.</p>
]]></description><pubDate>Mon, 21 Apr 2025 11:02:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=43750503</link><dc:creator>ephaeton</dc:creator><comments>https://news.ycombinator.com/item?id=43750503</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43750503</guid></item><item><title><![CDATA[New comment by ephaeton in "Things Zig comptime won't do"]]></title><description><![CDATA[
<p>> Personally, I find the idea that a compiler might be able to reach outside itself completely terrifying (Access the network or a database? Are you nuts?).<p>What is "itself" here, please? Access a static 'external' source? Access a dynamically generated 'external' source? If that file is generated in the build system / build process as derived information, would you put it under version control? If not, are you as nuts as I am?<p>Some processes require sharp tools, and you can't always be afraid to handle one. If all you have is a blunt tool, well, you know how the saying goes for C++.<p>> However, what the compiler gets and generates should be completely deterministic.<p>The zig community treats 'zig build' as "the compile step", ergo what "the compiler" gets ultimately is decided "at compile, er, zig build time". What the compiler gets, i.e., what zig build generates within the same user-facing process, is not deterministic.<p>Why would it be. Generating an interface is something that you want to be part of a streamline process. Appeasing C interfaces will be moving to a zig build-time multi-step process involving zig's 'translate-c' whose output you then import into your zig file. You think anybody is going to treat that output differently than from what you'd get from doing this invisibly at comptime (which, btw, is what practically happens now)?</p>
]]></description><pubDate>Sun, 20 Apr 2025 21:09:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=43746553</link><dc:creator>ephaeton</dc:creator><comments>https://news.ycombinator.com/item?id=43746553</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43746553</guid></item><item><title><![CDATA[New comment by ephaeton in "Things Zig comptime won't do"]]></title><description><![CDATA[
<p>zig's C compat is being lowered from 'comptime' equivalent status to 'zig build'-time equivalent status. When you'll need to put 'extern "C"' annotations on any import/export to C, it'll have gone full-circle to C++ C compat, and thus be none the wiser.<p>andrewrk's wording towards C and its main ecosystem (POSIX) is very hostile, if that is something you'd like to go by.</p>
]]></description><pubDate>Sun, 20 Apr 2025 18:58:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=43745750</link><dc:creator>ephaeton</dc:creator><comments>https://news.ycombinator.com/item?id=43745750</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43745750</guid></item><item><title><![CDATA[New comment by ephaeton in "Things Zig comptime won't do"]]></title><description><![CDATA[
<p>well, the lisp family of languages surely can do all of that, and more. Check out, for example, clojure's version of zig's dropped 'async'. It's a macro.</p>
]]></description><pubDate>Sun, 20 Apr 2025 18:50:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=43745688</link><dc:creator>ephaeton</dc:creator><comments>https://news.ycombinator.com/item?id=43745688</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43745688</guid></item><item><title><![CDATA[New comment by ephaeton in "Things Zig comptime won't do"]]></title><description><![CDATA[
<p>zig's comptime has some (objectively: debatable? subjectively: definite) shortcomings that the zig community then overcomes with zig build to generate code-as-strings to be lateron @imported and compiled.<p>Practically, "zig build"-time-eval. As such there's another 'comptime' stage with more freedom, unlimited run-time (no @setEvalBranchQuota), can do IO (DB schema, network lookups, etc.) but you lose the freedom to generate zig types as values in the current compilation; instead of that you of course have the freedom to reduce->project from target compiled semantic back to input syntax down to string to enter your future compilation context again.<p>Back in the day, where I had to glue perl and tcl via C at one point in time, passing strings for perl generated through tcl is what this whole thing reminds me of. Sure it works. I'm not happy about it. There's _another_ "macro" stage that you can't even see in your code (it's just @import).<p>The zig community bewilders me at times with their love for lashing themselves. The sort of discussions which new sort of self-harm they'd love to enforce on everybody is borderline disturbing.</p>
]]></description><pubDate>Sun, 20 Apr 2025 18:47:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=43745670</link><dc:creator>ephaeton</dc:creator><comments>https://news.ycombinator.com/item?id=43745670</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43745670</guid></item><item><title><![CDATA[New comment by ephaeton in "NetBSD on a JavaStation"]]></title><description><![CDATA[
<p>yeah, machines of different endianness, and, ideally, different alignment requirements. Always wanted to get an alpha, as well. Had hpux / hp300 ?, sparc, sparc64, 386, x86_64, maybe another arch. This was in 2005'ish, mind you. Idea was to write code that would portably work on linux and netbsd on at least said architectures, ideally more.</p>
]]></description><pubDate>Wed, 05 Mar 2025 13:35:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=43266191</link><dc:creator>ephaeton</dc:creator><comments>https://news.ycombinator.com/item?id=43266191</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43266191</guid></item><item><title><![CDATA[New comment by ephaeton in "NetBSD on a JavaStation"]]></title><description><![CDATA[
<p>I dearly remember setting up NetBSD on various sparc stations and ultra sparcs (a II, and an Ultra 60) and running them alongside a set of various other RISCs and CISCs of late 90s. Based on the paper 'attack of the lemmings' (IIRC) by matthias something (IIRC), I wanted to create a 'how to portably code C' course that would run with just the basic netbsd tools - compiler, editor, test system, make, ... - write once, commit, have the whole weird-ass machine park response to the unit test for a given exercise. Sadly never made it happen fully.
Still - NetBSD! fun times, great documentation and such a knowledgeable crowd! Enjoy the voyage!</p>
]]></description><pubDate>Wed, 05 Mar 2025 06:59:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=43263702</link><dc:creator>ephaeton</dc:creator><comments>https://news.ycombinator.com/item?id=43263702</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43263702</guid></item><item><title><![CDATA[New comment by ephaeton in "OpenBSD Innovations"]]></title><description><![CDATA[
<p>I suppose: Sometimes things work fine with the implicit default value that you end up with. So this will cause problems when you forget to initialize values to expected sane defaults.</p>
]]></description><pubDate>Sun, 23 Feb 2025 00:12:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=43144741</link><dc:creator>ephaeton</dc:creator><comments>https://news.ycombinator.com/item?id=43144741</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43144741</guid></item><item><title><![CDATA[New comment by ephaeton in "21st Century C++"]]></title><description><![CDATA[
<p>To me, Rust feels as if it had sprung from the same mind. Or in the case of C++, set of minds. Who have a common mindset. I sadly don't critize rust's general design choices constructively. It's more of a public realization, '"C++ mind-set compatible" might just be the quality to describe the specific aroma I dislike in this melange".<p>I'm fine with robust languages with very strong type systems, I think. Are Haskell, ML, F#, Scala in this set? Robust and very strongly typed enough? I don't dislike their taste, even though I think I've had enough scala, specifically, for this life time. If these aren't in the set you're thinking of, I'd like to know what makes up that set for you.</p>
]]></description><pubDate>Sun, 09 Feb 2025 19:05:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=42992772</link><dc:creator>ephaeton</dc:creator><comments>https://news.ycombinator.com/item?id=42992772</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42992772</guid></item><item><title><![CDATA[New comment by ephaeton in "21st Century C++"]]></title><description><![CDATA[
<p>I'm sharing sentiment.<p>C++ feels like a language of bean counters.<p>Rust feels like a language of bean counters.<p>A lot of C++ folks I know went over to rust.<p>They were happy with C++ and it was the best thing since sliced bread.<p>They are now happy with rust and it is the best thing since sliced bread.<p>To me, languages have a, let's call it 'taste' for the lack of better word off the top of my head. It's that combining quality that pg called 'hacker's languages', such as C, and lisp, for example.<p>C++ feels like a bureaucratic monster with manual double bookkeeping, byzanthine, baroque, up to outright weird and contradictory in places. Ever since rust was conceived, I gave it multiple shots to learn. When I was not thrown off by what I perceive as java-style annotations, i.e., something orthogonal to the language itself where no one seems to have bothered to come to a consensus to be able to express this from the language itself, its general feel reminds me of something a C++ embracer will feel comfortable in. I.e., in pg's words, not a hacker's language, paired with a crusade of personal enlightenment. What used to be OO and GoF now is memory safety as-implemented-by-rust (note: not by borrow checker, we could've had this with cyclone, for example, more than two decades ago).<p>I have, in my original comment, marked this as my personal opinion and feeling, as is the above. I'm not arguing. I love FP and the idea of having a systems language with FP concepts working out to memory safety and higher level expression sounds like the holy grail of yester-me. I'm disappointed I couldn't find my professional salvation in rust with how uneasy I feel within the language. It's as if a suit and tie was forced on me, or a hawaii shirt and shorts (depending on your preference, image it's the thing you wouldn't voluntarily wear).<p>Now, if other folks also mirror my observation of how the folks flock from C++ to rust, you bet they take their mindset and pedestal with them to stand on and preach off of. At least those I know do, only their sermon changed from C++ to rust, the quality of their dogma remained constant.</p>
]]></description><pubDate>Sun, 09 Feb 2025 16:44:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=42991749</link><dc:creator>ephaeton</dc:creator><comments>https://news.ycombinator.com/item?id=42991749</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42991749</guid></item><item><title><![CDATA[New comment by ephaeton in "21st Century C++"]]></title><description><![CDATA[
<p>loving he goes 'int main() { ...  }' and never returns an int from it. Even better: without extra error / warning flags the compiler will just eat this and generate some code from it, returning ... yeah. Your guess is probably better than mine.<p>If the uber-bean counter, herald of the language of bean counters demonstrate unwillingness to count beans, maybe the beans are better counted in another way.</p>
]]></description><pubDate>Sun, 09 Feb 2025 16:28:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=42991650</link><dc:creator>ephaeton</dc:creator><comments>https://news.ycombinator.com/item?id=42991650</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42991650</guid></item><item><title><![CDATA[New comment by ephaeton in "21st Century C++"]]></title><description><![CDATA[
<p>That explains very well why rust (to me) feels like C++ommitte-designed, thanks for that!</p>
]]></description><pubDate>Sun, 09 Feb 2025 16:14:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=42991546</link><dc:creator>ephaeton</dc:creator><comments>https://news.ycombinator.com/item?id=42991546</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42991546</guid></item><item><title><![CDATA[New comment by ephaeton in "Show HN: Race Timing with Integrated Replay"]]></title><description><![CDATA[
<p>Thanks for the feedback. Yeah there's fixed geometry due to time constraints. Glad you could make it work for you eventually!</p>
]]></description><pubDate>Tue, 21 Jan 2025 06:01:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=42777059</link><dc:creator>ephaeton</dc:creator><comments>https://news.ycombinator.com/item?id=42777059</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42777059</guid></item><item><title><![CDATA[Show HN: Race Timing with Integrated Replay]]></title><description><![CDATA[
<p>Instead of playing video and trying to display timing information next to it, how about we build a simulation based on timing data and become able to determine the state of the race at any given point in time based on the few 'radar blips' of sector loop passes we have?<p>This is that. It takes the video and timing material of a 24h race (The IMSA Weathertech Sportscar Championship ROLEX24 at Daytona 2024) - 4 videos hosted on YouTube and a big CSV of laptimes and reimagines how a race replay might look like.<p>It comes with a few non-standard visualizations, and a lot of possibilities for navigation, including navigation based on race events such as flag states, overtakes, pit stops etc.<p>It's a zig program based on raylib running in the browser thanks to emscripten, with a bit of js glue code to control the YouTube player. Ultimately, controlling replays is just one of the goal features of the tech stack. Live-Timing, Live-broadcast, and broadcast of sim-racing are other application areas where I see this being beneficial.<p>Race fans, Enjoy, I know I certainly do!</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42765560">https://news.ycombinator.com/item?id=42765560</a></p>
<p>Points: 25</p>
<p># Comments: 2</p>
]]></description><pubDate>Mon, 20 Jan 2025 06:24:11 +0000</pubDate><link>https://storytiming.racing</link><dc:creator>ephaeton</dc:creator><comments>https://news.ycombinator.com/item?id=42765560</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42765560</guid></item></channel></rss>