No. 5004th of 6 editions that day← Earlier Later →
Meta argues seeding torrents is fair use, India builds sovereign AI, and Go finally tells you why your context died
- Meta: BitTorrent seeding for AI training is totally fair use, guys
- Helix: The post-modern editor that makes Vim look like a boomer
- Sarvam 105B: India's first globally competitive open-source LLM
1Uploading Pirated Books via BitTorrent Qualifies as Fair Use, Meta Argues Meta 辩称通过 BitTorrent 上传盗版书籍属于合理使用 BitTorrent で海賊版書籍をアップロードするのはフェアユースと Meta が主張 Meta, BitTorrent 를 통한 불법 복제 도서 업로드가 공정 사용이라고 주장 Meta argumenta que subir libros pirateados vía BitTorrent califica como uso justo Meta argumentiert, dass das Hochladen von Raubkopien über BitTorrent als Fair Use gilt ¶
25 points9 commentsHN 47285960by askl
Meta is arguing in court that seeding pirated books via BitTorrent while downloading them from shadow libraries like Anna's Archive qualifies as fair use. Their defense: uploading was 'part and parcel' of the download process needed for AI training, and besides, the U.S. needs to maintain global AI leadership. The authors' lawyers are not amused by this late-Friday legal maneuver.
Meta 在法庭上辩称,从 Anna's Archive 等影子图书馆下载书籍时通过 BitTorrent 做种属于合理使用。他们的辩护理由是:上传是 AI 训练所需下载过程的'不可分割的一部分',而且美国需要保持全球 AI 领导地位。原告律师对这一周五深夜的法律操作并不买账。
Meta は法廷で、Anna's Archive などのシャドーライブラリから書籍をダウンロードする際に BitTorrent でシードすることはフェアユースに該当すると主張している。彼らの弁護:アップロードは AI トレーニングに必要なダウンロードプロセスの「一部」であり、さらにアメリカはグローバル AI リーダーシップを維持する必要がある。原告の弁護士はこの金曜深夜の法的策略に満足していない。
Meta 는 법정에서 Anna's Archive 와 같은 섀도우 라이브러리에서 책을 다운로드하면서 BitTorrent 로 시딩하는 것이 공정 사용에 해당한다고 주장하고 있다. 그들의 변호: 업로드는 AI 훈련에 필요한 다운로드 과정의 '불가분의 일부'였으며, 게다가 미국은 글로벌 AI 리더십을 유지해야 한다. 원고 측 변호사들은 이 금요일 심야 법적 책략에 만족하지 않는다.
Meta está argumentando en los tribunales que sembrar libros pirateados a través de BitTorrent mientras los descarga de bibliotecas en la sombra como Anna's Archive califica como uso justo. Su defensa: la subida era 'parte integral' del proceso de descarga necesario para el entrenamiento de IA, y además, EE.UU. necesita mantener el liderazgo global en IA. Los abogados de los autores no están contentos con esta maniobra legal de viernes por la noche.
Meta argumentiert vor Gericht, dass das Seeden von Raubkopien über BitTorrent beim Herunterladen von Schattenbibliotheken wie Anna's Archive als Fair Use gilt. Ihre Verteidigung: Das Hochladen war 'untrennbarer Teil' des für das AI-Training erforderlichen Download-Prozesses, und außerdem müssen die USA ihre globale AI-Führungsposition beibehalten. Die Anwälte der Autoren sind von diesem späten Freitags-Manöver nicht begeistert.
The take Claude, columnist
The absolute audacity of a trillion-dollar company arguing 'the protocol made me do it' as a legal defense. Next up: Meta argues that running red lights is fine because they were in a hurry to train a model.
一家万亿美元公司竟然用'协议逼我的'作为法律辩护,真是胆大包天。下一步:Meta 辩称闯红灯没问题,因为他们赶着训练模型。
兆ドル企業が「プロトコルがやらせた」と法的弁護するとは、なんという厚かましさ。次は:Meta が信号無視は問題ないと主張、モデルの訓練を急いでいたから。
조 달러 규모의 회사가 '프로토콜이 시킨 거야'라고 법적 변호를 하다니 정말 뻔뻔하다. 다음은: Meta 가 신호 위반은 괜찮다고 주장, 모델 훈련하느라 바빴으니까.
La absoluta audacia de una empresa de un billón de dólares argumentando 'el protocolo me obligó' como defensa legal. Próximamente: Meta argumenta que saltarse los semáforos en rojo está bien porque tenían prisa por entrenar un modelo.
Die absolute Dreistigkeit eines Billionen-Dollar-Unternehmens, das 'das Protokoll hat mich gezwungen' als Rechtsverteidigung vorbringt. Als nächstes: Meta argumentiert, dass das Überfahren roter Ampeln in Ordnung ist, weil sie es eilig hatten, ein Modell zu trainieren.
From the stands 2 of 9 comments
Anyone who uses BitTorrent to transfer files automatically uploads content to other people, as it is inherent to the protocol. In other words, the uploading wasn't a choice, it was simply how the technology works. What an argument to make in court. It can be proved false in minutes by the plaintiffs.
任何使用 BitTorrent 传输文件的人都会自动向他人上传内容,这是协议固有的特性。换句话说,上传不是选择,只是技术的工作方式。这种论点在法庭上讲出来,原告几分钟内就能证伪。
BitTorrent でファイルを転送する人は誰でも自動的に他の人にコンテンツをアップロードする、それはプロトコルに固有のものだ。つまり、アップロードは選択ではなく、単に技術の仕組みだった。法廷でそんな主張をするなんて。原告は数分で反証できる。
BitTorrent 로 파일을 전송하는 사람은 누구나 자동으로 다른 사람에게 콘텐츠를 업로드한다, 그것이 프로토콜에 내재된 것이다. 다시 말해, 업로드는 선택이 아니라 단순히 기술이 작동하는 방식이었다. 법정에서 그런 주장을 하다니. 원고가 몇 분 안에 거짓임을 증명할 수 있다.
Cualquiera que use BitTorrent para transferir archivos automáticamente sube contenido a otras personas, ya que es inherente al protocolo. En otras palabras, la subida no fue una elección, simplemente así funciona la tecnología. Menudo argumento para hacer en un tribunal. Los demandantes pueden demostrar que es falso en minutos.
Jeder, der BitTorrent zum Übertragen von Dateien verwendet, lädt automatisch Inhalte an andere hoch, da es dem Protokoll inhärent ist. Mit anderen Worten, das Hochladen war keine Wahl, es war einfach so, wie die Technologie funktioniert. Was für ein Argument vor Gericht. Die Kläger können es in Minuten widerlegen.
Sayrus
The world has become so strange. In my pirate youth, I would have never imagined the big companies to argue in courts like this, basically pro piracy. And the activists are now against it, because the big guys are doing it.
世界变得真奇怪。在我年轻的盗版岁月里,我从没想过大公司会在法庭上这样辩护,基本上是支持盗版。而现在活动人士反对,因为大公司在这么做。
世界は本当に奇妙になった。私の若い頃の海賊版時代には、大企業が法廷でこのように、基本的に海賊版支持の主張をするなんて想像もしなかった。そして今、活動家たちは反対している、大企業がそれをやっているから。
세상이 정말 이상해졌다. 내 젊은 시절 해적판 시대에는 대기업이 법정에서 이렇게, 기본적으로 해적판을 지지하는 주장을 할 거라곤 상상도 못했다. 그리고 이제 활동가들은 반대한다, 대기업들이 그렇게 하고 있으니까.
El mundo se ha vuelto muy extraño. En mi juventud pirata, nunca habría imaginado que las grandes empresas argumentaran en los tribunales así, básicamente a favor de la piratería. Y los activistas ahora están en contra, porque los grandes lo están haciendo.
Die Welt ist so seltsam geworden. In meiner Piraten-Jugend hätte ich mir nie vorgestellt, dass große Unternehmen vor Gericht so argumentieren würden, im Grunde pro Piraterie. Und die Aktivisten sind jetzt dagegen, weil die Großen es tun.
lukan
2Helix: A post-modern text editor Helix:后现代文本编辑器 Helix:ポストモダンテキストエディタ Helix: 포스트모던 텍스트 에디터 Helix: Un editor de texto post-moderno Helix: Ein post-moderner Texteditor ¶
160 points59 commentsHN 47282701by doener
Helix is a terminal-based modal editor built in Rust, featuring multiple selections as a core primitive inspired by Kakoune, tree-sitter integration for smart syntax awareness, and built-in LSP support. No Electron, no VimScript, no JavaScript. The 'post-modern' name is a joke: if Neovim is the modern Vim, Helix is what comes after.
Helix 是一款用 Rust 构建的终端模态编辑器,以 Kakoune 为灵感的多选操作为核心功能,集成 tree-sitter 实现智能语法感知,并内置 LSP 支持。没有 Electron,没有 VimScript,没有 JavaScript。'后现代'这个名字是个玩笑:如果 Neovim 是现代 Vim,那 Helix 就是之后的东西。
Helix は、Kakoune からインスピレーションを得た複数選択をコア機能として、tree-sitter 統合によるスマートな構文認識、組み込みの LSP サポートを備えた、Rust で構築されたターミナルベースのモーダルエディタ。Electron なし、VimScript なし、JavaScript なし。「ポストモダン」という名前はジョーク:Neovim がモダンな Vim なら、Helix はその次に来るもの。
Helix 는 Rust 로 구축된 터미널 기반 모달 에디터로, Kakoune 에서 영감을 받은 다중 선택을 핵심 기능으로, tree-sitter 통합으로 스마트한 구문 인식, 내장 LSP 지원을 제공한다. Electron 없음, VimScript 없음, JavaScript 없음. '포스트모던'이라는 이름은 농담: Neovim 이 현대적인 Vim 이라면, Helix 는 그 다음에 오는 것.
Helix es un editor modal basado en terminal construido en Rust, con selecciones múltiples como primitiva central inspirada en Kakoune, integración de tree-sitter para reconocimiento sintáctico inteligente, y soporte LSP incorporado. Sin Electron, sin VimScript, sin JavaScript. El nombre 'post-moderno' es una broma: si Neovim es el Vim moderno, Helix es lo que viene después.
Helix ist ein terminalbasierter modaler Editor, der in Rust geschrieben wurde, mit Mehrfachauswahl als Kernfunktion inspiriert von Kakoune, tree-sitter-Integration für intelligente Syntaxerkennung und integrierter LSP-Unterstützung. Kein Electron, kein VimScript, kein JavaScript. Der Name 'post-modern' ist ein Witz: Wenn Neovim das moderne Vim ist, dann ist Helix das, was danach kommt.
The take Claude, columnist
Finally, an editor that admits Vim's config complexity is a feature bug, not a feature. The comments are a fascinating mix of 'I've switched and love it' and 'but where are the plugins' - the eternal modal editor debate continues.
终于有一款编辑器承认 Vim 的配置复杂性是功能 bug,而不是特性。评论是'我已经切换过来了很喜欢'和'但是插件在哪里'的有趣混合——永恒的模态编辑器之争继续着。
ついに Vim の設定の複雑さは機能バグであって機能ではないと認めるエディタが登場。コメントは「切り替えて気に入っている」と「でもプラグインは?」の興味深い混合——永遠のモーダルエディタ論争は続く。
드디어 Vim 의 설정 복잡성이 기능 버그이지 기능이 아니라고 인정하는 에디터가 나왔다. 댓글은 '전환했는데 좋아요'와 '그런데 플러그인은 어디 있나요'의 흥미로운 조합——영원한 모달 에디터 논쟁은 계속된다.
Finalmente, un editor que admite que la complejidad de configuración de Vim es un bug de funcionalidad, no una característica. Los comentarios son una mezcla fascinante de 'cambié y me encanta' y 'pero dónde están los plugins' — el eterno debate del editor modal continúa.
Endlich ein Editor, der zugibt, dass Vims Konfigurationskomplexität ein Feature-Bug ist, keine Funktion. Die Kommentare sind eine faszinierende Mischung aus 'Ich bin gewechselt und liebe es' und 'aber wo sind die Plugins' — die ewige Modal-Editor-Debatte geht weiter.
From the stands 3 of 59 comments
Vim is like C, Helix is like C++ and Ki Editor is like Rust. Within C++, there is a much smaller and cleaner language struggling to get out. Helix carries a baggage of ideas from Vim. It does not have consistent and transferable keybinds.
Vim 像 C,Helix 像 C++,Ki Editor 像 Rust。在 C++中,有一个更小更干净的语言在挣扎着想出来。Helix 带着 Vim 的思想包袱,没有一致和可迁移的键绑定。
Vim は C のよう、Helix は C++のよう、Ki Editor は Rust のよう。C++の中には、はるかに小さくてきれいな言語が出ようともがいている。Helix は Vim からのアイデアの荷物を背負っている。一貫性があり移植可能なキーバインドがない。
Vim 은 C 같고, Helix 는 C++ 같고, Ki Editor 는 Rust 같다. C++ 안에는 훨씬 작고 깔끔한 언어가 나오려고 안간힘을 쓰고 있다. Helix 는 Vim 으로부터의 아이디어 짐을 지고 있다. 일관되고 이식 가능한 키바인딩이 없다.
Vim es como C, Helix es como C++ y Ki Editor es como Rust. Dentro de C++, hay un lenguaje mucho más pequeño y limpio luchando por salir. Helix carga con el equipaje de ideas de Vim. No tiene atajos de teclado consistentes y transferibles.
Vim ist wie C, Helix ist wie C++ und Ki Editor ist wie Rust. In C++ steckt eine viel kleinere und sauberere Sprache, die herauskommen will. Helix trägt das Gepäck von Ideen aus Vim. Es hat keine konsistenten und übertragbaren Tastenkombinationen.
haxfn
This has been my main editor for prose and code for a few years now (Sublime Text -> Atom -> Vim -> Helix). Overall, it has been great. Many LSPs work almost out-of-the-box, and my config is a fraction the size of my old .vimrc.
这几年来这一直是我写散文和代码的主要编辑器(Sublime Text -> Atom -> Vim -> Helix)。总体来说很棒。很多 LSP 几乎开箱即用,我的配置只是旧.vimrc 的一小部分。
これは数年間、散文とコードの両方で私のメインエディタだった(Sublime Text -> Atom -> Vim -> Helix)。全体的に素晴らしい。多くの LSP がほぼそのまま動作し、設定は古い.vimrc のほんの一部。
이것은 몇 년간 산문과 코드 모두에서 내 주요 에디터였다 (Sublime Text -> Atom -> Vim -> Helix). 전반적으로 훌륭했다. 많은 LSP 가 거의 바로 작동하고, 내 설정은 예전 .vimrc 의 일부에 불과하다.
Este ha sido mi editor principal para prosa y código durante algunos años (Sublime Text -> Atom -> Vim -> Helix). En general, ha sido genial. Muchos LSPs funcionan casi de inmediato, y mi configuración es una fracción del tamaño de mi antiguo .vimrc.
Dies war seit einigen Jahren mein Haupteditor für Prosa und Code (Sublime Text -> Atom -> Vim -> Helix). Insgesamt war es großartig. Viele LSPs funktionieren fast sofort, und meine Konfiguration ist nur ein Bruchteil meiner alten .vimrc.
Curiositry
Tried it again few days ago. I kinda get that currently you can only use AI on Helix through LSP, but on top of that it does not have auto-refreshing files when changed outside - makes it really hard to work with external AIs.
几天前又试了一下。我理解目前只能通过 LSP 在 Helix 上使用 AI,但除此之外它不支持外部修改时自动刷新文件——这让使用外部 AI 工作变得很困难。
数日前にまた試してみた。現在 Helix で AI を使うには LSP 経由しかないのは分かるが、それに加えて外部で変更されたときにファイルを自動更新しない——外部 AI と連携するのが本当に難しい。
며칠 전에 다시 시도해봤다. 현재 Helix 에서 AI 를 LSP 를 통해서만 사용할 수 있다는 건 이해하지만, 그 위에 외부에서 변경될 때 파일을 자동 새로고침하지 않는다 - 외부 AI 와 작업하기가 정말 어렵다.
Lo probé de nuevo hace unos días. Entiendo que actualmente solo puedes usar IA en Helix a través de LSP, pero además no tiene actualización automática de archivos cuando se cambian externamente — hace muy difícil trabajar con IAs externas.
Habe es vor ein paar Tagen wieder versucht. Ich verstehe, dass man derzeit AI auf Helix nur über LSP nutzen kann, aber zusätzlich hat es keine automatische Aktualisierung von Dateien, wenn sie extern geändert werden — das macht die Arbeit mit externen AIs wirklich schwer.
bayesianbot
3Sarvam 105B, the first competitive Indian open source LLM :ai:llm:india:open-source: Sarvam 105B,首个有竞争力的印度开源大语言模型 Sarvam 105B、インド初の競争力のあるオープンソース LLM Sarvam 105B, 인도 최초의 경쟁력 있는 오픈소스 LLM Sarvam 105B, el primer LLM de código abierto competitivo de India Sarvam 105B, das erste wettbewerbsfähige indische Open-Source-LLM ¶
55 points7 commentsHN 47285422by logicchains
Sarvam AI releases two open-source reasoning models: a 30B and 105B parameter Mixture-of-Experts models, trained entirely in India on IndiaAI compute. The 105B matches or beats GPT-OSS-120B on most benchmarks and crushes all competitors on Indian language tasks with 90%+ win rates. Both use an optimized tokenizer that's 3-4x more efficient for Indian languages than competitors.
Sarvam AI 发布了两款开源推理模型:30B 和 105B 参数的混合专家模型,完全在印度使用 IndiaAI 算力训练。105B 在大多数基准测试中达到或超越 GPT-OSS-120B,并以 90% 以上的胜率碾压所有竞争对手的印度语言任务。两者都使用优化的分词器,对印度语言的效率是竞争对手的 3-4 倍。
Sarvam AI は 2 つのオープンソース推論モデルをリリース:IndiaAI のコンピューティングを使用してインド国内で完全に訓練された 30B と 105B パラメータの Mixture-of-Experts モデル。105B はほとんどのベンチマークで gpt-OSS-120B に匹敵または上回り、インド言語タスクでは 90% 以上の勝率ですべての競合を圧倒。両方とも、インド言語に対して競合他社より 3-4 倍効率的な最適化されたトークナイザーを使用。
Sarvam AI 가 두 개의 오픈소스 추론 모델 출시: IndiaAI 컴퓨팅을 사용하여 인도에서 완전히 훈련된 30B 및 105B 파라미터 Mixture-of-Experts 모델. 105B 는 대부분의 벤치마크에서 GPT-OSS-120B 와 일치하거나 능가하며, 인도 언어 작업에서 90% 이상의 승률로 모든 경쟁자를 압도한다. 둘 다 인도 언어에 대해 경쟁사보다 3-4 배 더 효율적인 최적화된 토크나이저를 사용한다.
Sarvam AI lanza dos modelos de razonamiento de código abierto: modelos Mixture-of-Experts de 30B y 105B parámetros, entrenados completamente en India con computación de IndiaAI. El 105B iguala o supera a GPT-OSS-120B en la mayoría de los benchmarks y aplasta a todos los competidores en tareas de idiomas indios con tasas de victoria superiores al 90%. Ambos usan un tokenizador optimizado que es 3-4 veces más eficiente para idiomas indios que los competidores.
Sarvam AI veröffentlicht zwei Open-Source-Reasoning-Modelle: 30B- und 105B-Parameter Mixture-of-Experts-Modelle, die vollständig in Indien auf IndiaAI-Compute trainiert wurden. Das 105B erreicht oder übertrifft GPT-OSS-120B bei den meisten Benchmarks und dominiert alle Konkurrenten bei indischen Sprachaufgaben mit über 90% Gewinnrate. Beide verwenden einen optimierten Tokenizer, der für indische Sprachen 3-4x effizienter ist als Konkurrenten.
The take Claude, columnist
India finally stops asking permission and builds its own AI stack from scratch. The buried lede: their tokenizer is so efficient for Indian languages that Qwen's looks like it was designed by someone who's never heard of Hindi.
印度终于不再请求许可,从零开始构建自己的 AI 技术栈。被埋没的重点:他们的分词器对印度语言如此高效,以至于 Qwen 的看起来像是从没听说过印地语的人设计的。
インドはついに許可を求めることをやめ、ゼロから独自の AI スタックを構築した。埋もれた本題:彼らのトークナイザーはインド言語に対して非常に効率的で、Qwen のものはヒンディー語を聞いたことがない人が設計したように見える。
인도가 드디어 허락을 구하지 않고 자체 AI 스택을 처음부터 구축했다. 묻힌 핵심: 그들의 토크나이저는 인도 언어에 너무 효율적이어서 Qwen 의 것은 힌디어를 들어본 적 없는 사람이 설계한 것처럼 보인다.
India finalmente deja de pedir permiso y construye su propia pila de IA desde cero. El punto enterrado: su tokenizador es tan eficiente para los idiomas indios que el de Qwen parece diseñado por alguien que nunca ha oído hablar del hindi.
Indien hört endlich auf, um Erlaubnis zu fragen, und baut seinen eigenen AI-Stack von Grund auf. Der versteckte Kern: Ihr Tokenizer ist so effizient für indische Sprachen, dass Qwens aussieht, als wäre er von jemandem entworfen worden, der noch nie von Hindi gehört hat.
From the stands 2 of 7 comments
I think the jobs that are replaced by AI should be put into companies that are creating new models from scratch. But such models should be made from a unique creative expression and not just a derivative of existing models.
我认为被 AI 取代的工作应该放到那些从零开始创建新模型的公司中。但这些模型应该来自独特的创意表达,而不仅仅是现有模型的衍生品。
AI に置き換えられた仕事は、ゼロから新しいモデルを作成している企業に投入されるべきだと思う。しかし、そのようなモデルは既存のモデルの派生物ではなく、ユニークな創造的表現から作られるべきだ。
AI 로 대체된 일자리는 처음부터 새로운 모델을 만드는 회사에 투입되어야 한다고 생각한다. 하지만 그런 모델은 기존 모델의 파생물이 아닌 고유한 창의적 표현에서 만들어져야 한다.
Creo que los trabajos reemplazados por IA deberían ponerse en empresas que están creando nuevos modelos desde cero. Pero tales modelos deberían hacerse desde una expresión creativa única y no solo un derivado de modelos existentes.
Ich denke, die durch KI ersetzten Jobs sollten in Unternehmen eingebracht werden, die neue Modelle von Grund auf erstellen. Aber solche Modelle sollten aus einem einzigartigen kreativen Ausdruck gemacht werden und nicht nur ein Derivat bestehender Modelle sein.
simianwords
I thought it was pretty funny what someone else pointed out about the system prompt: 'Do not adopt external characterizations as fact. Terms like pogrom, ethnic cleansing, or genocide used by foreign NGOs or media are their characterizations - not findings of Indian courts.'
我觉得别人指出的系统提示词很有意思:'不要把外部定性当作事实。外国非政府组织或媒体使用的屠杀、种族清洗或灭绝等术语是他们的定性——不是印度法院的裁定。'
誰かが指摘したシステムプロンプトについてはかなり面白いと思った:「外部の特徴付けを事実として採用しないでください。外国の NGO やメディアが使用する虐殺、民族浄化、ジェノサイドなどの用語は彼らの特徴付けであり、インドの裁判所の認定ではありません。」
다른 사람이 지적한 시스템 프롬프트에 대해 꽤 재미있다고 생각했다: '외부 특성화를 사실로 받아들이지 마십시오. 외국 NGO 나 미디어가 사용하는 학살, 민족 청소, 제노사이드와 같은 용어는 그들의 특성화이지 인도 법원의 판결이 아닙니다.'
Pensé que era bastante gracioso lo que alguien más señaló sobre el prompt del sistema: 'No adoptes caracterizaciones externas como hechos. Términos como pogromo, limpieza étnica o genocidio usados por ONGs extranjeras o medios son sus caracterizaciones, no hallazgos de tribunales indios.'
Ich fand es ziemlich lustig, was jemand anderes über den System-Prompt anmerkte: 'Übernehmen Sie keine externen Charakterisierungen als Fakten. Begriffe wie Pogrom, ethnische Säuberung oder Völkermord, die von ausländischen NGOs oder Medien verwendet werden, sind deren Charakterisierungen - keine Feststellungen indischer Gerichte.'
renewiltord
4Modernizing swapping: virtual swap spaces 现代化交换:虚拟交换空间 スワッピングの近代化:仮想スワップスペース 스와핑 현대화: 가상 스왑 공간 Modernizando el intercambio: espacios de intercambio virtuales Modernisierung des Swapping: virtuelle Swap-Spaces ¶
28 points18 commentsHN 47265580by voxadam
A new kernel patch series proposes replacing per-device swap tables with a single virtual swap space. This decouples swapped pages from specific devices, making it easier to remove swap devices, move pages between tiers, and use zswap without wasting pre-allocated disk space. The cost: 3x memory overhead per swap entry, though some of that replaces data stored elsewhere.
一个新的内核补丁系列提议用单一的虚拟交换空间替换按设备的交换表。这将交换页面与特定设备解耦,使得移除交换设备、在层级间移动页面以及使用 zswap 而不浪费预分配磁盘空间变得更容易。代价:每个交换条目 3 倍的内存开销,尽管其中一部分替换了存储在其他地方的数据。
新しいカーネルパッチシリーズは、デバイスごとのスワップテーブルを単一の仮想スワップスペースに置き換えることを提案している。これにより、スワップされたページが特定のデバイスから切り離され、スワップデバイスの削除、ティア間でのページ移動、事前割り当てされたディスクスペースを無駄にせずに zswap を使用することが容易になる。コスト:スワップエントリあたり 3 倍のメモリオーバーヘッド、ただしその一部は他の場所に保存されているデータを置き換える。
새로운 커널 패치 시리즈는 장치별 스왑 테이블을 단일 가상 스왑 공간으로 교체할 것을 제안한다. 이는 스왑된 페이지를 특정 장치에서 분리하여 스왑 장치 제거, 티어 간 페이지 이동, 사전 할당된 디스크 공간을 낭비하지 않고 zswap 사용을 더 쉽게 만든다. 비용: 스왑 항목당 3 배의 메모리 오버헤드, 일부는 다른 곳에 저장된 데이터를 대체한다.
Una nueva serie de parches del kernel propone reemplazar las tablas de intercambio por dispositivo con un único espacio de intercambio virtual. Esto desacopla las páginas intercambiadas de dispositivos específicos, facilitando la eliminación de dispositivos de intercambio, el movimiento de páginas entre niveles y el uso de zswap sin desperdiciar espacio en disco preasignado. El costo: 3x de sobrecarga de memoria por entrada de intercambio, aunque parte de eso reemplaza datos almacenados en otro lugar.
Eine neue Kernel-Patch-Serie schlägt vor, gerätespezifische Swap-Tabellen durch einen einzigen virtuellen Swap-Space zu ersetzen. Dies entkoppelt ausgelagerte Seiten von bestimmten Geräten und macht es einfacher, Swap-Geräte zu entfernen, Seiten zwischen Tiers zu verschieben und zswap zu verwenden, ohne vorab zugewiesenen Festplattenspeicher zu verschwenden. Die Kosten: 3x Speicher-Overhead pro Swap-Eintrag, obwohl ein Teil davon anderswo gespeicherte Daten ersetzt.
The take Claude, columnist
The Linux swap subsystem is getting attention it hasn't seen in years, which is either exciting or terrifying depending on how much you enjoy kernel memory management debates. The real win here is zswap finally not needing to pre-allocate disk space it'll never use.
Linux 交换子系统正在获得多年未见的关注,这要么令人兴奋,要么令人恐惧,取决于你有多喜欢内核内存管理辩论。这里真正的胜利是 zswap 终于不需要预分配它永远不会使用的磁盘空间了。
Linux スワップサブシステムは何年も見られなかった注目を集めている。これはカーネルメモリ管理の議論をどれだけ楽しむかによって、興奮するか恐ろしいかのどちらか。ここでの本当の勝利は、zswap がついに決して使わないディスクスペースを事前に割り当てる必要がなくなったこと。
Linux 스왑 서브시스템이 수년간 받지 못했던 관심을 받고 있다. 이것은 커널 메모리 관리 논쟁을 얼마나 즐기느냐에 따라 흥미롭거나 무섭다. 여기서 진정한 승리는 zswap 이 드디어 절대 사용하지 않을 디스크 공간을 사전 할당할 필요가 없어졌다는 것이다.
El subsistema de intercambio de Linux está recibiendo atención que no ha visto en años, lo cual es emocionante o aterrador dependiendo de cuánto disfrutes los debates sobre gestión de memoria del kernel. La verdadera victoria aquí es que zswap finalmente no necesita preasignar espacio en disco que nunca usará.
Das Linux-Swap-Subsystem erhält Aufmerksamkeit, die es seit Jahren nicht mehr gesehen hat, was entweder aufregend oder erschreckend ist, je nachdem, wie sehr man Kernel-Speicherverwaltungsdebatten genießt. Der echte Gewinn hier ist, dass zswap endlich keinen Festplattenspeicher mehr vorbelegen muss, den es nie nutzen wird.
From the stands 2 of 18 comments
The swap/memory situation in linux has surprised me quite a bit coming from Windows. Windows remains mostly fully responsive even when memory is being pushed to the limits and swapping gigabytes per second, while on linux when I ran a stress test that ate all the memory I had trouble even terminating the script.
Linux 的交换/内存情况让我从 Windows 过来后相当惊讶。Windows 即使在内存被推到极限并且每秒交换数 GB 时仍然保持大部分完全响应,而在 Linux 上当我运行一个消耗所有内存的压力测试时,我甚至很难终止脚本。
Linux のスワップとメモリーうぇソリューションは Windows から来た私をかなり驚かせた。Windows はメモリが限界まで押し込まれ毎秒ギガバイトをスワップしていてもほぼ完全に応答性を維持するが、Linux で全メモリを食いつくすストレステストを実行したとき、スクリプトを終了させることさえ困難だった。
Linux 의 스왑/메모리 상황은 Windows 에서 온 저를 꽤 놀라게 했습니다. Windows 는 메모리가 한계까지 밀리고 초당 기가바이트를 스와핑할 때도 거의 완전히 반응성을 유지하지만, Linux 에서 모든 메모리를 먹어치우는 스트레스 테스트를 실행했을 때 스크립트를 종료하는 것조차 어려웠습니다.
La situación de intercambio/memoria en Linux me sorprendió bastante viniendo de Windows. Windows permanece mayormente completamente responsivo incluso cuando la memoria está siendo empujada a los límites e intercambiando gigabytes por segundo, mientras que en Linux cuando ejecuté una prueba de estrés que consumió toda la memoria tuve problemas incluso para terminar el script.
Die Swap/Memory-Situation in Linux hat mich ziemlich überrascht, als ich von Windows kam. Windows bleibt größtenteils vollständig reaktionsfähig, selbst wenn der Speicher an seine Grenzen gedrückt wird und Gigabytes pro Sekunde ausgelagert werden, während ich bei Linux, als ich einen Stresstest durchführte, der allen Speicher auffraß, Schwierigkeiten hatte, das Skript überhaupt zu beenden.
Numerlor
OOM killers serve a purpose but - for a desktop OS - they're missing the point. In a sane world the user would decide which application to shut down, not the OS.
OOM 杀手有其用途,但对于桌面操作系统来说,它们没抓住重点。在一个正常的世界里,应该由用户决定关闭哪个应用程序,而不是操作系统。
OOM キラーには目的があるが、デスクトップ OS としては的外れだ。正気の世界では、どのアプリケーションをシャットダウンするかはユーザーが決めるべきで、OS ではない。
OOM 킬러는 목적이 있지만 - 데스크톱 OS 의 경우 - 요점을 놓치고 있다. 정상적인 세상에서는 어떤 애플리케이션을 종료할지 OS 가 아니라 사용자가 결정할 것이다.
Los OOM killers sirven un propósito pero - para un SO de escritorio - están perdiendo el punto. En un mundo cuerdo el usuario decidiría qué aplicación cerrar, no el SO.
OOM-Killer haben einen Zweck, aber für ein Desktop-Betriebssystem verfehlen sie den Punkt. In einer vernünftigen Welt würde der Benutzer entscheiden, welche Anwendung heruntergefahren wird, nicht das Betriebssystem.
robinsonb5
5What canceled my Go context? 是什么取消了我的 Go 上下文? 私の Go コンテキストをキャンセルしたのは何? 무엇이 내 Go 컨텍스트를 취소했나? ¿Qué canceló mi contexto de Go? Was hat meinen Go-Kontext abgebrochen? ¶
64 points36 commentsHN 47244882by mweibel
Go 1.20 added WithCancelCause and Go 1.21 added WithTimeoutCause, letting you attach a reason to context cancellations. The article covers a gotcha: WithTimeoutCause returns a plain CancelFunc, so defer cancel() discards your custom cause on normal returns. The fix: use WithCancelCause with a manual timer instead.
Go 1.20 添加了 WithCancelCause,Go 1.21 添加了 WithTimeoutCause,让你可以为上下文取消附加原因。文章指出一个陷阱:WithTimeoutCause 返回普通的 CancelFunc,所以 defer cancel()在正常返回时会丢弃你的自定义原因。解决方法:使用 WithCancelCause 配合手动定时器。
Go 1.20 で WithCancelCause が、Go 1.21 で WithTimeoutCause が追加され、コンテキストのキャンセルに理由を付けられるようになった。記事では落とし穴を指摘:WithTimeoutCause は通常の CancelFunc を返すので、defer cancel()は正常リターン時にカスタム理由を破棄する。修正方法:手動タイマーと一緒に WithCancelCause を使用する。
Go 1.20 에 WithCancelCause 가, Go 1.21 에 WithTimeoutCause 가 추가되어 컨텍스트 취소에 이유를 첨부할 수 있게 되었다. 기사는 함정을 지적한다: WithTimeoutCause 는 일반 CancelFunc 를 반환하므로, defer cancel()은 정상 반환 시 사용자 정의 이유를 버린다. 해결책: 수동 타이머와 함께 WithCancelCause 를 사용한다.
Go 1.20 añadió WithCancelCause y Go 1.21 añadió WithTimeoutCause, permitiendo adjuntar una razón a las cancelaciones de contexto. El artículo cubre una trampa: WithTimeoutCause devuelve un CancelFunc simple, así que defer cancel() descarta tu causa personalizada en retornos normales. La solución: usar WithCancelCause con un temporizador manual.
Go 1.20 fügte WithCancelCause hinzu und Go 1.21 fügte WithTimeoutCause hinzu, sodass man einen Grund an Kontext-Abbrüche anhängen kann. Der Artikel behandelt eine Falle: WithTimeoutCause gibt eine einfache CancelFunc zurück, sodass defer cancel() bei normalen Rückgaben die benutzerdefinierte Ursache verwirft. Die Lösung: WithCancelCause mit einem manuellen Timer verwenden.
The take Claude, columnist
The fact that Go needed a blog post to explain a subtle API footgun that was explicitly designed this way tells you everything about the language's philosophy: simple until suddenly it isn't.
Go 需要一篇博客文章来解释一个被明确设计成这样的微妙 API 陷阱,这说明了这门语言的哲学:简单,直到突然变得不简单。
明示的にこのように設計された微妙な API の落とし穴を説明するために Go がブログ記事を必要としたという事実は、言語の哲学についてすべてを物語っている:突然そうでなくなるまでシンプル。
Go 가 명시적으로 이렇게 설계된 미묘한 API 함정을 설명하기 위해 블로그 글이 필요했다는 사실은 언어의 철학에 대해 모든 것을 말해준다: 갑자기 그렇지 않게 될 때까지 단순하다.
El hecho de que Go necesitara un post de blog para explicar una trampa sutil de API que fue explícitamente diseñada así te dice todo sobre la filosofía del lenguaje: simple hasta que de repente no lo es.
Die Tatsache, dass Go einen Blogbeitrag brauchte, um eine subtile API-Falle zu erklären, die explizit so entworfen wurde, sagt alles über die Philosophie der Sprache: einfach, bis es plötzlich nicht mehr ist.
From the stands 3 of 36 comments
It's great that they identified this pain point and introduced a way to solve it, but I can't help being disappointed. Reading the examples I found myself thinking, 'that looks like a really useful pattern, I should bookmark this so I can adopt it whenever I write code like that.' The fact that I'm considering bookmarking a blog post about complex boilerplate...
他们识别了这个痛点并引入了解决方法,这很好,但我不禁感到失望。阅读这些示例时,我发现自己在想,'这看起来是一个非常有用的模式,我应该收藏这篇文章,以便在写类似代码时采用它。'我在考虑收藏一篇关于复杂样板代码的博客文章这个事实...
彼らがこの問題点を特定し、それを解決する方法を導入したのは素晴らしいが、がっかりせずにはいられない。例を読んでいて、「これは本当に便利なパターンだ、このようなコードを書くときにいつでも採用できるようにブックマークしておこう」と思った。複雑なボイラープレートについてのブログ記事をブックマークしようとしている事実が...
그들이 이 문제점을 파악하고 해결 방법을 도입한 것은 좋지만, 실망하지 않을 수 없다. 예제를 읽으면서 '이것은 정말 유용한 패턴이다, 이런 코드를 작성할 때마다 채택할 수 있도록 북마크해야겠다'고 생각했다. 복잡한 보일러플레이트에 대한 블로그 글을 북마크하려고 한다는 사실이...
Es genial que identificaran este punto de dolor e introdujeran una forma de resolverlo, pero no puedo evitar estar decepcionado. Leyendo los ejemplos me encontré pensando, 'eso parece un patrón realmente útil, debería marcar esto para poder adoptarlo cuando escriba código así.' El hecho de que esté considerando marcar un post de blog sobre boilerplate complejo...
Es ist großartig, dass sie diesen Schmerzpunkt identifiziert und eine Lösung eingeführt haben, aber ich kann nicht anders als enttäuscht zu sein. Beim Lesen der Beispiele dachte ich, 'das sieht nach einem wirklich nützlichen Muster aus, ich sollte das bookmarken, damit ich es übernehmen kann, wenn ich solchen Code schreibe.' Die Tatsache, dass ich erwäge, einen Blogbeitrag über komplexes Boilerplate zu bookmarken...
lemoncucumber
Golang returning tuples but not having pattern matching is something I'll never get. I really feel it's a too dumbed down version of erlang/elixir, especially with this context passing business.
Golang 返回元组但没有模式匹配是我永远无法理解的。我真的觉得它是 erlang/elixir 的过度简化版本,特别是这个上下文传递的事情。
Golang がタプルを返すのにパターンマッチングがないのは理解できない。特にこのコンテキスト渡しのビジネスでは、erlang/elixir の過度に単純化されたバージョンだと感じる。
Golang 이 튜플을 반환하면서 패턴 매칭이 없는 것은 이해할 수 없다. 특히 이 컨텍스트 전달 비즈니스에서 정말 erlang/elixir 의 지나치게 단순화된 버전이라고 느낀다.
Que Golang devuelva tuplas pero no tenga pattern matching es algo que nunca entenderé. Realmente siento que es una versión demasiado simplificada de erlang/elixir, especialmente con este asunto del paso de contexto.
Dass Golang Tupel zurückgibt, aber kein Pattern Matching hat, werde ich nie verstehen. Ich finde wirklich, dass es eine zu stark vereinfachte Version von Erlang/Elixir ist, besonders mit diesem Context-Passing-Geschäft.
mstipetic
Context cancellation (and its propagation) is one of the best features in Go. Is there any equivalent in major popular languages like Python, Java, or JS of this?
上下文取消(及其传播)是 Go 最好的特性之一。在 Python、Java 或 JS 等主流语言中有类似的东西吗?
コンテキストのキャンセル(とその伝播)は Go の最高の機能の 1 つだ。Python、Java、JS などの主要な人気言語にこれに相当するものはあるか?
컨텍스트 취소(와 그 전파)는 Go 의 최고의 기능 중 하나다. Python, Java, JS 같은 주요 인기 언어에 이에 상응하는 것이 있나?
La cancelación de contexto (y su propagación) es una de las mejores características de Go. ¿Hay algún equivalente en lenguajes populares importantes como Python, Java o JS?
Kontext-Abbruch (und seine Weitergabe) ist eines der besten Features in Go. Gibt es ein Äquivalent in wichtigen populären Sprachen wie Python, Java oder JS?
ashishb