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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
🍺🍺🍺
🤡1
https://arborium.bearcove.eu/#query
#awesome #parser 集合,牛。 说明了 #vibe 对优秀程序员是真正的如虎添翼,而非取代。😒
formats.kaitai.io 同样强大。框架不仅仅要灵活易用的API,更要有demo来证明
真正的的牛不是自己起的绰号,而是同行都在说: https://github.com/dmendel/bindata/wiki/Alternatives

https://github.com/WerWolv/ImHex-Patterns/blob/master/patterns/java_class.hexpat
https://github.com/lark-parser/lark/blob/master/examples/json_parser.py
https://construct.readthedocs.io/en/latest/intro.html#example 较少实例,但流行
https://pest.rs/book/examples/json.html

Scapy.net 等“面向系统编程级RPC”的 #bin parser
https://github.com/secdev/scapy/blob/master/scapy/contrib/postgres.py#L234
https://gitlab.com/wireshark/wireshark/-/blob/master/epan/dissectors/packet-http2.c#L1298
https://wiki.wireshark.org/Lua/#:~:text=Wireshark%20dissectors%20are%20written%20in%20C
所以Zeek用 LLVM-JIT实现了Lua: https://github.com/zeek/spicy/blob/main/tests/spicy/doc/my_http-host-callback.cc#L66
https://docs.zeek.org/projects/spicy/en/latest/tutorial/index.html#creating-a-spicy-grammar

在kt里模拟rs-ownership https://chat.librechat.ai/share/eZLS6q4XRoNU27vYn6XBJ
AST与pySonar推理 https://x.com/i/grok/share/WD3EUIHLTmrhVkt1RNCOBLABd


#ai锐评
https://x.com/i/grok/share/Hnqz0eaKxPju6Q3rfWItXnt9J 😃
1. 统一解析 https://chat.librechat.ai/share/9I4oi0qOnDjG2IU85G_2b
2. 增量解析 https://chat.librechat.ai/share/SAs_mOf-vW60J0g2ElIpx
3. 龙书垃圾 https://chat.librechat.ai/share/PWpLgBFykGme5CvhVWV-U
Please open Telegram to view this post
VIEW IN TELEGRAM
duangsuse::Echo
https://x.com/i/grok/share/vW8if393OgPDDWk5SgItJxCJC #ai锐评 把4大IO demo 成8个了,我重新理了一下: EchoArgs, Counterdown, Checklist_LiveSrch, Dirtree_MapReduce ps. #statement #plt https://www.30secondsofcode.org/js/s/math-expression-parser/ 是🤡么?我可算知道为啥写 #parser 牛逼了,这是在…
#plt 😅这里有些非常有趣的parser问题。 面对它们,分析PEG组合子/TDOP和CFG/解析器生成器 的优劣
https://justine.lol/lex/

A* B; int * n; 类型名问题(由gettok消歧义?好吧:)
val a:List<Any >= listOf(return)
"${"Guido快乐内插"}" #ANTLR分词器直接淘汰,bash <<EOF字串同理。安全注入还是我们ES6继续领先
<JSX></>和 _ptr<vec<wtf>> 到底有没有调用(>>)这些token?

op + 1 as ()->Int //类型是值? Pythonic.kt
(A,B) //=> A+B 又一个“二项运算符”?
(1?opA:opB)(); //三选一? =>($1+$2).., (A,B)(..)(), (A,B); opA()
(1+1, b) => b //这算是parser写错了?

int f //(){return 0;} 匹配(ClassDef->Var|Fun)有回退吗? C decl(void f(int(*)() f1)) 里有几层函数?
if(1) if(1.1)A; else B; //自动分号greedy匹配不对,递归上升又容易短路读成 if{if{}}else{}
expr -> expr "+" lit | lit //人类都看不懂的左递归BNF“访问链” (lit往右chain! 注意边界条件)
1.1 + 1.to_s # JS里eat到1.^ 的位置只能返回Lit(f64),除非写 1..f 即(1.).f 。Ruby有回退走不错 不会eatLit
-not a or -b.c!! and d # 随便组和中前缀优先级


text,hex,cffi,wire 解析器的SOTA是
tree-sitter/lark, Kaitai/ImHex (ohmjs,pyparsing,construct 次位)
cffi需要易调用接口(ptrify/padding), wire同理(state,ctx),还没有大一统框架?

#ai探讨 https://chat.librechat.ai/share/EA4UzYilY9Dvfm1sA6RhW
#ai锐评 https://chat.librechat.ai/share/oig5RkBAoyUisEau7yaNF
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from codedump的电报频道 (老C)
#杂
我从1998年还在上高中的时候就开始学习编程,从小霸王学习机上的QBasic编程起步,大学后才开始学的C语言。前几年回老家,把我当年学编程买的教材带了回来,见附图。

在我刚开始学习编程的那个年代,只有一些简单的教材。在我那个小县城能买到编程书就更难了,我当时是去邮购的(“邮购”这个行为就有很强的年代感)。

所以在一开始,我学习编程就是“孤独”的:没有人指点、没有人能回答我的疑问。到了后来,有互联网之后,稍微好了一点:可以在网络上搜索问题,可以通过在论坛BBS之类的地方发帖提问(论坛、BBS这又是一个有年代感的事物)。

来到AI时代,现在我有不懂的直接问AI,AI对我来说既是老师、也是同学可以陪着我学习,如果当年有类似的东西应该就不会有那些“孤独感”了。有了AI,我甚至大部分时候都不会通过传统的买书的方式来学习新的编程知识了,另一个原因是出版远远赶不上现在新技术迭代的速度。

总而言之,我还是很羡慕现在学习编程的朋友的:资源足够充沛、答案也不再难获得,更看重个人的好奇心、提问题的能力。
2
https://pleasejusttryhtmx.com/ #web #js #statement #design

确实有些道理,主要是,npm 实在是太过分了。
你知道一个普通的静态站,九成node_modules「声明式框架」,一成真正独特的内容,是什么感觉吗? (幸好.md语言还是通用的)

没错,硬盘越来越大了,网速越来越快,但编译和迁移越来越卡,编程出问题的可能性成倍成倍的放大了——RSC导致的shell注入就是血淋淋的例子。


你什么都掌握不了,框架只需要把900MB搬进来,然后自以为是的包揽了一切——把程序员当傻X😃

当 is-array 都需要被独立为一个有可能broken的“语义版本”依赖…… 我不知道这群脚本小子还能搞出什么好事来。
——他们用户量上的成功,真的让这群dev觉得自己比Blink还聪明,而且确实在干自己根本不了解的infra了!
#pingbk https://zerotrickpony.com/articles/browser-bugs/
https://www.htmhell.dev/adventcalendar/2025/27/#accordions-expanding-content-panels
Please open Telegram to view this post
VIEW IN TELEGRAM
duangsuse::Echo
反序列化逻辑存在问题,可能导致远程代码执行 (RCE) 漏洞。
#security RSC=RCE 棋缝对手😃
https://jackfromeast.github.io/ #dalao
https://jackfromeast.github.io/assets/DOMinoEffect_Slides.pdf

我思量着自动生成的类型检查有多难做,不是有人喊着TDD么?F12里也有录制puppeteer的功能
怎么没人做个从交互测试自动生成 CSP constraint 的,也省得CTF团体继续为低价值的 Web Security 服务了

Gadgets 这个词本身的存在就很抽象,不知道为什么有应用能容忍。
每次出了“动态类型”的问题都是写getElementById更丑陋的「最佳实践」来防,结果都是除了把所有demo里搅得都是噪音,还把更深层次Gadgets的问题掩盖了。 既然知道老范式有毛病,容器化沙盒化就好了,乱用什么getElementById

组件化(Vue,Svelte)范式上就没有这些胶水问题,但它们的品味也没有好到哪去(npm地狱)

希望工程界以后是从需求和框架的 root cause 上修问题。
https://www.freebuf.com/articles/others-articles/340794.html
#ai锐评 https://chat.librechat.ai/share/Oz4yN4cllGx2I72qsTzRD
Please open Telegram to view this post
VIEW IN TELEGRAM
2
duangsuse::Echo
https://news.ycombinator.com/from?site=maskray.me #dalao #ce LLVM https://maskray.me/blog/2024-12-31-summary 👇歺厅玻玏,油㲺喷咀。粘土动画,门靣设计。仃车标识,诚伩优恵。 “聚众” 取乑, 乑形似背靠背, 仅在眾里出现 “羽翼” 羽異, 異声旁
https://maskray.me/blog/2012-07-21-design-thinking-of-eight-programming-languages #ce
#ai探讨
+ apt不会做C语言包管理
https://chat.librechat.ai/share/GMEFbpIISwnr1sJO8SHZS
https://chat.librechat.ai/share/7ar3bXejuuJ4kYzXX7nTS

然后就看到了 https://maskray.me/blog/2020-11-26-all-about-symbol-versioning#中文版

#pingbk https://fzakaria.com/2023/03/19/sqlelf-and-20-years-of-nix SQLelf
rpm版239M,似乎仍然不是它的功能该有的分量。我开始想念丑陋的./gradlew了,它根本不会用这种静态链接的方法打包软件
Win平台之所以能在许多exe的体积上比apt低的多(而仅仅存在vcredist问题),其实也是因为许多 .NET 式的开发者非常有「大局观」和通用性的技术力。
(比如COM规范了整个系统互调基于UUID“指针”,而regedt让etc格式的碎片化从用户视角就不再有意义)
这种宁可不如bash等rc格式灵活,也要规范的好习惯,并不是解决某一例“深问题”(比如实现GCC/FFMpeg)就能获得的

遗憾的是,Qt/GTK/DBus 并没有这个方面的技术力,而win风格也有过度僵化的问题(当然,NT的模块化与一致性也启发了AHK,CE,Symantec这些胜过Linux社区的第三方工具)。

总的来说,软件发行之所以难做好,是因为一个能设计相应框架的人要有三种正交的视角:

- 用户:我下的软件总是能打开,怎么更新都互不影响,我可以下一堆软件而不感到存储或下载速度的负担
- 开发者:我的IDE里能打开,能push上去,就能直接打包/上线 (works on my machine)
- 内核:我不分软件和应用的区别,只要进程互不冲突,能抗住烂代码,坏用户,复杂的裸机就够了

这些对软件的视角虽然殊途同归(比如高效的软件和算法一般是精简的),但所在的「生命周期」就像自恰的岛屿,因此 Flatpak,Cosmolibc,Docker 这些方案都没法做到Pythonic。 甚至py自己生态的Conda,下载速度和灵活性就很差,就像apt vs pacman一样

这件事的本质和 JS/Py 最初无类型的混乱易错如出一辙。
GNU为了性能和安全性等90%人不需要也不了解的东西,破坏了已经存在的stdlib库,这其实也是对KISS和单一职责原则的傲慢。

如果是cosmolibc,musl,Unison-lang 的那批人来做,或许能在系统层面做到像 KODI,Userscripts 这样极易插拔的高层应用一样的软件发行质量。
本来,版本号只需要 major.minor 两部分标记平台和功能版本,而且,不应当向下不兼容(就像py生态的好习惯一样)

patch 号可以对应ABI增添,或者,哪怕有破坏,“动态链接器”也应当能够静态的,在PATH/LD_PATH下找到这种不兼容,然后将caller容器化(或至少提前报错)。 在版本号上玩约束求解是把精力放错了地方。

可是,这一层的开发者甚至连 ld-linux.so 可以执行没有 chmod +x 都不知道,又怎么可能为二进制管理写一个“静态类型检查器”?源码版本控制也解决不了软件发行的问题。



第二次刷到 @maskray #dalao 😃
宋教授也在 pythonhunter.org 和r2社区出没
https://t.me/c/1492060815/202882 https://t.me/radare/191683
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from APPDO的互联网记忆
明年1月1日起,向好友发淫秽信息违法

新《治安管理处罚法》第八十条明确将“利用信息网络、电话以及其他通讯工具传播淫秽信息”纳入治安处罚范畴,无论传播场景是公开微信群还是私人私聊,只要证据确凿,均可处以十日以上十五日以下拘留,可并处五千元以下罚款;情节较轻的,也将面临五日以下拘留或一千元以上三千元以下罚款。

值得注意的是,即使是私人聊天中发送不雅照片或视频,一旦被举报查实,也会受到法律制裁。
dl
842 B
#tool 真·全局代理 (第二弹)
proxychains Chrome或Electron --proxy-server="socks5://192.168.33.1:2080" --no-sandbox --in-process-gpu
#code 文件为 cdp chromium 批量下载网页pdf

https://github.com/xjasonlyu/tun2socks/releases
一键用法: https://chat.librechat.ai/share/NHR3Yop0N5y3wU0GhUfxt
更多 proxychains-ng; tun2socks 的原理: https://x.com/i/grok/share/JIZdPreLjwPrhLBAqlN7eHew1

gh单目录下载 https://download-directory.github.io/
📚 https://github.com/awesome-programming-books/awesome-programming-books.github.io
#ai探讨 DOM列表更新方法性能 https://chat.librechat.ai/share/Wv0B889GuWx2CTDJFcj42

ref:https://t.me/dsuse/18641
ref:https://t.me/dsuse/19360 图片缓存下载工具
#post #statement 《人人皆可元编程》
我有时也觉得自己挺抽象的,身为 PLT元编程+工具链学习者,居然完全是用户立场(“群众路线”):
一个有depth且高大上的新词,看起来不易懂,那自己该扔掉它从头来过
只要它在任何一层技术栈起不到“可观测性”,就活该删掉,历史上为它写代码的贡献者八成白干?也删掉,必须删删删,好不容易搞懂的“Perls”珍珠,全部要架空或者忘掉!

其实我是很清楚的。许多工程堆砌和tradeoff是有必要的,但它们也未必要用那种【“定义式”流水账+“过程式”报菜名】的行文风格来做。
我就是忍不了,所以我选择了PLT,不是PLT选择了我--人乃万物之灵,它们没有那个资格。


我不是什么【天选之人】,我只是想要优雅的、边界明确的代码,为了一切我能洞见到的上下游应用,我不想要什么智慧的光辉,这份不完备的功利是我唯一的预设和相信。
——但PLT也改造了我,它让我永远拒绝手写brainfuck这样的“状态机”游戏,因为我已经从“宏”的层面看到无结构的“状态id”背后的语意和套路,我也看到了这些语意背后更高的应用目的和框架乃至infra层面的权衡。
我是个minimalist,但我记忆算法的长度不是KB…… 极简的对比标准,不是拿眼睛去扫,而是用心去丈量。出众的代码基越读越“短”--动态的短。这份自然绝不是自吹自擂,她是被对数证明的天赋性质。

比如,当OIer有一堆 int a[N], b[N], names[N]; 的static malloc,它不就是Jai的SOA<->AOS互转优化或“列数据库(kw:YAFF)”的CPU缓存优化吗?
比如,当GLSL里不断的写 float sdShape(..kwarg, fragCoord) + 复杂的mix,它不就是 vec1 sdShape(svgAttr) (vec2 P){} 的函数组合器吗?
比如,九成人眼中的“可观测性”只是对F12面板的跨语言移植。我词典里的observable则更像reactive、visualize、非纯函数的AOP(函数语意的latebind),覆盖率和热点的PGO只不过是框架之一
因此,既然C这样“弱类型难自洽”的语言怎样也难以和IPy/F12的探索式比肩,既然man和pdf无论如何也无法模拟htm的基线UI与高可玩的UX,抛弃它们就好了,或者和Zig/CheerpX一样做个reflect,夺舍其生态。源码的语意不都还在么?不都没突破x86PC【可计算性】的范式吗?

我学工具链,更多是出于对 “当你不知道篱笆为何存在,就别拆掉它” 这一哲学的尊重——我不需要再当第二次“有罪的先辈”;
但七成情况下,我用心--而非眼睛去抓住一个领域或层面的解决方案时,我失望的发现实现者缺乏“一眼望到底”的勇气、他山之石的精神、Pythonic的品味。
拥有这种品味需要很多尖锐的习惯: declarative, round-tripping, lifecycle sim., domain breakdown ...

其实提出问题比解决问题更为重要…… 因为只有问题能消灭问题,答案,往往会把工具带离领域的本质。作答者,终究已失去了与问题的author“结对编程”的语境和资格。问题是一种预设,“必须要创新”是另一种预设。
我始终像《料理鼠王》里鼠鼠的大厨一样,觉得人人皆可元编程。我们的领域强大在语言无论整体好坏,都会有一两个 Killer App 或精神后继(比如Smalltalk-Scratch-Java),这恰恰证明面向设计的编程是经久不衰的,而dev的幸福与动力(长远来看,乔布斯那种)是工具链的服务目标——不是报菜名般的机械优化,是“可观测”的API优化。

不是人人都可报菜名,但没有不食食物的俊杰。为什么不站在一个没有语法、没有端、没有操作系统和CPU的高视角,观其变归其恒后,却只为Apps和 living standards 服务?
在PLT领域,新问题本身就是答案,也是唯一跨越时代的不可复制——这思想不可被静态的分数、编号、希腊字母表达。

希望大家也多提些问题,少去“独立编程”或者缝合出别人的答案。 你知道的:历史上的大家都懂,未来的AI也懂,这是重复工程。

——因为这些“围棋”本来就无关人类智能的灵魂。别忘了AI是人类之子,也别忘了DNN技术不是在现在高深的CS栈上诞生的,不要有预设,认真的去探查普通用户也能点破的线索吧。
#ai锐评 https://chat.librechat.ai/share/m8EjuAnfbduQkkrmxJ0ND
https://jyn.dev/i-m-just-having-fun/
duangsuse::Echo
#post #statement 《人人皆可元编程》 我有时也觉得自己挺抽象的,身为 PLT元编程+工具链学习者,居然完全是用户立场(“群众路线”): 一个有depth且高大上的新词,看起来不易懂,那自己该扔掉它从头来过 只要它在任何一层技术栈起不到“可观测性”,就活该删掉,历史上为它写代码的贡献者八成白干?也删掉,必须删删删,好不容易搞懂的“Perls”珍珠,全部要架空或者忘掉! 其实我是很清楚的。许多工程堆砌和tradeoff是有必要的,但它们也未必要用那种【“定义式”流水账+“过程式”报菜名】的行文风格来做。…
#post 《元编程?或者算法?的牛人》
不过半个月,就看到了清华的 宋教授、杰哥、贴吧的帝球 等牛人,包括OI的Mivik和Xecades,他们的共性就是“速度与力量”——但我更喜欢 @maskray
Ray的洞察更少,但是比我双倍聪明的,不过为此放弃我的特点,我可不干。 主要是他用的系统/PL和我更接近,回头我会在新博客上多多推荐这种层次的大佬


清华的title很好用,也贡献了开源镜像,但这些牛校在 MIT Scratch、BSD、“IU出品”的王垠 的圈里其实不够看,尤其是要相对整个WEB的信息量和【灵气】来比,没有一个学院派能像老掉牙的代数一样,主导CS的前沿。大家都在互相学习。


许多国人就是缺乏从“GC Roots”确立价值的精神,导致一些概念能互相刷refcount,螺旋升天,比如AI+Web3,比如北大清华。
其实,老师有什么天赋去命题呢?清华(THU)怎么是“愚蠢”的美国人投资设立的? 牛校的tag,让一部分牛人的杰作间产生了关联,寻根问底--先射箭后画靶。


如果为了“学习”牛,掩盖了真正的艺术和动力,就牛的短视。 缺乏对好奇心和品味的追求,知识会劫持真理、戒指会戳破爱情、金钱会带走自由,你会走向你的反面。

那就是一种缺乏【动态】的见识,它带来【有形无神】的知识——烂程序的结构也会与所处理的数据相对应。
山不在高有仙则灵,如果路遇“谪仙人”,却没有山头,不是更好么?

问题是,许多人的学习研究,只是想成为那只【独一无二的】,能叫起太阳的鸡。
却在与“太阳”拟合的过程中,消磨了对光本身的敬畏与好奇心。

“速度与力量”——当然是我的追求,但现在,它们已经越来越向“纯LLM时间”倾斜了,它不占用 user,sys,bus.. 我想许多对AI表示失望的CSer就是因为它的“抢占”。
我的极限,却不在这一点可复制的追求上。在计科领域,“隔山打牛” 的原力是被OS/PL发展不断证明的事实!
如果你有【灵气】,能抓住知识树状图的动机和根系——你不需要用超高校的速度去走迷宫,或用小仲永力量去撞墙。 你只站在迷宫的最高处望一眼,“原来那些解法都是在鬼打墙” “原来复用火箭和+1%的燃料效率-是同层次的智力”,就像苹果砸中小牛顿一样【显然】。

元编程不是让你见识到牛,它助你洞察到根本没有牛这一回事。 从看山不是山,到返璞归真,你真正需要的是比【好奇心、技术力、执着】更长远的【创作欲、品味和谦卑】——泯然众人,却也完全不同,因为她才是科创的本源逻辑。


#ai锐评
G3 https://chat.librechat.ai/share/tafls8TAImHGz_ksmsfpT
长G2.5 https://chat.librechat.ai/share/LrGbh5CEh_Me7ih5IB07E
前几天 yihong 发表了重要演讲,核心内容是Vibe Coding 时代, AI的编程能力超过了大多数,那么程序员的核心价值从最重要的编程能力变成了审美能力。我今天就来举一个例子

众所周不知,我一直有一个基于sqlx 的 postgres ORM 库,最近有时间捡起来,重新写了一版真正长得很像 ORM的写法。
众所周知, 不带任何条件的 delete 和 update 语句都是极其危险的,在一些比较严苛的公司,这种查询甚至都会被审查中间件直接过滤 / 告警

那么在Rust里面就有一种基于 const generic 的写法,可以在类型系统上做强制的保证,我相信这是AI想破脑子都想不出来的解决方案,那么我就觉得我的审美很棒😊