duangsuse::Echo
956 subscribers
4.9K photos
154 videos
588 files
7.26K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): a19a0b
Download Telegram
duangsuse::Echo
硬件和机器API(比如嵌入式/信号处理)是什么东西呢?
🤔 如果只是/dev/fb画矩形那样的「编译型IDE」,趁早返校重学吧
#math #js
🤓
许多人觉得浏览器垃圾,其实那是因为「卖身」的开发团队菜! Bellard.org 可以用浏览器跑Linux桌面,或用各种语言的C胶水来实现 JS Mods生态

到处的会声会影、格式工厂、下载器、CapCut,都依赖这1个人的FFMpeg和下游重写。如果JS和C真的不够用,Bellard会关于二者开发吗?

我说句无证据的话,就是2026 Vue和React(GH stars #1)和王垠等Lisper比也缺乏认知。React会在页面不刷新时不断"Tick",
有正常人觉得这是有道理的吗?

你的电脑没有5G短信,页面也没有动,也没有mousemove或倒计时,但是js引擎热到开启JIT了


事实上就是的:你的页面毛都没动,一个C Rect也没dirty,后台却在死循环,F12上挂一大堆listener,然后他们还送你一个“Vue DevTools”,

这就是#1前端的水平。
最多GitHub.star的团队,认为不错的output
哦,Vapor Mode,什么 Svelte Compiler, SSE, Solid, ESNext Signal,JSer又懂了。Prolog和(defmacro)一开始就能把不变变量(H5 template)和信号区分开,Tkinter早就是SolidJS那样了。

Prolog能动态组装ES6里的const [A,B]=[,],也能匹配渲染后的XML,不需要靠flight json协议和【水合】。或许它们不实际,但前端圈比 Qt,安卓,WPF XML 相比,高生产力的“新语法”

在「真正的程序员」眼里也什么都不是。
Alan Kay 的OOP并发和Church的FP可组合界面一开始就没犯错。


不要重新学习fucking wheel了好不好,人生苦短,我懒得再陪他们玩了。

30 年前的“Delphi XML设计器”和1970s OOP之父的解释型IDE都没有【双向绑定写两遍问题】 
Tk(1991) 的范式,集大成的Web却没看到,我觉得现在知道了,反而是应该检讨,而不是说“Hypermedia花里胡哨的海报又赢了”。那只是设计师的胜利 🍎

30多年,"年薪P5" 的工业界就从来没想过一个age=Var(18)的getset方向不应该写两遍的,form之外的代码重复问题;就像今天他们 useMemo() 一样。丑。
😓
duangsuse::Echo
#ai开源 对话串 https://gemini.google.com/share/5919ec90eb4e 第三条注释掉 //regl.viewport(0, 0, canvas.width, canvas.height); 即MVP 灵感: https://gemini.google.com/share/3445b24910b2
#js #cg 横向对比一下, https://t.me/hyi0618/12316 这个特效还是很不错的。有完全一样的,但没有流光溢彩(高光)和面板可调的

https://www.shadertoy.com/view/3sB3WW
https://www.shadertoy.com/view/Nslfzs (displacement)

我又找到了一个前景物提取(&无波纹)的灵感,总之还是很不错的,但AI也有排top30%能力 🤓👆

这么漂亮的CG,应用层才40行
https://playground.lexical.dev/ 这个离线AI和CtrlZ编辑栈可视化挺好的

还有ToC和Shiki.js高亮支持 #js
duangsuse::Echo
#post #bin #os lib.so是库对象?是C模块? 谈谈纯函数、全局表容器、Worker线程模型 随着React的火热,大家应该都听说过「纯」函数式编程(#FP) 这个规范了。纯意味着不更改变量和外部状态(例如stdIO),但它和 .c 的ABI(.o 和最终输出的 .so) 有啥关系呢?😅 在点出关联之前,我要发表一段很典的评论: 90%的PFer不懂FP。 考虑一个 node &>/dev/null any.js 的环境,简单的 "log IO" 真的是“不纯的代码”吗? 请注意,stdout没法回环到原进程。…
#post #ce #haskell(IO) #os #js CPS是什么(异步和函数式编程 都可以看)
#ai锐评
🌶 https://chat.librechat.ai/share/hjL775AHhAji7HM8K0lFt
🧁 https://chat.librechat.ai/share/SmoUvMiuxY_hfmIcUEK95

故意生成的 emoji 🤗 AI味,看看逆不逆天?原文是手写的


CPS 不是 Clicks Per Second, 而是 Continuation-pass style,后者可用于优化前者。 😉

CPS的理由:CPS产生【回调链表】作为线程栈 📜,可以让单线应用像操作系统那样工作 ⚙️,但不能处理音画同步和多线下载(绿块块下载/暂停/断点续传等),这依然需要 Coroutine 调度器(事件循环/libuv)来补位。之后就和ChromeOS一样完整可用,脱离 C-like 世界的掌控了!🚀

CPS:把所有 return x 换成函数语法如 onRet(x),因为只是调用,就可以玩两两组合了 🧩,比如 if(x=onCatch(x)) onRet(x) or exit(1) 或 addEventListener('click', ()=>onRet("两个按钮你点了确认"), {once})。没错的!✅ 你甚至能在 throw 错误的行号原位恢复,OR 手动实现 yield✨/callcc-setjmp/Algebraic Effects 依赖注入模式。

CPS变换:如果 return x 都被换掉的 def 只是一个计算图(只包含赋值和 ret 变量),可以直接变成 switch(op++) case 0 case 1.. 的行号调试(每个 case 将不以 break; 而以 return; 结尾,c=a+awit b 变为 _1=wait;c=a+_1) 🔢
否则,需要处理 for if 以及相关的流控,如 throw 和提前 return、爆栈的 DFS 等等,也就是扁平化为 goto(op=xx),f() 一次就走一句(几行的微任务)。 🚶‍♂️

TCO:在递归时 f=(n, r)=>(n==0)? r : f(n-1,r+1) 是个特例,可以改写为 f(n,r)=return continue(n-1,r+1) or (n==0: r) ,这样的多分支状态机 🤖,所以叫伪递归(TCO)。另有一种将 f(n)=n0? 0 : f(n-1)+1 转为的【自动累加器化】,还有使用TCO(甚至模板解释器)优化 switch(opcode[i]){} VM的标准写法 ➡️ https://t.me/dsuse/21568

Promise与Continuation:(async()=>1)().then(one=> {}) 在一个CPS对象上写个 then 回调。🤝 因为每个 {} 块都有要“返回”到的行号,和此行号周围的【🎁已知变量元组/Upvalue/闭包】,这就称之为 then 值,粗略的认为它是F12面板你按F8暂停时 ➡️ 所指示的一行 【点开可看的函数名】。

将 ()=> 给 async 化变为对象后,它的 return 值就放在了 u._ret 和 rr=u.call(_yield的返回值=null)。rr 值用于优化 await 1 这样不挂起到 libuv 或 syscall 的缓存 ⚡️。 u._ret 即使在完成后调用 .then 也可读取哦!
(这是一个GC引用问题,未完成而被await时,proc在sleep时,内存占用不会消失。c10k问题) 👀
(c10k和y2k一样是个傻逼问题 accept()明明依赖io_token,非要依赖pid,产生4K栈和CPU无效轮换的问题)

通过实现 onYield(i also{i+=1}) 与对应的 forEach,正如 onRet 与另一 Worker 上对应的 then,我们可以定义一个走1024次(4KB)才返回1次的 func* 📜,而不需要和 java 那样弄 iterator(){} 和 BufferedX(),这就是 Kotlin 最近的方向(但它们对响应式 flow 的理解不如 Svelte 🤷)。

有人 alias then值='酷酷的lambda' 或 'pthread线程',其实它更像 fn.bind(框架已知参数).bind(你的已知).call(运行时参数) 🤔。

这篇文章有点《图文不符》的意思了,其实还是有内容的,只不过AI味特别浓。
#js #code
Kitty 协议的NVim仿VSCode网页预览

Electron+Custom Toolbar

通过BrowserWindow.webContents.onpaint, NativeImage(SHM), sendInputEvent 实现的嵌入

还代理了 UA, SIGWINCH, Ctrl+W, getSelection xywh, kitty_colorsToTailwind(Toolbar支持终端配色)


TermEvent>KeyEvent, ShmGraphicBuffer 都是 #rust ,甚至还做了 bun:test

https://github.com/chase/awrit/blob/electron/src/paint.ts#L34-L57
duangsuse::Echo
我很好奇Scala现在的普及程度。它并没有像Clojure那样消亡
#Haskell 们长期连fmap就是现代H5里的derive()变量这点都没还原好。

“这玩意儿就像 Excel 里的公式往下拉”


直接把Promise弄成不人不鬼的 IO Monad,然后集合类不可变到处Lens(如同Rust的Rc RefCell套壳),结果还不如Svelte。都是回调链表,函数式的功能性和性能就拉胯一节, 不活该被淘汰么

安全${内插}和 o?.nulToNul 这些都属于是极其容易但价值高到夸张的, 所谓的 #> #| bash语法(自定义DSL)与之相比算不了什么。

它很酷,能在特定场景下让代码看起来更“漂亮”或更“贴近领域语言”。 但是让我来选,我会毫不犹豫把${}和parserc作为一等公民,而operator重载和infix作为次要的。


究竟是天真到什么地步,会觉得mixfix生态位不尴尬? 可以bash或shadertoy里测试,为什么要用Scala写bash?能自动补齐? 需要检查pipe的类型吗?

Li Haoyi 的成功,和他所有库(os-lib, requests-scala 等)的流行,恰恰是因为他回归了Pythonic,利用了JVM上的生态位(kt太卡 Groovy太拉),但是native/js的scala支持咋样我就不说了。 我只能说, tstl (js2lua) 比较成功,这取决于SDK的阻力和output是否够原生。交叉到wasm上都不一定能有好果子吃

🤔 #Lua 其实是个非常奇怪的语言,它的迭代类似于range和JS整数键名的杂种,从1开始数,len和not运算也长的诡异,但只凭效仿SQLite就搞得许多lib(尤其是NVim/Wayland世界)不得不兼容它,虽然效果像H5兼容WASM那样是良善的

#js #FP #ai探讨
#js #web React direct GPU

https://github.com/remorses/gpuix

GPUI is an immediate-mode UI framework — it rebuilds the entire element tree every frame. Instead of fighting this, GPUIX embraces it:
React reconciler detects a state change and queues host mutations (createElement, setStyle, appendChild, etc.)
applyBatch() validates and applies the complete commit to the Rust RetainedTree

值得注意的是,实现了一组基本的CSS https://github.com/remorses/gpuix#supported-styles

但文档一眼AI,甚至有点管理不住模块化的感觉(毕竟GPUI套娃),感觉最近看AI文档都有点ptsd了

你说不好吧,也不行,因为许多人写不到这么细,但是还是感觉很草蛋
duangsuse::Echo
🤔 说句实话——现代前端云原生的选择让我非常失望。像Signal这样依赖庞大(自带看图/定时器/各种picker)的App可以用独立容器,怎么随便一个打开频率1周没两次的工具,都这样敏捷开发了 浏览器确实没法“安全”的执行shell或按键精灵功能,但和Electron等效的方法,可能只是 POST /?sh=bash -d 'ur cmd' 那样包一层而已。对70%的低频应用,这样独立服务是足够的,甚至可以免安装像curl|bash那样运行 为随便一个插件/UserScript体量的App打包,实在有…
#js 拜托AI给了我一个授权1次的版本
https://codepen.io/duangsuz/full/EaWyjxz

自己托管就能在线访问本地命令,开发机就行,等同于 curl|bash

CORS: null 表示将网页作为本地App鉴权,有安全问题
CORS: * 有安全问题。
Access-Control-Allow-Private-Network + origin + hash 可以

AI的意思是从命令行打开 .htm#token 也行,而且和Jupyter一样安全,给CLI送个WebUI (虽然原理上安全度没差..)
chrome --app=http://127.0.0.1:3999#token=XYZ 这个比PWA穿透力好
❤1
duangsuse::Echo
😅😅😅 这是一个右下角客服评论板的ws://后端 回看2022的 #py cli2sock 才发现这写的啥啊,这和gpt5也半斤八两了,不如Fable好读 设计为支持微信回复(wxSay=print, StreamReader->say.onWx), wxSay分配一个短 ID i “带超时”过期释放实现回复 #ai锐评 确实还不如AI了,内插了 @ data 装饰器和AP.Namespace这样的东西,不支持IPy支持还搞了TimeLim队列,它是过度工程化,不是脚本化
#code https://stackblitz.com/edit/vitejs-vite-fenosa6i?file=server.coffee
npm i -D coffeescript socket.io express
正好解决了ws的可移植性毛病

WebContainers和 webvm.io 一样【Always free for Open Source】, npm 地狱究竟养活了多少人啊。幸好普通CDN可以用 esm.run ,部署可以上Workers。


一个几行代码的 is-odd 或 left-pad 背后,是对fetch+ws的基础API都不理解么? 想起了CoreJS的悲剧闹剧
这该死的 #js 世界..

这种极端的微包(Micro-package)主义简直是在扯淡,JQ 因为没有Signal模型被【淘汰】,lodash被认为笨重,但是现在AI来了,这些npm地狱正好一起死吧 👎
duangsuse::Echo
😅😅😅 这是一个右下角客服评论板的ws://后端 回看2022的 #py cli2sock 才发现这写的啥啊,这和gpt5也半斤八两了,不如Fable好读 设计为支持微信回复(wxSay=print, StreamReader->say.onWx), wxSay分配一个短 ID i “带超时”过期释放实现回复 #ai锐评 确实还不如AI了,内插了 @ data 装饰器和AP.Namespace这样的东西,不支持IPy支持还搞了TimeLim队列,它是过度工程化,不是脚本化
#statement #js AI的代码质量也可以很高

来回迭代了3趟,发现这个demo,AI给出的单文件,【逻辑链】是越来越优秀了,感觉我都不可能写的这样好 😨
(当然spell也是很重要的。我们常说 prompt,但只是见多识广,提几个专有名词,立刻【选择大于努力】)
(😁 当然,哪怕bash和Nim在易读性赛道可能都不能与Coffee相比。毕竟它是带do{}块和H5生态的Py,有Lisp的魔法但没有Lisp的咏唱;而且它真的是比TS便宜把戏,许多【自制语言】就是不懂这个)
还是AI这个的代码质量高,不用省行数,语境数据流完整,而且就像脚本一样易于理解;但也要配合单窗口全栈+Share的codepen才够用。 真是越来越无法容忍ES6的const噪音了。

这写出来就有一种UNIX味,事件入口清晰到【排版上对的齐】,没有多余抽象(FP够用)。 你照着读一遍就像它在自己走

如果用kt的块和 ?: run{} 替代unless就完美了。 如果换成pyAIO,就会成垃圾,而且不能在pen上跑

在2026能看到肉眼可见的code flow,已经是一种奢望了


对于重视质量的人而言,这种“意图流”就像不可多得的抹茶一样 🍵,虽然看起来生涩,其实大有好处,许多人调用AI都写不出,因为他们被21世纪的BASIC养刁了,正如Dijkstra所言。

汝之“意图流”,彼之“一图流”,大部分人搞不明白【简陋的代码】面对新框架新潮流时的好处,就像拿牛马的14小时当营收KPI的网红勇哥 😅。 满招损,谦受益。

从重构,到现在,才不到2hrs; 直接pyjs在线repl都给了。如果一个客服窗这么好做,相信创新融合都会非常容易
duangsuse::Echo
对于重视质量的人而言,这种“意图流”就像不可多得的抹茶一样 🍵,
#js 现在看到这俩段能实现一个“正好能用”的 netcat UIUX,还是很惊奇的

虽然使用了新范式(.on, vjs-in-htm),但怎么看这理解难度,都是普通bash脚本甚至 “无窗口按键精灵”

这样设计的组件,不拐弯的思路,堆砌起来乘以10就能成为我们每天用的成熟App了。 非常惊奇!

简直就像「改代码和改配置一样容易」。不对,100% 如此,简直像没有嵌套只有几处“入口行号”一样优雅

如果你回去看下pyAIO版的,就会发现脑子坏掉了 (虽然2022版我同样做了设计)

一些「大型项目」的doc,甚至都比这全部的代码实现要晦涩难懂、缺乏体验感。 如果这就是AI写的,我很好奇那些质疑“LLM理解能力”的人有什么高见,他们写界面不带截图,做后端不给api.yml。

Practically, maplibre.org 也有个非常声明式的配置,被封装为一大堆 ui.add{Type}(json) 的垃圾,相比之下,GeoJSON 使得几乎所有网页地图都像svg查看器那样简单、可扩展。 你几乎会把它视为【不可执行的】——因为【图层生成】本来如此。但这不影响:hov与焦点动画,我不敢设想如果不是,会有多卡,或者多难写。

要是所有我见过的代码,都能像后者一样正常,编程就不再被称为「编码」了吧。

原来没有样板的代码,是不会更深奥的。
❤️
duangsuse::Echo
这个荷叶图层有问题,我懒得找作者教PR了
#js 看了下,虽然不优雅但也不屎

看CSS明显是vibe的

但是这种程度也不会让人有patch的动力。 作者也没有开源
duangsuse::Echo
(1+1=2),就像一个【扫码器和打印机】,人手两次塞进“1”的二维码,嗡一声,弹出一片 “2” 的码。
#js #design

[{"role": "user", "content": "你好"}]


这个设计对多态的理解还挺欠缺的,可以说,害人不浅

[{"user":"你好"} ]
{ user: [{ text: "这是什么" }, { image: "..." }] }
{ assistant: [{ text: "..." }, { tool_call: {...} }] }
{ tool: { id: "...", result: "..." } }


所以我就说是误解啊,{"user":"你好"}又不只是str值可用,tool和图文并排,都可以做

这种类似于 wtf_checkbox=1 的数据建模…… 但凡value长的像一个下拉菜单,都要考虑key是否有必要存在吧

msgs.filter(m => m.role === 'user') 不如 msgs.filter(m => m.user?.let(u=>true) ) 可定制


{ type: "click", x, y } 这种可以有 name、timestamp、id 的确实该判定 ."type" ,其他时候,还是直觉更重要
这也是“平铺统一记录”和“公共信封 + 变体载荷”的权衡: { id, timestamp, event: { click: { x, y } } }

serde 里那场老争论:外部标签 vs 内部标签,还有如何利用json的动态类型? Anthropic 的格式其实也没逃掉,只是把多态下放到了 content[].type 里,上层还是 role 的谁在说话,以及内容块是什么。

🙉 或许有人认为,LLM event api 的核心又不是【数据类型】,而更像编排和Skill这些特性UIUX

但其实,连最基础的语言(好比 .py, .md 的层面)都没有审美,上层应用更是会让人费解,心累。

{ append: { text: "你好" } }
{ replace: { range: [0, 2], text: "您好" } }
{ cancel: { id: "task-1" } }
{ cancelled: { id: "g1" } }

vs 正统的垃圾
{
method: "update",
params: {
mode: "append",
target_type: "message",
content_type: "text",
value: "你好"
}
}


把我当成【方法参数】都不知道的傻逼。 真新手,也看不懂method何意味吧?

机器可以算而不必理解,人应该理解而不必实现。

接口究竟只是让机器接上,还是也要让人看懂、预测,并掌握它? 人上手不了的功能,放在那干嘛。

直到今天,在json动态类型的理解上,人们还不如bash的 flag vs option 清醒。 数据,键名,在我看来就是行为的名词化,但主流JSer只是为了RPC而序列化。

pyjs已经非常优秀了,可是dev还是设计不好状态和指令的接口。换成 java Go 只会更跌一个档次。 #PLT

材料优秀,并不会自动产生好的协议语言。不要为了让生成器少写几行代码,让每个使用者多做一遍语义编译。 😅

LLM们有再大的【隐藏层智能】,面对连发送队列、草稿防丢都不支持的【智能前端】,也会让人头疼。

优雅的心智模型(数据流)是一切的基础,

目前各家ChatUI和API都较难互通,一个文件访问也能锁死web版和Agent的护城河,也真是让人无语……

现在都在讲,“少抽卡” ,而基石是【选区】的确立,ChatUI要知道哪错了,具体改几项


但是,e2e的退化,比如从单页到可选择的对话环境,重新引入元素、位置、事件、样式表.. ,就不再是token一把梭了,对前端是很大的考验。 至于怎么分解【选区】,怎么为项目适配,更需要经验和洞察力。

所以别总想着AIGC质量对标天花板,学习成本只要有手就行
duangsuse::Echo
但凡value长的像一个下拉菜单,都要考虑key是否有必要存在吧
简单来说,类似 {role: "user"} vs {user:""} 不是省几个字,而是从面向(=="str")的碎片,变成【面向nullish的消息分派】 #js

这是【如何面向事件】【如何模块化】【分派请求】的三位一体的进化,所以不止是json要变


- 彻底消灭非法状态,{ role: "user", tool_calls: [...] } 的异常现在是【类型层面】的错误
- 避免无意义字段值,wtf_checkbox=1 是最典型的讽刺,堪比数据世界的GOTO
- 可是,OpenAPI 和DB 工程师对多态没有最基本的理解

Message = Role × Text × Images × ToolCalls × ToolCallId × FinishReason
vs
Message = User(Content) + Assistant(Content) + Tool(Result)


#statement 再谈谈【全栈文档化】

OpenAPI / Swagger 诞生于 RESTful 资源映射时代,它的内核是对 C-like SQL Struct 与 Java POJO 的映射

它们无法理解真正的REST没有 /api/v1/* 这回事,而是UI和API基于Content-Type,共用一套框架,API自发现,并用OPTIONS鉴权,就像User有card和全屏info两个UI元素一样。 REST已经成为和OOP一样在误解中烂大街的神明了,别人以为 POST /user/:id 就叫RESTful

这里边有Smalltalk和HATEOAS自己的,巨大弊病,但工业界把json-http套皮的行为也是非常抽象。 没有赢家。

因为REST从设计开始,就从不为App思考。它的【url模板自包含】没有Ruby那样的元编程client,还不如OpenAPI,它的【HATEOAS鉴权】会在 res._links 里加一堆垃圾,工程师绝不会容忍这种混淆UI与API的返回值;而【多版本兼容】对上线的应用,很可能“鼓励用户不升级”

比如,列表接口返回 100 条消息,每一条都要塞一个 _links: { self, edit, delete } ,与tgbot的Menu相比,都是极其的脑残,真不明白他们到底在干嘛。Android虽然抽象,至少是把右键绑在list而非item上!

总之,用curl理解非html接口,是扯淡,但“专家”也没好到哪去。MTProto还是断档领先的,即便在Web版也响应最快。

Telegram 在最烂的 2G 弱网、电梯弱信号下,恢复连接也能在一秒内瞬间追平状态,而基于 REST/JSON 的传统应用还在对着pager的菊花转圈。

MTProto 就是bashrc的思维:“我的本地状态机处在第 pts 步,请告诉我从那之后发生了什么”。.getDifference(pts=12040, date=17100000) 直接吐出一个事件包,里面是一组紧凑的原子变体操作。


REST犯了一个很可怕的忌讳—— 把【产品经理容易读】当成了优化目标,而忽略了DX与地心引力。然而真正重要的——分页器保留滚动、用户内搜索、列表内id预取、历史记录,这些C/S协同的规范,它却视若无物

他们把RPC中的【值json vs 引用id】和CRUD变成了“基本操作”,至于列表菜单、SSO鉴权、1+N 请求的对象池地狱, 这些问题依旧是各有各的写法。避重就轻,所谓的框架只是帮你兼容curl+ORM,要么就是Next那种重量级蠢蛋

如果这些【简单】的设计,人都做不好。那么,Codex们的时代,人又能做什么呢?

Markdown 的胜利,不是因为聪明,而是恰到好处。希望未来不是屎山到处翻滚的时代
duangsuse::Echo
Three.js r170 做低多边形网格、光照和飞行
#xref #js 地形生成

最经典的就是 slowroads.io 了,非AI
https://erichlof.github.io/THREE.js-PathTracing-Renderer/Terrain_Rendering.html 理论派。基本操作:拿能玩的质量测试引擎算法
https://mattrei.github.io/aframe-tangram-terrain-component/examples/lod/

https://generate-infinite.vercel.app/#debug 这个是最像的! Bruno Simon 的idea,可以做成收集金币什么的
https://icecreamyou.github.io/THREE.Terrain 可查看高程图, 11年前,910star
https://michael2-3b.github.io/Procedural-Perlin-Terrain/ 同样,但是gen高程图


https://grass-world-meadow.netlify.app/ 经典AI,效果一大堆UI为0,没有目标
https://bsoulier.github.io/glyphwalk/ 这个好不少,差不多是 loficities.com/
https://takahirox.github.io/projects.html WebGL MC 自带联机,的作者,

这些就AI味爆了
https://red-reddington.github.io/web-demos/
https://red-reddington.github.io/web-demos/alive/ 骑🐖的,还有骑摩托打枪的,browser-local-tts-piper (9MB)..
https://j3012b.github.io/Procedural-World/ AI 销售 Agent 平台 trysetter 的联合创始人、SaaS 开发者,曾获得过苹果 WWDC 奖学金..
duangsuse
他们宁愿在端到端上,投入无数奇技淫巧的精力,也不愿意像CBOR(预训练字典)或flatbuf一样,提供一套新的、协议化的,是【对人类有意义】的选择
#perf #js #PLT
真的是在一个垃圾赛道上,看过五六篇这样的文章了。 就算提速5倍又怎么样呢? 这只是1个函数

A\说的对:都是在讨论一个大多数人不需要操心的层面。区别只是一个想换格式,一个想换解析器,性能和吞吐量被gzip和lazy读取兜着。

但如果换Protocol,你会有个更全局的视角,触及更多可决策性,而换parser,没有

JSON 解析根本不是瓶颈——数据库、网络 RTT、业务逻辑才是。LLM 场景里 JSON 的成本才第一次变成了 token 数,而不是 CPU。


json本身,不具备软件逻辑和功能,它不【理解】事情,它把本地存储和tcp文件混为一谈, 在这样的赛道上内卷最后一个cycle,而这正是 KDA REA 这些Agent擅长的loop

在乎高性能的人,怎么不去想想 JSON.loadump 是怎么取代曾经C结构的世界,成为了万能协议的,不想想【旧时代遗毒】输给了谁?

为什么,0开销的native输给了瓶颈的 JSON? 你们输在哪,还是说不觉得【编译型哲学】应该反思,不觉得编程和生活一样,值得在执行前多多推敲、选择?

fastsimdjson.map_many(..., threads=64) 是库内部高度优化的并行路径。msgspec 这边是用 ThreadPoolExecutor 切分数据再调解码,Python 层开销更大。橙色那条是 msgspec 用 dataclass 去解析 JSON,不是 MessagePack(二进制)。

这些垃圾赛道上,就像 OOP 构造器赋值,那样的东西,在编程界都能写这么久。 我以为constructor() 会是 {}[] 默认值这样的“构造器”,load/dump封送构造,或表单校验器?

但事实证明,只是一堆 arg -> obj.key 闭包装箱而已。几乎整个世界只有Kotlin或Coffee把OOP当作OOP来写,Go修null仍然没有修好。这就是Java的后继了,一开始连泛型都搞不懂。

这样丑恶的编程,死几百回也不值得珍惜的吧。至少没有MIT Scratch 那样聪明。

编程的基石就是类似这样,在莫名其妙、毫无【常识】的设计上堆起来的沙垒,它们被当成IR用也不值得稀奇。 那些OOP对问题的理解,还不如各种框架深入。许多人掌握编程语言,多半是夜郎自大

2026年总是有人把GitHub当神仙,甚至认为【微软发明了它】,却忽视了,真正给它哲学的是Ruby和DHH。

我见过 95% 的编程技巧,都是用两句话说得清要领的,甚至有些生活化,就像王垠的博客一样(略微复杂+20%)。

代码本就是快乐的,充满获得感,不是一种【痛苦的刚需】或负资产

但能做到的技术人,很少。 总是在说理解力、学习能力怎么样, 没人批评老师,可探索性和解释力怎么还不如AI强。 🙉


编程语言,应该是让人像在MC里一样,【飞天穿墙,做图晒档】的创作素材,语言是创作欲,而非纯粹的工具。 可是我看到的,纯度太低了。
duangsuse::Echo
🤔 半成品。 而且差一个Landing page,我也打算用Omarchy风格
This media is not supported in your browser
VIEW IN TELEGRAM
#js #py 现在知道产品页怎么做了
https://codepen.io/editor/duangsuz/pen/01a164e3-fb16-7a1a-b459-dce493c8e63a?orientation=left&panel=false&show=preview

zig只做事件源,90%技术栈切换为mpy+xterm.js ,让CC自己给CC做一个傻逼dummy Chat ,然后直接丝滑小连招 npx cld-pi

这才是真正的云原生啊 😋 真棒! 肯定能奏效

#vibe sonnet 砍5刀就帮我PoC了更好的。 JOJO: 只要往前走,道路就会向前沿伸!