duangsuse::Echo
统一的函数式接口,自动内存管理等等。
https://share.gemini.google/QJon73lAFArE #TIL #bash
GTK/QML 框架相关
- 请解释gtkmm如何实现C++闭包到gpointer的封装
- 树形父子对象管理 + 智能指针引用计数 (GObject ref/unref)?
- Gtk听起来为了blueprint做了很麻烦的设计,而且似乎无法避免,还不如Tk
- 有一种说法:C++桌面移动应用需求里,90%的指针是refcount<2的,这里说的不止是画布之上,还包含一般的日历、笔记等App的所有对象状态管理
- 也就是说Rc<RefCell>或QObject的模型非常够用。
- 当按钮 B 被主容器销毁时,连接到 B 的所有信号槽会自动断开,持有 B 的
GTK/QML 框架相关
- 请解释gtkmm如何实现C++闭包到gpointer的封装
auto f=new auto([=]() { g_object_set(parent_menu, "tearoff-state", TRUE, NULL); });
g_timeout_add(500, +[](gpointer uf) { auto u=static_cast<decltype(f)>(uf); (*u)(); delete u; return 0; } , f);- 树形父子对象管理 + 智能指针引用计数 (GObject ref/unref)?
- Gtk听起来为了blueprint做了很麻烦的设计,而且似乎无法避免,还不如Tk
- 有一种说法:C++桌面移动应用需求里,90%的指针是refcount<2的,这里说的不止是画布之上,还包含一般的日历、笔记等App的所有对象状态管理
- 也就是说Rc<RefCell>或QObject的模型非常够用。
unique_ptr(父持子)(跨节点访问)。- 当按钮 B 被主容器销毁时,连接到 B 的所有信号槽会自动断开,持有 B 的
QPointer 会自动置空。只有 1 个 Owner,但允许多个安全的 Observer。📝 完全同意你的观点:处理好那唯一一次的“所有权(Ownership)”,剩下的需求只靠“安全观察(Weak/Observer)”就足够完美覆盖了。Tkinter 和 Qt 都顺应了这种直觉
Gemini
Gemini - Qt/GTK 定时器 C++ 小抄
Created with Gemini
#post #statement 【有害的聪明】
pip 依赖解析为什么那么慢,以及uv为啥快。
> 因为 CDCL(conflict-driven clause learning),这是一种形式化验证技巧,学习冲突去剪枝。渊源来自于 PubGrub……
> https://www.bodunhu.com/blog/posts/how-sat-solver-works/
我非常讨厌聪明的技巧,因为它们对社区没有贡献。倒不如说,他们和制造这种需求的蠢人更合得来。
> "Everyone wants people they like to be right, that's why popular people are fucking dumb" -Rick Sanchez
如果你这样想计算机和CS的问题,你就会明白 Scratch、Alan Kay,还有 "Bret Victor, Human Being" 这个slogan有多大含金量了。
高深和小众不是真理,只有真理是真理。在代码的源头不意味着必须小众,MC、Flash、Scratch的世界里,你可以尝到“复杂性是甜的”(比如光影和红石支持的minigame)。 我非常怀疑只是做到一件事对【生而为人】来说的价值。
声明式就是声明式,不需要与任何 functional bullshit 捆绑。他们也并不真懂什么是纯函数。没有“重新赋值”,整体扔掉重算就是纯的咯? 他们并不懂一个赋值的影响范围和箭头函数的因果链,有多静态。 “不允许一个框的赋值变化,但每次都删掉整个屏幕重来。”
pip 依赖解析为什么那么慢,以及uv为啥快。
> 因为 CDCL(conflict-driven clause learning),这是一种形式化验证技巧,学习冲突去剪枝。渊源来自于 PubGrub……
> https://www.bodunhu.com/blog/posts/how-sat-solver-works/
链接缓存,多大点事。 pip最开始是面向非破坏性升级的,没人会说它复杂,pnpm也不会很复杂。uv直接把实现细节的画风都变成红黑树一样了。CDCL直接把画风都变了,与之相比,pnpm完全没有需要算法
复杂的算法并不是强大,仅仅是没有“GPU加速”的思考而已。简单的hash、LRU、channel、x86/arm栈模型,其实比这些树和状态机转来转去的破烂好太多,只是要系统思维
把一个明确有注意点的“递归下降”和list回退,搞成和DP一样二维N维的破烂,让我想到CS教育里对YaCC这些玩意的迷信。严谨吗?真正的严谨从来不需要思考,它不会让人脑像左手拿筷子一样无法“GPU加速”,那很蠢。
Node.js 允许版本多存,从根上规避了 Python 的难题。pnpm 看到的问题是“文件冗余”,而不是“逻辑冲突”。如果apt的依赖解析是最快的,把两个仓库的文件格式一对接,同样完美解决了当下的性能问题。反正退一万步,用户的需求是简单的,技术深奥?都砍了也不影响交互。它们最终是没有生命力的,因为不被测试。如果烂了,是因为制造依赖问题的库本身烂
如果你天生有一个反直觉的,左手拿筷子的思维方式,那当然显得IQ很高。 但其实这些人的IQ不适用于游戏、舞蹈、创造一种工具、雕塑MC的存档,他们反应不过来也没有充足的动力。
我非常讨厌聪明的技巧,因为它们对社区没有贡献。倒不如说,他们和制造这种需求的蠢人更合得来。
> "Everyone wants people they like to be right, that's why popular people are fucking dumb" -Rick Sanchez
这里的蠢不是指他们完不成uv这样我也会日用的工具,而是指【有害的聪明】 (dumb in a systemic way),过度工程。 就像一个人用十位数的密码保护3位数的资产,而这十位数,如果你足够有智慧的话,会发现它是电话号码+生日。我会像逃避瘟疫那样避免这些【十位数的代码量】。
如果你这样想计算机和CS的问题,你就会明白 Scratch、Alan Kay,还有 "Bret Victor, Human Being" 这个slogan有多大含金量了。
高深和小众不是真理,只有真理是真理。在代码的源头不意味着必须小众,MC、Flash、Scratch的世界里,你可以尝到“复杂性是甜的”(比如光影和红石支持的minigame)。 我非常怀疑只是做到一件事对【生而为人】来说的价值。
OOP之父首先是一个“会说话(Smalltalk)的”人,他的敌人是“不透明的codebase”和“添加间接性”。 很多编程者并不是一个【人】,而更像机器的外设。 ——真是一个单点故障的外设呢。
声明式就是声明式,不需要与任何 functional bullshit 捆绑。他们也并不真懂什么是纯函数。没有“重新赋值”,整体扔掉重算就是纯的咯? 他们并不懂一个赋值的影响范围和箭头函数的因果链,有多静态。 “不允许一个框的赋值变化,但每次都删掉整个屏幕重来。”
Bodunhu
How SAT Solver works | std::bodun::blog
This is a summary over the high-level design of [SAT solver](https://en.wikipedia.org/wiki/Boolean_satisfiability_problem) covered in Prof. [Dillig](https://www.cs.utexas.edu/~isil/)'s [Automated Logical Reasoning](https://www.cs.utexas.edu/~isil/cs389L/)…
❤1
Forwarded from 螺莉莉的黑板报
我没有在看尼古喵喵,但是这部剧在台湾被下架了我觉得是一个非常糟糕的文化审查。而且,上关于香烟的文化审查并不少见。比如,如果你足够老,应该记得 QQ 里面香烟表情被拿掉的新闻。如果你比较年轻的话,相信你也知道 Emoji 里面的枪被各个厂商换成水枪。这次尼古喵喵被下架更是荒谬,因为台湾已经有相对健全的内容分级制度了。
一个文化概念不应该因为你喜不喜欢,「你觉得」对别人好或者不好而消失。这些以圣人姿态钳制公共话语空间的「权威」着实令人鄙夷。
一个文化概念不应该因为你喜不喜欢,「你觉得」对别人好或者不好而消失。这些以圣人姿态钳制公共话语空间的「权威」着实令人鄙夷。
#game 奥德赛确实在任天堂ip里MOD强度较高。
右面板的九宫格为 P.xyzr Gizmo,上面是场景动态对象池(有视锥距离限制)
传统的xyz标记和传送/地图切换/TAS优化/传统的金手指功能不在话下,可实现60FPS移速不变。 🤔
右面板的九宫格为 P.xyzr Gizmo,上面是场景动态对象池(有视锥距离限制)
传统的xyz标记和传送/地图切换/TAS优化/传统的金手指功能不在话下,可实现60FPS移速不变。 🤔
duangsuse::Echo
#game 奥德赛确实在任天堂ip里MOD强度较高。 右面板的九宫格为 P.xyzr Gizmo,上面是场景动态对象池(有视锥距离限制) 传统的xyz标记和传送/地图切换/TAS优化/传统的金手指功能不在话下,可实现60FPS移速不变。 🤔
#TIL #game Switch root
https://www.youtube.com/watch?v=v3ECI513pSU
https://smoo.it/
https://github.com/Amethyst-szs/smo-lunakit
LunaKit和SMOO基于ImGui和 sead,al::PuppetActor 显然用心,达到了 PC 级游戏开发工具/内建调试引擎的水平(2024),可以zip安装,模拟器+鼠标操作
可以开飞行无伤,像F12那样悬停高亮的场景对象池,按颜色可视化敌友的碰撞判定,可即改关卡内和存档状态,实现为无混淆的 C++ hook ::exl
对象池面板,比如可搜索 Shibaken(会显示柴犬的日文名),播放出场动画,瞬移到狗身边(可惜不能距离太远)
美中不足是无法用下一次碰撞做对象池选中,也不能在鼠标xyz居中放置fav对象,甚至不能加载和生成fav。如果有,配合SMO的摄像模式应该更加有趣。全实体附身、生成附身怪物、月球重力、GUI滚轮等应该也能实现
蘑菇王国的火箭stage拼图,玩家可简单涂抹场景(Splatoon Ink)同样是深度调试功能,比CE里搜个数值强太多了。 这样,游戏里不可变的就只有操作逻辑、玩法脚本和3D资产。(听说Switch-Toolbox连角色模型都能替换)
https://github.com/Amethyst-szs/smo-lunakit/blob/stable/src/program/devgui/settings/SettingsHooks.cpp#L74
《任天堂明星大乱斗 特别版》《塞尔达传说 BotW》《赛车8》的MOD质量更是高于LunaKit,二开的赛道更多,也算是弥补了主机游戏没有联机这一块(以及部分高玩认为马里奥不够难……)
https://www.youtube.com/watch?v=v3ECI513pSU
https://smoo.it/
https://github.com/Amethyst-szs/smo-lunakit
LunaKit和SMOO基于ImGui和 sead,al::PuppetActor 显然用心,达到了 PC 级游戏开发工具/内建调试引擎的水平(2024),可以zip安装,模拟器+鼠标操作
可以开飞行无伤,像F12那样悬停高亮的场景对象池,按颜色可视化敌友的碰撞判定,可即改关卡内和存档状态,实现为无混淆的 C++ hook ::exl
对象池面板,比如可搜索 Shibaken(会显示柴犬的日文名),播放出场动画,瞬移到狗身边(可惜不能距离太远)
美中不足是无法用下一次碰撞做对象池选中,也不能在鼠标xyz居中放置fav对象,甚至不能加载和生成fav。如果有,配合SMO的摄像模式应该更加有趣。全实体附身、生成附身怪物、月球重力、GUI滚轮等应该也能实现
蘑菇王国的火箭stage拼图,玩家可简单涂抹场景(Splatoon Ink)同样是深度调试功能,比CE里搜个数值强太多了。 这样,游戏里不可变的就只有操作逻辑、玩法脚本和3D资产。(听说Switch-Toolbox连角色模型都能替换)
https://github.com/Amethyst-szs/smo-lunakit/blob/stable/src/program/devgui/settings/SettingsHooks.cpp#L74
《任天堂明星大乱斗 特别版》《塞尔达传说 BotW》《赛车8》的MOD质量更是高于LunaKit,二开的赛道更多,也算是弥补了主机游戏没有联机这一块(以及部分高玩认为马里奥不够难……)
YouTube
What if Mario Odyssey had a BRAND NEW Kingdom?
My friend @Kratzean made a CUSTOM kingdom inside of Mario Odyssey with new challenges, moons, areas, and a CRAZY boss fight at the end. Can I survive?
-------------------------------
🔗 Connect with me 🔗
🏹 Main YouTube Channel ‣ https://www.youtube.com/arrowstotle…
-------------------------------
🔗 Connect with me 🔗
🏹 Main YouTube Channel ‣ https://www.youtube.com/arrowstotle…
duangsuse::Echo
这样,游戏里不可变的就只有操作逻辑、玩法脚本和3D资产。
虽然视频中的画质比较Low-poly (不像MC,因为游戏本体都是上个世纪画质,哈哈哈)
但该有的脚本,甚至官方不会做到的设计都是PoC过可以做的。 考虑到以后AI建模的发展,或许MOD老游戏也会成为一种社区化的、有意义的创作?
可惜端游不可能有Steam创意工坊。 端游的好处是一口价,而且省心,这一点在越来越浮躁的当代真是太稀缺了 💭
但该有的脚本,甚至官方不会做到的设计都是PoC过可以做的。 考虑到以后AI建模的发展,或许MOD老游戏也会成为一种社区化的、有意义的创作?
可惜端游不可能有Steam创意工坊。 端游的好处是一口价,而且省心,这一点在越来越浮躁的当代真是太稀缺了 💭
duangsuse::Echo
#game 奥德赛确实在任天堂ip里MOD强度较高。 右面板的九宫格为 P.xyzr Gizmo,上面是场景动态对象池(有视锥距离限制) 传统的xyz标记和传送/地图切换/TAS优化/传统的金手指功能不在话下,可实现60FPS移速不变。 🤔
#asm 然后那个LunaKit还带了一个渲染管线GPresets+天空盒,以及布娃娃服装一键切换功能, 其实都是非常通用的(环境光hack/纹理替换)
至于Vulkan图层和mesh调试,可以用
然后直接跑 ~/squashfs-root/usr/bin/Ryujinx 的说
可以附加到任何 LD_PRELOAD=/lib/librenderdoc.so 的带HUD的进程
看起来可用于SDF字库破解一样。如果能联动Switch-Toolbox或许会更好?不过现代端游平台不再需要汉化什么了,随卡带都自带i18n发行……
接着 make nx 就可以交叉编译,游戏的话 raylib.com; love2d.org 都支持。建议开发完了然后移植到龙神测试?
或
nxlink -a "$SWITCH_IP" -s app.nro
== 技术栈复用 ==
hb-app.store 为声明式UI,t轴动画,
github.com/XorTroll/Goldleaf 支持弹框UI,
github.com/duangsuse/smo-lunakit ImGui构建修复版
github.com/joel16/NX-Shell ,同框架。vgedit是HBAS同框架
github.com/Ryuzaki-MrL/tetriswitch LÖVE贪吃蛇
lovebrew.org/development/gnu-debugger
至于Vulkan图层和mesh调试,可以用
~/.local/bin/ryujinx-*.AppImage --appimage-extract 然后直接跑 ~/squashfs-root/usr/bin/Ryujinx 的说
可以附加到任何 LD_PRELOAD=/lib/librenderdoc.so 的带HUD的进程
看起来可用于SDF字库破解一样。如果能联动Switch-Toolbox或许会更好?不过现代端游平台不再需要汉化什么了,随卡带都自带i18n发行……
docker pull devkitpro/devkita64
git clone --recursive https://github.com/switchbrew/nx-hbmenu.git && cd nx-hbmenu
docker run --rm -it --net=host -v "$(pwd)":/app -w /app devkitpro/devkita64 /bin/bash
接着 make nx 就可以交叉编译,游戏的话 raylib.com; love2d.org 都支持。建议开发完了然后移植到龙神测试?
cp app.nro ~/下载/app.nro; ~/squashfs-root/usr/bin/Ryujinx $_
或
nxlink -a "$SWITCH_IP" -s app.nro
== 技术栈复用 ==
hb-app.store 为声明式UI,t轴动画,
libcurl (网络), Jansson (JSON), lodepnggithub.com/XorTroll/Goldleaf 支持弹框UI,
libjpeg-turbo, libusbhsfsgithub.com/duangsuse/smo-lunakit ImGui构建修复版
github.com/joel16/NX-Shell ,同框架。vgedit是HBAS同框架
github.com/Ryuzaki-MrL/tetriswitch LÖVE贪吃蛇
lovebrew.org/development/gnu-debugger
duangsuse::Echo
但该有的脚本,甚至官方不会做到的设计都是PoC过可以做的。 考虑到以后AI建模的发展,或许MOD老游戏也会成为一种社区化的、有意义的创作?
#statement #vibe 一些游戏开发与试错工具的灵感 🎮
如果那种快速hack,比如说60FPS移速不变、飞行无伤/月球重力/第三人称镜头、可视化碰撞和关卡/区域、对象池体感选择与收藏夹放置/Splatoon Ink,可以无源码以<1day/每个卡带的成本达成,那二开在调试上就可以媲美原作了。
帧率锁和Puppet联机的问题可以说本来不该是个问题(移动计算莫名绑定fps而不是dt..),所以说很多二开在这方面超过了原版。最新的显卡可以4K但不能不锁帧实在是太操蛋了,就算一周目可以用掌机画质,二刷和直播也不可能用那种玩意吧
你可能需要一些快捷键来【切换视角】,需要一个MC式的“任务栏”和“工作台”来展示和组合fav对象池,但,这比完全割裂的两个窗口好得多,也没有精确度上的问题(创建+微调优于编辑+编辑)。
而现在的游戏引擎,只能引用计数一个asset,不能像有几条“官方TAS”/曝光率那样根据流程来优化内容。
如果要为AIGC优化的话,首先要把3D资产和音画创作从精力的中心拉下来,先玩一周目,然后慢慢替换美术。 这样的话,没有F12那样程度的理解,是做不到高效的
ps. raylibtech.itch.io/rguilayout ,NX上没人用,因为不能触发布局更新
如果太【高效】了,感知不到运行时的需求,适得其反。 软件不是一堆按钮表单而已啊……
如果那种快速hack,比如说60FPS移速不变、飞行无伤/月球重力/第三人称镜头、可视化碰撞和关卡/区域、对象池体感选择与收藏夹放置/Splatoon Ink,可以无源码以<1day/每个卡带的成本达成,那二开在调试上就可以媲美原作了。
帧率锁和Puppet联机的问题可以说本来不该是个问题(移动计算莫名绑定fps而不是dt..),所以说很多二开在这方面超过了原版。最新的显卡可以4K但不能不锁帧实在是太操蛋了,就算一周目可以用掌机画质,二刷和直播也不可能用那种玩意吧
RenderDoc联动Switch-Toolbox对于有源码的情况也是一种更好的F12调试逻辑,可惜rdc本身不重视内容寻址(而更操心sdf管线),如果从画面直接指向资源文件做 Hot Reload 的话,结合对象池的游玩中 Live Edit,无论有没有源码也会非常容易修好瑕疵呢。
不是你去查资产列表,去拖放,而是你在 main() 检查点开始往前走,看到有哪些资产或游戏操作以什么样的频率出现,就像 Bret Victor 的“跳跃轨迹”那样。不是像 strings xxx.so 或翻译工具,而是 html[ContentEditable] +右键自动翻译那样。
不是在grep,是真正的game,只是多视角/多if一些而已。 就像Mario先一周目把✨和🗳放好,然后在HUD里戴上【紫帽子】,决定哪些方块隐藏,哪些是支线剧情,哪个NPC讲剧本成稿的哪几句更好。这是一个游戏引擎的元编程。
在美术上,可能和MC和《我的三体》那样,是从【方方正正】逐步球精的,除了场景框架全都边玩边做的,更适合vibe。不能玩的代码,必须【投影编辑】般足够方便——其实这不难做,HTML a节点和Ctrl+K就是这样
这确实非常复杂,但如果你设计好了(完全可以对卡比/Mario主流系列复用),这些“编程语言”会像Ctrl+S检查点和读档、地址栏和a节点、JSON持久化、F5刷新、颜色选择器那样直观且一致,而不需要什么IDE。
你可能需要一些快捷键来【切换视角】,需要一个MC式的“任务栏”和“工作台”来展示和组合fav对象池,但,这比完全割裂的两个窗口好得多,也没有精确度上的问题(创建+微调优于编辑+编辑)。
而现在的游戏引擎,只能引用计数一个asset,不能像有几条“官方TAS”/曝光率那样根据流程来优化内容。
如果要为AIGC优化的话,首先要把3D资产和音画创作从精力的中心拉下来,先玩一周目,然后慢慢替换美术。 这样的话,没有F12那样程度的理解,是做不到高效的
ps. raylibtech.itch.io/rguilayout ,NX上没人用,因为不能触发布局更新
如果太【高效】了,感知不到运行时的需求,适得其反。 软件不是一堆按钮表单而已啊……
duangsuse::Echo
但该有的脚本,甚至官方不会做到的设计都是PoC过可以做的。
https://www.bilibili.com/video/BV15VEa6bE7Q/
这个Mod二开(原BOSS脚本换皮+敌人混搭)工程量就挺大的,虽然主线比较单一,茶杯头的恶魔、月亮,还有酷霸Jr、马里奥赛车都有。
其中就用到了上文的GPresets和录制回放(与黑暗路易吉赛车),值得注意的是,自月亮之后的BOSS最终效果都不错,不是纯粹堆难度。为了弥补3D没有动画的不足,在对话上做了很多
1063万次观看 2024
😓 有四五个MOD的视频,没有公开下载也没有开源。开源的没有能玩的,连截图都没有。
视频游戏社区经典的: 效果能看^工程开源 XOR命题。LunaKit和manim这样的是究极少数,至少资源文件有credit,但没有地图。
https://github.com/Amethyst-szs/MoonFlow
https://github.com/Amethyst-szs/yoshi-star-kingdom
https://github.com/octember8/SMO-Kingdom-18
如果你想从二开练习游戏设计,即便是SMO这种自由度可能也不合适,因为只有源码,而成品有结果无程序……
我开始好奇, #game #dev 除了MC的各种兴趣小组以外,是否没有能看的开源成品呢?
相比于其他可编程领域,游戏领域似乎处于GNU之前的“黑暗时期”,只比RISCV的领域好一点点。
这个Mod二开(原BOSS脚本换皮+敌人混搭)工程量就挺大的,虽然主线比较单一,茶杯头的恶魔、月亮,还有酷霸Jr、马里奥赛车都有。
其中就用到了上文的GPresets和录制回放(与黑暗路易吉赛车),值得注意的是,自月亮之后的BOSS最终效果都不错,不是纯粹堆难度。为了弥补3D没有动画的不足,在对话上做了很多
@massayyy
3年前
Guys this took me over a month to make... hope you enjoyed it :)
King boo:cap kingdom
Demon of cuphead:sand kingdom
Shadow Luigi:metro kingdom
Bowser JR:bowser kingdom
Hilda berg:sea kingdom
Baldi:lost kingdom
Cagney clavel:tree kingdom
Pac man:cascade kingdom
Dr.Kharl(cuphead):lake kingdom
Von bon(cuphead):food kingdom
Bouldergeis:ruin kingdom
King K Rool:moon kingdom
1063万次观看 2024
😓 有四五个MOD的视频,没有公开下载也没有开源。开源的没有能玩的,连截图都没有。
视频游戏社区经典的: 效果能看^工程开源 XOR命题。LunaKit和manim这样的是究极少数,至少资源文件有credit,但没有地图。
https://github.com/Amethyst-szs/MoonFlow
https://github.com/Amethyst-szs/yoshi-star-kingdom
https://github.com/octember8/SMO-Kingdom-18
如果你想从二开练习游戏设计,即便是SMO这种自由度可能也不合适,因为只有源码,而成品有结果无程序……
我开始好奇, #game #dev 除了MC的各种兴趣小组以外,是否没有能看的开源成品呢?
相比于其他可编程领域,游戏领域似乎处于GNU之前的“黑暗时期”,只比RISCV的领域好一点点。
duangsuse::Echo
相比于其他可编程领域,游戏领域似乎处于GNU之前的“黑暗时期”,只比RISCV的领域好一点点。
https://kbhgames.com/game/friday-night-funkin-pibby-apocalypse
这样依赖摸索和杂七杂八工具的领域,还真是“不受AI影响”呢(又或者是最受ComfyUI开源影响), 你上次能看到黑盒,还是在医疗和微电子领域。
A面:效果能看,但工程不开源(如 massayyy 的视频)
B面:工程开源,但效果不能看(如各种 GitHub 链接,好像和DMCA没关系)
《Friday Night Funkin'》的原版游戏就是基于 MIT 许可证 开源的。它的引擎 (HaxeFlixel) 也是开源的。
讽刺的是,在这方面AIGC反而更可能超过人类的吧。而在开源世界,codex其实不能端到端的解决每个repo。
#game 一旦涉及到 media tag 或3D模型,就连二开都不开源,也真是种诅咒了。
你几乎找不到真正的公共素材,无论视频特效or游戏MOD,哪怕只是鬼畜或Vocaloid翻调,只要不是开源世界的,全部是【完成度惊人的闭门造车】,如同师傅收徒那样的隐形知识。
这样依赖摸索和杂七杂八工具的领域,还真是“不受AI影响”呢(又或者是最受ComfyUI开源影响), 你上次能看到黑盒,还是在医疗和微电子领域。
A面:效果能看,但工程不开源(如 massayyy 的视频)
B面:工程开源,但效果不能看(如各种 GitHub 链接,好像和DMCA没关系)
《Friday Night Funkin'》的原版游戏就是基于 MIT 许可证 开源的。它的引擎 (HaxeFlixel) 也是开源的。
工程文件公开可用的【音画成品】,哪怕忽视流行度这一点来说,也没有一个“MediaHub”来供人学习。Sketchfab、Blendswap可以用,但midi和乐谱、vfx、绑骨又少很多了,Live2D那种程度的协作,都可以说是【前无古人】了
讽刺的是,在这方面AIGC反而更可能超过人类的吧。而在开源世界,codex其实不能端到端的解决每个repo。
KBH Games
Friday Night Funkin’ Pibby: Apocalypse Online
Pibby Apocalypse is a Friday Night Funkin mod where the Pibby virus had invaded the Amazing World of Gumball and started to corrupted all the...
duangsuse::Echo
相比于其他可编程领域,游戏领域似乎处于GNU之前的“黑暗时期”,只比RISCV的领域好一点点。
#statement #game 有些人认为AI “最危害”程序员,但是祸比祸看来,还是画家建模师的知识壁垒“受害”更多吧?
全他妈是教程,作者能上、有货写毛的教程? 直接分享导出能看的模板啊! 所以我认为,AIGC 是大好事。 👉 就像那种抗癌药,编程世界得到的,其实比失去的多太多。
如果你用编程世界的Workflow来衡量,就会发现CAD、游戏、音画创作,复用率太低了,连个demo都没有。哪怕是开源世界,也没法实现“下软件送素材库”。
🐧 🚘 STK这个大众游戏在Linux世界里算是前三(工程量排第一),但它与现实世界相比,算得了什么呢?
OpenRA (Open Red Alert)、OpenMW、仙剑奇侠传,这些开源移植都很老了,不能作为学生的范本
🎛 信号处理领域真是太重要了,虽然他们的编程水平一般(API简单但冗余也多,比如Shadertoy的部分页),但是数理效果很好,对创作者就起到大用途。
而且曾经只写代码是不能当主创的,现代哪怕只开发一个创作工具,也能参加共同投稿或独立游戏。 做游戏不会DSP技巧可不行
全他妈是教程,作者能上、有货写毛的教程? 直接分享导出能看的模板啊! 所以我认为,AIGC 是大好事。 👉 就像那种抗癌药,编程世界得到的,其实比失去的多太多。
你在学校里是得不到10万播放的技术力的,那些是“天才”,但现在AI已经很好了。(虽然应用的只是少量小模型,webui程度的应用很少)
如果你用编程世界的Workflow来衡量,就会发现CAD、游戏、音画创作,复用率太低了,连个demo都没有。哪怕是开源世界,也没法实现“下软件送素材库”。
🐧 🚘 STK这个大众游戏在Linux世界里算是前三(工程量排第一),但它与现实世界相比,算得了什么呢?
OpenRA (Open Red Alert)、OpenMW、仙剑奇侠传,这些开源移植都很老了,不能作为学生的范本
🎛 信号处理领域真是太重要了,虽然他们的编程水平一般(API简单但冗余也多,比如Shadertoy的部分页),但是数理效果很好,对创作者就起到大用途。
而且曾经只写代码是不能当主创的,现代哪怕只开发一个创作工具,也能参加共同投稿或独立游戏。 做游戏不会DSP技巧可不行
AIGC一来,状况就彻底颠倒了: 反而是玩法、脚本、灵感占主导地位,创造者就不那么受闭门造车的【隐形知识】威胁了。
这样发展下去的话,说不定真的能减少整个因特网的rework。
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])其实可以但是魔法。在选择上无疑是失败的,没分清首要问题