duangsuse::Echo
413 subscribers
3.85K photos
105 videos
574 files
5.15K links
duangsuse技术相干订阅
这是 @duangsuse 与技术有关的发布频道
duangsuse 的另外有 throws 闲杂频道
@dsuset
转载频道 @dsusep
duangsuse 有coding,github,gitlab帐号和bilibili帐号

极小可能会有批评zf的消息 如有不适可以退出

suse的小站:https://piped.stream
ps 另有别名 popf.rip
ʕ•̀ω•́ʔ✧ 🐶🍎🏠生死🐜
(>ω<)岂因祸福避趋之 一鿕
Download Telegram
#经济 #learn #linux #recommend 400包邮 想组装1个手提箱大小的台式机🥰
https://rank.kkj.cn/Computer62.shtml
不想用平板电脑、armv7开发版、预组装的电脑棒/小主机 来替代。
DIY,至少能含4GHz@x86的算力,示例:

https://post.m.smzdm.com/talk/p/apxqq3v0/
部件CPU 主板
选型LGA2011 ATX
型号 至强e3-2667 x79双CPU槽
价格 65 262
b75主板~10w
https://www.intel.cn/content/www/cn/zh/products/compare.html?productIds=78866,95598,53422
https://www.intel.cn/content/www/cn/zh/products/compare.html?productIds=75054,64589,68316
^阿里上最低配为398

--
兼容CPU 主板 mem disk
LGA1155集显 mATX 16gDDR3@1.6k SATA3
i5-3570:3.8@4 b75技嘉 2*8g浦技 256g威士奇
85 70 77 102
*256g悉硕nvme(3Gps读取,sata只有600M)
*2x4G二手18,电源酷冷至尊二手47
*e3+h61 在主板上省30 无sata cpu效能低点🌝 ddr4主板小200
*主板上难认的长-短槽 可能是PCIe/mSATA

机箱 散热 电源 显示 键鼠
全透明书包 风冷ARGB 12v,DC-ATX<300W DVI转HDMI 折叠蓝牙
20 16 25+65 6 53
🧐
230三大件+96电线视频线+112硬盘+88外壳
=342配置+184外设+0 wifi迁移Arch linux
=528包邮

*电源接受12v电瓶,屏幕直接用投影仪
*经过权衡,手里有烙铁,AB胶,可以用usb潜水泵+铝水冷头6*8管=6+12 密封散热; 主板、12v电池使用磁吸拆装。 开机时,拉链外只有3管线+hdmi
#冷知识 https://www.bilibili.com/read/cv326219/
*整个主板PCI不使用。只有硬盘是活动部件,只用盖个塑料布,何必强行固定

😋这是我第一次主动配置(4@16+256G 兼容机)的硬件!
#life #经济 #china #learn 医保框架
https://m.youtube.com/watch?v=n9kdz5AJjZ4&t=10m

医保 facts:
医保分为白卡、蓝卡、金卡、黑卡,也就是城乡医保(年自付~1k,占3/4)、城镇职工医保(0.1倍工资,1/3可自用)、公职人员补充医保、干部(“特供产主义”)医保

在白发革命前,用于职工住院前费用和丙类药物的「个人账户」已经缩水,报销越来越苛刻了
每年报销有自付线(~700)~止付线(上海数十万,成都看收入,小城市数万)
20万种可能使用的药品里,甲占1800乙800,丙类报销0%

医保基金的本质是众筹给当下最需要医疗费的人,台湾也使用统筹账户,但台湾人可以质询财政,能阻止转移支付

中国医疗资源不平均,小城市总要异地就医,普通人几乎不可能开出转诊证明

继白发革命,「血槽姐」「icu四年老干部」在中国引起争议,就像胡鑫宇案的一些谣言。

中国法律规定,当一个城市的职工保险统筹基金出现亏空时,市政府和土地财政必须填补缺口。

全民健保 facts:

台湾没有加拿大那样的免费医疗税,而是自1995,强制缴纳该职业的保费(无则在健保署服務據點進行加保。一個月是 426 元,2024最低薪资27470新台币)
这个制度在质疑下预热了9年

国民,从蔡英文到老农不论蓝绿,使用同一颜色的健保卡,这体现了公共福利的核心价值。参保人还包括依亲移民、长留外国人、侨民学生

民国113年,患者每年封顶线相当于¥19k ,这个封顶是指自付上限。一例肾结石手术费自付¥500
重大疾病者,自付部分100%报销

台湾健保在 numbeo.com 的评分世界第一,并不是朝鲜委内瑞拉式免费医疗

医保vs健保:

全民健保是政府有义务的社会福利,就像义务教育,有强制性、无差别对待,是人权,不需要内卷

医保被批评为社会反向保障,因为明面2级实质4级的区分报销,反而像金卡剥削白卡、黑卡贿赂金卡的水滴筹工具
医保并没有给到2/3中国人超前消费或做慈善的安心感,这一点在JAKE去台就医时体现的淋漓尽致

按人民币,医保报销区间多是700~7w、健保免付线是19k

台湾没有户口移民一说。和美国白卡一样,医院先治疗再收费,户口间没有医疗隔离
但医保在跨省时,需要开据转诊证明

中华民国实施全民健保时,为了将公保、劳保、农保、军保的旧有保险体系整合纳入全民健保中,故采取依身份别(即职业别)强制纳保的制度。不同身份加保人,不因健康病史问题而有不同保费,而是根据行业身份有不同纳保费率。到医疗院所就医时即仅须负担挂号费以及部分负担费用,申办“新希望卡”者在挂号费和部分负担中能再获得全免或减低。

在哪加保?
在領取失業給付期間,可以申請健保補助。但如果你是自願離職,就必須透過適當管道來加保健保。
健保中斷期間,如果沒有加入工會或農會,就看看是否有能夠依附 眷屬 ,若有就可以到眷屬投保的單位補辦。或直接到戶籍地的區公所,健保署服務據點進行加保

即便仍有自付项目,例如进口心脏支架,健保也没有「个人账户」,但是基金财报公开透明
https://www.mohw.gov.tw/cp-6560-76033-1.html
https://www.uho.com.tw/article-60375.html
https://campaign.commonhealth.com.tw/main/2021-HealthInsurance-412 🧐

2023人口和GDP:
上海 台湾
2400 2300w
4.7 5.7万亿
📌看不起病,是因为中国人多钱少?
方脸:我们该有的福利该是什么样的?
https://m.youtube.com/watch?v=AHh22KYfYzs 均gdp同重量级对比:中国vs智利公共医疗
https://m.youtube.com/watch?v=USOo3y8ITBE 医疗反腐?薪资待遇 三甲三乙vs红十字会、三桶油
可持续的反腐方式:高薪养廉+医药分离,而非用道德发薪、用道德执法
https://m.youtube.com/watch?v=dnlmNrexUEU&pp=ygUN5pa56IS4IOWMu-S_nQ%3D%3D 昨日重现:辟谣养老金不足
#os #embed #learn http://www.bilibili.com/video/BV1JM4m1U71z

总结:os就是对cpu,mem的分时复用,然后支持ip,io,fs
用过嵌入式都知道dts设备树
usb2,iic,uart有D+D-,sDA sCLK,tx rx 二线传输数据,spi是 di do cl cs 四线
vga 有RGB HVg六线,这些都叫io。 linux用/dev/mouse0 这样的已解析数据作为接口,但更简单的内核上,直接用函数也是可行的

然而,为何有syscall这种“RPC手段”,为何非得把对象opaque type(inline class)化为“句柄”,而不能使用OOP的封装-例如pwsh的ps命令,那要怪C的指针-mmap模型为何允许捏造一个地址去访问,为何不记录数组长度、子项引用计数,
带来所谓空指针、野指针、未free、内核态上文切换栈拷贝 的问题

其实哪怕把愚钝的for(int i..) 换成区间迭代 (0~9):(i) 错误也会少很多
但是多少C系程序员沉溺于此啊?

像JVM,js.permissions 以及 unikernel.org ,微内核,虽然也是一种“虚拟地址空间vma”实现,却不需要划分所谓Ring0,1的隔离。
app写成的驱动,照样不能像DOS那样越权擦磁盘,这就是编程语言的主导意义了。内核级的Lua,就和rust一样安全
#learn #kt Benny霍评论区
协程 async。自动传回调、var都打包到其class因为,比如传给sleep()后自己要return。协程对象就比()->闭包多留个switch(nthStmt){}

把sleep()外提为赋值语句,以保留和恢复调用栈而已,linux单核调度多线程,甚至你调用IO时为了鉴权,也会这么干。 cat|head 不就会await您的键盘吗? read()就会suspend 1个C语言的“有栈”协程。
之所以要async,只是想节省pthread_create,因为你要拿mainloop去poll(定期/卡http的轮询) 触摸屏事件,设备资源是独占的。这和内核驱动(/dev/WebUSB) 才能导致死机蓝屏是一个道理

如果系统,比如Web APIs吧,只提供回调而禁止while(1),哪怕只支持epoll(查看监听)/select(poll多项),就根本不存在线程一词 -就像C里你并不知道read()本质上await在pipe前“生成器”的write()
--也有人叫它yield,那是因为我们不能靠return写入“文件变量”、不能重赋值函数参数以返回多个值.. 为此jspy还发明了“async*()=>生成器”..
完美复刻UI层State(val).onvar[]的轮子呢!可惜是难用难复用的阉割版。

VSCode只加两个js线程,就能运行得很稳,这难道不是App设计的常态吗?难道那些小程序比code更“架构”?
至于免锁或基于资源.transferTo()的多线程,WebGL/numpy/MapReduce(ForkJoin) 不需要重造OS 1Dispatcher:N Continuation(该叫class CPU: ()->isFinished吧)的轮子配什么池化,就能实现前后端们无法想象的性能提升。

ES5的 yield cont=>setTimeout(cont,1s) ,由awaiter链接timeout和g.next,已经是免编译协程API的巅峰了,Promise.then 只是省得你传cont回调。 当然,timeout也可能返回cont=> 所以then要能接受async()

另:JS是视 fetch(u,{abort:Signal}) 取消任务的,我不认为app里会需要一堆 coroScope{} 这样图文不符的结构。kt在UIUX界敢能和H5相比么?为什么语言多项功能,app的功能却少的可怜!

kt的结构化并发不比Go的WaitGroup(semaphore)有用,但新词一大堆,初心全忘了,开始比java还八股了。真可笑,屠龙者终成恶龙
那些比Promise更繁琐的,是毫无语意的知识,迟早被py AI自动完成。看来科学界也不喜欢代码圈整这些无聊的class

就问 https://python-future.org/ 2to3这么聪明又简洁的lib,java人们啥时候能学会?态度问题,不是智商低 #statement

协程线程进程,都是Job
jobs的管理上,除了^Z SIGHUP再 fg bg 恢复,内核还支持swap(整个系统的)内存页到SSD,甚至用CRIU直接把进程快照为文件。 这样的快照不仅能多拍,还可通过网络传输,简直易如截屏,又像 Termux.dev / Waydro.id / webvm.io 那样神奇;然而这样超越运行期的“时间魔法”,90%的编译器根本做不到,只能用reflect或asm模板这样的残次品搪塞;同理90%的语言里“函数值”都没有相等性--所谓闭包“值捕获”却并不能自动内联JSON,所谓RPC,protobuf还不如微软的COM,pwsh.NET普适
#os 在这一点上可比 #plt 的孤岛、围城,先进太多了
https://t.me/dsuse/19341

https://kotlinlang.org/docs/coroutines-overview.html
https://github.com/youngyangyang04/TechCPP/blob/master/problems/为什么用户态和内核态的相互切换过程开销比较大.md
http://cht.sh/podman

podman run -dt -name cnt busybox /bin/sh -c 'i=0; while true; do echo $i; i=$((i + 1)); sleep 1; done'
podman container checkpoint cnt
podman container restore cnt

https://t.bilibili.com/948850441406382096
#learn #linux X11的架构好像是xinit 一条命令作为wm
连接HID(-l input) HDI(/dev/fb0) 并监听:6000 /tmp/.X11-unix DISPLAY=:0
app通过 GDK_BACKED=x11 /QPA_PLATFORM=qxcb 或5行xcb代码直连到wm混成器, 单全屏窗口没有性能的好处,DirectFB一般用于gtk/qt移植
export DFBARGS=system=sdl

X与Wayland的主要差异,就是X服务器日理万机,每个窗口的所有控件他都要知道,一边接受鼠标键盘等输入设备的信号,一边找窗口管理器要窗口的位置,计算哪个位置需要更新,也是他负责让显卡绘图。还应该有个专门的合成管理器往窗口旁边画影子(即显示叠加层,xfce,compiz甚至支持特效-离屏绘制)
Xwayland里没有X 就像wine里没有win,因此它的驱动支持不能玩游戏,比如SteamOS Proton

Wayland合成器(相当于Xwm),接受到输入信号直接发给窗口,让应用程序自己处理输入和绘图,画完以后把各个窗口的图叠到一起去显示出来。 cage 就是单全屏窗口管理器

Old is not always bad. X was very well-designed by smart people and still work many years later.
People speculating that "old" and "uses network" must be slow and bloated, but again, X was designed for really really crappy 7MB hardware.
People also hear that X uses the "network" and think this is going to be a performance bottleneck. "Network" here means local UNIX domain socket, which has negligible overhead, there are even X extensions to make faster (XSHM pixmaps, DRI, etc.).
If you're stressing about X as a source of overhead on a modern Linux system you probably aren't looking in the right place. X was designed a really long time ago for computers much less powerful than a modern cell phone.

https://www.jianshu.com/p/c49fc6c1b03e
https://fishedee.com/2018/03/06/GUI%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84/#gnome
https://doc.qt.io/qt-5/qpa.html#qpa-plugins
#learn #逻辑 https://m.youtube.com/watch?v=b7JwnodFp44

逻辑谬误,归类于5种,附有有趣的示例:
典-在交流中对名词有不同的定义,或者对形容词的范围并不理性,费时费力却鸡同鸭讲
孝-没法正面说个所以然,搬出看着更权威的救兵
蚌-证据大概都是对的,但因果逻辑上摸不着头脑
急-虽无逻辑又跑题,但您需要先攻击带有嘲讽的随从!
乐-抛开事实不谈,我只要我觉得
麻-四条腿好,两条腿坏这样的喊口号辩论。

典-在交流中对名词有不同的定义
二极管:非黑即白,忠诚不绝对就是绝对不忠诚
滥加定语:小明只有一米五,他自称是全班最能干的男生里最高的。 小刚加入后,他加了一个“真正最”。墙上印着【只生一个好政府来养老】,十年后前面加了句“公务员”。
以偏概全: 中国人访问不了yt,制度类似的俄罗斯和缅甸就更看不了yt;我关注的媒体都爱报道同性恋犯罪,因此所有的少数群体都是有难言之隐的嫌疑人
幸存者偏差:只提及对自己的说法有利的经验,不去统计或搜索反例,如某医只强调自己治好多少亿人,不统计接诊过多少什么症状的患者

孝-没法正面说个所以然,搬出看着更权威的救兵
从众心理:盎撒和犹太控制了全球的金融,B友们是这么说的。 然而,真理有时却掌握在少数人手中
以人废言:日本女优都下海、韩国人都很小、小学生都让人厌烦、不信员神的都是反动牛鬼蛇神
诉诸权威(可疑/利益相关权威): 例如政府,不一定都是对的、或诚实的
身边统计学:诉诸轶事。吸烟有害健康,但我身边有人不吸烟反而得了肺癌

蚌-因果逻辑上摸不着头脑
赌徒谬误:我抽卡了5次,这次应该能金了。对于考试可能是这样,但随机数不是
循环自证:我爱国者打你,所以你是反贼。爱国才能打反贼,所以我肯定爱国,那你就是内奸无疑了!

急-您需要先攻击带有嘲讽的随从!
举证责任:谁主张谁举证?但你就是罪人、不爱国,快证明你是爱国的!

乐-抛开事实不谈,我只要我觉得
预设选择:套话,例如约人时直接问时间,而不先确认。在政治上,三年【自然】灾害、抗【美】援朝 便是一种洗脑
文字游戏:我们中出了一个叛徒,这种行为属于合法只是违规

麻-喊口号辩论。
诉诸自然:动物之间存在的行为、植物中存在的成分,是自然的便美好;例如同类相食、强者生存、一夫多妻、罂粟中药是自然的,便值得推广
诉诸中立:左右两个极端的折中一定是对的。 有时,折中的结果是一句废话,例如独裁和民主都有缺陷,所以追求什么都没用
#recommend
#plt #cs #learn 如果从「一等公民」的角度给语言打分,从计算器开始,依次有这些类型的值:

bytenum1248(char short int long u8~u64) bytes bool
tuple union{enum Tag} rwstream(sockets/libc) 很大程度被sealed class:接口重写与json消息取代了🔑

list的len(骂你呢,C) str的iter(utf8的'🔠'不总是8bit一格哦) err和null的可选链(骂你呢,java空指针.快乐悲伤路径/非局部return)
Rc/GC(如List树或KV图 而非瞎手写指针链表); fn的bind(非全局状态,即对象变量,函数值)
Thread的asCallback(小名async函数. 能被不同CPU回调的'单线程',以允许evpoll监听,如触屏手势)
ref的onvar(响应式绑定,模式匹配let) ref的map(惰性数组和变更缓存)

fn的bindLit(字符串模板/算式内重载/变量和类型作为值-反射)
wavfile的sr(自适应微分精度) vec+计算图=tensor(numpy)

C的数组没长度,union没tag不区分子类型 (说C有sizeof的杠精退散,C就是在用汇编器都嫌烧cpu时代的封建余孽,pygo ffi/asn1可完美取代)
C++一个lambda隐转SAM class可给它装到了,难写的要死,那么简单的逻辑写成下划线能加钱似的😅
C的多维数组不支持broadcast运算,当然也没有.shape
librosa的“声音采样”只是数组而不包含采样率..
sql的惰性数组,至今仍被 http 分页切成offset limit的碎片缓存

js的input() 不能和{wtf:}绑定,只能搞.value不能load,formUI了个寂寞? H5应该比qt gtk这些先进吧,结果Tk里都支持的Var()compose没移植过来😅
java的“序列化”因为反射的不透明,至今仍有各种坑,因此最基本的CLI也写不利索

我至今仍然很好奇,新语言/库对「值」的理解,会怎样在无知上继续刷新下线
然后用一大堆自身就缺陷不小的所谓设计模式、样板项目。。 来解决这些API自身的缺陷
——你们真的懂自己的lib在解决什么问题吗,如果没学过,比较过古今四海的同类api吗?

在我看来,没有统一标准Ok/Err类值(NaN,null,'',[]..) 的语言根本没法使用,只能写些不相干的ifelse🔑
而没有标准二段求值(类于py的type annotation) 的静态语言,所有数据绑定都无法完成,只能祈求它能导包,或只用写4个“属性”的load/save
连pip install 都没有,就更是对工具化使用造成致命打击了。 (什么?可以发布 shadowJar? python可不需要你懂这些,甚至cli直接fire(fn) 就有了)

然而无论OOP,FP,“多范式”.. 它们是绝对的主流😅😅😅 而且还有一堆人对那些boilerplate code奉之为圭臬
仿佛只要是个“图灵完全”的语言,有一些UI/http/CLI的接口能用上套上,代码有多烂?冗长如同手写汇编?时间来凑就够了嘛……AI都懒得用

#linux 应该不会告诉你,它也是libc算法的一部分:它负责“分配与回收.so对象的内存片” “在cat等待read()管道生成器时 让cpu跑其他时间片”,它还定义了“ELF对象格式”,这约定了.bss与全局构造器,允许你修改.rodata里的字面量、用LD_PRELOAD替换函数
它使用被称为fd(->inode)的cookie参数,调用“syscall”来鉴权,而
这种CLI有4类参数 env UID=header f -kw -is-flags arg 与http如出一辙!
https://t.me/danteslimbo/3349 ebpf

这些,都是pyjs背后会为你的代码做的事! 但,你的object()强过C的dlopen()或bash alias,你的async def强过C进程,可用于N:1轮询'用户态'触屏驱动,你的http能跨越内存或系统,不需要wine和/usr/include struct就能利用..
linux 唯一比jvm强的部分,除了能解析各种usb,ip消息驱动和fs格式,就是mem上兼容用磁盘做4Kswap,以及cpu上能让while(1) 不像js那样卡死-注意!单await不等于没有并发加速。😋
os和compiler的同构有多疯狂呢? 打开htop,你看到的其实是F12里的对象树:这包含env表的继承、killall将它们free()、新线程的数组;而对于能被多个“对象”引用的文件-如同堆内malloc,内核还使用了Rc来清理对象图..
所以,有没有感觉自己比UNIX运维乃至内核开发者高到不知哪里去了呢(笑) Linus懂个锤子异步

btw. 我说的「值」不是与ref对立的那个,而是“用于90%编程业务的必需品的心智模型”
再说,不能ref.assign/copy() 的也不叫引用
duangsuse::Echo
#it #recommend async/æˈsɪŋk/ #learn 妙妙词典 同时矫正术语的发音和涵义 首先 P2P 读作 p to p, log4j 读log for java, 这些和 btw,fyi 同是缩写 以A开头的非专有名往往是æ('app')而非ʌɑə' 包括 admin matrix Amazon agile 空耳仅供避免「不方便拼音化」时可能产生的“片假名地狱”,可以启发兴趣 不适用生产环境和传播 — 节选 Adobe 啊逗比,创作力软件 Ubun-tu 无本图,免费版win,使用apt…
btw. 我认为最好的 翻译 #learn

opaque handle黑箱对象号 cookie酷卡 stub/polyfill/adapter垫片
socket字读写 bind回应端口
buffer字截取 cache快取 free归还 RegExp字模式
add event handler添加事件回应
listIterator,forEach行列举器 列举
hashmap,hashCode KV表,KHash
heap,queue,techstack context 堆/队/技术堆叠上文 parallel平行计算
permission manager 功能授权
DBus.svc桌面集线服务 USB统一字串集线
bitmask位遮罩 opacity有色度 thres域止(值域)

stmt句式 expr算式 operator运算函数 const/literal常数 varDeclare(这里)添加变数 arg/operand参数 param引数 locals局部 binaryFn二参函数
syntax写法 semantic语意 inline字面 reflect类型信息
identifier符号 signature函数签名 macro符号函数
> ast的本质是JSON,字面量只能叫常数。任何“声明”应当被理解为让编译器添加单项item,这样“类型检查”才好被理解为对调用的穷举、对<T>的模式匹配-取成员交,而不是成为脚本人看不懂的体操或魔法。

overloads多写 override重写 generic繁多类型 polymorphism多型 dispatch/sched判发
callback回应 return回值 overhead开销
exception错误 error致命错误 void*可调指针 void()可调

abstract待定 final确定 static类名上 sealed可确定 class类型 switch(enum)判定分类
record行 field栏 get/set栏目的读写
template模板 boilerplate样板 base样板
extends/inherits/subtype扩充 实现者
marshal封送 serialize字串化 serial字串线 cursor游标 cell格子

反例:
offline脱机 default缺省值 enable使能
robust鲁棒 opacity:0透明度最高
ram随机访问 dword双字整形之类 deference取消引用 destructor析构函数
雷劈总线 正在成功 不能be read 坐和放宽 头抬起。。

“只需要打开套接字,read到1K的缓冲区,写入文件,直到结果为-1”
设置端口监听为80,注册http请求处理器,注意请求缓存
要根据上下文及时通过句柄释放分配的内存,要定期吊销cookie,防止调用堆栈溢出(到底是说heap还是stack?)
通过列表(到底是列还是键值表?)迭代器,遍历,使用主调度器执行,它会序列化保存未完成项
new一个抽象类对象,报错,继承它再多加个静态整型属性和颜色枚举,编译通过

带入我的翻译,就没啥「专业性」了
🤔🤓 中华文化博大精深
当然也有废话文学
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,拿些辞藻和皮毛当本质,哎
无聊
好像早点拿到电脑,多写代码
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,返回空目录
#kt #歪点子 inline class 来了,const fun 就端上来罢🤓🤏 https://youtrack.jetbrains.com/issue/KT-14652
https://kotlinlang.org/docs/inline-classes.html


const val x = encrypt("password")
const val hash = md5(File("config.file")

val routes = arrayOf(
get("/hello", (req, res) -> "Hello World");
get("/fizz", (req, res) -> "bazz");
);
dispatch(routes); //2* if

const val MEMORY_SIZE = 640.kb //fails now
const fun p(num: Int) = it == 0
typealias Zero = Int / ::p
//现在的带验证类型
value class Even(val num: Int) {
companion object {
operator fun contains(num: Int) = num % 2 == 0
}
}
& being able to use the return value of a constexpr function as an annotation


replies Andrey Breslav:
The main use-case is 'documentation'. See the resent example of discussion for "nameof" here: https://discuss.kotlinlang.org/t/nameof-to-get-names-of-program-elements/1518/4

https://github.dev/rust-lang/rust/tree/master/library/std

there are apparently 990 functions in their stdlib that have been converted as const fns

https://tech.youzan.com/java-metaprograming/ #learn 元编程是什么?为什么js人搞JSON不需要靠元编程?

编程,就是用SDK给的套路解决问题。
元编程,就是突破病态类型(仅编译期可见的静态类型) 的桎梏,编写能写代码的代码,即codegen函数,从而实现编译器没有自带的功能,例如打印“class指针”里的内容

☺️我有一个绝妙的点子替掉 https://square.github.io/kotlinpoet/ ,只是手里的屏幕有点小,写不下
https://github1s.com/bennyhuo/Kotlin-Trim-Indent/blob/master/trimindent-compiler/src/main/java/com/bennyhuo/kotlin/trimindent/compiler/TrimIndentIrGenerator.kt#L34-L81

瞄了一眼,发现截获覆盖字面量调用是挺简单的
Forwarded from duangsuse
哎,没有心情看 #kt #book
看了下codegen技法,只能说近十例子里anko的风格相对优越,和html一样是用twig(类似erb)模板,然后作者函数复用还行,但也没有到90分的程度。

例如“贯穿全文”的DeepCopy(x:T)吧
js里相当于x就是T的反射,又一切皆可变,可以直接读写{...x}[ID], 只需
mapEachMember{if(it.isPrim) it else DeepCopy(it)}

kt里需要用构造器复制,先拿到 T.vars[ID].get(x)而非 x[ID],但依旧是 mapEachArg{getattr(x,it).primOrCopy} 的模式,这个至少适用于 Tuple$N的toMut和url参数绑定
这就是个小学算法,反射和List API 的良莠不齐却让它很难看。

重要的是独宠XXpoet 真的无力吐槽,和那个 https://t.me/dsuse/17514 一样,就一个不用导包,然后自带formatter。简直可以说是一碟醋级别的算法,甚至应该叫搞错重点

和我的tkgui https://t.me/dsuse/19768(py基于getattr等元编程,运行期生成等效调用赋值图代码)
都没法比,何况最近我在设计表达式级(fun{}内计算图)都能建模的跨语言、带裸类型推理、动静合一OOP元编程范式了,这种拙劣的"xml模板"实在写不起来

java确实是“病态类型”,而非什么静态检查。 连数据树的验证和walkDeep都要靠魔法,有什么资格谈类型签名的那些好处?
靠被默认值参数替掉的重载吗?

只能说,如果手头有电脑,我应该去吧那个sql dsl写了😒 而不是在这看java人像手写sql或xml那样拼接字符串
不知道 unquote(ast) 这种函数式代码生成,起码吧 quote(litOrID)做一下,免得被注入弄出无效代码啊

再说说全书结构,首先就没有谈元编程是什么,而是java老三套:环境配置、难题、抄代码

好吧,可是一个优秀的老师应该选循序渐进,但却对知识体系至关重要的例题: #learn #plt

- 为什么是靠C的#define 自主研发出易语言?预处理比str.replace多了哪些? 高亮分词后,灵活解释“常量字面”吧
> eval("[1,$x]") 是一种JSON解析器,可是x="][0]"时似乎有bug。 修好它,然后把js爆改为你希望的“易”语言(复用猜数游戏的REPL)。 完成后类似的bug应该仍然存在!
其实,js源码也有它的JSON.parse,它就是反射的原型。
- 比较下SQL的'?'、C printf、ERB/ES6模板,kt元编程最缺少的语法为什么反而是"$str"? 控制变量,就能明白pwsh和ts为何比bash和js有长期编程时的优越性

- if os==nt6: class: 与#ifdef _WIN7 凭什么是同构的? 动态类型,依旧是Java式的类型。宏,并不需要魔法
- 为什么Java8让 invokedynamic负责创建lambda,getMethod不也能.invoke吗
- 局部fun 一定要 ::引用的背后,藏着一种元编程,T.(A)与(T,A)->、(T?)!!的强转背后也是! 原来除了消除重复,她还让语言提供更有价值的“值类型”
- 为什么“闭包是穷人的对象”? C语言里回调函数去哪了?SAM接口又为何比到处new.object{}流行? 原来返回函数、重写接口也能费内存啊

- 为什么pyjs里很少人研究元编程,但却又有 python-future.org 与vue,babel这样的全民应用。 二者有何区别
- Proxy(obj)掉包属性,是动态类型元编程的专利吗? reflect.Proxy 能生成函数,还不止于DSL或AOP!
- 能不能通过函数重命名,用py风格的反射API实现KAPT的 @decorator ?哪怕只是封装Reflect?这能让你学习跨平台移植,收获超越本次需求的心智模型和视野
- Kotlin对dynamic类型表达式链条的“零修改”生成规则可以怎么实现,numpy里也可以吗? 这能帮你理解DSL和编译优化的本质

- “优秀的程序与其读写数据的结构直观对应”。纯函数式编程(例如rust的enum和if let) 做对了什么? 为什么你仍然选择不够纯的Kotlin? 这种enum能表示JSON乃至HTML的序列化结构。
- bash风格的参数有3种,其中一种如 ls -ar(all reverse) 传入enum:BitSet。用fun demo()出完整函数签名
- 以上问题和codegen无关,也没有教你具体怎么生成url/json/sql绑定类或函数,却给你了设计相关框架的能力!这次由我来回答,为什么javapoet是对pyjs里闭包list/dict的拙劣模仿,以及反射调用为什么就是在codegen!

所以。。 虽然《Ruby元编程》教你的只是一些OOP特性的“工作原理”,而案例较少,但我更喜欢它 --它让读者真正建立起了对"class"这个dict的理解,加上dyn(*arg,**kw) 本就可以用名字动态查,让读者对“把def和class 视为一种constObj去查询、实现复制粘贴、...”有了把握

而不是一个看似什么搞法和IR,ASM都贴出来了
实际上对你没有用,只是让工作失去焦点的troublemaker🌚🌝
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 都不好意思了
#learn #cpp Redis 作者展示 https://yabzhang.github.io/posts/project/reading_smallchat/
作为一个展示样例,这端代码展示了如何处理内存管理、网络套接字的使用、多路复用、客户端连接的管理、消息和指令的处理等逻辑。除去注释只有短短两百多行,用来学习和理解服务端编程已经足够了 ———— 麻雀虽小五脏俱全。

>晚上逛 Github 发现个好用的项目(替代sftp分发),可以用于传输文本和二进制流,支持 curl 和浏览器端,可选 E2EE,支持自建中转服务器,用于在几台服务器之间临时传文件很方便
https://github.com/nwtgck/piping-server

>piping server的衍生项目,配合piping server可以实现用adb远程控制Android设备,前端功能相当丰富,包括文件管理/终端/scrcpy屏幕共享
Demo:https://piping-adb.nwtgck.org/
项目:https://github.com/nwtgck/piping-adb-web

该项目依赖的上游透过WebUSB让用户可以在网页端通过adb管理Android设备 https://app.tangoapp.dev/guide

#rust #meme https://github.com/lvkv/whenfs 通过base64存储图片,类似 youtubefs

#cg https://swiftcafe.io/2016/10/29/pdf
https://github.com/Losses/pdf-postprocess
用 headless chromium 把 svg 转成 pdf,这样样式就全都对了。
Typst 编译到 PDF 就是走的 svg,谁愿意写 postscript
#security 回顾 regreSSHion: RCE in OpenSSH server<9.8
https://www.bilibili.com/video/BV11U411U78q
这一漏洞的描述听起来像是 WannaCry(SMB) 和 Log4Shell 级别的。实际上,该漏洞的利用不太可能。
2014年,OpenSSL加密库中的一个缓冲区溢出漏洞被公开。该缺陷被称为“心脏出血”,这次是它的回归

由glibc free() 数据竞争,导致heap链表 use-after-free 而使得glibc __free_hook 指向黑客在待连接的120s(异步 sigalarm)分配的地址
要利用这一漏洞,攻击者平均需要在没有firewall,fail2ban和Nx的 x86 ASLR 上进行约 10,000 次尝试,每台服务器需要 6 到 8 小时。

漏洞利用需要精心构造的heap链表布局,并发登录ssh以尝试fake key-exchange
https://www.offsec.com/blog/regresshion-exploit-cve-2024-6387/

管理员可以将登录超时设置为零(在 etc/sshd_config 中设置 LoginGraceTime 0)
🤓☝️ https://www.qualys.com/2024/07/01/cve-2024-6387/regresshion.txt

#learn
事实上: 只有基于更慢的ROP才能实现基于 heap 的RCE。默认设置下,该漏洞的利用根本是不可能的,x64缓冲区注入与SQL注入一样被 #linux 等内核修正了,对它的研究可以理解为另一种 #OI ,并不能对线上系统产生威胁
地址空间布局随机化 (ASLR)使注入代码的攻击在64位平台上变得几乎不可能成功,因为所有函数的内存地址都是随机的
在32位系统中,ASLR能够提供部分防护,因为只有16位地址可供用于随机化,这可以用暴力攻击在很少的几分钟内破解。 这也是为何所有PoC都是针对x86

实现今天唯一可用的ROP(2010 年Adobe Reader被曝出了一个严重的漏洞,攻击者可以通过伪造恶意的 PDF RCE),需要在C语言的缓冲区溢出上,达成这三件事情:
找到system函数地址
找到字符串“/bin/sh”地址。
system函数参数应该放在栈的什么位置,并且不能被canary发现栈已经溢出。

#dalao #blog https://mudongliang.github.io/
duangsuse::Echo
https://ray-eldath.me/programming/three-important-ideas/ #statement #PLT Ray: 我的一位朋友如此评论这些文章:他说真正理解抽象的唯一方式是通过抽象本身,而不是通过并不准确的类比。 「为了充分地("有用处"地)学习这些抽象,你必须去学数学,而不是通过一些糊里糊涂的文章,它们除了类比还是类比」 Dr: 要找到 “哪些代码遵循此抽象” 并不是必须的。像 Monad 这样的概念是非常抽象和通用的:它是一个描述了一套广泛的编程模式、数据结构、库和…
#PLT #learn 文中提到一个Futa对应关系(第一类二村映射 first Futamura projection), 展开讲讲还蛮有趣 🙉
首先,js人都会写计算器的,和 echo input/server 一样的难度

1+2*3
十(1, X(2,3)) -7

十=(A,B)=>A+B

这被称为「前缀式polish notation」,是Lisp的国是
教个小诀窍:js里函数只是一种字面常量,可以被for生成
Object.entries("十一Xノ").forEach(([i,x])=>
this[x]=eval(`(A,B)=>A${"+-*/"[i]}B`))


为了更像“语言”,可以用列表(进一步就是"1+2"的代码)实现语法,便于糖化
Eval([十,1, X,2,3]) -7
Eval=([f,...x])=>(!f.call)? [f,x] : //基线返回两项,递归就都是两项
(([A,b]=Eval(x),[B,c]=Eval(b))=>[f(A,B), c] )()


Monadic递归下降是这样AbBc的,因为不能右移流指针。不如逆波兰好看!不过这种程度的递归可以学学。

再看下「解释器interpreter」比计算器强在哪: 能够“在调用时传值”,也就是要有 argument[0] 这种“环境变量”
很厉害!现在有常数外的“语法”了,有变量了,高阶了!或许你需要学动态作用域(原型链?)、调用栈call-ret、惰性求值如&&|| blabla,还有深不可测的编译优化呢!

不就加一个箭头么。
十=(A,B)=> (env=>A(env)+B(env)) //现在知道为啥该用for生成函数?
Lit=x=> env=>x
Arg=i=> env=>env[i] //PHP写作 $x, 模仿bash的$1~$*
Fun=(n,f)=>f(Array(n).fill(0).map((x,i)=> Arg(i)))


env被称为运行时,它可以是JVM, import dis 或者别的bytecode解释器,这能减少tree-walk对递归栈的频繁依赖
这种 formSytanx.bind(consts=lit/arg/global/Types..) 的"部分传参"函数,称为编译器,而它的返回就是classFile等类型。
编译器并不需要与DSL这些技巧隔离,如果我们把 env=>x 写作 JSON(x) 而 env=>env[i] 写作$i ,既 Lit=x=> gcc? CBor.dumps(x) : (env=>x)
以这种人类或机器可读的结构序列化一些函数被"bind"到的lit,就得到了对应的代码。jvm的 lconst 1, aload_0 this参数, iadd (2->1)甚至是自动分配参数寄存器的!
https://www.yinwang.org/blog-cn/2014/01/04/authority#:~:text=partial%20evaluator。其实并不是特别神奇的东西,只需要在普通解释器里面改一两行代码就行,可是有人

二段求值。代码是流动的数据,内存是暂停的程序。本文甚至比赢王更直观: https://www.yinwang.org/blog-cn/2012/08/01/interpreter
定义个“元循环加法”吧?
十1=Fun(1, ([A])=>十(A, Lit(1)))
十1([232]) -233

//[Lit(f),x] 补丁下Eval"解析器"。计算器、解释器、编译器间,其实并非泾渭分明
Eval([十,1, X,2,X,1,3])[0]([2]) -7


如果你乐意,还可以支持基于全局表的递归 fib=f(x)=x<2? 1 : f(x-1)+f(x-2)
这一切都不会突破以上的定义框架。 If 不会,Call(f,x-1) 不会.. 这就是java的反射嘛。
我不想再写什么了。 我看过许多“编译原理书”,他们连这个=>都写不明白。 更何谈用Visitor实现(反)序列化 这些既理论又实践的approach
#haskell data Val=L Int|Op Char Val Val deriving(Show)
(Op '+' (L 1) (Op '*' (L 2) (L 3) ))

这类基于list或class{子类多型} 的 Eval(e=^^, env={proto:{..}}),与本文使用的闭包法是等价的。「闭包是穷人的对象」,Promise 给它暴露到了 obj.then(Continuation)

> 高阶的思想或许是本文的所有思想中最为重要的那一个 https://ray-eldath.me/programming/three-important-ideas/
你们知道函数的函数、类型的类型、语言的语法,却难以创造「语言中的语言」—跨越用途与界限而一致的语意。
我看numpy和 taichi-lang.org 就用的很好,比LLVM好一个世代
顺带一提,上文还使用了 Tagless FinalDe Bruijn 索引 😇 。只是…… 你甚至不需要知道它们的名字。([A])=> 经常被实现为KV["A"],但点明它的本质,却比写解释器更简单!

说到底,元编程也只是编程。就像“学会学习”只是一种策略,它对学习而言,并非例外情况。难者,不会也,譬如在谈"bind(x=1)后函数值字面是否改变"时提起「颗粒化curryArg」 当然会让人迷糊
node,graal会编译js,jvm代码(这也是为何Chrome页偶尔会segfault); JVM会使用汇编模板+JIT 的混合式优化,Cython则把“甜妹语言”翻译到C,LLVM则是个伪装成NodeGraph虚拟机的codegen
如果只用"是否该调用javac"来区分语言,认为C类型总比python更快的话,你会发现程序员钟意的都是freak!

宏,macro码可揉,是传入与生成class{}等字面的函数。和+-*/一样只是函数,而函数、类型,只是值,别被“静态分析”骗了,它们送你的class只是病态类型。
入,lambda栏目答,看x,A,B等栏目回答的算式
这点篇幅放前言都觉得寒碜吧? 可就是没人做到啊。 扶她投影?不知道的还以为是HP projector 的娘化版呢。。
PLT能对dev点化到的可谓寥寥, 但100%都是必要且急需的知识和"抽象",像Prolog的模板与响应式html编程("FRP") 什么的。 Monadic错误处理我不想吐槽什么,只能说不怕不识货,只怕和Kotlin比!

跑题了。当然,聪明的你会发现Fun的返回违背了"基线指明了递归的类型"这一原则,没生成 env=>
那C语言函数指针是这样的,env由*rbp[0:2]=[retRbp,retAddr]这些CPU变量提供,但JS里的闭包可以从env偷变量(Var作为值,mut ref),所以说「闭包是穷人的(单方法)对象」

C里还有"函数符号",那是由ld.so实现的全局表,让.o对象能先被mmap到任意地址,再去回填calls
真正的那个全局表叫 $PATH: ,以及没定义main的对象的 $LD_LIBRARY_PATH 。
duangsuse::Echo
#反直觉 的 #经济 :节省越多,财富越停滞;资本家越少,国民越接近非酋? 这就是通缩危机:存钱-不消费-倒闭-削价竞争-你被降本增笑-更难存钱.. 😊 等倒闭的足够多,价格内卷就会换成恶性通胀 (简称国家滞胀)。 这样,之前辛苦劳动的棺材本,就要「清零」了!! 因此,政府那么急于靠调休逼购打破通缩螺旋。印钞,其实就是国在借,到期国家不还你钱,就只能换你国家了。 正所谓:资本亡我之心不死啊!韭菜敢争,主权会乱 > 这类流通性危机(即储蓄不花等人借),其实是供销自我平衡的过程,而外贸(输出"技术"革命)能缓解这些波动。…
#learn #tencent #经济 李录微信《几条常识》 白话翻译

芒格先生曾说过,常识是最稀缺的认知。违背常识会付出代价。所谓的常识,通常也是由这些代价反证出来的。
所以对常识的讨论总还是有价值的。这里我来谈谈几条常识,也听听大家的意见。

李录 曾似 柴静,不过他赴美后通过经济学训练,成为中国开放后,随巴菲特来华的一人,因此是唯一没被搞臭的64领袖
近年,李录在 Wall Street 将中国民营经济的崩盘看在眼里,效仿公知张雪峰,在朋友圈科普了健康的社会里的一些常识。 🙉

1.现代化是市场经济和现代科技结合的产物。但这其中有一个因果关系。市场经济是因,现代科技是果。没有现代市场经济,不会产生现代科技。在非市场经济的制度中,技术不能有效的转化成生产力,也因此不能产生持久、领先的科技。但是发达的市场经济一定会产生领先的科技。
制度成长是经济成长的瓶颈,经济成长是科技普及的瓶颈。通过消费与投资者「用脚投票」,资本市场能把资源和生产力,配置到最前沿的技术上,淡化资源所有权。市场和法制筛选下,经济自由能够最小化特权与腐败、垄断与劣质、压迫与躺平,自由是超出小农思想理解范围的生产力
- 对于奴隶制,先解决温饱和产权,才有心情生产乃至创造科技
- 原始资本主义缺少内循环,危及资本和创业,因此即便左派运动没有成功,既得利益者也不得不支持福利立法: 若恨压榨劳动价值,付外卖员小费便知;若恨员工不知感恩,遭消费者网暴便知
- 少数穆斯林国家立法禁止女童受教育,又刚把女性地位提升到高于骆驼的程度,市场就少了一半人口、一半消费,与国际贸易格格不入

2.除国防外,当今所有先进技术最先都是由私营企业在市场经济环境下创造出来的。美国,西方,中国都如此。政府主导先进科技创新,如果破坏了市场机制,没有成功案例。
行政者的权责范围不是生产,而是安保与二次分配。政府只能以财阀合作的形式决定开发方向,市场是听调不听宣。旱涝保收持续繁荣,多快好省弯道超车,想得美。
- 苏联是最富最牢不可破的同盟,被偷了69年,才垮
- 韩国汉江奇迹、台湾三大建设,都不是国企萝卜坑的成功案例

3.人的本性都是自私的。人的道德其实是对于更广泛私利、长远私利的描述。制度设计和政策措施如果不能激发人的私利,形成不了正向的激励机制,也就不可持续。无论在经济或是政治活动中都是一样。
立法和政治运动如果不顺着参与者的价值观,仅靠集体的道德,必然不能实现其善意目标,因为道德也需要更广泛更长远的利己,并非凭白信仰
- 朱元璋剥了贪官的皮示众,却无法阻止自上而下的腐败
- 文革多民主啊,却反而导致人民自由的丧失。大陆是台湾的几百倍?怎么得有那1个台积电?

4.关于腐败。腐败本质上是一种权力寻租。只要有权力就永远有腐败。在整个人类历史进程中、在所有制度下,腐败一直存在,将来也会永远存在。腐败只能控制,不可能完全消除。过度腐败对社会伤害,过度反腐也会对社会伤害。公正的制度性控制比人为的控制更可持续,而且负面后果更少。
绝对权力纵容绝对腐败,反腐权力自身反复腐败;腐败只能通过程序透明化控制,不可能透过严刑峻法清除。基于法制的清廉社会更为坚固,能减少诬告互害
- 反腐就像做环保一样,面子功夫,没有用心

5.权力是一组人对另一组人行为的影响力。它的总量一定,和人口数量相关。权力从本质上是一个零和的游戏。政府权力过大,必然导致民间的权力过小,官不聊生必然导致民不聊生,古今中外都如此。
权力是一组人控制另一组人的互损博弈,只有人口或控制力的增长能带来权力扩张。国进必然民退,官不聊生必然导致民不聊生,古今中外都如此。
- 兄弟情深,留岛不留人。堂堂正正,做敏感瓷主人。 权力真的图海参崴那40倍于台湾的面积吗? 它需要的是祖国强大,盐税好收,境外人权闭嘴
- 作为境外鹅爹的势力。。

6.市场经济本质上是政府在经济上让权给民间。在市场经济中所有重要的决定都只能由私人来做出。政府的作用在于服务和维持规则,不是指挥。由政府指挥市场经济没有成功案例。民间经济、市场经济是否有活力,常常取决于政府在经济活动中的权力是否足够小。
政府将自己的供销垄断还权于民,才产生了市场,所有风险决策理应让民间主导。政府权责在整理资源执行契约,不可能规划一切。政府花钱人民挣钱的市场没有成功案例。民营企业、市场经济是否有活力,在于计划经济的退出是否彻底
- 政府不是解决方案,政府是问题的根源——米莱
- Democracy seeks equality in freedom, while socialism seeks equality in restraint and slavery. ——哈耶克

7.市场经济对人才的选择由自由竞争决定,不拘一格也无法预测。一个社会越能够容忍不同人格、不同价值观的人才,越能在市场经济中成功。反之亦然。
自由主义经济对人才和风口的选拔是「不拘一格降人才」「各领风骚数十年」。社会越能够容忍不同人格、不同履历和价值观的人才,越能赚大钱,反之就会出现同时制裁游戏和AI的好政策

8.人从本性上都追求平等。追求结果平等的机制会造成最大的不平等,追求机会平等的机制会形成对结果平等的最大近似。
平等是普世价值,平均主义不是平等;断能人一臂,只能共穷,不能共富,授穷人以渔,才能共创平等社会。印钞救不了贫穷,平均救不了愚昧
- 有一群工人被降薪,他们竟要求全厂一起禁止优待,这当然是荒谬的;但是他们成立工会,收取扣除的薪水作为会费,以为大家创造机会,这便是公道

9.人对安全的需求远远大于对财富的追求。在已经温饱的前提下,没有人身安全保障,对财富的追求会大大降低。
权力>财力。资本不冒绞首的风险,但权贵敢。产权未完璧归赵,产物的价值和生产欲将腰斩
- 贫穷和空想是滋生犯罪的温床,人因贩毒致富,少有致富遂贩毒

10.市场经济行为和预期相关。当一个市场经济中,绝大多数人无论因何种原因开始持负面预期时,经济活动会衰退,衰退本身会加固负面预期,从而加速衰退。反之亦然。
消费者总是向前看,决定是投入还是过冬;当市场的51%都有某种预期,并让他人被对应的行为影响,想要救市就像是异见分子在与某些不可逆转的阶段斗争了
- 美国的次贷危机、大萧条、日本的泡沫消费

11.市场经济是由自发的需求、自主的供给,通过自由竞争而形成的。其中需求是主因,供给是手段和结果。市场经济的真实总量实际上是由真实需求总量决定的,而不是由供给决定的。真实需求增加可以提振供给。真实需求降低,提振供给不仅不能解决问题,还会造成更多连带问题。
市场是需求-供给 自由匹配和竞争的产物,需求和期望的上升是财富根本,供给和货币的螺旋给是生产手段。市场总量是由消费力而非GDP决定的,消费会提振产能,倒果为因会让病程延长,最终病情恶化
duangsuse::Echo
—精选评论 >方脸这次讨论的是墙内比较热门的一个话题 那就是当钱无法大规模换外汇和转移出去时 应该卖房炒股还是卖股炒房 >小弟在上海有两套房子,疫情爆发后就想卖,丈母娘一直不同意。现在只能每天守着金饭碗 >用印钱的方式 直接救股市,用股市来 间接拉动楼市。可惜房地产几百w亿的盘子,救不了 >别以为中国房子只有成本低,只是时候未到。一般預期房子壽命(非法定)在約35年之間,如果房價低於35年租金,可以持 >等租价跌到底,再剩以合理的租售比,即是当时的合理房价。而现在经济不断下行,租价也不断…
近期,中国 #经济 的剧本有3 #learn 🥰
A. 牢大硬控的股市坠机,没涨过两个月,暗示他的掌控力也拉了垮,中国经济没人能兜底喽
B. 复盘08、15股灾,虽然全民速通一遍河南银行,但国企连带私企也收回了工资,恶意破产危机解除,中下层被迫善意献忠!
C. 通货膨胀。复盘美日原始资本主义晚期的症状,因为内需外需崩盘、监管缺位,大胆印钞救市,但市民对放水创的产业不肯买账,通胀或恶化或滞胀,全民进入失去N个30年的还债期

谈到A,所谓兜底经济也很扯淡。年轻人和外资期待的制度问题、不可调和的矛盾不解决,消费和就业不增长,靠政策去劳动么?
最近的逆天泡沫证明,中国人到站在楼顶的往下望那一刻,还以为自己是自杀的。

其实呢,假设走了C,卖房意义也不大了。就像当初消费来源于资产增值时,它不需要你卖房兑现,通胀也是很自动化的,自动拿你存款接盘楼市。
只要不通过 #HK 股市或黄金润掉,那都在被锅端的范围内。外汇资源当然不是靠奋斗能发你的

如果市场对放水买账,例如不断接盘楼市,经济就能维持现状,不用失去30年。 那当然是不可能的,不符合经济规律的投资,早晚要崩溃还债,反而主动去泡沫更聪明

既然要吃亏了,先长个教训,复盘下中国经济是怎么走到今天的吧。

今天,中国消费被楼市捆绑很深,形成一损俱损,这很不健康,就像与苏联过度捆绑的朝鲜、与油价捆绑的委内瑞拉,幻灭是早晚的事
中国货币超发,中国M2约41万亿美元,创作繁多的美国却只有21万亿。这个雷来源于2008次贷危机后4万亿救市计划
房地产成了蓄水池,以房贷与招商引资等方式给人画饼,绑架年轻人为这次印钞买单,实现了暂时的共富繁荣

其实,若顺水推舟,成立工会和NGO等保障性组织,彻底转型资本主义,内需不足的雷未必会爆; 若转型法制社会,没了制度对立,欧美出于在华利益也会认可中国的霸主地位
若在遥遥领先之间保持清醒,不要宣战美日跪挺鹅爹,有欧盟的外需,暴雷也来得没那么快

就像自古以来的仇恨教育,如果钱景还能兜底,纳粹分子也懂暂时收敛,只是墙倒众人推,站狼引发的一系列连锁反应之「加速主义」进入不可逆转的阶段,穷人与垄断特权之「不可调和的矛盾」无法掩饰
世界工厂GDP的三架马车:投资出口消費

消费可以分为政府投资/民营经济两部分,以政府赚大头 政府花大头。 以前靠卖地实现花钱回本,现在想节俭了,想通过股市给国企续命,却很难。
外资与外贸就是维持汇率不破7的重点了

以美国为首的世界秩序:1创造(欧美日韩台)、2生产(中印)、3资源(鹅阿)
这三阶层分的蛋糕,当然是指一二三工业革命里诞生的产品,如家电、数码、设备基建。离第一世界越远,iPhone这些高质量产品和服务所需的工作时长越久
当然可乐麦当劳包括本地品牌大概会便宜,但旧资本的价值,能决定投资与管理这些新生产关系,包括定价权与曝光度等等

不过,这与竞争不过声称要掀桌子的中国都无缘了。 如果还有第二次改革开放,希望公民吸取教训,真心现代化,不然财富清零的周期率只会越来越短吧
批注下 初识 部分求值 与 二村映射 https://zhuanlan.fxzhihu.com/p/731295566 @ https://t.me/c/1441156260/47884 #plt
看了一眼题图…… 确实,你的 mix(f,x0) = f.bind(NO, x0) 还真表面化

至于拿这个写解释器 --本质上=支持arguments[$局部]的 enum DSL{N(0),Op('+' DSLx2),$(1)}
我在 https://t.me/dsuse/19868 用=>取代override eval()或Visitor{tr(ee:X)..}写了个10行

应该说,类似把call序列化成data的技巧,不仅在Redux/Flutter/ https://elm-lang.org#:~:text=THE%20ELM%20ARCHITECTURE 里到处都是,
还能成为C文件或socket格式,比如ELF段和节,这就是一种JIT内存转储的模式,是解释和编译+VM间最直观的联系。用模式匹配特化 template<> 内嵌sizeof更是成了烂代码

以下内容就很乱了,像原文。
def search(ks vs于调用 k于引数): 所实现的 LinkedMap……这甚至连LexScope都没解析,比如哪些是new Func(捕获的绑定)哪些是global

参数可以无序…… 拿partial(f,k=v)换bind
第一类二村映射 T=L ,也就是reduce(T=>T.bind要有效, L) 呗,template<> 就是

src=defs+exec+lits
interp.bind(src).call(data) = compile(src).VM(data)
第二类 C2=binderVM.bind(interp) 哦,所以M=jvmbc mix(mix)是元循环VM?
第三类 算了,感觉就是拿 template<> 编译期递归,牵强附会 compiler_generator 这些术语。 我们知道“元编译器” yaCC 比 PEGgyjs.org 是更弱智的,所以高阶高阶有啥升级呢。

读两遍就看出个 VM=interp.bind->call 然后bind是jvm等格式能元循环,我有点看不懂,能把你的主旨放前面吗?

其实,程序=语意的组合,编程=自顶向下求优。
看你一篇花体字,感觉是能生成jvmInJVM,部分求值bind几个常量能加速10倍我看不出来,
如果 f.bind(expensiveX0()): (g) timeit: g() 能算优化的话,这是比g:RPC协议还多余的文字游戏
https://m.youtube.com/watch?v=ciS2YTgCyQ4 #经济 #life #learn 知道「贵、多、性价比,不等于价值」 确实是一件很难习得的智慧😂

一个鄙夷的眼神,让Louise羞耻于自我催眠、自我感动,这是中国人最缺的。

小时候,「一斤棉花不比一斤钢铁轻」 这种事我无法理解。 但2023,「一百万的楼和车不比一百万的人生价值重」却是很多人想不通的经济难题。

当普罗大众对银行和国家,只知有钱,不知有债, 当一切行业的根源只懂向钱看,你想要留富,必逆流而上。😞
鸵鸟们并非不知被骗,但党🐴和鹅爹的洗脑循环,给他们靠剥削压榨可持续发财的幻觉。 这种泡沫如毒品传销和股灾一般反智,却满足其期望和底线。
思想回去了,经济也必然与之匹配。

感谢离岸爱国的恨民党、红二代🙏 逼迫Louis和小郑白赚了大几十万😂