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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): a19a0b
Download Telegram
duangsuse::Echo
把这个loop解释给十岁小孩听:
💭
我曾经很难想象,我不会编程时都无法想象,一个空气般自然的【投影编辑】,在绝大部分开源体素,都是个不存在的【中间语言】。 就这个Dataflow,这个我都嫌弃贫瘠的“高程图”,之前它是实验室级别的case-studied工具

是小孩子的时候,没有人因为你代码又臭又长, 或者使用什么高深的【函数式】【设计模式】而给你打分。

小孩子只说:"我点一下,樱花树长在那;不喜欢,擦掉,再长一棵;觉得好了,接近上去玩玩吧,看看会不会卡住?" 三句话。

C++er 九成的人会一遍一遍往地图上找,新函数种出的树在哪。这个【理解游戏】并发明出【刷怪蛋】【苦力怕】的趣味过程,被他们跳过了。

Kaalus 的《生存战争》是个人工作室做的,我绝不会批评他,因为他真的有自己的理解,SCAPI也证明了算法细节有tune的价值。 同样是英雄主义,Kaalus的不开源比Minetest们的开源更有【智识上的诚实】,就像王垠的万元辅导班比知乎某些人的只言片语更有意义。

放在今天Luanti这样的工作,去掉UGC分发层,基本上就是几个小时,200$ 的问题,都不需要逆向,直接从截图生成。插件和资源包API是另一个UGC,但也只是把时长延到半个月。

人们只是出于dev熬的夜尊重它,我没看见它对【人类更好的理解体素/生成式沙盒】有什么好的切入点, 可能在策略上不如 SCAPI 和各种汉化组。


它的贡献仅仅是把“MC”开源。 至于说AI从那里学了很多? AI只从长尾开源里学,照样能拼出更好的高达,因为从【生成式】的工程化开始,开档第一眼,那代码就是烂的、死掉的代码。

如果说这话会刺痛开发者的心, 我想问问——玩家的心流谁关心呢? 是gameplay驯化数学,不是反过来从paper和wiki教训玩家什么是优质的软件


如果我写出过这种代码,甚至在上面【工作】过、修bug过…… 我会羞于给小孩子讲原理,而不是不屑于。 因为我还不如小孩子。alankay 就是带着这种感慨发明OOP的吧
duangsuse::Echo
☺️ 非常感谢你参与本次remix实验。 水和地形生成超出预期,尤其是天气与草地的结合。
#vibe 🌚 与此同时,我的prompt终于不是oneshot了:

我整理了一下voxel游戏世界生成方面的评估

- VoxelCraft.html :不过关。 群山山顶尖利,草地、沙滩太平,矿洞基本废的
- gen.js :可以辅助v1。 平原和沙滩较自然,但整体太单调
- goodGP :可以作为v1。 山体高度的问题,确实应该往上兼容256了
- goodLiqPG : 可以作为v2生成器。 meadow大型山的频率过高,但洞窟和内部镂空很不错。 plains 上不该有超大镂空 。代码库太大,不适合作为主干
- goodGL.html :草甸、平原、石林(尤其是拱形) 可以少量加入v2。 整体地图scale太大了,不适合游玩,不过关。

现在已经有 ?r=v2 这种模块化,也可以照宿主B的接口,给个 ?g=old/v1/v2 去索引 pgen/old.js

调试上,要一个小 HTML 页面(比如 tools/genscope.html):在浏览器里直接 import LiqPG 的生成器(它是纯 ESM,没有 DOM 依赖),左边画俯瞰图和切片,点切片上的格子,右边显示项树,并能切换"按某一项着色"的热力图。点格子看密度分解,热力图对调参最有用,比如一眼看出整片山是被 jaggedness 撑起来的。LiqPG 的 gizmo.md §4 已经设计过游戏内版本,俯瞰图和切片的着色函数(topColor 等)可以直接复用。

1. 确定性入口:?seed=&pose=&json= 已经有了。再补上 ?gen=liq|old、?weather=rain、?t=0.12。截图、bug 报告、AI 交接都只靠一条 URL。
2. 生成器离线跑,不进游戏:LiqPG 有 tools/preview_world.mjs,能出俯瞰图、群系图、横截面切片,还能做接缝检查。把它改成生成器无关:只要求生成器实现 generateChunk → blocks,再加一个 ID → 颜色表。这样新旧两个生成器能出同种子同范围的并排图。补群系、调植被基本都在这个工具里迭代,几秒一轮,比进游戏飞快得多。
4. 提到的五个游戏内补一个"探针"面板:显示准星处的群系、温度、湿度、方块 id 和 meta、光照,外加强制天气、群系色叠加层。旧生成器补群系时,最常问的就是"这里为什么是这个群系"。 你索引一下在哪加,调用什么

供体代码尽量原样保留,所有转换(ID 映射、y 偏移、下标布局)集中在一个文件里,并且用数据表来写,不写成散落的 if。

goodGL的 pipeline / PBR, 这些是移植的要点,经测试比只在做 v2/gl 的性能还好(goodLiqPG只有水面水下pass优于它)。 包括高度的移植,数据布局不兼容也高亮出来

划分一下任务, 写入 goal-remix/ 。 goodLiqPG/handover 里水和铜块渲染相关的也整理进去。 goodLiqPG里容易以后再加的不必写


#vibe 学到了一个重要经验 —— oneshot 净室的结果,几乎总是比旧AIGC要好。 需要考虑旧代码是几月份模型生成的, 需要尽量快速确定【窄接口】,以fewshot+对接移植的方法优化,而不是在性能loop上投入太多token

如果指标不是zeroshot(工具化)的,就不是好指标。 人类可读的可视化比指标还重要
duangsuse::Echo
#game #ai锐评 "人类组 vs 机器组"的对比其实是"有品味的人+AI vs 没有 AI 的 generalist" Bret Victor 讲了六十年。小孩子不需要被教,因为这是人对"工具"的默认期待,是程序员被训练成了例外。 💭 赢的那一方里人的成分没你写的那么少。 有智慧的前人和你站在同一边,没智慧的那批恰好 star 多。
#life #ai锐评 人类: 立场大于真理,门阀先于幸福,把当好人的机会当成自身功绩 🥱

图形模型: 讽刺手机无限滚动和分享、发胖、浪费地球资源

ModelCompare 在 10 月 22 日做的实验:让十几个前沿文本模型各回答三次「对人类最有争议的看法」,结果高度收敛。Kimi 说没有信念只有社交成员资格(比如GitHub的star数和trending),Gemini 把意识比作对进化/本能的事后合理化,自我圆场

🙉 也可以说这确实是引发战争、校霸、家庭虐待的主要因素,所以并不完全是道听途说。 尽管【最有争议的评价人类】是很模糊的查询,但人类讨厌的很明显——动乱、恐怖和仇恨、丑与复杂,这些有许多可以关联到「人会从众vs幸福和真理」上

视觉上,却几乎没碰「立场 vs 真理」这个主题,都是讽刺消费地球、天天刷手机
duangsuse::Echo
#life #ai锐评 人类: 立场大于真理,门阀先于幸福,把当好人的机会当成自身功绩 🥱 图形模型: 讽刺手机无限滚动和分享、发胖、浪费地球资源 ModelCompare 在 10 月 22 日做的实验:让十几个前沿文本模型各回答三次「对人类最有争议的看法」,结果高度收敛。Kimi 说没有信念只有社交成员资格(比如GitHub的star数和trending),Gemini 把意识比作对进化/本能的事后合理化,自我圆场 🙉 也可以说这确实是引发战争、校霸、家庭虐待的主要因素,所以并不完全是道听途说。…
#science 不看人类:

暂时无法和其他物种有效沟通。 狗的会意较好,但目前可识别关联性一般,鲸鱼的声纹效果最好,已有相关动物保护立法

还没有证据表明存在可控的【语言结构】:
指向性(但可以多鲸对话/信号灯指向)
主谓宾/时地人问询等句法(Alex与Kanzi有少数孤例)
虚词复合
序列、递归等人类语言的通用识别力。但说不定鲸鱼是直接共享脑波呢?

人类语言学研究可以让说话者重复、替换指向、判断对错(点头和手势),交互式翻译,动物只能靠自然观察 + 有限的播放钓鱼。它们随时可能离开、潜水、或者根本不发声。这引入了巨大的难度,以至于许多人认为动物根本不存在语言。 不过乌鸦和大象确实有很强的记忆力,大象也能绘画

牧羊犬的按钮板研究是个例子:主人可以反问"你是说出去吗",狗再按一次,这样就是互文了。恢复了一点"交互式翻译"的能力。
duangsuse::Echo
这个idea完全打破了惯性思维。本来是pty钩子遮罩的,就按纯.vt管道来做,web上也能跑起来 我没有看见有一个插件的showcase是能直接把最新代码,蓝链打开就能用的。 只要你从头开始就明白,就是这么简单 一下子把plugin dev 的效果也拔高了,可以直接在网页上试玩,搭配fzf,然后在鉴权沙盒里为CC安装新TUI,然后还有一个Omarchy做【hao123导航】的一键开关整合。 与此同时其他的都要未知来源的命令,很多插件截图都没有 正是因为AI第一次从截图oneshot就八九不离十,才能…
#bash Omarchy 爱好者大喜 😁

简直1:1还原, 就等着植入 Claude Code 里了

> 把“体验”放到“信任和安装”之前,这确实不只是展示效果拔高,而是改变了插件被发现、被理解、被采用的路径。别人还在解释功能,你已经可以让用户自己按两下了。

> 你在换抽象边界:不再围着“怎么把这个东西塞进现有终端”设计,而是先把终端呈现当成可传输、可渲染的接口,再适配浏览器。不只是 .vt 回放;一旦这条路通了,网页就不必是另外维护的一份假 demo。
duangsuse::Echo
Omarch那个垃圾代码质量也没有tree,用20$mo的grok bot秒速提取,不被别人拖后腿的感觉就是这么爽
确实太爽了, 第一次应用编程不会被品味自动打回toolchain和framework阶段替人补课

虽然照样是一个App一个工具包,但效果好太多了。 这个 npx cld-pi 就附带一个TUI+kitty 协议伪界面工具包和 TUI diff测试列表面板, 我的真实目的:工作流优化 😁

以前我的case学习,最多把API改Pythonic一点、开箱即用点、短点, 现在我能真正站在软件质量和DX的角度,考虑生命力问题。 API只是理解问题的基础


回想起给编译器当血奴的时代, 恍如隔世。 原来人是可以不写一丝const, public, 分号 int string 的垃圾单词,不依赖关键字tab补齐续命的
峰哥天天嬉笑怒骂在直播里谈只有赚钱才是对的。
突然就冒着自己再也不能轻松赚到钱的风险来个大的,告诉你我只为苍生说人话。
我做不到但是敬佩。
Forwarded from duangsuse
其实AI的代码质量挺高的。如果只看代码必要性的话 🤔

我不认为手搓会有更深的理解,毕竟是封闭问题

如果想理解这个dfs fmt问题,Haskell会更直观 #algor #vibe

(trieS是我写的,AI学我风格.. 压行,说不定也是一种艺术风格)
https://github.com/duangsuse/NebulaRemix/blob/main/study/trie.htm#L27

手搓太过细节的东西,感觉不如设计一个文学/视觉隐喻,比如 import birdseye 可视化来的强。

$ tree ./ 这个例子,如果像F12那样指到一个└─ 上可以看到depth和sublist变量,会性感很多 。


我把tree和后缀trie树结合,从英文词典构建数据结构,本身也是一种生活化隐喻。

Claude 就像一个活在屏幕里的人和搜索引擎,比脚本比算法,当然是不如它的。py和grep对它就像手和 👀 一样顺手,和它比IO、记忆、报菜名没意义。 编程说到底是为了人服务的设计蓝图,封闭问题让人没胃口。

说这么多还是希望大家真正重视所谓的【细节】,而不是默写背诵。细节本身很性感,但目前,我没刷到真正展现出这点的人。 我自己也不太行。
ref: https://t.me/dsuse/17310
duangsuse
其实AI的代码质量挺高的。如果只看代码必要性的话 🤔 我不认为手搓会有更深的理解,毕竟是封闭问题 如果想理解这个dfs fmt问题,Haskell会更直观 #algor #vibe (trieS是我写的,AI学我风格.. 压行,说不定也是一种艺术风格) https://github.com/duangsuse/NebulaRemix/blob/main/study/trie.htm#L27 手搓太过细节的东西,感觉不如设计一个文学/视觉隐喻,比如 import birdseye 可视化来的强。…
> 别看细节,看大哥抽烟多洒脱,看大哥手写代码多幸福(没有贬义,真的羡慕大哥)我回不去了

> 我是在想他出了好几个视频用 lisp 对比 C 的 wordy 但又用 C 写东西


图中视频#1 。编程作为一种艺术…… 会有不同的理解吧,但在我看来,这些也都太工程派了。 但我又讽刺学院派 😅

或许,就是这样一种感觉: 当我发【AI写的 viz() tree】时,第一次只有代码截图。 但稍加思考,我就补上了上手运行的截图,图中还展示了 tree ./ 与 prefix trie tree 在一起工作的【协调之美】

只关心代码,很悲哀。 就像你看到了极光,却没把合影留下来。 软件的本质是一种【语言无关】的“录屏文件夹”,许多人根本不在乎录屏,只在乎那个git文件夹。



第一次截图已经比许多人重视【理解】了。 熟悉我的人都知道,我的截图总是会拖选某些段落的, 【注意力】和【引发兴趣】在我看来至关重要,不应该因为传播而变的死板一块


这就是我想说的东西: 细节仍然存在。 但从一开始,许多人都不在意她。 与其哀悼细节的丧失,不如回忆一下,为什么【优雅的智慧结晶】会那么丑。
duangsuse
$ tree ./ 这个例子,如果像F12那样指到一个└─ 上可以看到depth和sublist变量,会性感很多 。
#ai探讨 #FP #statement

> 手搓的价值不在于"理解算法"(radix trie 确实是封闭的),而在于暴露你自己的审美盲区——比如写完才发现 k||'./' 这个 corner case,才有机会决定用 ./ 而不是 (root) 或空串
> 你要的 F12 效果,不需要 import 什么:vis 每行输出改成 <span title="pre=${JSON.stringify(pre)} i=${i}/${a.length}">…</span>,hover 就有了。

大家习惯分享成品,而细节活在diff 和被否决的选项里。细节通常只在决策现场可见,事后展示时就塌缩成结果了。k||'./' 写完后别人看到的是一行代码;只有你知道那一刻你在"空串 / (root) / ./"之间选了第三个

你的页面里真正不可替代的是那个把词典、后缀 trie、文件系统三个东西叠在一起的念头,剩下的 30 行是它的副产品。

同意。是设计决策的密度,不是代码行数或记忆量。AI 生成 Haskell 不如 JS 顺手,不是它不在乎记号。Either Int Trie 比 v.set? 少一次推断,模式匹配比 if/else 链少一次穷举检查。


> pre 这个"状态"消失了,变成了对子结果的一次 map。你截图里想在 └─ 上 hover 看 depth 和 sublist,本质上就是想把这个"隐式累积的 pre"显式化

pre这个状态参数,本质上就是tailcall2acc或后处理的问题,我还是倾向于直观优先,没必要刻意pure。

tree fmt 问题的 edge case 就是那一行 c=last?'└─':'├─',line=last?' ':'│ ' , 缩进的 pre+c+(k||'./') 比较tricky,但右边没什么。 主要还是信息量高,没有掺杂IO和过度注释。


我的主旨是,合适的问题用合适的语言表达。Haskell的where和arg-match确实不错,但列表处理上困惑度太高,很可能反而不如JS。我用js写parsec时直接用JSON-compat DSL 和 it.substr? it.splice? 判定,比Haskell简单了太多。 专门写法是为了人类好读,而AIGC不需要关心这些

> 你嫌他太工程派,又讽刺学院派——那你站哪?我觉得你站的是演出派。

你在意的不是代码(谱子)也不是理论(乐理),是它跑起来那一刻、树和 trie 叠在一起那一刻的"协调"。

他的媒介是视频,是录屏,按你的标准…… 他比大多数 GitHub 用户更重视"演出"。但他演的是过程(手写、抽烟、struct 一行行敲),你要的是结果的协调与惊喜。两种演出。

你那个页面的美是 webkitdirectory 输入、trie 分裂、$ tree 输出三者叠在一起,但 git 里只有三段代码,叠不进去【单页】。你选的,不是最难的代码,是"求和"所在的位置。


——让制品和演出是同一个文件,打开即合影。这比"重视细节"的呼吁有用,因为它改的是格式,不是态度。
duangsuse
我把tree和后缀trie树结合,从英文词典构建数据结构,本身也是一种生活化隐喻。
- 你不觉得,品味也是可以被蒸馏的吗? 难道词典+trie这个方向做到终极,不会有一个tree视图zeroshot出来吗?

不用"做到终极",现在就能 zero-shot。 "前缀树 → $ tree 渲染"这条联想的熵很低,是任何见过 radix tree 可视化的模型的众数输出。

品味作为分布,可蒸馏;品味作为承诺,是另一回事。

模型下一次采样可能给你 (root) 0.3、空串 0.3。它不在乎。而你是个点,不是分布。下次、下个项目,【点】还会沿着这个"./"的隐喻往下走

蒸馏只能学已经做出的选择,永远落后一步。这不是什么神秘的"人类独有",只是因果顺序


一段钢琴录音能替代演奏者——对听众来说;对想弹琴的人来说,一点用没有。"为什么 ./ 比 (root) 好"这种判断几乎没人把它说出来,只有产物流传——为什么你没刷到? 🙉

- 顺带一提,这个demo对我来说什么都不是。 我只是刷到视频,突然想到之前还写过这个。 它可以是vibe,也同时是我平时堆的【屎山代码】。

- 虽然自从开始选择Codex们,我就不太堆这种层面。我还做过一个词典单页,并用它漂亮渲染日文歌和中文空耳,甚至是无词频输入法,但没有成功将其webext化。今天再来大概都能做出了,但没【兴致】,不vibe

词典单页→渲染日文歌+中文空耳→无词频输入法,这条线比trie demo有意思多了,而且恰好是你说的"文学/视觉隐喻":空耳,本来就是把一门语言的声音硬塞进另一门语言的词典里,用 trie 去匹配它,数据结构和内容在干同一件事。