Jacob (@jcsherin) profile picture

Programmer

Joined September 2015
Jacob retweeted
TLAPS-Bench aims to raise the standard of TLA+ spec from "checked" to "proved." We keep being impressed by the rapid advances in the proof capabilities of frontier models in the past 6 months. Today, we're able to prove most protocol-level specs in TLA+ with reasonable cost. System-level specs are still nontrivial, but honestly are not out of reach especially given the crazy speed of AI. What I like the most is Tilapia 🐟 TLA+ Proof Infrastructure for Agents 🐟 the name is coined by @muratdemirbas, and the proofs we generated using Tilapia for many system/protocol specs that were not proved before. No matter how models evolve, Tilapia will be a useful proof service for TLA+. The project is a huge effort across 11 organizations. I got to collaborate with many core @tlaplus colleagues I admire. @lemmster proposed the project in May and @qiancheng9788 drives it since then. Great work!
Meet TLAPS-Bench: A new benchmark of 265 real-world #TLAPlus proof targets to push AI agents to crack machine-checked correctness proofs using #TLAPS 44.3% rate at pass@3 46 bugs found Paper: arxiv.org/abs/2611.02849 Code: github.com/specula-org/TLAPS… lnkd.in/p/g3ET9E8H
1
10
37
2,131
Jacob retweeted
How we improved bloom filters in parquet-rs [1], now adopted by ClickHouse [2]: pydantic.dev/articles/bloom-… [1]: github.com/apache/arrow-rs/p… [2]: github.com/ClickHouse/ClickH…
5
24
2
210
16,896
The ALP encoding is now officially part of @ApacheParquet. parquet.apache.org/blog/2026…
1
15
1
110
6,084
Super excited to share "A Design Space Exploration of Async/Await". How differently does async/await behave across today's languages? (More than you might expect!) And what *is* "structured concurrency"? Check out our ~interactive~ blog post on the paper: cel.cs.brown.edu/blog/design…
22
101
7
537
34,293
Jacob retweeted
I've published Sapporta - a framework to build database applications targeted at power users. It makes your applications agentic by default, and provides a rich data-grid for every table you define. It is the 80s technologies, - dBase, FoxPro etc. - but with LLMs. Try it out - the demos need no login.
1
4
11
400
At TigerBeetle, as systems engineers, we: 1. write code, sharpening skill and second order understanding 2. read code, walking through the building to constantly improve things 3. review code, ensuring no code is merged without two engineers’ understanding and review.
18
42
3
436
16,765
excited to get this out there in the hopes that other folks can benefit from our work here! a lot goes into making a good tokenizer also wanna make sure I thank the tantivy folks, we've built our earlier tokenizers (everything before word_v4) atop their lovely open sourced work
so @morgallant has optimized FTS tokenization throughput to 423 MiB/s and open-sourced it (github.com/turbopuffer/alyze) I keep telling him that it would be really high agency to get to DRAM bandwidth (~100 GiB/s), and he keeps getting annoyed at me and making it faster
3
1
13
1,795
Another example of incorporating the latest Database Research (in this case Limit Pruning from ❄️) in @ApacheDataFusio datafusion.apache.org/blog/2….
8
65
3,782
I wanted to understand how to generate my own vector embeddings and understand semantic search in general without external services. It became a significant rabbit hole. I wrote a post on some of what I learned.
9
31
4
406
31,174
You can use @ApacheParquet for Vector Search with embedded indexes: > We don’t change the file format; we just tune it. @MOVNTDQ explains how in blog.xiangpeng.systems/posts…
7
31
3
329
17,552
DataFusion 52 is released datafusion.apache.org/blog/2…
11
68
3,949
New paper by Nancy Lynch summarizing her career's influence on the field of distributed computing. arxiv.org/pdf/2502.20468 If you don't know who she is, she's the L in FLP and DLS. @MarcJBrooker has a good summary article: brooker.co.za/blog/2014/05/1…
5
17
65
5,180
Been working on a tiny LLM service to help me write prompts just like regular well-typed application code. Here's a sample use case - map freeform text to an address form:
1
1
1
213
Jacob retweeted
For everyone interested in data infra, want to get a quick sense of how big data works, how data systems are designed, and what the tradeoffs are, start with this share from @MOVNTDQ, really nice intro! intro-data-system.xiangpeng.…
8
42
2
296
22,036
Excited to announce a new side project, a power user terminal UI for your personal finances: moneyflow.dev/ For years I've used personal finance tools like Mint and now Monarch. The data cleaning can be slow and tedious, so I made this to speed that up!
6
12
194
22,257
Replying to @ApacheDataFusio
@ApacheDataFusio 's policy for AI assisted contribution: AI is great, but not AI dumps: maintainers could finish the task faster by using AI directly, and the submitters gain little knowledge when acting as a pass through AI proxy. datafusion.apache.org/contri…
4
4
1
32
3,904
First one is: "Speedrunning the lakehouse" by Jacopo Tagliabue (CTO of Bauplan) He asks: What if we started from scratch? Building a lakehouse infrastructure from scratch. Hilarious, funny, and informative youtube.com/watch?v=dvBRC9nU…
1
2
7
2,670
Jacob retweeted
We use asserts all the time in Turso DB and also in the Turso Server. They're in release builds and shipped to production. And yes, they could crash the server. Asserts are my favorites, and I use them whenever possible. Just yesterday I merged a PR that contained asserts and nothing more. So when do you use them? Use asserts for checking invariants. If that invariant has failed, then something must have gone horribly wrong; I'd prefer to crash the server than continue. Like this made-up example: let a = 5; let b = 7; assert!(a < b, "likely the world has ended"); Asserts help quickly catch logical bugs and prevent something catastrophic. In a database, if some invariant isn't holding up, it could lead to corruption, data loss, or failure of ACID guarantees. Crashing is preferred over proceeding. However, it's incorrect to use them as error handling. 1. You can assert that a write txn has the exclusive write lock before it writes 2. When you read a page from disk, if the read is successful, you can assert that the page exists in the buffer pool 3. Like in MVCC, you can assert that the row's timestamp is less than the txn's (i.e., a txn cannot read rows from some future txn) In practice, we have two macros: `assert` and `debug_assert`. We have a friendly wrapper on top of these. `debug_assert` is fatal in debug builds and logs the condition and message as an error in release builds. `assert` is shipped in both - it's fatal on failure. Rust has a rich type system. Sometimes types help, but most of the time we need asserts. Last year I spent a lot of time writing state machines and used plenty of asserts to check conditions. For example, if the code isn't supposed to be in state X without condition A being true, that's checked with an assert. Asserts also go well with Deterministic Simulation Testing. DST is the one strong reason that we have asserts all over the place. DST is that magical testing philosophy which lets you reproduce the super hard bugs easily. I keep running the simulator, let the asserts fail and then fix the logical bug. We don't use asserts for data from user inputs or S3 (we assume S3 could get corrupted), and for tenant-specific cases we raise errors instead since we're multi-tenant.
Arguably, Go doesn't have asserts because, well, Pike doesn't like them 🥲
11
6
6
139
46,901