<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: gue5t</title><link>https://news.ycombinator.com/user?id=gue5t</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 13 Apr 2026 12:43:58 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=gue5t" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by gue5t in "Clicks Communicator"]]></title><description><![CDATA[
<p>It's a MediaTek SoC, so the Linux experience will be Bad to say the least. This thing will be running the oldest kernel possible with all kind of nasty vendor hacks.</p>
]]></description><pubDate>Fri, 02 Jan 2026 18:04:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=46467526</link><dc:creator>gue5t</dc:creator><comments>https://news.ycombinator.com/item?id=46467526</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46467526</guid></item><item><title><![CDATA[New comment by gue5t in "Programming languages should have a tree traversal primitive"]]></title><description><![CDATA[
<p>It seems like this is grasping for languages to expose recursors[1] or induction principles. These factor out the structure of an inductive type (e.g. trees) and leave the caller to simply plug in the behavior to perform for each possible situation that might arise during traversal.<p>[1]: <a href="https://lean-lang.org/doc/reference/latest//The-Type-System/Inductive-Types/#recursors" rel="nofollow">https://lean-lang.org/doc/reference/latest//The-Type-System/...</a></p>
]]></description><pubDate>Tue, 29 Apr 2025 21:27:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=43838221</link><dc:creator>gue5t</dc:creator><comments>https://news.ycombinator.com/item?id=43838221</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43838221</guid></item><item><title><![CDATA[New comment by gue5t in "The Gruen Transfer is consuming the internet"]]></title><description><![CDATA[
<p>The Gruen transfer seems to make use of confusion or disorientation upon entering a new physical space. On the other hand, the phenomena described here with data search implementations (e.g. a feed) intentionally returning things that were not asked for does not rely on user confusion. The user already made a perfectly legible request by performing the query (e.g. opening the feed). Ignoring or misconstruing this request is gaslighting. The site tries to pretend that the user asked for something different than they actually did and to sneak this subterfuge past them. It's rampantly unethical. The purported justification I've heard is that fuzzy search can find results in cases when exact matching does not, but taking the control of fuzzy vs. strict search out of the user's hands is unethical because it is motivated by the opportunity to introduce mistakes and pervert intention.<p>Sites like Etsy implement this dark pattern in ways intentionally intended to make CSS-based blocking of injected sponsored products difficult to block. The arms race between user agents and corporate manipulation continues, and corporate web designers will use every tool available to subject users nonconsensually to their preferred experience. This is why I consider it a net loss for users to add functionality to the "web platform". The corporation is your enemy and they're well-funded.</p>
]]></description><pubDate>Wed, 23 Apr 2025 15:00:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=43772993</link><dc:creator>gue5t</dc:creator><comments>https://news.ycombinator.com/item?id=43772993</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43772993</guid></item><item><title><![CDATA[New comment by gue5t in "Distributed systems programming has stalled"]]></title><description><![CDATA[
<p>Personally I've been inspired by nnethercote's logs (<a href="https://nnethercote.github.io/" rel="nofollow">https://nnethercote.github.io/</a>) of incremental single-digit percentage performance improvements to rustc over the past several years. The serial portion of compilers is still quite significant and efforts to e.g. parallelize the entire rustc frontend are heroic slogs that have run into subtle semantic problems (deadlocks and races) that have made it very hard to land them. Not to disparage those working on that approach, but it is really difficult! Meanwhile, dozens of small speedups accumulate to really significant performance improvements over time.</p>
]]></description><pubDate>Fri, 28 Feb 2025 18:17:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=43208672</link><dc:creator>gue5t</dc:creator><comments>https://news.ycombinator.com/item?id=43208672</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43208672</guid></item><item><title><![CDATA[New comment by gue5t in "IBM completes acquisition of HashiCorp"]]></title><description><![CDATA[
<p>I concur. I looked pretty hard into adapting Serf as part of a custom service mesh and it had some bonkers designs such as a big "everything" interface used just to break a cyclic module dependency (perhaps between the CLI and the library? I don't recall exactly), as well as lots of stuff that only made sense if you wanted "something to run Consul on top of" rather than a carefully-designed tool of its own with limited but cohesive scope. It seemed like a lot of brittle "just-so" code, which to some extent is probably due to how Go discourages abstraction, but really rubbed me the wrong way.</p>
]]></description><pubDate>Fri, 28 Feb 2025 00:43:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=43200325</link><dc:creator>gue5t</dc:creator><comments>https://news.ycombinator.com/item?id=43200325</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43200325</guid></item><item><title><![CDATA[New comment by gue5t in "An Overview of the Starlark Language"]]></title><description><![CDATA[
<p>Having done some nontrivial Bazel/Starlark hacking, I completely agree that lightweight static types would be a good usability improvement. But I want to point out that Starlark is actually not Turing complete, which is imo one of the more interesting characteristics it has. Recursion is forbidden (<a href="https://github.com/bazelbuild/starlark/blob/master/spec.md#functions">https://github.com/bazelbuild/starlark/blob/master/spec.md#f...</a>) and loops must be structural; there is no while loop or other unbounded iteration construct. Starlark is one of the more capable and mainstream non-Turing-complete languages out there, and doesn't resemble the other common ones which mostly show up in theorem provers. On the one hand I think the logic in a build system that needs to reason about incremental builds absolutely should be guaranteed to terminate, but in some particularly painful situations I've had to resort to iteration over smart-contract-style "gas" parameters.<p>EDIT: as a parting shot, dhall is another non-Turing-complete language in common usage, but its claim to fame is that it gets used in places that arguably shouldn't be doing any computation at all.</p>
]]></description><pubDate>Thu, 06 Jun 2024 14:14:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=40597656</link><dc:creator>gue5t</dc:creator><comments>https://news.ycombinator.com/item?id=40597656</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40597656</guid></item><item><title><![CDATA[New comment by gue5t in "On clock faces, 4 is Expressed as IIII, not IV"]]></title><description><![CDATA[
<p>This is one of the ways you can tell if an INTERCAL implementation is worth its salt.</p>
]]></description><pubDate>Sat, 16 Mar 2024 02:37:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=39722856</link><dc:creator>gue5t</dc:creator><comments>https://news.ycombinator.com/item?id=39722856</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39722856</guid></item><item><title><![CDATA[New comment by gue5t in "The hunt for the missing data type"]]></title><description><![CDATA[
<p>These types don't seem to escape the scope of what can be described with algebraic types, but the relationships between them seem like you're looking for a notion of type-level functions: subset ≡ X => 2^X, partial ≡ A×B => (A+1)×partial(B)</p>
]]></description><pubDate>Mon, 04 Mar 2024 18:37:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=39594150</link><dc:creator>gue5t</dc:creator><comments>https://news.ycombinator.com/item?id=39594150</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39594150</guid></item><item><title><![CDATA[New comment by gue5t in "The hunt for the missing data type"]]></title><description><![CDATA[
<p>One interesting perspective is to view the sequence of lists -> trees -> DAGs -> general graphs as a loosening of restrictions:<p>- list nodes may have one child<p>- tree nodes may have multiple<p>- DAG nodes may have multiple parents though restricted by topological ordering<p>- graph nodes may have multiple parents from anywhere in the collection<p>Lists and trees can be fully captured by sum and product types, but extending this representation style to DAGs and graphs doesn't work--you either get inefficiency (for DAGs) and then infinite regress (for cyclic graphs) attempting to continue the "syntactic" style of representation, or you need to adopt an "indirect" representation based on identifiers or indices or hash consing.</p>
]]></description><pubDate>Mon, 04 Mar 2024 17:26:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=39593086</link><dc:creator>gue5t</dc:creator><comments>https://news.ycombinator.com/item?id=39593086</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39593086</guid></item><item><title><![CDATA[New comment by gue5t in "Should you be scared of Unix signals? (2016)"]]></title><description><![CDATA[
<p>There are a few ways to handle this design question ("what happens if something needs to interact with a process while it's blocked in a system call?") more or less sanely, and UNIX chooses the least sane one (making userspace deal with the complexity of system calls possibly doing part or none of the work that was requested). Other operating systems might fully transparently guarantee that the system call completes before the process is notified of said interaction, but this isn't compatible with IPC as "lightweight" (unbuffered and without backpressure) as signals.<p>The Right Thing is to make system call submission atomic and asynchronous, only waiting on completion by explicit choice, and remove signals entirely in favor of buffered message-passing IPC. This is basically the world we're approaching with io_uring and signalfd, except for ugly interaction with coalescing and signal dispositions (see <a href="https://ldpreload.com/blog/signalfd-is-useless" rel="nofollow noreferrer">https://ldpreload.com/blog/signalfd-is-useless</a>), and the fact that many syscalls still can't be performed through io_uring.<p>If UNIX had a better API for process management, people wouldn't see signals as necessary, but that's its own can of worms with its own Linux-specific partial fix (pidfd) and genre of gripe article (e.g. <a href="https://news.ycombinator.com/item?id=35264487">https://news.ycombinator.com/item?id=35264487</a>).</p>
]]></description><pubDate>Mon, 16 Oct 2023 16:55:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=37902715</link><dc:creator>gue5t</dc:creator><comments>https://news.ycombinator.com/item?id=37902715</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37902715</guid></item><item><title><![CDATA[New comment by gue5t in "Pine64 should re-evaluate their community priorities"]]></title><description><![CDATA[
<p>My experience attempting to contribute to Manjaro (fixes to packages including some without with which packages simply hung when being built interactively, as they depended on stdin being EOF as it is in their CI environment) was met with not just a cold shoulder but active offense and hostility. They don't accept pull requests (in fact, their gitlab configuration doesn't even let one fork), nor is there a mailing list for patches. There simply is no contribution workflow, and this isn't even clearly documented (it's fine to be a "cathedral", but you should be up-front about it).</p>
]]></description><pubDate>Thu, 20 Jan 2022 15:20:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=30009937</link><dc:creator>gue5t</dc:creator><comments>https://news.ycombinator.com/item?id=30009937</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30009937</guid></item><item><title><![CDATA[New comment by gue5t in "Pro1 X: A Linux smartphone with slideout keyboard"]]></title><description><![CDATA[
<p>"LINEAGEOS, UBUNTU TOUCH or ANDROID" is a euphemism for "we did not do the important, hard work of upstreaming drivers".<p>This phone might be perfectly nice, but it's a "Linux phone" in a marketing sense only; nobody has properly ported Linux to it, and you'll be stuck with an ancient kernel full of proprietary userspace blobs.<p>I'd love to hear otherwise, but I've seen this pattern repeat a number of times (the Gemini PDA and successors, various "secure" phones, essentially all the Ubuntu Touch devices <a href="https://phone.docs.ubuntu.com/en/devices/devices" rel="nofollow">https://phone.docs.ubuntu.com/en/devices/devices</a>, etc.) and those who do put in the critical driver work are in-touch enough to know it's worth being explicit about upfront.</p>
]]></description><pubDate>Thu, 01 Apr 2021 12:26:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=26659562</link><dc:creator>gue5t</dc:creator><comments>https://news.ycombinator.com/item?id=26659562</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26659562</guid></item><item><title><![CDATA[New comment by gue5t in "Apt Encounters of the Third Kind"]]></title><description><![CDATA[
<p>You're right... what an annoying namespace collision. On the other hand, stylizing software as Initial Caps is much more acceptable than stylizing non-software acronyms that way, so it would still be less misleading to change the capitalization.</p>
]]></description><pubDate>Fri, 26 Mar 2021 14:34:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=26592639</link><dc:creator>gue5t</dc:creator><comments>https://news.ycombinator.com/item?id=26592639</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26592639</guid></item><item><title><![CDATA[New comment by gue5t in "Egg: E-Graphs Good"]]></title><description><![CDATA[
<p>Yes; see also the vellvm project, which develops proofs of a number of the equivalences LLVM uses: <a href="https://www.cis.upenn.edu/~stevez/vellvm/" rel="nofollow">https://www.cis.upenn.edu/~stevez/vellvm/</a></p>
]]></description><pubDate>Fri, 26 Mar 2021 14:26:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=26592542</link><dc:creator>gue5t</dc:creator><comments>https://news.ycombinator.com/item?id=26592542</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26592542</guid></item><item><title><![CDATA[New comment by gue5t in "Apt Encounters of the Third Kind"]]></title><description><![CDATA[
<p>Please change the posting title to match the article title and disambiguate between APT (Advanced Persistent Threats, the article subject) and Apt (the package manager).</p>
]]></description><pubDate>Fri, 26 Mar 2021 14:23:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=26592513</link><dc:creator>gue5t</dc:creator><comments>https://news.ycombinator.com/item?id=26592513</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26592513</guid></item><item><title><![CDATA[New comment by gue5t in "Wasmer 1.0"]]></title><description><![CDATA[
<p>You're completely right, of course. Seeing the amount of effort put into virtualization, sandboxing, containers, etc. is enough to make one wonder why every enterprise is so shortsighted. Capabilities obviate all of the above, and are neither a new untested idea nor more complicated than what we have--as we clearly see in the repeated attempts to build things that approximate them with ACLs and sandboxes and seccomp rules and so on.<p>Linux is slowly moving toward capability-centric design with more and more comprehensive namespacing and file-descriptor-based interfaces to things like pidfd and memfd, but there's still a long way to go before we can jettison ambient authority such as the filesystem entirely. Meanwhile, Google's Fuchsia may deploy a capability-based operating system to the masses, but it will likely only be used to sandbox applications written for Android anyway. The real potential of capabilities is to simplify the interface of a power-user operating system by eliminating the race conditions, side channels, privacy leaks, firewalls, virus scanners, and unix-style permissions from developers' and users' day-to-day experience completely.<p>There will still be memory-safety zero days, of course, until we abandon languages where humans are statistically incapable of writing memory-safe code.</p>
]]></description><pubDate>Tue, 05 Jan 2021 23:43:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=25652908</link><dc:creator>gue5t</dc:creator><comments>https://news.ycombinator.com/item?id=25652908</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25652908</guid></item><item><title><![CDATA[New comment by gue5t in "Fine-Grained Replicated State Machines for a Cluster Storage System (NSDI 2020)"]]></title><description><![CDATA[
<p>This is usually true but I couldn't find any record of an actual published version in proceedings anywhere.<p>On the other hand, a related paper on the same system by a subset of authors is available: <a href="http://dl.acm.org.sci-hub.tw/doi/book/10.5555/866299" rel="nofollow">http://dl.acm.org.sci-hub.tw/doi/book/10.5555/866299</a></p>
]]></description><pubDate>Sun, 19 Apr 2020 02:32:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=22912992</link><dc:creator>gue5t</dc:creator><comments>https://news.ycombinator.com/item?id=22912992</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22912992</guid></item><item><title><![CDATA[New comment by gue5t in "Show HN: A “living” Linux process with no memory"]]></title><description><![CDATA[
<p>The solution to this situation, as I understand it (on Linux), is TASK_KILLABLE, which effectively supercedes uninterruptible sleep as a concept: <a href="https://lwn.net/Articles/288056/" rel="nofollow">https://lwn.net/Articles/288056/</a><p>But TASK_KILLABLE is not used in most places it should be. Patching your (least) favorite driver to use TASK_KILLABLE could be a good entry point to contributing to the kernel.<p>This older, tangential HN discussion and the comments on LWN have a bit more info: <a href="https://news.ycombinator.com/item?id=18056946" rel="nofollow">https://news.ycombinator.com/item?id=18056946</a></p>
]]></description><pubDate>Thu, 26 Mar 2020 16:31:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=22695267</link><dc:creator>gue5t</dc:creator><comments>https://news.ycombinator.com/item?id=22695267</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22695267</guid></item><item><title><![CDATA[New comment by gue5t in "Algebraic Structures: Things I wish someone had explained about FP"]]></title><description><![CDATA[
<p>What structure does an algebra require to merit the name? I've been confused by examples such as the "algebra of a monad", which as I understand it arises from adding an "unwrap" operation in addition to monadic "return" and "join". Most of the references to this only ever refer to specific cases such as an algebra over a monad or an algebra over a functor or a division algebra, etc., and I haven't seen anyone be clear about what <i>makes</i> something an algebra.</p>
]]></description><pubDate>Mon, 04 Nov 2019 15:30:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=21442515</link><dc:creator>gue5t</dc:creator><comments>https://news.ycombinator.com/item?id=21442515</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21442515</guid></item><item><title><![CDATA[New comment by gue5t in "Librem 5 general development report – October"]]></title><description><![CDATA[
<p>The point of the Librem 5 is not to make the most popular possible phone, it's to make a <i>better</i> phone than what is currently available.<p>Markets only matter to capitalists. Real hackers share with each other to make things happen that markets do not comprehend. Whether this project will be a success, only time will tell, but it has nothing to do with the market.</p>
]]></description><pubDate>Wed, 17 Oct 2018 13:23:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=18238664</link><dc:creator>gue5t</dc:creator><comments>https://news.ycombinator.com/item?id=18238664</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18238664</guid></item></channel></rss>