Hacker Newsnew | past | comments | ask | show | jobs | submit | egonschiele's commentslogin

Maybe the most incredible part – did Claude write a recursive descent parser from scratch for this? https://github.com/enspirit/elo/blob/9f07fefcdf65c169089f123...

Not that it's super complex, but I'm surprised it didn't pick up an npm package. I wrote tarsec[1] and have been eyeing ohmjs[2]. And of course nearley is a classic.

[1] https://github.com/egonSchiele/tarsec [2] https://ohmjs.org [3] https://nearley.js.org


Recursive descent parsers are basically mechanical structures, if you get the grammar right (which encapsulates all the logic).

When I was a CS student, they seemed like magic to me as well, but later I got to revisit them for a project at work, and finally managed to understand the logic.

Imo, the biggest complexity in using them comes from how they handle operator precedence, with recursive nested expressions in the grammar, which I still don't find intuitive at all.

If you decide to hand-roll your own parser/syntax today, I recommend you look at Pratt-parsers, they are much nicer to write by hand. Modern languages (Rust, Go) , ironically are much simpler to parse, since they defined the syntax in such a way that they can be parsed unambigously by looking 1-2 tokens ahead.

And since all of them follow the same logic, AI has a ton of sources to learn from.

I'm also working on my programming language, and AI assistants have been able to generate these parsers for well over a year.


That git commit is very impressive (for Claude)

Edit: Oh, I think the main dev is just using Claude to do the commits (I guess to summarise changes, etc). It does not mean that Claude wrote all that code.


FWIW, at the bottom of the landing page they credit Claude for “every line of code, tests, and docs”

Claude did, I swear

The parser was built gradually though, with logs of increments under automated tests.


For those less in the know: is it for convenience? Because most systems have a package manager that can install Python, correct? But `pip` is more familiar to some?

I think it’s more for Python libraries that depend on JavaScript.

Lots of packages rely on other languages and runtimes. For example, tabula-py[1] depends on Java.

So if my-package requires a JS runtime, it can add this deno package as its own dependency.

The benefit is consumers only need to specify my-package as a dependency, and the deno runtime will be fetched for free as a transient dependency. This avoids every consumer needing to manage their own JavaScript runtime/environment.

https://pypi.org/project/tabula-py/


The zig one allows you to build native modules for your python project from setup.py without having to have a C/C++ toolchain preinstalled. Here's a talk about this:

https://www.youtube.com/watch?v=HPmefnqirHk


It's because when you use the native Python packaging tools, you can install a Python "wheel" into an arbitrary Python environment.

If you get Deno from the system package manager, or from deno.com directly, you're more constrained. Rather, it seems that you can set an environment variable to control where the Deno home page installer will install, but then you still need to make your Python program aware of that path.

Whereas a native Python package can (and does, in this case, and also e.g. in the case of `uv`) provide a shim that can be imported from Python and which tells your program what the path is. So even though the runtime doesn't itself have a Python API, it can be used more readily from a Python program that depends on it.


Pypi is the only OS agnostic package manager already installed on every OS.

Also, it's VERY convenient for companies already using python as the primary language because they can manage the dependency with uv rather than introduce a second package manager for devs. (For example, if you run deno code, but don't maintain any JS yourself)


I'm no expert when it comes to software packaging and distribution issues but this does give off Internet-Archive-as-CDN levels of Hyrum's Law for me. What could possibly go wrong hmmmmmm....

A parser combinator library for TypeScript: http://github.com/egonSchiele/tarsec

And a game I made with my son, similar to Chips Challenge: https://reddot.adit.io


The list has helped me plan as its forced me to cut things, and just admit I won't have time to do them. For example, I took about fifty books off my shelf and to the little free library. They've been sitting there for years.


Unfortunately a pre-req would be me severely downgrading what I think is worth writing down as an accomplishment, or switching to writing down meaningless tasks (though that IS what the original tada list idea recommends)


It's a good idea that I might try, though I do like being able to see exactly what I did each day!


Funny timing, I've been building something like this for my own use -- but your feature list has everything I wanted :) How much do you charge? Would love to know without downloading an app


Glad you liked it. There is a free tier. So you don't necessarily have to purchase. The pricing summary is here https://get.onlyrecipeapp.com/pricing

Thank you


esp32 already exists, so there's a hardware alternative. What's the primary issue -- is it the lack of competition to the Arduino IDE? I have dabbled in Arduino but don't know enough to understand, but my impression was on the hardware side there are already alternatives that are better.

Obviously not discounting what a huge blow this is (and right when I was planning to explore Arduino more), but practically speaking, what can we do to help?


I think this is a reasonable expectation. I'm writing about the dot product and there is a geometric visualization for dot products, so it's fair to expect that. As I said in this comment (https://news.ycombinator.com/item?id=45802969) I focused on teaching the reader the bare minimum they would need to know to get to matrix multiplication.

I use illustrations for a lot of other things though. I use them to pace my posts, to call out things that are especially important, to reinforce written ideas with images, and to give the reader's eye a place to rest.

If you are looking for graphs, this video about the dot product from 3B1B may be more your speed: https://www.youtube.com/watch?v=LyGKycYT2v0


Hey everyone, I'm the author. I'm seeing a lot of the same comments here, so I want to address them.

I teach math by leading with examples. I try to show the intuition behind an idea, and why it is interesting. For this series, my reader is someone who knows algebra, and likes learning new things, especially when a teacher shows what is interesting about a topic.

## You didn't cover x about the dot product.

I try to only teach as much as is necessary to get the student to the next point, which is matrix multiplication. I usually end up cutting a lot of material out of my chapters to keep them simple. In this case, I cut out a whole section on the properties of a dot product, as well as a discussion about inner and outer products, because those weren't necessary to get to matrix multiplication. I think this context was lost while posting to HN.

## 3B1B already has a series on this.

I love 3B1B, but his style of teaching and mine are quite different. Even though we both teach visually, his videos are densely packed with information and his expectation is that you will watch the video a few times till you understand the topic. He also leads with math more than I do. My posts are written more like stories. My goal is they should be easy to get into, and by the time you have finished reading, you should understand more about the topic. I don't expect readers to read through multiple times. I personally learned linear algebra through Strang's videos and textbook, and those videos are awesome, but can be confusing. If you found the Strang or 3b1b videos confusing, hopefully my posts will make it easier for you to follow them. I think comment is spot on: https://news.ycombinator.com/item?id=45800657

If these ideas resonate with you, I think you'll like this post, and if not, there are plenty of guides that go the more traditional route. You can also read the first post in the series and see if you like it: https://www.ducktyped.org/p/an-illustrated-introduction-to-l...

For another example of my writing, see my series on AWS: https://www.ducktyped.org/p/a-mini-book-on-aws-networking-in...


> I teach math by leading with examples

This the only way to teach to humans.

Any time linear algebra comes up, I make it a point to drop Pavel's videos: https://www.youtube.com/playlist?list=PLlXfTHzgMRUKXD88IdzS1....


I try to only teach as much as is necessary to get the student to the next point, which is matrix multiplication

Preemptively noting: this is also Strang's strategy.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: