<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: lapinot</title><link>https://news.ycombinator.com/user?id=lapinot</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 04 Jun 2026 10:04:42 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=lapinot" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by lapinot in "Daily Driving GrapheneOS"]]></title><description><![CDATA[
<p>Indeed, and based non-extensive, one sample approximate average testing, my own bank works like a charm on GOS.</p>
]]></description><pubDate>Tue, 03 Mar 2026 09:13:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=47230057</link><dc:creator>lapinot</dc:creator><comments>https://news.ycombinator.com/item?id=47230057</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47230057</guid></item><item><title><![CDATA[New comment by lapinot in "NaN, the not-a-number number that isn't NaN"]]></title><description><![CDATA[
<p>In the error monad NaN = NaN (or Nothing = Nothing or None = None, depending on your terminology) because mathematical equality is an equivalence relation. There are many foundational debates about equality, but whether or not it is an equivalence is never the question.<p>The root of the problem, completely overlooked by OP is that IEEE 754 comparison is not an equivalence relation. It's a partial equivalence relation (PER). It does have its utility, but these things can be weird and they are definitely not interchangeable with actual equivalence relations. Actual, sane, comparison of floating points got standardized eventually, but probably too late <a href="https://en.wikipedia.org/wiki/IEEE_754#Total-ordering_predicate" rel="nofollow">https://en.wikipedia.org/wiki/IEEE_754#Total-ordering_predic...</a>. It's actually kinda nuts that the partial relation is the one that you get by default (no, your sorting function on float arrays does not sort it).</p>
]]></description><pubDate>Thu, 30 Oct 2025 18:53:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=45763806</link><dc:creator>lapinot</dc:creator><comments>https://news.ycombinator.com/item?id=45763806</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45763806</guid></item><item><title><![CDATA[New comment by lapinot in "Ask HN: What less-popular systems programming language are you using?"]]></title><description><![CDATA[
<p><a href="https://ocaml.org/manual/5.3/api/Int64.html" rel="nofollow">https://ocaml.org/manual/5.3/api/Int64.html</a></p>
]]></description><pubDate>Tue, 04 Mar 2025 18:29:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=43258305</link><dc:creator>lapinot</dc:creator><comments>https://news.ycombinator.com/item?id=43258305</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43258305</guid></item><item><title><![CDATA[New comment by lapinot in "You Can't Solve the Teacher Shortage by Pretending Anyone Can Do the Job"]]></title><description><![CDATA[
<p>> just involves lecturing about the same material over and over again<p>It doesn't, specifically not in primary education. Also definitely not for subjects with any kind of amount of practical work. Let's see.. foreign languages, sports, physics, chemistry, biology...<p>Which part of these relevant quotes understand? Or perhaps have counter-arguments?<p>> shows how low our appreciation of pedagogues has fallen<p>> Dropout rates for these classes hovered around 90 percent<p>> learning is a social experience<p>> an expert is watching you and cares whether you succeed or fail</p>
]]></description><pubDate>Mon, 17 Feb 2025 19:38:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=43082563</link><dc:creator>lapinot</dc:creator><comments>https://news.ycombinator.com/item?id=43082563</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43082563</guid></item><item><title><![CDATA[New comment by lapinot in "A Simple open-source Phone programmable with Arduino"]]></title><description><![CDATA[
<p>And you can reliable type text without looking.</p>
]]></description><pubDate>Sat, 19 Oct 2024 11:00:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=41887106</link><dc:creator>lapinot</dc:creator><comments>https://news.ycombinator.com/item?id=41887106</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41887106</guid></item><item><title><![CDATA[New comment by lapinot in "A Simple open-source Phone programmable with Arduino"]]></title><description><![CDATA[
<p>You forgot privacy invasive tracking.. I guess some people don't understand irony!</p>
]]></description><pubDate>Sat, 19 Oct 2024 10:55:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=41887084</link><dc:creator>lapinot</dc:creator><comments>https://news.ycombinator.com/item?id=41887084</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41887084</guid></item><item><title><![CDATA[New comment by lapinot in "Furilabs Linux Phone"]]></title><description><![CDATA[
<p>I beg to differ. Tried to use a kaios nokia 800 tough. Firefox/KaiOS using a stupid kind of webview for every UI, you get two consequences: first, everything is ugly: wrong padding everywhere, complex layout with non-integer number of list items fitting on screen (this is important, vertical list is the primary widget on small screen dumbphones). And second: everything is sluggish. My true "series 30" nokia launches app instantly, whereas i'm sure the SoC is order of magnitudes slower.<p>So the UX definitely shows complete absence of culture of design in this kind of space (eg gameboy UI design, classic dumbphone UI, ...). Small screens need very simple widgets (most importantly grid and vertical list), hand made paddings and proper space optimizations, most likely some bitmap font tailored to the resolution.. You can't just slap some dynamic layout and expect it to work nicely on such a small screen. Everything vectorized will be both costly and of dubious rendering quality, etc..<p>And of course these things only have "decent", but definitely not "1 month scale" battery life. I guess LTE is the real culprit here.</p>
]]></description><pubDate>Tue, 15 Oct 2024 13:05:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=41848160</link><dc:creator>lapinot</dc:creator><comments>https://news.ycombinator.com/item?id=41848160</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41848160</guid></item><item><title><![CDATA[New comment by lapinot in "Exploring Typst, a new typesetting system similar to LaTeX"]]></title><description><![CDATA[
<p>> so not exactly the kind of thing you'd notice making a document<p>By "user interface" I mean (like Martin, in the linked video) the surface language, the way you interact with TeX, its syntax and how it presents itself to the user, the programming model. So definitely the kind of thing you'd notice making a document. Leaky abstractions and footguns are basically everywhere when you write a big LaTeX document.<p>> I mean TeX is basically an overpowered lambda calculus with a focus on text markup and generation.<p>No, lambda calculus has capture-avoiding substitution, aka hygienic macro expansion if you will. TeX has naive substitution. By the way, macro expansion is typically CBN, which is very much a rare and weird evaluation order (yes, Haskell, i know). TeX is much closer to some kind of assembly language for a virtual machine.</p>
]]></description><pubDate>Mon, 14 Oct 2024 11:15:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=41836411</link><dc:creator>lapinot</dc:creator><comments>https://news.ycombinator.com/item?id=41836411</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41836411</guid></item><item><title><![CDATA[New comment by lapinot in "Exploring Typst, a new typesetting system similar to LaTeX"]]></title><description><![CDATA[
<p>The user interface / language design. See talk "LaTeX: It's Not You, It's Me" by Martin Haug (cofounder). TeX's language design is at the level of Basic's. Which is in fact not surprising given the timeframe.</p>
]]></description><pubDate>Mon, 14 Oct 2024 08:45:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=41835538</link><dc:creator>lapinot</dc:creator><comments>https://news.ycombinator.com/item?id=41835538</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41835538</guid></item><item><title><![CDATA[New comment by lapinot in "Exploring Typst, a new typesetting system similar to LaTeX"]]></title><description><![CDATA[
<p>Speed and nice error messages in (La)TeX, and to some extent ease of programming, are entirely doomed because of fundamental design choices. Being based on unhygienic macro expansion means that there is only one way to evaluate (the slow way), there will never be incremental compilation (everything can possibly be stateful in horrible ways), there will never be good error messages because there's basically no AST information anywhere (begin/end is a joke).<p>Regarding ecosystem: tons of undecipherable LaTeX packages are basically one-liners (ok, 10 liners) in typst. I know it from experience: I've written my PhD manuscript in typst. So perhaps one reason why there are so many (basically frozen) packages in LaTeX is because they are so hard to write and maintain.<p>edit: of course, being only a few years old, typst is nowhere near as solid as TeX, but you can already use it for a lot of things and its a breeze to use.</p>
]]></description><pubDate>Sun, 13 Oct 2024 13:00:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=41827658</link><dc:creator>lapinot</dc:creator><comments>https://news.ycombinator.com/item?id=41827658</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41827658</guid></item><item><title><![CDATA[New comment by lapinot in "Exploring Typst, a new typesetting system similar to LaTeX"]]></title><description><![CDATA[
<p>This! My first actual project (besides some testing) has been my phd manuscript, and after ~2 days i actually had a tufte-style 1.5 column layout going, written from scratch. And its probably like ~250 lines.<p>There are some rough edges still, the dom model and advanced programming stuff is not quite there yet (user-defined elements, user-defined settables, advanced layout like chaining blocks for laying text flows). But like the quality of the user interface is several orders of magnitude better than (La)TeX.</p>
]]></description><pubDate>Sun, 13 Oct 2024 12:45:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=41827535</link><dc:creator>lapinot</dc:creator><comments>https://news.ycombinator.com/item?id=41827535</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41827535</guid></item><item><title><![CDATA[New comment by lapinot in "Exploring Typst, a new typesetting system similar to LaTeX"]]></title><description><![CDATA[
<p>There are 3 syntactic modes in typst: markup, code and math. In markup, everything is literal, unless you put a `#` sigil like `#expr` in which case `expr` is parsed in code mode. In code mode everything is an identifier, as usual in programming. In math its a bit of an ugly tradeoff but its ok: single-letter things are parsed as literals but multi-letter tokens are parsed as identifiers. Finally, in code you can enclose in `[...]` to parse in markup mode. So typically, your document will be mostly in markup mode and you will encounter stuff like `#something[An argument]`, which is a function call to which you pass one content-typed argument.<p>So above, `y` is parsed as literal, while `dt` is parsed as an identifier, hence function call.</p>
]]></description><pubDate>Sun, 13 Oct 2024 12:38:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=41827467</link><dc:creator>lapinot</dc:creator><comments>https://news.ycombinator.com/item?id=41827467</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41827467</guid></item><item><title><![CDATA[New comment by lapinot in "Can logic programming be liberated from predicates and backtracking? [pdf]"]]></title><description><![CDATA[
<p>Datalog is a nice query language but it is far more limited than prolog or general purpose logic programming.</p>
]]></description><pubDate>Sun, 13 Oct 2024 12:22:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=41827353</link><dc:creator>lapinot</dc:creator><comments>https://news.ycombinator.com/item?id=41827353</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41827353</guid></item><item><title><![CDATA[New comment by lapinot in "Pear AI founder: We made two big mistakes"]]></title><description><![CDATA[
<p>Sure, but people don't owe them respect. illegal != immoral.</p>
]]></description><pubDate>Tue, 01 Oct 2024 14:50:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=41709173</link><dc:creator>lapinot</dc:creator><comments>https://news.ycombinator.com/item?id=41709173</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41709173</guid></item><item><title><![CDATA[New comment by lapinot in "A Burrito Is a Monad"]]></title><description><![CDATA[
<p>I'm gettin it now! :)</p>
]]></description><pubDate>Mon, 30 Sep 2024 18:02:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=41700103</link><dc:creator>lapinot</dc:creator><comments>https://news.ycombinator.com/item?id=41700103</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41700103</guid></item><item><title><![CDATA[New comment by lapinot in "A Burrito Is a Monad"]]></title><description><![CDATA[
<p>I guess you meant 2 operations and 3 laws?</p>
]]></description><pubDate>Mon, 30 Sep 2024 16:45:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=41699239</link><dc:creator>lapinot</dc:creator><comments>https://news.ycombinator.com/item?id=41699239</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41699239</guid></item><item><title><![CDATA[New comment by lapinot in "Raft: Understandable Distributed Consensus (2014)"]]></title><description><![CDATA[
<p>I got interested into the hashgraph algorithm quite early and wrote a toy implementation in python (in fact discovering an error in the paper in the process). Unless something changed it's entirely useless for open-membership internet-scale consensus. As I remember, the processing time of a message at a node is linear in the number of nodes and same for the local storage at a node, meaning it's not very scalable. Moreover, the nodes must somehow a priori agree on the list of participants of the consensus process, again something which is not realistic for internet-wide consensus. The protocol is quite neat and not too hard to implement but it's similar in scope to paxos/raft: consensus inside an organization, where some things are a priori agreed upon.</p>
]]></description><pubDate>Sat, 28 Sep 2024 13:38:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=41680170</link><dc:creator>lapinot</dc:creator><comments>https://news.ycombinator.com/item?id=41680170</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41680170</guid></item><item><title><![CDATA[New comment by lapinot in "Alexander Grothendieck"]]></title><description><![CDATA[
<p>Always infuriating to see that people always focus on the his pre-70s (hardcore math) or post-80s period (borderline mysticism ramp up). In the 70s he was most politically active and _definitely_ not delirious in any sense of the word and in fact according to Leila Schneps this is one of the few periods of his life he described as happy, the "sunday of his life" [1]. I translated the '72 CERN talk, its baffling how relevant it is, to this day [2].<p>[1] french, <a href="https://www.youtube.com/watch?v=V8BbFTEyvIw" rel="nofollow">https://www.youtube.com/watch?v=V8BbFTEyvIw</a><p>[2] <a href="https://github.com/Lapin0t/grothendieck-cern">https://github.com/Lapin0t/grothendieck-cern</a></p>
]]></description><pubDate>Sat, 31 Aug 2024 21:27:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=41412135</link><dc:creator>lapinot</dc:creator><comments>https://news.ycombinator.com/item?id=41412135</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41412135</guid></item><item><title><![CDATA[New comment by lapinot in "Clang vs. Clang"]]></title><description><![CDATA[
<p>Demonstrating how <i>some</i> languages and <i>some</i> compilers are bad at tasks such as writing constant-time crypto routines is fine. Concluding that all compilers and non-asm languages are bad is a non sequitur. Just because you don't want non-branching code to change into branching code doesn't mean you should have to do register allocation by hand. Write simple domain-specific compilers and languages people.</p>
]]></description><pubDate>Sun, 04 Aug 2024 09:55:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=41152358</link><dc:creator>lapinot</dc:creator><comments>https://news.ycombinator.com/item?id=41152358</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41152358</guid></item><item><title><![CDATA[New comment by lapinot in "I prefer rST to Markdown"]]></title><description><![CDATA[
<p>Every heard about <a href="https://typst.app/" rel="nofollow">https://typst.app/</a>?</p>
]]></description><pubDate>Thu, 01 Aug 2024 17:48:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=41131625</link><dc:creator>lapinot</dc:creator><comments>https://news.ycombinator.com/item?id=41131625</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41131625</guid></item></channel></rss>