← Back
FeaturedTechTips & Opinions#GPT-5.6 Sol Pro#JSON#SQLite#Zstandard#Compression#Version History

SQLite Compressed Text History Prototype: Efficient Version Storage via zstd-Compressed JSON Array

Simon Willison 博客(Atom)T2
06:0508/10, 06:05 AMCommunityRead the original ↗Export MD ↓

Score

73
Information gain8 ×0.3

提出了一个鲜为人知但巧妙的压缩存储方案,并附有具体压缩比和分块策略,提供了可操作的技术增量。

Content quality8 ×0.2

内容源于真实开发者实践,数据清晰,过程可复现,属于高质量技术博客内容。

Practical value7 ×0.2

对于需要在SQLite中存储文本历史的开发者,给出了可借鉴的实现思路和性能基准。

Timeliness9 ×0.15

发布于2026年8月,且使用了新的GPT-5.6模型,具有较强的时效性。

Source reliability9 ×0.15

Simon Willison是知名开发者与博客作者,信源可信度高,且内容基于自身实验。

Base 81 × T2 Source weight ×0.9 = 73

Curation line 70Selected

Why selected

The prototype provides concrete compression efficiency metrics and implementation details that can be directly referenced or reproduced, while also demonstrating the potential of AI-assisted rapid idea validation.

AI commentary

「What's most valuable here is how AI voice discussion and prototype development are chained together, showing AI can not only answer questions but also actively validate a spur-of-the-moment technical idea. For anyone building local-first or lightweight apps, this compression scheme is worth copying directly; for others, it's a fast demonstration of going from idea to implementation.」

Quick overview

Simon Willison had a new idea during a dog walk: bundle all historical versions of a document into a JSON array, then compress the whole thing with zlib or zstd before storing it in SQLite, avoiding the huge redundancy of per-row storage. After discussing the concept with ChatGPT voice mode, he asked GPT-5.6 Sol Pro to build a Python prototype. The experiment showed that 1,000 simulated revisions generated 20.4 MB of raw text, which compressed to just 80.3 KB with Zstandard. To avoid decompressing and recompressing the entire array on every edit, the prototype splits history into multiple rows, each capped at 128 revisions or 3 MB of uncompressed JSON. This offers a remarkably simple yet efficient reference for version tracking in relational databases.

  • Proposed storing all historical versions in a single JSON array and compressing it as a whole, significantly reducing redundancy.
  • GPT-5.6 Sol Pro implemented a Python prototype in 38 minutes.
  • Experimental result: 20.4 MB of raw revision text compressed to just 80.3 KB with Zstandard.
  • To avoid recompressing the entire array on each edit, history is split into rows capped at 128 revisions or 3 MB of uncompressed JSON.

Full text

Showing the source text; the full translation is being generated.

Research: SQLite compressed text-history prototypes

I'm perennially interested in options for storing revision histories in relational databases. While out on a dog walk I had a new idea: how about taking the full text of every prior version in a big JSON array of strings and then applying zlib or zstd compression to the whole thing? Surely that would compress really well due to all of the repeated strings.

The new GPT‑Live voice mode in the ChatGPT iPhone app has got really good, so I discussed the prototype with that. You still can't share URLs to voice conversations, but here's what I said copied from the transcript as a proper stream of consciousness:

I have an interesting idea for a scheme for saving all previous versions of a piece of text that's constantly edited in a SQLite database um column in as efficient a way as possible. Okay, so I built these kinds of systems in the past, and it's always difficult to come up with a efficient way to do this. Like the easiest way is you have a row for every previous copy of the previous previous value of the string. But if it's a long document Like20 kilobytes of data, that means that every single edit adds another 20 kilobytes of data to the database, right. So, what I've now thinking, is um compression would work really well, right? If you Bundle all of those different um Every every version of this document all the way back to the start if you were to apply a good compression algorithm to them that should basically wipe out huge amounts of the redund- the um redundant text, right Um, so what I'd thinking is how about really, really simple mechanism There is a history column on the single on this uh uh table and it's a blob, it's a BLOB so it stores binary data and then you just stick in there a Zlib or maybe even ZSTD um compressed JSON text array of all of the previous documents, and so you probably have two columns, right? You'd have a column that's this magic JSON array of text You have a second column which is a JSON array of timestamps and that doesn't need to be compressed at all, right? A timestamp can just be a uh- it's an array of integers, right? Unix integers But that's the whole scheme.

Then I stopped voice mode and typed the following text prompt to GPT-5.6 Sol Pro:

Use Python and Build experimental prototypes around this idea

It churned away for 38 minutes and delivered this answer plus the files you see in this folder.

The approach works really well! 1,000 simulated revisions to a document resulted in 20.4 MB of raw revision text that compressed to 80.3 KB as Zstandard-compressed JSON array.

To avoid the overhead of decompressing and recompressing the entire array on every edit Sol suggested breaking the history up into multiple rows, with each one containing a maximum of either 128 revisions or 3MB of uncompressed JSON.

Tags: compression, sqlite, speech-to-text

Related items

84

Five-dimension score

Information gain8 ×0.3

文章提供了基于真实场景的评估方法论,且来自官方工程实践,信息增量高。

Content quality9 ×0.2

内容结构清晰,案例与建议具体,写作质量高。

Practical value9 ×0.2

给出了可落地的评估框架,对开发者和安全团队有直接参考价值。

Timeliness7 ×0.15

虽为常青内容,但当前LLM评估领域快速演进,发布时间有一定滞后。

Source reliability9 ×0.15

GitHub 官方博客,信源权威可信。

Base 84 × T1 Source weight ×1 = 84

Curation line 60Selected

05:35GitHub Blog(网页)T1Web

FeaturedHow to Evaluate LLMs Before Production: Lessons from GitHub

GitHub 实战分享:如何在生产前评估 LLM

This practical guide stands out because it comes from a real security scenario, not theoretical reasoning. Teams integrating LLMs into production, especially those working on security scanning and data-sensitive engineering, should definitely read it. I recommend designing evaluation sets around your own business data rather than blindly adopting public benchmarks.

AITips#GitHub#LLM#Secret Scanning
84

Five-dimension score

Information gain9 ×0.3

本文披露 Ruff 默认规则的大幅扩展及具体迁移方法,对 Python 开发者有较高信息增量

Content quality9 ×0.2

结构清晰,包含具体统计数据、命令示例和 AI 集成案例,质量上乘

Practical value10 ×0.2

提供了可立即执行的一行命令和修复策略,对真实开发场景有直接帮助

Timeliness10 ×0.15

文章发布于版本发布后两天,非常及时

Source reliability9 ×0.15

来自知名技术博主 Simon Willison,长期维护多个 Python 项目,信源可靠

Base 93.5 × T2 Source weight ×0.9 = 84

Curation line 70Selected

06:44Simon Willison 博客(Atom)T2Community

FeaturedRuff v0.16.0 Released: Default Rules Jump from 59 to 413, CI Pipelines Need Attention

Ruff v0.16.0 发布:默认规则从59条激增至413条,CI工作流需关注

For Python developers, this is an unmissable update signal. The significant increase in Ruff's default rules means we can no longer ignore potential issues in our code, and AI fix tools can lower the upgrade cost. Notably, Astral (OpenAI) is deeply integrating AI coding capabilities with static analysis tools, which may become the norm in future engineering practices.

TechProducts#Astral#CI/CD#OpenAI
81

Five-dimension score

Information gain8 ×0.3

提供了OpenRouter团队支出控制的具体配置步骤,对多数用户是新增信息。

Content quality7 ×0.2

内容来自官方博客,结构清晰,但篇幅较短,覆盖有限。

Practical value9 ×0.2

可直接用于企业AI API成本治理,操作性强。

Timeliness7 ×0.15

AI成本管理正值关注期,教程发布及时。

Source reliability10 ×0.15

OpenRouter官方博文,信源可靠。

Base 81.5 × T1 Source weight ×1 = 81

Curation line 60Selected

08:00OpenRouter:Announcements(RSS)T1RSS

FeaturedOpenRouter Team AI Spend Controls Setup Tutorial

OpenRouter 团队 AI 支出控制设置教程

As AI API spending balloons, OpenRouter's official governance tutorial signals that platforms are taking enterprise cost management seriously. Rather than waiting for bill shock, teams should configure these guardrails early. This is especially valuable for platform engineers and finance owners overseeing AI usage.

AITips#API Management#OpenRouter#Team Management
81

Five-dimension score

Information gain9 ×0.3

展示了Anthropic内部对自家AI编码工具的实际使用数据(65% PR)、系统提示削减80%等未公开细节,信息增量极大。

Content quality8 ×0.2

内容来自一手访谈,逻辑清晰,引用了具体数据和案例,但部分观点偏主观且未给出对照实验。

Practical value9 ×0.2

对AI产品开发者和软件工程师有直接指导意义,提供了如何利用AI代理改变工作流、提升产品品味的可操作建议。

Timeliness10 ×0.15

2026年7月发布的Claude Tag最新信息,紧贴当前AI编码代理发展动态。

Source reliability9 ×0.15

来源为知名AI技术专家Simon Willison的博客,引用Anthropic团队原话,可信度很高。

Base 89.5 × T2 Source weight ×0.9 = 81

Curation line 70Selected

20:54Simon Willison 博客(Atom)T2Community2 sources

FeaturedFireside Chat with Anthropic's Claude Code Team: How AI Coding Agents Reshape Software Development

Anthropic Claude Code 团队炉边谈话:AI 编码代理如何重塑软件开发

The value of this fireside chat lies not in repeating Claude Code's features, but in revealing how Anthropic internally redefines engineering processes—shifting from 'execution-heavy' to 'taste-heavy'. For anyone in an AI product team, Cat's point that 'product taste outweighs execution' is worth pondering. Thariq's subversion of the 'never rewrite' rule also reminds us that traditional software engineering principles are being rewritten by AI capabilities.

TechModels#AI Coding Agent#Anthropic#Claude Code
80

Five-dimension score

Information gain7 ×0.3

提供了具体的GPU闲置原因和开源工具方案,但核心观点并不算全新。

Content quality8 ×0.2

类比生动,结构清晰,案例与工具推荐具体,可读性强。

Practical value9 ×0.2

对于正在优化AI算力成本的团队具有直接操作指导意义。

Timeliness9 ×0.15

2025年AI推理成本压力持续加大,文章发布时机恰当。

Source reliability8 ×0.15

Hugging Face官方博客平台,但作者社区身份导致权威性一般。

Base 80.5 × T1 Source weight ×1 = 80

Curation line 60Selected

23:09Hugging Face:Blog(RSS)T1RSS

FeaturedGPU Management: Why Idle GPUs Are the New Grounded Aircraft

GPU管理:闲置GPU为何成为新的停飞飞机

This blog is worth reading because it elevates GPU resource management to an economic perspective, using the grounded aircraft analogy to visualize waste. Teams using Kubernetes for GPU clusters can immediately try the recommended tools. However, users in China should note the compatibility of some tools outside AWS/GCP environments.

TechTips#GPU Management#Hugging Face#Kubernetes
80

Five-dimension score

Information gain8 ×0.3

揭示了Ethan Mollick指南的年度演变并澄清了ChatGPT/Claude多种模式的混乱命名,信息增量高。

Content quality9 ×0.2

源于Simon Willison的权威博客,内容准确且有深度,结构清晰。

Practical value9 ×0.2

为AI用户提供了选择代理模式的明确指引,能直接指导实际部署。

Timeliness9 ×0.15

反映了2026年的最新产品状态和趋势,极具时效性。

Source reliability10 ×0.15

Simon Willison是知名AI开发者/博主,内容基于Ethan Mollick的原始指南,信源权威。

Base 88.5 × T2 Source weight ×0.9 = 80

Curation line 70Selected

05:55Simon Willison 博客(Atom)T2Community

FeaturedAn Opinionated Guide to Which AI to Use to Do Stuff

一份主观指南:如何选择AI来做事情

This blog post is Simon Willison's refined take on Ethan Mollick's guide, ideal for developers and power users struggling to choose between ChatGPT and Claude and their various agent modes. It cuts through the confusion of product naming and unintuitive platform differences, offering clarity that saves hours of trial and error.

AIModels#Anthropic#ChatGPT#Claude
80

Five-dimension score

Information gain8 ×0.3

PyPI 的这一安全规则此前未被广泛报道,对社区有较高的信息增量。

Content quality9 ×0.2

引用官方博客原始声明,数据准确,逻辑清晰,表述规范。

Practical value9 ×0.2

对于所有 PyPI 项目维护者及依赖 Python 的团队,直接影响发布流程和安全策略。

Timeliness10 ×0.15

文章发布日期为2026年7月23日,与规则生效日一致,时效性极高。

Source reliability9 ×0.15

来源为 PyPI 官方博客,作者 Seth Larson 为 PyPI 安全团队成员,可信度高。

Base 88.5 × T2 Source weight ×0.9 = 80

Curation line 70Selected

12:50Simon Willison 博客(Atom)T2Community

FeaturedPyPI Implements 14-Day Upload Window to Prevent Supply Chain Poisoning

PyPI 实施14天上传期限以防止供应链投毒

This is a critical message for the Python ecosystem. If you maintain any PyPI project, check your release workflow immediately — the 14-day window means you can no longer patch or overwrite files on old releases; you must publish a new version. For security teams, this is a best practice in supply chain security worth emulating by other package managers.

TechIndustry#PyPI#Python#Upload Restriction
80

Five-dimension score

Information gain8 ×0.3

提供了具体的迁移决策过程、性能收益(CPU/内存/成本)和代码变更量,这些细节不常见,信息增量高。

Content quality9 ×0.2

内容结构清晰,数据准确,引用原始PR和社区讨论,质量上乘。

Practical value9 ×0.2

对中小型技术团队有直接借鉴意义,展示了SQLite在2026年的实际生产力,实用价值极高。

Timeliness10 ×0.15

迁移刚刚完成(2026年7月),属于最新动态,时效性满分。

Source reliability9 ×0.15

来源为Simon Willison博客(知名技术博主),且引用了Lobsters官方PR和社区讨论,可信度高。

Base 88.5 × T2 Source weight ×0.9 = 80

Curation line 70Selected

03:44Simon Willison 博客(Atom)T2Community

FeaturedLobsters Community Successfully Migrates to SQLite: A Win for Single-Server Architecture

Lobsters 社区成功迁移至 SQLite:单服务器架构的胜利

This migration case is particularly noteworthy because it challenges the conventional wisdom that small sites must adopt distributed databases. Lobsters proves that in 2026, a single server with SQLite can handle an active community. For startup teams struggling with overcomplicated tech stacks, this is an excellent reference for cost reduction and efficiency improvement.

TechProducts#Lobsters#MariaDB#Rails

Verify against the original source before citing