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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): a19a0b
Download Telegram
duangsuse::Echo
#video #acg 《罗小黑战记》番外《晚安喵》中文彩色字符画版剪辑 [相关信息]
https://www.fxzhihu.com/question/4598614819/answer/37786364436 #bilibili 炒冷饭

我语文能力不好, 这个答主说的在理, TM 两行代码的东西,矩形片map成单字符像素的,Linux 小白都会玩(cowsay-alike),你抄抄抄……
我教 #py 都不敢写这么简单的例子,这垃圾功能也懒得用C凑字数
😅最崩不住的是,这撕还摁造了个高材理工男人设,git clone 都不会,MIT都不懂,贡献代码?也是奇葩

#code heart ASCII ❤️
import os, cv2, time
from numpy import*

Nm=array; mix=interp
sh=lambda s: os.popen(s).read()[:-1]

def heart(P, k=.8):
t = mix(mod(iTime, k), [0, k], [0.3, k]) # Heartbeat
r = (P[1] - power(abs(P[0]), t))**2 + P[0]**2 - 1.0 # Grayscale function
return where(r < 0.3, mix(-r, [0, 0.3], [1, 4]), r)

grays = Nm([*" .-:", '\x1B[1;31m=\x1B[0m', *"+*%@#"])
GL=lambda w,h: Nm(meshgrid(linspace(0,1, w), linspace(1,0, h)))

def drawBW(g, wh=flip(int32(sh('stty size').split())), bg=grays):
a=(1-g(GL(*wh)*5-2-sin(iTime)))*256 if callable(g) else cv2.cvtColor(cv2.resize(g, wh) , cv2.COLOR_BGR2GRAY)
b=int8(mix(a, (0,256), (0,len(bg)-1) ))
print('\x1B[0;0H', '\n'.join(''.join(y) for y in bg[b] ))

try: #.: ipy -i
@get_ipython().pt_app.key_bindings.add('c-k')
def cropBW(F5):
g=cv2.imread(sh('zenity --file-selection'))
drawBW(g)
except:
for iTime in (x/100 for x in range(0, 600)): drawBW(heart); time.sleep(1/60)


https://asciinema.org/a/95472 ANSI粒子
https://zhangshuqiao.org/2018-05/有趣的Linux命令行工具/ 有天气预报
#tool curl -4 http://wttr.in
#os #go #py 协程 https://lucumr.pocoo.org/2024/11/18/threads-beat-async-await/
作者似乎想用Scratch里没有await传染性的例子,说明return的自动回调化是骗局。 说真的,JVM和QuickJS应该有「有栈协程」,但程序员对它的控制太低。
IO异常耗时,应当被最小化、隔离,是很难理解的事情吗?

https://editor.p5js.org/p5/sketches/Image:_Load_and_Display_Image #code
setup=(
cat=loadImage('assets/moonwalk.jpg'),
P=createVector(width,height).div(2)
)=> {
createCanvas(720, 400);
draw=async()=>{
for(; P.x<2000; P.x+=5, await sec(.1)) {
clear(); image(cat, P.x%width,P.y);
}
}
'BAD'?? (draw=()=>{
if(P.x<2000) P.x+=5, setTimeout(draw,100)
clear(); image(cat, P.x%width,P.y);
//如果用伪递归做 for x in range(0,2k) 这很自然!其实
})
}
wait4=f=>(...a)=>new Promise(ok=>f(...a, ok))
sec=wait4((n,ok)=>setTimeout(ok,n*1000))


回应式(Reactive)只是给你自己管理单核while(1)的机会,挂起到函续是为了灵活复用触屏鼠标等流资源,调用栈=函续链表,yield=将caller的(retAddr捕获到.then)的空函数。 前者是魔法是驱动,后者是回调,是数据值。
回应式>卡线程,就像@装饰器>C宏 ,默认final>默认mut ,理所当然的严谨,不留模糊的余地。 trust me, Thread.ofVirtual() 和点号前面那货有代沟! 60年代为编译器的,竟比y2k为UNIX的API强。

至于async所“严重”缺乏的waitGroup,实际轻得多,而且 Promise.all([]) 能返回[], try{} 可以捕获内部await, Thread.join() 却啥都没定义,这安全吗!
他们只是看不惯JSer们对「OS后端的专利」有所突破,打破了NonlocalJump的魔法次元壁,把IO、设备流信号、缓冲区为己所用,突破了轮询+回调地狱的框架而已。
作者似乎想用 neverSettle = wait4(f=> 'never f!') 证明回调的依赖倒置是错误的,是泄漏的,但谁都知道 longjmp()和fork() 坑更多、更慢。不知哪天设备信号或驱动syscall就把UI卡死了!

因为就连Linux长年的八股“非惊群”evpoll,也是DOM「Reactive富二代」玩剩下的。
他应该想说 https://lotabout.me/2020/Back-Pressure :

60fps达不到,是卡帧or丢帧; 网卡流丢了几个包,是等待TCP or 佛系UDP; cat|less 的端点SIGHUP了,由谁持有cat已print\n的行?或是让cat卡在SYS_write(),甚至直接panic?
对N:M task来说,线程池里每个Worker,比如它们的write/sendto(),都有瓶颈。这就像在2核CPU上 make -j8 ,最终不是慢在切来还去,就是内存占满。 用户态调用栈(async回调) 忽视了N资源M监听反会变慢。

作者批评了 asyncio writer.drain() 的不默认,和超过SQL瓶颈数量的并发(缺乏 CapacityLimiter API)
作者建议,在 HTTP 中,您可以发出 503,它还可以携带retry-after标头,告诉客户端何时重试
其实,受到速率异步问题困扰的不仅仅是 async await 代码。 例如, Dask是数据科学程序员使用的非async Python 并行库,仍有因拥塞而缓冲区耗尽的例子

值得一提的是,作者引用这篇把 go func() 证明为goto的Rustacean文。 这种思想(其实就是 Thread.join)也在 py async with: 和 kt coroutineScope{} 里
https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/
https://docs.rs/async_nursery/latest/async_nursery/#basic-example
#py #code #learn 协程
https://gist.github.com/BeautyyuYanli/0a6891d8959bcf06b5cd2e5bd30ef3d1
……利用了py本身就支持 yield&return 而已。 其实和 https://www.ruanyifeng.com/blog/2015/05/co.html 一模一样,加了个 await(1)不回调优化
如果编译器愿意,它也可以在有 await() 时自动把def变async,甚至用类型隐藏await,只是这样就不一致了

*仅仅对pyjs有效,因为它们的参数数量是可修改的, jvm的固定为class{}里的方法签名
besides, await 'val' 在js里本身就是可行且优化的
把 yield* fRED() 当await也是co.js的发明
https://gist.github.com/duangsuse/3674d747ec5ea8ca510add26295e5a7d

>没错,async就是允许你setTimeout(retAddr,0s)并return的空函数,你们叫它yield或await。
这样一切回调地狱都能用 await new Promise(ret=> timers.push(1s,ret)) 解决,不是吗?
能捕获当前语句/算式号为变量的(ret)叫函续。等返回值卡线程,if分1段执行不完,就必须用 div(10,5,ok), div.bind(10,0)(ok,err) 的回调链表代替调用-返回栈

#algorithm 以前的
from itertools import accumulate,product as X
def generate(op, init, stop):
acc = init
while acc != stop: yield acc; acc = op(acc)
list(accumulate("是这样呢", lambda s,x: s+x))
_ == ['是', '是这', '是这样', '是这样呢']
list(generate(lambda s: s[1:], "不可能啊", ""))
_ == ['不可能啊', '可能啊', '能啊', '啊']

xz= X(*(s.split() for s in ["可乐 雪碧", "好喝 难喝"] ))
[*xz] #二层for, O(nn)
[('可乐', '好喝'), ('可乐', '难喝'), ('雪碧', '好喝'), ('雪碧', '难喝')]

permutations "abc" -> ["abc", "acb", "bac", "bca", "cab", "cba"]
//a是空数组,把每元素x放在a[i], i<n(a) 上,剩下的i同理
permut=a=> n(a)? a.flatMap((x,i)=> permut(a.toSpliced(i,1)).map(X=>[x, ...X]) ) : [[]]
n=a=>a.length
duangsuse::Echo
http://www.bilibili.com/video/BV1cFm8YGEKe #china #dev BLM DLM了🥰 https://zhuanlan.fxzhihu.com/p/704798293 Markdown编辑器 Mou 📱国内开发者和用户都是奇葩,一个想着办法不付钱,一个想办法挣快钱,猜猜最后谁受伤? #经济 🤗 btw. #apple 这方面真是闭源丁真,什么都吃,就知道用户够有钱,其实是群靠着开源上游,卖设计,设计上也不求上进的脚本小子。 吃定某款App,比如ytdl或C…
https://coolshell.org/articles/8398.html/ 🤔
这是一个 fortune 日历,尝试用 #js #code 爬取它的数据吧?

wget https://github.com/BetterTuring/HappyHackingCalendar/blob/main/【共享全文】了不起的程序员2021-文本.txt#L4533 #book

//Documents]$ xclip -o|bash
BKREF=/\w{2,7}(?=\))/g, BKDEF=/\(?<(.+?)>(.+?)\)/g
RE=(u, $,s=u.source, df={})=>(
s.replace(BKDEF, (m,k,v)=>df[k]=v),
RegExp(s.replace(BKREF, k=>df[k]), u.flags)
)
book={
re:RE(/(?<Ymd>\d{1,2}-\d{1,2})\n+(?<head>.*?)\[ (?<tag>\S+) \](?<body>.*?)\n+(?=Ymd)/sg),
*As(s) {
for(m of this.re[Symbol.matchAll](s)) { yield m.groups }
}
}

this.s??=prompt()
console.table(a=[...book.As(s+'0-0')])

pre=(fix,s)=>s? fix+s : s;

`mkdir qotd; cd $_ ; mkdir {1..12};`+
a.map(u=>`cat>${u.Ymd.replace('-','/')}<<OK
#${u.tag}
${u.body}${pre('\n//日码\n',u.head)}
OK
`).join('')
Forwarded from dnaugsuz
#code https://pastebin.com/LqSNNbfC
https://t.me/kotlin_cn/134204
想弄一个kt预处理期 编程语言

从昨晚只搞出个 py 缩进解析 🤪

不想写了,这周还有正事要弄
说起来也没有支持双向替换+中文的 gcc -E 啊
…… 都要自己写?
duangsuse::Echo
现代editor的输入延迟远输于42年前开发的Emacs。还有比编辑器更简单的功能吗?每敲击一次键盘,你所需要做的仅仅是更新一个小小的方形区域
#js 嗯…… 我现在就在PoC一个比 Prismjs.com,CodeMirror,Monaco(VSCode) 更正确的span高亮方法,基于2021之后的DOM
PGO得出的结果是,即便不考虑HTML parse开销,Range API 也比堆叠<span.高亮类型>好😒, #code 见下
https://x.com/i/grok/share/6EUWYNSsyq7Ixk6BvdVoFdxV3
https://x.com/i/grok/share/vwCog17kkAn4lD58VEDgjxgrF

让Blink去计算 contain: paint ,显然是比JS background-clip:text+canvas Worker 绘制彩色矩形要好了(我也在gh上PoC过),而且百行代码即可😄

#AI 看不到的是更多的文档
https://microsoftedge.github.io/Demos/custom-highlight-api/
https://htmlspecs.com/css/css-highlight-api-1/#range-invalidation


我对这个实现很乐观,虽然它明显比 span[ContentEditable] 要考虑更多区间更新的问题,但结合js侧配套的增量compiler,或许以wbr分词的 new Range(#text) 也是能自动延展的?
希望以后能自己创建相关的工具链。😃

#draft #vibe
这个高亮parser基于 eat(字符流),Bisect(区间链表),ast; 2+4+3 个接口,只针对(字面量or函数)的层面增量解析

s=eat('hello'):
`s(1)==s(-1) ='h', s(1)=='e'`,可结合 s=df(eat)() 打印调试关键语法
`s(/.*/), s(JSON.parse)` ,支持 s.ws=/\s+|#.*$/ 等,当 s.hl=='', 读项前自动跳空格(字面量内不跳),并保留 s.wsPre+='其空格'

s.by=Bisect(基于H5 span[attr],Text 等, 通过PahQL(el)设置):
'he llo'
by(0, s=>eatVar); by(0, s=>compileDef); 注册区间更新,肯定不能和parsec/递归下降那样return,咋搞下面会说 也有CSV(C=列A+B)的demo
by(2, '[BYGRP].'); 添加字面高亮(2字表示)。 BYGRP{vgbl}共5x4种基础颜色
by(5, {metaROW:0}); 添加函数上文,重复时只留最外层
by(3, '\r3\r-3'); 选区增删。\r开头即删掉llo一词,并显示 'he \xBB' 以指示当前区间和光标

s.env: 为动态作用域。当文本指代相同变量时,替换为第一个 DOM Text
s.fun(id,kv?); s.ret.pop(); 维护def或{}命名空间
s.var(); 注意,函数统一为 [body, args, void 0, locals, {kw}] 格式
s.exp('-', args): 创建(赋值)调用。在PahQL结果上可以 .As({'-':({k,v})=>v }) 或 .AST({}) 转换

ast:
s.inHole().As() 编译时快照候选值, ho.As(u=>u+1) 单向绑定, inHole((A,B)=>A+B) 可多路监听候选
PahQL提供 eatDef=(s,at二参数)=>at.ret(自动重解析) 的简写。在QL里,会将exp调用加入最近的 s.fun('-forif'?, 静态attrs?) 基本块,但无视 [/:/, s=>的值],需通过eatSym()(s)手动组合递归返回
调用约定为 -return等语法 --forif等块 /全局调用 ->具名函数值 。s.fun('-for') 后可能要调用 s.ret.push()

code[ontruncate,text-spans] 在全局更新时应检查 s.by{.errs .body} ,你要在此对 `"正在插入 \" 哦", /**/` 等读时断尾/读后有余的input单独容错
.sloc 可以在def节点保存报错位置
.scmPutback[''] 基于行首/变量名来匹配def内的注释, unparse时缩进 ['\nindent']='2 '
基本块(span.def)在被增量splice 后,会聚焦其id,方便简单遍历.body时做剪枝。
REPL和补齐需要在input不完整,或含'wtf.\xBB'时做print(PS1)或 .show(elems) 提示
二进制input,无需Bisect!直接解析引用: new Blob([bytes, [嵌套的struct数组], bytes]) ,unparse时flat()“序列化”输出
Please open Telegram to view this post
VIEW IN TELEGRAM
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 图片缓存下载工具
#code #CG
https://codepen.io/duangsuz/pen/OPXBppa
https://codepen.io/ksenia-k/pen/wvEMqNR

轻轻松松复刻专业人员的CG shader (cartoon fire) ,只问了7次(10min)。 最终只依赖THREE,比原版还简洁 😃

大人,时代变了 (不过还是只有洞察力/认知优先😒)
Please open Telegram to view this post
VIEW IN TELEGRAM
duangsuse::Echo
类型检查器都没见过,就开始元编程、写宏。现在计算机都开始纯数值怪了,一个AD 30行py都能写出来,永远落后一步
#py #code 微积分真是30行py就定义完了。用数学书教的那套文本替换,直接被淘汰。

怎么可能同时=0和不=0,就是有两个数同时算 😅

我的天,这还需要人教吗? 同时是和不是,波粒二象性、同时死和活,说明体系自己有毛病啊,还整出个lim和 ♾️

我没听过哪个ML或DSPer因为发明了【两个数同时算】而命名过定理的,不这么设计数制,公式就属于精分好吗。

还有集合论的 ZFC hack,真是🤡死了。哥德尔编码(元循环解释器)不去戳穿皇帝新装,还有罗素悖论,那么简单,就能把集合论的函数模型毁了,不就是说明概括公理很丑吗?

再多的公理堆砌,379页证明1+1=2,1行的理发师就把头给剃了,这说明世界认知的【出发点】脆弱不堪

每天 dy/dx, (a※b)(c※d) 真TM丑死我了,这ab又cd、三维ijk的有半毛钱关联性吗?留着是推理 f(x+1)-f(x) 的?自己数轴都不对(无穷微分的幻觉)。写成 D(x^2)=2x 直接发明Rust模式匹配和递归定义好吗


构造-解构和递归都没有算什么严谨啊? 就这,还指导计算机呢

都是赖在新手村装神弄鬼的,真的唐完了,i=√-1, C=2πr 多写几个字就看得出来没什么天才,就是物理世界「说的明白」的直觉。😅😅😅

他们的需求很容易被比喻: 看视频时,你需要dt=(1/60),占有限的权重,而下载或处理mp4时,你需要【一键看完】,所以要趋于无穷快。在离散微分里,这仅仅是单位1不同,但在数学上就悖论了
离散就是有全局变量d的连续,非线性的基石是二次型,不是正确的N阶导废话,π前也不该粘上2,1 turn(1τ)是整体事件

能把圆周率、距离平方和vec2砍成一半(τ/2, d2, sin cos) 还出了【悖论】的高数也真是【宇宙的母语】了。服了。

https://github.com/Kuri-su/yinwang.bak/blob/master/articles/数学和编程.md
#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 都是 #rust ,甚至还做了 bun:test

https://github.com/chase/awrit/blob/electron/src/paint.ts#L34-L57
This media is not supported in your browser
VIEW IN TELEGRAM
#code init.lua 120行, 实现了KDE下往vim里内嵌窗口

象征性开源一下,没有什么功能。 有些感叹, 4天前说的概念,这不就用上了……

做了个C/C++窗体热重载功能, 对GTK挺好的(简直良心,比Web世界快多了),Qt的话官方IDE编译性能也不咋地,没有QML重载就做不出效果

当然也支持pyqt/gobj的,只是要写cpp exec()。

我觉得Vim应该也就拿来写个c系,py js 应该不搭的吧…… 但反过来,哪怕是G/Q的官方IDE也不如LazyVim

#ai探讨 https://chat.librechat.ai/share/gM26LMXRmBmB1MOtYI02Q

聊了关于此Vim配置(真的只是配置??) 和vibe带来的问题。 AIGC的毛病不止影响“业余狂吹”,也会影响我们……

——他们都在说AI取代古法编程,可是我这一和你说,就发现有很多误会,根本做不到免费升IQ。 当然,Moonbit的张宏波认为AIGC对系统编程也是有帮助的(虽然他实际上没有多用)。 理解一门编程语言,和说它,是两回事
duangsuse::Echo
曾经也想过,如果能在类似邮电或南大的 #PLT 或编译原理、操作系统相关进修,是否能创造的更好。
#life 是否后悔没上过CS系的大学?

🦄 我只能说forif、【栏目答&括需】【回调链表】的世界观形成后,
我再也不需要用【流控】【匿名函数&闭包】【协程/yield/await/go func/续体】 这样的术语、行话了


如果没有我的世界观,如果它们作为一道填空题是0分,我就无法看到更宽广的缺口和可能性。 🏫
我不是双核CPU,不能同时运行一套修修补补的汇编之城,与一套从【直观感想】出发的交互式天国。

每个人都在维护【上游】的面子。可在我看来,虽然Vue欠v8很多,但 JQ->Vue 的代差,numpy和GPGPU的Swizzle,使v8的数百万行代码,显得十分愚蠢。

类似【回调链表A=>B=>(A+B)】这样的词典我有两三百个,我不列举它们,但它们都能在关键时刻给我【那种既视感】,而这一切是潜移默化的: 我确实不在现代的栈上工作,不然,我就不能用120行实现别人3年的运行效果。

别以为我会为代码和特技hack而骄傲—— 😋 在我的世界观中,没有 clean hack 才是应该fix的毛病。成熟是一个bug,而不是一个feature。

干练的思想、简明的实现,是理所当然的。【功能】应该像硬件和思维那样跟手,这就是我信奉的【Functional Programming】

我并非在学习CS。 我是在一个空白的沙盘上,【重新发现】每个知识点,尽管这花了不少力气,缺了不少【兼容性】,但我知道——它是恰如其分的,而软件世界不。他们不在乎多几行代码或几MB的依赖。


人的IQ是有极限的,所以我想当好一个 Human Being:请讲普通话,请写规范字。

如果没有printf和Visitor的实例,算什么理解OOP的多态?如果没有Proxy和 class(v:T): T by v{} ,算什么搞懂了继承与封装?

从一个动作的特例,就可以理解场景的本质需求,就像声明式的括需树( (A,B)=>_=>A(_)+B(_) ) 般抓住了结构和意图的榫卯。

对于 #PLT 而言,吾行之,明也。 以前我认为王垠在上海收太贵,现在想起来,他分享的远比索取的要多。

📝 对于一个普通人,我们需要的不是把【结果】和混乱的脚本和抽象捆绑销售、夹带私货的那种大佬,而王垠做到了:他是我眼中的【软件工艺师】,而不是PL人。

原来【原理】【从硬件往上数的体系】是可以被听懂的。 —— 只有极少数。阮一峰、陈皓那样为了功利应用科普的博主,也都并不多见。你能看到许多 jia.je 博客的“散装版本”,而那并不是我所说的知行合一

PL人就像全栈或ML那样,终究只是在屏幕之内编程,甚至进程之内编程。而 Human Being,知道要把精力省下来,应对隐形的代码。


答案是:我既不后悔没有北邮or各种外国语大学的经验,也不后悔在技术栈上【离群】。

LLM 已经很P9了,不需要另一个人假装自己比它们会搭样板间;系统编程已经足够难了,不需要另一个人告诉世界【我知道forif和ur->name是怎么变成goto偏移量的】。

屏幕外的那些代码,比如,如何让一个playground在能够接受的10分钟内跑起来,不报错;如何拯救夜不能寐的DX体验,这些,是许多人【从未学到】的。 我很好奇是什么让他们过的这样顺——就像,全面屏和剪贴板诞生之前,人们是怎么工作的? 终于已经显示出来了:把nav放在aside的屏幕左侧,很奇怪的吧……

洞察力、自顶向下的既视感、不限于键盘鼠标的那种交互性程序(比如lil-gui和GoldenLayout平铺式窗口管理,是否只是GUI而已)? 这依然是我以后的研究方向。

如果 Alan Kay 可以用一个车头有蓝点的2D小车让Jobs【看到未来】…… 这种【短而不凡】的代码科学 ——就当它是写给小孩子的了,依然比前沿更前沿。
#code #vibe

其实作者并非 AI boys 所说毫无专业训练和准备。在初次开源时,就有了完整的世界观设定
..
当时这个地图生成是2k行,已经是无限流了 。同时是复杂指标top1的文件

[svg] 8MB,感觉是把Codex做爽了

标准的「无头控制大头」,像nerdfonts那样的数量去生成草图,堆料看起来很满,最后不具备可玩性...

游戏生物AI算法也很拉垮,但这就算了。 表面上看起来和《生存战争》好像一样的质量

不清楚是不是方块facestrip太卡,站在卡出透明的块上,没有直接掉下基岩,甚至感觉超平坦


🤔 又是一个复杂度的教训呢。P1所示的文件,历史上曾超过2MB (尝试conv2rust),后来也没搅碎
..足足有1.6M,没有什么设计模式,就硬分模块。至于codecov就不得而知了,反正Agent也是可以联机进去,就是没看是不是vLLM协议
duangsuse::Echo
😅😅😅 这是一个右下角客服评论板的ws://后端 回看2022的 #py cli2sock 才发现这写的啥啊,这和gpt5也半斤八两了,不如Fable好读 设计为支持微信回复(wxSay=print, StreamReader->say.onWx), wxSay分配一个短 ID i “带超时”过期释放实现回复 #ai锐评 确实还不如AI了,内插了 @ data 装饰器和AP.Namespace这样的东西,不支持IPy支持还搞了TimeLim队列,它是过度工程化,不是脚本化
#code https://stackblitz.com/edit/vitejs-vite-fenosa6i?file=server.coffee
npm i -D coffeescript socket.io express
正好解决了ws的可移植性毛病

WebContainers和 webvm.io 一样【Always free for Open Source】, npm 地狱究竟养活了多少人啊。幸好普通CDN可以用 esm.run ,部署可以上Workers。


一个几行代码的 is-odd 或 left-pad 背后,是对fetch+ws的基础API都不理解么? 想起了CoreJS的悲剧闹剧
这该死的 #js 世界..

这种极端的微包(Micro-package)主义简直是在扯淡,JQ 因为没有Signal模型被【淘汰】,lodash被认为笨重,但是现在AI来了,这些npm地狱正好一起死吧 👎
duangsuse::Echo
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 时我的震惊已经无以复加,就连英文编写的内容也有一种进了…
#code #design 现在会写代码、能跑,真的已经没有任何稀奇了

什么AVL和NFA都可以写800行最宽200列 ,一个函数签名200列

一个 .lean 文件 20k 行,以后随便一个安装包GH上都是《海底两万里》

屠龙勇士? 它们也是恶龙。 无法理解源码,就以为能理解proptest,结果是断言也要交给AI,那个代数又有几个人能看懂。

随便一个文件夹上百.swift ,里边函数列表比我写的代码的行号,还多两倍。

遇到复刻MC的xyzb体素引擎,那个.ts文件都能2MB(大约是 5万到10万行trigger fun),没有Codex读写都做不到,手工改更不现实

真别说日用的编译器复杂,谁能想到2M……

我认为,工具链和框架已经不再需要为AI的表现优化了,they 的理解能力,完全不需要按人类和组织的标准去衡量…… 人家天天手搓Linux和Blink呢 ,别问output,就看token是不是这个体量?!

专心为人如何维护高层数据流优化吧。
它们才是长了轮子的,不需要护膝。
duangsuse::Echo
ML领域的【内部特征流形】也是个黑话

——不可调整,不可泛化,只是特定工作流(vec嵌入)的复述
#statement #code
当你用这种词、这种软件时,它什么都有,甚至能提供这一类工作的方便(能跑通,AI测试全覆盖)

但你没有获得任何事物的理解。“流形” 既不可视化,也不能自由改变,更不贡献泛化力和心智模型

Agent 时代编程最大的改变是, 以前你的demo和小软件像是【公钥】,基本上只有你维护有性价比

现在,别人看到一个就能抄一个,压根不需要逆向(推倒重来可能比原版更有特色)。 直接从【动态媒介】变成类似视频、小说一样的【所见即所得】


过去,编译后的产品、前端混淆后的代码、甚至 Demo 录屏,都只是一把“公钥”。别人能看能用,但无法轻易逆向出“私钥”(源码和底层逻辑)。原作者曾天然拥有维护的护城河。

拥有视觉和Goal能力的Codex们好比应用层的量子计算机,fork你某个模块的成本是 0。

“推倒重来”的成本已经低于“阅读并修改旧代码”的成本,它甚至比实拍的视频更容易“翻拍”了。 【有恒产者有恒心】 在未来的工程化里,是否仍然奏效呢?

对于全AIGC的源码,就有这种问题。 节点图和prompt的保留只是AI工作流的一个借口。代码出生即死亡——从来没有人拥有过它。

“流型” 只是个代名词,里边儿没有任何动词在那,甚至连名词都不包含。它就像幽灵外卖那样 “好吃”

代名词只是一个指向的手势——指向某个你不打算进入的地方。

这就是我说的【软件失忆问题】,放在生活中的体现
Forwarded from duangsuse
🤨 分享一个偶然的体会—— P/NP (能验证==能生成?)问题简直像被解决了一样

以前拿到安装包的人只“拥有”很小一部分(更不用说拿到截图了),现在,如果只是想改很小一部分,基本上不需要理解就能完成了。

在理论计算机科学中,NP 是指“很容易验证答案”,而 P 是指“很容易计算出答案”。
Agent 时代编程最大的改变是, 以前你的demo和小软件像是【公钥】,基本上只有你维护有性价比

现在,别人看到一个就能抄一个,压根不需要逆向(推倒重来可能比原版更有特色)。 直接从【动态媒介】变成类似视频、小说一样的【所见即所得】

“推倒重来”的成本已经低于“阅读并修改旧代码”的成本,它甚至比实拍的视频更容易“翻拍”了。 【有恒产者有恒心】 在未来的工程化里,是否仍然奏效呢?

https://t.me/dsuse/23179
duangsuse
哈哈哈,想起来我以前也写过硬字幕OCR的workflow,还被人开email“骚扰”过 ./extract_subtitles.py -crop '0(907,940)[101,77]' -lang eng a.flv https://github.com/duangsuse-valid-projects/extract-subtitles 仔细想想,ML世界的API都比较好调用,甚至比“传统编程”的函式库/工具包好用多了 #dev 这一点接口一致性上,反而是ML和DSP/游戏开发领域的无敌了,现代前端相比来说差很远。
#ai锐评 #py #code

继续【震惊跌坐】

AI弹指间就把几年前写的【视频硬字幕高缓存OCR】【扒的底裤都不剩】

它还把仓库【打开对过】,谷歌的则和地图选点、yt视频有深度集成,IDE都不用安装的可怕

😋 虽然,从P1右下角就能看出,我的代码质量还是在理的, 但如果我故意写成 【咦咦呜呜,哇呀呀呀】的样子,grok照样瞬间剃掉所有私货,没收作案工具

也还是「两帧相减、求和、取局部极大、选语言 OCR」。控制流就一条:读帧、裁、差分、峰值、识别、按相似度折叠。

它还批判我 “真正值得叫缓存的是:OCR 结果按感知哈希(pHash/dHash)建索引,画面重复直接查表不跑模型,不是改了一个字的相邻条。”

btw. 这个 py flow 也是我重构别人的,虽然确实学会了怎么写flow
quick paster
readme: fix typo Co-Authored-By: GNU nano 9.0 (UTF-8, EDITOR and VISUAL, guidestripe=72) <nano@gnu.org> Co-Authored-By: Ghostty 1.3.1 (Metal renderer) <ghostty@localhost> Co-Authored-By: zsh 5.9 (arm64-apple-darwin26.0) <zsh@localhost> Co-Authored-By: Git…
#code 这里可是我的笔记本啊

我怎么会让小助手Co push呢?

AI整了非常多0接管的工具,口号也是0px diff,一口价服务,但核心API还需要由我来整理,每行都通读