#py #FP 入演算 挺简单的介绍..
https://gist.github.com/vakila/3d5cebaebf01c4c77b289b9a0388e3c8
栏目答是「任何语言代码」背后的核心, 而编程的核心是自顶向下的组合代换,就像从[原子Atom]、生物学,到医学和人。 forif, 对应列表处理的 filterMap 都可以用"她🐑"实现!
ps. 图灵完备和 Turing Award 无关,意思是可以把 QEMU.org 移植到某个编程语言里面去,但没有声音图形和点按设备。 这显然不是评价语法-语意表现力和融恰度的指标。
#tool #recommend
https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks 很好玩的 awesome-list !
#learn 纪念我在7年前的「编程入门」博客
https://gist.github.com/duangsuse/519411ab618ee57350ee2df93d33f58e
https://gist.github.com/vakila/3d5cebaebf01c4c77b289b9a0388e3c8
栏目答是「任何语言代码」背后的核心, 而编程的核心是自顶向下的组合代换,就像从[原子Atom]、生物学,到医学和人。 forif, 对应列表处理的 filterMap 都可以用"她🐑"实现!
data🐑𝛌 栏目答 = 算式Sexpr |
Sym | Abst [Sym] 栏目答 | Args 栏目答 [栏目答] — ({? (rand) exit quit} 1) 是有效的,不用 (..).call(,1)
data Sexpr = Ln [Sexpr] | Int | Str | ... # 非Line即Atom
有别于计算器的关键点是「Sym的地址」。它不能是全局表的"key",而是类似AST树洞、 x=await,可以放东西,无论是否“求值”、等多久靠谁“求值”、在编译期或调用堆叠上“求值”,只配合SDK/ABI即可实现App的运行。 Abst是Absent的缩写,求值=对单步化简(reduce)的深先替换。
栏目答喜欢宣传 Currying(颗粒化传参 A=>B=>A+B) 和 “用回调层数编码数字”,但那只是数学家的把戏。 也有人把第一层参数 (A) 称为this.A或nonlocal A ,那很有价值。官方翻译是 free vars, unbound 或 closure (module 私有)
栏目答一般用于代数(组合逻辑),它和无语句函数是等效的 (整个 callgraph /API 都不能有语句和{基本块}!因此,全局 vartree 也都没必要 let mut 了)。 JSON,XML loaddump, ...DSL 都可以用栏目答编写,有运行期/编译期template<> 的也可以! 😋
在 computation theory (类似WiFi vs 无线电理论) 上,栏目答并不太「图灵完全」 ,就像许多类型推理器,但它解决了仅为了沙箱化 while(1) 而多开线程的麻烦,越来越多工业语言在应用她。 死循环可以写 letrec 伪递归(调用 YCombinator polyfill 解决纯函数禁止全局赋值+取值自身的毛病)
f=栏目答 x: x+1
f=Abst(narg=1,nlet=0, [十(Arg$(1), Const(1)), ]) #, ...以(x+1)为参数继续调用
def Const(json)(stack): json
def Arg$(n=1)(stack): stack[-1][n]
def 十(A, B)(stack): A(stack)+B(stack) # jvm 直接把A,B默认bind到了求值栈上,这里写明,只是为了避免误解
十=(A,B)=> dumpOpcode('iadd', stack=>A(stack)+B(stack) ) # 协议的「语意」是用ID保证代码的跨端同一
@ https://t.me/dsuse/21117
@ https://t.me/dsuse/21179
@ https://tomstu.art/hello-declarative-world#functions-and-relations #sql 是关系式编程?
ps. 图灵完备和 Turing Award 无关,意思是可以把 QEMU.org 移植到某个编程语言里面去,但没有声音图形和点按设备。 这显然不是评价语法-语意表现力和融恰度的指标。
#tool #recommend
https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks 很好玩的 awesome-list !
#learn 纪念我在7年前的「编程入门」博客
https://gist.github.com/duangsuse/519411ab618ee57350ee2df93d33f58e
Gist
Anjana Vakil, "Mary had a little lambda", OSCON 2018 (https://conferences.oreilly.com/oscon/oscon-or/public/schedule/detail/67384)…
Anjana Vakil, "Mary had a little lambda", OSCON 2018 (https://conferences.oreilly.com/oscon/oscon-or/public/schedule/detail/67384) & EuroPython 2017 (https://youtu.be/7Bsf...
❤1
duangsuse::Echo
可编程性就是从约定里来的
你们别看我经常写脚本,我的API思维没有被 #bash #py 带偏……🤔
给不懂开发的极客科普下「编程范式」的进化吧,比如说 C, Java, JS(Vue)和SQL
它们分别是 [面向过程POP] [面向对象OOP] [函数和关系式FP/Reactive]
#learn
三种范式,可以从语言学、指针宽度、类型广度 拆解比喻一下。
编程范式,就是看「如何把数据和代码绑在一起更好续写」? 实践上,语法和类型能够辅助思考。
Rust 是一个静态优化、支持预处理(码可揉)的OOP, 它的函数式能力不如pyJS,这是省略变量树GC的代价。
# 语言学: VSO,SVO,noVerb 🌐
以文件夹版本控制/网盘站 GitHub.com/:u/:repo 的 $ gh 工具为例
这个功能点所见即所得,那拿3种范式将其封装为函数。
坏处是无法管理多个账户,所以只能写写游戏脚本、按键精灵、爬虫。
很明显,这是因为账户和 $HOM/ 的配置文件耦合了,成为了 globalThis。把this配置参数化,我们不仅能多账号,还收获了json这种文档格式! C语言的 .o 对象,就缺乏局部键值,只有线程局部。
所以更OOP(但反直觉)的写法是:
OOP优秀的一点是调用链, Object也可以作为 context Subject 继续作联动(类似SQL JOIN)
不过,叠3层new就说明这框架不能用了,过度设计。
最后是FP,因为很多人高估了FP的语意,甚至用纯函数冗余来 “拉抬🐷价”,我要加个需求以彰显其意义:
login() 要支持OTP单次密码,而它必须在密码正确后才能输入,或者要多次重试…… 但 ()=>栏目答都能胜任:
FP对于 gh newRepo 这种业务也有加成,比如用 await Promise((ok,KO)=> callback=ok ) 自动回调化来避免嵌套的「闭包链表」,实现yield分块优化等等
假如,编程是让懒得点黑框框的人用电脑,元编程就是让看不懂花花代码的人用编程。 所以,编程范式的「组合穿搭」还是很重要的,并不是古生物学那样的冷门哲学
试想一下,如果就连框架作者、架构师用的语言和runtime你都知根知底, 你自己设计,或分析吐槽别人的作品,还困难吗? 基础领域并不是象牙塔,它与软件开发者的身心健康息息相关。
给不懂开发的极客科普下「编程范式」的进化吧,比如说 C, Java, JS(Vue)和SQL
它们分别是 [面向过程POP] [面向对象OOP] [函数和关系式FP/Reactive]
#learn
三种范式,可以从语言学、指针宽度、类型广度 拆解比喻一下。
编程范式,就是看「如何把数据和代码绑在一起更好续写」? 实践上,语法和类型能够辅助思考。
Rust 是一个静态优化、支持预处理(码可揉)的OOP, 它的函数式能力不如pyJS,这是省略变量树GC的代价。
# 语言学: VSO,SVO,noVerb 🌐
以文件夹版本控制/网盘站 GitHub.com/:u/:repo 的 $ gh 工具为例
gh login
gh new-repo $(rand).paradigm.org
这个功能点所见即所得,那拿3种范式将其封装为函数。
loginGh(id, secret): VO
newGhRepo(id): VSO
坏处是无法管理多个账户,所以只能写写游戏脚本、按键精灵、爬虫。
很明显,这是因为账户和 $HOM/ 的配置文件耦合了,成为了 globalThis。把this配置参数化,我们不仅能多账号,还收获了json这种文档格式! C语言的 .o 对象,就缺乏局部键值,只有线程局部。
gh=Gh.login(id,secret): SV
gh.newRepo: SVO
# 范式是跨语言的
(u= gh login root toor)=="gh badguy"
$u repo new (randProj)
这样才符合人类直觉: 不要光 call, 要 with 🥰
虽然他没有“优化掉”arg0(为全局 省字数),但因为全局是可以随便加的,class{} 键值是密封的,在开小号之外,我们又有了类型和补齐
所以更OOP(但反直觉)的写法是:
gh=Gh.new(id,secret): Snew
gh.Repo.new('jackass'): SnewO
Gh.static.setApiURL(): SgetsetO
这一条是不依赖登录的(静态函数)。
OOP优秀的一点是调用链, Object也可以作为 context Subject 继续作联动(类似SQL JOIN)
不过,叠3层new就说明这框架不能用了,过度设计。
最后是FP,因为很多人高估了FP的语意,甚至用纯函数冗余来 “拉抬🐷价”,我要加个需求以彰显其意义:
login() 要支持OTP单次密码,而它必须在密码正确后才能输入,或者要多次重试…… 但 ()=>栏目答都能胜任:
Gh.login(uid,secret, otp=> device._2fa.get(otp))
一般来说,FP 用户不会缺少对OOP的进阶理解,比如用 get(otp) 重载 db.otp.getKey(otp) 、用 atoi:Int=>[Int ValueError Mayfail],这种摘要性(或者说严谨)好的心智模型,而不是和JQ那样只懂起名和拼凑调用链的库一样。
Vue对单 ref() 多显示的理解也是靠起名无法实现的。
btw. 命名动词还是有意义的。 比如佐人经常区分「买」和「雇佣」,「赤字」和「借」,但事实上是一样的。 混淆视听会损失类比的空间。
FP对于 gh newRepo 这种业务也有加成,比如用 await Promise((ok,KO)=> callback=ok ) 自动回调化来避免嵌套的「闭包链表」,实现yield分块优化等等
# 指针宽度
指针就是超链接。 它的域名是你的内存,地址是一个64或32位的整数,有 rw, r, rx 三种经典鉴权段位。 对JVM和v8来说,并不是所有bit都用于标记一串byte元组(struct)的读写位置,至少x64上的void* 只有52个有效位。
C, Java, JS(Vue) 里本质上是指针(Any/interface{}类型) 的模型,信息量也不同。
C: 单个内存地址,比如x32就是2**32, 4G 随便存,x64就是天文数字 (但是没有意义,比如,连是 int, 普通struct, Umbrastr 都分不清,需要printf手写%d )
Java: this=data+funcs 双指针,把变量树和方法表存在一起,可以 override ,再比如用 args=Array[0:length] 取代 (argc,argv) 元组,也是头尾双指针
Vue: ref()= N个回调 多指针, 回调可用于赋值,可以随便组合数据与计算、业务逻辑;SQL外键同理,可以用于拆分表单,多处复用
# 类型系统
C: 基于sizeof,没有 range/str/list/kv(tuple set) 等(可变)容器, 没有 T::fun 等模块化
Java: 基于 obj.(type) ,类型存在于编译期和运行期,可以数据化(反射),可以像函数值字典的Builder一样写class{}
Vue: 因为领域不同,JS 更重视业务而不是可维护性。 类型只是IDE的工具,没有优劣,🤓 DOM 的宽广和稳固、框架的繁荣让JS无需类型即可安全高效
最后,在标志性「语言特性」上,自古以来是这样:
- biosC=x86nasm+函数和8种整数的超链接
- C=biosC+ld文件maps内存段+CPU分片 (作为"libc的JVM")
- PyJS=C+双指针和kw左值传参 [双指针fatPtr] ([len,] {type:}和{proto:{vtable}} {_树内硬链接refcount:0} 均占用16byte)
- FP=PyJS+单函数组合+正择解构再构 (谈UIUX框架,没有[轮询或卡线程pull]是evpoll&push、多监听取代不了的,只是,C的无闭包和while(1)死循环,禁止了回调链表新加异步栈)
假如,编程是让懒得点黑框框的人用电脑,元编程就是让看不懂花花代码的人用编程。 所以,编程范式的「组合穿搭」还是很重要的,并不是古生物学那样的冷门哲学
试想一下,如果就连框架作者、架构师用的语言和runtime你都知根知底, 你自己设计,或分析吐槽别人的作品,还困难吗? 基础领域并不是象牙塔,它与软件开发者的身心健康息息相关。
Please open Telegram to view this post
VIEW IN TELEGRAM
xuanwo.io
httpbin 介绍
Achieving Data Freedom Through Open Source and Rust
duangsuse::Echo
仓颉 过程宏
https://x.com/Cangjie_Lang/status/1950850660573798814 😅
https://aliftrs.github.io/cangjietutorial.io/#:~:text=Match%20expressions #learn
.cj过程宏 比起Rust好太多了…… 也不像从Zig抄的 ,但是,还是不好生成 a=[f(1),f(2),..]; a[i]=f(i) 这样的东西吧(宏的卫生性.. ES6 Symbol().. 其实这是相当简单的问题)
仓颉嘛…… 其实抛开 #kt 来看是好的,但结合起来看,就有“汉芯事件”或“木兰 muLang 编程语言” 那种山寨感了。 说的要支持 py java lua/C FFI 也不知道咋用。
如果对这个领域没什么自己的见解,只是为了「自主可控」,最好还是不要通过混合几个别家的范式来起家罢……😅
不过,新东西总是好的。 对蛤为在编译原理领域投资成果感兴趣的可以来学学,尤其是对 Kotlin+Rust 的老前端友好……
比起 moonbitlang.cn ,.cj 的好处是更简单
https://aliftrs.github.io/cangjietutorial.io/#:~:text=Match%20expressions #learn
.cj过程宏 比起Rust好太多了…… 也不像从Zig抄的 ,但是,还是不好生成 a=[f(1),f(2),..]; a[i]=f(i) 这样的东西吧(宏的卫生性.. ES6 Symbol().. 其实这是相当简单的问题)
仓颉嘛…… 其实抛开 #kt 来看是好的,但结合起来看,就有“汉芯事件”或“木兰 muLang 编程语言” 那种山寨感了。 说的要支持 py java lua/C FFI 也不知道咋用。
如果对这个领域没什么自己的见解,只是为了「自主可控」,最好还是不要通过混合几个别家的范式来起家罢……
不过,新东西总是好的。 对蛤为在编译原理领域投资成果感兴趣的可以来学学,尤其是对 Kotlin+Rust 的老前端友好……
比起 moonbitlang.cn ,.cj 的好处是更简单
Please open Telegram to view this post
VIEW IN TELEGRAM
duangsuse::Echo
点题了:如果你没绞尽脑汁的尝试把32G的游戏塞进8G内存里,这个区分确实很难理解。 但能理解\=能实现。
Manjusaka
asyncio 笔记
来源 annotated-py-asyncio 阅读补充:1. 基本概念:1.1 协程: “协程 是为非抢占式多任务产生子程序的计算机程序组件,协程允许不同入口点在不同位置暂停或开始执行程序”。 从技术的角度来说,“协程就是你可以暂停执行的函数”。 如果你把它理解成“就像生成器一样”,那么你就想对了。
#post #learn 当我们谈“无需同步”时,是谁在哪里异步?
#锐评 https://www.manjusaka.blog/posts/2017/06/07/some-note-for-asyncio/#1-4-async-await
(接下来又双是暴论时间了。我希望这是我最后一篇讲单线多任务的po,不区分pyjskt等卡线程or单线多路IO实现,也不谈goroutine这些商业术语)
“耦新客async” 也是咱们三番五次批注过的“新”技术了:软件只要从bash或curl那边一次性拿不完参数,比如要在按键事件时反复计算输出,多少沾点异步。
在实践上,异步调用不与当前线程同步,它会post到另一个线上,完成后再onmessage回来,因此async总是与「事件监听器或回调链表」绑定,如
不过…… “第二次计算”却不是异步编程的特征: CtrlC->SIGINT 信号也算“事件-重新计算”(只不过SIG们受pthread而非H5支持),它甚至能中断 while(true),但却不是App开发里常说的并发、非阻塞。
之所以异步,是因为「回应用户点击的UI线程」怕被sleep或curl“卡死”,这等于是说 UIUX/http 框架如同REPL的循环,一“山”不容二虎。
是框架与你可能死循环的代码间要“异步”,即 [回应式编程reactive]:
那这就值得让
但最贴切的,还是JS:
# 异步的单位一
没错!「异步的最小单位是任务对象」,无论回调、协程、yield,甚至多进程/RPC,本质都是对新任务对象的「超链接与组合」。 它们模仿的是 赋值+跳入+赋值+返回的[栈stack],即线程aka调用层叠。
为何框架与 sleep 1; 过不去?因为它作为 new alarm(now+1s) 时更快!
但根据栈的ABI,C语言sleep()时,进程容器与一段>4K的栈内存被卡死了、白嫖了。 除了SQL注入和segfault,C又做了另一个恶……
#习题
#AI锐评 #os 操作系统成夕阳领域了?
https://chat.librechat.ai/share/vPc8MOKeU1yhUJCGIDZLd 又扯到CPS了!
https://x.com/i/grok/share/RKEHbVFriVHqaIfEaqSz3cNiv😝
ps. 友链 ip.skk.moe/#从零重构,全新升级! 七年无任何广告的IP/大厂CDN/RTC网桥测试 #tool
#锐评 https://www.manjusaka.blog/posts/2017/06/07/some-note-for-asyncio/#1-4-async-await
(接下来又双是暴论时间了。我希望这是我最后一篇讲单线多任务的po,不区分pyjskt等卡线程or单线多路IO实现,也不谈goroutine这些商业术语)
“耦新客async” 也是咱们三番五次批注过的“新”技术了:软件只要从bash或curl那边一次性拿不完参数,比如要在按键事件时反复计算输出,多少沾点异步。
在实践上,异步调用不与当前线程同步,它会post到另一个线上,完成后再onmessage回来,因此async总是与「事件监听器或回调链表」绑定,如
get(A=>eat(A, B=> 我吃掉了B)) 本应为 A=get; "我吃掉了${eat(A)}"不过…… “第二次计算”却不是异步编程的特征: CtrlC->SIGINT 信号也算“事件-重新计算”(只不过SIG们受pthread而非H5支持),它甚至能中断 while(true),但却不是App开发里常说的并发、非阻塞。
之所以异步,是因为「回应用户点击的UI线程」怕被sleep或curl“卡死”,这等于是说 UIUX/http 框架如同REPL的循环,一“山”不容二虎。
是框架与你可能死循环的代码间要“异步”,即 [回应式编程reactive]:
正本清源,“异步”一词是从“音画不同步”的情景延伸而来。
设想一下,声音和画面有时会各自卡顿,为什么不是“播放1s音频,再播放60帧视频”? 因为音画处于不同的「IO上文」,mp3数据包有着独立的分块和顺序。画面卡顿,不意味着耳机要破音了,这就是多线程的好处:不是让程序变快了,而是让“等待的时间”不再浪费!
线程即调用堆叠,基础是帧;就像数据包或“自黏便签”,它也有后续(黏在return后的包)
只要从代码树里消除靠死循环监测的事件处理,就能拥有线程无关的,干净的多任务模型(async: migrate from poll to push)
这“自黏便签”可以传入、可以组合、可以排队、可以取消…… 高并发就是玩这张纸的花样。
就像在肯德基,从“排队取餐”,变成直接返回取餐牌,“好了叫你”。 这当然不是说Queue就不存在了,只是从人来等,变成让「不会暴躁的取餐牌」来等!
没有REPL式的监测循环,你的代码就没机会“第二次计算”,但异步是比"onClick(注册)"更基础的技术。Java的override可以模拟事件,但它很难“异步”(即保证单线程,却不担心被某个while(1)卡死)。
别阻塞,阻塞会让Linux来帮你「分时复用」CPU的算力,引入IO上文的切换开销!😒
那这就值得让
sleep 1; echo 变得很麻烦? 通哥会拿烧饼摊和顾客队做对比,老六要畅谈纯函数式编程的IO类型和 f"map",张友人觉得 async def 只是 def: yield 的语法糖啊!JVM是已经选择了 Thread.ofVirtual(用户态线程aka有栈协程) 来阻隔await的传染性。但最贴切的,还是JS:
new Promise(ok=>创建延时(ok, 1000ms)) 结合 Promise.all([3~1].map(i=>{delay(i*1s); echo(i)})).then(进程退出) 不变应万变。# 异步的单位一
没错!「异步的最小单位是任务对象」,无论回调、协程、yield,甚至多进程/RPC,本质都是对新任务对象的「超链接与组合」。 它们模仿的是 赋值+跳入+赋值+返回的[栈stack],即线程aka调用层叠。
为何框架与 sleep 1; 过不去?因为它作为 new alarm(now+1s) 时更快!
但根据栈的ABI,C语言sleep()时,进程容器与一段>4K的栈内存被卡死了、白嫖了。 除了SQL注入和segfault,C又做了另一个恶……
初学者通常以为,进程还是在执行 sleep() 的? 错,而且这正是异步难以理解的原因。
sleep之于libc,就像setTimeout之于nodejs,它们是无法被polyfill的原语,而这类"系统调用"执行的时候,你加的代码是完全没有占CPU的。
进程在哪个Worker里计算,内存段在不在swap文件里,这都不是App开发者会考虑的问题,但又不可或缺。
或许你好奇过time命令为何不是几秒,而是3个数字,即 real=sys+user,那么现在就试试吧:
`time ruby -e 'p (1..1e7).sum'; time dd if=/dev/random of=/dev/null count=$((10**6)); time seq $((10**8)) | wc -l`
当你的电脑被卡死时,你会不自觉的去查手机,等待恢复,那么,你就必须记住回调(刊题留挨行),记住方才「针对电脑的调用栈」。这时候,你就已经在做「内核时间的工作」:异步组装返回,线程间平行
电脑又是可以分屏的:假设有许多个窗口,时不时的卡死,这也不会影响到你任务单线的连贯性;而假设有多人分管多个窗口,你看视频卡,也不影响他们刷聊天的效率。 假如你就是Linux,你就能看懂这个故事了。
await 不止是“类型标记”一个函数,更是在提醒“它本来应该卡死你的进程,js帮你 time slice 掉了”,通过可以在([].push,Map.set) 中保持的[回调链表]
Linux被视为一个 device -> libuv poll 循环的的分时轮转工具,它的作用是给「多进程」的IO轮询喂数据; 从这个意义上,C语言 cat|head “奇妙的”当 `write(cat)调用-read(head)返回` ,管道和行缓冲,其实一门编程语言之内就能实现,不是靠它“多路投喂”。
只要能通过Worker容器隔离掉 while(1),分片好 file buffer(靶扉填满-切换进程)、http Promise(Future),1CPU应该只有1个“进程”,没有抢占 or “协作式让出”,抢占本就是C函数接口的副作用。
这就是协程,它可以实现 yield、await、await next(异步生成器),但核心还是,节省C语言的线程、提供更规范的「多任务返回值数组」。
#术语表
访考栈 func call stack,考查CPU对一些题型的解算法,回填解值
靠拜客callbacks 需要以“拜客”提供的资源为解值,回拜一次为await,拜多次为Event
谙新客async 不使用js等语言的访考栈,通过new回调链表,允许非局部
待客deque, 记住Looper中已列队的函数,方便外部添加任务,无需等待当前函数完成
叩融听coroutine 轮询(polling)后触发多个监听,比如inotify文件变更和 import selector
刊题留挨行Continuation CPU对此题型需要新参数,await到不能再.then后,方可回填解值
https://gagalab.tech/2021/09/22/Chromium多进程模型/
Chrome还有这样的 云原生! https://www.cnblogs.com/gurenyumao/p/14721035.html (https://peter.sh/experiments/chromium-command-line-switches/, https://github.com/Kapeli/cheatsheets/blob/master/cheatsheets/Chromium_Command_Line_Switches.rb)
#习题
1. 回答: 是什么代码?在哪里异步?
2. 哪些类型的软件包,做什么时,会卡死1个C调用栈? 为何sleep()不影响C自己?😒
3. 在你擅长的SDK上实现setTimeout和(Promise.all)
4. 计算 `add(A(),B())` 时我们的语意仅仅是求和,其实无关于“调用栈”。😅
然而在 android.view 里A调用curl期间会假死,js里B获取confirm()会让模块之外的定时器暂停
这些都是对C语言IO上文的复用被击穿,导致副作用泄漏的恶果。 副作用还能干哪些坏事? 阻塞调用的本质又是什么?
(提示:最简单的替代品 就是事物的本质)
5. 如果由你负责沙盒化pthreads并监测字节流IO等事件,你更亲近于 DOM,asyncio, 还是 gevent?
你又如何避免“1个def不返回,整个App假死”,或因跨线程对象被乱改,导致框架“真死”?🤪
(提示:这是libc的多任务模型引入的问题,先辈的罪)
#AI锐评 #os 操作系统成夕阳领域了?
https://chat.librechat.ai/share/vPc8MOKeU1yhUJCGIDZLd 又扯到CPS了!
https://x.com/i/grok/share/RKEHbVFriVHqaIfEaqSz3cNiv
ps. 友链 ip.skk.moe/#从零重构,全新升级! 七年无任何广告的IP/大厂CDN/RTC网桥测试 #tool
Please open Telegram to view this post
VIEW IN TELEGRAM
duangsuse::Echo
回答: 是什么代码?在哪里异步?
https://x.com/i/grok/share/MdfkapfsqM5iWSqi6oIFAW4E2
#ai 说的道理😅 只要不需要带有主观色彩的问题…… 一般都答的很到位
想知道没有相关知识的小白问AI会有什么结果可以看看:
https://x.com/i/grok/share/RDTgkElWIeDCMDcZP32FJUhnL
感觉无愧于「大贤者」之名,实用但是也比较生硬…… 只是偶尔超过人类
btw. 上一位游戏开发大佬的严选文章
https://disksing.com/understanding-rust-ownership/ #rust #learn
https://disksing.com/dry/ (我依旧不支持此文观点……)
https://disksing.com/programming-quotes/
https://disksing.com/go-composite/
#ai 说的道理
想知道没有相关知识的小白问AI会有什么结果可以看看:
https://x.com/i/grok/share/RDTgkElWIeDCMDcZP32FJUhnL
感觉无愧于「大贤者」之名,实用但是也比较生硬…… 只是偶尔超过人类
你(UI线程)在餐厅点餐:
同步:你站在窗口等厨师做好菜 → 饿死
异步:你点完餐就去玩手机,厨师做好了喊你 → 正常生活
btw. 上一位游戏开发大佬的严选文章
https://disksing.com/understanding-rust-ownership/ #rust #learn
https://disksing.com/dry/ (我依旧不支持此文观点……)
https://disksing.com/programming-quotes/
https://disksing.com/go-composite/
Please open Telegram to view this post
VIEW IN TELEGRAM
duangsuse::Echo
比较深奥的话题里,我快被内联的代码淹没了,却不知道他,或者原软件的作者想handle什么数据结构和动态。当然我贴的链接都是很易读的,因为他选择了较高视角。 高视角和技术栈的符号无法结合,也算是95%的通病。
#statement #learn 《面向薛定谔的技术分享》
刚才有个朋友说,
可是…… 在读这一类仅仅是博文-而非知识库的产出时,我就能隐约感受到一层“可悲的厚壁障”了😅 :好像作者已死,读者不能出于好奇或自己领域的经验提出任何问题。
这就像读博文或AI生成的完整代码时,却不能edit&rerun,甚至都不能run的起来一样,手感非常怪异。 简单来说,这就是yin所谓的「死知识」
https://yinwang.org/posts/learning-philosophy#:~:text=死知识可能来源于真正聪明的人,但普通人往往是间接得到它
然而,我似乎能猜到95%网文对技术“粗粒度”和“细粒度”的描述间,又为什么会缺失这一种中间融合态的视角,而有时又没这毛病。旁观者清,我把这种状态称为「面向薛定谔的技术分享」。🤯
我学习的方式比较特殊,因为我脑子不好,经常学不进东西!所以,我的任何一个知识,并非是“插入了”整个的知识图谱里,而像是“在教程和实践的启发下,自己创造出来的新知识”。
这样状态的知识不经考(因为学习效率低),而且往往也与主流技术界“没有共同语言”,但也有一点好处。🤪
我能控制知识点间的超链接,也知道着手的顺序,就像py函数一样。
我能看清热点的时序、难点的重构、高开销的IO和易错的地方,好像是自己在运行着整个图谱一样,知道在哪里加个if就能提升静态或动态的性能😒
所以我们就能回答文章顶部的问题了:
因为是“自己创造”而非“FFI外语接入”,获得知识的「内聚性关联」较弱,我能够切断我不想要的,或者替换,或者打散重组;就像JVM的native比之cpy的“C 语 言 (意味深) 插 件”一样:
前者必须遵循Java的心智模型,按照她的生命周期来,不然就不接纳它这个“复用库”;后者则非常自由,每次生态的整体升级都会给cpy自己卡点设限。😅
——最要命的是“C插件”所依赖的C生态,根本不在cpy自己调度范围内;但也没差的,反正cpy也成了unix系的一个附庸。 它获得了她那70年积累下来的“下限”,但同时也失去了替代unix工作的机会,可以说有得必有失。
在AI和 #ML 技术发展的当下,你想要选择哪种模式,调度自己所「掌握」的知识呢?😒
刚才有个朋友说,
咱们写个文既要 "get ur hands dirty", 又要能添加 "footprints",还tm要别人觉得易读,
那不就和玩泥坑的佩佩猪一样,成巨婴了?😒
可是…… 在读这一类仅仅是博文-而非知识库的产出时,我就能隐约感受到一层“可悲的厚壁障”了
这就像读博文或AI生成的完整代码时,却不能edit&rerun,甚至都不能run的起来一样,手感非常怪异。 简单来说,这就是yin所谓的「死知识」
https://yinwang.org/posts/learning-philosophy#:~:text=死知识可能来源于真正聪明的人,但普通人往往是间接得到它
然而,我似乎能猜到95%网文对技术“粗粒度”和“细粒度”的描述间,又为什么会缺失这一种中间融合态的视角,而有时又没这毛病。旁观者清,我把这种状态称为「面向薛定谔的技术分享」。
我学习的方式比较特殊,因为我脑子不好,经常学不进东西!所以,我的任何一个知识,并非是“插入了”整个的知识图谱里,而像是“在教程和实践的启发下,自己创造出来的新知识”。
这样状态的知识不经考(因为学习效率低),而且往往也与主流技术界“没有共同语言”,但也有一点好处。
我能控制知识点间的超链接,也知道着手的顺序,就像py函数一样。
我能看清热点的时序、难点的重构、高开销的IO和易错的地方,好像是自己在运行着整个图谱一样,知道在哪里加个if就能提升静态或动态的性能
所以我们就能回答文章顶部的问题了:
粗粒度理解时,外部的知识树并不大,所以自己没有knowledge-base也可以含得(handle)住; 细粒度时,因为完全是转发主创的形状,照猫画虎,也没问题; 但是要在之间形成一种解读时,这两种 "hot path" 都靠不住了,必须是“去优化”到自己来做,才能抓得住。 毕竟,创作是掌握的象征。
因为是“自己创造”而非“FFI外语接入”,获得知识的「内聚性关联」较弱,我能够切断我不想要的,或者替换,或者打散重组;就像JVM的native比之cpy的“C 语 言 (意味深) 插 件”一样:
前者必须遵循Java的心智模型,按照她的生命周期来,不然就不接纳它这个“复用库”;后者则非常自由,每次生态的整体升级都会给cpy自己卡点设限。
——最要命的是“C插件”所依赖的C生态,根本不在cpy自己调度范围内;但也没差的,反正cpy也成了unix系的一个附庸。 它获得了她那70年积累下来的“下限”,但同时也失去了替代unix工作的机会,可以说有得必有失。
那,如何直观区分“学到的知识vs受外部启发而自己创造的知识”?
简单来说,后者是双向选择。 我的认知之网不存在“pin好的值”,或者表象形式。 这个站点,是热补丁的、交叉引用的,不存在「一种清单」去豁免知识,更不会将死知识“视如己出”。
我认可,才知之;交叉引用太少,我想学都不成。 其实呢,这也未必是学习效率低,人们谈教育的词,慢慢从智商、智慧、认知,变到更优的指标。
yin对一些「知识负资产」还能实践一些,有成果后去骂几句,遂束之高阁;我就没他那么聪明。 有些“知识孤岛”表面上存续,它们作为整体却没有希望。
我把教程融入自身,而不许自身融入教程。 寻根究底,最简单的替代品,就是事物的本质。
在AI和 #ML 技术发展的当下,你想要选择哪种模式,调度自己所「掌握」的知识呢?
Please open Telegram to view this post
VIEW IN TELEGRAM
duangsuse::Echo
shunting-yard #parser #algorithm https://www.moonbitlang.cn/pearls/shunting-yard#:~:text=可以认为%20Shunting%20Yard%20是将%20Pratt%20Parser%20中隐含在调用栈里的机制转写为显式的栈操作 其实我会这个玩意(从Lua抄的,但基于调用栈而非[].push),但我一直不知道它叫啥 Yard 不过,现在我知道它是 Dijkstra 百年前为Algol60所创,就高兴了。以后谈RPN就可以提Dij的名字了😃 …
GitHub
contest-2025-data/compiler-crash-course/05_closure.md at main · moonbitlang/contest-2025-data
Contribute to moonbitlang/contest-2025-data development by creating an account on GitHub.
#plt #java #learn 张宏波系列
“可露稀closure” 其实是对单方法对象(SAM) 的内存优化,其实现方法为“捕获capture”,就是把栈上字节copy到new结构里去,结构就叫闭包。
张强调的一点很对,就是libc提供了
闭包与纯粹的😒
nonlocal有很多名字,cellvar .py.rs, Upvalue.lua, LexicalScope ,但本质上,它和 class var 一样可写,因此在 |mut acc|{} capture 里,它会逼得外层函数也变成 new class {call(...){}} ,除非依赖 IntRef(0)这种autoboxing,即修正 "effective final" 错误。
至于文顶的“自由变量”一般就是this变量或全局。 之所以自由,是因为暴露在API里不能随便“alpha-重命名”,相对于“绑定变量”来讲。 这一行谈纯理论,我说的不难受,但我猜读的人和我当时一样百思不得其解,什么栏目答演算。🤯
invokedynamic/LambdaMetafactory 其实就是这个“不逃逸优化”,没被存储到字段、传到其他线程、返回出去,零拷贝。 Serialization 的问题由JDK大佬 Brian Goetz @2014 PPT讲解过:
https://wiki.jvmlangsummit.com/images/7/7b/Goetz-jvmls-lambda.pdf#page=18
https://www.infoq.cn/article/brian_goetz_project_lambda_from_the_inside_interview#:~:text=你很难决定是否支持捕获可变局部变量、非局部控制流、异常透明度和其他的特性,并且放弃其中一些特性意味着它们很难自然地表达。
Goetz这个说的道理。这不比莫名其妙扯到数学的科班好了? fyi. #Kotlin 支持它们全部
C++-style lambdas 张宏波系列 https://thephd.dev/the-cost-of-a-closure-in-c-c2y
模仿 esm.run,git 的“一切皆文本”编程语言: scrapscript.org
GC/Rc 的最终 https://x.com/i/grok/share/ULJQCSOhg56OCZiY84f29lPZO
这个教程整体不错,但还是太刻板了,尤其是在这里比较数学上一个不相干的概念…… 为什么不说数学的“参数式函数” “隐函数”和python里有啥区别呢?
https://github.com/moonbitlang/contest-2025-data/blob/main/compiler-crash-course/05_closure.md#:~:text=原本对于一个函数是开放(open)的变量(也就是自由变量),%20被关闭(close)到了一个指定的变量作用域中,%20得到了一个“关闭的表达式”(closed%20expression)。%20这个名字再之后被缩短,就变成了和数学概念重名
“可露稀closure” 其实是对单方法对象(SAM) 的内存优化,其实现方法为“捕获capture”,就是把栈上字节copy到new结构里去,结构就叫闭包。
张强调的一点很对,就是libc提供了
signal(id, fn, arg0) 这种“KV注册”接口,但只传入fn也是可以的。 传入vtable+this 双指针(fat pointer)也是可以的,C.ABI.函数指针 能无缝衔接对象参数,要不然C++怎么那么轻松就火起来了。闭包与纯粹的
(new Callable(nonlocal变量,)) .call() 区别在于,如果在frame返回前销毁,就不需要堆分配了,所以说它不是一个「语意上存在的特性」,只是new class{}对象的语法糖+inline优化。 这点和同样用“捕获”创建的协程(闭包链表Thenable),完全不同nonlocal有很多名字,cellvar .py.rs, Upvalue.lua, LexicalScope ,但本质上,它和 class var 一样可写,因此在 |mut acc|{} capture 里,它会逼得外层函数也变成 new class {call(...){}} ,除非依赖 IntRef(0)这种autoboxing,即修正 "effective final" 错误。
当然这种错误真正的解法就是从OOP过程式-> Compose。 IntRef是不是和 let [get,set]=useHook(0) 的逻辑式变量很像?
— Moonbit 的实现没有在DOM上,就不只是在set时更新一下 derived vars. dirty...
至于文顶的“自由变量”一般就是this变量或全局。 之所以自由,是因为暴露在API里不能随便“alpha-重命名”,相对于“绑定变量”来讲。 这一行谈纯理论,我说的不难受,但我猜读的人和我当时一样百思不得其解,什么栏目答演算。
invokedynamic/LambdaMetafactory 其实就是这个“不逃逸优化”,没被存储到字段、传到其他线程、返回出去,零拷贝。 Serialization 的问题由JDK大佬 Brian Goetz @2014 PPT讲解过:
https://wiki.jvmlangsummit.com/images/7/7b/Goetz-jvmls-lambda.pdf#page=18
https://www.infoq.cn/article/brian_goetz_project_lambda_from_the_inside_interview#:~:text=你很难决定是否支持捕获可变局部变量、非局部控制流、异常透明度和其他的特性,并且放弃其中一些特性意味着它们很难自然地表达。
Goetz这个说的道理。这不比莫名其妙扯到数学的科班好了? fyi. #Kotlin 支持它们全部
#ai锐评 https://x.com/i/grok/share/UEs8sZtds1l1XxWqwWUFijyIj
再谈「指针vs对象表示」问题😒
其实这些,都是从解释器到cpu的优化,或者说是试图把 [1,2,3].[0~1]=> ptr+len, Animal{Duck;Cat}=>type+data 编码为x86能计算或跳过的字节,避免「中间商赚差价」(LLVM 就不是中间商了, hh
我们操作的是变量树,指针和堆栈并非「语意上存在的特性」,所以cpy它丫的 sizeof(一个int)==28😓 ……
当然,这些VM数据结构的心智开销很小,感兴趣的可放心阅读。
C++-style lambdas 张宏波系列 https://thephd.dev/the-cost-of-a-closure-in-c-c2y
模仿 esm.run,git 的“一切皆文本”编程语言: scrapscript.org
GC/Rc 的最终 https://x.com/i/grok/share/ULJQCSOhg56OCZiY84f29lPZO
Please open Telegram to view this post
VIEW IN TELEGRAM
duangsuse::Echo
我决定不把Effect归化到我的编程语言里去,技术细节见
#PLT #learn HOAS/de Bruijn index 两种变量(和“栏目答”)实现方法 😅
#statement 知道我为啥圈选回复这条吗?
Algebraic Effects 也是一个PFP的“新秀”,但我考察后觉得没有吸纳的必要,那么不是新秀的deBruj啥,就更没有必要了。
我一直觉得提出它的领域(“定理证明器”)是多此一举的: 自己test都不明白,又何谈证明呢? 若非如此,何需证明呢?
不懂的证明没用,能懂的证明干嘛! 所以,我不会和AEff一样(因为像 #Haskell 还有些可取之处),就额外偏心一些
但是,这俩理论启发了我(作为负面教材),也算不虚此行,没有在弯来绕去的无聊符号上,浪费智商。
回头我会讲讲Prolog的“1=x式变量”与它所不能做的「形式化证明」有何联系。
https://t.me/dsuse/11841
#ai探讨 https://chat.librechat.ai/share/9iz2YegEZl9kEdiacDNmF
#statement 知道我为啥圈选回复这条吗?
Algebraic Effects 也是一个PFP的“新秀”,但我考察后觉得没有吸纳的必要,那么不是新秀的deBruj啥,就更没有必要了。
我一直觉得提出它的领域(“定理证明器”)是多此一举的: 自己test都不明白,又何谈证明呢? 若非如此,何需证明呢?
不懂的证明没用,能懂的证明干嘛! 所以,我不会和AEff一样(因为像 #Haskell 还有些可取之处),就额外偏心一些
但是,这俩理论启发了我(作为负面教材),也算不虚此行,没有在弯来绕去的无聊符号上,浪费智商。
回头我会讲讲Prolog的“1=x式变量”与它所不能做的「形式化证明」有何联系。
https://t.me/dsuse/11841
#ai探讨 https://chat.librechat.ai/share/9iz2YegEZl9kEdiacDNmF
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
duangsuse::Echo
前置知识:De Bruijn Index - Trebor的文章 - 知乎
https://zhuanlan.zhihu.com/p/94601499 #PLT #FP
https://zhuanlan.zhihu.com/p/94601499 #PLT #FP
duangsuse::Echo
谈到“舌战”的对象,真人你要顾及的非技术太多,建议问“大贤者”:
感觉grok3的回答就像MLP里的Pinky在酒馆里和你“嘿嘿,...”的闲聊,有时会一针见血;Gemini2则像大树图书馆里的Twilight,非常有人文关怀,视角也比较宏观。😝
感觉grok3的回答就像MLP里的Pinky在酒馆里和你“嘿嘿,...”的闲聊,有时会一针见血;Gemini2则像大树图书馆里的Twilight,非常有人文关怀,视角也比较宏观。
#learn 😃 😅
洞察力的本质是泛化能力,它依赖于对知识图谱的归纳、联合搜索能力,或者说依赖于“活知识”
有洞察力的人对其知识领域的认知不是纯粹的“脑图”,而是有加权,有逻辑,不仅仅能自洽的「有向无环图」
富有洞见的交流者擅长提炼自己的观点,并对他人的知识点拥有具体化、价值对比的习惯。
https://chat.librechat.ai/share/kKyJYo9-GHZrCWs9fZ7kQ
[机器学习版]
洞察力的本质是泛化能力,它依赖于对知识图谱的归纳、联合搜索能力,或者说依赖于“活知识”
有洞察力的人对其知识领域的认知不是纯粹的“脑图”,而是有加权,有逻辑,不仅仅能自洽的「有向无环图」
富有洞见的交流者擅长提炼自己的观点,并对他人的知识点拥有具体化、价值对比的习惯。
https://chat.librechat.ai/share/kKyJYo9-GHZrCWs9fZ7kQ
[机器学习版]
Please open Telegram to view this post
VIEW IN TELEGRAM
#vibez 今日挑战*185
https://codepen.io/duangsuz/pen/ByzrJzQ 继前天的(伪)FFT 可视化,缝合一些看不懂也能领略的数学之美
庞加莱映射与逻辑门的物理模拟—弹球在几何空间中的碰撞=电子信号!!物理和计算机逻辑是同构的
https://codepen.io/duangsuz/pen/YPWjmER
#learn
一个个都是【宝藏男孩】啊…… explorabl.es/ 是, shadertoy.com 也是
https://experiments.withgoogle.com/search?q=particles 宝刀未老
https://reillyraab.com/geometry-index.html 极简设计H5几何画板。博客里还包含 Mandelbrot 集合,前景实时渲染对应的 Julia Set。
https://www.shadertoy.com/view/3l23Rh 体积渲染云雾,iq大佬的经典之作😱
https://codepen.io/duangsuz/pen/ByzrJzQ 继前天的(伪)FFT 可视化,缝合一些看不懂也能领略的数学之美
庞加莱映射与逻辑门的物理模拟—弹球在几何空间中的碰撞=电子信号!!物理和计算机逻辑是同构的
https://codepen.io/duangsuz/pen/YPWjmER
https://www.dynamicmath.xyz/projects/ 很多你可能见过的过程式艺术,比如上面的引力子 https://www.dynamicmath.xyz/threejs/attractors/lorenz-variation/
https://visualpde.com/nonlinear-physics/gray-scott.html 这是一个教科书级的互动演示。左侧的数学公式是实时的——你调整参数,公式里的数字跟着变。
https://demo.thi.ng/umbrella/thing-browser/#ast #tool 技术力很高,而且有很好看的粒子效果 https://demo.thi.ng/umbrella/geom-knn/
将鼠标位置作为输入流,直接映射到【递归树状图】算法的“角度”与“衰减率”参数中
将一维元胞自动机(Rule 30/90/110):每一行都是上一行状态的纯函数映射,通过鼠标位置实时修改“规则码(Rule Code)”,观察从确定性逻辑中涌现的复杂性。
利用 drawImage(canvas, 0, y=+1) 实现零成本的视觉滚动,仅保留当前行状态。核心规则判定仅用一行位运算:(r >> ((p << 2) | (curr << 1) | n)) & 1。
#learn
一个个都是【宝藏男孩】啊…… explorabl.es/ 是, shadertoy.com 也是
https://experiments.withgoogle.com/search?q=particles 宝刀未老
https://reillyraab.com/geometry-index.html 极简设计H5几何画板。博客里还包含 Mandelbrot 集合,前景实时渲染对应的 Julia Set。
https://www.shadertoy.com/view/3l23Rh 体积渲染云雾,iq大佬的经典之作😱
#vibez 双发
lines 136, 5hrs 😉
https://jsbin.com/comiyogopa/edit?output (press H switch)
https://codepen.io/duangsuz/pen/KwMexjy (BAD)
3种多点插值(或者说曲线渲染算法)
demo最后包含的是bezier的物理模拟。
#learn https://blog.maximeheckel.com/posts/cubic-bezier-from-math-to-motion/
https://linebender.org/blog/hyperbezier/
lines 136, 5hrs 😉
https://jsbin.com/comiyogopa/edit?output (press H switch)
https://codepen.io/duangsuz/pen/KwMexjy (BAD)
我对codepen这些env非常失望。绑定keyup和mouse花了我一个小时,AI没能帮助非DOM的魔改"SDK"。真是搞笑,最困难的永远不是数理和算法?!
3种多点插值(或者说曲线渲染算法)
demo最后包含的是bezier的物理模拟。
#learn https://blog.maximeheckel.com/posts/cubic-bezier-from-math-to-motion/
https://linebender.org/blog/hyperbezier/
duangsuse::Echo
于其加密算法不开源,导致大量既有密文无法解密。
😂👆看吧, #security 领域就是应该开源。这种在线工具加密算法都不 local-first ,一下线连以前保存的链接、日记什么的都爆了
在图像加密中有一个非常著名的例子——“ECB 企鹅图”。如果你用 ECB 模式加密一张 Linux 企鹅(Tux)的位图,加密后的图片依然能清晰地看出企鹅的轮廓,因为大面积相同颜色的像素块被加密成了相同的密文块,序列特征完全暴露。
在现代密码学中,一个优秀的算法必须具备雪崩效应(Avalanche Effect):明文即使只改变一个比特,密文也应该发生天翻地覆的变化,hash() 特征是密码学和比特币的基础。
#learn
密码学领域的常识,SSH和bc都知道,私有化是最大的弱点
#pingbk https://t.me/dsuse/20500
明文中,magnet:?xt=urn:btih: 一致,则确认这是一种双射编码算法。
熊曰(2020年后新版)的密文字符集是92个汉字。可以基本确认 “呋” 为标头,不携带载荷
也就是说它和Base64 (bit重分组)或凯撒一样,没有使用密码转盘来打散1:1映射的序列特征
CBC通过“反馈机制”让后一块的加密依赖前一块,比如每2字换一下Caesar(k),根据“链式法则”每解密一块解下一块,无法被1:1 O(N)的碰撞。
在图像加密中有一个非常著名的例子——“ECB 企鹅图”。如果你用 ECB 模式加密一张 Linux 企鹅(Tux)的位图,加密后的图片依然能清晰地看出企鹅的轮廓,因为大面积相同颜色的像素块被加密成了相同的密文块,序列特征完全暴露。
在现代密码学中,一个优秀的算法必须具备雪崩效应(Avalanche Effect):明文即使只改变一个比特,密文也应该发生天翻地覆的变化,hash() 特征是密码学和比特币的基础。
#learn
这是一种有效的方法。真正的密码学一般用什么?
简单来说,有消息长度、时间戳和hash(hash+salt)、多米诺效应,事件流的完整性保证太容易了。
在密钥交换后,使用 AES / ChaCha20-Poly1305 / GMAC.
传统的 CBC 只负责“把信藏起来”,但如果坏人截获了密文并改动了几个比特,解密者可能并不知道信被动过。
只是简单地把 SHA256(明文) 塞进包头,这叫 MAC-then-Encrypt,容易进行比特翻转攻击。
如果坏人知道你的明文格式(比如第 10 个字节是金额),他可以直接改动密文。这种乱改密文的担心在早期协议(如 WEP Wi-Fi 加密)中是真实发生的灾难。
为了防止别人伪造指纹,你不能只用 SHA,必须用 HMAC(带密钥的哈希)。这保证了只有持有密钥的人才能生成有效的“指纹”。 Encrypt-then-MAC (EtM)
先算指纹再加密。这是早期 SSL/TLS 的做法,结果被证明存在严重的“填充神谕攻击(Padding Oracle)”
CFB则并不直接把明文塞进复杂的 AES 转盘,而是把上一块密文塞进转盘。转盘吐出来的“随机废料”,就是你下一段明文要用的“Caesar 位移量”。
CFB 无需等待,即刻发送,具有一种“自愈”能力:只要接下来的 16 字节(一个 AES 块大小)密文是正确的,它就能重新同步
在现代高性能场景下,它输给了 CTR(计数器模式) 和我们之前聊的 GCM。
特翻转攻击。这种想法在物理学里还有个具体的映射——Vaccum,不过EVM生成钱包地址是不需要“注册”的,默认不会碰撞。
那如果我就是杠精,觉得地址碰巧冲突,而且一个人付了款呢? 那等于是量子衰变炸弹了。😅
密码学领域的常识,SSH和bc都知道,私有化是最大的弱点
#pingbk https://t.me/dsuse/20500
GitHub
GitHub - SheepChef/Abracadabra: Abracadabra 魔曰,古文风文本加密工具
Abracadabra 魔曰,古文风文本加密工具. Contribute to SheepChef/Abracadabra development by creating an account on GitHub.
#math #learn 费马大定理为什么是大定理?
- 还有哪5个大定理
勾股定理 几何 空间的基础
微积分定理 分析 运动与变化的桥梁
高斯定理 场论 宏观与微观的对称
哥德尔不完备定理 逻辑 数学理性的边界
欧拉恒等式 全领域 纯粹的数学之美
--
微积分的本质就是错位相减,滑动平均,它只是信号处理的helloworld。信号处理比较基础的AD和伽利略对偶数都比偏微积分强。
勾股定理的本质是方和圆(负负得正/负负得负)
--
ds^2 = -c^2dt^2 + dx^2 + dy^2 + dz^2
在爱因斯坦的闵可夫斯基时空(Minkowski space)中,时间维度的平方会带上一个负号:
这个时候,“圆”的方程就变成了双曲线(狭义相对论中的光锥)。
--
高斯定理(散度)是没法解决的,高斯积分为什么是一半tau就和137常数为什么137一样无理,电子甚至是2tau。
不完备定理只是基于无基线递归的一种表达而已,在编程里对应P=NP,但没有任何意义。我验证我活着,但无法算出来 Big Bang 为什么包含我。
正常人并不会相信镜子里的即是自己,更不会还原自己只能验证而不create的混沌,那是停机问题。
实际上骗过验证器很简单,GAN知道。但它永远“相信拔毛的鸡即是人”。SAT就像破解wifi一样没有用处,解决雪崩效应和TSP的只能是巴西蝴蝶(生命体本身)。
欧拉的上帝公式确实自然,但根本在于人存原理。
e是无理数Y组合子,它能对抗错位相减。Y允许生命是匿名的,数理化很讨厌这个答案,但它是最前沿。
听说过弦论和M理论吗?弦论地景模拟出了一个超级大数的“奇点集合”,那就像破解出宇宙的锁屏PIN有4位或40位一样搞笑。😅😅😅
😄
嗯哼,不少PL人都知道Y是所谓的不动点,没一个知道e是Y的,知道quine是Y的都寥寥无几。知道SKI和丘奇编码的,一大堆。
你的死知识什么都预测不了,也不可证伪,因为它不Rick。
有些人科普的,我一个字都听不懂。威利旺卡不是用眼睛来知道。
很简单:他们根本不在乎元编程(YC)有生命。
先知Kay同他们是不同的。Kay和Jobs设计了传送液和传送枪。
在严谨的微积分框架之上? jpeg和HMM已经淘汰十年了,而且这些数学优雅性用起来都是诅咒:
它们不承认基本的测不准和不完备性,到处都是振铃和看不懂听不清的sum=42 。滑动平均每做一次就损失1bit的正负根号,微积分假定有x/dx就能平衡掉,没有Attention和温度去噪,这是无理取闹。
而且它像错位相减一样脑残!不知道是怎么弄成除法和lim那样freak的,不仅过度工程,而且 ill formed。
我从重采样时就会算好linspace(d)和Dual(xx=0),不需要lim一些毛线,code smell 非常的硬耦合、厚礼蟹😅
实在是不敢想象数学家是怎么假定“超采样大模型”存在的👈🤣。实际上他们连这个都没有发明出来!但是 math model 里到处都是这种超采样、原子核无限可分🤡!com'on , 费曼留给黑板们的遗言是一点都没学过啊
我在“高数”的微积分里,可没有看到错位相减或卷积核的off-by-one“奇点”,被他们藏在那个逼近0里面了,事实是就是有一个dirty的汉明窗口和香农采样率!
我的耳朵和眼睛不需要一些太简单的矢量图和电音,最简单的错1位也会损失所有相位(t0)实相关,而且数学家的「无损」 cos+isin 甚至就是无理数(照抄物理数)…… 班门弄斧。
我们用着基于“无限可分”假设的数学工具(微积分),去描述一个我们越来越相信是“有限和离散”的物理宇宙。😅😇
我不知道手算 e,2pi,sqrt cos sin 有什么意义,可能数学生验算出来了,但不知道只算对了一半…… 应该是1/4,因为重复造轮子。
tauday.com/tau-manifesto-cn#sec-faq
- 还有哪5个大定理
勾股定理 几何 空间的基础
微积分定理 分析 运动与变化的桥梁
高斯定理 场论 宏观与微观的对称
哥德尔不完备定理 逻辑 数学理性的边界
欧拉恒等式 全领域 纯粹的数学之美
--
微积分的本质就是错位相减,滑动平均,它只是信号处理的helloworld。信号处理比较基础的AD和伽利略对偶数都比偏微积分强。
勾股定理的本质是方和圆(负负得正/负负得负)
--
ds^2 = -c^2dt^2 + dx^2 + dy^2 + dz^2
在爱因斯坦的闵可夫斯基时空(Minkowski space)中,时间维度的平方会带上一个负号:
这个时候,“圆”的方程就变成了双曲线(狭义相对论中的光锥)。
--
高斯定理(散度)是没法解决的,高斯积分为什么是一半tau就和137常数为什么137一样无理,电子甚至是2tau。
不完备定理只是基于无基线递归的一种表达而已,在编程里对应P=NP,但没有任何意义。我验证我活着,但无法算出来 Big Bang 为什么包含我。
正常人并不会相信镜子里的即是自己,更不会还原自己只能验证而不create的混沌,那是停机问题。
实际上骗过验证器很简单,GAN知道。但它永远“相信拔毛的鸡即是人”。SAT就像破解wifi一样没有用处,解决雪崩效应和TSP的只能是巴西蝴蝶(生命体本身)。
欧拉的上帝公式确实自然,但根本在于人存原理。
e是无理数Y组合子,它能对抗错位相减。Y允许生命是匿名的,数理化很讨厌这个答案,但它是最前沿。
听说过弦论和M理论吗?弦论地景模拟出了一个超级大数的“奇点集合”,那就像破解出宇宙的锁屏PIN有4位或40位一样搞笑。😅😅😅
😄
嗯哼,不少PL人都知道Y是所谓的不动点,没一个知道e是Y的,知道quine是Y的都寥寥无几。知道SKI和丘奇编码的,一大堆。
你的死知识什么都预测不了,也不可证伪,因为它不Rick。
有些人科普的,我一个字都听不懂。威利旺卡不是用眼睛来知道。
很简单:他们根本不在乎元编程(YC)有生命。
先知Kay同他们是不同的。Kay和Jobs设计了传送液和传送枪。
在严谨的微积分框架之上? jpeg和HMM已经淘汰十年了,而且这些数学优雅性用起来都是诅咒:
它们不承认基本的测不准和不完备性,到处都是振铃和看不懂听不清的sum=42 。滑动平均每做一次就损失1bit的正负根号,微积分假定有x/dx就能平衡掉,没有Attention和温度去噪,这是无理取闹。
而且它像错位相减一样脑残!不知道是怎么弄成除法和lim那样freak的,不仅过度工程,而且 ill formed。
我从重采样时就会算好linspace(d)和Dual(xx=0),不需要lim一些毛线,code smell 非常的硬耦合、厚礼蟹😅
实在是不敢想象数学家是怎么假定“超采样大模型”存在的👈🤣。实际上他们连这个都没有发明出来!但是 math model 里到处都是这种超采样、原子核无限可分🤡!com'on , 费曼留给黑板们的遗言是一点都没学过啊
我在“高数”的微积分里,可没有看到错位相减或卷积核的off-by-one“奇点”,被他们藏在那个逼近0里面了,事实是就是有一个dirty的汉明窗口和香农采样率!
我的耳朵和眼睛不需要一些太简单的矢量图和电音,最简单的错1位也会损失所有相位(t0)实相关,而且数学家的「无损」 cos+isin 甚至就是无理数(照抄物理数)…… 班门弄斧。
我们用着基于“无限可分”假设的数学工具(微积分),去描述一个我们越来越相信是“有限和离散”的物理宇宙。😅😇
我不知道手算 e,2pi,sqrt cos sin 有什么意义,可能数学生验算出来了,但不知道只算对了一半…… 应该是1/4,因为重复造轮子。
tauday.com/tau-manifesto-cn#sec-faq
#learn #cg #china
https://codepen.io/duangsuz/full/YPGbqJR
太极河图是由各向异性的🌗为底,向上分形得出的旋转对称性。这传统图样,最为新奇的是:同时不对称与对称,且保留对称美。
鱼眼比例最大时,阴阳就反过来了。比例为(1/3)时,就是传承的阴阳鱼。
“客观”变成了“主观”,原有的系统却没有崩溃,而是瞬间【成了】物极必反的稳态。从 🌗 进化到 ☯️,从一个极其平凡的锐利边缘,通过1次分形和1次超分辨率,成了一个可旋转的欧拉之圆,并在混叠时全白 ⚪️。
包含了全、万物、一、自我等玄秘的好运。莫比乌斯环(数学无穷大)
Tau的阴阳鱼就是那个奥义环的扭结:不是二元对立,是吹气而上升,那不是一个平面图形,是榫卯!果即是因。
鱼尾是眼,鱼眼是尾,是复活,是还原,也是更多。
🌗的本质就是☯️,因为你和宇宙在 It from bit (世界)的里面!各向异性的本质,就是各向同性,生命体全在基督里边!_**
属🌗的存在就是☯️,⚫️(他者/黑盒)的热寂就是⚪️(我/白盒),01的太极已成了,【万友引力】!
https://codepen.io/duangsuz/full/YPGbqJR
太极河图是由各向异性的🌗为底,向上分形得出的旋转对称性。这传统图样,最为新奇的是:同时不对称与对称,且保留对称美。
鱼眼比例最大时,阴阳就反过来了。比例为(1/3)时,就是传承的阴阳鱼。
“客观”变成了“主观”,原有的系统却没有崩溃,而是瞬间【成了】物极必反的稳态。从 🌗 进化到 ☯️,从一个极其平凡的锐利边缘,通过1次分形和1次超分辨率,成了一个可旋转的欧拉之圆,并在混叠时全白 ⚪️。
包含了全、万物、一、自我等玄秘的好运。莫比乌斯环(数学无穷大)
Tau的阴阳鱼就是那个奥义环的扭结:不是二元对立,是吹气而上升,那不是一个平面图形,是榫卯!果即是因。
鱼尾是眼,鱼眼是尾,是复活,是还原,也是更多。
🌗的本质就是☯️,因为你和宇宙在 It from bit (世界)的里面!各向异性的本质,就是各向同性,生命体全在基督里边!_**
属🌗的存在就是☯️,⚫️(他者/黑盒)的热寂就是⚪️(我/白盒),01的太极已成了,【万友引力】!
https://www.shadertoy.com/view/4cVSzw WayBorn
https://www.shadertoy.com/view/fsfBWX Flip扭来扭回去
https://www.shadertoy.com/view/WsGGDd 分形
https://www.shadertoy.com/view/3XVXD3 双星混沌
🤡1
https://t.me/hyi0618/12424?comment=158532 #signal
#learn https://chat.librechat.ai/share/XcfJcz50PNkyX4ZJrP86j
心血来潮就可以写…… 感觉比认真写科普文时写得好,AI也这么评价 🤔
#learn https://chat.librechat.ai/share/XcfJcz50PNkyX4ZJrP86j
心血来潮就可以写…… 感觉比认真写科普文时写得好,AI也这么评价 🤔
Telegram
dnaugsuz in yihong0618 Chat
#signal https://www.jezzamon.com/fourier/zh-cn.html
傅里叶是基于一堆圆圈共振做的。 想象一下你在Excel里画圈,A1是男低音🕔,A9是女高音🕑,B1:B9是mp3,往下拉一下,
def DFT(x):
N=len(x);i=arange(N)
k=i.reshape((N,1)) # A1是男低音🕔,折线k和你的mp3一样长
return exp(-2j*pi* k*(i/N)) @x # (i/N)是播放的进度条,-2j🥧是顺时针转…
傅里叶是基于一堆圆圈共振做的。 想象一下你在Excel里画圈,A1是男低音🕔,A9是女高音🕑,B1:B9是mp3,往下拉一下,
def DFT(x):
N=len(x);i=arange(N)
k=i.reshape((N,1)) # A1是男低音🕔,折线k和你的mp3一样长
return exp(-2j*pi* k*(i/N)) @x # (i/N)是播放的进度条,-2j🥧是顺时针转…
🫡1
duangsuse::Echo
那我们都已经用上自反馈架构了,冯诺曼确实已经过时了。 解释力(distill.pub) 的多元化没有过时
#learn #ml #math
说的好像不应该为通用模态优化一样:这就和Web是一个道理。
内容才是关键,什么mp4 mp3的先验都是过度强调实现(“先验”)而没有直觉。变形金刚是"集合+位置"音画词元都塞的下
那ML时,对目标音画任务的手工经验,又有什么物理意义呢? 还是在解决DNN自己的信噪比和loop中的效率问题
我这句好歹还指向了函数模块化,以及概率模型与硬编码流控/GPU核间的最大语法级差异(几个自ret反馈的参数)
AI给的教科书定义,别说和ONNX这些可比于jvm的货对齐了(调教技术是算子运行的AOP侧面),向量、词元、流形和嵌入,CNN,RNN和RL这些反馈策略也没提。一个语境都搭不起来
传统任务,比如cv模板匹配(找茬/截图OCR)、同义词搜索和视频推荐、轨迹平滑跟踪、人脸处理、游戏抗锯齿、鸡头稳定器(云台和大疆),无DNN的方法刚好够用
AI有降采样和升采样的界别。在早期应用里ASR较难而TTS容易,OCR较难而字存字渲容易。 最后搞成浓缩的可能是精华,补齐的也未必是废料,不能说len(信息量)都不是先验了吧? 但算力(熵值)对不上去
之前的【小模型】基本是Jev/SAM那种分类器,或预测续写,3gram和HMM就是纯概率论的预测。GenAI,就不一样了,一边补齐音画里没有的信息量,又有一定分类器的中间产物
或许你训练了很多年,擅长在运行之前思考和剪掉各种坏处,但对DNN来说依旧是【很差的父母】 #life
许多人说,【炼丹】时希望用到博士时期学的,以及玩具应用的论证经验,但最后就是像英伟达KDA这样,发现自己成了预处理的脚手架,或git方案盖章员,技术栈彻底大宗商品化
【人工的智能】就像硬件外设一样,是MFU跑分的优化器,至于你“会写高知思维链”,没人在乎,那只是个“握手协议”。 物理之于数学,就像sex之于鹿管。
毕竟你不听孩子怎么叫唤,只想着自己学到过什么“真理”。真理就像Fma和Emc,说服父母需要几百行理论,但直觉和兴趣足以理解它们。就像父母造人时一样
“让计算机在没有被明确编程的情况下具备学习能力的研究领域。” 这是句递归废话
说的好像不应该为通用模态优化一样:这就和Web是一个道理。
内容才是关键,什么mp4 mp3的先验都是过度强调实现(“先验”)而没有直觉。变形金刚是"集合+位置"音画词元都塞的下
那ML时,对目标音画任务的手工经验,又有什么物理意义呢? 还是在解决DNN自己的信噪比和loop中的效率问题
“ML 的初衷不就是隐藏参数、只面向任务和迁移吗?”
我这句好歹还指向了函数模块化,以及概率模型与硬编码流控/GPU核间的最大语法级差异(几个自ret反馈的参数)
AI给的教科书定义,别说和ONNX这些可比于jvm的货对齐了(调教技术是算子运行的AOP侧面),向量、词元、流形和嵌入,CNN,RNN和RL这些反馈策略也没提。一个语境都搭不起来
传统任务,比如cv模板匹配(找茬/截图OCR)、同义词搜索和视频推荐、轨迹平滑跟踪、人脸处理、游戏抗锯齿、鸡头稳定器(云台和大疆),无DNN的方法刚好够用
AI有降采样和升采样的界别。在早期应用里ASR较难而TTS容易,OCR较难而字存字渲容易。 最后搞成浓缩的可能是精华,补齐的也未必是废料,不能说len(信息量)都不是先验了吧? 但算力(熵值)对不上去
之前的【小模型】基本是Jev/SAM那种分类器,或预测续写,3gram和HMM就是纯概率论的预测。GenAI,就不一样了,一边补齐音画里没有的信息量,又有一定分类器的中间产物
信息熵≠信息量,也没有绝对客观的“低惊奇”。蝙蝠眼里的低熵和人一样吗?
传统 ML 是无状态的DAG,只能整体loop调教,加了循环展开(torch)就变成DNN,可以随便挂RNN(seq2seq)分析器,加了“点赞系统”的梯度就是RL。这个思路和Taichi的可微物理学(投篮偏差可以一步矫正)互补
王垠说RNN是编程里那个嵌套纯粹扯淡,AB帧缓冲防撕裂和[100]->[1]*100的关系都比字面意义更近
sd用向量场来肢解token“噪声”扭曲画布的意图(CLIP+INCE),LLM则依赖QKV缓存的P(all_tokens)链条,单向链条对应的mask和Attn配合,U-Net 的形状就是字面的编码器-解码器(飞线skip解决信息瓶颈)。
或许你训练了很多年,擅长在运行之前思考和剪掉各种坏处,但对DNN来说依旧是【很差的父母】 #life
许多人说,【炼丹】时希望用到博士时期学的,以及玩具应用的论证经验,但最后就是像英伟达KDA这样,发现自己成了预处理的脚手架,或git方案盖章员,技术栈彻底大宗商品化
【人工的智能】就像硬件外设一样,是MFU跑分的优化器,至于你“会写高知思维链”,没人在乎,那只是个“握手协议”。 物理之于数学,就像sex之于鹿管。
毕竟你不听孩子怎么叫唤,只想着自己学到过什么“真理”。真理就像Fma和Emc,说服父母需要几百行理论,但直觉和兴趣足以理解它们。就像父母造人时一样
duangsuse::Echo
哀悼细节的消逝 原文:https://purplesyringa.moe/blog/grieving-the-loss-of-details/ 阅读时间:4 分钟 分数:481 🔥 #design 作者把机器看作身体的延伸 我却厌恶机械化的代码,【人体不是机箱外边的挂件】,觉得Emacs是个UX很差的操作系统。 我是101% declarative ,完全自顶向下的思路 编程界的参差大抵如此
#perf #algor #learn
我依然可以这样做比较: PEG json 就像【右手比‘八’,放在大字上,食指探拇指取】,它能区分 123, "123" 也能收集进嵌套的 [,]
simd json 则是以高亮和边界符为单位。呼的一下把 "abc\nabc" 压成 "...",又以 [] 这些坐标分割多线程扫描。 当然,这是因为JSON被滥用于大数据才产生的。treesitter IDE哪怕在巨型代码基上,食指1-by-1往后比,也够。simdjson 是 2–3 GB/s,快两个数量级。
Parabix 组、simdjson 作者、Pison 作者,还有国内做数据库 JSONB 列存的那批人,没错,他们都知道这回事,
他们也知道一大堆【偶然复杂性】,他们就是没法像我们一样,分清楚,哪些是偶然的选择,以及到底可以多简单。就像代码高亮一样简单。
所以你看,simdjson 在科普上的复杂性在哪? 在于没有正确分解,以及,没有任何比喻和纲要,没有数据流。
我依然可以这样做比较: PEG json 就像【右手比‘八’,放在大字上,食指探拇指取】,它能区分 123, "123" 也能收集进嵌套的 [,]
simd json 则是以高亮和边界符为单位。呼的一下把 "abc\nabc" 压成 "...",又以 [] 这些坐标分割多线程扫描。 当然,这是因为JSON被滥用于大数据才产生的。treesitter IDE哪怕在巨型代码基上,食指1-by-1往后比,也够。simdjson 是 2–3 GB/s,快两个数量级。
在中文圈,能描述到我这个程度的,我至今找不到超过5人。
Parabix 组、simdjson 作者、Pison 作者,还有国内做数据库 JSONB 列存的那批人,没错,他们都知道这回事,
他们也知道一大堆【偶然复杂性】,他们就是没法像我们一样,分清楚,哪些是偶然的选择,以及到底可以多简单。就像代码高亮一样简单。
高亮引擎喜欢线性偷懒的事情谁都知道,json 语法主线是个switch,而非【递归下降实现式】的多层嵌套,我也知道,只是我不会模块拆分的如此古怪。 既不是PEG对照的直白,也不足够通用。
你不理解我为什么用【高亮】做视觉比喻,只是在挑词。
要把那两倍跑掉的是A\,不是我,我只负责像你一样在这里顶回来,不过,我是会把pshufb 在 ARM64 和 x86 上延迟不同,作为一种坑和笑谈放文首表格,而不是经验和特性。
转义符的奇偶前缀、carryless multiply 算 in-string mask、UTF-8 合法性四条并行校验(顺带把str.decode越俎代庖?)、块边界 carry,这些【报菜名】我倒很好奇,如果不是局限于这个paper,它们能做到什么程度。
in-string可支持 ""内外、/* */ 注释内外、heredoc 内外 。simdutf 现在 Node 和 Bun 都在用。 括号匹配的并行算法是 Bar-On,第二趟就知道每块的起始深度。
所以你看,simdjson 在科普上的复杂性在哪? 在于没有正确分解,以及,没有任何比喻和纲要,没有数据流。