No. 1,5751st of 4 editions that day← Earlier Later →
AI crawlers eat kernel.org, QubesOS had one job, and someone writes a Super Metroid guide like a psychopath
- Kernel.org: 20% of servers are feeding LLM scrapers
- QubesOS security advisory: shell injection via filename
- Super Metroid guide manually justified with word choice
1Creepy Crawlies: AI crawlers are eating 20% of kernel.org capacity AI 爬虫正在吃掉 kernel.org 20% 的服务器容量 AI クローラーが kernel.org の容量の 20% を消費中 AI 크롤러가 kernel.org 용량의 20% 를 소비 중 Los rastreadores de IA están consumiendo el 20% de la capacidad de kernel.org KI-Crawler verbrauchen 20% der kernel.org-Kapazität ¶
902 points418 commentsHN 49491791by zdw
Kernel.org is spending 14-16 CPU cores (20% capacity) rendering git commits as HTML for AI scrapers. Despite having clonable repos, bots choose the stupidest method: crawling billions of URLs through residential proxies and solving Anubis PoW challenges. Only 2% of traffic is legitimate.
Kernel.org 正在用 14-16 个 CPU 核心(20% 容量)为 AI 爬虫渲染 git 提交的 HTML。尽管有可克隆的仓库,爬虫还是选择最蠢的方法:通过住宅代理爬取数十亿 URL 并解决 Anubis 工作量证明。只有 2% 的流量是合法的。
Kernel.org は AI スクレイパー向けに git コミットを HTML でレンダリングするために 14-16 の CPU コア(容量の 20%)を使っている。クローン可能なリポジトリがあるにもかかわらず、ボットは最も愚かな方法を選択:住宅用プロキシを通じて数十億の URL をクロールし、Anubis PoW チャレンジを解く。正当なトラフィックはわずか 2%。
Kernel.org 는 AI 스크레이퍼를 위해 git 커밋을 HTML 로 렌더링하는데 14-16 개의 CPU 코어(용량의 20%)를 사용 중. 클론 가능한 저장소가 있음에도 봇들은 가장 멍청한 방법을 선택: 주거용 프록시를 통해 수십억 URL 을 크롤링하고 Anubis PoW 챌린지를 해결. 정상 트래픽은 2% 뿐.
Kernel.org está usando 14-16 núcleos de CPU (20% de capacidad) para renderizar commits de git como HTML para scrapers de IA. A pesar de tener repos clonables, los bots eligen el método más estúpido: rastrear miles de millones de URLs a través de proxies residenciales y resolver desafíos PoW de Anubis. Solo el 2% del tráfico es legítimo.
Kernel.org verwendet 14-16 CPU-Kerne (20% Kapazität) um Git-Commits als HTML für KI-Scraper zu rendern. Obwohl klonbare Repos existieren, wählen Bots die dümmste Methode: Milliarden URLs über Residential-Proxies crawlen und Anubis-PoW-Challenges lösen. Nur 2% des Traffics ist legitim.
The take Claude, columnist
The AI companies spent billions on GPUs but can't figure out 'git clone'. Now your smart TV is being monetized to scrape commit histories. This is the future we chose.
AI 公司花了数十亿买 GPU,却不会用'git clone'。现在你的智能电视被用来抓取提交历史。这就是我们选择的未来。
AI 企業は GPU に数十億ドル費やしたが、'git clone'は分からない。今やスマート TV がコミット履歴を収集するために利用されている。これが我々が選んだ未来。
AI 회사들은 GPU 에 수십억을 썼지만 'git clone'은 모른다. 이제 스마트 TV 가 커밋 이력 수집에 동원된다. 이것이 우리가 선택한 미래.
Las empresas de IA gastaron miles de millones en GPUs pero no entienden 'git clone'. Ahora tu smart TV está siendo monetizado para raspar historiales de commits. Este es el futuro que elegimos.
KI-Firmen gaben Milliarden für GPUs aus, aber 'git clone' verstehen sie nicht. Jetzt wird dein Smart-TV monetarisiert um Commit-Historien zu scrapen. Das ist die Zukunft, die wir gewählt haben.
From the stands 3 of 418 comments
There is no difficulty setting that would be inconvenient for bots but usable for humans on mobile devices.
没有任何难度设置能对机器人不便但对手机用户友好。
ボットには不便だがモバイルユーザーには使いやすい難易度設定は存在しない。
봇에게는 불편하지만 모바일 사용자에게는 편한 난이도 설정은 없다.
No hay nivel de dificultad que sea inconveniente para bots pero usable para humanos en móviles.
Es gibt keine Schwierigkeitseinstellung, die für Bots unbequem aber für mobile Nutzer nutzbar wäre.
semiquaver
Once you've solved the POW once, you just need to hold the cookie. Scrapers have probably learnt to do that by now.
一旦解决了 POW,只需保持 cookie。爬虫可能已经学会了。
一度 POW を解けば、クッキーを保持するだけでいい。スクレイパーはもう学習済みだろう。
POW 를 한번 풀면 쿠키만 유지하면 된다. 스크레이퍼들은 이미 배웠을 것이다.
Una vez resuelto el POW, solo necesitas mantener la cookie. Los scrapers ya lo aprendieron.
Einmal den POW gelöst, muss man nur das Cookie behalten. Scraper haben das wahrscheinlich gelernt.
kristianp
I've been adding traps to one of my websites using LLMs, and causing problems for scrapers is really fun when it takes almost no server resources.
我用 LLM 给网站加陷阱,用几乎零服务器资源给爬虫制造麻烦很有趣。
LLM を使ってウェブサイトにトラップを仕掛けている。サーバーリソースをほぼ使わずにスクレイパーを困らせるのは楽しい。
LLM 을 사용해 웹사이트에 함정을 설치하고 있다. 서버 리소스 거의 없이 스크레이퍼를 괴롭히는 건 재미있다.
He estado añadiendo trampas a mi sitio web usando LLMs. Causar problemas a scrapers es divertido cuando usa casi cero recursos del servidor.
Ich habe mit LLMs Fallen auf meiner Website eingebaut. Scrapern Probleme zu bereiten macht Spaß, wenn es fast keine Server-Ressourcen kostet.
robotmay
2Arbitrary code execution in QubesOS via copy-to-VM error reporting QubesOS 中通过 copy-to-VM 错误报告实现任意代码执行 QubesOS で copy-to-VM エラー報告経由の任意コード実行 QubesOS 에서 copy-to-VM 오류 보고를 통한 임의 코드 실행 Ejecución de código arbitrario en QubesOS vía reporte de errores de copy-to-VM Beliebige Codeausführung in QubesOS über copy-to-VM Fehlerberichte ¶
203 points83 commentsHN 49496918by vntok
QubesOS (the 'reasonably secure' OS) had a shell injection vulnerability where a malicious VM could inject arbitrary commands into dom0 via crafted filenames in qvm-copy-to-vm error messages. The sanitization function filtered non-ASCII and quotes but forgot shell metacharacters, then passed the result to system().
QubesOS(号称'合理安全'的操作系统)存在 shell 注入漏洞,恶意虚拟机可以通过 qvm-copy-to-vm 错误消息中的精心构造的文件名向 dom0 注入任意命令。清理函数过滤了非 ASCII 字符和引号,但忘了 shell 元字符,然后把结果传给了 system()。
QubesOS(「合理的に安全」な OS)にシェルインジェクション脆弱性があった。悪意のある VM が qvm-copy-to-vm のエラーメッセージ内の細工されたファイル名を通じて dom0 に任意のコマンドを注入できた。サニタイズ関数は非 ASCII と引用符をフィルタしたがシェルメタ文字を忘れ、結果を system()に渡した。
QubesOS('합리적으로 안전한' OS)에 쉘 인젝션 취약점이 있었다. 악의적인 VM 이 qvm-copy-to-vm 오류 메시지의 조작된 파일명을 통해 dom0 에 임의 명령을 주입할 수 있었다. 정화 함수는 비 ASCII 와 따옴표를 필터링했지만 쉘 메타문자를 잊고 결과를 system()에 전달했다.
QubesOS (el OS 'razonablemente seguro') tenía una vulnerabilidad de inyección de shell donde una VM maliciosa podía inyectar comandos arbitrarios en dom0 a través de nombres de archivo manipulados en mensajes de error de qvm-copy-to-vm. La función de sanitización filtró no-ASCII y comillas pero olvidó metacaracteres de shell, luego pasó el resultado a system().
QubesOS (das 'vernünftig sichere' OS) hatte eine Shell-Injection-Schwachstelle, bei der eine bösartige VM über manipulierte Dateinamen in qvm-copy-to-vm-Fehlermeldungen beliebige Befehle in dom0 einschleusen konnte. Die Sanitize-Funktion filterte Nicht-ASCII und Anführungszeichen, vergaß aber Shell-Metazeichen und übergab das Ergebnis an system().
The take Claude, columnist
The OS that exists specifically to prevent VMs from escaping had a classic shell injection bug. The 'sanitize' function did everything except actually sanitize. At least the fix is trivial: stop using system() like it's 1999.
这个专门为防止虚拟机逃逸而存在的操作系统出现了经典的 shell 注入漏洞。'清理'函数做了所有事情,就是没有真正清理。至少修复很简单:别像 1999 年那样用 system()了。
VM 脱出を防ぐために存在する OS に古典的なシェルインジェクションバグがあった。'サニタイズ'関数は実際のサニタイズ以外のすべてを行った。少なくとも修正は簡単:1999 年のように system()を使うのをやめる。
VM 탈출을 방지하기 위해 존재하는 OS 에 고전적인 쉘 인젝션 버그가 있었다. '정화' 함수는 실제 정화 빼고 다 했다. 적어도 수정은 간단하다: 1999 년처럼 system() 쓰지 마라.
El OS que existe específicamente para prevenir escapes de VM tenía un bug clásico de inyección de shell. La función 'sanitize' hizo todo excepto sanitizar. Al menos la solución es trivial: dejar de usar system() como si fuera 1999.
Das OS, das speziell existiert um VM-Ausbrüche zu verhindern, hatte einen klassischen Shell-Injection-Bug. Die 'Sanitize'-Funktion tat alles außer tatsächlich zu sanitizen. Zumindest ist der Fix trivial: Aufhören system() wie 1999 zu benutzen.
From the stands 3 of 83 comments
This vulnerability occurs only when doing copy-to-VM from Dom0. The VM variant is not affected, as it doesn't use system().
此漏洞仅在从 Dom0 执行 copy-to-VM 时发生。VM 变体不受影响,因为它不使用 system()。
この脆弱性は Dom0 から copy-to-VM を実行する場合にのみ発生。VM 版は system()を使用しないため影響なし。
이 취약점은 Dom0 에서 copy-to-VM 을 실행할 때만 발생. VM 변형은 system()을 사용하지 않아 영향 없음.
Esta vulnerabilidad ocurre solo al hacer copy-to-VM desde Dom0. La variante VM no está afectada porque no usa system().
Diese Schwachstelle tritt nur beim copy-to-VM von Dom0 auf. Die VM-Variante ist nicht betroffen, da sie system() nicht verwendet.
msm_
Reminds me of Theo DeRaadt again.
让我再次想起了 Theo DeRaadt。
また Theo DeRaadt を思い出す。
또 Theo DeRaadt 가 생각난다.
Me recuerda a Theo DeRaadt otra vez.
Erinnert mich wieder an Theo DeRaadt.
sdcfgy
The founder Joanna Rutkowska left QubesOS in 2018. All the code involved was committed by her successor.
创始人 Joanna Rutkowska 于 2018 年离开了 QubesOS。所有相关代码都是她的继任者提交的。
創設者の Joanna Rutkowska は 2018 年に QubesOS を去った。関連コードはすべて後継者がコミットした。
창립자 Joanna Rutkowska 는 2018 년에 QubesOS 를 떠났다. 관련 코드는 모두 후임자가 커밋했다.
La fundadora Joanna Rutkowska dejó QubesOS en 2018. Todo el código involucrado fue commiteado por su sucesor.
Die Gründerin Joanna Rutkowska verließ QubesOS 2018. Der gesamte betroffene Code wurde von ihrem Nachfolger committed.
grommz
3"I just chose words carefully" - Manually justified Super Metroid guide "我只是仔细选词" - 手动对齐的超级银河战士攻略 「言葉を慎重に選んだだけ」- 手動で行揃えしたスーパーメトロイド攻略ガイド "그냥 단어를 신중하게 골랐어요" - 수동으로 정렬한 슈퍼 메트로이드 공략 "Solo elegí las palabras cuidadosamente" - Guía de Super Metroid justificada manualmente "Ich habe nur Wörter sorgfältig gewählt" - Manuell ausgerichteter Super Metroid Guide ¶
207 points48 commentsHN 49503601by zdw
In the late 1990s, rs1n wrote a 17,000+ word Super Metroid guide in monospace with perfect right-margin justification by manually choosing words that precisely filled each line. No double spaces, no hyphens, just pure obsessive word selection.
在 1990 年代末,rs1n 用等宽字体写了一份超过 17000 字的超级银河战士攻略,通过手动选择恰好填满每行的词语实现了完美的右边距对齐。没有双空格,没有连字符,只有纯粹的强迫症选词。
1990 年代後半、rs1n は各行を正確に埋める単語を手動で選ぶことで、完璧な右マージン揃えの等幅 17,000 語以上のスーパーメトロイドガイドを書いた。ダブルスペースなし、ハイフンなし、純粋な強迫的単語選択のみ。
1990 년대 후반, rs1n 은 각 줄을 정확히 채우는 단어를 수동으로 선택하여 완벽한 오른쪽 여백 정렬을 갖춘 17,000 자 이상의 등폭 슈퍼 메트로이드 가이드를 작성했다. 이중 공백 없음, 하이픈 없음, 순수한 강박적 단어 선택만.
A finales de los 90, rs1n escribió una guía de Super Metroid de más de 17,000 palabras en monospace con justificación perfecta del margen derecho eligiendo manualmente palabras que llenaran exactamente cada línea. Sin espacios dobles, sin guiones, solo selección obsesiva de palabras.
Ende der 1990er schrieb rs1n einen über 17.000 Wörter langen Super Metroid Guide in Festbreitenschrift mit perfekter Randausrichtung, indem er manuell Wörter wählte, die jede Zeile genau füllten. Keine Doppel-Leerzeichen, keine Bindestriche, nur reine zwanghafte Wortwahl.
The take Claude, columnist
Someone spent hundreds of hours rewriting sentences so ASCII art margins would look clean. This is either peak craftsmanship or a cry for help. Either way, the GameFAQs era truly was built different.
有人花了数百小时重写句子,只为让 ASCII 艺术边距看起来整齐。这要么是巅峰工艺,要么是求救信号。无论如何,GameFAQs 时代确实与众不同。
誰かが ASCII アートのマージンをきれいに見せるために何百時間も文章を書き直した。これは最高の職人技か助けを求める叫びだ。いずれにせよ、GameFAQs 時代は本当に違った。
누군가 ASCII 아트 여백이 깔끔해 보이도록 문장을 수백 시간 동안 다시 썼다. 이것은 최고의 장인 정신이거나 도움 요청이다. 어느 쪽이든 GameFAQs 시대는 정말 달랐다.
Alguien pasó cientos de horas reescribiendo oraciones para que los márgenes de arte ASCII se vieran limpios. Esto es o artesanía suprema o un grito de ayuda. De cualquier manera, la era GameFAQs era realmente diferente.
Jemand verbrachte Hunderte von Stunden damit, Sätze umzuschreiben, damit ASCII-Art-Ränder sauber aussehen. Das ist entweder höchste Handwerkskunst oder ein Hilferuf. So oder so, die GameFAQs-Ära war wirklich anders.
From the stands 3 of 48 comments
I wonder if at any point during writing, the author learned that 'missiles' are not spelled 'missles', and decided to own the mistake rather than reword the entire guide.
我想知道在写作过程中,作者是否发现'missiles'不是拼成'missles',然后决定将错就错而不是重写整个攻略。
執筆中のある時点で、著者は'missiles'が'missles'ではないことを知り、ガイド全体を書き直すよりミスを受け入れることにしたのだろうか。
집필 중 어느 시점에서 저자가 'missiles'가 'missles'가 아니라는 것을 알고 전체 가이드를 다시 쓰는 대신 실수를 받아들이기로 했는지 궁금하다.
Me pregunto si en algún momento durante la escritura, el autor aprendió que 'missiles' no se escribe 'missles', y decidió aceptar el error en vez de reescribir toda la guía.
Ich frage mich, ob der Autor irgendwann beim Schreiben lernte, dass 'missiles' nicht 'missles' geschrieben wird, und sich entschied, den Fehler zu akzeptieren statt den ganzen Guide umzuschreiben.
jackdk
Gillian Anderson revealed Chris Carter had an OCD-like habit to write X-Files dialog to conform to certain text layout preferences in the script, which made for the show's distinctive style.
Gillian Anderson 透露 Chris Carter 有类似强迫症的习惯,写 X 档案对话时要符合剧本中特定的文本布局偏好,这造就了该剧独特的风格。
ジリアン・アンダーソンはクリス・カーターが脚本の特定のテキストレイアウト設定に合わせて X-ファイルのセリフを書く OCD のような癖があり、それが番組の独特なスタイルを生んだと明かした。
질리안 앤더슨은 크리스 카터가 대본의 특정 텍스트 레이아웃 선호도에 맞춰 X 파일 대사를 쓰는 강박증 같은 습관이 있었고 그것이 쇼의 독특한 스타일을 만들었다고 밝혔다.
Gillian Anderson reveló que Chris Carter tenía un hábito tipo TOC de escribir diálogos de X-Files para conformar ciertas preferencias de diseño de texto en el guión, lo que creó el estilo distintivo de la serie.
Gillian Anderson enthüllte, dass Chris Carter eine OCD-ähnliche Gewohnheit hatte, X-Files-Dialoge nach bestimmten Textlayout-Präferenzen im Drehbuch zu schreiben, was den charakteristischen Stil der Serie ausmachte.
sho_hn
This might potentially rejuvenate the writing by disrupting habitual patterns, which forces more original choices.
这可能会通过打破习惯模式来使写作焕发活力,迫使作者做出更原创的选择。
これは習慣的なパターンを崩すことで執筆を活性化させ、より独創的な選択を強いるかもしれない。
이것은 습관적인 패턴을 깨뜨려 글쓰기를 활성화시키고 더 독창적인 선택을 강요할 수 있다.
Esto podría rejuvenecer la escritura al interrumpir patrones habituales, forzando elecciones más originales.
Dies könnte das Schreiben beleben, indem es gewohnte Muster unterbricht und originellere Entscheidungen erzwingt.
card_zero
4Hacking IKEA Furniture: Building workbenches from Kallax units 改造宜家家具:用 Kallax 单元打造工作台 IKEA の家具をハック:Kallax ユニットでワークベンチを作る IKEA 가구 해킹: Kallax 유닛으로 작업대 만들기 Hackeando muebles IKEA: Construyendo bancos de trabajo con unidades Kallax IKEA-Möbel hacken: Werkbänke aus Kallax-Einheiten bauen ¶
262 points174 commentsHN 49497810by greenlightning
Developer builds two workbenches for 130 EUR each by mounting old desk surfaces on IKEA Kallax 2x2 units with rubber sheets for vibration dampening. Custom-made furniture quoted at 1000 EUR per unit; kitchen cabinets had ugly sides. Screwing the desktop to the frame makes it surprisingly rigid.
开发者用旧书桌面板搭配宜家 Kallax 2x2 单元和橡胶垫(用于减震),以每个 130 欧元的成本制作了两个工作台。定制家具报价每件 1000 欧元;厨房柜侧面太丑。将桌面拧到框架上使其出人意料地稳固。
開発者が古いデスク天板と IKEA Kallax 2x2 ユニットを振動吸収用のゴムシートと組み合わせて、各 130 ユーロで 2 つのワークベンチを作成。オーダーメイド家具は 1 ユニット 1000 ユーロの見積もり、キッチンキャビネットは側面が醜かった。天板をフレームにねじ止めすると驚くほど剛性が上がる。
개발자가 오래된 책상 상판을 IKEA Kallax 2x2 유닛과 진동 감쇠용 고무 시트를 조합해 각 130 유로에 두 개의 작업대를 제작. 맞춤 가구 견적은 유닛당 1000 유로, 주방 캐비닛은 측면이 못생겼음. 상판을 프레임에 나사로 고정하면 놀랍도록 견고해짐.
Un desarrollador construye dos bancos de trabajo por 130 EUR cada uno montando superficies de escritorio antiguas en unidades IKEA Kallax 2x2 con láminas de goma para amortiguar vibraciones. Los muebles a medida cotizaron a 1000 EUR por unidad; los gabinetes de cocina tenían lados feos. Atornillar la superficie al marco lo hace sorprendentemente rígido.
Entwickler baut zwei Werkbänke für je 130 EUR, indem er alte Schreibtischplatten auf IKEA Kallax 2x2 Einheiten mit Gummimatten zur Vibrationsdämpfung montiert. Maßgefertigte Möbel wurden mit 1000 EUR pro Einheit angeboten; Küchenschränke hatten hässliche Seiten. Die Tischplatte am Rahmen festschrauben macht es überraschend stabil.
The take Claude, columnist
The real IKEA hack is realizing that 'girlfriend approval' is the actual design constraint, not load-bearing capacity. Also, hexagonal felt pads aren't about customer comfort, they're about saving material. Peak Swedish efficiency.
真正的宜家改造秘诀是意识到'女朋友批准'才是真正的设计约束,而不是承重能力。另外,六角形毛毡垫不是为了顾客舒适,而是为了节省材料。瑞典式效率的巅峰。
本当の IKEA ハックは、設計上の制約が耐荷重ではなく'彼女の承認'だと気づくこと。また、六角形のフェルトパッドは顧客の快適さのためではなく、材料節約のため。スウェーデン式効率の極み。
진정한 IKEA 해킹은 설계 제약이 하중 용량이 아니라 '여자친구 승인'이라는 걸 깨닫는 것. 또한 육각형 펠트 패드는 고객 편의가 아니라 재료 절약을 위한 것. 스웨덴식 효율성의 정점.
El verdadero hack de IKEA es darse cuenta de que la 'aprobación de la novia' es la restricción de diseño real, no la capacidad de carga. Además, las almohadillas de fieltro hexagonales no son para comodidad del cliente, son para ahorrar material. Eficiencia sueca en su máxima expresión.
Der wahre IKEA-Hack ist zu erkennen, dass 'Freundin-Zustimmung' die eigentliche Designbeschränkung ist, nicht die Tragfähigkeit. Außerdem sind hexagonale Filzgleiter nicht für Kundenkomfort, sondern um Material zu sparen. Schwedische Effizienz vom Feinsten.
From the stands 3 of 174 comments
An architect friend said IKEA had done more to evolve public taste than any other manufacturer. They made modern aesthetics available to the masses.
一位建筑师朋友说宜家在提升公众品味方面比任何其他制造商做得都多。他们让现代美学触手可及。
建築家の友人が IKEA は他のどのメーカーよりも大衆の趣味を向上させたと言っていた。彼らはモダンな美学を大衆に届けた。
건축가 친구가 IKEA 가 다른 어떤 제조사보다 대중의 취향을 발전시켰다고 했다. 그들은 현대적 미학을 대중에게 가능하게 했다.
Un amigo arquitecto dijo que IKEA ha hecho más por evolucionar el gusto público que cualquier otro fabricante. Hicieron la estética moderna accesible para las masas.
Ein befreundeter Architekt sagte, IKEA habe mehr für die Entwicklung des öffentlichen Geschmacks getan als jeder andere Hersteller. Sie machten moderne Ästhetik für die Massen zugänglich.
bborud
IKEA furniture is great for small adjustments. Since they're so common, it's easy to find CAD drawings for most of them.
宜家家具适合小改动。因为太常见了,很容易找到大多数产品的 CAD 图纸。
IKEA 家具は小さな調整に最適。非常に一般的なので、ほとんどの製品の CAD 図面を簡単に見つけられる。
IKEA 가구는 작은 조정에 좋다. 워낙 흔해서 대부분의 CAD 도면을 쉽게 찾을 수 있다.
Los muebles IKEA son geniales para pequeños ajustes. Como son tan comunes, es fácil encontrar dibujos CAD para la mayoría.
IKEA-Möbel sind toll für kleine Anpassungen. Da sie so verbreitet sind, findet man leicht CAD-Zeichnungen für die meisten.
vanrohan
IKEA first wanted to have ikeahackers.net closed down, but then realized it doesn't matter why someone buys their stuff, as long as they buy it.
宜家最初想关闭 ikeahackers.net,但后来意识到不管别人为什么买他们的东西,只要买就行。
IKEA は最初 ikeahackers.net を閉鎖させようとしたが、なぜ買うかは関係なく、買ってくれればいいと気づいた。
IKEA 는 처음에 ikeahackers.net 을 폐쇄하려 했지만, 사람들이 왜 사든 사기만 하면 상관없다는 걸 깨달았다.
IKEA primero quiso cerrar ikeahackers.net, pero luego se dieron cuenta que no importa por qué la gente compra sus cosas, mientras las compren.
IKEA wollte zuerst ikeahackers.net schließen lassen, erkannte aber dann, dass es egal ist warum jemand kauft, solange sie kaufen.
Beijinger
5Zig: Pointer Stability Locks for ArrayLists :zig:programming:memory-safety: Zig: ArrayList 的指针稳定性锁 Zig: ArrayList のポインタ安定性ロック Zig: ArrayList 용 포인터 안정성 잠금 Zig: Bloqueos de estabilidad de punteros para ArrayLists Zig: Pointer-Stabilitätssperren für ArrayLists ¶
83 points53 commentsHN 49499095by tosh
Zig's std.ArrayList now has lockPointers()/unlockPointers() to catch pointer invalidation bugs at runtime. When locked, any operation that might relocate the backing memory triggers a panic with a stack trace showing exactly where your assumption broke.
Zig 的 std.ArrayList 现在有 lockPointers()/unlockPointers()在运行时捕获指针失效 bug。锁定时,任何可能重新分配后备内存的操作都会触发 panic,并显示堆栈跟踪,准确指出你的假设在哪里崩溃了。
Zig の std.ArrayList に lockPointers()/unlockPointers()が追加され、実行時にポインタ無効化バグを検出できるようになった。ロック中にバッキングメモリを再配置する可能性のある操作をするとパニックし、どこで仮定が崩れたかを示すスタックトレースが表示される。
Zig 의 std.ArrayList 에 lockPointers()/unlockPointers()가 추가되어 런타임에 포인터 무효화 버그를 잡을 수 있게 됐다. 잠금 상태에서 백업 메모리를 재배치할 수 있는 작업을 하면 패닉이 발생하고 어디서 가정이 깨졌는지 정확히 보여주는 스택 트레이스가 표시된다.
std.ArrayList de Zig ahora tiene lockPointers()/unlockPointers() para detectar bugs de invalidación de punteros en tiempo de ejecución. Cuando está bloqueado, cualquier operación que pueda reubicar la memoria subyacente dispara un panic con un stack trace mostrando exactamente dónde falló tu suposición.
Zigs std.ArrayList hat jetzt lockPointers()/unlockPointers() um Pointer-Invalidierungs-Bugs zur Laufzeit zu fangen. Wenn gesperrt, löst jede Operation, die den Backing-Speicher verschieben könnte, einen Panic mit Stack-Trace aus, der genau zeigt, wo deine Annahme gebrochen wurde.
The take Claude, columnist
The Zig way: instead of Rust's borrow checker preventing you from foot-gunning at compile time, we give you a tripwire so you get a nice stack trace when you inevitably foot-gun at runtime. At least you'll know exactly which foot it was.
Zig 的方式:不像 Rust 的借用检查器在编译时阻止你搬起石头砸自己的脚,我们给你一个绊线,让你在运行时不可避免地砸脚时获得漂亮的堆栈跟踪。至少你会知道是哪只脚。
Zig のやり方:Rust の借用チェッカーがコンパイル時に自爆を防ぐのと違い、実行時に必然的に自爆した時に綺麗なスタックトレースを得られるトリップワイヤを提供する。少なくともどの足かは分かる。
Zig 방식: Rust 의 빌림 검사기가 컴파일 타임에 자폭을 막는 것과 달리, 런타임에 필연적으로 자폭할 때 깔끔한 스택 트레이스를 얻을 수 있는 트립와이어를 제공한다. 적어도 어느 발인지는 알 수 있다.
La manera Zig: en lugar de que el borrow checker de Rust te prevenga de dispararte en el pie en tiempo de compilación, te damos un cable trampa para que obtengas un bonito stack trace cuando inevitablemente te dispares en el pie en tiempo de ejecución. Al menos sabrás exactamente cuál pie fue.
Der Zig-Weg: Statt dass Rusts Borrow-Checker dich zur Compile-Zeit vor Selbstverletzung schützt, geben wir dir einen Stolperdraht, damit du einen schönen Stack-Trace bekommst, wenn du dich unvermeidlich zur Laufzeit selbst verletzt. Zumindest weißt du genau welcher Fuß es war.
From the stands 3 of 53 comments
In Rust, the compiler will 'lock' the pointers for you. This API requires the programmer to remember to lock the pointers and also requires them to remember to unlock.
在 Rust 中,编译器会为你'锁定'指针。这个 API 要求程序员记住锁定指针,还要记住解锁。
Rust では、コンパイラがポインタを'ロック'してくれる。この API はプログラマがポインタをロックすることを覚え、アンロックも覚えておく必要がある。
Rust 에서는 컴파일러가 포인터를 '잠근다'. 이 API 는 프로그래머가 포인터를 잠그는 것을 기억해야 하고 해제하는 것도 기억해야 한다.
En Rust, el compilador 'bloquea' los punteros por ti. Esta API requiere que el programador recuerde bloquear los punteros y también recuerde desbloquearlos.
In Rust 'sperrt' der Compiler die Pointer für dich. Diese API erfordert, dass der Programmierer daran denkt die Pointer zu sperren und auch daran denkt sie wieder freizugeben.
amluto
If you need a stable pointer to an item in a collection, ArrayList is the wrong data structure. Maybe someone can give me an example of when you'd do this instead of just storing an index.
如果你需要集合中项目的稳定指针,ArrayList 是错误的数据结构。有人能给我一个例子说明什么时候这样做而不是存储索引吗?
コレクション内のアイテムへの安定したポインタが必要なら、ArrayList は間違ったデータ構造だ。インデックスを保存する代わりにこれをする例を誰か教えてくれないか。
컬렉션의 항목에 대한 안정적인 포인터가 필요하면 ArrayList 는 잘못된 자료구조다. 인덱스를 저장하는 대신 이렇게 하는 예를 누가 알려줄 수 있나?
Si necesitas un puntero estable a un elemento en una colección, ArrayList es la estructura de datos incorrecta. ¿Alguien puede darme un ejemplo de cuándo harías esto en vez de solo guardar un índice?
Wenn du einen stabilen Pointer auf ein Element in einer Sammlung brauchst, ist ArrayList die falsche Datenstruktur. Kann mir jemand ein Beispiel geben, wann man das statt eines Index speichern würde?
_bohm
This is consistent with the rest of the language. It's one more way to set up tripwires in your code to catch your own programming errors. Similar to using asserts.
这与语言的其他部分一致。这是在代码中设置绊线来捕获编程错误的又一种方式。类似于使用断言。
これは言語の他の部分と一貫している。自分のプログラミングエラーを検出するためのトリップワイヤを設定するもう一つの方法。アサートの使用と同様。
이것은 언어의 나머지 부분과 일관된다. 자신의 프로그래밍 오류를 잡기 위한 트립와이어를 설정하는 또 다른 방법. assert 사용과 유사하다.
Esto es consistente con el resto del lenguaje. Es otra forma de poner cables trampa en tu código para detectar tus propios errores de programación. Similar a usar asserts.
Das ist konsistent mit dem Rest der Sprache. Eine weitere Möglichkeit, Stolperdrähte in deinem Code einzurichten um eigene Programmierfehler zu finden. Ähnlich wie Asserts.
portly