<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: sieve</title><link>https://news.ycombinator.com/user?id=sieve</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 20 Jun 2026 09:34:51 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=sieve" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by sieve in "Gribouille 0.3.0: A Grammar of Graphics for Typst"]]></title><description><![CDATA[
<p>I like typst. But I am not a fan of the syntax. I use it as an intermediate format on the way to PDF. A document markup language should avoid building a programming language inside it. Pick python, or lua, or whatever.</p>
]]></description><pubDate>Fri, 19 Jun 2026 10:57:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=48597152</link><dc:creator>sieve</dc:creator><comments>https://news.ycombinator.com/item?id=48597152</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48597152</guid></item><item><title><![CDATA[New comment by sieve in "How Madrid built its metro cheaply (2024)"]]></title><description><![CDATA[
<p>Depends on the state and the political environment. Some people will deliberately sabotage projects for political reasons. The biggest problem with metros in India is the inability to provide last mile connectivity. Some cities will run buses in competition to metro lines, or provide free bus travel to women. Both actions compete against a fast mode of travel.<p>So, it is an India problem, not a government problem.</p>
]]></description><pubDate>Thu, 18 Jun 2026 06:34:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=48581565</link><dc:creator>sieve</dc:creator><comments>https://news.ycombinator.com/item?id=48581565</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48581565</guid></item><item><title><![CDATA[New comment by sieve in "Hetzner Price Adjustment"]]></title><description><![CDATA[
<p>There are people running sites hosting old religious texts and hymns and a hundred other things that have nothing to do with programmers. A 4x jump in the bill for someone on limited income not gaining anything from it is not trivial. It results in the disappearance of a site that will not come back.</p>
]]></description><pubDate>Tue, 16 Jun 2026 06:29:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=48551343</link><dc:creator>sieve</dc:creator><comments>https://news.ycombinator.com/item?id=48551343</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48551343</guid></item><item><title><![CDATA[New comment by sieve in "Lombardy increases charges for the construction of data centres in green areas"]]></title><description><![CDATA[
<p>> Datacenters are weird<p>In the same way that most public utilities are: train stations, railway lines, airports, garbage dumps, sewage treatment plants, military bases and a hundred other things. The negatives are concentrated to the locality and everyone else reaps the benefits.<p>I get it if you wish to put a 99% self-sufficiency condition (water/power etc) but everything else reeks of luddism and nimbyism.</p>
]]></description><pubDate>Wed, 27 May 2026 15:45:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=48296009</link><dc:creator>sieve</dc:creator><comments>https://news.ycombinator.com/item?id=48296009</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48296009</guid></item><item><title><![CDATA[New comment by sieve in "Why does it look like LLMs consistently overestimate implementation time?"]]></title><description><![CDATA[
<p>This is very common as they have no conception of time. They are just using ballpark figures based on what they see in the wild. I see estimates for modules in weeks/months when it can produce it in a single afternoon of prompting.</p>
]]></description><pubDate>Fri, 22 May 2026 02:17:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=48231211</link><dc:creator>sieve</dc:creator><comments>https://news.ycombinator.com/item?id=48231211</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48231211</guid></item><item><title><![CDATA[New comment by sieve in "Qian Xuesen: The missile genius America lost and China gained (2025)"]]></title><description><![CDATA[
<p>Not comparable, but the story of Gerald Bull is interesting. I read Frederick Forsyth's <i>The Fist of God</i> in the late 90s and only came to know about Bull and Project Babylon when I chanced upon the Wikipedia article on the subject.</p>
]]></description><pubDate>Thu, 21 May 2026 00:38:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=48216299</link><dc:creator>sieve</dc:creator><comments>https://news.ycombinator.com/item?id=48216299</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48216299</guid></item><item><title><![CDATA[New comment by sieve in "Reverting the incremental GC in Python 3.14 and 3.15"]]></title><description><![CDATA[
<p>Any language that uses error codes instead of exceptions is a non-starter for me. Produces code that craps all over the happy path.<p>Python has a different problem: it is slow as f---. I did a micro benchmark comparison against 5 other languages in preparation for my python replacement language. Outside of dictionary lookups, it is 50-600 times slower than C depending on the workload.<p>Go, Rust etc are fine. They land at 1.25-3x slower than C. But I prefer the readability of python minus its dynamic nature.</p>
]]></description><pubDate>Wed, 13 May 2026 20:35:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=48127158</link><dc:creator>sieve</dc:creator><comments>https://news.ycombinator.com/item?id=48127158</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48127158</guid></item><item><title><![CDATA[New comment by sieve in "Ask HN: What are you working on? (May 2026)"]]></title><description><![CDATA[
<p>A replacement for python.<p>- The base is a freestanding register VM deeply tied to the Linux kernel.<p>- It supports a set of primitives types, array types and record types.<p>- Concurrency is Erlang-ish --- an M:N scheduler that can manage tens of thousands of green processes. VM uses instruction fuel to preempt processes.<p>- GC is Cheney for the nursery + M&S for the rest. Each process has its own GC.<p>- tailcall support.<p>- first class functions.<p>- Phase One will only have Vm0, which is clean (it has access to a bounded set of Linux syscalls). Will think about Vm1 that handles the libc infection later.<p>- JIT is not on the table in Phase One.<p>- The language is statically typed and borrows syntax from python extensively, but drops OOP entirely.<p>- OOP is faked using UFCS.<p>- Operator overloading is supported.<p>- Exceptions are the default error handling mechanism. There are two hierarchies: Fault and Error. Fault cannot be trapped without rethrowing. Fault WILL crash the VM.<p>- It is being developed in private right now. As I am User # 0, all the choices I make reflect my own opinions and biases. I might release the code as OSS once the core is stabilized.<p>- I have done very basic microbenchmarking and the VM is so much faster than python right now that it is not a fair comparison anymore. I can also create and iterate over massive primitive arrays with ease. The principal comparison should be C, and here it is consistently about 8x slower and that performance profile will probably remain constant because dispatch has a real cost that cannot be magically wished away. I will be very happy with 5/6x.</p>
]]></description><pubDate>Mon, 11 May 2026 03:08:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=48090665</link><dc:creator>sieve</dc:creator><comments>https://news.ycombinator.com/item?id=48090665</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48090665</guid></item><item><title><![CDATA[New comment by sieve in "Making your own programming language is easier than you think (but also harder)"]]></title><description><![CDATA[
<p>Recovery is simple depending on your syntax (and whether your language supports exceptions). You pick a few places where you trap exceptions, add it to your log and continue. My current project is the first one that <i>might</i> becomes public. So it is the first time I have worked a little bit on usability. So multiple errors at a time, not one.</p>
]]></description><pubDate>Sun, 10 May 2026 15:21:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48084696</link><dc:creator>sieve</dc:creator><comments>https://news.ycombinator.com/item?id=48084696</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48084696</guid></item><item><title><![CDATA[New comment by sieve in "Making your own programming language is easier than you think (but also harder)"]]></title><description><![CDATA[
<p>The older ones, no. The current project will be. I am developing in private and occasionally rewriting the jj tree to make each commit self-contained. So it won't contain all the false-starts and bad code, only the cleaned up version.<p>"ut" (<a href="https://github.com/s-i-e-v-e/ut" rel="nofollow">https://github.com/s-i-e-v-e/ut</a>) exists, but it is more of a POC for the syntax more than anything. So lexer+parser+typechecker. Did this during COVID in TypeScript but did not finish.</p>
]]></description><pubDate>Sun, 10 May 2026 15:17:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=48084660</link><dc:creator>sieve</dc:creator><comments>https://news.ycombinator.com/item?id=48084660</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48084660</guid></item><item><title><![CDATA[New comment by sieve in "Making your own programming language is easier than you think (but also harder)"]]></title><description><![CDATA[
<p>Every single book starts with regexes and DFA/NFA for lexical analysis. Too much ceremony for something you can write in 30 minutes and 300 lines</p>
]]></description><pubDate>Sun, 10 May 2026 09:33:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=48082376</link><dc:creator>sieve</dc:creator><comments>https://news.ycombinator.com/item?id=48082376</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48082376</guid></item><item><title><![CDATA[New comment by sieve in "Making your own programming language is easier than you think (but also harder)"]]></title><description><![CDATA[
<p>> slowly<p>I cannot do slow. It is either burn the candle at both ends, or do nothing at all.<p>I am using LLMs this time as well, but I spent close to 400 hours over a period of 6-7 weeks on my project before I put it to the side temporarily (got bored once the thinking part was done). About 300 of those were spent on iterating over the language and VM specs and eliminating all ambiguities and needless features. The remaining 100 were used to produce the code --- the VM, the assembler and the compiler --- and to repeated rewrite it to conform to my way of doing things.<p>LLMs have let me become extremely choosy about which code I am willing to keep.</p>
]]></description><pubDate>Sun, 10 May 2026 09:30:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=48082364</link><dc:creator>sieve</dc:creator><comments>https://news.ycombinator.com/item?id=48082364</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48082364</guid></item><item><title><![CDATA[New comment by sieve in "Making your own programming language is easier than you think (but also harder)"]]></title><description><![CDATA[
<p>Yeah. I added the caveat because I haven't looked at the source of the major production compilers and didn't want to overreach. The hobbyist ones mostly stick to hand-rolled recursive descent.</p>
]]></description><pubDate>Sun, 10 May 2026 07:33:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=48081816</link><dc:creator>sieve</dc:creator><comments>https://news.ycombinator.com/item?id=48081816</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48081816</guid></item><item><title><![CDATA[New comment by sieve in "Making your own programming language is easier than you think (but also harder)"]]></title><description><![CDATA[
<p>I wish people would start with Nystrom's <a href="https://www.craftinginterpreters.com/" rel="nofollow">https://www.craftinginterpreters.com/</a> and avoid the dragon etc unless they really, really need it. Almost everything I have learnt about compiler/vm development, I have done so by reading random blogs and articles on various aspects and small tutorials on writing parsers and vms.<p>Even stuff like Crenshaw's <i>Let's Build a Compiler</i> was more useful to me than all these books that do lexical analysis using regular expressions. I have written lexers and parsers hundreds of times for all kinds of DSLs and config languages and not once have I used regular expressions to scan the text.</p>
]]></description><pubDate>Sun, 10 May 2026 04:47:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=48081092</link><dc:creator>sieve</dc:creator><comments>https://news.ycombinator.com/item?id=48081092</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48081092</guid></item><item><title><![CDATA[New comment by sieve in "Making your own programming language is easier than you think (but also harder)"]]></title><description><![CDATA[
<p>> I think compiler courses teach from yacc, bison etc that's where this whole thing came from<p>Very true. I have a shelf full of books on compiler development and optimization. I have read them selectively, a chapter here, a chapter there. But that shelf is useless for a vast majority of people.<p>You <i>might</i> find it useful if you are developing a production-level compiler/vm (I cannot make this statement with a straight face while Python rules the world). But a simple and sensible architecture that uses recursive-descent parsing takes you a long way.<p>Most hobbyist compilers (and even some production ones) are written as a heavy front-end compiling down to C or LLVM. Very few people actually write their own backend.</p>
]]></description><pubDate>Sun, 10 May 2026 03:10:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=48080634</link><dc:creator>sieve</dc:creator><comments>https://news.ycombinator.com/item?id=48080634</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48080634</guid></item><item><title><![CDATA[New comment by sieve in "Making your own programming language is easier than you think (but also harder)"]]></title><description><![CDATA[
<p>I have written compilers for two families over the years: C and ML. My current preference is Python. I am currently working on a statically typed language that is inspired by Python (minus objects and OOP) that runs on a register VM.<p>Syntax is a minor issue but something that people are very opinionated about. You could technically build multiple front ends that share the typechecking, CFG validation, optimization, register allocation and byte code emission phases. But it is too much work for what is presently a personal project.</p>
]]></description><pubDate>Sun, 10 May 2026 02:53:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=48080536</link><dc:creator>sieve</dc:creator><comments>https://news.ycombinator.com/item?id=48080536</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48080536</guid></item><item><title><![CDATA[New comment by sieve in "Making your own programming language is easier than you think (but also harder)"]]></title><description><![CDATA[
<p>Anyone trying to do this... the first thing you do is avoid lex/yacc/bison/antlr. You do not need all this ceremony. A recursive descent parser that uses Pratt parsing will work for a vast majority of cases.<p>The lexer/parser is never the bottleneck. In fact, you can write those two by hand over a single weekend for a largish language. With LLMs, it takes 15 minutes if you have an unambiguous spec.<p>The biggest time sink, and the reason you will fail for sure, is the inability to restrict the scope of the project. You start with a limited feature set and produce the entire compiler/vm toolchain. Then you get greedy and fiddle with the type system, adding features that you have never used and probably never will. And now you have to change every single phase from start to end.<p>I mostly give up at this stage.</p>
]]></description><pubDate>Sun, 10 May 2026 01:44:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=48080172</link><dc:creator>sieve</dc:creator><comments>https://news.ycombinator.com/item?id=48080172</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48080172</guid></item><item><title><![CDATA[New comment by sieve in "Canvas is down as ShinyHunters threatens to leak schools’ data"]]></title><description><![CDATA[
<p>The equivalent analogy is charging lock/door/drywall/timber makers and suppliers for lapses if a thief entered the house by picking a lock or drilling/sawing through the wall.</p>
]]></description><pubDate>Fri, 08 May 2026 03:13:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48058077</link><dc:creator>sieve</dc:creator><comments>https://news.ycombinator.com/item?id=48058077</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48058077</guid></item><item><title><![CDATA[New comment by sieve in "Pope Leo called his bank's customer service line. They hung up on him"]]></title><description><![CDATA[
<p>The branch is the last place where a real person meets another real person. Even that person looks up everything on their terminal, and the whole thing is probably security theater, but I think having at least one physical backstop is a good idea.<p>My banks require physical presence for stuff like changing phone numbers and nominees. We get OTPs on our phones, so that makes perfect sense.</p>
]]></description><pubDate>Thu, 07 May 2026 02:00:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=48044524</link><dc:creator>sieve</dc:creator><comments>https://news.ycombinator.com/item?id=48044524</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48044524</guid></item><item><title><![CDATA[New comment by sieve in "Kimi K2.6 just beat Claude, GPT-5.5, and Gemini in a coding challenge"]]></title><description><![CDATA[
<p>Claude is opaque as regards token usage. So you might end up using your 5hr limit in 7-10 minutes using regular Sonnet. Meanwhile, OpenCode etc give you exact breakdown in terms of how many cached tokens used per session etc which you can use to estimate burn rate.<p>All these coding tools are extremely wasteful as far as resources are concerned. Almost designed to make you move to the next tier. You have to consciously restrict their scope all the time to make your plans last. Even with Kimi/MiniMax a 3-4 hour session often ends up with 50-70M cached reads. Not a small amount at all.</p>
]]></description><pubDate>Sun, 03 May 2026 19:48:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=48000679</link><dc:creator>sieve</dc:creator><comments>https://news.ycombinator.com/item?id=48000679</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48000679</guid></item></channel></rss>