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 ❤️
https://asciinema.org/a/95472 ANSI粒子
https://zhangshuqiao.org/2018-05/有趣的Linux命令行工具/ 有天气预报
#tool curl -4 http://wttr.in
我语文能力不好, 这个答主说的在理, 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
FxZhihu / Fixup Zhihu
如何看待哔哩哔哩up“老师好我叫何同学”最新视频无授权使用开源项目的代码? - @巨蜥拉卡 | FxZhihu
可能有很多吃瓜群众不知道这事儿的魔幻程度,这里专门解释一下这个ASCII-Generator的技术含量,业余python爱好者,大家看个乐子不要深究。 做ASCII字符画的形式有很多种,其中通过量化图像然后用不同“浓度”的字符来代替黑白对比度的这种方式,根据Wikipedia的说法 [1],是1960年代就有的事儿: [图片] 具体流程其实猜也能猜的到:图像是像素构成的,我把图像转成黑白的,分成若干小块,每个小块的像素亮度求个平均值,亮度高的,用点(.…
#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
回应式(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
作者似乎想用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
Armin Ronacher's Thoughts and Writings
Playground Wisdom: Threads Beat Async/Await
Musings about async await again and why I think virtual threads
#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 以前的
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
Gist
cwaitable.py
GitHub Gist: instantly share code, notes, and snippets.
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
这是一个 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('')
酷 壳 - CoolShell
xkcd 神图“Click and Drag” | 酷 壳 - CoolShell
Appinn Feed|小众软件
通过摄像头实现镜面效果。 示例: https://shiny-button.vercel.app/ 项目: https://github.com/alexwidua/prototypes 视频 蚁工厂
#css #gl b23.tv/BV1vwM3zFESr
如果组件形状固定,可以预先计算好法线贴图和高光贴图,直接使用svg filter来实现,无需javascript和WebGL。无论使用css实现还是着色器,计算负载都要远远小于使用Three.js这样的真3D引擎,实际上使用法线贴图渲染折射比高斯模糊计算量还小。
https://github.com/rxing365/html-liquid-glass-effect-webgl #code
如果组件形状固定,可以预先计算好法线贴图和高光贴图,直接使用svg filter来实现,无需javascript和WebGL。无论使用css实现还是着色器,计算负载都要远远小于使用Three.js这样的真3D引擎,实际上使用法线贴图渲染折射比高斯模糊计算量还小。
https://github.com/rxing365/html-liquid-glass-effect-webgl #code
Bilibili
在HTML中实现液态玻璃组件_哔哩哔哩_bilibili
众所周知目前CSS没有一个叫做“折射”的效果(废话),在看了苹果发布会之后虽然对实用性有些疑问,不过感觉比较有趣,于是用HTML中的canvas组件以及片段着色器也实现了一个,发个视频记录一下。可以基本模仿苹果的折射、高光、毛玻璃效果,不过苹果在法线形状、光照、动效上明显有着更加深入的打磨。因为GPU对使用法线扰动实现的折射效果支持非常成熟(2004年的Half-life2就有这种效果了),意外的, 视频播放量 28827、弹幕量 2、点赞数 552、投硬币枚数 79、收藏人数 542、转发人数 101…
Forwarded from dnaugsuz
#code https://pastebin.com/LqSNNbfC
https://t.me/kotlin_cn/134204
想弄一个kt预处理期 编程语言
从昨晚只搞出个 py 缩进解析 🤪
不想写了,这周还有正事要弄
说起来也没有支持双向替换+中文的 gcc -E 啊
…… 都要自己写?
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过),而且百行代码即可😄
我对这个实现很乐观,虽然它明显比 span[ContentEditable] 要考虑更多区间更新的问题,但结合js侧配套的增量compiler,或许以wbr分词的 new Range(#text) 也是能自动延展的?
希望以后能自己创建相关的工具链。😃
#draft #vibe
PGO得出的结果是,即便不考虑HTML parse开销,Range API 也比堆叠<span.高亮类型>好
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 图片缓存下载工具
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,比原版还简洁😃
大人,时代变了 (不过还是只有洞察力/认知优先😒 )
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
codepen.io
Untitled
...
duangsuse::Echo
类型检查器都没见过,就开始元编程、写宏。现在计算机都开始纯数值怪了,一个AD 30行py都能写出来,永远落后一步
#py #code 微积分真是30行py就定义完了。用数学书教的那套文本替换,直接被淘汰。
怎么可能同时=0和不=0,就是有两个数同时算 😅
我的天,这还需要人教吗? 同时是和不是,波粒二象性、同时死和活,说明体系自己有毛病啊,还整出个lim和 ♾️
我没听过哪个ML或DSPer因为发明了【两个数同时算】而命名过定理的,不这么设计数制,公式就属于精分好吗。
还有集合论的 ZFC hack,真是🤡死了。哥德尔编码(元循环解释器)不去戳穿皇帝新装,还有罗素悖论,那么简单,就能把集合论的函数模型毁了,不就是说明概括公理很丑吗?
构造-解构和递归都没有算什么严谨啊? 就这,还指导计算机呢
都是赖在新手村装神弄鬼的,真的唐完了,i=√-1, C=2πr 多写几个字就看得出来没什么天才,就是物理世界「说的明白」的直觉。😅😅😅
他们的需求很容易被比喻: 看视频时,你需要dt=(1/60),占有限的权重,而下载或处理mp4时,你需要【一键看完】,所以要趋于无穷快。在离散微分里,这仅仅是单位1不同,但在数学上就悖论了
https://github.com/Kuri-su/yinwang.bak/blob/master/articles/数学和编程.md
怎么可能同时=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
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
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的毛病不止影响“业余狂吹”,也会影响我们……
象征性开源一下,没有什么功能。 有些感叹, 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系的大学?
如果没有我的世界观,如果它们作为一道填空题是0分,我就无法看到更宽广的缺口和可能性。 🏫
我不是双核CPU,不能同时运行一套修修补补的汇编之城,与一套从【直观感想】出发的交互式天国。
每个人都在维护【上游】的面子。可在我看来,虽然Vue欠v8很多,但 JQ->Vue 的代差,numpy和GPGPU的Swizzle,使v8的数百万行代码,显得十分愚蠢。
类似【回调链表A=>B=>(A+B)】这样的词典我有两三百个,我不列举它们,但它们都能在关键时刻给我【那种既视感】,而这一切是潜移默化的: 我确实不在现代的栈上工作,不然,我就不能用120行实现别人3年的运行效果。
人的IQ是有极限的,所以我想当好一个 Human Being:请讲普通话,请写规范字。
如果没有printf和Visitor的实例,算什么理解OOP的多态?如果没有Proxy和 class(v:T): T by v{} ,算什么搞懂了继承与封装?
从一个动作的特例,就可以理解场景的本质需求,就像声明式的括需树( (A,B)=>_=>A(_)+B(_) ) 般抓住了结构和意图的榫卯。
对于 #PLT 而言,吾行之,明也。 以前我认为王垠在上海收太贵,现在想起来,他分享的远比索取的要多。
答案是:我既不后悔没有北邮or各种外国语大学的经验,也不后悔在技术栈上【离群】。
LLM 已经很P9了,不需要另一个人假装自己比它们会搭样板间;系统编程已经足够难了,不需要另一个人告诉世界【我知道forif和ur->name是怎么变成goto偏移量的】。
屏幕外的那些代码,比如,如何让一个playground在能够接受的10分钟内跑起来,不报错;如何拯救夜不能寐的DX体验,这些,是许多人【从未学到】的。 我很好奇是什么让他们过的这样顺——就像,全面屏和剪贴板诞生之前,人们是怎么工作的? 终于已经显示出来了:把nav放在aside的屏幕左侧,很奇怪的吧……
🦄 我只能说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【看到未来】…… 这种【短而不凡】的代码科学 ——就当它是写给小孩子的了,依然比前沿更前沿。
Telegram
duangsuse::Echo
#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探讨 …
象征性开源一下,没有什么功能。 有些感叹, 4天前说的概念,这不就用上了……
做了个C/C++窗体热重载功能, 对GTK挺好的(简直良心,比Web世界快多了),Qt的话官方IDE编译性能也不咋地,没有QML重载就做不出效果
当然也支持pyqt/gobj的,只是要写cpp exec()。
我觉得Vim应该也就拿来写个c系,py js 应该不搭的吧…… 但反过来,哪怕是G/Q的官方IDE也不如LazyVim
#ai探讨 …
#code #vibe
其实作者并非 AI boys 所说毫无专业训练和准备。在初次开源时,就有了完整的世界观设定
..
当时这个地图生成是2k行,已经是无限流了 。同时是复杂指标top1的文件
[svg] 8MB,感觉是把Codex做爽了
标准的「无头控制大头」,像nerdfonts那样的数量去生成草图,堆料看起来很满,最后不具备可玩性...
游戏生物AI算法也很拉垮,但这就算了。 表面上看起来和《生存战争》好像一样的质量
不清楚是不是方块facestrip太卡,站在卡出透明的块上,没有直接掉下基岩,甚至感觉超平坦
🤔 又是一个复杂度的教训呢。P1所示的文件,历史上曾超过2MB (尝试conv2rust),后来也没搅碎
..足足有1.6M,没有什么设计模式,就硬分模块。至于codecov就不得而知了,反正Agent也是可以联机进去,就是没看是不是vLLM协议
其实作者并非 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
一个几行代码的 is-odd 或 left-pad 背后,是对fetch+ws的基础API都不理解么? 想起了CoreJS的悲剧闹剧
这该死的 #js 世界..
这种极端的微包(Micro-package)主义简直是在扯淡,JQ 因为没有Signal模型被【淘汰】,lodash被认为笨重,但是现在AI来了,这些npm地狱正好一起死吧 👎
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是不是这个体量?!
专心为人如何维护高层数据流优化吧。
它们才是长了轮子的,不需要护膝。
什么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嵌入)的复述
——不可调整,不可泛化,只是特定工作流(vec嵌入)的复述
#statement #code
当你用这种词、这种软件时,它什么都有,甚至能提供这一类工作的方便(能跑通,AI测试全覆盖)
但你没有获得任何事物的理解。“流形” 既不可视化,也不能自由改变,更不贡献泛化力和心智模型
对于全AIGC的源码,就有这种问题。 节点图和prompt的保留只是AI工作流的一个借口。代码出生即死亡——从来没有人拥有过它。
“流型” 只是个代名词,里边儿没有任何动词在那,甚至连名词都不包含。它就像幽灵外卖那样 “好吃”
代名词只是一个指向的手势——指向某个你不打算进入的地方。
这就是我说的【软件失忆问题】,放在生活中的体现
当你用这种词、这种软件时,它什么都有,甚至能提供这一类工作的方便(能跑通,AI测试全覆盖)
但你没有获得任何事物的理解。“流形” 既不可视化,也不能自由改变,更不贡献泛化力和心智模型
Agent 时代编程最大的改变是, 以前你的demo和小软件像是【公钥】,基本上只有你维护有性价比
现在,别人看到一个就能抄一个,压根不需要逆向(推倒重来可能比原版更有特色)。 直接从【动态媒介】变成类似视频、小说一样的【所见即所得】
过去,编译后的产品、前端混淆后的代码、甚至 Demo 录屏,都只是一把“公钥”。别人能看能用,但无法轻易逆向出“私钥”(源码和底层逻辑)。原作者曾天然拥有维护的护城河。
拥有视觉和Goal能力的Codex们好比应用层的量子计算机,fork你某个模块的成本是 0。
“推倒重来”的成本已经低于“阅读并修改旧代码”的成本,它甚至比实拍的视频更容易“翻拍”了。 【有恒产者有恒心】 在未来的工程化里,是否仍然奏效呢?
对于全AIGC的源码,就有这种问题。 节点图和prompt的保留只是AI工作流的一个借口。代码出生即死亡——从来没有人拥有过它。
“流型” 只是个代名词,里边儿没有任何动词在那,甚至连名词都不包含。它就像幽灵外卖那样 “好吃”
代名词只是一个指向的手势——指向某个你不打算进入的地方。
这就是我说的【软件失忆问题】,放在生活中的体现
Forwarded from duangsuse
🤨 分享一个偶然的体会—— P/NP (能验证==能生成?)问题简直像被解决了一样
以前拿到安装包的人只“拥有”很小一部分(更不用说拿到截图了),现在,如果只是想改很小一部分,基本上不需要理解就能完成了。
在理论计算机科学中,NP 是指“很容易验证答案”,而 P 是指“很容易计算出答案”。
https://t.me/dsuse/23179
以前拿到安装包的人只“拥有”很小一部分(更不用说拿到截图了),现在,如果只是想改很小一部分,基本上不需要理解就能完成了。
在理论计算机科学中,NP 是指“很容易验证答案”,而 P 是指“很容易计算出答案”。
Agent 时代编程最大的改变是, 以前你的demo和小软件像是【公钥】,基本上只有你维护有性价比
现在,别人看到一个就能抄一个,压根不需要逆向(推倒重来可能比原版更有特色)。 直接从【动态媒介】变成类似视频、小说一样的【所见即所得】
“推倒重来”的成本已经低于“阅读并修改旧代码”的成本,它甚至比实拍的视频更容易“翻拍”了。 【有恒产者有恒心】 在未来的工程化里,是否仍然奏效呢?
https://t.me/dsuse/23179
Telegram
duangsuse::Echo
#statement #code
当你用这种词、这种软件时,它什么都有,甚至能提供这一类工作的方便(能跑通,AI测试全覆盖)
但你没有获得任何事物的理解。“流形” 既不可视化,也不能自由改变,更不贡献泛化力和心智模型
Agent 时代编程最大的改变是, 以前你的demo和小软件像是【公钥】,基本上只有你维护有性价比
现在,别人看到一个就能抄一个,压根不需要逆向(推倒重来可能比原版更有特色)。 直接从【动态媒介】变成类似视频、小说一样的【所见即所得】
对于全AIGC的源码,就有这种问题。 节点图…
当你用这种词、这种软件时,它什么都有,甚至能提供这一类工作的方便(能跑通,AI测试全覆盖)
但你没有获得任何事物的理解。“流形” 既不可视化,也不能自由改变,更不贡献泛化力和心智模型
Agent 时代编程最大的改变是, 以前你的demo和小软件像是【公钥】,基本上只有你维护有性价比
现在,别人看到一个就能抄一个,压根不需要逆向(推倒重来可能比原版更有特色)。 直接从【动态媒介】变成类似视频、小说一样的【所见即所得】
对于全AIGC的源码,就有这种问题。 节点图…
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
继续【震惊跌坐】
AI弹指间就把几年前写的【视频硬字幕高缓存OCR】【扒的底裤都不剩】
它还把仓库【打开对过】,谷歌的则和地图选点、yt视频有深度集成,IDE都不用安装的可怕
😋 虽然,从P1右下角就能看出,我的代码质量还是在理的, 但如果我故意写成 【咦咦呜呜,哇呀呀呀】的样子,grok照样瞬间剃掉所有私货,没收作案工具
也还是「两帧相减、求和、取局部极大、选语言 OCR」。控制流就一条:读帧、裁、差分、峰值、识别、按相似度折叠。
它还批判我 “真正值得叫缓存的是:OCR 结果按感知哈希(pHash/dHash)建索引,画面重复直接查表不跑模型,不是改了一个字的相邻条。”
btw. 这个 py flow 也是我重构别人的,虽然确实学会了怎么写flow