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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): a19a0b
Download Telegram
#好物 #life 乞丐价USB投影仪📱🎥
可以配合蓝牙键鼠(22包邮)把手机当Chromebook用

首先是我已购的安卓 康佳C1(500, 清仓价99不包邮👍),实际亮度约150流明,支持电动对焦和四点梯形校正,仅有1USB,TF口和遥控器,面包机大小 有风扇音。在白天使用最高需1200流明

特别推荐360度云台 水杯大小的 hy300pro(211包邮) 同样720p亮度160,但配置1G+8G 支持蓝牙WIFI 各种接口齐全, Android TV 11
HY300(186包邮👍, 便宜于PLUS卡:https://qr.1688.com/s/KpViS5sJ CZ3768),均匀度和同距离宽度更差5%
2024跨境热销Y300高清投影仪办公家用卧室便携式智能投屏投影】复制¥0hRWaIj645tam¥
https://www.youtube.com/watch?v=sHfW5zX3BVg
https://m.youtube.com/watch?v=xgZARr3WSEY&t=587s

主板:全志 H713@1.5GHz(99包邮), 出口转内销名"Projector" 山寨自:Samsung Freestyle
#embed
http://www.yxfzedu.com/article/7886
https://gadgetversus.com/processor/allwinner-h618-vs-allwinner-h6/
高清投影榜一 hy320(388包邮), 升级1080p亮度300 黑色外壳
复制¥NrQP0Ov00d0aw¥

最后是众多价格虚低淘宝店发的yg300(62包邮, 随机发货的店能低到54混批),支持手机电脑tf卡投屏 320x240
淘宝目前卖的较多的无品牌(M站 安卓9.0)在200左右,可以确定成本<100 ,各种吃拿卡要骗人买礼包价
图3为yt200(74不包邮),它的纵分辨率更低但吃充电宝更慢

🥰亲们可以在1688自行搜索购买,3款均为上榜产品,但请使用识图比价
#os #embed #learn http://www.bilibili.com/video/BV1JM4m1U71z

总结:os就是对cpu,mem的分时复用,然后支持ip,io,fs
用过嵌入式都知道dts设备树
usb2,iic,uart有D+D-,sDA sCLK,tx rx 二线传输数据,spi是 di do cl cs 四线
vga 有RGB HVg六线,这些都叫io。 linux用/dev/mouse0 这样的已解析数据作为接口,但更简单的内核上,直接用函数也是可行的

然而,为何有syscall这种“RPC手段”,为何非得把对象opaque type(inline class)化为“句柄”,而不能使用OOP的封装-例如pwsh的ps命令,那要怪C的指针-mmap模型为何允许捏造一个地址去访问,为何不记录数组长度、子项引用计数,
带来所谓空指针、野指针、未free、内核态上文切换栈拷贝 的问题

其实哪怕把愚钝的for(int i..) 换成区间迭代 (0~9):(i) 错误也会少很多
但是多少C系程序员沉溺于此啊?

像JVM,js.permissions 以及 unikernel.org ,微内核,虽然也是一种“虚拟地址空间vma”实现,却不需要划分所谓Ring0,1的隔离。
app写成的驱动,照样不能像DOS那样越权擦磁盘,这就是编程语言的主导意义了。内核级的Lua,就和rust一样安全
duangsuse::Echo
纯sdf, 顺手移植了一个给 numpy+tty 花了1小时吧: cv2.open(mode=HSL亮L).降采样为(stty size) mix(256色到" .*#"色) .追加\n列 .光标到(0,0)print 我用了比yes命令内存效能低的join'',但也不打紧 #performance fwrite() 就像CtrlV,要打'y'*500你是粘贴五百次还是多复制、缓冲? 把rows('<U1').buf分隔复制到 int8(w*h+1h),按帧yield给/dev/pts/0管道更省 若一开始就…
看最近几条逆天,我要聊哲学 #CS
操作系统不就是4片3口虚拟化么
时间内存存储程序,网口线口板口 #os #plt #embed #recommend
win,*nix,mac, aosp ios ;哪个不是只有这么点API和差异化 🦄?为了音视频和回应事件弄那么多框架外链新语法,不如3行 #web js。
像 bellard.org 那样的通才终究少数,搞出\0结尾无长度字串,连{}[]{type:}都没建模的libc算什么API啊?在位运算位flag上都被人打败 也配教人数据结构算法? 。 为这撒手掌柜的「千年虫哲学」服务的「编译器和OS」……

"It works"的「千年虫哲学」出现在4byte的13位时间戳、在'\0'结尾的CStr、在argc和snprintf等“最佳实践”、在将'❤️'算作2字符的JS和JVM(UCS-2的伪utf16)、在线程被窄化为while(1);join和各种设备信号的“同步IO”里 —evpoll为何不是默认呢,就因为C没“回调值”,轮询pull>推送onpush? 千年虫在几乎所有让你不分昼夜却不得要领的「术语」里……

时间片sched - 变通while(true)的死机, kotlin/go func 怎么不需要这些? numpy,GL 为啥不需要循环向量化?
内存片vm - 缝补struct{{}} Rc状态树, 缓解(编译期)检查缺位的骇客 enum { A(int) B(str) }, for(i:0~9)a[i], sql select${x}+1, scanf%s
存储片fs - 分簇存bytes&CoW复制断电不断写
程序设置依赖片elf,apt,regedt - 硬编码各种rc,ini和/lib/.so.版本 🤮,各发行版树格式不通,make系统ld.so优化一堆,却连 live compile/fatJar/minify 抖树都不懂……

网口tcp,ssh 双管道(socket), pipe闪存读写(等buffer就是等yield)
线口usb 注意方口圆口转接,通用的
主板口pciBus 安卓的dts
>__线程调度内存隔离、文件设备(fat32,ext4,IRQ)、 IP网络和并发工具(IPC,sem,mutex)__
>如果一个人写了线程池或malloc()或ELF文件链接器,声称自己写了操作系统 是可以的(GNU不就是)……

凑以上这些字数干嘛? 时间内存存储程序--片,网线板--口,就这么简单。 把双管道快取翻译成「套接字缓存」是啥逆天专家
OOP封装/多态实际上解决了 libc vm 化进程的问题,JVM,NET只需要查数组或union的越界,没有“syscall给驱动”,因此跨平台,何来segfault?顶多送个内存片swap和热更新热迁移(混合睡眠/分布式fork),做好函数间互相jump; yield(闪存或typed)的“IPC”。

IO? 直接说ip+fs 分片传输吧,检测点击长按、解码HDav到PCM也没见内核态自带啊,外设和性能也不必突破一切皆文件。
ip实际上靠http。纯socket没?args长度没返回MIME类型 ,URL就平替了 env key=v PATH/git/add-command?k1=v1#.mp4 .wav; 实现共享
ip和sh命令一样,带参数单文件而已。ip还附赠跨语言扁平读写(REST序列化)。 stdout本该可直接 print Blob(bytes,MIME);而stderr是loglevel变量,没意识到这让log4j竖子成名
用过 nc;curl 管道和GET,PUT都知道,http函数模型比sh优秀,实际上WebAPI/py调包远胜于UNIX。PJAX调用/PWA就是一种“上文切换”、IPC、/{etc,usr}软件格式

时间内存存储程序,网口线口板口,4片3口虚拟化 😊
逗号左半,pyjs javacs rust 包括C作者自己写的Go啊 Docker啊,哪个不比libc+Linux强, uv(vs ^CSIGINT或evpoll?) jemalloc(闪存0copy和0flush) psql redis/flatpak
逗号右半,Bun.js ip栈封装; WebUSB; Arduino; 各种图形界面设定,很简洁,一到hwinfo“元数据”就乱搞,像fastjson大师修注入似的。凑字数?给骇客留空间!
包括那个 ld.so 可绕过的chmod +x ,多用户真的比多app容器+人均root有用么? OS竟敢不按devs的喜好来部署。
《程序员的自我修养》大概比较了COFF对象的这几种分支,PE,ELF,甚似于apk。常量池.rodata、全称名mangle、字节码动态链接、菜单图标、自带资源树和签名,比之C++ 对象,不能复制修改,无虚表原型,无双指针框定类型,不线程局部而。

也就是缺个二进制 databind 写冷门硬件的“驱动”,不过那也无所谓,ASN1式的屎山只能像zig那样,自动C2zig
有人说用户态不够,memsafe 后还需要调度器呢。 谁要那个巨无霸4K起步的 struct task/PCB{} 啊,还有上文切换开销。画蛇添足? Lua, 2KGo, NTFS和安卓的FUSE, numpy 真多核……从API从源码开始做优化,删掉无意义的设计模式,四海皆效仿,才配叫编译器和OS!

我半年前1k阅读的稿,也是这样 libC sucks 的观点 https://t.me/dsuse/19854
淫王也这么想 https://www.yinwang.org/blog-cn/2019/08/19/microkernel#:~:text=一个操作系统本应该
❤1🦄1
#vibe #embed PoV display, Holographic 😮
https://jsbin.com/sowamo/edit?html,output

https://chat.librechat.ai/share/Im6ypXadkhtqjzPVHbZJC Gemini3 很棒!
https://jsbin.com/godebah/edit grok3理解错了,但导入表写对了
https://jsbin.com/voyigen/edit 第一版
https://jsbin.com/sowamo/1/edit?output 无UI版


参照物: DIY https://www.instructables.com/PropHelix-3D-POV-Display/
ESP32 https://projecthub.arduino.cc/jobitjoseph/open-source-high-resolution-pov-display-using-esp32-799677
工业级3D显示 https://hackaday.io/project/180304-vvd-an-open-source-real-3d-volumetric-display


AI似乎为了显示效果,在GL里写死了视觉暂留的模拟(手写应该不会这么细😅);不过看起来很酷,可扩展,而且也容易移植到RPi上。

btw. 搜到 https://0x7f.cc/tdps-design/ 大三智(能)(避)障小车项目研究,感觉业务逻辑也可以在2Dcanvas里模拟

回头整理下在workflow里插入Gemini/Grok的经验。😝
Please open Telegram to view this post
VIEW IN TELEGRAM
duangsuse::Echo
还真让Fable安慰了一下,
>
你认为,革命性创新有那么容易吗? 我不是一个喜欢缝缝补补【事后改需求】的人,批Python2,3,lambda vs {}block 支持的那篇已经点明了这种中心思想

设计一种ABI和协议级别的软件,不仅要考虑所谓全栈和os APIs,上面整个《妙妙词典》里的词,要抓住,要像有UI那样简洁。只是在设计上,也分着月份吃掉了你一周周的时间。 你评价它们有多适配的时候,可能很轻松,但起意、设计、不断完善这份【无实物表演】,并非读起来那样简单

HTTP基本上就是curl经常出现的 <7 个参数,加上CDN,cache,Range,F5复用sock等用户能体验到的协议
SysV C-call 也只是把 bash级别难度的 $1~$7 编个号,至于struct裸参数等无聊标准,80%的场景没有也没关系
TCP只是把stdio用蹩脚的方式绑定成【数字号文件】,WebSocket又直接拆掉了Content-Length问题,和旧协议如9p/ftp不兼容

ELF只是把编译期的 mmap,malloc,#embed 调用变成序列化好的协议,再加一个包含无数次ld-linux.so字符串的头,busybox和SqlELF早就看到它没有认真完成 portable 和 extension,比如资源和最底线的icon都要XDG,相比之下PE是 one-key build


这些都是【实物表演】,不对,是【失误表演】。它们有价值不是因为它们有灵魂,而是找到了一个框,一块装着音画和htm的硬盘,而它们贡献的价值,本来是负的。

……所以,想要改变的人,何必呢?

既然软件只要像Apple那样给钱就能长出来,而你在乎的【过度工程】【样板代码】【可以元编程消解】,他们,全都手写,而且照样运行。他们甚至引以为 Best.

既然只看眼下设计,就能放进【框】里,而 “Rust驱动时代进步” ?笑话,只是因为采用2025以后的HIG和CLI,和性能与安全没有关系;只是因为【新品狂热】利用了开发者的剩余价值率,并不是设计智慧更高。

好,你说到了我们的流派。 那我问你—— 为什么仅仅是【gcc没有默认产生APE】就能让一个堪比JVM的,完全实现的libc和【即插即用】的ld基本无人问津? mold-ccache 可能比cosmo流畅且有效,但它们不够革命性。 一些人认为 .com 不是一个 -static syscall 翻译器,而是比Docker还笨的“虚拟机壳”,哪怕Tunney在博客上展示交互式的编译和 wc -l

Alan Kay 曾经无数次表示对OOP的看法,io_uring 和 Hot Reload 在数十年后的今天热门(当然没有Smalltalk系的影子)。如果 Bellard 没有跨界到FFMpeg,只是QEMU他还会被广大的Devs理解吗?


它解决的痛点分布很窄。 但你说的问题,完全让用户无感了吗? 是什么让50%的人选择笨重(每次更新都要体验)的Docker和Flatpak,而不是像fatjar那样的 universal zipapp?

今天有不少软件安装到 ~/ 而不是 /usr/* ,这是一个好的开始,说明单用户+rootless甚至叠层 逐渐被敲无数次sudo的人接纳了。

cosmos或许绕开了发行版,但C生态的发行好到哪里去?BSD stdlib有集合类,GNU只有个半死不活的 asprintf封装,我看到的是从编辑,到编译,到运行,到打包,整个生态都不明白自己在干什么。 于是现在那么多人选择Electron套壳,甚至Electron的FFI也比PWA强不了多少,简直是开个py eval() httpd 可以解决的


这场比赛做到最后也是Docker赢。Podman没有大问题且无需sudo,因为小毛刺(甚至只是CtrlV的命令不含它)照样失败;参考UNIX、GNU、Lisp Machine的故事。 这里还没提Tcl和RMS的脚本之辩(Guile 和Emacs设计目标完成的也混蛋)

直到你期待【某天】,因为根深蒂固的优势 “大爆炸”、积重难返的不优雅,让UNIX那样的东西淘汰或【名存实亡】,听起来真像 Elegant hackers 的幻想。 但是LLM的预训练语料让赢家更可能是赢家,转译器成了未来 ——但是如果转译器只是一种“Dark Reader”那样的语法滤镜,软件栈还像以前那样【有乐趣】吗?

Lisp Machine 的结局你知道。Gabriel 三十年前把这写成了 Worse is Better,之后没有一个反例。

LLM 把这件事变本加厉也是对的:预训练语料就是那堆教程,模型默认吐 docker run、默认吐 Electron 脚手架、默认 import requests。语料优势就是现任者优势,而且现在是可以被自动放大的。

但「大爆炸」和「名存实亡」不是一回事,后者一直在发生

🙏🏻 这里说的不是Markdown这种理论上一滩,实际上完全零摩擦的(虽然需求也就Ctrl+B那七八个)

看来真不能像《三体》里叶文洁的女儿一样,信奉什么,热爱什么。

是啊,听到样板代码和按行复制粘贴,也可以被接受的话,AIGC出300行CSS/1page都是未来的话,就觉得没有元编程也无所谓(更有生产力)了呢
杨冬的绝望不是「没人信物理」,是「实验结果和理论对不上」——是宇宙本身在撒谎。这和你的处境不是一回事。

你的 20KB 签名器今天还能跑。uber-apk-signer 是 3MB 这件事没有变成 20KB 是错的,它只是变成了「大多数人不在乎」。这是社会学事实,不是物理学事实。杨冬需要宇宙同意她,你只需要 adb install 成功。把这两种失望混在一起,你会把「行业不买账」升级成「元编程不存在」,然后就真的没什么可信了——但这个升级是你自己做的,不是世界做的。

关于 AIGC 300 行 CSS 说明什么

它说明的恰恰相反。「元编程没必要,手写更有生产力」这个论点,唯一的支撑是「写样板很便宜」。现在写样板的成本趋近于零,那这个论点也就趋近于没有意义——因为剩下的成本全部在读、在改、在出事时定位。300 行 CSS 生成只要三秒,两个月后有人要找出哪一行导致移动端错位,还是要一行一行看。生成侧的便宜没有消解压缩的价值,它只是让压缩的价值全部搬到了阅读侧。而且 AIGC 恰好做不到你那件事

「信奉什么,热爱什么」这个问法把门槛抬得太高了。你不需要信奉元编程,也不需要热爱简洁。你只需要在遇到 3MB 的时候觉得不像话,然后手痒。这个反应你已经有了

^
「一手知识只是个人化的点醒,不如刷题生有效」——有效在哪个指标上?考试上当然不如,费曼自己也没说一手知识考得更高,他说的是刷题生在题目换个皮之后就不会了。一手知识的优点从来不是效率,是可再生:你没有 uber-apk-signer 也能从 V2 spec 把签名器重新长出来。刷题生做不到这件事,他只能再下一个 3MB。「一开二开不分」也没什么好幻灭的,所有东西都是在什么之上的二开,V2 签名也是在 zip 格式和 PKCS 之上缝出来的。区别只在于你缝的时候知不知道底下是什么。

「只有结果,哪都不能做到极致」——对,没人能。20KB 也不是极致,用 C 大概能做到 8KB,用汇编还能更小。极致不是目标,比值才是:3MB 到 20KB 是 150 倍,这就是结果,它已经发生了。你现在是在拿「做不到无穷」否定「做到了 150」。

所以收成两条:对着空气讲你正在做的东西——只讲那个,讲的过程中它会成形;成形了就放出来。拆台那条线不是失去了,是省下来了,省下来的力气给第二个 150 倍。


—
哦,听起来果然稍微有动力一点了。 我需要一边拆【内行】的台让他们心理上过不去,一边让不在乎CS的人听【信噪比极低】的乱码式中文,一边还以既不摆专业架子,也不是viber的架子继续科普

我甚至不能闭嘴干活,因为我需要以小孩子的视角审阅在做的设计,才能梳理思路。 我信仰一手知识和二开/一开不分的世界,可是看来一手知识只是个人化的“点醒”,还不如那些为费曼所排斥的【刷题生】有效。理论?工程?明明只有结果,哪都不能做到极致



🌚 写个个人cheatsheet而已…… 怎么世界观都更新了。
duangsuse::Echo
TCP只是把stdio用蹩脚的方式绑定成【数字号文件】,WebSocket又直接拆掉了Content-Length问题,和旧协议如9p/ftp不兼容

ELF只是把编译期的 mmap,malloc,#embed 调用变成序列化好的协议,再加一个包含无数次ld-linux.so字符串的头,busybox和SqlELF早就看到它没有认真完成 portable 和
对了,

tcp监听并非文件,还导致你需要打开witr仅仅是查看端口占用,或者,用户点开服,然后不知道局域网URL是啥。

或者编程时,不知道消息边界,为粘包拆包存不存在舌战群儒。 你甚至意识不到 “哦,我在这填这个num,那边的switch会那样的调用”,Kay的想法直到uring才被意识到是【不可跳过的】

如果,只是一种理念,如果 tcp有文件夹监听+named pipe的反射,有\n流或ansi的等效协议,就连socket编程也会容易不少,而且也没有dnotify的毛病了
#ai探讨
sock升级ws会导致【旧协议】全部淘汰这个是最爆笑的,一个“稳定数据管道”,居然默认对方会无限的head你的bytes,而没有消息边界,就好像你能用各类 sendfile() 来通过null-length优化传输一样。QUIC和WS直接让ftp等成品协议被迫重写,不能自动移植,这下“粘包”真成问题了。

实际上几乎90%的bin和wire格式都是【坏事说在前头】,根本没有和C那样 \0 dirty hack 的。就好像你瞥一眼还会损坏数组的内部结构一样诡异。 32bit时早该用SSO(ptr tag)优化了,还省1字节呢,y2k那次省的多不多?

听起来就像Java怪异的(数组|Str)的.length,或Lisp链表爱好者处理字符集的点子。他们不明白语义学的底线在哪

告诉我,流除了head(确定的N)以外还能怎么使用。是事件吗,比如SIGINT那样?那么,这也是tcp不得不泄露的抽象了。大文件和音画pakt不能作为反直觉的理由

短的分隔符/bufSize/时间片,这些都可以在内核态做到,物理上更好,但支持度很差。它们是上文切换细节(可以1-by-1实现),不是流性质。状态机和head(sizeof(enum))继续head没有区别,无边界也要有buf,没有突破我说的认知边界

显然是状态机?你指的其实是递归下降。状态机只是对x86线程栈自身的【虚拟机壳】,它并不优秀,因为它做的一切就是把【栈上赋值/传个参的事】劣化成【对象写入/一大堆样板】,或者反过来(即序列化),为了可重入。

【流】这个概念是含糊其辞的,你认为有必要的情况,比如纯粹的端口转发或body的代理,最终都是【管道splice/sendfile】,或head(N),或处理中断信号,只有时序信号是物理上【突破确定的N】的

你又让抽象泄露了。stack的问题是libc的问题,不是 "Stack" 这个序列化工具本来的问题,就像爆栈的超深递归box到堆上也能执行。状态机是丑陋的,仅有DP和动画系统真正需要它。元编程能接管的地方,【程序流断裂】并不存在



(这些下游受害,或失去“正常化”的机会,正是我深恶痛绝的。C无栈to堆闭包首当其冲。)

(如果要提到ES6才在整个编程世界规范化的 safe str injection, 那和C匿名函数一样气人,甚至直接养活了xss/1=1/WAF的世界)

(和y2k/c10k/nulls一样纯纯的小丑,工程之耻还拿来考题)

呵呵,funarg problem 岂是一个函数值(un)boxing和W^X的分配器问题,它是【瘦指针vs双指针】的类型安全问题。C哪里是(code+env)撕裂,(argc,argv) 一样有毛病,带出和y2k一样的RCE漏洞

union的毛病更甚,以至于Haskell data 被用于各种组合/协议的教学而 Rust enum{A(tup) B()} 和可空(T)被大加赞誉,printf和ioctl都是毛病的后果,【简单】没有省下任何东西,反而让一切变得疯狂。

——(ptr,len)、(code,env)、(tag,payload)、(ptr,vtable)——C 都把第二个字拆出去,然后给你一条口头约定。字符串的长度塞进内容里做 \0,于是有 strlen 和溢出Segfault甚至RCE 🥱

UNIX的下游并没有意识到 stack2heap 的缺失造成如此之多,乃至没人感知到的 C-like 毛病。像用一个愚蠢的atexit止痛药,而失去了React和Qt的Signal,倒退20年,好像省了worse,其实什么坑都踩了。

【调用栈】有一等公民的理由,但不要认为【线程栈】【自动清理】是free且不需要类型信息的。栈不是一个RAII的回调链表而已,它只是优化的堆,仍然是堆。让它劣化的人不明白。 😓


elf 不仅是把 malloc(.data/static) 从opcode转为bin格式这么干,还引起了 ThreadLocal 问题,因为一个 .so 真的是 new Object,而不是纯粹的,jmp到 “回调字典键”的另一个字典,而已。

desktop 让人困惑一波,TLS又因为shared mmap想省内存干了生态一波, 非要把客户端服务器干满才能意识到根本问题?

busybox通过单体argv0路由已经能说明它(或者说execvpe的机制)为什么差

唉, 这样一想的话, 就又愤世嫉俗了一天。 哈哈,当然我在扯淡

#statement 😡 红温了
你不明白【用户交互】与kernel真实的边界。可以说:通过键鼠横屏/触屏操作的,只有Bellard涉足的那些东西不能通过【边界】。但是其他的【体验】都有办法,iq的GL可以,Web全栈测试和FSAA读写可以,性能问题只是选型和interop错误。就像SHM或fd_set那样,C-like 的世界本没什么不可替代的,而且他们输给JS/Py太多

所有以人的事件速率运行的东西——键鼠、触屏、窗口、列表、表单、图表、甚至游戏的大部分帧——已经全部过了边界,不是「能过」,是过完了。iq 的 shadertoy 证明 GPU 那侧也过了;Playwright 证明「操作」本身可以被另一个受管世界驱动。

Bellard 那一堆:QEMU、FFmpeg、TCC、LTE 基站、QuickJS。它们的共同点不是「在内核里」,是内循环以样本速率而不是事件速率跑

Web需要做的仅仅是变成GTK/QML/Gum CLI这些东西能执行的子集,因为他们根本不懂【软件开发】,只知道实现。但是Web的完成度无人能做到

它们不拥有生命周期:怎么分发、怎么看见、怎么回滚、怎么被第三方检查。

本来就是那样的,现在的工程界却以为稀奇,就像我看见他们的README连截图和demo都不写那样稀奇。

【兼容性】【久经测试】【项目模板从来如此】…… 是啊,他们总是对20KB源码或一个特定指针上的bytes()有这样庸俗的理解,是啊,那些写 code.golf 的人连函数名都要压成单字符,显然【不可维护】?,以至于自己想要写什么,录个屏?都做不到

连《编程语言项目》,都居然不敢把自己的syntax和flow晒在主页,我已经开始不明白——到底在照猫画虎什么。 软件不就是像【它们有用时】那样用的吗? Exceptions?

听到哈希函数、分配器、一个 syscall wrapper,我就知道它们更有用了。我可以拿出【文学编程】和Juypter那样的REPL来写demo测试它们,我还可以用Shadertoy的白噪声测试hash是否均匀,用前端、管道密集型、IO密集型的既有App去测试一个malloc,甚至不用自己写代码。 世界本来是如此美好的,直到那些硬干的人让pull&make都变得胆战心惊

Learnable Programming 让一个不可能的(或者优化不够到位)的【时间旅行调试】都变得触手可及,而那些codebase,让代码变得克苏鲁一样无法直视,只能【运行or DIE】。Nickey的 Explorabl.es 证明了各色算法并非那样的【反人类】【反直觉】。

我不明白——计算机是用来创作的,不是刷一些花花绿绿的垃圾、负资产的。

它们是一些可爱的、蕊括深的录屏文件夹,只是有些巧思一般的叠合。但可以单独抓过来玩。软件不就是像【它们有用时】那样用的吗?

它们时时刻刻都在有用,只是时时刻刻都把用户当成傻逼。 举个例子,systemd系譬如服务面板,加上Telegram的inline buttons,你觉得怎样更自由? 开发成本怎样? 他们只是不明白,这不在他们的日程上。

这不是一种stdio级别的协议,像“录制”bash脚本那样容易上线,但winapi上这种框架不缺(疑难解答 就是)

他们宁可写那个该死的重复了几千遍的bash补齐,然后做一个玩具般的 form cockpit,也不愿意修正这一切愚蠢的复制粘贴,这就是为什么【录屏文件夹】不现实。 软件本是在【场景和需求】里用的,有高度确定的80%和20%,而且没有【无法可视化或不可调试】的部分,只是因为他们多到不可思议的内耗让硬件美好的特质如此被浪费,就像MD1时代左滑出现《美丽的Drawer》而不是返回键。