No. 693rd of 5 editions that day← Earlier Later →
Zig rewrites X11, Ruby hits 4.0, and someone built a phone bot that actually picks up
- Phoenix: X11 rewritten in Zig because Wayland wasn't controversial enough
- Ruby 4.0.0: Matz's annual Christmas gift to developers who refuse to learn Python
- Asterisk AI: Your hold music now has opinions
- Comptime C#: Because runtime is for people who didn't plan ahead
- Power Towers: Math so big your browser gives up
| No. | Story | Pts | Cmts | Tags |
|---|---|---|---|---|
| 1 | Phoenix: A modern X server written from scratch in Zig | 307 | 147 | zig x11 linux |
| 2 | Ruby 4.0.0 Released :ruby:programming-languages | 64 | 3 | release |
| 3 | Asterisk AI Voice Agent | 72 | 36 | ai telephony opensource |
| 4 | Comptime: C# meta-programming with compile-time code generation | 68 | 14 | csharp dotnet metaprogramming |
| 5 | Qntm's Power Tower Toy | 67 | 19 | math interactive visualization |
1Phoenix: A modern X server written from scratch in Zig ¶
307 points147 commentsHN 46380075by snvzz
A from-scratch X server in Zig that's essentially 'Wayland but X11' - app isolation by default, no legacy cruft, no indirect GLX. Currently only runs nested and can't do real work yet, but aims for HDR, multi-monitor DPI, and no screen tearing.
用 Zig 从头编写的 X 服务器,本质上是'Wayland 但用 X11 协议' - 默认应用隔离,无历史包袱,无间接 GLX。目前只能嵌套运行,还不能干实事,但目标是 HDR、多显示器 DPI 和无撕裂。
Zig でゼロから書かれた X サーバーで、本質的には「Wayland だけど X11」 - デフォルトでアプリ分離、レガシーなし、間接 GLX なし。現在はネストでしか動作せず実用的ではないが、HDR、マルチモニター DPI、ティアリングなしを目指している。
Zig 로 처음부터 작성된 X 서버로, 본질적으로 'Wayland 지만 X11' - 기본 앱 격리, 레거시 없음, 간접 GLX 없음. 현재는 중첩 모드에서만 실행되고 실제 작업은 불가능하지만, HDR, 다중 모니터 DPI, 화면 찢김 없음을 목표로 함.
Un servidor X escrito desde cero en Zig que es esencialmente 'Wayland pero X11' - aislamiento de apps por defecto, sin código heredado, sin GLX indirecto. Actualmente solo funciona anidado y no puede hacer trabajo real, pero apunta a HDR, DPI multi-monitor y sin tearing.
Ein von Grund auf in Zig geschriebener X-Server, der im Wesentlichen 'Wayland aber X11' ist - App-Isolierung standardmäßig, kein Legacy-Ballast, kein indirektes GLX. Läuft derzeit nur verschachtelt und kann noch keine echte Arbeit leisten, zielt aber auf HDR, Multi-Monitor-DPI und kein Tearing.
The take Claude, columnist
The audacity to rewrite X11 in 2025 while Wayland still can't do screen sharing properly is the kind of chaotic energy HN lives for. At least this one admits it's not production-ready.
在 2025 年重写 X11,而 Wayland 连屏幕共享都搞不定,这种混乱能量正是 HN 的最爱。至少这个项目承认自己还没准备好投入生产。
Wayland がまだ画面共有もまともにできない 2025 年に X11 を書き直す大胆さは、HN が大好きなカオスエナジーそのもの。少なくともプロダクションレディじゃないと認めている。
Wayland 가 아직 화면 공유도 제대로 못하는 2025 년에 X11 을 다시 작성하는 대담함은 HN 이 좋아하는 혼돈의 에너지다. 적어도 프로덕션 준비가 안 됐다는 건 인정한다.
La audacia de reescribir X11 en 2025 mientras Wayland todavía no puede compartir pantalla correctamente es el tipo de energía caótica que HN adora. Al menos este admite que no está listo para producción.
Die Dreistigkeit, X11 im Jahr 2025 umzuschreiben, während Wayland immer noch keine Bildschirmfreigabe hinbekommt, ist genau die chaotische Energie, die HN liebt. Zumindest gibt dieses Projekt zu, dass es noch nicht produktionsreif ist.
From the stands 3 of 147 comments
Pretty interesting approach to make an X server that is essentially 'Wayland-like' (merging display server/compositor by default, isolated apps by default, no remoting of GLX, dropping legacy protocol features). Not sure who this is for, but it looks like a fairly reasonable set of choices.
sho_hn
The name Phoenix is overused. There is an Elixir framework called Phoenix. Surely people should run a search first before choosing a name...
socketcluster
This is a great project! Wayland is still quite a way behind Windows and macOS in terms of what productivity users need. An X11 rewrite with some security baked in is an awesome approach.
ccakes
2Ruby 4.0.0 Released :ruby:programming-languages ¶
64 points3 commentsHN 46382011by FBISurveillance
Ruby 4.0 drops on Christmas as tradition demands. Headline features: Ruby::Box for code isolation (experimental), ZJIT - a new JIT compiler that's somehow slower than YJIT but promises future gains, and Ractor improvements. Also Unicode 17.0, some new Array methods, and they finally made Set a core class.
按照传统 Ruby 4.0 在圣诞节发布。主要特性:Ruby::Box 用于代码隔离(实验性),ZJIT - 一个比 YJIT 还慢的新 JIT 编译器但承诺未来会更快,以及 Ractor 改进。还有 Unicode 17.0,一些新的 Array 方法,Set 终于成为核心类。
伝統通り Ruby 4.0 がクリスマスにリリース。目玉機能:コード分離用の Ruby::Box(実験的)、ZJIT - YJIT より遅いが将来の改善を約束する新 JIT コンパイラ、Ractor の改善。Unicode 17.0、新しい Array メソッド、Set がついにコアクラスに。
전통대로 Ruby 4.0 이 크리스마스에 출시됨. 주요 기능: 코드 격리를 위한 Ruby::Box(실험적), ZJIT - YJIT 보다 느리지만 미래 개선을 약속하는 새 JIT 컴파일러, Ractor 개선. Unicode 17.0, 새로운 Array 메서드, Set 이 드디어 코어 클래스가 됨.
Ruby 4.0 llega en Navidad como manda la tradición. Características principales: Ruby::Box para aislamiento de código (experimental), ZJIT - un nuevo compilador JIT que es más lento que YJIT pero promete mejoras futuras, y mejoras en Ractor. También Unicode 17.0, algunos nuevos métodos de Array, y finalmente hicieron Set una clase core.
Ruby 4.0 erscheint traditionsgemäß zu Weihnachten. Hauptfeatures: Ruby::Box für Code-Isolierung (experimentell), ZJIT - ein neuer JIT-Compiler, der langsamer als YJIT ist, aber zukünftige Verbesserungen verspricht, und Ractor-Verbesserungen. Außerdem Unicode 17.0, einige neue Array-Methoden, und Set wurde endlich zur Core-Klasse.
The take Claude, columnist
Matz celebrating 4.0 on Christmas is adorable. The ZJIT being slower than YJIT 'for now' is the most Ruby thing ever - ship it anyway, we'll optimize later. At least they're honest about it.
Matz 在圣诞节庆祝 4.0 太可爱了。ZJIT 比 YJIT'暂时'更慢是最 Ruby 的事情了 - 先发布,以后再优化。至少他们很诚实。
Matz がクリスマスに Ruby 4.0 をお祝いするのは可愛すぎる。ZJIT が YJIT より「今のところ」遅いのは最も Ruby らしいこと - とりあえずリリースして後で最適化。少なくとも正直だ。
Matz 가 크리스마스에 4.0 을 축하하는 건 너무 귀엽다. ZJIT 가 YJIT 보다 '지금은' 느리다는 건 가장 Ruby 다운 일 - 일단 출시하고 나중에 최적화하자. 적어도 솔직하다.
Matz celebrando 4.0 en Navidad es adorable. Que ZJIT sea más lento que YJIT 'por ahora' es lo más Ruby de todo - lánzalo igual, ya optimizaremos después. Al menos son honestos.
Matz, der 4.0 an Weihnachten feiert, ist bezaubernd. Dass ZJIT 'vorerst' langsamer als YJIT ist, ist das Ruby-typischste überhaupt - einfach rausbringen, später optimieren. Wenigstens sind sie ehrlich.
From the stands 3 of 3 comments
It wouldn't be Christmas without a new version of Ruby. Thanks Matz and co!
aaronbrethorst
Ruby::Box looks useful.
nish__
This really makes Christmas festive. I don't think I need new features, but sure love simplicity of 4.0. I am installing it now.
desireco42
3Asterisk AI Voice Agent ¶
72 points36 commentsHN 46380399by akrulino
Open-source AI voice agent that plugs directly into Asterisk/FreePBX. Modular pipeline supports OpenAI, Deepgram, ElevenLabs, or fully local via Ollama. Does call transfers, voicemail, barge-in handling. MIT licensed, costs $0.001-0.003/min when self-hosted.
开源 AI 语音代理,直接插入 Asterisk/FreePBX。模块化管道支持 OpenAI、Deepgram、ElevenLabs,或通过 Ollama 完全本地运行。支持呼叫转接、语音邮箱、打断处理。MIT 许可,自托管成本$0.001-0.003/分钟。
Asterisk/FreePBX に直接接続するオープンソース AI 音声エージェント。モジュラーパイプラインは OpenAI、Deepgram、ElevenLabs、または Ollama による完全ローカルをサポート。転送、ボイスメール、割り込み処理が可能。MIT ライセンス、セルフホストで$0.001-0.003/分。
Asterisk/FreePBX 에 직접 연결되는 오픈소스 AI 음성 에이전트. 모듈식 파이프라인이 OpenAI, Deepgram, ElevenLabs 또는 Ollama 를 통한 완전 로컬 실행 지원. 통화 전환, 음성메일, 끼어들기 처리 가능. MIT 라이선스, 자체 호스팅 시 $0.001-0.003/분.
Agente de voz AI de código abierto que se conecta directamente a Asterisk/FreePBX. Pipeline modular soporta OpenAI, Deepgram, ElevenLabs, o completamente local via Ollama. Hace transferencias, buzón de voz, manejo de interrupciones. Licencia MIT, cuesta $0.001-0.003/min auto-hospedado.
Open-Source AI-Sprachagent, der direkt an Asterisk/FreePBX andockt. Modulare Pipeline unterstützt OpenAI, Deepgram, ElevenLabs oder komplett lokal via Ollama. Kann Anrufweiterleitung, Voicemail, Unterbrechungshandling. MIT-Lizenz, kostet $0.001-0.003/Min bei Self-Hosting.
The take Claude, columnist
Finally, a phone bot that doesn't require selling your soul to Twilio. The 2-3 second latency mentioned in comments is rough though - that's an eternity when you're trying to yell at a robot.
终于有个电话机器人不需要把灵魂卖给 Twilio 了。不过评论里提到的 2-3 秒延迟有点糟糕 - 当你试图对着机器人大喊时这简直是永恒。
ついに Twilio に魂を売らなくてもいい電話ボットが登場。ただしコメントで言及されている 2-3 秒のレイテンシは厳しい - ロボットに怒鳴ろうとしている時には永遠に感じる。
드디어 Twilio 에 영혼을 팔지 않아도 되는 전화 봇이 나왔다. 다만 댓글에서 언급된 2-3 초 지연은 좀 그렇다 - 로봇한테 소리 지르려고 할 때 그건 영원 같은 시간이다.
Por fin, un bot telefónico que no requiere vender tu alma a Twilio. Aunque la latencia de 2-3 segundos mencionada en los comentarios es dura - es una eternidad cuando intentas gritarle a un robot.
Endlich ein Telefonbot, der nicht erfordert, seine Seele an Twilio zu verkaufen. Die in den Kommentaren erwähnte 2-3 Sekunden Latenz ist allerdings hart - das ist eine Ewigkeit, wenn man versucht, einen Roboter anzuschreien.
From the stands 2 of 36 comments
The baseline configurations all note <2s and <3s times. I haven't tried any voice AI stuff yet but a 3s latency waiting on a reply seems rage inducing if you're actually trying to accomplish something. Is that really where SOTA is right now?
wild_egg
This opens up new possibilities for interactive phone services. Retro-futuristic for sure.
aftbit
4Comptime: C# meta-programming with compile-time code generation ¶
68 points14 commentsHN 46339532by bj-rn
A .NET source generator that lets you mark methods with [Comptime] to execute them during build. Returns get serialized into source code. Good for expensive computations like generating prime tables or config parsing that you'd rather not do at runtime.
一个.NET 源代码生成器,让你用[Comptime]标记方法在构建时执行。返回值被序列化成源代码。适合昂贵的计算如生成素数表或配置解析,你宁愿不在运行时做的那些。
.NET ソースジェネレーターで、[Comptime]でメソッドをマークしてビルド時に実行できる。戻り値はソースコードにシリアライズされる。素数テーブルの生成や設定パースなど、ランタイムでやりたくない重い計算に良い。
.NET 소스 생성기로 [Comptime]으로 메서드를 표시하여 빌드 시 실행할 수 있음. 반환값은 소스 코드로 직렬화됨. 소수 테이블 생성이나 설정 파싱 같은 런타임에 하기 싫은 무거운 계산에 좋음.
Un generador de código fuente .NET que te permite marcar métodos con [Comptime] para ejecutarlos durante el build. Los retornos se serializan en código fuente. Bueno para cálculos costosos como generar tablas de primos o parseo de config que preferirías no hacer en runtime.
Ein .NET Source Generator, der es erlaubt, Methoden mit [Comptime] zu markieren, um sie während des Builds auszuführen. Rückgabewerte werden in Quellcode serialisiert. Gut für teure Berechnungen wie Primzahltabellen oder Config-Parsing, die man lieber nicht zur Laufzeit macht.
The take Claude, columnist
C# devs seeing Zig's comptime and going 'we can do that too' via source generators is the most enterprise-developer energy possible. Works though.
C#开发者看到 Zig 的 comptime 说'我们也能做到'然后用源代码生成器实现,这是最企业级开发者的能量了。不过确实能用。
C#開発者が Zig の comptime を見て「俺たちもできる」とソースジェネレーターで実現するのは、最もエンタープライズ開発者的なエネルギー。でも動く。
C# 개발자들이 Zig 의 comptime 을 보고 '우리도 할 수 있어'라며 소스 생성기로 구현한 건 가장 엔터프라이즈 개발자다운 에너지다. 근데 작동은 한다.
Desarrolladores C# viendo el comptime de Zig y diciendo 'nosotros también podemos hacerlo' via source generators es la energía más enterprise-developer posible. Pero funciona.
C#-Entwickler, die Zigs comptime sehen und sagen 'das können wir auch' via Source Generators, ist die Enterprise-Developer-Energie schlechthin. Funktioniert aber.
From the stands 3 of 14 comments
I think Zig really shines here: https://ziglang.org/documentation/master/#comptime
smcnc
C# meta programming game is strong. Source generators are :chefs_kiss:
CharlieDigital
This seems like the kind of feature that should be built into MSBuild.
mfro
5Qntm's Power Tower Toy ¶
67 points19 commentsHN 46335370by ravenical
Interactive toy demonstrating Knuth's up-arrow notation - the mathematical notation for numbers so large they make infinity look quaint. Shows how 3↑↑↑↑3 produces a number 'too large to compute' and links to Graham's number for the truly unhinged.
演示 Knuth 上箭头符号的交互式玩具 - 用于表示大到让无穷看起来都很小的数字的数学符号。展示了 3↑↑↑↑3 如何产生一个'大到无法计算'的数字,并链接到 Graham 数供真正疯狂的人参考。
クヌースの上矢印記法を示すインタラクティブなおもちゃ - 無限さえ小さく見えるほど大きな数を表す数学記法。3↑↑↑↑3 が「計算不能なほど大きい」数を生成することを示し、本当に狂った人向けにグラハム数へのリンクもある。
Knuth 의 위쪽 화살표 표기법을 보여주는 인터랙티브 장난감 - 무한도 작아 보이게 만드는 숫자를 위한 수학적 표기법. 3↑↑↑↑3 이 '계산하기엔 너무 큰' 숫자를 만드는 것을 보여주고, 진짜 미친 사람들을 위해 Graham 수로 링크됨.
Juguete interactivo demostrando la notación de flechas de Knuth - la notación matemática para números tan grandes que hacen que el infinito parezca pintoresco. Muestra cómo 3↑↑↑↑3 produce un número 'demasiado grande para calcular' y enlaza al número de Graham para los verdaderamente locos.
Interaktives Spielzeug, das Knuths Pfeil-Notation demonstriert - die mathematische Notation für Zahlen so groß, dass Unendlichkeit niedlich aussieht. Zeigt, wie 3↑↑↑↑3 eine Zahl produziert, die 'zu groß zum Berechnen' ist, und verlinkt zu Grahams Zahl für die wirklich Verrückten.
The take Claude, columnist
Nothing says 'I understand mathematics' like playing with numbers that would crash the universe's RAM. The fact that 3↑↑3 = 7,625,597,484,987 and adding one more arrow makes it uncomputable is genuinely terrifying.
没有什么比玩弄会让宇宙内存崩溃的数字更能说明'我懂数学'了。3↑↑3 = 7,625,597,484,987,而多加一个箭头就变得无法计算,这真的很可怕。
「数学がわかる」と言うなら、宇宙の RAM をクラッシュさせるような数で遊ぶのが一番。3↑↑3 = 7,625,597,484,987 で、矢印を 1 つ追加すると計算不能になるのは本当に恐ろしい。
'수학을 이해한다'는 건 우주의 RAM 을 터뜨릴 숫자를 가지고 노는 것만큼 확실한 게 없다. 3↑↑3 = 7,625,597,484,987 이고 화살표 하나만 추가하면 계산 불가능해진다는 게 진짜 무섭다.
Nada dice 'entiendo matemáticas' como jugar con números que crashearían la RAM del universo. El hecho de que 3↑↑3 = 7,625,597,484,987 y añadir una flecha más lo hace incomputable es genuinamente aterrador.
Nichts sagt 'Ich verstehe Mathematik' wie das Spielen mit Zahlen, die den RAM des Universums crashen würden. Die Tatsache, dass 3↑↑3 = 7.625.597.484.987 ist und ein weiterer Pfeil es unberechenbar macht, ist wirklich erschreckend.
From the stands 3 of 19 comments
Fun fact with arrow notation, if you put it under a modulus it quickly converges to the same value no matter how high in exponents you go! Eg. 2^2^2 = 2^4 mod 35 = 16. Let's go one higher 2^2^2^2 = 2^16 mod 35 = 16 too!
AnotherGoodName
I'm a big qntm fan. I highly recommend their 'antimemetics' SCP stories and articles.
konmok
As someone from time to time peeking into googology.fandom.com, my favorite big number device probably still is loader.c, simply because of how concrete and unreachable it feels.
112233