Top all-time · #6027
rand[om]
Personal blog · ricardoanderegg.com/posts · on HN as polyranddataprogrammingai
rand[om] is a personal blog at ricardoanderegg.com about data, programming and ai. Since 2020, 13 different Hacker News readers have linked it 64 times, most often “Extending SQLite with Rust”. It is still writing: the last post was on 2026-01-27, and you can follow it by feed.
Too few sampled comments (3) to say how often HN recommends it.?
Why HN links it
HN commenters link this blog's posts as follow-ups or sources: DuckDB 0.10 vector capabilities, moving Apple Notes to Obsidian as a CMS, and extending SQLite with Rust.
Summarised by Claude from a sample of 3 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Hello there! I’m Ricardo, and here are some facts about me and things I’ve done/do: Medical doctor Self-taught software engineer Working on data engineering and machine learning projects …
Most-linked posts?
- Extending SQLite with Rust4 people · 6 mentions · first linked 2022-05-15
- Peeking and Backtracking Python Generators3 people · 3 mentions · first linked 2022-05-28
- Building HTML components from Python functions2 people · 4 mentions · first linked 2024-01-11
- /posts/apple-notes-to-obsidian/2 people · 2 mentions · first linked 2023-03-15
- DuckDB as a Vector Database2 people · 2 mentions · first linked 2024-02-13
- Makefile Tricks for Python Projects2 people · 2 mentions · first linked 2023-05-19
- Getting Better at Coding with LLMs2 people · 2 mentions · first linked 2026-02-05
What Hacker News says?
For what it's worth. One thing I really like about `htpy` is that the element attributes go before the child elements. I find this easier to write and read. Other things I like: Having child elements as a list (i.e: the __getitem__ override) makes it convenient to build elements based on simple conditions + list comprehensions. This can be done with other frameworks, but it seems more natural to me when using `htpy`…
Comment linking /posts/python-build-html-components-lxml/
on “FastHTML – Modern web applications in pure Python”Submitted Extending SQLite with Rust as a story · 137 points
HN discussionInstead of containers, which may not always be available, I'm experimenting with having control over the shell to whitelist the commands that the LLM can run [0]. Similar to an allow list, but configured outside the terminal agent. Also trying to make it easy to use the same technique in macOS and Linux [0]: https://ricardoanderegg.com/posts/control-shell-permissions-...
Comment linking /posts/control-shell-permissions-llm-codex/
on “Claude Code 2.0”Submitted Heroku-style deployments with Docker and Git tags as a story · 124 points
HN discussionI have been using Cloudflare pages for some time, only for small sites[0]. Today I also moved my main blog[1] to it. Both pages are small, so this is not a serious review. I moved from Netlify. The main reasons are DNS and analytics. I already manage all my DNS with Cloudflare, and having everything in the same place is very convenient. Regarding analytics, Cloudflare provides some very basic analytics, which I thin…
Comment linking /
on “Cloudflare Pages is now Generally Available”Submitted Understanding Bloom filters by building one as a story · 90 points
HN discussionAdding user-defined functions to SQLite is not difficult, and the mechanism is quite flexible. You can create extensions and load them when you create the SQLite connection to have the functions available in queries. I wrote a blog post explaining how to do that using Rust, and the example is precisely a `regex_extract` function [0]. If you need them, you also have a "stdlib" implemented for Go [1] and a pretty exte…
Comment linking /posts/extending-sqlite-with-rust/
on “SQLite: Past, Present, and Future”Submitted Manual work is better than bad automation as a story · 59 points
HN discussionThis is wonderful, I love it. I recently wrote a blog post about generating HTML in Python using LXML ( https://ricardoanderegg.com/posts/python-build-html-componen... ) and I didn't know about your library. I'll update it to add a mention to it. Apart from the simplicity, I like the fact you can "install" it by copy-pasting the code at the top of your script, or running: curl -L https://raw.githubusercontent.com/j4…
Comment linking /posts/python-build-html-components-lxml/
on “Ludic: New framework for Python with seamless Htmx support”Submitted Put your bash code in functions as a story · 23 points
HN discussionI think these kinds of tools are awesome, although I normally prefer not having to rely on getting the functions/classes/types defined for me, I usually find it easier to just use lxml[0] to build HTML components from composable Python functions[1], similar to React. [0]: https://lxml.de/lxmlhtml.html#creating-html-with-the-e-facto... [1]: https://ricardoanderegg.com/posts/python-build-html-componen...
Comment linking /posts/python-build-html-components-lxml/
on “Ludic: New framework for Python with seamless Htmx support”Submitted Extending SQLite with Rust as a story · 17 points
HN discussionNot only for classification, fastText is really good (and fast) at language identification[0] To use fastText in Python in a scikit-learn style (also inside sklearn pipelines), I’d recommend trying skift[1] [0] https://ricardoanderegg.com/posts/python-fast-language-ident... [1] https://github.com/shaypal5/skift
Comment linking /posts/python-fast-language-identification-fasttext/
on “FastText is the best text classification library for a quick baseline”Submitted DuckDB as a Vector Database as a story · 7 points
HN discussionYes! I love UDFs in SQLite: 1. I can just write functions in whatever programming language I want. 2. Not having to worry as much about overwriting other UDFs, since different connections can have the same UDF with a different implementation. 3. Having the DB (SQLite) and the function definitions in the same application code and in the same process makes some things a lot easier and flexible. I actually wrote about…
Comment linking /posts/sqlite-developer-experience/
on “Extending SQLite with Rust”Submitted The Best Code Is Easy Code as a story · 5 points
HN discussionI actually wrote a blog post about that: https://ricardoanderegg.com/posts/extending-sqlite-with-rust...
Comment linking /posts/extending-sqlite-with-rust/
on “SQLite 3.39.3”Submitted Using executable scripts instead of shell aliases as a story · 3 points
HN discussionThis looks fantastic! I also implemented one from scratch[0], and I was doing something very similar at first. Then I found the Python hash() function returns different outputs for the same input when you restart the interpreter. I really like your implementation, it's functional and easy to understand! [0] https://ricardoanderegg.com/posts/understanding-bloom-filter...
Comment linking /posts/understanding-bloom-filters/
on “Bloom filters explained in a single image”Submitted My Take on Web Components as a story · 3 points
HN discussionThere was a brief post yesterday on DuckDB 0.10's vector capabilities... https://news.ycombinator.com/item?id=39360225 https://ricardoanderegg.com/posts/duckdb-vector-database/
Comment linking /posts/duckdb-vector-database/
on “DuckDB 0.10.0”Submitted Building a Remote SQLite Explorer as a story · 3 points
HN discussionI kind of agree with the post. For me, this technique almost starts overlapping with literate programming[0]. One trick I use[1] is adding certain characters before the section name. e.g: ¡¡ settings This makes searching and jumping between sections a lot easier. [0]: https://en.wikipedia.org/wiki/Literate_programming [1]: https://ricardoanderegg.com/posts/write-apps-in-single-file/
Comment linking /posts/write-apps-in-single-file/
on “Should you split that file?”Submitted Extending SQLite with Rust as a story · 3 points
HN discussion> a period of inefficiency I think this is something people ignore, and is significant. The only way to get good at coding with LLMs is actually trying to do it. Even if it's inefficient or slower at first. It's just another skill to develop [0]. And it's not really about using all the plugins and features available. In fact, many plugins and features are counter-productive. Just learn how to prompt and steer the LL…
Comment linking /posts/getting-better-coding-llms-agents/
on “My AI Adoption Journey”Submitted Run your containers as non-root as a story · 3 points
HN discussionHey! I remember reading your blog post a few months ago, and it inspired me to try to create a CMS using Apple Notes + the IMAP syncing features[0]. But everything felt like a hack all the time. Many features are not supported when syncing over IMAP. I wanted to have access to the SQLite database, so I can't have a non-macOS VM syncing and processing notes continuously (or at least I couldn't find a tool that can do…
Comment linking /posts/apple-notes-to-obsidian/
on “Show HN: Apple Notes Liberator – Extract Notes.app Data and Save It as JSON”Submitted Building HTML components from Python functions as a story · 2 points
HN discussionYes, the IMAP sync protocol was one of my discoveries when trying to turn Apple Notes into a CMS[0]. But like you said, many features are missing. I could do without the collaboration features, but I found that tables didn't work either. A lot of the unsupported features just disappeared from the IMAP-synced note, so you can't recover them later if you move the note back to an iCloud account. [0]: https://ricardoand…
Comment linking /posts/apple-notes-blog-cms/
on “Show HN: Apple Notes Liberator – Extract Notes.app Data and Save It as JSON”Submitted Musings about Automation as a story · 2 points
HN discussion