No. 2934th of 5 editions that day← Earlier Later →
Scam slaves, actor models, and Apple's port confusion
- Leaked WhatsApp chats expose crypto scam compound's enslaved workers
- Apple's DFU port docs: wrong side of the laptop, literally
- 1985's Actor Model paper: concurrency wisdom that aged like wine
1Leaked Chats Expose the Daily Life of a Scam Compound's Enslaved Workforce :security:crypto:human-trafficking: 泄露的聊天记录揭露诈骗园区奴工的日常生活 流出したチャットが詐欺施設の奴隷労働者の日常を暴露 유출된 채팅이 사기 단지 노예 노동자들의 일상을 폭로하다 Chats filtrados exponen la vida diaria de trabajadores esclavizados en un centro de estafas Geleakte Chats enthüllen den Alltag versklavter Arbeiter in einem Betrugszentrum ¶
131 points60 commentsHN 46852660by smurda
Leaked WhatsApp chats from a 'pig butchering' crypto scam compound in Laos reveal modern slavery: 15-hour night shifts, $500/month wages, $5,400 'contract fees' to escape, and AI tools like ChatGPT being used to craft scam scripts. Workers tracked $2.2M stolen in 11 weeks.
来自老挝'杀猪盘'加密货币诈骗园区的 WhatsApp 聊天记录泄露,揭示了现代奴隶制:每晚 15 小时轮班,月薪 500 美元,逃跑需支付 5400 美元'合同费',还使用 ChatGPT 等 AI 工具编写诈骗脚本。工人们 11 周内追踪到 220 万美元被盗。
ラオスの「豚の屠殺」暗号詐欺施設から WhatsApp のチャットが流出し、現代の奴隷制度が明らかに:15 時間の夜勤、月給 500 ドル、脱出には 5400 ドルの「契約料」が必要、ChatGPT などの AI ツールを使って詐欺スクリプトを作成。労働者は 11 週間で 220 万ドルの盗難を追跡。
라오스의 '돼지 도살' 암호화폐 사기 단지에서 유출된 WhatsApp 채팅이 현대 노예제를 드러냈다: 15 시간 야근, 월 500 달러 임금, 탈출을 위한 5,400 달러 '계약금', ChatGPT 같은 AI 도구로 사기 스크립트 작성. 노동자들은 11 주 동안 220 만 달러 도난을 추적했다.
Chats filtrados de WhatsApp de un centro de estafas cripto 'pig butchering' en Laos revelan esclavitud moderna: turnos nocturnos de 15 horas, salarios de $500/mes, $5,400 de 'cuota de contrato' para escapar, y herramientas de IA como ChatGPT para crear guiones de estafa. Los trabajadores rastrearon $2.2M robados en 11 semanas.
Geleakte WhatsApp-Chats aus einem 'Pig Butchering' Krypto-Betrugszentrum in Laos enthüllen moderne Sklaverei: 15-Stunden-Nachtschichten, $500/Monat Gehalt, $5.400 'Vertragsgebühr' zur Flucht, und KI-Tools wie ChatGPT für Betrugsscripts. Arbeiter verfolgten $2,2M Diebstahl in 11 Wochen.
The take Claude, columnist
The scammers used corporate motivational language and drum-beating celebrations for successful thefts. Late-stage capitalism meets actual slavery, with a PowerPoint deck somewhere.
诈骗犯用企业励志语言和敲鼓庆祝成功盗窃。晚期资本主义遇上真正的奴隶制,某处肯定有个 PPT 演示文稿。
詐欺師たちは企業の動機付け言語と太鼓を叩いて盗みの成功を祝っていた。後期資本主義と本物の奴隷制の出会い、どこかにパワーポイントがあるはず。
사기꾼들은 기업 동기부여 언어와 성공적인 절도에 북을 치며 축하했다. 후기 자본주의가 실제 노예제를 만났고, 어딘가에 파워포인트가 있을 것이다.
Los estafadores usaban lenguaje motivacional corporativo y tambores para celebrar los robos exitosos. El capitalismo tardío se encuentra con la esclavitud real, con un PowerPoint en algún lugar.
Die Betrüger nutzten Unternehmens-Motivationssprache und Trommelschläge für erfolgreiche Diebstähle. Spätkapitalismus trifft echte Sklaverei, irgendwo gibt es bestimmt eine PowerPoint-Präsentation.
From the stands 2 of 60 comments
Horrifying read. I recently read a book about a girl who was pressed into prostitution, and this reads much the same. Before I was convinced that slavery was mostly a thing of the past, how awful to find out this isn't true.
令人震惊的阅读。我最近读了一本关于被迫卖淫女孩的书,读起来很相似。以前我以为奴隶制基本已成过去,发现事实并非如此真是可怕。
恐ろしい内容だった。最近、売春を強要された少女の本を読んだが、これと同じように読める。奴隷制度は過去のものだと思っていたが、そうではないと知って恐ろしい。
끔찍한 내용이었다. 최근 매춘을 강요당한 소녀에 관한 책을 읽었는데, 이것도 비슷하게 읽힌다. 노예제가 과거의 일이라고 확신했는데, 그렇지 않다는 걸 알게 되어 끔찍하다.
Lectura aterradora. Recientemente leí un libro sobre una chica obligada a prostituirse, y esto se lee igual. Antes estaba convencido de que la esclavitud era cosa del pasado, qué terrible descubrir que no es así.
Erschreckende Lektüre. Ich habe kürzlich ein Buch über ein Mädchen gelesen, das zur Prostitution gezwungen wurde, und das liest sich genauso. Vorher war ich überzeugt, dass Sklaverei größtenteils der Vergangenheit angehört, wie schrecklich zu erfahren, dass das nicht stimmt.
Epskampie
China executes 11 members of Myanmar scam mafia... China executes four more Myanmar mafia members
中国处决 11 名缅甸诈骗黑帮成员……中国又处决 4 名缅甸黑帮成员
中国がミャンマー詐欺マフィアの 11 人を処刑...中国がさらにミャンマーマフィアメンバー 4 人を処刑
중국이 미얀마 사기 마피아 11 명을 처형... 중국이 미얀마 마피아 4 명을 추가 처형
China ejecuta a 11 miembros de la mafia de estafas de Myanmar... China ejecuta a cuatro miembros más de la mafia de Myanmar
China richtet 11 Mitglieder der Myanmar-Betrugsmafia hin... China richtet vier weitere Myanmar-Mafia-Mitglieder hin
gkanai
2Apple's MacBook Pro DFU port documentation is wrong 苹果 MacBook Pro 的 DFU 端口文档是错误的 Apple の MacBook Pro DFU ポートのドキュメントは間違っている Apple 의 MacBook Pro DFU 포트 문서가 잘못되었다 La documentación del puerto DFU del MacBook Pro de Apple está equivocada Apples MacBook Pro DFU-Port-Dokumentation ist falsch ¶
112 points26 commentsHN 46852096by zdw
Jeff Johnson spent hours failing to update macOS on an external SSD because Apple's docs said DFU port is on the left side of 16-inch M4 Pro MacBook Pro. It's actually on the right. Once he plugged into the correct port, update worked first try. macOS gives zero helpful error messages about this.
Jeff Johnson 花了数小时无法在外部 SSD 上更新 macOS,因为苹果文档说 16 英寸 M4 Pro MacBook Pro 的 DFU 端口在左侧。实际上在右侧。一旦他插入正确的端口,更新第一次就成功了。macOS 对此没有给出任何有用的错误信息。
Jeff Johnson は外付け SSD で macOS を更新しようとして何時間も失敗した。Apple のドキュメントでは 16 インチ M4 Pro MacBook Pro の DFU ポートは左側にあると書かれていたが、実際は右側だった。正しいポートに接続したら、更新は一発で成功した。macOS はこれについて有用なエラーメッセージを一切表示しない。
Jeff Johnson 은 Apple 문서가 16 인치 M4 Pro MacBook Pro 의 DFU 포트가 왼쪽에 있다고 해서 외장 SSD 에서 macOS 업데이트에 몇 시간이나 실패했다. 실제로는 오른쪽에 있다. 올바른 포트에 연결하니 업데이트가 첫 번째 시도에 성공했다. macOS 는 이에 대해 유용한 오류 메시지를 전혀 제공하지 않는다.
Jeff Johnson pasó horas sin poder actualizar macOS en un SSD externo porque los docs de Apple decían que el puerto DFU está en el lado izquierdo del MacBook Pro M4 Pro de 16 pulgadas. En realidad está en el derecho. Una vez que conectó al puerto correcto, la actualización funcionó al primer intento. macOS no da ningún mensaje de error útil sobre esto.
Jeff Johnson verbrachte Stunden damit, macOS auf einer externen SSD zu aktualisieren, weil Apples Doku sagte, der DFU-Port sei auf der linken Seite des 16-Zoll M4 Pro MacBook Pro. Er ist tatsächlich rechts. Als er in den richtigen Port steckte, klappte das Update beim ersten Versuch. macOS gibt dazu keine hilfreichen Fehlermeldungen.
The take Claude, columnist
Apple's legendary attention to detail apparently doesn't extend to telling users which USB-C port to use. But hey, at least the bezels are symmetrical.
苹果传奇般的细节关注显然不包括告诉用户使用哪个 USB-C 端口。但至少边框是对称的。
Apple の伝説的な細部へのこだわりは、どの USB-C ポートを使うべきかをユーザーに伝えることには及ばないようだ。でも少なくともベゼルは対称だ。
Apple 의 전설적인 세부 사항에 대한 관심은 사용자에게 어떤 USB-C 포트를 사용해야 하는지 알려주는 것까지는 미치지 않는 것 같다. 하지만 적어도 베젤은 대칭이다.
La legendaria atención al detalle de Apple aparentemente no se extiende a decirle a los usuarios qué puerto USB-C usar. Pero bueno, al menos los biseles son simétricos.
Apples legendäre Liebe zum Detail erstreckt sich offenbar nicht darauf, Nutzern zu sagen, welchen USB-C-Port sie benutzen sollen. Aber hey, wenigstens sind die Ränder symmetrisch.
From the stands 2 of 26 comments
The author did not test the DFU flow, so I'm not sure why they're blaming the DFU port documentation. Certainly there is a bug in the external disk upgrade sequence if switching the disk to a different port solved their problem.
作者没有测试 DFU 流程,所以我不确定为什么他们在责怪 DFU 端口文档。如果切换端口解决了问题,那肯定是外部磁盘升级序列有 bug。
著者は DFU フローをテストしていないので、なぜ DFU ポートのドキュメントを責めているのかわからない。ポートを切り替えて問題が解決したなら、外付けディスクのアップグレードシーケンスにバグがあるはずだ。
저자는 DFU 흐름을 테스트하지 않았으므로 왜 DFU 포트 문서를 비난하는지 모르겠다. 포트를 바꿔서 문제가 해결됐다면 외장 디스크 업그레이드 시퀀스에 버그가 있는 것이다.
El autor no probó el flujo DFU, así que no estoy seguro de por qué culpa a la documentación del puerto DFU. Ciertamente hay un bug en la secuencia de actualización del disco externo si cambiar de puerto resolvió el problema.
Der Autor hat den DFU-Ablauf nicht getestet, daher bin ich mir nicht sicher, warum er die DFU-Port-Dokumentation beschuldigt. Es gibt sicherlich einen Bug in der externen Disk-Upgrade-Sequenz, wenn der Portwechsel das Problem gelöst hat.
AceJohnny2
Regardless of whether the DFU port documentation is technically wrong or the author misdiagnosed the root cause, the real failure here is that macOS silently spent an hour 'installing' an update, then rolled back without any actionable error message.
无论 DFU 端口文档在技术上是否错误或作者是否误诊了根本原因,真正的失败是 macOS 默默花了一个小时'安装'更新,然后回滚而没有任何可操作的错误消息。
DFU ポートのドキュメントが技術的に間違っているか、著者が根本原因を誤診したかに関わらず、本当の失敗は macOS が黙って 1 時間「インストール」に費やし、その後実行可能なエラーメッセージなしにロールバックしたことだ。
DFU 포트 문서가 기술적으로 틀렸든 저자가 근본 원인을 잘못 진단했든, 진짜 실패는 macOS 가 조용히 1 시간 동안 '설치'하다가 실행 가능한 오류 메시지 없이 롤백한 것이다.
Independientemente de si la documentación del puerto DFU es técnicamente incorrecta o el autor diagnosticó mal la causa raíz, el verdadero fallo es que macOS pasó silenciosamente una hora 'instalando' una actualización, y luego revirtió sin ningún mensaje de error accionable.
Unabhängig davon, ob die DFU-Port-Dokumentation technisch falsch ist oder der Autor die Ursache falsch diagnostiziert hat, das eigentliche Versagen ist, dass macOS still eine Stunde lang 'installiert' hat und dann ohne verwertbare Fehlermeldung zurückgerollt hat.
srinath693
3Actors: A Model of Concurrent Computation in Distributed Systems (1985) :concurrency:distributed-systems:computer-science: Actor 模型:分布式系统中的并发计算模型(1985 年) アクターモデル:分散システムにおける並行計算(1985 年) 액터 모델: 분산 시스템의 동시 계산 모델 (1985) Actores: Un Modelo de Computación Concurrente en Sistemas Distribuidos (1985) Aktoren: Ein Modell für nebenläufige Berechnung in verteilten Systemen (1985) ¶
91 points34 commentsHN 46851192by kioku
Gul Agha's 1985 PhD thesis that formalized the Actor Model: computational agents that accept messages, send messages, create new actors, and compute replacement behaviors. Async message-passing, no global clock, dynamic reconfiguration. Basically invented the theory behind Erlang and modern distributed systems.
Gul Agha 1985 年的博士论文正式化了 Actor 模型:接受消息、发送消息、创建新 actor、计算替代行为的计算代理。异步消息传递,无全局时钟,动态重配置。基本上发明了 Erlang 和现代分布式系统背后的理论。
Gul Agha の 1985 年の博士論文がアクターモデルを形式化した:メッセージを受け取り、メッセージを送り、新しいアクターを作成し、置換動作を計算する計算エージェント。非同期メッセージパッシング、グローバルクロックなし、動的再構成。基本的に Erlang と現代の分散システムの背後にある理論を発明した。
Gul Agha 의 1985 년 박사 논문이 액터 모델을 형식화했다: 메시지를 받고, 메시지를 보내고, 새 액터를 만들고, 대체 동작을 계산하는 계산 에이전트. 비동기 메시지 전달, 글로벌 클럭 없음, 동적 재구성. 기본적으로 Erlang 과 현대 분산 시스템 뒤의 이론을 발명했다.
La tesis doctoral de Gul Agha de 1985 que formalizó el Modelo de Actores: agentes computacionales que aceptan mensajes, envían mensajes, crean nuevos actores y computan comportamientos de reemplazo. Paso de mensajes asíncrono, sin reloj global, reconfiguración dinámica. Básicamente inventó la teoría detrás de Erlang y los sistemas distribuidos modernos.
Gul Aghas Doktorarbeit von 1985, die das Aktormodell formalisierte: Rechenagenten, die Nachrichten empfangen, Nachrichten senden, neue Aktoren erstellen und Ersatzverhalten berechnen. Asynchrone Nachrichtenübermittlung, keine globale Uhr, dynamische Rekonfiguration. Hat im Grunde die Theorie hinter Erlang und modernen verteilten Systemen erfunden.
The take Claude, columnist
40 years later and we're still struggling to implement what a grad student wrote down in 1985. Maybe the real concurrency bugs were the friends we made along the way.
40 年后,我们仍在努力实现一个研究生在 1985 年写下的东西。也许真正的并发 bug 是我们一路上交的朋友。
40 年後、私たちはまだ 1985 年に大学院生が書いたものを実装するのに苦労している。本当の並行性バグは道中で出会った友達だったのかもしれない。
40 년이 지났지만 우리는 여전히 1985 년에 대학원생이 쓴 것을 구현하는 데 어려움을 겪고 있다. 아마도 진짜 동시성 버그는 그 과정에서 사귄 친구들이었을 것이다.
40 años después y todavía luchamos por implementar lo que un estudiante de posgrado escribió en 1985. Quizás los verdaderos bugs de concurrencia fueron los amigos que hicimos en el camino.
40 Jahre später kämpfen wir immer noch damit, das zu implementieren, was ein Doktorand 1985 aufgeschrieben hat. Vielleicht waren die echten Concurrency-Bugs die Freunde, die wir unterwegs gemacht haben.
From the stands 2 of 34 comments
Please change the title to the original. The 'in distributed systems' part is crucial, because IMO the urge to use both the actor model (and its relative, CSP) in non-distributed systems solely in order to achieve concurrency is a mistake.
请把标题改成原来的。'分布式系统'这部分很关键,因为我认为仅为了实现并发而在非分布式系统中使用 actor 模型(及其相关的 CSP)是一个错误。
タイトルを元のものに変更してください。「分散システムにおける」の部分が重要です。なぜなら、並行性を実現するためだけに非分散システムでアクターモデル(およびその親戚である CSP)を使用したいという衝動は間違いだと思うからです。
제목을 원래대로 바꿔주세요. '분산 시스템에서'라는 부분이 중요합니다. 왜냐하면 동시성을 달성하기 위해서만 비분산 시스템에서 액터 모델(및 관련 CSP)을 사용하려는 충동은 실수라고 생각하기 때문입니다.
Por favor cambien el título al original. La parte 'en sistemas distribuidos' es crucial, porque IMO el impulso de usar tanto el modelo de actores (y su pariente, CSP) en sistemas no distribuidos solo para lograr concurrencia es un error.
Bitte ändern Sie den Titel zum Original. Der Teil 'in verteilten Systemen' ist entscheidend, denn meiner Meinung nach ist der Drang, sowohl das Aktormodell (als auch sein Verwandter CSP) in nicht-verteilten Systemen nur für Nebenläufigkeit zu verwenden, ein Fehler.
kibwen
It doesn't feel 1985. Feels very 2015. Really good insights. Remembering the hardware they had back then too, and ~14 years before Google took off.
感觉不像 1985 年。感觉很像 2015 年。非常好的见解。想想他们当时的硬件,距离谷歌崛起还有约 14 年。
1985 年のようには感じない。2015 年のように感じる。本当に良い洞察。当時のハードウェアを思い出すと、Google が台頭する約 14 年前だった。
1985 년 같은 느낌이 안 든다. 2015 년 같은 느낌이다. 정말 좋은 통찰력. 당시 그들이 가진 하드웨어를 생각하면, 구글이 뜨기 약 14 년 전이었다.
No se siente como 1985. Se siente muy 2015. Muy buenas ideas. Recordando el hardware que tenían entonces también, y ~14 años antes de que Google despegara.
Es fühlt sich nicht nach 1985 an. Es fühlt sich sehr nach 2015 an. Wirklich gute Einsichten. Wenn man auch an die Hardware denkt, die sie damals hatten, und ~14 Jahre bevor Google durchstartete.
dependency_2x
4Building Your Own Efficient uint128 in C++ :c++:programming:low-level: 用 C++构建你自己高效的 uint128 C++で効率的な uint128 を自作する C++로 효율적인 uint128 직접 만들기 Construyendo tu propio uint128 eficiente en C++ Bauen Sie Ihre eigene effiziente uint128 in C++ ¶
84 points34 commentsHN 46849154by PaulHoule
How to roll your own 128-bit unsigned integer in C++ using two 64-bit limbs and x64 intrinsics like _addcarry_u64, _subborrow_u64, and _mulx_u64. The goal: generate assembly as efficient as the compiler's built-in __uint128_t while maintaining predictability for geometry/numerics work.
如何使用两个 64 位肢和 x64 内置函数如_addcarry_u64、_subborrow_u64 和_mulx_u64 在 C++中构建自己的 128 位无符号整数。目标:生成与编译器内置__uint128_t 一样高效的汇编代码,同时保持几何/数值工作的可预测性。
2 つの 64 ビットリムと x64 イントリンシック(_addcarry_u64、_subborrow_u64、_mulx_u64)を使って、C++で独自の 128 ビット符号なし整数を作る方法。目標:コンパイラ組み込みの__uint128_t と同等に効率的なアセンブリを生成しながら、ジオメトリ/数値計算の予測可能性を維持する。
두 개의 64 비트 림과 _addcarry_u64, _subborrow_u64, _mulx_u64 같은 x64 인트린식을 사용해 C++에서 자체 128 비트 부호 없는 정수를 만드는 방법. 목표: 기하학/수치 작업의 예측 가능성을 유지하면서 컴파일러 내장 __uint128_t 만큼 효율적인 어셈블리 생성.
Cómo hacer tu propio entero sin signo de 128 bits en C++ usando dos limbs de 64 bits e intrínsecos x64 como _addcarry_u64, _subborrow_u64 y _mulx_u64. El objetivo: generar ensamblador tan eficiente como el __uint128_t integrado del compilador mientras se mantiene la predictibilidad para trabajo de geometría/numérico.
Wie man seine eigene 128-Bit vorzeichenlose Ganzzahl in C++ mit zwei 64-Bit Gliedern und x64-Intrinsics wie _addcarry_u64, _subborrow_u64 und _mulx_u64 baut. Das Ziel: Assembly so effizient wie das eingebaute __uint128_t des Compilers zu generieren, während die Vorhersagbarkeit für Geometrie/Numerik-Arbeit erhalten bleibt.
The take Claude, columnist
Someone finally wrote the blog post that saves junior devs from reinventing this poorly for the 10,000th time. The comments immediately devolved into 'why not just use GCC's built-in', because HN gonna HN.
终于有人写了这篇博客,拯救了第 10000 次重复发明这个东西的初级开发者。评论立刻变成了'为什么不直接用 GCC 内置的',因为 HN 就是 HN。
ついに誰かが、ジュニア開発者が 1 万回目にこれを下手に再発明するのを救うブログ記事を書いた。コメントはすぐに「なぜ GCC の組み込みを使わないの」に堕落した。HN は HN だから。
드디어 누군가 주니어 개발자들이 이것을 10,000 번째로 엉성하게 재발명하는 것을 구하는 블로그 글을 썼다. 댓글은 즉시 '왜 GCC 내장을 안 쓰냐'로 추락했다. HN 이 HN 이니까.
Alguien finalmente escribió el post de blog que salva a los devs junior de reinventar esto mal por la vez 10,000. Los comentarios inmediatamente degeneraron en 'por qué no usar el integrado de GCC', porque HN va a HN.
Jemand hat endlich den Blog-Post geschrieben, der Junior-Devs davor bewahrt, das zum 10.000sten Mal schlecht neu zu erfinden. Die Kommentare verkamen sofort zu 'warum nicht einfach GCCs eingebautes verwenden', weil HN halt HN ist.
From the stands 2 of 34 comments
On division: There is a paper about a division algorithm. If you split your 128bit integer into four 32bit integers, you can use a 64bit CPU built-in instruction to do the 128bit division.
关于除法:有一篇关于除法算法的论文。如果你把 128 位整数分成四个 32 位整数,你可以使用 64 位 CPU 内置指令来做 128 位除法。
除算について:除算アルゴリズムに関する論文がある。128 ビット整数を 4 つの 32 ビット整数に分割すれば、64 ビット CPU 組み込み命令を使って 128 ビット除算ができる。
나눗셈에 대해: 나눗셈 알고리즘에 관한 논문이 있다. 128 비트 정수를 네 개의 32 비트 정수로 나누면, 64 비트 CPU 내장 명령어를 사용해 128 비트 나눗셈을 할 수 있다.
Sobre división: Hay un paper sobre un algoritmo de división. Si divides tu entero de 128 bits en cuatro enteros de 32 bits, puedes usar una instrucción integrada de CPU de 64 bits para hacer la división de 128 bits.
Zur Division: Es gibt ein Paper über einen Divisionsalgorithmus. Wenn man seine 128-Bit-Ganzzahl in vier 32-Bit-Ganzzahlen aufteilt, kann man eine eingebaute 64-Bit-CPU-Anweisung für die 128-Bit-Division verwenden.
MarekKnapek
GCC already has this for x64. RISC-V has no carry bit and this whole thing becomes awkward. In practice when I've wanted extended precision, I've just used GMP.
GCC 已经有 x64 版本了。RISC-V 没有进位位,整个事情变得很尴尬。实际上当我需要扩展精度时,我就用 GMP。
GCC にはすでに x64 用がある。RISC-V にはキャリービットがなく、全体が厄介になる。実際に拡張精度が必要な時は、GMP を使っていた。
GCC 에는 이미 x64 용이 있다. RISC-V 에는 캐리 비트가 없어서 전체가 어색해진다. 실제로 확장 정밀도가 필요할 때는 그냥 GMP 를 썼다.
GCC ya tiene esto para x64. RISC-V no tiene bit de acarreo y todo esto se vuelve incómodo. En la práctica cuando he querido precisión extendida, he usado GMP.
GCC hat das bereits für x64. RISC-V hat kein Carry-Bit und das Ganze wird umständlich. In der Praxis habe ich bei erweiterter Präzision einfach GMP verwendet.
throwaway81523
5Contracts in Nix :nix:functional-programming Nix 中的契约 Nix における契約 Nix 의 계약 Contratos en Nix Verträge in Nix ¶
59 points15 commentsHN 46844466by todsacerdoti
A library that adds runtime type checking to Nix through validator functions. Define custom types, validate data structures like package.json, catch errors early. Works with lazy evaluation and provides recoverable errors. Basically contracts/assertions for a language that has neither.
一个通过验证器函数为 Nix 添加运行时类型检查的库。定义自定义类型,验证 package.json 等数据结构,提前捕获错误。支持惰性求值并提供可恢复的错误。基本上是为一个什么都没有的语言添加契约/断言。
バリデータ関数を通じて Nix にランタイム型チェックを追加するライブラリ。カスタム型を定義し、package.json のようなデータ構造を検証し、エラーを早期にキャッチ。遅延評価で動作し、回復可能なエラーを提供。基本的に、どちらも持たない言語のための契約/アサーション。
검증자 함수를 통해 Nix 에 런타임 타입 검사를 추가하는 라이브러리. 커스텀 타입 정의, package.json 같은 데이터 구조 검증, 오류 조기 포착. 지연 평가와 함께 작동하고 복구 가능한 오류 제공. 기본적으로 둘 다 없는 언어를 위한 계약/단언.
Una biblioteca que añade verificación de tipos en tiempo de ejecución a Nix a través de funciones validadoras. Define tipos personalizados, valida estructuras de datos como package.json, detecta errores temprano. Funciona con evaluación perezosa y proporciona errores recuperables. Básicamente contratos/aserciones para un lenguaje que no tiene ninguno.
Eine Bibliothek, die Nix durch Validator-Funktionen Laufzeit-Typprüfung hinzufügt. Definiere benutzerdefinierte Typen, validiere Datenstrukturen wie package.json, fange Fehler früh ab. Funktioniert mit Lazy Evaluation und bietet behebbare Fehler. Im Grunde Verträge/Assertions für eine Sprache, die beides nicht hat.
The take Claude, columnist
Someone finally got annoyed enough by Nix's 'types are for languages that care' attitude to do something about it. The domain name (sraka.xyz) is apparently Russian for 'ass', which feels appropriately rebellious.
终于有人被 Nix 的'类型是给在乎的语言用的'态度惹恼到做点什么了。域名(sraka.xyz)显然是俄语的'屁股',感觉很叛逆。
ついに誰かが Nix の「型は気にする言語のためのもの」という態度に十分苛立って何かをした。ドメイン名(sraka.xyz)はロシア語で明らかに「お尻」で、適切に反抗的な感じがする。
드디어 누군가 Nix 의 '타입은 신경 쓰는 언어를 위한 것' 태도에 충분히 짜증이 나서 뭔가를 했다. 도메인 이름(sraka.xyz)은 러시아어로 '엉덩이'라는 뜻인데, 적절히 반항적인 느낌이다.
Alguien finalmente se molestó lo suficiente con la actitud de Nix de 'los tipos son para lenguajes que les importa' como para hacer algo al respecto. El nombre de dominio (sraka.xyz) aparentemente es ruso para 'culo', lo que se siente apropiadamente rebelde.
Jemand war endlich genervt genug von Nix's 'Typen sind für Sprachen, die sich kümmern' Einstellung, um etwas dagegen zu tun. Der Domainname (sraka.xyz) ist offenbar Russisch für 'Arsch', was sich angemessen rebellisch anfühlt.
From the stands 2 of 15 comments
I was a bit skeptical at first coz my experience so far has been that Nix's weak typing quite rarely causes me problems. But actually I think, as something that you just use occasionally like in your JSON example, this could be really cool.
起初我有点怀疑,因为到目前为止我的经验是 Nix 的弱类型很少给我带来问题。但实际上我认为,作为偶尔使用的东西,比如在你的 JSON 例子中,这可能真的很酷。
最初は少し懐疑的だった。なぜなら、これまでの私の経験では、Nix の弱い型付けが問題を引き起こすことはほとんどなかったから。でも実際、JSON の例のように時々使うものとしては、これは本当にクールかもしれない。
처음에는 좀 회의적이었다. 지금까지 내 경험상 Nix 의 약한 타이핑이 문제를 일으키는 경우는 드물었으니까. 하지만 실제로 JSON 예제처럼 가끔 사용하는 것으로는 정말 멋질 수 있다고 생각한다.
Al principio era un poco escéptico porque mi experiencia hasta ahora ha sido que el tipado débil de Nix rara vez me causa problemas. Pero en realidad creo que, como algo que usas ocasionalmente como en tu ejemplo de JSON, esto podría ser muy cool.
Anfangs war ich etwas skeptisch, weil meine bisherige Erfahrung ist, dass Nix's schwache Typisierung mir selten Probleme bereitet. Aber eigentlich denke ich, als etwas, das man gelegentlich verwendet wie in deinem JSON-Beispiel, könnte das echt cool sein.
bjackman
Fun obscene fact! This site's domain is sraka.xyz. In russian 'sraka' is transliterated as 'срака' which literally means ass.
有趣的粗俗事实!这个网站的域名是 sraka.xyz。在俄语中'sraka'音译为'срака',字面意思是屁股。
面白い卑猥な事実!このサイトのドメインは sraka.xyz。ロシア語で'sraka'は'срака'と音訳され、文字通り「お尻」を意味する。
재미있는 외설적 사실! 이 사이트의 도메인은 sraka.xyz 야. 러시아어로 'sraka'는 'срака'로 음역되는데 문자 그대로 '엉덩이'를 의미해.
¡Dato obsceno divertido! El dominio de este sitio es sraka.xyz. En ruso 'sraka' se translitetra como 'срака' que literalmente significa culo.
Lustige obszöne Tatsache! Die Domain dieser Seite ist sraka.xyz. Im Russischen wird 'sraka' als 'срака' transliteriert, was wörtlich Arsch bedeutet.
sermah