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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
Forwarded from 螺莉莉的黑板报
超迷你 JavaScript 库列表:

http://microjs.com/
Forwarded from yihong0618 和朋友们的频道 ()
胡锡进被封号了😄(朋友提醒是禁言,号还在)
1
https://m.youtube.com/watch?v=7cbF5v7ar2E&t=6m #news #谈政史 坐在金山上的乞丐
明明能靠天赐石油“剥削”全人类,却连炼油技工都润出国的《委内瑞拉》
外资内知持续叛逃中

——为啥清廉的左派皇帝,比把女人当家具的宗教国家沙特,还不会搞经济?

17:00 😊但不希望中国的未来也是这样,亡羊补牢为时已晚?
可,“委内瑞拉還有反對黨可以選,中國只有,"沒有,沒有,沒有,通過!"
地大物博>>帝大勿駁”

https://m.youtube.com/watch?v=iWyn1B177sQ https://m.youtube.com/watch?v=UY-TJe7gRn8&t=497s 借着方脸提供的历史背景,我们能明白『共产主义』是这样一种思想:

血统对立、反向拜金:穷人翻身做皇帝,人越有钱心越黑;不讲证据,不谈社会契约和监督权上人人平等,禁止道德和人性
对内瓜分'资本家和精英'解决民怨,至于以后谁创业。。

“吃人”换来高福利:共走别人的家产,来提高自己和红孩儿的福利。
以前卖货的叫资本家,现在卖地的叫「无产者」,似曾相识燕归来嘛!
对同志,强调8小时工作制和双休等小资情节,美其名曰shzy处生阶段;对人民,强调劳动价值论:不干活就没饭吃。 一个共产,各自解释!

🐴先知指明的方向下,
零元购血统纯正、靠“吃人”发福利的乌托邦诞生。 这🐴车车夫的体质还非常适合加速:它不需要系安全带!
不必面见选民,就能为民做主——这种人还称不上民主吗?
😂人民连市府大门都进不去,能卖啥国”

即便,马列依旧保留了垄断、赢家通吃,依旧是损不足以补有余的金式王朝!😋
Forwarded from yihong0618 和朋友们的频道 ()
前端之虎还是挺牛逼的,整个网页读完。
https://me.yicode.tech/
Forwarded from Lancern's Treasure Chest
https://www.figma.com/design/xQ3FvM4GmjgNsmQJqP7uvK/LLVM.org-proposed-design?node-id=322-1515&t=ZKh43c6QIFyTrzMO-11

今年 LLVM 社区的其中一个 GSoC 项目是重新设计 LLVM 主页,这是目前新 UI 的设计稿,这下好看起来了
上汽大通已将该微博删除。

#新闻学魅力时刻
#algorithm 动态规划 dynamic programming
eg. lcs公共子串, knapack背包最佳配重, edit-distance编辑距离
http://www.bilibili.com/video/BV1FJ4m1M7RJ

🌚这是连“二参记忆化递归”这个常识都没说出来啊。
其实DP的经典案例是fib f x=x if x<2 else f(x-1)+f(x-2)
转化为一维的 f=[0,0]; f.i=f.(i-1)+f.(i-2)
这样,动归比递归的主要难度,是确立基线,以及用抽象的2D数组.ij取代fib()思考「状态转移方程」

二者的相似,好比「积分傅里叶变换」与离散DFT
动归比 @memo def fib 只优化了常量时间
fib只需要朝0的方向计算两个子问题,可以 iter 优化

实现上,如 lcs
f(,)=0
f(a,ab)=1
f(b,ab)=1
来,可视化一个corner case!
\ a b
a 1 0
b 0 2
可见,参数网格

r.(0 0)= A0==B0
r.(i j)= (Ai==Bj? 1:0)+
try max( r.(i-1) r.(j-1))
i==0: r.(0 j-1) #第0行没法再减
j==0: r.(i-1 0)

晦涩就对了,因为它等效这个:
lcs([A],[B])=A==B
lcs([A,a],[B,b])=
max(lcs(a,b) lcs(b,a))+(A==B? 1:0)
lcs([A,a],[B])= lcs(a)+(A==B? 1:0)
+2分支

f(a,ab)=1 直接匹配AaBb +1
f(b,ab)=1 则匹配ABb,居然也与表格等效

更易懂了吗?见仁见智,尤其是 (a,b)(b,a)是干啥? 当然,因为lcs本身就有交换律啊..
不过我要指出,这个语法是有问题的(尽管 #haskell 在红黑树/快排上比cpp可易读不止一半),如果专门对DP设计,一定有 np.einsum 那样更优雅的表述

DP教学总是涉及表格[i,j] 而可视化并不方便,不过解「编辑距离」,你总得先学diff(abc, aBc)=[1: -1+B] 怎么计算吧

* https://t.me/dsuses/5335 基于memo的lcs,人不如AI
* https://t.me/dsuse/18877?single fib流

只能先留个坑🌝触摸屏累死了
duangsuse::Echo
#algorithm 动态规划 dynamic programming eg. lcs公共子串, knapack背包最佳配重, edit-distance编辑距离 http://www.bilibili.com/video/BV1FJ4m1M7RJ 🌚这是连“二参记忆化递归”这个常识都没说出来啊。 其实DP的经典案例是fib f x=x if x<2 else f(x-1)+f(x-2) 转化为一维的 f=[0,0]; f.i=f.(i-1)+f.(i-2) 这样,动归比递归的主要难度,是确立基线,以…
🌚 其实看完动画,我是有点想批评作者的。 这么用心做manim ppt 却依旧照搬谭氏备课,国内的 #CS 大概就是这样
然后下面把dfs和dp类比的,一看3小时,这是在悉尼歌剧院放的编程课吗!

完全无法理解《状态转移公式》是怎么得出来的,最好不是抄的。 因为对着答案出题、停留在魔改公式的程度,可不是人类该干的事


每当你想指点什么的时候,比比自己的条件和对方差什么——盖茨比大概想对砖家“高人”说”
https://t.me/dsuse/19830 #statement #book 「只给🔑不给🔒#china
😒莫名其妙把《kt元编程》看到 Compose, AtomFU 的部分了,占二成篇幅

不得不说,牢霍 这两张写得是最珍贵,但是最烂的。

@Composeable 上来就是说内部有啥结构啥流程和flag,报菜名
连期待编译出什么代码都没得

如果您是后端,不懂Compose在哪调用,为什么有 $changed 这些优化呢?不好意思,牢霍只负责教codegen,这个框架被设计来解决什么,比无魔法的Anko优越在哪,他是一点不关心。
纯流水账 ,基本只对同样要学八股的人有用。。

我在想, 自顶向下地编程和写文,是我用的唯一方法;它的好处是,一切代码都是有reasoning的,不服可以重写、重新选型,不是强加给你来死记硬背的

但是,迄今为止我阅读全部的中文资料,除了王银那种废话为主的低密度冷科普,没有这种「自顶向下」的作者。

为什么从根源认知一类问题, 从而区分本质与私货、明白为什么要这么写,对各种大牛就那么难呢?!
#science #china 辩论 「200斤10里山路不换肩」
(Leonard 驳小岛大浪做的,和驳“十万里长征”差不多,都是对「宗教信仰世俗化」的批判)🌚😅

很难想象一个梗能被认真讨论,还是由离岸“碍国日子人”挑起来的

正说:
挑山工拍的视频说可以,而那个年代能吃苦,是为了生活,所以必然是能成功的
@三健客 的是死肌肉,不会四两拨千斤、接化发,不能证明体力不够
/只要重量低、连续时间短,<10km*100kg 就是有可能的

“不换肩”是方言里的不换人
“100kg”是浮夸风时期,亩产万斤的说法,实际也就二十几公斤
“10km山路”都是下山
没有说“一口气”,
所以可能是在山村的平路上挑了几天扁担。 扁担只能惯用肩挑,所以习的脖子歪
原话「下雨刮風在窯洞裏鍘草,晚上跟著看牲口,還要去放羊,甚麼活都幹,到後來扛200斤麥子,十里山路不換肩。」


反说:
“眾所周知,大多數支持中共的人士,粉紅,都是无神论者。因此,我經常用他們反感宗教的思维模式,做成迴旋鏢打回去,希望引起他們反思。😊

根据常识,走10km尚且不容易,何况背着一个胖子上山?
根据信任,自称每天游泳1000米,却连拜登拉的弓都拉不开的人,不可信; 被曝姐夫事件的人,不道德
根据利益相关,小岛是新加坡籍,赚粉红的钱,有预设答案。 小岛不会被煽动起民粹恐怖主义袭击,小岛不需要爱中国人。
根据gpt4物理计算,这需要2.6Wh的能量,相当于让重2t的电动车行驶17km
https://m.youtube.com/watch?v=8LzaJHs-L5c&t=6m

扛200斤 體力問題
偏走山路 国力問題
死不換肩 智力問題
明明抗不起14亿,還不許別人幫忙,這不是一般小學生的正常反應
1👍1
《意识形态与经济形态》 #谈政事 #recommend

你去过美国吗? 美国欢迎世界人民的监督,但拒绝无端指责和恶意猜测。自己国的毛病自己站出来救。
甜甜圈们听媒体说,美国每天枪战水深火热,太过自由百姓疾苦,但墙外“无码”的多点:游泳池水深,烧烤架火热, 和张维维、陈平、司马夹头、马云、特供贪官周公子们做邻居,能淘到不含煤油和毒奶粉的食品水货,作家导演不用打英文拼音避讳。
这下是政商和谐,跨国资本控制资产阶级法权石锤了?

因为自由是有价的。 资本家剥削剩余价值,是为了你挑工作、选产品的自由;商贩投机赚差价,是为了新地区买产品的自由;老板压迫劳动价值,是为了消费者懒得直付小费的自由。
吃掉剩余价值,就像砍伐树苗、不留谷种
强硬稳定价格,就像节省饵料、驱逐大鱼
没收用人债主,就像产权易主、利息不变

有人却坚信,对着坏人恶行易施,不仅能让财富翻倍,还能让全人类步入少干多吃的乌托邦? 庞氏骗局。
忽视了大家的产能,资本家金库里的“提货单”废纸一张;赶走了精英的研发,“偷到台湾的金条”可买不来台积电与仁义礼智信的人情味。
撕毁了产权人权的社会契约,却指望自家的产权、消费权和安全照旧?你爸是李刚,还是你有几个师。

请问,整个社会里的职位和道德,该如何与“净资产是否为0”绑定?
没有什么是不能流通的,不必走关系换国籍--甚至跪求三代贫农户籍;只要能将资源分配给最“会产”的人和地区,哪怕他们出生寒门,也是双赢。 加入WTO“剥削者”之后,中国民生的飞跃,就是无声的证人。
或许,独立自由不比“免费面包”亮眼,但市场的参与者获取报酬,就像通过银行把钱借给急需的人,那是正当的。让多产者收益多,是必要之恶,是对经验的认可、对创业的鼓励;让少产者消费多,是必要之善,不然资本主义就会变成不攻自破与不修自正的联盟
这无关善恶,是市场本身的规律与法则。人渣是不分国共的。
没有什么是不能流通的,革命的朋友、国民的敌人,也一样。陈独秀为何被双开?拒绝武装保卫苏联(“特别军事行动”)。


嫉妒是民主的基础。损有余而补不足,天道也。
嫉妒也是民主们的法宝,
让暴民歌颂慈禧或希特勒,却忘掉了崇权媚内才是战争和贫困的祸首;或者说,忘不掉“中式”政治正确?
只颠覆了主子和奴才,不「修正」奴隶制的阶级僵化,很能共贫穷,不能共产暴富。

暴力、权力、财力、能力,你们只能理解到“彼可取而代之”。人人生而无产,只是有人比你更无产、更碍国。内斗去吧,就像他们在那十年同归于尽后,和各省五千年积攒的文化瑰宝堆一起烧掉的囧样。
外汇钞票、换人选票、舆论传票、爱民税票,你们甚至连钞票都要没收,因为必须“财力平均”。那暴力呢。
拒绝个体价值,所产生的集体不仅是灰色,其胜利更是不能代表纳税人的利益!
“shzy者”,其实是一群最不思考社会运作的「个人主义者」。 共别人的产来提高自己的福利??恰恰证明了穷人也是自私的。脱离群众的人曾是群众。

“免费面包”扣了多少税,只有用资本和选票不断可视化,才能驱动社会进步;至于审判日那天才能看清的“社会最终形态”,就交给马列的教徒去辩经吧。 日子人可不能靠吃红书敬员神,撑过封城和三年饥荒。
你们许诺血海后的天堂,对被牺牲的我们,只是疯狂。
duangsuse::Echo
#sysadmin Arch #linux 一次滚挂历程(差一点) *原因:很久没滚,GNOME mutter wm莫名有了键盘焦点的bug。 未使用 -Syu 以至于为一些旧的包 --ignore icu 的升级,谁知xml依赖它呢?另外还 --overwrite'jupyterlab/*' *差点滚挂: 不能 systemctl restart display-manager ; pacman -S 启动不了!而且我的tty1开的是支持中文的 cage kitty (虽然不会bootloop 🙉 并非btrfs…
#sysadmin Arch #linux 一次莫名其妙的boot卡第一屏
ps. #tool #github https://chromewebstore.google.com/detail/webdevauthn 比那些付费垃圾TOTP(sha1 6b) 厉害多了 😅

经过PE验证, $esp/boot/initramfs-linux.img #约40M 莫名其妙成了空文件,必须重新 https://wiki.archlinuxcn.org/wiki/Mkinitcpio -g initr.img
没法直接从其他发行版iso照搬

一看Arch liveCD 都1G多了 😅就选择Alpine,但手里的U盘不方便直接dd,需要 isolinux 启动(应该使用 https://www.ventoy.net/cn/index.html 的)

众所周知, GRUB 采用 1vm+2init 执行Linux,第一次init在内存盘,第二次明明也可以让grub传指针进来(squashfs,iso9660) 却莫名其妙要指定/proc/cmdline 去 find .iso 以便 mount /media/cdrom
Ubuntu 的是 boot=casper iso-scan/filename=/a.iso 但Alpine不吃这一套

因此最终你要对.iso 敲两次代码……

#grub.cfg
menuentry "find iso" {
find --set=iso a.iso
}
menuentry "boot $iso" {
loopback l0 $iso
linux (l0)/boot/vm*
initrd (l0)/boot/initr*
}

然后在毫无文档的init fallback 上挂载

mount /dev/sda2 /tmp #反正不能直接从GRUB里传/dev号,不通用,也不能直接 find -d1 /media ,需要逐个mount..
mount -t iso9660 -o loop /tmp/a.iso /media/cdrom #不能自动探测loop0/cdfs,全默认fat
fdisk -l #输出是正常的,然而mount不是!


然后OpenRC依然会挂,而且连bash都没有(不能用 arch-chroot https://wiki.archlinuxcn.org/wiki/Chroot😅😅

for p in sys dev; do mount --bind /$p /mnt/$p; done
chroot /mnt /bin/bash <<OK
mkinitcpio -g a.img
OK


替换一下 $esp/init*,这样就不卡第一屏
gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval 'Main.lookingGlass.toggle();'

gnome-control-center 也坏了,草,是我的 nm-iwd 导致的
靠这些垃圾发行版还不如USB cdc上网

最后说个冷知识: /dev 树并不是在内核里定义好的
而是由init脚本(udev)创建,在切到第二个init(systemd) 后,看起来就像内核搞的一样 😄
devtmpfs 只是 -o size=固定的 tmpfs
/dev/null 这些统称为内存设备: https://github.com/torvalds/linux/blob/master/drivers/char/mem.c#L696
完整列表见 device.rst

Linux内核的启动参数,主要是 root=/dev/ram0 ,通过pivot_root的新方式都是在可脚本环境下挂载/的
initrd由多个 .cpio.gz 构成,真希望能把.iso 与挂载脚本也加进内存去啊😅😅 为啥非要从u盘
https://run.tournament.org.il/extracting-multi-layered-initramfs/
https://github.com/owenson/tiny-linux-bootloader/blob/master/bsect.asm#L112
http://boot.ipxe.org/ 网络启动

#learn
https://wiki.archlinuxcn.org/wiki/Arch_的启动流程#Getty https://wiki.archlinuxcn.org/wiki/块设备持久化命名
https://mickyching.github.io/kernel/linux-vfs-introduction.html
https://kernel-tour.org/fs/devtmpfs.html
https://github.com/0voice/linux_kernel_wiki/blob/main/文章/设备驱动/Linux操作系统学习之字符设备.md#三-字符设备基本构成

魔数解析 https://ty-chen.github.io/linux-kernel-0x400000/
https://uniondong.github.io/docs/linux/linux_driver_develop_basic/一文秒懂linux字符设备驱动/#21-cdev
https://github.com/torvalds/linux/blob/master/fs/binfmt_script.c #! 的由来
手写fs https://linux-kernel-labs.github.io/refs/heads/master/labs/device_drivers.html

ps. #rust 😅 macro 是教你这么玩的么,简直是对元编程的侮辱 declare_err!(EPERM, "Operation not permitted.");..
一个KV表写成这B样,唉 https://github.com/torvalds/linux/blob/master/net/9p/error.c 都不好意思了
结合前两天折腾国产 Android ROM 的经历,随便聊聊 Android Webview 相关

在如今这个大部分 App 读作 native 实则写作 web 的年代,webview 逐渐成为非常关键的基础设施和黑白帽子们喜闻乐见的攻击面

AOSP 自带的 webview 都是编译 AOSP ROM 时同步编译的 Chromium webview 而来,由于是编译而来,因而该 webview 采用的都是厂商的签名,意味着如果系统不更新或是厂商不发布对应签名的 webview 更新版本,用户系统内置的 webview 将永远停在该版本;而在 Android 6 及之前版本,webview 的包名硬编码在了 framework-res.apk 之中,两者共同导致一旦厂商宣布停更,用户的 webview 也随之停更,直接导致 webview 版本碎片化

Google 后面也开始做事了,要求厂商内置Google webview(由 Google 签名并在 Play Store 上维护更新的 webview 版本),同时从 Android 7 开始在开发者选项中用户可自行切换 webview 实现,看似缓解了 webview 碎片化的问题,但是忘了最大又是最特色的市场——中国

很早很早之前在国内应用商店还是能比较方便地下载到 Chrome 及 webview,自从后面 App 开发者实名再加上备案机制隆重登场后,国内各大应用商店已经见不到这两者的踪影,系统自带的 webview 自然也是没人管没人更新了,到头来 webview 碎片化依旧严重,反正对于厂商来说,webview 版本老旧带来的安全隐患他们也根本不 care,合规才是第一要义

之前我还很反感一些国产 App 动不动自带个 webview,还会跟着酷安的教程强行把 App 改用系统 webview,但现在看来在 webview 碎片化如此严重的国产 Android ROM 市场上,App 厂商们这么做也无可厚非
当然我也不是为他们的行为洗地,实际上这些 App 自带的 webview 也是从远古 chromium 魔改而来,安全性不予评价

频道里的 Android 用家们还是定期检查下手机上的 webview 版本吧,可以戳 [这里] 查看是否有更新

题外话:考虑到用户如果同时安装了 Google webview 和 Chrome 就会导致系统里同时出现两个百兆级别的 webview,在 Android 10 后 Google 引入了 trichrome library,简而言之就是 Chrome 和 webview 直接共用一个 trichrome 内核避免双倍占用,在 Play 更新 Chrome 的同时会自动更新 trichrome