Forwarded from yihong0618 和朋友们的频道 (伊)
V2EX
黑马程序员-传智播客要退市了 - V2EX
程序员 - @q474818917 - 整个行业都是这些搅屎棍给搅的
Forwarded from 及时吃药 (ζγαπιδε 🫠)
https://www.youtube.com/watch?v=nsj3gTGh9K0
想到了 https://en.wikipedia.org/wiki/Tupper%27s_self-referential_formula
#TIL 原来 https://learn.microsoft.com/en-us/typography/cleartype/ 还利用了 RGB sub-pixel,很有意思的知识
想到了 https://en.wikipedia.org/wiki/Tupper%27s_self-referential_formula
#TIL 原来 https://learn.microsoft.com/en-us/typography/cleartype/ 还利用了 RGB sub-pixel,很有意思的知识
YouTube
These pixels count themselves.
Go to https://surfshark.com/standupmaths or use code standupmaths at checkout to get 4 extra months of Surfshark VPN!
Try out Christian’s self-referential pixel generator here: https://matt-parker-count-black-pixels.think.somethingorotherwhatever.com/index.html…
Try out Christian’s self-referential pixel generator here: https://matt-parker-count-black-pixels.think.somethingorotherwhatever.com/index.html…
Forwarded from 苹果测试工程师的日常 (IceCode New)
#TIL
https://fixupx.com/t3tra_x/status/1998174832480186435
很有趣的一个小项目,给自然语言写的 LSP。这个主意或许不算新鲜,但是在日语上实现这样的 LSP,感觉难度要比其他很多语言都高
https://fixupx.com/t3tra_x/status/1998174832480186435
很有趣的一个小项目,给自然语言写的 LSP。这个主意或许不算新鲜,但是在日语上实现这样的 LSP,感觉难度要比其他很多语言都高
🧵 Thread • FixupX
t3tra # type: ignore (@t3tra_x)
作ったは良いもののずっと公開を渋っていた自然言語LSPなのですが、やっと作りたかった機能とか一通り作れたので公開します...!!
基本的な文法チェックと形態素解析によるセマンティックハイライト、名詞の検索や他言語LSPとの共存が可能です〜〜
Quoting t3tra # type: ignore (@t3tra_x)
他言語の言語サーバーと共存できるようになりました<3
ありがとうtree-sitter
基本的な文法チェックと形態素解析によるセマンティックハイライト、名詞の検索や他言語LSPとの共存が可能です〜〜
Quoting t3tra # type: ignore (@t3tra_x)
他言語の言語サーバーと共存できるようになりました<3
ありがとうtree-sitter
#science #TIL 🕐
光速的真正测度不是自洽的m/s,而是铯等原子自己的光电频率。假设尺度不变,高频率能触及更多因果、可能性,这本身就是对旧因果律的违背。
而量子力学,本身说法有很大问题,费曼吐槽过波粒二象性的问题
位置不确定性是一种形式,因为波没有xyz属性。xyzt的时空观里,就找不出一个字母是对的。xyzXYZ(位置动量)可能对了一半。
那种说「光速不可超越」或「薛定谔的猫被证实」的科普,并没有理解相对论和费曼。GR是告诉你时轴“需要换汇”,不是说你一眼能看到【光年外的过去】。不对!光年外的时间还没流动!
如果有个客观光速,在审判两个观察者的距离,它就编码不了“局部因果律”。 光速不是客观存在,只是被命名了的幻觉,而它的名字:是1个十进制数。
数字论证让人产生了光有「定速」的幻觉,但这就像烙印下汇率,或拿尺子和天平丈量光一样很蠢。刻舟求剑。不可超越的是「存在波段」而不是距离和时间。
如果说超越光速,就是让元素周期表(铯)以二倍频运动或旋转,宇宙一直在这么做。块宇宙一直在扩大。
量子世界的天平、墨斗垂线,这些必然超过xyzt的测量工具还没有被发明出来。
观测交互本身就是“以球攻球”,而概率波不是牛顿。那种“波粒二进制”的说法非常反物理学,好像多做几次双缝干涉实验就能破解上帝代码。
说什么“不能跳过相邻的点交互”的理论,还不在磁铁和频域上。引力更是无法正负屏蔽的万能永磁体。
这不就是前沿物理里的“实数无限可分”? 😅
可如果无限可分,那 t0<t1 和传递性还【同时存在】吗? 2∞>1∞ ?这正是复数旋转的问题。经典、量子也就是二次型vs复数二次型的区别。 ☯️ ⚛️
我不觉得超光速是会被爱因斯坦的神「开罚单」的,因为时间本身就是熵增幻觉,原子是不会读秒的。
你不可以穿越,并测度出当下离「奇点」有多少亿年。时间根本不是客观存在,只是周期、时长各有比例。
光速的真正测度不是自洽的m/s,而是铯等原子自己的光电频率。假设尺度不变,高频率能触及更多因果、可能性,这本身就是对旧因果律的违背。
而量子力学,本身说法有很大问题,费曼吐槽过波粒二象性的问题
位置不确定性是一种形式,因为波没有xyz属性。xyzt的时空观里,就找不出一个字母是对的。xyzXYZ(位置动量)可能对了一半。
那种说「光速不可超越」或「薛定谔的猫被证实」的科普,并没有理解相对论和费曼。GR是告诉你时轴“需要换汇”,不是说你一眼能看到【光年外的过去】。不对!光年外的时间还没流动!
如果有个客观光速,在审判两个观察者的距离,它就编码不了“局部因果律”。 光速不是客观存在,只是被命名了的幻觉,而它的名字:是1个十进制数。
数字论证让人产生了光有「定速」的幻觉,但这就像烙印下汇率,或拿尺子和天平丈量光一样很蠢。刻舟求剑。不可超越的是「存在波段」而不是距离和时间。
如果说超越光速,就是让元素周期表(铯)以二倍频运动或旋转,宇宙一直在这么做。块宇宙一直在扩大。
涌现与耗散,是一切(焓的)物质和光从低频率(长路径)流向高频率(某一维度时间静止, A=B=C)并提供火用的熵因果律。
> 从低频率(最长路径、弥散、简单)流向高频率(路径相消、集中、复杂)是宇宙的真理,就像炽天使。
量子世界的天平、墨斗垂线,这些必然超过xyzt的测量工具还没有被发明出来。
观测交互本身就是“以球攻球”,而概率波不是牛顿。那种“波粒二进制”的说法非常反物理学,好像多做几次双缝干涉实验就能破解上帝代码。
说什么“不能跳过相邻的点交互”的理论,还不在磁铁和频域上。引力更是无法正负屏蔽的万能永磁体。
这不就是前沿物理里的“实数无限可分”? 😅
可如果无限可分,那 t0<t1 和传递性还【同时存在】吗? 2∞>1∞ ?这正是复数旋转的问题。经典、量子也就是二次型vs复数二次型的区别。 ☯️ ⚛️
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
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…
#ce https://t.me/im_RORIRI/34611
https://try.haxe.org/#15fdD633
https://try.haxe.org/#Add701b8 🤔生成了俩傻逼Haxe入门
感觉这个在线编辑功能不咋样
#TIL -gc boehm 扫描程序的堆和栈,寻找看起来像指针的值,这能奏效?? dlopen即可用的级别?
我们自己搞的那套 Haxe Reflaxe 插件可以直接把 Haxe 的子集转换成 Dart Kotlin Rust TypeScript Swift 没有 FFI 税,Macro 的魔法 ˊ_>ˋ
目前已经做了数组迭代函数自动展开成 for 循环,也是很好玩的特性。
我准备做的阴间事情:用 Haxe 做 JS 下的 0 GC 优化。大的数据全都用二进制存储,提取数据全都用函数去 DataArray 里面查表,数值取出来往下传参的全用 Macro 换成 Data Chunk 和起始指针,只有出了编译器系统才实例化成正经 Object,在优化范围内流转全都不创建 Object,编译器会根据不同上下文直接给函数展开成多态。可以说是一种非常邪门的优化了,这东西主要是为了治单一信源下大量小 object 光速创建造成的 GC 压力,不创建就没有 GC。这都是 Macro 的奇迹才能做出来的东西 ˊ_>ˋ
https://try.haxe.org/#15fdD633
https://try.haxe.org/#Add701b8 🤔生成了俩傻逼Haxe入门
感觉这个在线编辑功能不咋样
#TIL -gc boehm 扫描程序的堆和栈,寻找看起来像指针的值,这能奏效?? dlopen即可用的级别?
简直像直接为C支持了深拷贝一样,虽然通过mmap匹配的方法,指针对齐后有确定特征,但这也太免费了
你完全不需要知道client用了什么对象树,不需要支持Map,List, Cell vars,甚至连栈都不一定需要分出来? 😨
当 autofree 搞不定时(比如复杂的对象图、循环引用):开发者可以轻松切换到 -gc boehm,程序立刻就能在“大部分情况”下正确工作,就像py的 import gc ,就像valgrind和perf,免费获得了无源码的GC……
Telegram
螺莉莉的黑板报
我准备做的阴间事情:用 Haxe 做 JS 下的 0 GC 优化。大的数据全都用二进制存储,提取数据全都用函数去 DataArray 里面查表,数值取出来往下传参的全用 Macro 换成 Data Chunk 和起始指针,只有出了编译器系统才实例化成正经 Object,在优化范围内流转全都不创建 Object,编译器会根据不同上下文直接给函数展开成多态。可以说是一种非常邪门的优化了,这东西主要是为了治单一信源下大量小 object 光速创建造成的 GC 压力,不创建就没有 GC。这都是 Macro 的奇迹才能做出来的东西…
#algor #TIL 更适合文本的压缩格式
原文:https://github.com/iczelia/bzip3
阅读时间:4 分钟
话说谁知道 mp4格式, h264算法 不是一个东西的事情(不过mp4依赖ts切片 不断点续传 可能有体会)
#ai 全语言分词器 https://fixupx.com/shuding/status/2097348783415939541?s=20
GPU比吐出htm还快点 https://github.com/huozhi/sugar-high/blob/main/packages/sugar-high/lib/lang/c.js
说到最后,git, casync, zstd “自注意训练” 还是比结构化方法效果好。 信号处理就是比古法编程强啊,诶。。
这就像CE里改个数值如此容易, git clone 后改个C字面量反而困难一样。虽然不是一个结构,但CE可以转外挂金手指,是等效的flow 😨
原文:https://github.com/iczelia/bzip3
阅读时间:4 分钟
话说谁知道 mp4格式, h264算法 不是一个东西的事情(不过mp4依赖ts切片 不断点续传 可能有体会)
既然为文本和源码优化,为什么不做语法字典和json转码等等,而用字节级算法
#ai 全语言分词器 https://fixupx.com/shuding/status/2097348783415939541?s=20
GPU比吐出htm还快点 https://github.com/huozhi/sugar-high/blob/main/packages/sugar-high/lib/lang/c.js
说到最后,git, casync, zstd “自注意训练” 还是比结构化方法效果好。 信号处理就是比古法编程强啊,诶。。
这就像CE里改个数值如此容易, git clone 后改个C字面量反而困难一样。虽然不是一个结构,但CE可以转外挂金手指,是等效的flow 😨
duangsuse::Echo
#bilibili 也是感受到【编程圈】和各种创作者差异了。 同样是知识点,内心的图谱就不一样。 🎬AI动画 = 单元剧 | .. 单元剧 = 灵感和IP+脚本+视频+配乐配音 视频 = (分镜)* 分镜 = 首尾图 + 一句话prompt 首尾图 = :手动图层编辑(VLM, :抠图(角色集), 场景集) # 工具库 # VLM = (:国内IP: 即梦|海螺AI) | (:国外IP: GPT|Midj) 配乐配音 = FineVoice|人工配音 学了元编程和 #PLT 后,认识世界的方式都自顶向下了.…
#TIL 编程对思维的侵入性
比起纠结视频是 :repeat(分镜) 还是 :fold(分镜),以及有无导演细胞,我最终想说的其实是 ——不能改变你观念的编程语言,不值得学。
流水线或许是最大众的思维方法,而LISP对我已经是种【超出屏幕】的,理解事物的预设
可能有人会觉得Friedman的The Little系列中【代码冲咖啡】的示范是故意设计的风格,但他完全可能已经被植入了这种思维方式。
这种语言很难被「学习」,只能被「感染」,圆括号并不是 “长那个样子的语言”,而易语言则是典型的【只有样子】。计算机科学无关计算机,正如天文学不在望远镜里。
🤔 【学会】不代表你看见任何构思都会变成散乱的 (()),而是提供了一种庖丁解牛的插件。LISP擅长理解1输出->1输入的DAG树状图,比如文件夹,所以它是一个很好的、人类直觉的patch。 这就像许多程序员已经认为 camelCase == "camel case"
当我开始写时,我自动采用了所学过最为合适的方法,而这与原作者也不一样。这种感觉非常独特,同样是写思维导图,不同的人也会有不同的构造。
比起纠结视频是 :repeat(分镜) 还是 :fold(分镜),以及有无导演细胞,我最终想说的其实是 ——不能改变你观念的编程语言,不值得学。
流水线或许是最大众的思维方法,而LISP对我已经是种【超出屏幕】的,理解事物的预设
可能有人会觉得Friedman的The Little系列中【代码冲咖啡】的示范是故意设计的风格,但他完全可能已经被植入了这种思维方式。
☕️当他拿出一袋咖啡豆,心里或许真的在想一个蕊括深的 '((食)谱) 。代码慢慢不再是思维游戏,而是世界观
这种语言很难被「学习」,只能被「感染」,圆括号并不是 “长那个样子的语言”,而易语言则是典型的【只有样子】。计算机科学无关计算机,正如天文学不在望远镜里。
🤔 【学会】不代表你看见任何构思都会变成散乱的 (()),而是提供了一种庖丁解牛的插件。LISP擅长理解1输出->1输入的DAG树状图,比如文件夹,所以它是一个很好的、人类直觉的patch。 这就像许多程序员已经认为 camelCase == "camel case"
这是在AIGC外表下,人类编程者的隐形知识。当你习惯时,你直觉上就不同于外行
不需要以极高的频率反问LLM “这里怎么了” 或干脆见好就收了,因为【默认模式】已经不太可能撞车
当我开始写时,我自动采用了所学过最为合适的方法,而这与原作者也不一样。这种感觉非常独特,同样是写思维导图,不同的人也会有不同的构造。
Forwarded from duangsuse
#bash #TIL
错误被发现、介入,这几个小时的冗余OS资源,是必须有弹性的,这也是为何bitrotten和rootkit这样的攻击方式如此强大。 这也反映出软件的默认设置,对需求方面的无知。
<<
前辈:rm /var/reserved-space
前辈:配系统就做了 fallocate -l 10G /var/reserved-space
>>
听起来非常脏hack
我的意思是,为什么tmpfs需要磁盘空间,为什么恢复工具需要硬盘
这太荒谬了,日志是aop行为
- 如果需要audit,必须有一键开关容许降级,而不是修改side行为。fallocate 空间应该是sd自带的,而不是经验
- Linux 的 ext2/3/4 文件系统在格式化时,默认会把 5% 的空间划为“仅限 root 用户使用”的预留块(Reserved blocks)。
理论上,当普通用户把磁盘写满到 100% 时,root 用户还能靠这剩下的 5% 登录并删文件。这个机制不适合服务器,所以被关闭了。 systemd-journald 又没有做/dev/full容错
错误被发现、介入,这几个小时的冗余OS资源,是必须有弹性的,这也是为何bitrotten和rootkit这样的攻击方式如此强大。 这也反映出软件的默认设置,对需求方面的无知。
<<
前辈:rm /var/reserved-space
前辈:配系统就做了 fallocate -l 10G /var/reserved-space
>>
听起来非常脏hack
我的意思是,为什么tmpfs需要磁盘空间,为什么恢复工具需要硬盘
这太荒谬了,日志是aop行为
- 如果需要audit,必须有一键开关容许降级,而不是修改side行为。fallocate 空间应该是sd自带的,而不是经验
- Linux 的 ext2/3/4 文件系统在格式化时,默认会把 5% 的空间划为“仅限 root 用户使用”的预留块(Reserved blocks)。
理论上,当普通用户把磁盘写满到 100% 时,root 用户还能靠这剩下的 5% 登录并删文件。这个机制不适合服务器,所以被关闭了。 systemd-journald 又没有做/dev/full容错
duangsuse::Echo
把一个[(author,str),]绑定给curl ,以前这个 (import rand).pick 作为2hrs新手任务非常的有趣
#TIL #statement 小板凳——故事时间
那个时候,也学Ruby后端做个str blog,还是用swapfile模式,换入换出到./db.json,从curl事件改变 GET / 的渲染。
今天的AI也大量使用 [].map{}.join(''),可以说从初心回到初心了。 同样的成品,这些最初的踩坑,大概就足以决定我和PHPer走的是不同道路,他们可能更业务,我既理想化、原理化,也vibe。
就像在今天,我会把任何框架的 POST / 路由认成curl事件,而把服务端理解为一个生成json的活进程,而曾经,MVC都是不同的东西,XML和CREATE TABLE也不是数据。也可以说后端已经是某种对等客户端,这些藏在我的心智模型里,就像Promise().then 取代尾参回调或Docker取代pm2那样不可退转
当年不是这样。那时URL模板是圣旨,json里有个{msg:''}或{status}是框架选型,Mapper.xml 是白象,JWT是诡异的密码学“登录密码”,C/S里每个端都是新东西,就像安卓的View绑定八股文。
今天已经不是那样了,JWT和sql(t"select {1}") 都是【小程序】,回看曾经我写不出的代码,发现它们还不如我的认知。
第一个上线的是 MinBase64.apk ,之后九年却销声匿迹,其实却开始做了 hostsgen.yml “反IP污染项目” 的声明式codegen,之后的GeekSpec,甚至于真正有独创性的 uvx tkgui; db.htm .. SQL语法糖 也一脉相承
之后平稳时期也做过 uvx hachiko-bapu S/A键打轴扒谱工具、WebExt-LittleDict 试验Trie树 可给日语歌注音、curses贪吃蛇(9个版本手搓单文件)、ArgParser.kt 、ParserKt/单表达式calc(5门语言写过9版.. 最后剩js)
AxmlReader的重构(学会了IDEA的F12), ./extract_subtitles.py 的内存峰值优化(初次验证了信号处理基础),失败的 TreeToolbox.apk (只做了一屏类似 confetti 的打字机动画)
对我影响最大的是至今足足收获1star 的 https://github.com/duangsuse-valid-projects/Promise-Java
闲下来也会做些无意义的小脚本,比如 xy.htm 函数图计算器(今天让AI搓的功能更多),高级计算器UI和 Coding猴语言的for-switch实现,用js渲染sdf的vec2~4库和midi播放,3语言写了4个版本的png2ASCII 或opencv/中文字符版本……
绝大部分,我写过的…… 项目? 不会超过1个页面,1条subcommand,次年维护率为0% ,但是我仍然相信我生而适合做《软件工艺》
—
而在许多事情之前…… 大概是B站开始无限滚动前几年吧,我甚至无法对这种状态做有理有据的批判(可能嫌star<10,或行数太考究,但也说不出【单页质量】【可探索性】【次年维护率】【集成进了谁】这些一箩筐的证据)
现在我确信:比起【没有做到】,我更在乎代码段和组织的难度能不能【恰如其分】,就像最终用起来的【直觉主义】那样。短而不凡,长而不乱,我不相信这是不可达成的默认模式。
总之,对我在乎的code project,我的EGO当然很大。不同人眼里有不同的天才,而相对的,“最伟大”的独裁者们被历史遗忘,毫不含糊其辞的牛顿ball.xyz却为人称道。
那个时候,也学Ruby后端做个str blog,还是用swapfile模式,换入换出到./db.json,从curl事件改变 GET / 的渲染。
今天的AI也大量使用 [].map{}.join(''),可以说从初心回到初心了。 同样的成品,这些最初的踩坑,大概就足以决定我和PHPer走的是不同道路,他们可能更业务,我既理想化、原理化,也vibe。
即便在初学时,这样的impl也是次日抛,没有像今天可以加上.md渲染和SSG/OG/CSS模板,效仿当年typecho
就像在今天,我会把任何框架的 POST / 路由认成curl事件,而把服务端理解为一个生成json的活进程,而曾经,MVC都是不同的东西,XML和CREATE TABLE也不是数据。也可以说后端已经是某种对等客户端,这些藏在我的心智模型里,就像Promise().then 取代尾参回调或Docker取代pm2那样不可退转
当年不是这样。那时URL模板是圣旨,json里有个{msg:''}或{status}是框架选型,Mapper.xml 是白象,JWT是诡异的密码学“登录密码”,C/S里每个端都是新东西,就像安卓的View绑定八股文。
今天已经不是那样了,JWT和sql(t"select {1}") 都是【小程序】,回看曾经我写不出的代码,发现它们还不如我的认知。
— 🦄
2017最开始学编程时,是从geek平缓改变的,GH号已经有两年空窗期了。 用cowsay “vibe”了纯选项文字游戏(那时还没有zenity风格),也用dnSpy把两条语句复制来去,调开了管理员面板,后面又从今天已死的AIDE入了java,但还不明白 mContext 是啥,以为print、cout和this.mXXX都是【语法】。最记不住的是 for(int i=0; i..; i++) 和里边偶尔的 list.add()
那时候也学 “算法”。 括号配对、字符串diff、dfs走迷宫、并查集,在OI鄙视链的底层, 像学钢琴一样痛苦的背模式、等着编译、红波浪、面向除错编程…… 渴望着【瞪眼法】能比同龄人稍稍优秀一点点,却经常连类型检查或初次传参都被pass掉
那时候最恨的就是try{}不断卡编译,分号卡编辑和编译,恨开源程序跑不起来,make到处报错;最喜欢的是makepkg,零成本体验GH直出的自搭软件,不会玩不了。 那时不知道为什么要有class和构造器赋值,也不想写 int xx=(int)1 ,现在居然也一样。
那时候用Vim只知道 :wq ,后来CLI只用nano,ssh直接vscode, 现在已经给Neovim写了gtk/qml KWin内嵌窗口+mold热重载的插件。但是仍然讨厌 :wq ,都是用CtrlS和q
第一个上线的是 MinBase64.apk ,之后九年却销声匿迹,其实却开始做了 hostsgen.yml “反IP污染项目” 的声明式codegen,之后的GeekSpec,甚至于真正有独创性的 uvx tkgui; db.htm .. SQL语法糖 也一脉相承
之后平稳时期也做过 uvx hachiko-bapu S/A键打轴扒谱工具、WebExt-LittleDict 试验Trie树 可给日语歌注音、curses贪吃蛇(9个版本手搓单文件)、ArgParser.kt 、ParserKt/单表达式calc(5门语言写过9版.. 最后剩js)
AxmlReader的重构(学会了IDEA的F12), ./extract_subtitles.py 的内存峰值优化(初次验证了信号处理基础),失败的 TreeToolbox.apk (只做了一屏类似 confetti 的打字机动画)
对我影响最大的是至今足足收获1star 的 https://github.com/duangsuse-valid-projects/Promise-Java
闲下来也会做些无意义的小脚本,比如 xy.htm 函数图计算器(今天让AI搓的功能更多),高级计算器UI和 Coding猴语言的for-switch实现,用js渲染sdf的vec2~4库和midi播放,3语言写了4个版本的png2ASCII 或opencv/中文字符版本……
绝大部分,我写过的…… 项目? 不会超过1个页面,1条subcommand,次年维护率为0% ,但是我仍然相信我生而适合做《软件工艺》
—
而在许多事情之前…… 大概是B站开始无限滚动前几年吧,我甚至无法对这种状态做有理有据的批判(可能嫌star<10,或行数太考究,但也说不出【单页质量】【可探索性】【次年维护率】【集成进了谁】这些一箩筐的证据)
就像那句,“除了冯·诺依曼,所有人都在梦游。” 比如我
现在我确信:比起【没有做到】,我更在乎代码段和组织的难度能不能【恰如其分】,就像最终用起来的【直觉主义】那样。短而不凡,长而不乱,我不相信这是不可达成的默认模式。
总之,对我在乎的code project,我的EGO当然很大。不同人眼里有不同的天才,而相对的,“最伟大”的独裁者们被历史遗忘,毫不含糊其辞的牛顿ball.xyz却为人称道。
无论会不会【成功】,我总是“父亲节”上最好的godaddy,而且丝毫不担心IQ不够或被【抢】了点子,或许这就是工匠精神吧。
或许我期待这样的事情因我而发生: 就像js突然到处都是useState(jsonLit),或css骤然变成 class="w-[20px]" 的形状,或到处都支持CommonMarks输入,在某年以后,就那样了。 当然,不要这样明确到有点傻的特征,也没必要像Vue之父那样成功,反正卖课的也能更加【成功】呗。
如果说《圣经》所指的Talent,是说每个人都如被托付了一种task的Agent,我想我要创造的,会是这样不稀奇但有用的【存在】