duangsuse::Echo
#反直觉 的 #经济 :节省越多,财富越停滞;资本家越少,国民越接近非酋? 这就是通缩危机:存钱-不消费-倒闭-削价竞争-你被降本增笑-更难存钱.. 😊 等倒闭的足够多,价格内卷就会换成恶性通胀 (简称国家滞胀)。 这样,之前辛苦劳动的棺材本,就要「清零」了!! 因此,政府那么急于靠调休逼购打破通缩螺旋。印钞,其实就是国在借,到期国家不还你钱,就只能换你国家了。 正所谓:资本亡我之心不死啊!韭菜敢争,主权会乱 > 这类流通性危机(即储蓄不花等人借),其实是供销自我平衡的过程,而外贸(输出"技术"革命)能缓解这些波动。…
> 通货紧缩亦现货膨胀、通货膨胀亦缺现货紧缺。 印钞时最初要让"提货单"和现货间成比例,降息最终是鼓励消费和创业,而不是让钱变成房价租比售那样泡沫化
> 高财务杠杆,是指举债高于资本担保的事业或「刚需」
#防自学
> 高财务杠杆,是指举债高于资本担保的事业或「刚需」
#防自学
duangsuse::Echo
#rust #go #algorithm UmbraString 是对带长度指针(py.bytes, rs.slice) 的(免链接inline),而 SwissTable 是对Hash预分组查表的免链接! 我们知道,Java 存在(装箱boxing) 一说,也就是int,char等字面值的堆分配 (这是泛型擦除 vs template<>化新建的编译期细节),因此JDK8用class Stream.OfInt{}缓解了reified泛型的缺失 那么,(拆箱unwrap) 其实就是在值的内存上内联,像C++栈分配。…
#algorithm #防自学 🤓 让我来示范一下怎么概括算法思路
要介绍的是在stdlib里,用于组织集合类、JSON的3个重要结构:
它们对各种app和其他算法性能效能的重要性,好比json(cbor.me)之于REST、zip之于jvm和pip。 因为是涉及SDK实现的内容,也主观评价下语法设计
下面用胖指针(x64上void*是8b, 胖指16b)、链表、快速排序简单的实现3者 #code
https://colobu.com/2023/06/29/replace-std-map-faster/chunk-index-memory.jpg
用例和 #haskell #code https://gist.github.com/duangsuse/26b80c39e1d8f7549b9cf244d8de1ce4
题外话,闭包值和 x.interface_cast(T) 的双指针&dyn 随结构传入T的函数表
UmbraString 和上文Str{n,buf}胖指针一样是16b,但它的.n和jvm一样只寻址[4b:int]的长度,其后最少随4b的免链接char 用于比大小
对于n>12的buf,剩下8b换成指针,指针的高2位用于标记GC信息: 持久pin、临时ref、用后即焚val
很明显!这是一种灵活利用了x86内存布局的b"length"实现,和x32压缩指针一样,节省了sort解指针的时间
SwissTable 是对Hash预分组查表的免链接。我们知道, dict/HashMap/lua.Table 这样的{K:V, K1:V} 单映射常被用于查找和缓存,在C++里更是会区分 unordered_map, rb_map(以排序radix,SortedSet,而非hash作为预分组线索)
它的最简实现是lisp里的链表
即便8b hashCode,也是一定会冲突的,哪怕是int.hash也会因 buck[hash%nBuck] 有限而退化为线性查找,负载因子(kv/nBuck 过大),这时就要扩容。Go的扩容基于一种空间换时间的优化(图1, 为了减少求余数的冲突,除数都会采用2的指数)
扩容后的冲突集,可以用链表(UnionFind)或数组(slot), 从那往右找
Swiss 更聪明,它对每slot对应1b的元数据,最高位0x80=无效项 ,0xFF=null结尾 ,低7位用于存储hashcode的高7位,这么摘要是为了SIMD128bit 1次对比8个KV
不仅仅只是CPU CACHE友好,这样的结构配合原子操作,相信很容易做出一个并发版本的hash table
快速求余(x,n)= uint32((uint64(x) * uint64(n)) >> 32)
#dalao https://init.blog/fast-newton-sqrt/
最近的一种基于partition(区间而非idx)的快排也很有趣: less than pivotL | between pivotL and pivotR | greater than pivotR
要介绍的是在stdlib里,用于组织集合类、JSON的3个重要结构:
b"ytesPtr", {K:V}, sorted([0 2 1])=[0 1 2]
它们对各种app和其他算法性能效能的重要性,好比json(cbor.me)之于REST、zip之于jvm和pip。 因为是涉及SDK实现的内容,也主观评价下语法设计
下面用胖指针(x64上void*是8b, 胖指16b)、链表、快速排序简单的实现3者 #code
#define Col(...) typedef struct{__VA_ARGS__;} T;
#define T Str
Col(size_t n; char* buf) //C的类型本应默认为指针, *胖指针,像kt那样对Int等类型免链接化。简洁的UNIX里,Type* 快成为public那样的形式主义啦
#define T_Link(E,T) struct T{E x; T* xs;}
T_Link(int,Nums) //template<T> 允许类型推理,即一致化调用和返回处的<T>。可怜gcc/clang无论对宏还是模板的报错皆如内容农场,不具有可读性
https://colobu.com/2023/06/29/replace-std-map-faster/chunk-index-memory.jpg
用例和 #haskell #code https://gist.github.com/duangsuse/26b80c39e1d8f7549b9cf244d8de1ce4
题外话,闭包值和 x.interface_cast(T) 的双指针&dyn 随结构传入T的函数表
qsort :: (Ord a) => [a] -> [a]
qsort [] = []
qsort (x:xs) =
let smallerSorted = qsort [a | a <- xs, a <= x]
largerSorted = qsort [a | a <- xs, a > x]
in smallerSorted ++ [x] ++ largerSorted
UmbraString 和上文Str{n,buf}胖指针一样是16b,但它的.n和jvm一样只寻址[4b:int]的长度,其后最少随4b的免链接char 用于比大小
对于n>12的buf,剩下8b换成指针,指针的高2位用于标记GC信息: 持久pin、临时ref、用后即焚val
很明显!这是一种灵活利用了x86内存布局的b"length"实现,和x32压缩指针一样,节省了sort解指针的时间
SwissTable 是对Hash预分组查表的免链接。我们知道, dict/HashMap/lua.Table 这样的{K:V, K1:V} 单映射常被用于查找和缓存,在C++里更是会区分 unordered_map, rb_map(以排序radix,SortedSet,而非hash作为预分组线索)
它的最简实现是lisp里的链表
T_Link(struct {int A,B;}, int_LnKV)
:没留任何线索来减枝!即便8b hashCode,也是一定会冲突的,哪怕是int.hash也会因 buck[hash%nBuck] 有限而退化为线性查找,负载因子(kv/nBuck 过大),这时就要扩容。Go的扩容基于一种空间换时间的优化(图1, 为了减少求余数的冲突,除数都会采用2的指数)
扩容后的冲突集,可以用链表(UnionFind)或数组(slot), 从那往右找
Swiss 更聪明,它对每slot对应1b的元数据,最高位0x80=无效项 ,0xFF=null结尾 ,低7位用于存储hashcode的高7位,这么摘要是为了SIMD128bit 1次对比8个KV
不仅仅只是CPU CACHE友好,这样的结构配合原子操作,相信很容易做出一个并发版本的hash table
快速求余(x,n)= uint32((uint64(x) * uint64(n)) >> 32)
#dalao https://init.blog/fast-newton-sqrt/
float InvSqrt(float x) {
float xhalf = 0.5f*x;
int i = *(int*)&x;
i = 0x5f3759df - (i >> 1);
x = *(float*)&i;
x = x*(1.5f - xhalf*x*x);
return x;
}
最近的一种基于partition(区间而非idx)的快排也很有趣: less than pivotL | between pivotL and pivotR | greater than pivotR
https://m.youtube.com/watch?v=LWO9pfiei9A#&t=12m #china #school #防自学
八股文和现代教育的区别,并非只是筛选或引导个性。
《送东阳马生序》作者发家史,与《红楼梦》般一波三折的晚年,控诉了封建科举的低效
Anthony 用朱元璋麾下的一个丁真式故事,揭示了个体在不公平分配下,发家、无妄之灾的虚无性; 最值得注意的是,虽然故事的内核是读书与苦难崇拜,
传颂者却毫不关心主人公读了什么书、适合做什么行业, 只因为读书能换取旱涝保收、功名利禄。
科技的来源是好奇心和批判性思维,这并非旱涝保收的小农思维,而在中式答案先于问题的教育下,知识也产生不了更好的创造力
引领工业革命和科学前沿,并非洋人全都聪明,并非不努力,而是现代教育不会为发掘范进和仲永等「天才」,牺牲每个人身上独一无二的「天材」
我想成为一个优秀的程序员,而非「混」得好的饭桶。 这么说可能有点卷,但现在有些职业确实如房价般不符合经济规律
听起来很扯,难道,把人的能力简化为IQ与成绩这样的“跑分”不科学吗?难道强不等于胜利、快不等于赢? 那么,这大概是人脑和CPU的不同了。
科举把人训练为机器
科学把机器训练成人
我想,这就叫笨有笨的智慧
八股文和现代教育的区别,并非只是筛选或引导个性。
《送东阳马生序》作者发家史,与《红楼梦》般一波三折的晚年,控诉了封建科举的低效
Anthony 用朱元璋麾下的一个丁真式故事,揭示了个体在不公平分配下,发家、无妄之灾的虚无性; 最值得注意的是,虽然故事的内核是读书与苦难崇拜,
传颂者却毫不关心主人公读了什么书、适合做什么行业, 只因为读书能换取旱涝保收、功名利禄。
科技的来源是好奇心和批判性思维,这并非旱涝保收的小农思维,而在中式答案先于问题的教育下,知识也产生不了更好的创造力
引领工业革命和科学前沿,并非洋人全都聪明,并非不努力,而是现代教育不会为发掘范进和仲永等「天才」,牺牲每个人身上独一无二的「天材」
我想成为一个优秀的程序员,而非「混」得好的饭桶。 这么说可能有点卷,但现在有些职业确实如房价般不符合经济规律
听起来很扯,难道,把人的能力简化为IQ与成绩这样的“跑分”不科学吗?难道强不等于胜利、快不等于赢? 那么,这大概是人脑和CPU的不同了。
科举把人训练为机器
科学把机器训练成人
我想,这就叫笨有笨的智慧
https://www.fxzhihu.com/question/593093174/answer/45976534820 #life #school gap
这就不得不提到高考了😁
明明存在着地区划线、教育资源、领域对口等各方面的不平等, 还被人吹作「程序正义」,甚至超过欧美的多元化通才
好似那合法欺负外卖员的女顾客,“我都录下来了”。
只有光吃不干的饭桶,才会以己度人地想出分流这招吧。 强盛了,现在过剩了。
>每个人都是巨大社会鄙视链中的一环,不论做什么都得先迅速做出可炫耀的成果、
在鄙视链上升一级再说,不然拿不到任何资源还得被定义为loser,这就是所有领域都得追求短平快、可复制的原因。
改一下,免费玩家是提供给付费玩家最重要的付费体验。
为什么有能力水论文没能力产业升级,为什么有能力拿竞赛金牌没能力出菲奖级别成果?因为你不水论文不卷竞赛那就没科研经费没升学通道 #防自学
这就不得不提到高考了😁
明明存在着地区划线、教育资源、领域对口等各方面的不平等, 还被人吹作「程序正义」,甚至超过欧美的多元化通才
好似那合法欺负外卖员的女顾客,“我都录下来了”。
只有光吃不干的饭桶,才会以己度人地想出分流这招吧。 强盛了,现在过剩了。
>每个人都是巨大社会鄙视链中的一环,不论做什么都得先迅速做出可炫耀的成果、
在鄙视链上升一级再说,不然拿不到任何资源还得被定义为loser,这就是所有领域都得追求短平快、可复制的原因。
改一下,免费玩家是提供给付费玩家最重要的付费体验。
为什么有能力水论文没能力产业升级,为什么有能力拿竞赛金牌没能力出菲奖级别成果?因为你不水论文不卷竞赛那就没科研经费没升学通道 #防自学
FxZhihu / Fixup Zhihu
为什么我们不被允许有gap year? - @鸠彰 | FxZhihu
赛里斯最广为流传的箴言:天道补不足而损有余,人道损不足而补有余。这句话放之四海而皆准,放在西方就是马太效应,放在财富分配就是二八定律,放在GAP、休学等事情上就是: 你只有在没GAP的时间内探索的足够多,你才能有机会争取到GAP进行更多探索。这件事情跟另一个大学期间著名的悖论逻辑几乎是一致的:转专业悖论。不少大学规定只有绩点位于Top 20%/Top 30%的学生才能转专业,但是请问我都学的位于专业前列了我转了干什么?…
🦄1
duangsuse::Echo
#PLT #statement https://zhuanlan.zhihu.com/p/643694771 Partial Evaluation: Staging MD 怎么越来越水了,一个允许指针字面然后 run(e)= e.Lit or eval(e) 的普通 深先改树(CS:树的后序遍历/SDT之综合属性),故意混上点Mod意义运算写成非常冗余的实现,说成部分求值……那A=>inlined (B=>A+B)算不算呢? 想到之前的 https://tttttt.me/dsuse/17422 ,那个作者才配叫函数式…
#tg 频道招牌改了…… 😅 感觉有点矫情呢,不过比 #moha 的版本潮一些了 🐸😰 想他,他不折腾 #经济……
breakdown分析一下,我理想的「工程师文化」:
美而不丑,不止是架构和CS的工程化,更重视软件工艺,希望代码从外行的价值观看,也是美的。从不认为代码是次抛月抛,代码如流动的诗,数据如蓄势的画,琴瑟和鸣。 🥰
明而不暗,不拐弯抹角、不过度工程,不让人猜,却有让人总猜不到的突破,像立鸡蛋那样巧妙。不依靠堆砌术语或设计陷阱来上价值,不会像 #防自学 “数学”应用题那样「先滥用后定义」。「先试玩后深入」,分而治难题,符合普世直觉
短而不凡,简单的数学比你想的困难。水善利万物而不争,毫不花哨的载体却不乏耀眼,摒弃功利的讲法却功力深厚。只保存语意,却三生万物;空壳般轻便,坟墓般简洁,却海纳百川,让难题不为难,有无可否认的灵性。 🖖
长而不乱,扁平不宽,我想,全盘否定Py/YAML/Markdown的大佬既“蠢”且坏吧。 😁真科学家和AI「语言律师」的选择,有目共睹
读而后码,以代码为母语,不畏惧复读和批判自己几年前的片段,总是能抹平新老技术每个细节的信息差,却也不人云亦云。 若是他们解决了一类问题,其复杂性便被消灭、永世不得翻身,失去其术语,甚至没有被码被教的必要了。1一语道破,N不言自明。
行遍天下,勿托地上天国。 在不同的算法实现里,总能找到最聪明或最应景的API。不迷信银弹,不以“纯函数” “Rust”这些刻板印象选型, 不把创造力投资给乌托邦,因而能在乌托邦擅长的领域超越它们
异常勿吞, make it work, code it work, then make it fast. 不要看他怎么写,猜他怎么想。有why才真懂how,有reason的开发,自然correct
难过勿过,叹一真理。 宁停三分,不抢一秒,因此能做到急功近利万万人也办不到的事,不会一时痛快而出千年虫和广义溢出注入后赞助CTF的烂摊子,别忘了 效=有用功/总功,效\=(人数·时间)/工作量
效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。——Dijkstra, FFmpeg v7向他致敬
知其变,守其恒,为天下式;穷其变,知不穷,得地上事。 —— 既不贪图风口,也不窝在过去“拉丁语”的辉煌上,而是黏合二者,当一个语言学人,而不是刚愎自误的好好先生。
知变守恒又穷变知新,我认真理,我不认真。
import this:
美而不丑、明而不暗,短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞、难过勿过,叹一真理。效率是很重要,盲目最是低效。简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上事。知变守恒又穷变知新,我认真理,我不认真。
breakdown分析一下,我理想的「工程师文化」:
美而不丑,不止是架构和CS的工程化,更重视软件工艺,希望代码从外行的价值观看,也是美的。从不认为代码是次抛月抛,代码如流动的诗,数据如蓄势的画,琴瑟和鸣。 🥰
明而不暗,不拐弯抹角、不过度工程,不让人猜,却有让人总猜不到的突破,像立鸡蛋那样巧妙。不依靠堆砌术语或设计陷阱来上价值,不会像 #防自学 “数学”应用题那样「先滥用后定义」。「先试玩后深入」,分而治难题,符合普世直觉
短而不凡,简单的数学比你想的困难。水善利万物而不争,毫不花哨的载体却不乏耀眼,摒弃功利的讲法却功力深厚。只保存语意,却三生万物;空壳般轻便,坟墓般简洁,却海纳百川,让难题不为难,有无可否认的灵性。 🖖
长而不乱,扁平不宽,我想,全盘否定Py/YAML/Markdown的大佬既“蠢”且坏吧。 😁真科学家和AI「语言律师」的选择,有目共睹
读而后码,以代码为母语,不畏惧复读和批判自己几年前的片段,总是能抹平新老技术每个细节的信息差,却也不人云亦云。 若是他们解决了一类问题,其复杂性便被消灭、永世不得翻身,失去其术语,甚至没有被码被教的必要了。1一语道破,N不言自明。
行遍天下,勿托地上天国。 在不同的算法实现里,总能找到最聪明或最应景的API。不迷信银弹,不以“纯函数” “Rust”这些刻板印象选型, 不把创造力投资给乌托邦,因而能在乌托邦擅长的领域超越它们
异常勿吞, make it work, code it work, then make it fast. 不要看他怎么写,猜他怎么想。有why才真懂how,有reason的开发,自然correct
难过勿过,叹一真理。 宁停三分,不抢一秒,因此能做到急功近利万万人也办不到的事,不会一时痛快而出千年虫和广义溢出注入后赞助CTF的烂摊子,别忘了 效=有用功/总功,效\=(人数·时间)/工作量
效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。——Dijkstra, FFmpeg v7向他致敬
知其变,守其恒,为天下式;穷其变,知不穷,得地上事。 —— 既不贪图风口,也不窝在过去“拉丁语”的辉煌上,而是黏合二者,当一个语言学人,而不是刚愎自误的好好先生。
知变守恒又穷变知新,我认真理,我不认真。
👎1
#school #math 苏联《高等》 #防自学 技术概括 🤗
无论文理,如果你对毕业前的学科感兴趣了,拿出书来基本都能发现以下现象。
1 🗯 「从不」使用对话文体来强迫编者补齐背景知识,例如从“延时摄影” “x^2取两点斜率线差多大”引入积分导速,爱「先使用后定义」, 好像师生不是一路人,古今不是同路人,不配与教研届的苏格拉底们一起探索与质疑,一起把微积分发明出来。
2 🤖 经常说「我们有」「任意给定正数..存在一个」这样突兀、抠字眼的翻译,非常爱区分 i++, ++i, 除和除以 「茴字的四种写法之流」,官话多没人话,缺乏语言或排版的色彩感, 一离开前言,“知识有用”这点突然显得空洞和不真实,似乎课本患有双相情感障碍
3 🦩 严谨=先使用后定义\=先试玩后拆解、刷题=训练CPU、应用题=公式的机翻。 鉴定为被单一学科迷死了,一点没1+1>2密室逃脱的组合力 ——而组合封装的代换力,正是现代科学文明的基石
4 🔗分科太细,毕业后复用率+自主融合性太低,做不到举一反三的话,分科反而赶不上你专业领域。 当然,如果要培养综合通才,就不能把文理调那么难了。
我示范下咋「批判性思维」,他们会这么辩护:
1 🗯 「从不」使用对话文体,因为1问1答太冗长了,没有考核效率: 文言文大概很「省码率」吧?汇编比py压缩率高吧? 为啥它们被淘汰了呢? 适当的冗余降低的理解成本、造成的启发性易记性,高于载体长度的开销时,何必去勉强表面上效率高的写法。
2 🤖 经常说抠字眼的翻译,只是科学就该严谨: 「逻辑」二字就是在形容法律和刑侦嘛,法律有个口诀「常识上不违法,就不该立成违法」,可见常识先于逻辑,「先使用后定义」也是这个道理。众所周知的拿来凑字数,应该解释的却约定俗成,扰人耳目,不是么? (eg 1:1 1:N量词关系、x^1 x^-1 负次数)
3 🦩 应用题=公式的机翻。 鉴定为被单一学科迷死了,不会1+1>2,因为要1科1卷: 若各学科天生就是孤岛有隔阂,文综理综又是咋来的
无论文理,如果你对毕业前的学科感兴趣了,拿出书来基本都能发现以下现象。
1 🗯 「从不」使用对话文体来强迫编者补齐背景知识,例如从“延时摄影” “x^2取两点斜率线差多大”引入积分导速,爱「先使用后定义」, 好像师生不是一路人,古今不是同路人,不配与教研届的苏格拉底们一起探索与质疑,一起把微积分发明出来。
2 🤖 经常说「我们有」「任意给定正数..存在一个」这样突兀、抠字眼的翻译,非常爱区分 i++, ++i, 除和除以 「茴字的四种写法之流」,官话多没人话,缺乏语言或排版的色彩感, 一离开前言,“知识有用”这点突然显得空洞和不真实,似乎课本患有双相情感障碍
3 🦩 严谨=先使用后定义\=先试玩后拆解、刷题=训练CPU、应用题=公式的机翻。 鉴定为被单一学科迷死了,一点没1+1>2密室逃脱的组合力 ——而组合封装的代换力,正是现代科学文明的基石
4 🔗分科太细,毕业后复用率+自主融合性太低,做不到举一反三的话,分科反而赶不上你专业领域。 当然,如果要培养综合通才,就不能把文理调那么难了。
我示范下咋「批判性思维」,他们会这么辩护:
1 🗯 「从不」使用对话文体,因为1问1答太冗长了,没有考核效率: 文言文大概很「省码率」吧?汇编比py压缩率高吧? 为啥它们被淘汰了呢? 适当的冗余降低的理解成本、造成的启发性易记性,高于载体长度的开销时,何必去勉强表面上效率高的写法。
2 🤖 经常说抠字眼的翻译,只是科学就该严谨: 「逻辑」二字就是在形容法律和刑侦嘛,法律有个口诀「常识上不违法,就不该立成违法」,可见常识先于逻辑,「先使用后定义」也是这个道理。众所周知的拿来凑字数,应该解释的却约定俗成,扰人耳目,不是么? (eg 1:1 1:N量词关系、x^1 x^-1 负次数)
3 🦩 应用题=公式的机翻。 鉴定为被单一学科迷死了,不会1+1>2,因为要1科1卷: 若各学科天生就是孤岛有隔阂,文综理综又是咋来的
YouTube
中国教育是怎样打击你的自信心的?一集看懂中西数学教材的根本差异!为什么你学不会微积分?|数学|学习|心理学|哲学|教育|历史|大学|自由学习|
大家好,我是Anthony,欢迎来到我的频道。关于教育与学习这个话题,我们已经聊了4期视频了。在这期间也有很多网友从自己的经历出发,写了很多高质量的评论,这里也非常感谢大家的参与。在上期视频里,我们说到,由于糟糕的教育体制,中国人的学习创伤是非常严重的,并且由于整个体制倾向于将学生在学业上困难归结为自己不够聪明,更是加深了普遍的习得性无助。我们重点讨论了中国的数学教育,这是因为在中国的中小学阶段,数学可以说是对总成绩起决定性作用的学科,并且由于数学成绩好更容易被视为智商高,理性和逻辑思维能力强的表现,因…