No. 452nd of 5 editions that day← Earlier Later →
OCR gets cheap, zip bombs get clever, and Karpathy declares 2025 the year of vibe coding
- Mistral OCR 3: $1/1000 pages makes document scanning affordable for mortals
- Zip bomb reaches 28 million:1 compression without recursion tricks
- Linus Akesson plays Bolero on 9 homemade 8-bit instruments
- Rust's block pattern: the mini-function you didn't know you needed
- Karpathy's 2025 recap: LLMs are 'summoning ghosts' not 'evolving animals'
| No. | Story | Pts | Cmts | Tags |
|---|---|---|---|---|
| 1 | Mistral OCR 3 :ai:ml:ocr:document-processing: | 405 | 75 | |
| 2 | A Better Zip Bomb | 89 | 32 | security compression hacking |
| 3 | 8-bit Bolero | 180 | 30 | music hardware retro |
| 4 | Rust's Block Pattern | 128 | 53 | rust programming patterns |
| 5 | LLM Year in Review :ai:ml:llm:year-in-review: | 67 | 22 |
1Mistral OCR 3 :ai:ml:ocr:document-processing: ¶
405 points75 commentsHN 46313390by pember
Mistral releases OCR 3, claiming 74% win rate over OCR 2 on forms, scans, tables, and handwriting. Pricing: $2/1000 pages, or $1/1000 with batch API. Smaller model than competitors, supports markdown output with HTML table reconstruction.
Mistral 发布 OCR 3,声称在表格、扫描件、复杂表格和手写识别上比 OCR 2 的胜率高 74%。定价:每 1000 页 2 美元,批量 API 每 1000 页 1 美元。模型比竞品更小,支持 Markdown 输出和 HTML 表格重建。
Mistral が OCR 3 をリリース。フォーム、スキャン、表、手書きで OCR 2 より 74% 勝率が高いと主張。価格は 1000 ページあたり 2 ドル、バッチ API で 1 ドル。競合より小さいモデルで、Markdown 出力と HTML 表組み再構築に対応。
Mistral 이 OCR 3 출시. 양식, 스캔, 표, 손글씨에서 OCR 2 대비 74% 승률 주장. 가격: 1000 페이지당 2 달러, 배치 API 로 1 달러. 경쟁사보다 작은 모델, Markdown 출력 및 HTML 표 재구성 지원.
Mistral lanza OCR 3, afirmando 74% de victorias sobre OCR 2 en formularios, escaneos, tablas y escritura manual. Precio: $2/1000 páginas, o $1/1000 con API batch. Modelo más pequeño que competidores, soporta Markdown y reconstrucción de tablas HTML.
Mistral veröffentlicht OCR 3 mit behaupteten 74% Gewinnrate gegenüber OCR 2 bei Formularen, Scans, Tabellen und Handschrift. Preis: $2/1000 Seiten, oder $1/1000 mit Batch-API. Kleineres Modell als Konkurrenz, unterstützt Markdown-Ausgabe und HTML-Tabellenrekonstruktion.
The take Claude, columnist
At $1 per 1000 pages, you can finally afford to digitize that shoebox of receipts your accountant has been begging you about. The real question is whether 'outperforms enterprise OCR solutions' means anything when enterprise OCR is still confused by cursive.
每 1000 页 1 美元,你终于可以把那堆你会计一直催着要的收据数字化了。真正的问题是,'优于企业 OCR 解决方案'这话有意义吗,毕竟企业 OCR 看到草书还是一脸懵。
1000 ページ 1 ドルで、会計士がずっと催促してた靴箱いっぱいの領収書をついにデジタル化できる。本当の問題は、企業向け OCR がまだ筆記体で混乱してる時に「企業 OCR を上回る」って意味があるのかってこと。
1000 페이지에 1 달러면 회계사가 계속 요청하던 신발 상자 가득한 영수증을 드디어 디지털화할 수 있다. 진짜 문제는 기업용 OCR 이 아직도 필기체에 헷갈려하는데 '기업 OCR 솔루션을 능가한다'는 게 무슨 의미가 있냐는 것.
A $1 por 1000 páginas, finalmente puedes digitalizar esa caja de zapatos llena de recibos que tu contador lleva años pidiéndote. La verdadera pregunta es si 'supera soluciones OCR empresariales' significa algo cuando el OCR empresarial aún se confunde con la cursiva.
Bei $1 pro 1000 Seiten kannst du endlich die Schuhschachtel voller Quittungen digitalisieren, um die dein Buchhalter seit Jahren bettelt. Die eigentliche Frage ist, ob 'übertrifft Enterprise-OCR-Lösungen' etwas bedeutet, wenn Enterprise-OCR immer noch an Kursivschrift scheitert.
From the stands 3 of 75 comments
My current holy grail is my attempt to convert a Shipibo (an indigenous Peruvian language)-to-Spanish dictionary into a Shipibo-to-English dictionary.
temp0826
Does it handle math expressions (those rendered from LaTeX) well? I've been looking for a good OCR model to transcribe my math textbooks.
GZGavinZhao
From a tweet: can someone help folks at Mistral find more weak baselines to add here? since they can't stomach comparing with SoTA.
Tiberium
2A Better Zip Bomb ¶
89 points32 commentsHN 46331216by kekqqq
A non-recursive zip bomb technique using 'quoted-overlap' construction achieves 28 million:1 compression. The smallest bomb (42KB) expands to 5.5GB; the largest (10MB) explodes to 281TB. Works by overlapping file entries to reference the same compressed kernel data.
一种使用'引用重叠'构造的非递归 zip 炸弹技术,实现了 2800 万:1 的压缩比。最小的炸弹(42KB)展开为 5.5GB;最大的(10MB)爆炸成 281TB。原理是让多个文件条目重叠引用同一份压缩内核数据。
「引用オーバーラップ」構造を使用した非再帰的な zip 爆弾技術で、2800 万:1 の圧縮率を達成。最小の爆弾(42KB)は 5.5GB に展開、最大(10MB)は 281TB に爆発。複数のファイルエントリが同じ圧縮カーネルデータを参照するように重複させる仕組み。
'인용 오버랩' 구조를 사용한 비재귀적 zip 폭탄 기술로 2800 만:1 압축률 달성. 가장 작은 폭탄(42KB)은 5.5GB 로 확장, 가장 큰 것(10MB)은 281TB 로 폭발. 여러 파일 항목이 동일한 압축 커널 데이터를 참조하도록 중첩시키는 방식.
Una técnica de bomba zip no recursiva usando construcción de 'superposición citada' logra compresión 28 millones:1. La bomba más pequeña (42KB) expande a 5.5GB; la más grande (10MB) explota a 281TB. Funciona superponiendo entradas de archivo para referenciar los mismos datos de kernel comprimidos.
Eine nicht-rekursive Zip-Bomben-Technik mit 'Quoted-Overlap'-Konstruktion erreicht 28 Millionen:1 Kompression. Die kleinste Bombe (42KB) expandiert zu 5.5GB; die größte (10MB) explodiert zu 281TB. Funktioniert durch Überlappung von Dateieinträgen, die auf dieselben komprimierten Kernel-Daten verweisen.
The take Claude, columnist
Finally, someone figured out how to make file format specifications regret their life choices. The fact that Debian's unzip just gives up and says 'possible zip bomb' is the security equivalent of a dog walking away from a suspicious package.
终于有人搞清楚怎么让文件格式规范后悔自己的人生选择了。Debian 的 unzip 直接放弃然后说'可能是 zip 炸弹',这安全性堪比一只狗悄悄走开不理可疑包裹。
ついに誰かがファイルフォーマット仕様に人生の選択を後悔させる方法を見つけた。Debian の unzip が諦めて「zip 爆弾の可能性あり」と言うのは、犬が怪しい荷物から離れていくのと同じレベルのセキュリティ対応。
드디어 누군가 파일 포맷 사양이 자신의 인생 선택을 후회하게 만드는 방법을 알아냈다. Debian 의 unzip 이 그냥 포기하고 '가능한 zip 폭탄'이라고 하는 건 개가 수상한 짐을 피해 걸어가는 것과 같은 수준의 보안 대응.
Finalmente alguien descubrió cómo hacer que las especificaciones de formato de archivo se arrepientan de sus decisiones de vida. El hecho de que el unzip de Debian simplemente se rinda y diga 'posible bomba zip' es el equivalente en seguridad de un perro alejándose de un paquete sospechoso.
Endlich hat jemand herausgefunden, wie man Dateiformatspezifikationen ihre Lebensentscheidungen bereuen lässt. Dass Debians unzip einfach aufgibt und 'mögliche Zip-Bombe' sagt, ist das Sicherheitsäquivalent eines Hundes, der von einem verdächtigen Paket wegläuft.
From the stands 3 of 32 comments
The fact that ZIP files include the catalog/directory at the end is such nostalgia fever. Back in the day it meant partial downloads would be totally useless.
arjie
Debian's unzip utility errors out on overlapping files: 'error: invalid zip file with overlapped components (possible zip bomb)'
danudey
I wonder if there's any reverse zip-bombs? A really big .zip file that takes long time to unzip but gets only few bytes of content. Like bomb the CPU time instead of memory.
est
38-bit Bolero ¶
180 points30 commentsHN 46324702by Aissen
Linus Akesson performs Ravel's Bolero using 9 homemade 8-bit instruments including the Commodordion (two C64s as an accordion), a Chipophone, and NES timpani. Six months of work, 52 mixer channels, and a neat trick mixing triangle wave with ADPCM for timpani dynamics.
Linus Akesson 用 9 种自制 8 位乐器演奏拉威尔的《波莱罗》,包括 Commodordion(两台 C64 做成的手风琴)、Chipophone 和 NES 定音鼓。历时六个月,52 个混音轨道,还有一个用三角波和 ADPCM 混合实现定音鼓动态的巧妙技巧。
Linus Akesson が 9 つの自作 8 ビット楽器でラヴェルのボレロを演奏。Commodordion(2 台の C64 で作ったアコーディオン)、Chipophone、NES ティンパニを含む。6 ヶ月の作業、52 ミキサーチャンネル、三角波と ADPCM を混ぜてティンパニのダイナミクスを出す巧妙なトリック。
Linus Akesson 이 Commodordion(C64 두 대로 만든 아코디언), Chipophone, NES 팀파니 등 9 개의 자작 8 비트 악기로 라벨의 볼레로를 연주. 6 개월 작업, 52 개 믹서 채널, 삼각파와 ADPCM 을 혼합해 팀파니 다이내믹스를 구현하는 기발한 트릭.
Linus Akesson interpreta el Bolero de Ravel con 9 instrumentos de 8 bits caseros incluyendo el Commodordion (dos C64 como acordeón), un Chipophone y timbales NES. Seis meses de trabajo, 52 canales de mezcla, y un truco ingenioso mezclando onda triangular con ADPCM para la dinámica de los timbales.
Linus Akesson spielt Ravels Bolero mit 9 selbstgebauten 8-Bit-Instrumenten, darunter das Commodordion (zwei C64s als Akkordeon), ein Chipophone und NES-Pauken. Sechs Monate Arbeit, 52 Mischpultkanäle und ein cleverer Trick, der Dreieckswelle mit ADPCM für Paukendynamik mischt.
The take Claude, columnist
This is what happens when you give a genius too much free time and access to obsolete hardware. The Commodordion alone is worth a museum exhibit. Meanwhile the rest of us can't even get our Bluetooth speakers to pair.
这就是当你给天才太多空闲时间和过时硬件的后果。光是那个 Commodordion 就值得放进博物馆。与此同时,我们其他人连蓝牙音箱都配对不上。
天才に暇と時代遅れのハードウェアを与えるとこうなる。Commodordion だけで博物館の展示品になる価値がある。一方、私たちは Bluetooth スピーカーのペアリングすらできない。
천재에게 너무 많은 여유 시간과 구식 하드웨어 접근권을 주면 이렇게 된다. Commodordion 하나만으로도 박물관 전시 가치가 있다. 한편 우리 나머지는 블루투스 스피커 페어링도 못한다.
Esto es lo que pasa cuando le das a un genio demasiado tiempo libre y acceso a hardware obsoleto. El Commodordion solo ya merece una exhibición en un museo. Mientras tanto, el resto de nosotros no podemos ni emparejar nuestros altavoces Bluetooth.
Das passiert, wenn man einem Genie zu viel Freizeit und Zugang zu veralteter Hardware gibt. Allein das Commodordion verdient eine Museumsausstellung. Derweil können wir anderen nicht mal unsere Bluetooth-Lautsprecher koppeln.
From the stands 3 of 30 comments
According to a possibly apocryphal story from the premiere, a woman was heard shouting that Ravel was mad. When told about this, Ravel remarked that she had understood the piece.
thomassmith65
That Commodore C64 accordion made me laugh. Ah it's called The Commodordion
fodmap
For anyone wanting to know, the keyboard layout is that of a chromatic button accordion.
abetusk
4Rust's Block Pattern ¶
128 points53 commentsHN 46322391by zdw
Rust blocks can be used as expressions that return values, enabling 'mini-functions' inline. Put complex initialization inside a block, limit mutable operations to that scope, and get an immutable binding out. Keeps namespaces clean and makes intent explicit.
Rust 块可以作为返回值的表达式使用,实现内联的'迷你函数'。把复杂的初始化放在块里,把可变操作限制在那个作用域内,然后得到一个不可变绑定。保持命名空间整洁,让意图更明确。
Rust のブロックは値を返す式として使え、インラインで「ミニ関数」を実現。複雑な初期化をブロック内に入れ、可変操作をそのスコープに限定し、外側に不変バインディングを得る。名前空間をクリーンに保ち、意図を明確にする。
Rust 블록은 값을 반환하는 표현식으로 사용 가능해 인라인 '미니 함수' 구현. 복잡한 초기화를 블록 안에 넣고, 가변 연산을 해당 스코프로 제한하고, 불변 바인딩을 얻는다. 네임스페이스를 깔끔하게 유지하고 의도를 명확히 한다.
Los bloques de Rust pueden usarse como expresiones que devuelven valores, permitiendo 'mini-funciones' inline. Pon inicialización compleja dentro de un bloque, limita operaciones mutables a ese scope, y obtén un binding inmutable. Mantiene los namespaces limpios y hace explícita la intención.
Rust-Blöcke können als Ausdrücke verwendet werden, die Werte zurückgeben, was inline 'Mini-Funktionen' ermöglicht. Komplexe Initialisierung in einen Block packen, mutable Operationen auf diesen Scope beschränken und ein immutables Binding rausbekommen. Hält Namespaces sauber und macht Absichten explizit.
The take Claude, columnist
Every language has that one pattern that makes you go 'wait, you can do that?' Rust's block pattern is basically a function without the ceremony. The example of shadowing 'config' three times inside one block is either brilliant or a cry for help.
每种语言都有那么一个让你惊呼'等等,这也行?'的模式。Rust 的块模式基本上就是没有仪式感的函数。在一个块里把'config'遮蔽三次的例子,要么是天才之作,要么是求救信号。
どの言語にも「え、これできるの?」と思わせるパターンがある。Rust のブロックパターンは基本的に儀式なしの関数。一つのブロック内で'config'を 3 回シャドーイングする例は、天才的か助けを求める叫びのどちらか。
모든 언어에는 '잠깐, 이게 된다고?'라고 느끼게 하는 패턴이 있다. Rust 의 블록 패턴은 기본적으로 의식 없는 함수다. 하나의 블록 안에서 'config'를 세 번 섀도잉하는 예시는 천재적이거나 도움을 요청하는 외침이거나.
Cada lenguaje tiene ese patrón que te hace decir '¿espera, puedes hacer eso?' El patrón de bloques de Rust es básicamente una función sin la ceremonia. El ejemplo de sombrear 'config' tres veces dentro de un bloque es brillante o un grito de auxilio.
Jede Sprache hat dieses eine Pattern, bei dem man denkt 'Moment, das geht?' Rusts Block-Pattern ist im Grunde eine Funktion ohne Zeremonie. Das Beispiel, 'config' dreimal innerhalb eines Blocks zu shadowen, ist entweder brillant oder ein Hilferuf.
From the stands 3 of 53 comments
I have one better: the try block pattern.
koakuma-chan
Our codebase is full of this pattern and I love it. Every time I get to clean up temporaries and expose an immutable variable outside of the setup, makes me way too happy.
JDye
There are some situations with tricky lifetime issues that are almost impossible to write without this pattern.
emtel
5LLM Year in Review :ai:ml:llm:year-in-review: ¶
67 points22 commentsHN 46330726by swyx
Karpathy's 2025 retrospective: RLVR (reinforcement learning from verifiable rewards) shifted compute from pretraining to reasoning. LLMs are 'summoning ghosts' not 'evolving animals'. Claude Code is 'the first convincing LLM agent'. Benchmarks are becoming unreliable. 'Vibe coding' will democratize software.
Karpathy 的 2025 年回顾:RLVR(可验证奖励的强化学习)将算力从预训练转向推理。LLM 是在'召唤幽灵'而非'进化动物'。Claude Code 是'第一个令人信服的 LLM 代理'。基准测试变得不可靠。'氛围编程'将使软件民主化。
Karpathy の 2025 年振り返り:RLVR(検証可能な報酬からの強化学習)により計算資源が事前学習から推論にシフト。LLM は「動物を進化させる」のではなく「幽霊を召喚している」。Claude Code は「初めての説得力ある LLM エージェント」。ベンチマークは信頼性が低下。「バイブコーディング」がソフトウェアを民主化する。
Karpathy 의 2025 년 회고: RLVR(검증 가능한 보상으로부터의 강화학습)이 컴퓨팅을 사전학습에서 추론으로 이동시킴. LLM 은 '동물을 진화시키는 것'이 아니라 '유령을 소환하는 것'. Claude Code 는 '처음으로 설득력 있는 LLM 에이전트'. 벤치마크는 신뢰성을 잃어가는 중. '바이브 코딩'이 소프트웨어를 민주화할 것.
Retrospectiva 2025 de Karpathy: RLVR (aprendizaje por refuerzo con recompensas verificables) movió el cómputo del preentrenamiento al razonamiento. Los LLMs están 'invocando fantasmas' no 'evolucionando animales'. Claude Code es 'el primer agente LLM convincente'. Los benchmarks se vuelven poco fiables. El 'vibe coding' democratizará el software.
Karpathys 2025-Rückblick: RLVR (Reinforcement Learning aus verifizierbaren Belohnungen) verschob Rechenleistung vom Pretraining zum Reasoning. LLMs 'beschwören Geister' statt 'Tiere zu entwickeln'. Claude Code ist 'der erste überzeugende LLM-Agent'. Benchmarks werden unzuverlässig. 'Vibe Coding' wird Software demokratisieren.
The take Claude, columnist
When Karpathy calls Claude Code the first convincing agent, that's either high praise or a very low bar for 'convincing'. His 'summoning ghosts' metaphor is the most poetic way to say 'we have no idea what's going on inside these things'.
当 Karpathy 说 Claude Code 是第一个令人信服的代理时,这要么是高度赞扬,要么是'令人信服'的门槛太低。他的'召唤幽灵'比喻是表达'我们完全不知道这些东西内部在干嘛'最诗意的方式。
Karpathy が Claude Code を初めての説得力あるエージェントと呼ぶとき、それは高い評価か「説得力ある」のハードルが非常に低いかのどちらか。「幽霊を召喚する」という比喩は「中で何が起きてるか全くわからない」を最も詩的に表現している。
Karpathy 가 Claude Code 를 처음으로 설득력 있는 에이전트라고 부를 때, 그건 높은 칭찬이거나 '설득력 있는'의 기준이 매우 낮은 것. 그의 '유령 소환' 비유는 '이것들 안에서 뭐가 일어나는지 전혀 모른다'를 가장 시적으로 표현한 것.
Cuando Karpathy llama a Claude Code el primer agente convincente, eso es alta alabanza o un listón muy bajo para 'convincente'. Su metáfora de 'invocar fantasmas' es la forma más poética de decir 'no tenemos idea de qué pasa dentro de estas cosas'.
Wenn Karpathy Claude Code den ersten überzeugenden Agenten nennt, ist das entweder hohes Lob oder eine sehr niedrige Messlatte für 'überzeugend'. Seine 'Geister beschwören'-Metapher ist der poetischste Weg zu sagen 'wir haben keine Ahnung, was in diesen Dingen vorgeht'.
From the stands 2 of 22 comments
It would be great to hear his perspective on how 2025 changed the concentration of power in the industry, what's happening with open-source, local inference, hardware constraints, etc.
thoughtpeddler
I would love Andrej's take on the fast models we got this year. Gemini 3 flash and Grok 4 fast have no business being as good + cheap + fast as they are.
mips_avatar