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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
http://www.bilibili.com/video/BV1cFm8YGEKe #china #dev BLM DLM了🥰

https://zhuanlan.fxzhihu.com/p/704798293 Markdown编辑器 Mou
📱国内开发者和用户都是奇葩,一个想着办法不付钱,一个想办法挣快钱,猜猜最后谁受伤? #经济 🤗
btw. #apple 这方面真是闭源丁真,什么都吃,就知道用户够有钱,其实是群靠着开源上游,卖设计,设计上也不求上进的脚本小子。
吃定某款App,比如ytdl或CodeMirrorIDE吧,不是问题, 但巨婴化就是和自己过不去了,软饭还吧唧嘴,又功利又幽默,不够本
iPhone 上默认 Pythonista 都收70,不知道给Guido或相关FFI作者捐了多少?上游出bug苦的还是用户。 实在是吃相难看,Objc也超级饭桶,一群程序员,非常有行为艺术家的范 #bilibili

>https://github.com/MaterialCleaner/MaterialCleaner
两年多时间过去了,我自己的软件终于有了完善的逻辑,也接入了 Google Play 的支付系统。虽然项目收入很低,总收入约 8600 元平均下来连低保水平都不到,
做小众项目更加困难,70 人民币永久的价格还算合理。然而即便如此,当我看到评论区一些用户也说太贵,我决定还是开源并放出一个完全免费的版本。
然而在得罪两百多个付费用户之后,得到的结果是评论区把带节奏的人当做英雄,

他们回复是“既然有能力改变”,有能力说的是我吗?恐怕是在炫耀有能力,轻松地让一个弱小项目破产的你。

😔 可怜啊, 咕狗,苹果,两年时间才能完成一个 🤗式的模组界面, 和Web和PyJS产能根本没法比。
http://xahlee.info/kbd/jp_hiragana_frequency_table.html 超级 何同学
#china #dev https://www.fxzhihu.com/question/617917921/answer/3173907554 不过,别说「独立显卡」、「台式机箱」了, 「独立开发者」都犯法了

https://coolshell.org/articles/8398.html/ xkcd 最火漫画
https://leafletjs.cn/reference.html 🇺🇦 世界地图 map
DEMO: https://xkcd-map.rent-a-geek.de/#10/1.0141/36.1848
Forwarded from 层叠 - The Cascading
#CVE: 7-zip 任意代码执行漏洞,请更新至 24.07 或更新版本。

7zip 的 zstandard 解压组件存在漏洞,或导致任意代码执行。

CVE: CVE-2024-11477

zerodayinitiative.com/~

linksrc: https://t.me/bupt_moe/2305

#7zip #zstd
Forwarded from Dante's Limbo (Dante At2814)
duangsuse::Echo
看最近几条逆天,我要聊哲学 #CS 操作系统不就是4片3口虚拟化么 时间内存存储程序,网口线口板口 #os #plt #embed #recommend win,*nix,mac, aosp ios ;哪个不是只有这么点API和差异化 🦄?为了音视频和回应事件弄那么多框架外链新语法,不如3行 #web js。 像 bellard.org 那样的通才终究少数,搞出\0结尾无长度字串,连{}[]{type:}都没建模的libc算什么API啊?在位运算位flag上都被人打败 也配教人数据结构算法? 。 为这…
#FP #c https://github.com/hirrolot/datatype99/blob/master/datatype99.h macro
https://halfrost.com/reactivecocoa_macro/

tag union: enum { A(int) B(str) } in C 😨 无需任何编译器插件
implemented upon Boost/Preprocessor
冷知识: gcc 宏是可以通过CPS延长递归展开 到1024步的,而宏又包含 if defined/eq 等常规流控与##-concat等运算,意味着即便没有 template<> 魔法, for if 甚至 eval() 也可以 static_assert
// 9, 2, 5
static int lesser_than_10[] = {
ML99_LIST_EVAL_COMMA_SEP(
ML99_listFilter(ML99_appl(v(ML99_greater), v(10)), ML99_list(v(9, 2, 11, 13, 5)))),
};
// 用例: 1+(2+3)
datatype(
BinaryTree,
(Leaf, int),
(Node, BinaryTree *, int, BinaryTree *)
);
int sum(const BinaryTree *tree) {
match(*tree) {
of(Leaf, x) return *x;
of(Node, lhs, x, rhs) return sum(*lhs) + *x + sum(*rhs);
}
}


ML99 是一门在 C99 预处理器运行的lisp https://metalang99.readthedocs.io/en/latest/list.html
尽管如此,有大佬说「元编程」要三思 https://lotabout.me/2018/think-twice-before-utilizing-meta-programming/
btw. 看到文心一言禁止F12, 有人贴了个反制 很有意思😂
for (var i = setTimeout(";"); i-->0; clearTimeout(i)); 


利用宏展开和递归实现貌似不可能的链表处理,其实也只是手段巧妙,利用f.nArg这样的const拼接代码, 效果并不会比过程宏甚至简单的codegen好
#define AND(X, Y) AND_##X##_##Y
#define AND_0_0 0
#define AND_1_1 1

#define IF_ELSE(C, T, E) JOIN(IF_ELSE_, C)(T, E)
#define IF_ELSE_0(T, E) E
#define IF_ELSE_1(T, E) T

#define IF(C, T) IF_ELSE(C, T, )


我还是觉得,如果不限制工具链,编译期反射或运行期记忆化eval 比模板巧妙的多。 体操只是被编译器驯化的结果而已,比递归+模式匹配巧妙的算法有很多。

https://github.com/hirrolot/datatype99/tree/master/examples/derive
https://github.com/orangeduck/CPP_COMPLETE
https://netcan.github.io/2020/11/06/C-Rust元编程之BrainFuck编译器(constexpr-过程宏解法)/

n=a=>a.length
add=(A,B)=>A+B
curry=(f, N=n(f)-1, ARG=Array(N).fill('').map((x,i)=>'_'+i) )=>eval(`p0=>(${ARG})=> ${f.name}(p0,${ARG})`)

curry(add)
p0=>(_0)=> add(p0,_0)

完全有能力生成任意的vararg,并且可以加泛型
Forwarded from 科技圈🎗在花频道📮
This media is not supported in your browser
VIEW IN TELEGRAM
Optimus灵巧手自由度翻倍 轻松接球如真人

Optimus灵巧手升级,相比上一代,新灵巧手自由度翻倍,手部有22个自由度,前臂有3个自由度。其团队发布灵巧手接球视频,轻松自然宛若真人。

Optimus又称Tesla Bot ,是特斯拉公司正在开发的一款类人型机器人。

X

📮投稿分享 ☘️频道 🌸聊天
duangsuse::Echo
https://m.youtube.com/watch?v=DDW9gSGeopk #school #china 里面提到「鼠头鸭脖」 事件非常幽默,是 Mickey 的头。 对话非常写实,骨子里的温良 lele和白纸一代一起游行(USA)
#经济 #science #statement
😔
中国经济最大的问题不是「产能过剩」,是官威太盛,民生萧条。
出口投资消费,三者根儿在「信心」。就像庞氏骗局,有时迷信太强大了,能掩盖一笔笔投资踏空(何来国资?储户的钱、杂税的钱),但债养债终该要爆雷,长痛不如短痛啊。

内需不足,似乎要降价促销, 外需不足,似乎要汇率破8,但这都解释不了人唯独对电动车和遥遥领先的狂热,而在外卖和就业上,冰火两重天。 1991的「资源错配」2021又是备案好。

bilibili.com/video/BV1NtzGYDEZM
>小德的充电股东群人数已经比较多了,后面会谨慎加人。目前的人数不太适合“只有在自己能感受到自豪的时候才爱岛”的人再加入,因为这样的成员一旦看到了其他人说了不符合他尺度的话,容易对其他人造成危害。

鲶鱼们拥有的财富,并非能抢回来的地段豪宅、豪车珠宝,而是「分蛋糕」的特权,是「抢」本身! 真金白银面前从来没什么:计划经济和生育,政治法制统一……

我设计划你卡,我立法执你房,我统一铐你人呗。权奴平等权奴,权奴想当权奴。 老忠不够本的孬种🐸
这次,打倒剥削者 OR 消灭剥削制? 革了命共了产,在喋血的地上分天国的脏,同而不和者的生命都要“共”走,林彪们的“共有万岁”?哈哈哈哈。

抛开不理性的罂粟,经济经济,经而不济,生产效率增长所产生的财富,「分配」不到内行人兜里走闭环驱动,剩余价值必成为无效投资、搞笑消费,那杠杆来的溢价必然要塌缩,要白干半生,天下大乱。层层加码,层层转包,卡脖子 一刀切 踢皮球 穿小鞋捂嘴…… 经济内卷和《劳动法》的背叛,只是最不重要的一环。
随之而来更长久的后果,却是盲目相信「卖家」的人承担。 只有聪明或强势的卖家,拿得走那血汗钱。
-- 这种话语权的屏蔽和垄断,对消费信心本身就很致命,别说对民生企业了。 https://t.me/dsuset/11508

其实资本主义哪有啥「科技树」?无非是「技术基建」好。
技术基建好?把好面子的钱买里子而。把大兴的土木藏富于民,下限高了,牛马少了,上线自然不会低,是天赋与自由使然。
只允许好点子存在的社会,配不上成功的点子。 只有对号入座时科学的制度,不敬自然,也不科学。
A股然,八股然,楼市然,仕事然,Asian股自古以来内卷兴亡轮回,躺卷润献,必然。
🦄1
#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
Forwarded from Solidot
恶意程序能关闭摄像头 LED 灯悄悄录像

2024-11-30 23:28 by 环游黑海历险记

Linux 安全工程师 Andrey Konovalov 在本月举行的 POC 2024 安全会议上介绍了如何秘密关闭 ThinkPad 摄像头 LED 指示灯的方法。他开发的概念验证程序通过重刷 ThinkPad X230 摄像头的固件去关闭 LED 指示灯,在用户不知情下悄悄摄录像。今天大部分笔记本电脑都提供了摄像头盖子,可以在不使用时盖住摄像头。他的 Lights Out 源代码发布在 GitHub 上。

https://powerofcommunity.net/poc2024/Andrey%20Konovalov,%20Lights%20Out%20-%20Covertly%20turning%20off%20the%20ThinkPad%20webcam%20LED%20indicator.pdf
https://github.com/xairy/lights-out

#安全
#plt #typing infer https://zhuanlan.fxzhihu.com/p/634217295
https://zhuanlan.zhihu.com/p/712419355

今年8月发的。其实猾为内部还是有支持一些不那么抽象的知识分子的。 我觉得讲得比某些知乎大佬简单明白,
这方面靠中国的社区文化,还是不如真专家讲,该推荐还是得推荐。
Forwarded from Frost's Notes
再延展说一些,我们见过或经历过太多没有把孩子的事当事的父母。他们供孩子吃穿,做家务,劳累了身体。但他们发现孩子一到了叛逆期就不跟他们说话了,直到渐渐不受掌控做出出格的行为。结果还奇怪,明明小时候关系很好的,怎么长大一点无话可说了,我辛苦为家,孩子没良心。
因为他们从来没有看到孩子的世界,经常说出的是:吃饭时间到了,快点来吃饭;你别哭了,再哭我就打你;你玩的这个,我又不会;你这个太幼稚了,我没空和你玩;好,你等我打完这局的就来。
https://github.com/KaiserKatze/mathematical-notes/releases/download/20230921091555-64ca8d4/default.pdf

1.3k页我的天 大概是这画风 🤔 #math #plt
算了也懒得看

正反函数在SQL和{k:v}里用更多

这个人还写了个 javac 的反函数(笑
https://github.com/KaiserKatze/Cruiser/blob/dev/code.c#L1049-L1985
https://github.com/KaiserKatze/Cruiser/blob/dev/code.c#L1884

不过代码质量堪忧,只是把JVM字节码的语意都换成printf,并没有检测if while{} 基本块的部分,就花了2.5k行……
他在近2k行抱怨了一句, i'm driven insane! how should i work around multiple blocks? ,嘛,看这README也不像动笔之前自顶向下调研过

虽然只有十个文件,但每个都是代码查重率爆棚的…… 复制粘贴一般。 可见不重视知识整理,我不太喜欢。

https://blog.csdn.net/dnc8371/article/details/106704927 CFR作者讲得挺好的,他们是以 ifeq goto 这些切分,拿箭头链接出 CFG,这反而是数学拓扑的天地啊? 💭
q==0? A:B; C 和 if(q)A; else B; C 和 q&&A||B 编译为 q true (ifne B:) A (goto C:) B C: ,这也就是&&和& 的差异
while(q) A; C 编译为 q (ifnot C:) A (goto ifnot:) C: , 比较简单的做法是遇 goto(i), bc[i-1]==goto(j), bc[j:if_]=iWhileCond ; goto(i), bc[i:goto] 可能是if{}

总而言之,作为开发者,突破信息差的能力比数学重要