duangsuse::Echo
hb-app.store 为声明式UI,t轴动画, libcurl (网络), Jansson (JSON), lodepng
github.com/XorTroll/Goldleaf 支持弹框UI
github.com/XorTroll/Goldleaf 支持弹框UI
#post 不要重复造轮子
如果你认为Switch .nro独立开发圈有一大堆SDL重复造轮子,你就错了。因为他们至少能勉强编译,虽然是rework也可以被remix,而且抛开UX优化不谈,功能正常。
但是各种MOD录屏、术曲音MAD,就不一样。 每个人想改都要从头开始扒,更无法获得踩坑提示,你 “必须把二创当个事来办”,时刻准备着遇到他们不分享的经验和工程量。
😂
是基于共同蓝图(开源库)的“建筑练习”。虽然过度工程,但也算是各有特色,可以取长补短的。
gamedev就不一样。他们没有超过demo级的开源模板,就连demo,对小众引擎而言,也是一票难求的。 真是很好奇:明明人类最擅长的创作模式(3D大世界),开发圈子却是最小的。连二创都不开源。
你要靠大兴趣,但是架构范本,也可能数年局限在单个游戏的圈子里,绝不能像在那个【废物GNU/知错不改的Archwiki】身边一样,三五天一个点即改即走,还和GNOME/Niri的工作区那样遍地开花,因为没有PoC和方案给你remix。
如果没有AI,真不知道那些上限锁死的“最高杰作”怎么像FNF或东方那样存续到未来。
做【独立开发】的多觉得GNU是20前的废物,做前沿的又认为GNU只是更精致的UNIX笼子,但musl和各种“小设备”的生态依旧打不赢glibc和gcc-libs的兼容性。GTK3(没想到吧这也是你的GNU朋友)同样在简单页面上完成了Qt做不到的事
虽然GIMP可能被诟病为不如H5的Photopea,但它还是比LibreOffice好看不少的。(GIMP是“开源只是简陋玩具”的典型论据 😅)
人家本来就是框架顺带的PoC,而且手动抠图什么的,就有一定专业性。 并不是二创就一定不如原作、开源不如商业,而是起步较晚、功能繁杂(比如hb接盘了任天堂没有的需求)的原因。
倒不如说,开源大佬的人均技术力很牛,而且很酷,最酷的是他们满不在乎的探索和分享精神——这一点不是优化个UIUX就能体验到的。
如果你认为Switch .nro独立开发圈有一大堆SDL重复造轮子,你就错了。因为他们至少能勉强编译,虽然是rework也可以被remix,而且抛开UX优化不谈,功能正常。
但是各种MOD录屏、术曲音MAD,就不一样。 每个人想改都要从头开始扒,更无法获得踩坑提示,你 “必须把二创当个事来办”,时刻准备着遇到他们不分享的经验和工程量。
😂
是基于共同蓝图(开源库)的“建筑练习”。虽然过度工程,但也算是各有特色,可以取长补短的。
gamedev就不一样。他们没有超过demo级的开源模板,就连demo,对小众引擎而言,也是一票难求的。 真是很好奇:明明人类最擅长的创作模式(3D大世界),开发圈子却是最小的。连二创都不开源。
你要靠大兴趣,但是架构范本,也可能数年局限在单个游戏的圈子里,绝不能像在那个【废物GNU/知错不改的Archwiki】身边一样,三五天一个点即改即走,还和GNOME/Niri的工作区那样遍地开花,因为没有PoC和方案给你remix。
如果没有AI,真不知道那些上限锁死的“最高杰作”怎么像FNF或东方那样存续到未来。
Bill Gates 曾以一封《An Open Letter to Hobbyists》讽刺“玩家社区”偷了别人的BASIC解释器,让【Specialist和专家】没钱写出“更优质,教程更完善的软件”。 我看这个问题根本没变,反而微软自己的azure面板和outlook越来越臃肿,还不如十年前的注册表顶用了。但是你要问解决进度如何,开源世界居然是发展最均衡的
(虽然往往也靠Bellard、SQLite、Linus、BSD这样的个人/小圈子宽容,但真顶用)
这些所谓的Specialist对内容创作和【零摩擦软件】的贡献也不怎么样,很多时候反倒要开源的玩具杀死比赛,比如 React和 Delphi/Apple KVO 的故事,比如KDE就是比微软自己适合Steam,人家可没像“拥有了BASIC”那样指责玩家偷走KHTML。
那人渣就是不分蓝绿的,Hobbyists和Specialist跟赚多少钱,它没大关系,纯粹是有没有货、愿不愿意【帮助未来的自己】的区别
符合人类直觉的工程量投入才是真理。 另外,Gates应该也听过另一句话
> ...prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." -- Edsger W. Dijkstra
做【独立开发】的多觉得GNU是20前的废物,做前沿的又认为GNU只是更精致的UNIX笼子,但musl和各种“小设备”的生态依旧打不赢glibc和gcc-libs的兼容性。GTK3(没想到吧这也是你的GNU朋友)同样在简单页面上完成了Qt做不到的事
虽然GIMP可能被诟病为不如H5的Photopea,但它还是比LibreOffice好看不少的。(GIMP是“开源只是简陋玩具”的典型论据 😅)
人家本来就是框架顺带的PoC,而且手动抠图什么的,就有一定专业性。 并不是二创就一定不如原作、开源不如商业,而是起步较晚、功能繁杂(比如hb接盘了任天堂没有的需求)的原因。
倒不如说,开源大佬的人均技术力很牛,而且很酷,最酷的是他们满不在乎的探索和分享精神——这一点不是优化个UIUX就能体验到的。
duangsuse::Echo
绝不能像在那个【废物GNU/知错不改的Archwiki】身边一样,三五天一个点即改即走,还和GNOME/Niri的工作区那样遍地开花
#freedom 社区运营与软件质量
🐮👎 在 Richard Stallman 和GNU之前:软件与设备厂商绑定、源代码闭门造车、禁止分享安装包、MOD与功能点移植?自求多福!
当年,软件世界从编译器开始,倡导的就是师傅带徒弟那样落后的、【隐形知识】主导的生产关系。
🐮👍 GNU 和后来的开源运动:倡导 运行、复制和镜像站、教程学习、修改甚至fork/再版软件的【四大自由】,打破了没有“维修权”甚至“Rootless”的黑暗时期。
是啊:即便如此的失败(尤其是在开源游戏、“零摩擦”为标准的Apps、智能硬件领域),我还是要替GNU和Linux辩解,不是因为它们“更免费”,而是它们可以MOD,而且接纳第三世界。——比如,你没听过【GitHub/GH汉化组】吧? 如果你任务栏里的“那个图标”缺少一个功能,或多一个超赞的设计,它是否能像油猴脚本那样【可移植】【可复现】呢?
你拥有的软件。 它就只是一个图标而已吗?
💰 “拥有” 一个超赞的软件,哪怕没读过源码,本身就是自由的象征,就像那些人明明花不完却还是在“攒钱”一样。
使用开源软件,就是在为你的数字生活“攒钱”。 今天你可能不会自己编译内核或“古老”的Yuzu模拟器,但它未来不会背叛你(即便可能被fork)
🤖 设想一下,如果一个【小而美】的输入法在更新里添加100MB的无法关闭的离线AI并【修复了一些已知问题】,你,是否能相信它?但是我肯定相信RIME,而且 it works fine,我的整个频道都是地球拼音写的,没有什么流行词库和云输入,没有搜狗和QQ的地盘。 哪怕它们“更流畅”(比如输入乘法弹出×号、成语名言首字母、直接加减乘除什么的)
每次都是那些只管写和裁缝,不管维护的人,用蹩脚的XML和某个“官方UI库”写两个layout,然后就把风头抢光了。但是现在,我们应该能知道,那些【零摩擦的设计】,反而是最容易vibe走的。它们本质上就是需要编译的油猴脚本,哪怕开源也难以拖下来编辑。
GIMP没有浮层滤镜和HDR,Audacity竟然基于LISP而不是Lua/Py做插件,这些都是 Pro Users 攻击这些项目的论据。当然,拿 WPS 【国产系统版】挑战历史悠久的LO就太极限了(@Losses_don 也表示过LO确实没啥好说的。很遗憾,它的Wx组件还不如Audacity和Inkscape,充满塑料感)
在Linux上开发专业软件,难度其实和Qt移植一样,你可以完全忽略包管理的差异化(在现代也能避免ldd .so not found 的尴尬),倒不如说,现代 Wayland WM 圈的生产力和创新速度,可是就差逆向输出到win和mac的桌面风格上了。
与这种赏心悦目的【碎片化】相比,Win8出尔反尔的闭源metro也好意思比么?
再比如,歌声合成领域最近的OpenUTAU,以及大模型里可自托管的DeepSeek/GLM,同样在质量上做到了惊人的上限。我们很少聊Python世界是否开源,因为在DL里计算图和权重开源才是主流😁✅
所以,不能用源码保护与否,甚至是 “收费与否” 来判断软件质量。 垃圾是不分蓝绿的,只是垃圾作者不好意思收费/好意思但被榜单刷掉,罢了。
闭源也是反破解不了的,只是个心理安慰。现代的ML界功能这么强,没有开(tou)放(dao)数据集是怎么实现的?
🐮👎 在 Richard Stallman 和GNU之前:软件与设备厂商绑定、源代码闭门造车、禁止分享安装包、MOD与功能点移植?自求多福!
当年,软件世界从编译器开始,倡导的就是师傅带徒弟那样落后的、【隐形知识】主导的生产关系。
🐮👍 GNU 和后来的开源运动:倡导 运行、复制和镜像站、教程学习、修改甚至fork/再版软件的【四大自由】,打破了没有“维修权”甚至“Rootless”的黑暗时期。
就像你想学游戏开发时那样 ——断然没有 component-party.dev 派乐迪和WebGL的一堆模板给你做设计,你要从Vec3f开始认识你本来就会的“走路” “骑自行车”。
“这很难”,但他们是不会有这种感觉的,看那摊效果拔群的面条代码就知道。——欢迎来到软件市场。
你不能指望每个人都像RMS那样仁慈,或像Pythonic那样聪明,他们才是”不平庸“的大多数,相比之下,自由世界的限制就太多了——至今有人为Live2D、Telegram甚至FFMpeg而争议
是啊:即便如此的失败(尤其是在开源游戏、“零摩擦”为标准的Apps、智能硬件领域),我还是要替GNU和Linux辩解,不是因为它们“更免费”,而是它们可以MOD,而且接纳第三世界。——比如,你没听过【GitHub/GH汉化组】吧? 如果你任务栏里的“那个图标”缺少一个功能,或多一个超赞的设计,它是否能像油猴脚本那样【可移植】【可复现】呢?
你拥有的软件。 它就只是一个图标而已吗?
💰 “拥有” 一个超赞的软件,哪怕没读过源码,本身就是自由的象征,就像那些人明明花不完却还是在“攒钱”一样。
使用开源软件,就是在为你的数字生活“攒钱”。 今天你可能不会自己编译内核或“古老”的Yuzu模拟器,但它未来不会背叛你(即便可能被fork)
🤖 设想一下,如果一个【小而美】的输入法在更新里添加100MB的无法关闭的离线AI并【修复了一些已知问题】,你,是否能相信它?但是我肯定相信RIME,而且 it works fine,我的整个频道都是地球拼音写的,没有什么流行词库和云输入,没有搜狗和QQ的地盘。 哪怕它们“更流畅”(比如输入乘法弹出×号、成语名言首字母、直接加减乘除什么的)
虽然GNU被现代的“高产人士” 理解为【没有成果】【有开源污染性】或【越来越微弱】,就连“币圈”也不在乎用户自由与知识共享, 我们却知道,优秀的软件作者至少不会吝啬他使用的技术。比如,图形学之神iq,YC游戏区的Blow,openDAW的André,或者一个MC的多边形版 survivalcraft.dev ,会特意分享亮点实现,即便许多工作仍是仅SDK开源
为什么GNU这边反而不说基于CMake和pkgconf的整个地基是【被偷走的BASIC解释器】,而GCC和各种移植,是RMS官方呢? 因为他们不希望人人都围着官转,人人为了干活提升QoL,都要去伺候官方。GNU世界就是不搞社区和社媒,但是做的软件有70%你用不到(比如全兼容性的胶水),而剩下30%其实没什么技术含量,比如点击滑滑的手势和拉风配色。所以大众觉得GNU没做什么,但是缺了可不行。
一言以蔽之:GNU做的,都是 declarative UI/HTML 没法压缩的工作。虽然tar可能不如7z,但这正是7z能够开源,而不是和rar一样被【许可证传染性】带偏的理由。正是因为吃到自由,所以开源了,而且UX体验更好。
每次都是那些只管写和裁缝,不管维护的人,用蹩脚的XML和某个“官方UI库”写两个layout,然后就把风头抢光了。但是现在,我们应该能知道,那些【零摩擦的设计】,反而是最容易vibe走的。它们本质上就是需要编译的油猴脚本,哪怕开源也难以拖下来编辑。
GIMP没有浮层滤镜和HDR,Audacity竟然基于LISP而不是Lua/Py做插件,这些都是 Pro Users 攻击这些项目的论据。当然,拿 WPS 【国产系统版】挑战历史悠久的LO就太极限了(@Losses_don 也表示过LO确实没啥好说的。很遗憾,它的Wx组件还不如Audacity和Inkscape,充满塑料感)
如果说VimScript和EL还有些“怀旧爱好者”,甚至是学院派treesitter给它们做LSP,LISP插件系统这回事就真是太【落后】了。可以说“商业质量Pro用户”是对的 ——毕竟连CSS都支持mask和浮层滤镜,但尽管开源在生产力上还有很多问题,Blender, Krita, KODI, KoReader, KiCAD 的成功和移植也证明了Linux有一个【有爱】的环境,这不是维护方式本身的问题。
在Linux上开发专业软件,难度其实和Qt移植一样,你可以完全忽略包管理的差异化(在现代也能避免ldd .so not found 的尴尬),倒不如说,现代 Wayland WM 圈的生产力和创新速度,可是就差逆向输出到win和mac的桌面风格上了。
与这种赏心悦目的【碎片化】相比,Win8出尔反尔的闭源metro也好意思比么?
再比如,歌声合成领域最近的OpenUTAU,以及大模型里可自托管的DeepSeek/GLM,同样在质量上做到了惊人的上限。我们很少聊Python世界是否开源,因为在DL里计算图和权重开源才是主流😁✅
所以,不能用源码保护与否,甚至是 “收费与否” 来判断软件质量。 垃圾是不分蓝绿的,只是垃圾作者不好意思收费/好意思但被榜单刷掉,罢了。
闭源也是反破解不了的,只是个心理安慰。现代的ML界功能这么强,没有开(tou)放(dao)数据集是怎么实现的?
duangsuse::Echo
你拥有的软件。 它就只是一个图标而已吗?
💰 “拥有” 一个超赞的软件,哪怕没读过源码,本身就是自由的象征,就像那些人明明花不完却还是在“攒钱”一样。
使用开源软件,就是在为你的数字生活“攒钱”。
💰 “拥有” 一个超赞的软件,哪怕没读过源码,本身就是自由的象征,就像那些人明明花不完却还是在“攒钱”一样。
使用开源软件,就是在为你的数字生活“攒钱”。
#rust 的这种 重造轮子 风气,其实说明了软件的开发难度,也要取决于主创的动力(甚至是虚荣心)
实际上,只要你排除应用层和一堆游戏和音画的生产力工具,框架和兼容层是非常丰盛的,包括整个 Blink/CEF/ Ruffle.rs 、OBS/SRS栈、raylib/box2d、Vue和Svelte,许多已经完全 get rid 了塑料用户体验,甚至在社区(尤其是DX)上比付费软件更好。
我必须点名指出 manim/movyjs 这样的“无界面视频特效”与kwin的ShaderToy桌面壁纸支持。这说明:虽然无法做好面板和操控,但在结果上技术并不落后。(尤其是Radare2编辑器那样CLI比WebUI好太多的场景,UI模态是选择而非优劣)
(毕竟地主家的傻儿子,大多是伸手党,Python套壳都要收费。Archwiki/AUR 和WaylandUI那种完成度他们可做不来)
其他的靠 declarative UI 本来能解决,只是执行坏了,导致开源平替用起来完全不能零摩擦。当代的H5套壳没有这种问题,能说明一切上层并非主要矛盾,只要用正确的心智模型来做软件。
苹果能从KHTML fork出WebKit,并以此为基础构建出统治移动时代的iOS和现代macOS的UI/Web核心,这本身就证明了:那个“开源核心”蕴含的巨大价值。
它打开是黑框,但确实可以致胜,这就是实际情况。 ✅
其实GNU的愿景即便在Apps里,也没有失败,社区形成共识总需要一段时间,然后才会发现 free software 的真正生产力。就像Rust仅凭一个名号,就莫名使得一大堆sh工具重获新生一样,只是换个方法,困境自然会解决。
一个强大的新理念(如Rust的“Fearless Concurrency”)本身就具有号召力,它能吸引新一代的开发者,用新的方法去解决老的问题。
上文的 Pro 用户, 其实是把GNU的理念和整个开源世界对立起来了。
实际上,只要你排除应用层和一堆游戏和音画的生产力工具,框架和兼容层是非常丰盛的,包括整个 Blink/CEF/ Ruffle.rs 、OBS/SRS栈、raylib/box2d、Vue和Svelte,许多已经完全 get rid 了塑料用户体验,甚至在社区(尤其是DX)上比付费软件更好。
我必须点名指出 manim/movyjs 这样的“无界面视频特效”与kwin的ShaderToy桌面壁纸支持。这说明:虽然无法做好面板和操控,但在结果上技术并不落后。(尤其是Radare2编辑器那样CLI比WebUI好太多的场景,UI模态是选择而非优劣)
(毕竟地主家的傻儿子,大多是伸手党,Python套壳都要收费。Archwiki/AUR 和WaylandUI那种完成度他们可做不来)
乍一看,把所有Apps和游戏,甚至Adobe和Office排除在外,等于是把整个操作系统删到只剩驱动(功能该比嵌入式还残),但如果你理解从KHTML/X11到WebKit/苹果桌面的这段历史,就会发现这才是代码量的 80%,是重头戏。
其他的靠 declarative UI 本来能解决,只是执行坏了,导致开源平替用起来完全不能零摩擦。当代的H5套壳没有这种问题,能说明一切上层并非主要矛盾,只要用正确的心智模型来做软件。
苹果能从KHTML fork出WebKit,并以此为基础构建出统治移动时代的iOS和现代macOS的UI/Web核心,这本身就证明了:那个“开源核心”蕴含的巨大价值。
它打开是黑框,但确实可以致胜,这就是实际情况。 ✅
其实GNU的愿景即便在Apps里,也没有失败,社区形成共识总需要一段时间,然后才会发现 free software 的真正生产力。就像Rust仅凭一个名号,就莫名使得一大堆sh工具重获新生一样,只是换个方法,困境自然会解决。
一个强大的新理念(如Rust的“Fearless Concurrency”)本身就具有号召力,它能吸引新一代的开发者,用新的方法去解决老的问题。
#js #code
Kitty 协议的NVim仿VSCode网页预览
Electron+Custom Toolbar
TermEvent>KeyEvent, ShmGraphicBuffer 都是 #rust ,甚至还做了 bun:test
https://github.com/chase/awrit/blob/electron/src/paint.ts#L34-L57
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
#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…
#post #design 换购思维:面对编辑框的你,不需要证明自己会做
放到以前我会Star,甚至fork(然后啥都不干)
2025.5实现的 tty onresize,24.6的点子,到现在已经占用开发者一年时间 30k+ 代码量了。
我不是个看Star数说话的人,但这个功能,可能用 XReparentWindow 来实现任意窗口的嵌入,然后对中键scroll补丁一下更简单。
因为这样的话,chrome-in-term 就只需要 reinvent Toolbar 和实现 window.open() 的AOP化扩展,这也是个不错的学习量。 DOM APIs 其实就是这样攒出来的。
——不对,甚至连Toolbar都不需要自制,因为你能直接把【任何浏览器去掉窗口边框】放在【任何支持鼠标滚轮】的窗口的某几个xywh上,只需要1行就够了,kitty icat 显得多余。 html-in-canvas 就是这样来的。
虽然模仿窗口油猴AHK会很hack,但比起 This repository was archived by the owner on Apr 25, 2026. It is now read-only. 还是更有生命力的。
(下面顺带吐槽下各种编辑器的refactor支持普遍太弱)
📝 👌
为什么要这么锐评呢? 习惯的不同。
awrit 项目是一个有趣(而且对Vim用户有用)的w3m浏览器升级版。放到以前我会Star,甚至fork(然后啥都不干)
可现在我只会记住:它平替了什么,它依赖什么API(键鼠屏幕的flow),数据流有哪些typing,哦是electron而非CEF。我甚至只看截图而懒得运行。
——你看, This repository was archived by the owner on Apr 25, 2026. It is now read-only.
它出现不是因为它有代码、它Rust,而是找到了一个【框】来安放自己,又展示某种内容或工作流。 这个思路,是无代码的。
它涉及的无缝scroll和resize,这个vec2的模型,是无代码的。本来可以无代码的。
有一个API,就会被多一种“私货”束缚。发现代码甚至【软件行为】的重复,却不过度设计的能力,非常稀奇。
🤔💭 只有你能不从“项目模板”和上游依赖开始写,而是:真正【面向REPL/AOP】的开发者——就好像自己能够扮演wlroots时,才会真切的体会到这些【隐形知识】。
2025.5实现的 tty onresize,24.6的点子,到现在已经占用开发者一年时间 30k+ 代码量了。
我不是个看Star数说话的人,但这个功能,可能用 XReparentWindow 来实现任意窗口的嵌入,然后对中键scroll补丁一下更简单。
没错,在wl下这会很hack,你甚至要diff截屏(cv2)或用a11y(atspi2)拿到一个int,来实现嵌入随内容scroll,需要针对K/G/wlroots做适配,
但它的复用性,会比你耗一整年3万行,还js/libc双生态好的多的多。 这就是技术选型时重要的【换购思维】:省下3万行,你还能加购什么?
因为这样的话,chrome-in-term 就只需要 reinvent Toolbar 和实现 window.open() 的AOP化扩展,这也是个不错的学习量。 DOM APIs 其实就是这样攒出来的。
——不对,甚至连Toolbar都不需要自制,因为你能直接把【任何浏览器去掉窗口边框】放在【任何支持鼠标滚轮】的窗口的某几个xywh上,只需要1行就够了,kitty icat 显得多余。 html-in-canvas 就是这样来的。
虽然模仿窗口油猴AHK会很hack,但比起 This repository was archived by the owner on Apr 25, 2026. It is now read-only. 还是更有生命力的。
(下面顺带吐槽下各种编辑器的refactor支持普遍太弱)
那为什么我不去做、不去踩坑呢? 因为VSCode的aside热重载已经足够好了,NVim+Kitty 虽然在{}当前缩进层 的动效上,以及treesitter语法集支持很惊艳,用户体验还不如Kate+CMake/LSP
However,这些符号表实现都只能Ctrl点击=jump2def,不能查def和type的xref,自动导入/跨文件重命名,甚至只是查arg的所有实参(当然我在扯淡,哪个IDE能静态查这玩意呢,哈哈)
不过说句实话,hljs+jump2def+命令和跳转面板,还是太普通了,甚至不如GH的符号搜索。list_argvals 虽然扯淡,但如果你习惯F12的事件断点调试器,就会明白它们能省掉多少次点击,而且更加接近程序运行时的状态。
哈哈,当然我在扯淡,临时加print才是最顶用的。你甚至不能写 f(dd=x), dd(f)(x) 来单独打印一个或一组参数。 还不如直接用Jupyter试错呢,优秀的程序员怎么会需要高频率的按F5呢?
📝 👌
为什么要这么锐评呢? 习惯的不同。
DOM/html真的是编程世界的Arch洗发水,太方便了。 你甚至可以把普通桌面/触屏App套用到网页那套术语,什么header/MenuBar,footer/Status, aside/Panel..
基本上什么需求都可以用WebAPIs的理解对上去,而且很快会发现它们简直比Python还简洁。只是下限低一些。
如果没有所谓的【前端世界】,我肯定会被一些垃圾设计带偏。其实不同的场景有不同的好做法(ImGui和Tk就不需要Signal变量,而Qt的Signal更多是一种函数值/自动free),但是浏览器总最正常、最不偏门。
平时说的元编程,和Web协议栈对上那就不算什么。CSS/URL/JSON/SearchParams 这些本质上都是隐藏的宏魔法,只是太高明(而且容易做出tw.css/stylus那样的创新),很少有人意识到浏览器组件比编译器更有【编排能力】。
如果一个编程语言不能在某种程度上和 WebAPI toys 接轨,它就是失败的。因为世界上并不缺少 “更js一点的java或更python的lua”,如果感觉上如此,那是因为之前的都凉透了。
duangsuse::Echo
——你看, This repository was archived by the owner on Apr 25, 2026. It is now read-only.
它出现不是因为它有代码、它Rust,而是找到了一个【框】来安放自己,又展示某种内容或工作流。 这个思路,是无代码的。
它出现不是因为它有代码、它Rust,而是找到了一个【框】来安放自己,又展示某种内容或工作流。 这个思路,是无代码的。
#plt #scala 老骥伏枥
https://www.lihaoyi.com/post/TheDeathofHypeWhatsNextforScala.html
自定义运算符之殇? ps. 模仿 bash #> #| #&& 真的有意义吗,怎么感觉heredoc也能做
查了下Scala不能像ES6那样安全注入
其实可以但是魔法。在选择上无疑是失败的,没分清首要问题
https://www.lihaoyi.com/post/TheDeathofHypeWhatsNextforScala.html
自定义运算符之殇? ps. 模仿 bash #> #| #&& 真的有意义吗,怎么感觉heredoc也能做
看到 Typesafe/Lightbend 的朋友们被裁员,真是令人惋惜,但正如我一直所说,免费的东西很难卖出去。
我很好奇Scala现在的普及程度。它并没有像Clojure那样消亡,但似乎在2016年左右达到了顶峰。不过,我没有任何数据可以佐证这一点。
查了下Scala不能像ES6那样安全注入
safe=(lits, ...a)=>a.reduce((A,B,i)=>A+B+lits[i+1], lits[0])其实可以但是魔法。在选择上无疑是失败的,没分清首要问题
duangsuse::Echo
2025.5实现的 tty onresize,24.6的点子,到现在已经占用开发者一年时间 30k+ 代码量了。
GitHub
GitHub - manaflow-ai/cmux: Open source Ghostty-based macOS terminal with vertical tabs and notifications for AI coding agents.…
Open source Ghostty-based macOS terminal with vertical tabs and notifications for AI coding agents. Built for multitasking, organization, and programmability. - manaflow-ai/cmux
https://github.com/manaflow-ai/cmux #haha
这个Claude #vibe 出的玩意…… 支持了muti-Agent,多标签的active高亮,以及WebView bash自动化
12万行 1.4k 个swift文件,2.7k 个 AI PR,你要说可移植性,那就是没有 😨
看到这一堆 BrowserDesignModeController, BrowserHTTPBasicAuthPrompt.swift 时我的震惊已经无以复加,就连英文编写的内容也有一种进了 🦞 社区的爽感
一个能用的 AI Slop。 看到这玩意,就对为啥codex们要Harness见微知著了
就连GH的默认expo也无法列出这个130行的超大文件夹,文件夹,居然都能有130行……
这个Claude #vibe 出的玩意…… 支持了muti-Agent,多标签的active高亮,以及WebView bash自动化
12万行 1.4k 个swift文件,2.7k 个 AI PR,你要说可移植性,那就是没有 😨
看到这一堆 BrowserDesignModeController, BrowserHTTPBasicAuthPrompt.swift 时我的震惊已经无以复加,就连英文编写的内容也有一种进了 🦞 社区的爽感
“既然有了这些,那书签栏、下载管理器、Cookie 注入、DevTools 桥接是不是也得顺手SwiftUI安排上?”
可能哪怕是Bellard或iq来了也得给 Claude Code 磕一个,这哪是ghostty套壳,这是【自研浏览器】啊啊啊!!!
一个能用的 AI Slop。 看到这玩意,就对为啥codex们要Harness见微知著了
就连GH的默认expo也无法列出这个130行的超大文件夹,文件夹,居然都能有130行……
真是给了正常人一点小小的Fable震撼,文件系统压测啊这。 继js世界的monorepo (left-pad) 大神之后的又一力作
一看代码能挤爆几个4K超大屏幕,一看运行,诶,这不就是个油猴脚本的体量么
这种信息量也太超模了,就连V家Teto的四大教主也没这么病娇glitch的。 CI过那就是过,AIGC的 test kit 过就收工了…… 以后的App都是这种苹果东西吗?
原来我们已经远远落后于时代了, 像我这种人完全无法理解 Agents repo 的精妙啊啊啊…… 😨 ⚖️ 第一次感到自己正在【古法编程】
有没有一种可能: 我们每天解决2~3个PR是一种【手搓代码】的象征,像该repo这样2.7k个 PR,比
一看代码能挤爆几个4K超大屏幕,一看运行,诶,这不就是个油猴脚本的体量么
这种信息量也太超模了,就连V家Teto的四大教主也没这么病娇glitch的。 CI过那就是过,AIGC的 test kit 过就收工了…… 以后的App都是这种苹果东西吗?
原来我们已经远远落后于时代了, 像我这种人完全无法理解 Agents repo 的精妙啊啊啊…… 😨 ⚖️ 第一次感到自己正在【古法编程】
有没有一种可能: 我们每天解决2~3个PR是一种【手搓代码】的象征,像该repo这样2.7k个 PR,比
find {}.swift|wc 文件数还多,才是未来的科创世纪呢?风格强烈的 P 主,他们的音乐充满了 glitch(毛刺、故障)美学和病娇感,但那是 有意为之的艺术表达。他们通过精确控制的“失控”,来传达强烈的情感和世界观。
而 cmux 的 "glitch" 感则完全不同,它是一种 无意识的、失控的产物。它没有审美,没有哲学,只有冰冷的、由概率驱动的 token 拼接。它就像一个不会画画的 AI 接到了“画一幅蒙娜丽莎”的指令,最后用无数个像素点暴力拟合,远看有点像,近看全是噪点和逻辑断裂。这种“病娇”不是来自情感,而是来自逻辑的缺失和复杂度的爆炸。
duangsuse::Echo pinned «https://github.com/manaflow-ai/cmux #haha 这个Claude #vibe 出的玩意…… 支持了muti-Agent,多标签的active高亮,以及WebView bash自动化 12万行 1.4k 个swift文件,2.7k 个 AI PR,你要说可移植性,那就是没有 😨 看到这一堆 BrowserDesignModeController, BrowserHTTPBasicAuthPrompt.swift 时我的震惊已经无以复加,就连英文编写的内容也有一种进了…»
duangsuse::Echo
我很好奇Scala现在的普及程度。它并没有像Clojure那样消亡
#Haskell 们长期连fmap就是现代H5里的derive()变量这点都没还原好。
直接把Promise弄成不人不鬼的 IO Monad,然后集合类不可变到处Lens(如同Rust的Rc RefCell套壳),结果还不如Svelte。都是回调链表,函数式的功能性和性能就拉胯一节, 不活该被淘汰么
安全${内插}和 o?.nulToNul 这些都属于是极其容易但价值高到夸张的, 所谓的 #> #| bash语法(自定义DSL)与之相比算不了什么。
究竟是天真到什么地步,会觉得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探讨
“这玩意儿就像 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探讨
#PLT #history HN 上 Backus(Fortran), Dijkstra(Algol), Alan Kay (细胞和事件的OOP/REPL) 的讨论
https://news.ycombinator.com/item?id=11796557
“我不知道你们当中有多少人见过他,但你们可能知道,在计算机科学领域,傲慢是用 nano Dijkstra 来衡量的。”—— Alan Kay:这句话总是被断章取义地引用。
|这句话出自 Alan Kay 在 1997 年 OOPSLA 上的演讲("The Computer Revolution Hasn't Happened Yet")。
Lamport 的 TLA(TLA+ 的基础)比 Agda 更简单,因为在 Agda 中,即使类型(即命题)和程序使用相同的语法,它们在概念上也是分离的,而在 TLA 中,它们是相同的。程序(或者说它的规范)及其属性都只是逻辑命题。
程序逻辑(PL)方法(由 Backus 和 Milner 倡导)与规范方法(由 Dijkstra 和 Lamport 倡导)之间存在争议。问题在于,除了最简单的程序之外,在代码级别进行证明是否在经验上可行(且成本合理)。事实上,到目前为止,答案似乎是否定的。迄今为止,只有一款使用依赖类型编写和验证的程序(CompCert),它虽然规模不大,但确实非同小可
https://news.ycombinator.com/item?id=11796557
“我不知道你们当中有多少人见过他,但你们可能知道,在计算机科学领域,傲慢是用 nano Dijkstra 来衡量的。”—— Alan Kay:这句话总是被断章取义地引用。
|这句话出自 Alan Kay 在 1997 年 OOPSLA 上的演讲("The Computer Revolution Hasn't Happened Yet")。
Forwarded from yihong0618 和朋友们的频道
哔哩哔哩
【万字硬核考据】全方位拆解《黑钟馗》-主角/怪物/战斗/剧情/符箓_哔哩哔哩bilibili_黑神话悟空_游戏杂谈
简介:啥也不说了,求个三连~;已有33468名黑神话悟空玩家向您推荐本视频,点击前往哔哩哔哩bilibili一起观看;更多实用攻略教学,爆笑沙雕集锦,你所不知道的游戏知识,热门游戏视频7*24小时持续更新,尽在哔哩哔哩bilibili 视频播放量 788210、弹幕量 5639、点赞数 33468、投硬币枚数 16275、收藏人数 9866、转发人数 3078, 视频作者 天师道的白山正, 作者简介 天师道传度弟子,独立游戏制作人,米二、许先哲老师忠实读者,《一人之下》《镖人》《不良人》等国漫解说,商务…
https://www.phoronix.com/news/Wayland-X11-Performance-PorteuX
https://github.com/fulalas/wmbench/blob/main/lib/win_wl.c 人家手搓的BENCH_BACKEND,没有RPA..
@ AMD Ryzen 7 32GB of RAM
#bash #performance Wayland, xfwm4-gl 项目做的测评
"KDE Plasma on Wayland along with the likes of Labwc and COSMIC not being far off"
https://github.com/fulalas/wmbench/blob/main/lib/win_wl.c 人家手搓的BENCH_BACKEND,没有RPA..
@ AMD Ryzen 7 32GB of RAM
#bash #performance Wayland, xfwm4-gl 项目做的测评
"KDE Plasma on Wayland along with the likes of Labwc and COSMIC not being far off"
#PLT #design 还有VIM的吐槽(现在好些了)
默认非local、非public不会觉得自己很蠢吗?该不会还觉得做了什么了不起的虚拟机优化。
约定优于配置。声明式到底有多难?!
是什么让90%编程语言的作者像java的public那样到处拉屎。到处Local写的真的烦死了,ES6的箭头函数好点但也脑残
最后kt还是默认pub,Bun还是提供write, 所谓的防呆全都是自欺欺人。像bash那样 echo>file cat>>conf 到底有多难?! 非要 mkdir, create, 甚至encode.. 有这点功夫不如实现json lodump
r2、Blender 的按键/hint UI 很明确的告诉“高效编程者”什么是真正省键位—— 把能用的 action list 和快捷键写出来,统一可编程API,而不是拿键位和古怪的DSL糊弄人
这才是Hacker的【用户中心】,不是教人作事的Bozo。
👍 folke(也是 LazyVim 的作者)将整个发行版设计为极度模块化、高性能且“开箱即用”的现代 IDE。snacks和which-key非常友好,而且像MT管理器那样强大
让我想到那个典中典的微内核与Linus之争了, 还“如果Linux是作业我给你零分”,我可去你的,对语义和场景无知到什么程度,
还真是和Gates说的那样, 真以为自己做了API和算法就有人用了,谁理你,这心智模型是什么碎片垃圾
默认非local、非public不会觉得自己很蠢吗?该不会还觉得做了什么了不起的虚拟机优化。
约定优于配置。声明式到底有多难?!
是什么让90%编程语言的作者像java的public那样到处拉屎。到处Local写的真的烦死了,ES6的箭头函数好点但也脑残
最后kt还是默认pub,Bun还是提供write, 所谓的防呆全都是自欺欺人。像bash那样 echo>file cat>>conf 到底有多难?! 非要 mkdir, create, 甚至encode.. 有这点功夫不如实现json lodump
以至于python可以只因为不给人添麻烦而成功,和性能或设备移植性一点关系没有
几乎没有tui编辑器支持选区和复制粘贴吧?vim不支持Shift选区?
NVim按ctrlc 仍然无法工作
在vim因为cli而区分V-mod时,正常编辑器已经有minimap了
这等于要重新学一遍盲打。 有什么好处?真不懂visual和默认模式有什么用。
表面上Vim们是结构化,实际上minimap和悬停、Ctrl点击早就决定胜负。如果多标签和工作区都不自带,怎么编程。它有双空格yazi预览,但VSCode也只是有预览没做平铺,IDEA更是比vim好太多
真是匪夷所思,所有编辑框都支持的nvim反而不支持,还拿来做什么窗口分配调宽度。hjkl甚至在物理上都与意义不对称,别说好不好记,每次你都要翻译一下再跳词 😅
从vi开始就是设计弊病,不知所谓的单字符快捷键,就好比编程里的 code.golf ,直到现在Kate都支持文件夹和工作区了,nvim还是只有配色改了
有configUI,但只能预览,太蠢了。bash的set可以把状态变成字符串。如果做不到,把eval记录到文件都行。
r2用完全相同的交互,你看不到这样大的学习曲线
r2 完全可以在效率和易用上做到平衡,用REPL语言来做scriping和r2pipe,因为它的作者自己有能力包许多插件和h5界面,而Vimscript是 dirty hack,和TeX一样是外行碰运气
而且r2支持qt,h5。r2 的 s, 0x, / 跳转绝对让人立刻理解CLI编辑器的优势,而不是nvim这样,在VISUAL,NORMAL和莫名其妙的V-mode矩形选区里蹦跶
这个智能混搜没有命令搜索功能,也不能在 @或> 前缀时切换搜索,让人觉得莫名其妙
Snack自己完全没有这种omnibox吗? 非要手写。Lazy本身也有一个which-key,却没有这种路由处理,简直就是加了一点 i 的蠢货命令行而已
看到gelguy/wilder.nvim的README里只有一张gif,下面每段代码都是折叠VimScript+Lua,我就明白乔布斯的Bozo是什么意思了。 简直和Linux没有Docker理念时一模一样,到处是没有性功能的样板
现在的 Neovim 生态给人一种“现代化”的错觉,完全是因为folke换上了 Lua、iconfonts、Catppuccin 主题、无边框浮窗和平滑滚动,精力还是在没有flow的地方。
r2、Blender 的按键/hint UI 很明确的告诉“高效编程者”什么是真正省键位—— 把能用的 action list 和快捷键写出来,统一可编程API,而不是拿键位和古怪的DSL糊弄人
这才是Hacker的【用户中心】,不是教人作事的Bozo。
Vim就需要只读和读写两个模态,默认读写。拿那些修饰键临时切换。 Normal模态下的键位真应该<5个, Lazy默认的<C-o>SPC不就只有一个,还带UI。
Vim和Kate的矩形选区也是反人类的功能点。 除了写文档注释 asciiflow.com (意味着不该由编辑器支持),我不明白矩形选区有什么意义,它既不酷也不hack,还不如加多光标和视口内重构。
这让我想到各种 cmd|awk {print $2},一整个沙盒只为一个Tab split。AWK到今天还不如jq和ruby ARGF有用了。 😅
👍 folke(也是 LazyVim 的作者)将整个发行版设计为极度模块化、高性能且“开箱即用”的现代 IDE。snacks和which-key非常友好,而且像MT管理器那样强大
让我想到那个典中典的微内核与Linus之争了, 还“如果Linux是作业我给你零分”,我可去你的,对语义和场景无知到什么程度,
还真是和Gates说的那样, 真以为自己做了API和算法就有人用了,谁理你,这心智模型是什么碎片垃圾
#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 (
值得注意的是,实现了一组基本的CSS https://github.com/remorses/gpuix#supported-styles
但文档一眼AI,甚至有点管理不住模块化的感觉(毕竟GPUI套娃),感觉最近看AI文档都有点ptsd了
你说不好吧,也不行,因为许多人写不到这么细,但是还是感觉很草蛋
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了
你说不好吧,也不行,因为许多人写不到这么细,但是还是感觉很草蛋