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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
Forwarded from tsuThoughts
GPT-4o mini 极致性价比,同档无敌

https://x.com/ArtificialAnlys/status/1813975855468560621

#AI #LLM
👍1
Forwarded from Solidot
中国基本未受到 Crowdstrike 事件的影响

2024-07-22 15:06 by 暗影徘徊

上周五,全世界大部分地区都在应对至今 IT 史上最严重的安全事故,但有一个国家基本未受到影响:中国。原因十分简单,Crowdstrike 的安全软件在中国基本无人用。很少有中国机构会购买美国的安全软件,中国对微软的依赖程度也没有其它地区高,阿里巴巴、腾讯和华为是主要的云服务商。因此遭遇 Crowdstrike 蓝屏死机事件的主要是在华外企或组织,根据社交媒体上的信息,中国用户报告无法入住喜来登、万豪和凯悦等国际连锁酒店。网络安全专家 Josh Kennedy White 称,微软通过其本地合作伙伴世纪互联在中国开展业务,世纪互联的基础设施独立于微软在全球的基础设施。这种设置使得中国的基本服务如银行和航空免受全球干扰。

https://www.bbc.com/news/articles/c3g01y047pdo


#安全
https://github.com/rui314/chibicc
安利个东西,这个库用核心 6k 行左右的 C 语言实现了一个完整可以自举的 C 编译器(编译 git/sqlite 也能过测试), Commit Message 写的非常牛逼,每个 commit 都是一个完整的 bug free 的功能叠加。有兴趣的可以看一下
Forwarded from Solidot
谁写了臭名昭著的蓝屏死机代码?

2024-07-22 19:58 by 洛基启示录

谁写了臭名昭著的蓝屏死机代码?微软资深软件工程师、《The Old New Thing》作者 Raymond Chen 在 2014 年表示,前 CEO 鲍尔默(Steve Ballmer)为 Windows 3.1 的 Ctrl+Alt+Del 对话框撰写了文本。这一说法随后被传成了鲍尔默是蓝屏死机的发明者。Raymond Chen 后来澄清鲍尔默没有撰写蓝屏死机的文本,他表示自己对蓝屏死机负有部分责任,蓝屏死机相关代码一度被移除,而 Chen 在 Windows 95 中又重新添加了进去,他说自己是最后修改的人。那么谁是最早写蓝屏死机代码的?2021 年前微软开发者 Dave Plumme 称,蓝屏死机之父是微软开发者 John Vert,他在 Windows 3.1 中编写了相关代码,之所以选择蓝屏是因为他常用的编辑器 SlickEdit 就是以蓝色背景展示白色文本。

https://tech.slashdot.org/story/24/07/21/0135205/who-wrote-the-code-for-windows-blue-screen-of-death

#微软
Forwarded from Gawr Guraᅠ⁧~喵⁧
score To.b8(100) #bytes8 i64
name "仓颉"

- task -index(0L) as: dd=index #debug disp
wg CoPU.waitN #lock1, atom(0)..
(0~4):(index)
wg+CPU.add: task(index)
wg()
(0~40).forks(4, Sum.ln, CPU.fadd:(x) dd=x.0/10, 666)==[666]^4

cnt: count 0
w1 CoPU.lock1
(0~1k): CPU add:
w1: count{+1} #synchronized

?? Row
Rectangle -width-height(0L 0L)
- area as: width height
?? Flyable
- fly
?? Flyable #去掉这行变sealed
Bird()
- fly say:'Bird flying'
?? Row
Article()
-titleValue Cnt("")
-title Cnt{titleValue}: titleValue=An
?? RMem #类似函数值,只允许 a.Str, RMem.eq(a,b)
Rect --w-h(. 0L) #可选参数、类型按参数名
- area() 1w 1h
?? To.s
- printSize say:'The size is {N}'

?? IPay
- pay “?” #- pay To.s
?? Row IPay
USD -n(cnt 0.) #可变的列
- pay "${n}"
Order -payment(IPay) #对代理的重写
- pay "In-order {An^1.pay}"

?? HasArea
- area To.n
?? IDraw
- draw -g(Geo2D)
?? Shape IDraw HasArea fn?? #强行插入为接口+构造器
Square()
- area 100
- draw -g as: g.text("wtf") N2(50 50),


#plt #design 把 仓颉 的示例拿最新河图重写下 http://www.bilibili.com/video/BV1YE421A7np

现在单字符已经成为政治正确了😅
幸好,设计了 To.s 这样避免画风突变,以及策划了.pyl 洛书采用原有类型名

单字类型的好处是,非常统一,在js里能用只有一俩字不同的表达式
这样,无论在什么语言里,我的范式都是不必重新学的

我还挺需要“正常化”这些为电脑做牛马的人类编程语言了,只需约法三章:
允许块调用(){}{}: 即匿名def:(x-y str int)的装饰器,并让:_x=arg0.x,允许省略[]{}的:,
启用bash调用赋值链,即 x_1 [1x 2].0; git help() init(); vars: n 0。 a x 2; 应被自动sed为 a=[x, 2]
为小写类型支持typefns.range.as等、让f'{x}'等于f(['', ''],x),这样就能通过库跨语言粘贴简单的逻辑
inc(0,9):(i)
i%2==0: say: f'{i} even'
duangsuse: #kt #book 元编程
http://www.bilibili.com/video/BV1XH4y1w7mT
https://drive.bennyhuo.com/zh-CN/talks/2018.11.17-%E4%BC%98%E9%9B%85%E5%9C%B0%E4%BD%BF%E7%94%A8%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B_final.pdf

https://weread.qq.com/web/reader/f7632a00813ab82d6g017b14ke4d32d5015e4da3b7fbb1fa
可以一起读
虽然我不觉得这点值65😊

如果numpy那种API/DSL都设计不出来
修改class的结构也只是给开发者们徒增烦恼罢了

举个例子,此章节的 gh/user/_name
如果只是把它当成URL路径,需要绑定,显然造成代码重复,与元编程的本意违背

而如果像 import fire 那样,知道URL的本质是class路径与def GET,POST等,也就是另一种CLI调用
就不需要写什么注解和函数名
甚至模块化都省了,一个文件足矣

不过是修理servlet.xml繁琐和不支持argbind和的“弱类型”问题
但何必要制造那么多问题呢?sql,http,那么简单的工具还用学

#parser #learn
说起来,AST也就是多方法的 ()->Any 而已
你甚至可以把方法名enum化,从而完全避免使用class
例如 sum(L(1), L(2)) ()==3 只需要两个fun
Object Algebra.. 嘛,用虚表override取代if,稍微快点,只是要parse两次

至于在js里,我一般用 [[JSON ',' +] '()' /] 这样的模式写ast
描述 (1, 2, 3) 这种正则
甚至连函数式都没用到。 数据结构本身就蕴含了for if流控,运算符重载本身就是编程语言

不需要任何范式来实现他们,“数据结构与程序语意直观对应”,这就是CS。
这……应该是一件很难听懂的东西吗? 为什么DSL都设计得那么刻意和拉垮?

甚至,构造函数也应该取代class{} 或tuple才对,为什么把参数传递到堆而不是栈里,就需要写所谓的struct? 它们都是把args打包复用而已
为什么把yield 外提为语句,变成
let then=回调=()=>switch{} 里的编号,就需要学什么func*和async,堆和栈,难道不是天生一体的么? 分页数组、“缓冲区”,难道不应该是跨语言的?

然而支持kwarg的python 却需要Namespace来实现这种等量代换😒 反而是Haskell可以这么写
然而它是真正的笨蛋美女😅

#oop
元编程,首先就要明白obj的本质是通过enum分派逻辑的(vararg Any)->Any ,也就是一个when(x)in constMap+super..
这样才方便添加和绑定方法签名

这样在语法上也就能理解为什么是{}包裹,以及filter{}为什么优于lambda和匿名override

py可以通过vars(o)实现静转动态
typing.Namespace(kw)反向
除了小写类型不能扩充,哪怕是Ruby元编程在直观上也无法和它相比了

duangsuse:
oop和rust go就是pp的扩充
不算重新学习过过程试

编程语言只不过就一张加减乘除节点图,问题是领域和API

看这本书的“层次结构”,就想到拿identifier叫name,拿classifier叫tag,拿些辞藻和皮毛当本质,哎
无聊
好像早点拿到电脑,多写代码
Forwarded from 螺莉莉的黑板报
【本报讯】首个超越 GPT-4o 的开源模型!Llama 3.1 泄露:4050 亿参数即将登场!

近日,Meta 的新一代大模型 Llama 3.1 在 Reddit 上被泄露,引发广泛关注。Llama 3.1 包含 8B、70B 和 405B 参数版本,基准测试显示其性能在多个领域超过了 OpenAI 的 GPT-4o 和 Claude Sonnet 3.5 等闭源模型。模型卡泄露的信息显示,Llama 3.1 使用了 15T+ tokens 进行训练,支持多语言,并进行了指令微调和合成数据训练。尽管泄露的下载链接已失效,但官方发布预计在即。

Source
duangsuse::Echo
duangsuse: #kt #book 元编程 http://www.bilibili.com/video/BV1XH4y1w7mT https://drive.bennyhuo.com/zh-CN/talks/2018.11.17-%E4%BC%98%E9%9B%85%E5%9C%B0%E4%BD%BF%E7%94%A8%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B_final.pdf https://weread.qq.com/web/reader/f7632a00…
duangsuse:
草,虽然技术不怎么但例子还是值得一看
正好在外地就买来读

很久没读过纸质书,视力下降很大

https://www.bennyhuo.com/book/kotlin-coroutines/ 协程那本我就懒得买了,再说一个把yield 外提为语句,变成
let then=回调=()=>switch{} 里的编号这样简单的堆栈互换特性
也不值得学习
问题都是应用层们乱搞api,唉

在一些比较负责的sdk里,例如Lua和Duktape js,Thread是完全不需要await async的,就是把线程转为回调,也没有yield强制你只把then给调用方
和linux的cat|read() 等待另一端write一样

他们是怎么把“允许从触摸或IO事件回调线程” 封装成异步、Looper、Continuation那么复杂的.. 唉,资深技术nerd们🤓
其实,哪有什么协程呢?状态机?含续体回调? 好像C语言里read没有被内核挂起和回调一样,是不是不能while(1) 就比系统线程低一级了呢? vscode只用1个js线程,难道安卓架构比它还大?呵呵。。 Dispatcher就是个 (Runnable)->Unit 也能被封装成💩,Job.then搞成ctx链表就更逆天
丝毫不会怀疑这群万年魔法师的杰作

>简单来说就是,协程是一种非抢占式或者说协作式的计算机程序并发调度的实现,程序可以主动挂起或者恢复执行。这里还是需要有点儿操作系统的知识的,我们在 Java 虚拟机上所认识到的线程大多数的实现是映射到内核的线程的,也就是说线程当中的代码逻辑在线程抢到 CPU 的时间片的时候才可以执行,否则就得歇着,当然这对于我们开发者来说是透明的;而经常听到所谓的协程更轻量的意思是,协程并不会映射成内核线程或者其他这么重的资源,它的调度在用户态就可以搞定,任务之间的调度并非抢占式,而是协作式的。
tldr

看不清异步为何物可以理解,Web的Promise都不会对标可就搞笑了🌚
再想想编译原理状态机大switch都会,递归下降不懂,非要pushpop,哎😊

据我目前的认知, React甚至Vue3 使用自以为比 Webkit.org 聪明的“DOM diff” evpoll定时任务,今天终于全部转向"Hook" "Signal" 的push是js人不懂C++,不知道DOM是懒更新的
jvm人也这么普信?
duangsuse::Echo
duangsuse: #kt #book 元编程 http://www.bilibili.com/video/BV1XH4y1w7mT https://drive.bennyhuo.com/zh-CN/talks/2018.11.17-%E4%BC%98%E9%9B%85%E5%9C%B0%E4%BD%BF%E7%94%A8%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B_final.pdf https://weread.qq.com/web/reader/f7632a00…
“你用过 RxJava 类似的框架吗?”
学协程,需要知道rx扭曲的函数集吧?
😅艹,还好这是作者的初稿,不然我怕60块钱买亏了呢

魔法师一般是不会自称魔法的, 现在我听到魔法就想逃
好好的CS,AI整成Math那样。 那个几百年固步自封的希腊语学科?

并行是指while(1)们同时跑,对共享内存会产生数据竞争,即读/写了一半被对方访问。AtomicInt和锁不会产生竞争、SIMD和GPU不会有竞争

一些 #py 人不知道为啥有GIL(这个锁会让py以为你的CPU是单核,只是分时复用 就不会有竞争),这就是因为C里没有“回调”,py的IO实现v1.0就被单线绑死了,多核跑容易报错。

并发就是异步了,也就是IO快点。因为read()会卡死1个C线程,并发通过只接受回调,能允许同时等待多路IO(evpoll死循环)。因此理论上,Web的单线异步&伪服务Worker&GPU不会比其他sdk慢

import select,inotify 是一些较老的多路IO
numpy和 taichi-lang.cn 是真正的平行计算:从计算图API就是向量化。谁需要for while编译优化?🤓

总而言之,“并发”就是无需操心lock join(改为在函数'之间'await)的并行,说简单点就是Kotlin自己实现了Linux进程调度器,并且比后者更大聪明,完全不提Thread就能多线程IO
要是最终版也是这个“并发magic”的表述,我。。。🌝退钱

Cat:
我是挺赞成你的。我觉得并发真不 magic 只是大家曾经或者现在都对它抱有幻觉(

duangsuse:
就像曾经对xml(笑
然后compose来了

人们真的不需要一个“强大的框架”
只需要 import 一次,就不再给人惹麻烦的东西
「强大」是领域带来的,例如界面和算法。 语言的任务,应该是把问题变简单、变好记。
👍1
Forwarded from dnaugsuz
#statement 以前我喜欢搞编译器,玩元编程
但那只是沉溺在算数、跳转、字节之间,是大同小异的文字游戏
而且还会和丝毫不重视书写体验的函数式、类型体操人混淆不清

魔法对生涯是没有帮助的。 或许利于求职,但那魔法起源于八股。

现在我深刻认识到,程序员和其他人的唯一差别,就是爱用「心智模型」来对比和解决问题。「模型」能跨越语言,只和范式有关,而最高效的范式就是基于表格的OOP

编程语言的唯一价值,就是提供语意明确、博采众长的模型和API,作为软件设计生态里的导游和期刊
其他任何与问题无关的术语、故意搞特殊的框架,我们不封装不科普也会被AI替代

相信未来的编程语言与kotlin相比,能和java与C相比差异那样大。 比如说,面向逻辑关系编程
duangsuse::Echo
duangsuse: #kt #book 元编程 http://www.bilibili.com/video/BV1XH4y1w7mT https://drive.bennyhuo.com/zh-CN/talks/2018.11.17-%E4%BC%98%E9%9B%85%E5%9C%B0%E4%BD%BF%E7%94%A8%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B_final.pdf https://weread.qq.com/web/reader/f7632a00…
#java #plt Science Yuan:
静态和动态的元编程是完全不同的

duangsuse:
并不是,只是类型信息在不在javac -cp 里而已。 如果在,例如for(const getMethods..) 生成/加载元组是可行的
你说的「完全不一样」,无非是jdk区分了 lang.reflect vs APT lang.model,后者能访问的信息更少,至少不能对某个参数getset() ,更不能获取返回值,因为 @Marker()很难写在语句级,更不能作为表达式

但编译和eval()并不存在所谓的鸿沟,就连未知变量,例如 int[] a 吧,从里面生成静态slice(用于vararg强转&传参?),或者解构赋值,也只是loop unroll(见Zig)而已
无非是编译器弱智到只能检查类型解析个方法签名, a[i] 就只能生成 aload ,不能把i的值粘贴进去(二段求值), {x,y}就只能是anew,不能作为编译期的list生成 x=a[0]; y=..
--基本这只需要往str内联常量,也就是说 (unquote x[i] {i:1})
甚至x不知道,i:1编译期也算不出,unquote=eval 就能完美容错!

apt和XXpoet的弱智显然是不可理喻的,因为解释器、解析器更好实现 https://t.me/kotlin_cn/105813

py不像js,它还是强检查的,js里甚至没有dataclass一说 一切皆字典
但这也有些坏处,就是元编程有些开销不完全与手写相等,这点我的 https://github.com/duangsuse-valid-projects/tkgui 通过缓存化eval很好解决了
这进一步说明,过程宏绝对不是rust! 那样的魔法,整个安卓所需的一切仅仅是 for(const x: T.vars) 的apt而已

lang.reflect 和Proxy都会在运行时生成字节码,更别说lang.invoke了,它会被查找并替换为具体的invoke字节码(例如被动态编译的 LambdaMetafactory(this,"methSig").invoke 方法)
这也是为什么Android重新实现了它们,要不然就要携带一个dx.jar作为类加载器动态翻译
螺莉莉的黑板报
【本报讯】首个超越 GPT-4o 的开源模型!Llama 3.1 泄露:4050 亿参数即将登场! 近日,Meta 的新一代大模型 Llama 3.1 在 Reddit 上被泄露,引发广泛关注。Llama 3.1 包含 8B、70B 和 405B 参数版本,基准测试显示其性能在多个领域超过了 OpenAI 的 GPT-4o 和 Claude Sonnet 3.5 等闭源模型。模型卡泄露的信息显示,Llama 3.1 使用了 15T+ tokens 进行训练,支持多语言,并进行了指令微调和合成数据训练。尽…
https://t.me/danteslimbo/3368
duangsuse: #谈政事 UBI红利

这个普法现金是资本主义版的,收支透明,加上有新的AI奴隶, 结果会不一样

大跃进主要的问题不是大锅饭,而是完全禁止多劳多得,zz挂帅瞎指挥、浮夸风、高税收

UBI不是的,只是一种提升消费的福利,中国目前基本上还是负福利

某党普遍有一种错觉,饥荒都是福利陷阱导致的

那完全是错误归因,因为他们发的福利,是伴随政治经济翻天覆地变化来的。波波没有给人发福利,为什么也代来灾难? 美团讲师每天蹭吃蹭喝捡鸡腿,为啥没影响其他润人奋斗?
其实只要留一点点小产权,不要打鸡血瞎指挥,哪怕继续吃大锅饭、继续充胖子还鹅爹的粮,灾害情况都会好一半

那三年末,某些人要求「宁要核子不要裤子」,又说抗美援朝之流是「大仁政」,对农B救亡图存只是小的,它就是为了核子剥光衣服的🤡

多少地方农民吃观音土第二天就要撑死了,这核弹,保护的是他们的生命么? 幸好它抗美援朝,不然中国就是西朝鲜
duangsuse::Echo pinned «duangsuse: #kt #book 元编程 http://www.bilibili.com/video/BV1XH4y1w7mT https://drive.bennyhuo.com/zh-CN/talks/2018.11.17-%E4%BC%98%E9%9B%85%E5%9C%B0%E4%BD%BF%E7%94%A8%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B_final.pdf https://weread.qq.com/web/reader/f7632a00…»
#kt #code 😊之前,v8 blog说Promise就是Continuation(含续体的回调),我还觉得多此一举
和Kotlin“强大”的API一比,我却要变成ES6吹了。Web的先驱者们简直是先知啊! 代码越复杂,成品功能越简陋。这就是为什么安卓app体积不断膨胀,功能却越来越卡。

interface Promise_<R,T> {
fun then(ret:OrErr<R>) //delay() 后应该这么做,那之前只需调用它并return。它通过cpu{}排队,另一种排法是yield Promise
//launch(ctx=Main+CoroName("val")) Map状链表DSL。Job等元素
var cpu:(Runnable)->Unit; name=""
fun go(:T?):R
fun stop(:ErrStop)
stdState=0,1完成,2取消
//不要使用截获器和Key环境变量。组合优于继承,go 的WaitGroup比不伦鸡肋的scope明确多了,Android的curl比js的fetch流更复杂吗?
}
type OrErr<R>=Or<R,Err>, Err=Exception
val OrErr<R>.!!: R
sealed Or<out A,B> {
data A(:A) data B(:B)
fun as(A->R?, B->R?={null}): R?
val A:A? val B:B?
}
fun T?.as(R, T->R):R
fun T?.as(T->R):R?


😊顺带把阿K没有统一的err/null错处也搞了,还要什么 o?.x?.y ?: 1
https://www.bennyhuo.com/book/kotlin-coroutines/12-why-so-called-lightweight-thread.html

上面说协程=Thread.asCallback() 只是一种go/lua的罕见情况,好理解嘛。
kt里协程是通过retAddr()作为参数,实现的链表化调用栈,其第0项一般是 runBlocking{}或thisCPU.nextJob
这样可以在主循环注册任意个delay()或flow{}的回调,优化 Promise.all。这是虚拟线程所不擅长的
https://www.bennyhuo.com/book/kotlin-coroutines/13-implementations.html
duangsuse::Echo
duangsuse: #kt #book 元编程 http://www.bilibili.com/video/BV1XH4y1w7mT https://drive.bennyhuo.com/zh-CN/talks/2018.11.17-%E4%BC%98%E9%9B%85%E5%9C%B0%E4%BD%BF%E7%94%A8%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B_final.pdf https://weread.qq.com/web/reader/f7632a00…
duangsuse:
此callback非彼回调
这个cb是编译器自动生成的class

web apis从一开始就线程无关
有什么平台和语言敢说自己的异步API比Promise经受更多用户考验?

那个是动态语言所必须的,kt有编译期,完全可以不染色
然而只有suspend fun是和正常函数完全相同的,业务上完全没有比js优秀
https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function/
algebra effect https://t.me/dsuse/19174

coroutine这个词不需要存在,即便是在脚本里,最多需要await和numpy的真正并发并行计算

而且即便存在,霍老也不应该说什么magic
不过就是把return()变成值,通过callLater{delay.then(me)}构成链表,要么就简单到 Thread.asCallback

可以知道,Coroutine(而非Closure), Dispatcher/awaiter 都只是为确保函数return后能正常复活的东西,和调用栈完全一致
强调它们不同的,不是蠢就是坏

堆栈互转的玩意,说的跟迷因似的术语一大堆,严重被高估了。OOP构造函数同理
还有元编程、xml ,完全是语法太复杂导致的无效学习。你看 compose DSL需不需要拖拽设计器

coroutine是在搞特殊,因为linux的read() write()就是自己的await和yield,linux没有说协程
多线程是为了IO多路(evpull)和分块计算之类的,linux没法掩藏这些细节,但语言不掩藏就是语言愚蠢了

反倒是lua以后那么多年没有语言跟进,都在回调地狱,这是问题。

lisper 在把 @Adder(x=2) 生成为 (unquote '(+ 1 x)) 时可不会觉得是魔法
他们写 (let '([x y] ary)) 时也很清楚,这不过是一种list(str) 的循环处理
kt写inline也不会觉得很难理解

也罢,毕竟字符串模板目前还是ES6的专利,php都还在sql注入呢
所以java语法比嵌套的括号还低端吗

我是说无缝RPC其他语言脚本的这回事
sql``select ${1} 是不会注入,那为啥sql里有个 ?参数的概念呢?

PHP通过ORM和prepare语句确实不会注入,那么php跨语言调用js脚本呢?
只能用reflect.invoke那种API吧?

ES6可以随便调用任何py js rb JSON接口而无惧注入

不仅如此,js还可以靠eval('var ..') 自己注入自己,顺带实现codegen

想不想注入,都是开发者说了算😊🤓

#statement 我一开始就说了啊,讨厌magic

作者在后面的章节明明有更大体的理解,却不懂知识重构
反而把这些含语言设计者私心的API拿来讲课

两句话说明白的东西,何必浪费读者时间。后面讲Channel,sequence,flow 时读者懵是不是还要复习一遍?

最讨厌与语言、与CS术语耦合的私货了。 谈算法不离编程语言的,两句话不离语意模糊的术语的,可能是称职的程序员,但绝对没有准备好设计优秀的框架

这让我怀念 coolshell.cn 的耗子,虽然他过劳死了,但不到50不写书的工匠精神确实值得钦佩,因为知识布道者确实要这样谨慎。
要是编译原理/元编程界的多数人都这么有格局,lua zig的这些优点也不会雪藏那么多年, http连双端绑定都做不到的框架也不会活那么久

duangsuse:
#kt coroutine 和现在js async func* 的情况一样,一开始没有flow,后来加进去就是。。一言难尽

我不觉得把分页数组和Reactive混为一谈是好的
就像现在flow也需要buffered()或只留最后一项
这不太能统一化缓冲区

🌚flow模仿数组好像也说得过去,但总觉得有点像C数组或指针,是在搞混淆

flow如果和sequence{}统一就更好了,使用可调的默认bufsize而不是yield一次一个值。

这样和linux的iostream就合体了,而且也能实现vue ref()的效果,两个不耽误
太过重视调度线程是在模糊要点
Forwarded from Programmer Jokes
https://coolshell.cn/articles/22320.html #linux #learn 内核/libc AOP 技术介绍

#ai 生成结果不错,晚点 #todo
分别举例用 strace;stap 监控文件打开

分别举例用 strace;stap 监控htop进程的文件打开

分别举例用 frida;ebpf 监控htop进程的文件打开

使用 criu 休眠和恢复 htop进程,进程状态存储为 a.zip
重新把 /proc/$pid 的标准流对接到一个虚拟终端,就像fg job

编写脚本,使用overlayfs和chroot模拟fakeroot,在退出时将更改保存到 a.tar.xz 且允许再次打开

用Luanitik 编写文件系统驱动 nullfs.lua,返回空目录
#design #tool https://fixupx.com/stammy/status/1815800758199361629?s=46
https://www.freefaces.gallery/
https://motherfuckingwebsite.com/
https://keyboardsimulator.xyz/

http://interface.watch
https://www.elmo.chat/ #ai
https://github.com/bugbakery/audapolis tts
https://github.com/trholding/llama2.c/blob/master/runq.c
拒绝一切 neofetch #linux
拒绝 NV显卡,非炼丹术士,用不上
拒绝一切 lib32 ( 禁用 multilib ),所以咱和 wine 八字不合
拒绝一切 拖家带口的软件,相比直接安装 shellcheck 会带上一大堆 haskell ,我更喜欢直接去 GitHub 拿二进制文件来用

话说 AUR 源和 homebrew 类似,提供的是食谱,是 midi,不是 wav,不是 bin
所以清华 TUNA 放弃 AUR 没啥问题,反正真正阻止你用 AUR 的是开盲盒般的 GitHub 访问体验

Arch 实际上体验成本不高,archinstall 已经非常可用了,不过在愉快地设置安装前推荐去 /etc/pacman.d/mirrorlist 里把国外源都干掉,国内源留一两个 https 的就足够

pacman 一开始接触会觉得非常反人类
常用的首字母就俩 :
S 从网上
Q 从本地
后面就可以开始叠 buff 了 :
i 列出包信息
y 更新缓存
l 列出包文件
s 找包
还有俩特殊的 :
Rs 删 Rd 忽略依赖地删
F 通过文件找包 Fy 前文 + 更新缓存

炸 grub 不怕,因为压根不用 grub
systemd 的魔爪已经
用 systemd-boot 取代了 grub
用 systemd-networkd 取代了 NetworkManager
grub 引导挂了从启动盘启动,按 gentoo 方法把系统挂上,重新 grub-install 一下问题就解决了​
https://t.me/kotlin_cn/110568 #故事会