duangsuse::Echo
714 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 橘橘橘子汁 & 🍊
Stack Overflow:栈溢出,程序运行时的一种错误,寓意看了这个网站bug就会越来越多。
Java:一款咖啡的名字,寓意用这种语言的人需要经常喝咖啡,因为他们经常加班。
GitHub:Git=饭桶,Hub=活动中心,寓意一群饭桶聚在一起。
Linux:Linus的Unix,寓意这是属于个人的,别人不准用。
微软:微型软件,意思是这个公司只会做微型软件,不值一提。
Google:取自googol,意思是10的100次方,寓意必须Google搜索这么多次才能找到答案。
百度:取自“众里寻他千百度”,寓意是必须搜索成百上千次才能找到答案。
腾讯:Tencent,ten=十,cent=一分,十个一分也就是一角,寓意这个公司的产品都很便宜。
阿里巴巴:取自“阿里巴巴和四十大盗”,阿里巴巴用芝麻开门打开宝库后只拿了一小袋金币,多的一点都不拿,寓意对钱不感兴趣。
duangsuse::Echo
#china #history 日常? 前者忘记是罪,后者不忘记是罪 横批:选择性健忘症+中式禁评特权 罗马的社会层级,是最直接的 贵族>平民(自由民/公民)>债务奴隶 拥有投票权的自由民/公民确实是比奴隶的地位高 利出一孔模式下,层级划分是 皇上>奴才>编户齐民的 反而是“奴才”阶层,非但不必承担以上所有负担,甚至还包吃包住,当上了奴才也能算“民主” 所以鲁迅才会说,在酱缸社会里只有两种人,奴才和想做奴才而不得的人 谁的拳头大听谁, 唯独🙉欧美,没钱权怪自己,但🥰朝鲜塔利班 国内弱肉强食,国际弱者赞歌……双赢…
#zhihu #apple 👀中国人真的很博爱。
😶直面印第安人,为新大陆死去的土著奔走疾呼,争取还牙;同时觉得印第安裔优秀员工丑得辱华
👦🏾直面黑人,横眉冷对种植园主,痛斥列强黑船贸易扩张,“盎撒白左”的自由伪善被“我中华民族”辛辣揭露;同时俯首对黑人充满了尼哥印象与新纳粹灼见
😡直面亚裔,看不惯黄色人种遭歧视,誓要靠输出礼化被洋人禁锢的游戏规则;同时一口一个“鬼子”“偷国”“阿三”“土逼”“台蛙4v”
🇺🇦直面难民,善如水滴收留乌克兰少女,抗议特朗普单方面建墙;同时信奉弱肉强食,最崇拜的国家在普京

😔锐评印度,觉得种姓制度封建落后,为首陀罗的尊严权利挥斥方遒;同时户籍限制比国籍签证更多
😔锐评日本,对受美国剥削的日本社畜怒其不争,泡沫破灭曝出阴谋;同时自发坐享996 单休007,背一辈子房债消费税,背不动孩子和养老金
😔锐评韩国,觉醒到三星摆布下韩国男女水深火热,所谓反思电影、法庭工会毫无意义;同时被企业家剥削到叫苦不迭,更想挤进主旋律

📑看清疫情,为洋大人的死无限惋惜,为连付宝与西方政客的无能呼天抢地;同时被主关在铁丝门和91大8里,望绿化带望外宾急火,寸步难逃
🤔看清隐私与机密,特斯拉与苹果是世界公敌,间谍50w更是无处遁形;同时自己一丝不挂:后台是小米联网查杀、拼多多一键root。
💣看清国际战争,揭露美国是纯粹的油迷战贩;同时信奉大炮射程出真理,你死怪你没席位没关系
😂看清干涉内政,嘲笑霉菌仓皇撤离,对阿富汗人民深表同情;同时认为印泰是穷逼、朝鲜塔利班是反霸联盟 石油好兄弟

🔫看清枪支暴力,对每周枪击案格外上心,辛辣点评美式民主顽疾、分析美国人不懂灵活管理;同时对腊像善意跪祷外国天天零元购,小日降半旗
💰看清世界经济,认为资本产联正在崩溃,北约更是纸老虎,中国必为首富;同时死命存钱,不愿拉动自己的房产内需,恶意转变鹅爹信仰
⚽️看清日本足球,原来“赢我们”之心不死,毫无八嘎奥林匹克精神;同时让国足退钱,寄希望于民间结社
😋看清核子污水,日本莫须有 海洋国联有;同时不信IAEA和韩国的监测,争议WTO的劳动法,自以为能吃上御治菜,或者预制菜:请别分那麼細,旗下所长会统一拒检

👉指明美国,一切的不公与黑箱腐败都无处遁形,在讽刺、听墙与嘲笑中督促联邦加强制度透明,即便拿绿卡的早不是他们
🇪🇺指明欧洲,认为难民迷惑了幼稚楼矮的欧盟,抢夺了本地人的福报,小圣母养了太多懒汉;同时自己也有手有脚,手里的薪资福利却不如黑人难民
💸指明非洲,为非洲的建设风险投资,为提升巴铁的zz地位免签考察,即便地债泄洪有累卵之危
💰指明扶贫,满世界找补,盛赞在这方面我是国才是典范;同时让穷人别来帝都,带专别入市场,农逼不得领钱,审批都碍眼
📟指明芯片,精英神童们遥遥领先;同时创造力探索欲被碾压到一卡脖子就禁言,一松手又赢麻了

🌍直面环境、关心科技、关心政治正确、关心“武装直升机”...关心世界史上合理的一切,唯独没想过自己。 看透君国主义日本的伪善,为死人大义鸣冤,却害怕为路边正在倒地者说句人话。
😳啊...这是多么的无私,多么的守望相助!
Forwarded from Solidot
人脑容量缩小可能因为集体智能

2023-09-21 14:36 by 超时空碎片

400 万年前人类最早祖先的脑容量约为 350 毫升。200 万前脑容量增加到 500 毫升。100 万年前增加到 1000毫升以上。13 万年前,尼安德特人和智人的平均脑容量达到 1500 毫升。但现代人类的脑容量平均为 1349 毫升,小于石器时代祖先。过去数千年人类脑容量缩小了约 10%。脑容量为什么会缩小?一种解释是书籍、个人设备和互联网被用作信息储存器,人类大脑不需要像以前那样努力工作。研究人员认为,复杂的社会结构可能对脑容量缩小起到一定作用。人类社会组织的合作在过去 3000 年大幅增强,集体智慧开始发挥作用。一群人比这个群体里最聪明的那个人还要聪明。人类的社会性很强,以至于每个单独的个体不再需要知道一切。

https://www.wsj.com/science/human-brains-shrinking-evolution-science-980c45e
https://news.sciencenet.cn/htmlnews/2023/9/508970.shtm

#科学
Forwarded from 螺莉莉的黑板报
Google 的 AI 路子越来越野了,在 Street Art 这个项目里,Google 用街景艺术的 title 当素材进行诗歌创作,并和原始作品一起做成一张贺卡。

有趣。

https://g.co/arts/G7eVVgoHWSjyxr6HA
#HR #java 回答安卓面试题 [AI标准答案]

- 做过哪些项目,用过哪些 Android 开发相关的东西
没有,H5赛高
- 「大学生活质量指北」是什么(?(然后我真的讲了七八分钟这个项目的来龙去脉和作用
不过VS Alt-S 同行数多光标可以列粘贴
- Java 里 LinkedList 和 ArrayList 的区别
链表适合单遍历,不需要resize (1 (2 null))
- 栈和队列的区别,如何用栈实现队列,Android 里哪些地方用到队列
Queue.add-pollFirst 队列 add-poll 栈。Looper Handler.post; Stk.poll()=len==1? pop() : (x=pop(),r=递归,add(x),r) 。转换的话,LIFO两次==FIFO
- 上面我提到了 LRU 缓存,所以什么是 LRU 缓存
eg.已满100项{arg:ret}则删掉最早1项、取时下移

- HTTP 和 HTTPS 的区别
HTTP(SSL(connect(IP:port) )) 公钥加密的有无
- 进程和线程的区别
有无内存,fd资源隔离
- 有哪些方式保证线程安全
原子和Reent锁,或者向量化 各自隔离
- 堆内存和栈内存的区别
堆new的对象不会在return时删除、栈很小(Linux 8M),Java 的话应该全叫堆引用才对,避坑。
- StackOverflow 和 OOM 分别会在什么时候发生,如何避免
-Xms:8G -Xss:1G(划掉) 栈爆只会在DFS的输入太大或无基线,类似的OOM是BFS没有记忆而无限回环 ;真的是搜索图太大,可以用 DeepRecursiveFunction 栈调转堆回调
- 算 6&5 和 6|5
4+2+0, 0b110&|0b101, 4,7 AI都算得对

- Activity 里什么时候会保存状态、恢复状态
onRestore/SaveInstanceState(强类型KV), 请AI实现 V:Parcelable
- Activity 屏幕旋转的时候会经过哪些生命周期
请正读-反读 pause-resume stop-start destory-create (天哪..究竟孔乙己到什么地步才会把框架的“生命”细节公摊给App?
- 如何计算一个图片会占用多少内存
nByte=w*h*单像素bit/8
- 项目中用过哪些第三方库,能否分别给出介绍
没有,安卓生态冗得像罚抄
duangsuse::Echo
举例, #ts 上有”交并集类型“ (有人认为 hs, Rust 没有子类型所以不存在集合论的,确实如此但 in-out 形变是Racket子语言里也有的,我找不到原文但TRack 是有) (我一点也不羡慕没有重载和this模块等多态技术的圆括号 😅, 模型的缺失是拿宏手动兼容 a.b.c 所弥补不了的, 就像 F# 的 |> 比不上 xx.let{}, kt 的元组 destruct 比不上 ES6 let[x,y]=P, ES6的解构又不如 Prolog 的 unify [x,1]=[2,y]...…
#PLT #code #learn 算式 1+.5, 1+"", (""+name) 利用了常见的值类型: int,float,str
struct的'.[]' 读写甚至函数调用,也都是被解释为'A+B'这样定义在 class A{}上的“可赋值规则”,就像在匹配俩 enum{int,.}

类型推导是用 int x,y,'1'; 变量里的'int'常量,去做 i+i=i, i+bool=编译期err() 等调用,来拿到fn(),val get,. 的“类型期返回值”。'1'等字面类型可以as Int

“():调用”只是asserts(Matcher)=>R 逻辑关系,因此新建 <T:T0>=变量(T0上界+默认形变),assert时就合一出T的并集 (能让新赋值成立的'T', 上界约束也要传递)。这无需解构,靠监听来检查
得出后也要按 (in Int)->R, ML<T>:List<out T>"形变性"检查上界,才可拿到 'R'

fun=/{} 推导的“类型期返回值” 可以在<T>赋值后检查。

静态类型难在哪?在于怎么扩充 int+int, P.xy 这些规则。VB没有'+'重载,但静态却要把“更直觉”的if归纳成更简明、更多变的“class”和签名。
比如,要在同名重载里找 str(可为int)+str 的2元函数,再广点 extend class int: str 的接口兼容:子类型是隐转(delegate: Str by int{})的一种简写语法

类型在JS里很局部("加糖的字典"),而C里函数或接口不是值("按.h符号+*的指针"),因此'+'等语法必内定,扩展性很差
在Rust trait Sort{} 更显自然,impl{}甚至不必加在struct里(就像把 A+B 变 `+`A,B),但也导致关注点碎片化

类型是摘要。除非递归, for,(A?:B) 的类型 不需要真的据变量调用N遍,避免了重复解释也提升复用(override,.)。 Java禁用py式的 if: 句级/算式级class: 正是因为“反射”要使用源码树里,YAML式的结构签名信息。这方面C,Go就很乱很生硬

when- Type
- get(:Str)=成员或函数
- `=`(:Type)=调用等号函数-需要左==右
- to(:Type)=转换

Any;Break; _;Nul(:Type) ‘’Object vs error()顶底类型; 渐有类型,可空标记
ID(:Str, toRules=[Any].Set, 元类) ‘’int,str 子类型
Fn(T:Ln<Type>,R:Type, 默认参数,参组=-1) ‘’ 语法糖,比如 fn无参{} = fn().as:
- as(:Ln<Type>)Type
Fns(重载:Ln<Fn>)

Var(now_T=Break, getset=0不变 1协变 2逆变)
- to=对T取成员交, 如listOf(1,""), catch(A|B ex)
Arg(:Fun,:Ln<Var>) ‘List<T>,map<TR>’这些都需实例化再调,也就是注入<T>变量
Fun(TVars:Ln<RefInAST<Var>>, R:Type)


_ 相当于定义侧Any?, 调用侧Nothing, 和Pair<in*,out*>一样

参考Elixir , 你会发现主要是 fp: File+Closes, -'T'(T Sort)Ary sort 这两种情况需要交集类型。「继承」避免了过于细节的签名,「多态 重载重写」则规范你“模块化地”使用并集类型

Elixir 会为“js调java”这种情况生成强转, 不过尽管Send可以从数组读写元组,绝句只打算编译期有无类型函数,另外使用 -'N' mul2(:N){n!=0} = n*2 量纲类型

这个 Strong arrows 具体怎么利用运行期,我没看懂。那就算了
我觉得这个文章的逻辑就像我初次设计出什么技巧,还没和实际产生碰撞关联时,脑子里概念夹杂步骤的直接文本化。
duangsuse::Echo
#PLT #code #learn 算式 1+.5, 1+"", (""+name) 利用了常见的值类型: int,float,str struct的'.[]' 读写甚至函数调用,也都是被解释为'A+B'这样定义在 class A{}上的“可赋值规则”,就像在匹配俩 enum{int,.} 类型推导是用 int x,y,'1'; 变量里的'int'常量,去做 i+i=i, i+bool=编译期err() 等调用,来拿到fn(),val get,. 的“类型期返回值”。'1'等字面类型可以as Int …
这是一个完整的Java式类型系统,支持泛型。 class List<T>{} 的语法对应Fun(T,ID())的数据。 Unit,Fn可视为不属于Any

-'TR' Ln<T>.as(:Fn1<T R>)=Ln<R>(0) 也就是对 Arg((Fn),TR) (赋参数),深度遍历到 Ln.To,T.to(Int).. 就知道T具体是啥(还要支持map{map{}}..)

在T未知时结果是 List<R> ,但要生成代码时R一定被固定在Arg。这类把Var作为值的算法叫“合一 unification”。这是关系式(而非“顺序”)的, -'T' f(x:T, p:PairOf<T>, y:T)=p.A 不会接受 f(1, (1|2), "")

当然这是能通过的:
fun<T> f(x:T,p:Pair<T,T>,y:T)=p.first
f(1, (1 to 2), "")

因为只读Pair能接受 Pair<T=?extends Any>

Pair<T @get>
形变性在T出现两次时才有用。例如动态数组rw.Ln(的只读侧)
- Ln<Str>和Ln<Any>间不可转换
- Ln<Any@get>可为Ln<Str>
- Ln<Str@set>可为Ln<Any>, 就像 Fn<T@set R@get>
- 上界<T或? extends> 定义为类型函数,把Str包装为类型变量

我们再来谈谈《绝句特有》的类型

同名冗参 取代inner class:
type 'T'Box
at it:T
data- 'T'Box“<T>”.Pair(A=it,B=it) Data()

量纲验证:
'T'Ln,Rn; 'AB'KV,Pair 这些量纲是类型的单位(quantity of type),值也可以有单位。
''(^named i) Idx=Int{!<0 |"be positive"}
- `-`(:Idx“调用前强转”)=-i

元类:
T会实现Send同名例的类型, 'T'(T Send Any) 里访问 T.name T.cols 相当于 Send.typed[T]?.
data- Pair.TYPE|Send
会注册 Send.typedArg[Pair](A,B) ,这样能在编译或运行时组装序列化器。

真子类型:
at! ts=[Int Str]
at vs=[1 "2"]
-! get(:Idx, R=ts[i]):R =vs[i]
但i是常量时,并不需要类型体操
-! get(:Idx)=vs[i]
。用途是实现 int[4]

-!'A' say(:AryN<Int A>){A==4} = say(ary[0])
-!'ABT' AryN+(:AryN<T B>, C=A+B): AryN<T C> = 解构时也一样
duangsuse::Echo
#news #jp #life 关于“海纳百氚”的事,我本不太关心。全球媒体都在监督日本的排放,海洋环境数据也并非是“定于一尊”的黑箱, 我相信,跟随欧美日韩台的主流,事情就会得到最好的解决 荔枝木的评论区有很多小粉红(甚至有鹅粉那种军国主义者),但他是对东电请来的 IAEA (UN.org 的NGO)以及后续三十年的监督不放心,不是粉红复读机 我们不比中国最近的清零泄洪,不提政治正确,总结下,他为啥不信任东电: - 2011地震后,它在“直接亏本但安全 与 可能少亏”间,抛弃了社会责任、国际的安全,日本政府没法可管…
#jp #life 王局履行一个月前的承诺,到辐岛电子厂里面拍摄“洗地

🖕 回看国内:“大核民族” VS “鹽荒子孫”
喝著勾兑酒的命,操著核廢水的心。「中国多年以来在排放的废水浓度,高过日本几倍。认为自己的国家是完全正确的吗?赶紧回国大喊斯巴达吧」

小郑: 反思自己的歧视
89: 中国人(曾经)比IAEA更懂
陈老师:中国大陆的辐射值被(粉红)恶意检测
1
这个观点挺有趣的, 如果心智模型错了, 写再多类型约束,也不太可能实现功能
即便类型是对的, 往往也会写出无用的废话

形式化语言无法帮助你证明你会写错的问题, 与GPT不同,它的规范性比正确性强的多

就没有一种有意义且“能用上电脑”的方法来保证程序正确,因此脚本才使用了渐有类型

因为它们的类型本来太狭窄(int str [{}]),此时去强化是利于设计的。 但如果不能有错误, 你就只能对所有情况有预估,那就很难简单扩展,

比如Vue3 的 ref()被认为造成了class里没有的混乱, 那纯粹是React思想造成的碎片化地狱,而不是组合式API 本身太乱

—类型签名
Py|def绑定的常量
Clj|assert的糖
Elixir|重载,或者运行期查找 when: 类型
(只有参数: dyn() 时需要强转)
^ 可以直接test出TS/JS 写错不匹配的毛病,所以靠 ErlangVM 优化

🤔 不知道为什么但是有点像JVM,C++多态 单分派

JS程序的正确性挺看人的, 如果你的API设计得七七八八,那容易调用出问题。TS 在这里更像一种裱糊匠
类型比程序语义,应该是种先验了。 如果程序体正常,但类型被搞混,我猜不到这个程序体是怎么得出来的。
可能现在我写到键盘上的代码变少了

其实我挺赞成不标注类型的, 我觉得如果不是结构上需要,注重类型声明的语言真的很难看
以前觉得Java是垃圾语言,没想到 Go 这样的连Java8的泛型都实现不全(这倒无所谓,只要它不打算继续外置 Vec,FP 之类的API

Java难看是真的,但功能至少齐全,而且没有C++那样地狱(
👍2
Forwarded from 风向旗参考快讯
有微博博主称,翻墙在境外网站接单被没收百万收入

博主为GitHub上开源框架的商业公司打工,签订了技术服务合同。 因平时工作需要梯子访问外部网络,被认定为擅自使用非法信道进行国际联网,罚款 200 元以外,没收违法所得 100 万。

—— V2EX
duangsuse::Echo
#HR #java 回答安卓面试题 [AI标准答案] - 做过哪些项目,用过哪些 Android 开发相关的东西 没有,H5赛高 - 「大学生活质量指北」是什么(?(然后我真的讲了七八分钟这个项目的来龙去脉和作用 不过VS Alt-S 同行数多光标可以列粘贴 - Java 里 LinkedList 和 ArrayList 的区别 链表适合单遍历,不需要resize (1 (2 null)) - 栈和队列的区别,如何用栈实现队列,Android 里哪些地方用到队列 Queue.add-pollFirst 队列…
#linux #hack VSCode Alt-S 同行数多光标可以列粘贴,但在 #telegram desktop 里编辑、导入导出长的富文本,就完蛋了 😅 Bot还被限制了2个链接截断

web.telegram.org 是用 $('[tabindex]:read-write').innerHTML 表示消息的,bot markdown 所支持的格式勉强能F12粘贴
不知为何Qt与Chrome,Wx的剪贴板不兼容

xclip -selection c -o -t TARGETS
xclip -selection clipboard -o -t text/html 剪贴板接口也不是旧版 application/rtf text/uri-list,很明显与Qt没有关系😅
或许它独立于DOM自己定义了Paste,DnD这类手势?(其实是数据类型

搜了下API,找到 setMimeData Linksparser application/x-td-forward 这些符号,但其实还是一个按区间的格式 x-field-{text,tags} 😅
tdesktop.FieldHandler 渲染了 FieldTagMime 的消息, td消息格式的源码都搜不到 🤮 但确定不是 MTP (#Go protobuf 定义)

hexdump -e'1/4 "%X" "\n"' 可以看到是基于int区间的
duangsuse::Echo
#linux #hack VSCode Alt-S 同行数多光标可以列粘贴,但在 #telegram desktop 里编辑、导入导出长的富文本,就完蛋了 😅 Bot还被限制了2个链接截断 web.telegram.org 是用 $('[tabindex]:read-write').innerHTML 表示消息的,bot markdown 所支持的格式勉强能F12粘贴 不知为何Qt与Chrome,Wx的剪贴板不兼容 xclip -selection c -o -t TARGETS xclip -selection…
#tool tty canvas #ai 编程失败
>用py实现 sudo hexdump /dev/input/mice -ve'3/1 "%d " "\n"'| for X,Y in lines: 叠加x=0,y=0 并移动终端光标
(很烂而且没有避print换行的坑)
gpmm() { #鼠标光标
stdbuf -o0 hexdump /dev/input/mice -e '3/1 "%d ""\n"'|awk -v kx=$((COLUMNS / LINES)) -e '!/*/{x+=$2/k*kx; y+=$3/k; printf "\x1b[%d;%dH", -y,x} BEGIN{x=y=0; kx*=.5;k=9.3}'; }

>用py struct("bbb") 读取 /dev/input/mice, for btn,X,Y in evt: 叠加x=0,y=0 并将其以 "\x1b[y;xH" 显示
(它没用ANSI escape

#code #bash GPM 字符画板 sudo cat /dev/input/mice | python a.py $COLUMNS $LINES
import sys, numpy as np #array('b', )

P = np.array([0,0]); dk = np.array([.6 ,-.4])
L = np.array(sys.argv[1:]).astype(float)

while True:
btn,*dP = np.frombuffer(sys.stdin.buffer.read(3), np.byte)
P=np.clip(0,(P+dP*dk),L); x,y=P.astype(int)
print('\x1b[',flush=True, end=f'{y};{x}H')
#py 周刊

在单核情况下加快 Python 代码速度,提速 2339/554us=4倍
提速一个低色深保真算法,涉及的一些概念:指令级并行 (ILP)、分支预测、单指令多数据(SIMD)、内存层次结构等。

6 件可以用 Functools 模块做的很酷的事
@cache 缓存、@total_ordering 让你少写排序方法、@singledispatch 函数重载、partial() 颗粒化传参、@wraps wrapt装饰器、reduce() 函数。

7 个极佳的 Python 身份验证库
Authlib、Pyjwt、Flask-login、Django-allauth、ItsDangerous、Python Social Auth、Flask-security

Python对象模型(大部分)由语法糖组成
Brett Cannon 写了一系列关于“语法糖”的博客,并创建了MyPY,解析了 80 多个语法糖特性。locals(), 闭包赋值所致的 nonlocal 问题, type(X).__neg__(X); type(X or Y).__add__(X,Y), raise 替代break

为什么有这么多 Python Dataframe?
Pandas、Polars、Dask 和 PySpark 的区别在哪?作者认为是电子表格、关系数据库、二维数组/矩阵、对象 的便利性不同

用$ Radon 来衡量计算圈复杂度等指标
计算圈复杂度、原始指标、Halstead 指标、可维护性指数,可用于 CI 集成,可与 Jupyter Notebook 一起使用。(star 1.5K)

CPython 在处理字符串时使用了布隆过滤器,比如 splitlines()、strip() 两个函数(不到 50 行 C 代码)
Python 中 UUID 的使用
from uuid import uuid1() 利用系统 MAC 地址与时间戳生成 uuid;uuid4() 生成完全随机的 uuid;uuid3() 和 uuid5() 基于常量命名空间和变量名生成 uuid,前者使用 MD5 算法,后者使用 SHA-1 算法。

深入理解 pytest.main():Python 测试框架的核心功能解析
这个非常实用的函数,用于从命令行运行测试集或者以编程方式运行测试。文章探讨了它的用法和一些常见的应用场景。

toml-bench:在 Python 中该用哪个 toml 库?
比较了 toml、tomli/tomli_w、tomlkit、pytomlpp、rtoml 和 qtoml 这几个库,考察它们在处理数据时的行为表现以及性能。

迎接更快的 SymPy
SymPy 是一个用于符号计算(symbolic computation)的库,可以处理代数、微积分、离散数学等领域的问题。

使用 import-linter 让你的 Python 项目架构更整洁
在依赖关系治理方面,通过提供各种类型的“契约”,让我们得以将项目内隐式的复杂依赖关系,通过配置文件显式的表达出来。文章介绍了它的入门使用,以及 6 种修复依赖关系的技巧。
# 分层:resources -> clusters
# 调整前
resources -> clusters
clusters -> resources.cluster_utils # 应该是 clusters.utils

quasiqueue:管理长时间运行的多进程作业
可处理进程创建和清理、信号管理、跨进程通信

logparser:用于日志解析的机器学习工具包
自动从非结构化的日志信息中提取出关键的表格信息。(star 1.2K)

llama2.mojo:纯 Mojo 版本的 Llama 2 ,将性能提高了近 250 倍
作者将 Python 版本的 llama2.py 移植成 Mojo 版本。(star 1.1K)
duangsuse::Echo
#py 周刊 在单核情况下加快 Python 代码速度,提速 2339/554us=4倍 提速一个低色深保真算法,涉及的一些概念:指令级并行 (ILP)、分支预测、单指令多数据(SIMD)、内存层次结构等。 6 件可以用 Functools 模块做的很酷的事 @cache 缓存、@total_ordering 让你少写排序方法、@singledispatch 函数重载、partial() 颗粒化传参、@wraps wrapt装饰器、reduce() 函数。 7 个极佳的 Python 身份验证库 A…
所以说py的结构设计10条基元,非常符合直觉 🥰

- 1,f"abc",True? 单项值和[{容器}]
- fn(x,*arg) 和 x=, return
- def f(bind_x于栈0): nonlocal 捕获外部“变”量. 词法域是保证 a=> (b=>是对象)&不同函的'x'不会相覆盖

流控
- def f(): yield 让f协程随便调异步 delay(res=>next(self函续, res))
- while 可以避免(伪)递归的冗余,也是yield要恢复的
- 函数内联,早够取代层级跳转了 c=a+b(); do{ ret=1;break/cont }while(0); c=a+ret
- try: throw 的级联返回,可以用 异步/Either<R,Err> 实现
delay 也可以决定是否回调,甚至选择next 给哪层catch("setjmp"),毕竟ret指令本来就不必是1层的

#PLT 变量域和函数/跳转是从C到FP(CPS,Y)里都有的结构,都是在“往回做”,但越定义式,就越倾向抛弃while break

循环比递归更适任,但完全可以用(双层)内联ret表示 continue break。这是块函数与尾递归的融合

不过 x+=1 也是可换为 (set! x x+1) 的,就像 nonlocal x 必然引入的cellvar(栈转堆.此处无关GC/复制传参)一样
如果提供 Var<T>.operator= 和隐转,那赋值和解构也可以消灭
duangsuse::Echo
#tech #recommend #js 🧐从『函数』的定义就能知道,#编程范式 的发展史 👉 地址symbol、子程序void()、对象 SAM object、算式 x=>y 或文档树、 模式查询select [a b], a=1|a=2 : x86无结构:是弱检查指针、面条流控、256项字符集,定长数组,栈分配,加载到内核mmap(rwx..不能为READ 段错误) 是dll内地址 C过程式:是向调用栈赋值后跳过去等返回,是子程序 C#OOP:捕获了局部变量(cellvar,可变)、原型虚表到t…
#design 但离我理想的编程语言,还要删掉一些
- 内联取代break,tailrec 。{}块支持的跳转才自然
- Nd(矩阵) 规避循环
- 协程规避catch{throw},yield 。回调天然能“级联返回”和暂停
- Var.= 取代赋值解构。“可变量”是闭包里就存在的。六七十年前Lua,Fortran,Lisp,Prolog 都支持的协程矩阵DSL解构(即类型推导),今天拿出来加点不良不莠的术语😅居然能算高级特性 ,心智模型和发展观被Java,C++荼毒成什么样了

既然catch,while,= 都被消灭了,就只剩 abc123YNO, at k=v, - fn(x) return(:赋值+跳转) 这三条是基元

#statement 这么一点笔原理竟浪费我两三年去积累和筛选,真的是垃圾堆里找兴趣😓,PLT圈牛逼! 所谓邯郸学步,大概就是懂完了C语言会FP会Math,便忘记自己的母语 是四方通行却严谨有序的人话了。

为了70年前的酷语言,竟不愿组织自己内心的语言,甚至去忘掉更贴近问题的定义式编程,节点图,只能说玩具还是比扳手有魅力。
编程无关代码,就像天文无关望远镜。 透过金镜筒,星云依然是星云,它不会因为时代或抽象用词的不同而增加价值,不会因热门或孤傲而改变本质而割裂。那不该叫科学。

当然,原理所对应的语言“产品” 是有设计优劣的,比如如果无印痕的CPS是流控回调化,那就不说它是状态机或变换或"需要await的函数",比如:

Py对局部变量的无印痕语法非常正确(在PHP前遥遥领先同行,1989还领先JS6.年),可惜Guido没有在class上坚持他“违背祖宗的决定”,继续搞大新闻(害的Mojo这种竖子有机会成名)。这烦死人的Java构造器 😡

绝句因为有 at: a 1; b 2 和at now: 可变量, at nonlocal=Var() ,就不能简单写a=1;b=2 ,以及直接val=1与'- 函数' 对齐上稍稍冲突
所以就没 for x: delay;print(x) 只输出最后一次的nonlocal歧义: ((b := x for x in range(5)), b) (0~~5):it

只有 at k=v新建变量并赋值; (Fn0:k=v1)捕获到cell; - map(f, Arg<T>,Cont<R>)=算式; 内联return/Err(返回到catch)/loop(条件)
这4个块级结构('-' 是词级)。跳转闭包和协程(惰性生成器,就是让yield(1,cont保存待恢复) )都齐了
btw. 书里有词, 词的定义是算式套着块 Pkg>Def>E:Fn

函数化ret()很容易实现异步流,这是跳转做不到的-因为调用栈和浏览历史CtrlZ一样:唯独活着的能指明方向

用 Arg,Cont,return 重载来做vararg,yield,throw,就不需要星号,next,await,catch地狱
把loop视为另一种return,就不用在“函数式”尾递归和“工业糖精”循环break 间做选择

(实际也没人把filterMap,takeWhile(firsts)一族当成“循环”.. 流控,纯粹是种理论)

btw. 上条作者的理论也不算好.. x + (lambda A: A)(y) 这种能常量约掉的,是函数指针也无所谓吧。中科院的 MuLang 都知道a=>b=>要外提为 def: ret def 或者说 class: def call
del obj.k 不太常见,但我觉得JS里 undefined(UNK)可枚举才是最混淆的。JS{}唯一的优点就是检查弱到不担心报错+性能全凭JIT了
duangsuse::Echo
#design 但离我理想的编程语言,还要删掉一些 - 内联取代break,tailrec 。{}块支持的跳转才自然 - Nd(矩阵) 规避循环 - 协程规避catch{throw},yield 。回调天然能“级联返回”和暂停 - Var.= 取代赋值解构。“可变量”是闭包里就存在的。六七十年前Lua,Fortran,Lisp,Prolog 都支持的协程矩阵DSL解构(即类型推导),今天拿出来加点不良不莠的术语😅居然能算高级特性 ,心智模型和发展观被Java,C++荼毒成什么样了 既然catch,while…
#py #learn 语法的背后
class C(A,B): 是元类type的单例(在这里C:B.元类) ,语义是 exec(body, globals(), locals:=T.__prepare__(k,[T0],Defs:={})); mro=types.resolve_bases; cls = {*Defs, *decorator(meta())}
而def 们在globals+__class__下执行,还要设置qname,doc(第0行""),type annotations。 (教科书式的“反射”接口)
- @staticmethod f 是利用实例/类 getattribute 时调用的 f.get(obj,T) ,因此 (str.strip)(" ") 仍然正确(没有"js".bind("") 那样自由又强制..)
- getitem(slice(A,B,step)|tuple), getattribute 混淆就是JS对dict 的做法。当然JS没有tuple可以滥用,也没Pair(AB),没可重载的 isub -=
- is 用于检测id()相等,对abc123YN? 显然是一致的,而 eq,lt 是另伙,支持交换律的。@functools.total_ordering 可以从<支持<= (btw. 怎么连缓存eval都莫得啊)

再谈声明
- @decorator(f)(litArgs), with enter exit 是我最讨厌的一种def, 是因为Python对(多行)lambda算式的轻视:以为Excel+生成式能表达一切,和Py2时的 print>>file, 一样。想发展,不够用吧?想省1字的括号 😅因IDE妥协
- lit={}[] 也是要创建 dict((k,v),) 调用的,和JSON读写器很像,所以“序列化很难”
- importlib, sys.path 是这个语句实际修改 globals()的方法。注意 a.b as b 是模块而 from a:b 是类,from PIL:Image 为啥可行呢?因为包init的 import ..sub 是公开的
- coro.await() 是一个靠next()的"Thenable",但它没有ES6那样的默认(最异步的DOM)执行器,甚至没规范 yield Promise,只能 aio.run(main())

while(p){} ok() 实现的if在汇编是 A: if(!p)goto B; goto B;if(p)goto A; B:ok ,加上init有三块BB,就像 a||b, a? a:b 一样。直接做break理论和switch一样(你该知道工程界只有when ,也没if elif)

报错的显示,当然是从调用栈 cause 链表出来的,而JS更像 sys._getframe() 。 finally: 加在return前面,或者说 try catch 都是闭包而finally调用它们