Forwarded from Newlearnerの自留地 ( 初学者 | Newlearner365)
#years
┏━━┓┏━━┓┏━━┓┏━━┓
┗━┓┃┃┏┓┃┗━┓┃┃┏━┛
┏━┛┃┃┃┃┃┏━┛┃┃┗━┓
2024, 感谢陪伴 ! Happy New Year !
┃┏━┛┃┃┃┃┃┏━┛┗━┓┃
┃┗━┓┃┗┛┃┃┗━┓┏━┛┃
┗━━┛┗━━┛┗━━┛┗━━┛
频道:@NewlearnerChannel
┏━━┓┏━━┓┏━━┓┏━━┓
┗━┓┃┃┏┓┃┗━┓┃┃┏━┛
┏━┛┃┃┃┃┃┏━┛┃┃┗━┓
2024, 感谢陪伴 ! Happy New Year !
┃┏━┛┃┃┃┃┃┏━┛┗━┓┃
┃┗━┓┃┗┛┃┃┗━┓┏━┛┃
┗━━┛┗━━┛┗━━┛┗━━┛
频道:@NewlearnerChannel
duangsuse::Echo
#linux #algorithm 嵌入式 链表 在内核中,我们不能用定长数组(pid这些东西是经常增删、完全遍历的),首尾相接 双向链表 + inline优化 是Linus的选择 IntList* 只能保存int, 但嵌入式链表能包含多个子类,都可以遍历查表,再以 container_of 解指针。 Lua 以这种做法实现 int tag; union{} 这和C的 struct T{ char tail []} 很像,被用于保存 len+ptr\0 字符串 https://www.zhihu.c…
Netcan on Programming
重写 C++ 标准库的价值?
众所周知,标准库中的算法容器是普通人很难手写超越的,因为这归功于 C++ 的模板、编译时计算特性,它拥有零成本抽象能力,也就是说无论使用模板机制做多少层抽象,最后生成的代码和手写 C 代码一样高效,这就是为何 C++ 相对于 C 来说拥有 易用 的接口,并且不会导致性能损失。 但本文章的主题不在于模板编程,而在于探讨重写标准库的价值。在这之前需要声明下,C++ 标准中自定义了标准库的接口,以及
duangsuse::Echo
https://github.com/mirtlecn/chaizi-re?tab=readme-ov-file#汉字拆字字典修订 #school https://zh.wikipedia.org/wiki/中日韓統一表意文字#漢字等同 🙄 作为一个「语言人」,我非常遗憾, 关于中文的一切开发 (Unicode CJK, IDS统一表意..),竟然与大陆本土无缘,且完全没有如 jpdb.io 般惠及中文学习。 只有拼音和五笔,这些为机器服务的层是中国人为营利想出来, 为学习者的,是完全没有。 乃至二简字,都是好大喜功不成气候…
#blog https://dieken.github.io/posts/chinese-input-methods/
>输入法界,俗称码圈,在 2024 年的今天,毫无疑问是个小众圈子
(1) 做码人,或称算码人、字圈,喜欢研究汉字拆分和字根的键盘布局,(2) 跟打人,或称赛文人、赛圈,喜欢竞速跟打,以手快为荣,可谓武玩,(3) 其它人,菜鸟龙套捧哏普通用户,可谓文玩。三个小圈子之间以及内部少不了日常逗乐拌嘴,反正有人的地方就有江湖,很感慨的是,八九十年代的万「码」奔腾到如今的万「码」齐喑、十「码」互踢
>形码可以打整句吗?习惯了拼音整句后,突然发现形码要人肉分词,可真是「一夜回到解放前」,搞不好就碰到打词打空了,非常恶心,因此码圈大佬们的建议是要么记住小词库谨慎打词,要么索性只打单字,极端点就是不要简码只打全码单字。
>岁寒输入法:就我而言,我做的第一版输入法,全世界都没人会用,只有我一个人会用;我做的第二版输入法,别人也会用了,但是没有人用;我做的第三版输入法,终于有人愿意用了。
在设计完岁寒输入法的布局和输入规则后,我惊奇地发现岁寒输入法呈现出一种非常重要的特性——输入声韵的无二义性。简单地说,就是任何一条滑行路径都明确地指向某一个声母或者韵母,不会存在歧义,不依赖于已经输入的信息,经常用于处理无声母的拼音。「xian」不可能是「xi'an」,「gang」不可能是「gan'g」,这个特性是全拼和双拼输入法都不具备的。
ps. 智能选词使用的 #algorithm HMM 比DNN难懂不少,用途也窄,不知道现在的智能拼音都在用什么算法,还是马尔可夫链?
https://shurufa.app/ chaifen.app
https://dieken.github.io/posts/some-words-about-chinese-input-method-circle/
>输入法界,俗称码圈,在 2024 年的今天,毫无疑问是个小众圈子
(1) 做码人,或称算码人、字圈,喜欢研究汉字拆分和字根的键盘布局,(2) 跟打人,或称赛文人、赛圈,喜欢竞速跟打,以手快为荣,可谓武玩,(3) 其它人,菜鸟龙套捧哏普通用户,可谓文玩。三个小圈子之间以及内部少不了日常逗乐拌嘴,反正有人的地方就有江湖,很感慨的是,八九十年代的万「码」奔腾到如今的万「码」齐喑、十「码」互踢
>形码可以打整句吗?习惯了拼音整句后,突然发现形码要人肉分词,可真是「一夜回到解放前」,搞不好就碰到打词打空了,非常恶心,因此码圈大佬们的建议是要么记住小词库谨慎打词,要么索性只打单字,极端点就是不要简码只打全码单字。
>岁寒输入法:就我而言,我做的第一版输入法,全世界都没人会用,只有我一个人会用;我做的第二版输入法,别人也会用了,但是没有人用;我做的第三版输入法,终于有人愿意用了。
在设计完岁寒输入法的布局和输入规则后,我惊奇地发现岁寒输入法呈现出一种非常重要的特性——输入声韵的无二义性。简单地说,就是任何一条滑行路径都明确地指向某一个声母或者韵母,不会存在歧义,不依赖于已经输入的信息,经常用于处理无声母的拼音。「xian」不可能是「xi'an」,「gang」不可能是「gan'g」,这个特性是全拼和双拼输入法都不具备的。
ps. 智能选词使用的 #algorithm HMM 比DNN难懂不少,用途也窄,不知道现在的智能拼音都在用什么算法,还是马尔可夫链?
https://shurufa.app/ chaifen.app
https://dieken.github.io/posts/some-words-about-chinese-input-method-circle/
dieken.github.io
中文输入法
Forwarded from Solidot
2024 年 X.Org Server 的开发活跃度达到 10 年来的峰值
2025-01-02 15:56 by 特辖军的一天
可能出乎很多人的意料,正面临被 Wayland 取代的 X.Org Server 项目,其开发活跃度达到了 10 年来的最高水平。X.Org Server 在 2024 年共收到 708 次 commits,过去十年这一数字仅次于 2014 年的 952 次。2024 年 X.Org Server 增加了 11,998 行新代码,删除了 14,680 行代码,远高于过去几年 5~6k 行的代码变更。X.Org Server 的开发主要围绕着 XWayland 项目,以及开发者 Enrico Weigelt 以一己之力对项目的维护工作,他一个人的 commits 就占到了总数的 63%。
https://www.phoronix.com/news/X.Org-Server-2024-GitStats
#X
2025-01-02 15:56 by 特辖军的一天
可能出乎很多人的意料,正面临被 Wayland 取代的 X.Org Server 项目,其开发活跃度达到了 10 年来的最高水平。X.Org Server 在 2024 年共收到 708 次 commits,过去十年这一数字仅次于 2014 年的 952 次。2024 年 X.Org Server 增加了 11,998 行新代码,删除了 14,680 行代码,远高于过去几年 5~6k 行的代码变更。X.Org Server 的开发主要围绕着 XWayland 项目,以及开发者 Enrico Weigelt 以一己之力对项目的维护工作,他一个人的 commits 就占到了总数的 63%。
https://www.phoronix.com/news/X.Org-Server-2024-GitStats
#X
另外,我刚又又设计了一种新的元编程方式: QuineQuoted (馈硬是一种 eval(s)==s 的测试,它和FP系的ast宏还有点区别: qq需要编译器支持, QQ自己就是编译器) #plt #kt
https://github.com/mame/quine-relay
我几年前用这类技术弄了Tk的DSL,forin展开 https://github.com/duangsuse-valid-projects/TkGUI ,但没有意识到值:名替换 是把运算符重载变成编译器的要点 : 首先
想必是比XML魔法优雅不少吧……
这样Kt的循环展开可以这么写:
看起来相当简单,而且和Proxy({}, {get:genFn}), 和lang.invoke属于同款! 但是,因为能处理左值,创建函数、修改class{}字典也是可能的。 运行时反射,编译时留字面,运行即编译,但比起JIT所有不知名的「编译优化」,eval后留字面可不是魔法,只是元循环函数而已,就像numpy和taichi 的"C DSL"
Quine比之poet等EL就像SpringBoot比SpringXML一样, 不需要切出本语言的思维,就可以突破 o.key() o."key"() 的隔离, 避免了人们关于「静态类型」一直以来的一个很大的误会
但我就从来没见「最佳实践」们用过…… kt 在用仅能自动import而且个性贼大的poet。 lombok 甚至重造javac的轮子,就为了显得自己懂栈字节码了
和我那个拟态类型不谋而合,相信再强化下反射API,很快就能替代TS了!? 🤔
Lisp也有类似的能力,Haskell系的 quasi-quote 准引用 ,包括Rust!()也是这个意思,不过它们都是简单的eval(comptime eval 又怎样?不成熟),甚至搞一些因为反射API不稳定、母语语法空洞而贫瘠,而使用的模式匹配重新造parser,还有递归限制
C++ template<T> 扩充的#define呢,类型体操(比如printf的静态检查)呢,也是这个意思,但它们非常丑陋,它们总是让上下游在 💩味的代码和代码味的💩间二选一,明明试图用解构匹配重新实现调包和# define就能解决的任务,还自我感觉良好,仿佛一眼概况程序的能力已输给AI,但只要Tab补齐的类型写对了,就能强化自己的正确率似的。 丑陋的黑魔法只会诞生丑陋,没有例外。
Quine就不一样了。它揭示了函数的本质只是复用了几个变量的计算树,和JSON一样是跨平台的, 借此允许我们审视和消灭重复的类型签名,创造更好的SWIG、rustdoc、lint、minify等工具,甚至是[拟态评判lityping]这样更直观的检查与推理
这一切都不需要魔法,它和Proxy+getMethod一样是自举的,可以在任何编程语言-尤其是在缺乏this支持(并且傲慢地唯独不支持this隐写)的pyjs里发生。 这是最重要的点,我的跨语言RPC新JSON需要这种codegen框架。 解决一种问题,肯定要把所有上游复杂性全消灭掉,对不对?
https://github.com/mame/quine-relay
我几年前用这类技术弄了Tk的DSL,forin展开 https://github.com/duangsuse-valid-projects/TkGUI ,但没有意识到值:名替换 是把运算符重载变成编译器的要点 : 首先
kstSel=Fn(2, ([A,B])=> KST? A:B ) 就可以用read自源码+值名替换 生成出 "(A,B)=>{" "A" "}"想必是比XML魔法优雅不少吧……
这样Kt的循环展开可以这么写:
val [T Array].constFor = F.PASTE { op: (T)->pass/*[T pass F.n1]*/ ->
indices { i -> quote { op(`$`(this).get(i)) } }
//(this as KtScope).quote "op(x1.get(1))"
//(this as KtScope).quote "op(x1.get(2.. ))"
// str += " inlineOp(${arr}.get(${2})) " 是否和 quote { op($this[i]) } 雷同? Java STR|SQL. 提案的真正面貌来了。
//也可以来return repr(字面量均可序列化), inline("bin/file")... 宿主有多强,宏就有多强。不在五行之中,却不会生成非法结构
} 看起来相当简单,而且和Proxy({}, {get:genFn}), 和lang.invoke属于同款! 但是,因为能处理左值,创建函数、修改class{}字典也是可能的。 运行时反射,编译时留字面,运行即编译,但比起JIT所有不知名的「编译优化」,eval后留字面可不是魔法,只是元循环函数而已,就像numpy和taichi 的"C DSL"
Quine比之poet等EL就像SpringBoot比SpringXML一样, 不需要切出本语言的思维,就可以突破 o.key() o."key"() 的隔离, 避免了人们关于「静态类型」一直以来的一个很大的误会
但我就从来没见「最佳实践」们用过…… kt 在用仅能自动import而且个性贼大的poet。 lombok 甚至重造javac的轮子,就为了显得自己懂栈字节码了
和我那个拟态类型不谋而合,相信再强化下反射API,很快就能替代TS了!? 🤔
val $T_Array.constFor = F.PASTE(n=1) { op:any -> when(var T,){ this typ([T Array]) && op typ([T pass F.n1]) -> pass
else -> TypeError("某些人觉得很厉害的编译原理和OOP,唉,还是比eval和原型链棋差一着")
//把for/if 这些函数的语意,重载成只执行1遍/2侧都执行就够了, 这是Lisp说的道理:语言们没什么语法,只有传参法、求值序、回调或栈的区别罢了。 类型检查和webpack什么的,何必呢,直接在编译期黑盒测试:TDDtc调试运行即编译!
//Kt 不太能按inferDFS(T)分重载,你 val=::print 就一目了然,方程的形式就只有 {T:?0, R:?1} 这样的解构匹配而已,却卡的要死,真不懂是JVM拖了K2的后腿吗? 还是某些预制人比起为用户着想,更爱虚伪的代数呢?
//因此以上代码已经是JB级别的 type inference 了,Prolog数据库的helloworld而已。 F(n1,T,pass). v(this,T,array):-is(T,any?),F(n1,T,pass). >>> v(变量名,...模板参数)
//btw. Kt 没 match{case+} 也不是大问题,如果支持真正纯函数式的解构匹配,怕是val和var语法和那高开低走的@Compose都要退役了。 Svelte的rune、C的返回到指针都不会抄,还真是仅此一家别的不看了
}}Lisp也有类似的能力,Haskell系的 quasi-quote 准引用 ,包括Rust!()也是这个意思,不过它们都是简单的eval(comptime eval 又怎样?不成熟),甚至搞一些因为反射API不稳定、母语语法空洞而贫瘠,而使用的模式匹配重新造parser,还有递归限制
C++ template<T> 扩充的#define呢,类型体操(比如printf的静态检查)呢,也是这个意思,但它们非常丑陋,它们总是让上下游在 💩味的代码和代码味的💩间二选一,明明试图用解构匹配重新实现调包和# define就能解决的任务,还自我感觉良好,仿佛一眼概况程序的能力已输给AI,但只要Tab补齐的类型写对了,就能强化自己的正确率似的。 丑陋的黑魔法只会诞生丑陋,没有例外。
Quine就不一样了。它揭示了函数的本质只是复用了几个变量的计算树,和JSON一样是跨平台的, 借此允许我们审视和消灭重复的类型签名,创造更好的SWIG、rustdoc、lint、minify等工具,甚至是[拟态评判lityping]这样更直观的检查与推理
这一切都不需要魔法,它和Proxy+getMethod一样是自举的,可以在任何编程语言-尤其是在缺乏this支持(并且傲慢地唯独不支持this隐写)的pyjs里发生。 这是最重要的点,我的跨语言RPC新JSON需要这种codegen框架。 解决一种问题,肯定要把所有上游复杂性全消灭掉,对不对?
Forwarded from Dante's Limbo (Dante At2814)
#security #ruby tcpdump https://ruby-china.org/topics/43886
https_instrument 还只是一个玩具,我只测试了一个最简单的例子。对我来说,写这样的工具是一件很有趣的事情。 许多公司的开发机,没有 root 权限,它毕竟也不是科技公司。。。
相比 eBPF ecapture,这种方法除了不用 root 权限外,开发起来也更容易,不需要额外的支持,但 eBPF 是单独的内存空间,操作复杂的 Go 数据结构就极其困难,比如 hash map。
可以用 LD_PRELOAD 替换动态连结库的方法,相应代码。我之前的文章也有相关的介绍。
用 Ruby 构造请求,并用 stack profiling tool 查看请求了哪些方法,从而缩小范围。我用的是 https://github.com/yfractal/sdb
LD_PRELOAD,虽然可以 instrument openssl,但没法改程序本身的代码。理论上,通过改 binary,比如在相应的地址插入 int3,生成新的 bianry,应该可以达到类似的效果,或者直接在编译的时候做相应操作,再或者改 ELF。
相比 eBPF ,个人更喜欢 function Interposing 这种方法
https_instrument 还只是一个玩具,我只测试了一个最简单的例子。对我来说,写这样的工具是一件很有趣的事情。 许多公司的开发机,没有 root 权限,它毕竟也不是科技公司。。。
相比 eBPF ecapture,这种方法除了不用 root 权限外,开发起来也更容易,不需要额外的支持,但 eBPF 是单独的内存空间,操作复杂的 Go 数据结构就极其困难,比如 hash map。
可以用 LD_PRELOAD 替换动态连结库的方法,相应代码。我之前的文章也有相关的介绍。
用 Ruby 构造请求,并用 stack profiling tool 查看请求了哪些方法,从而缩小范围。我用的是 https://github.com/yfractal/sdb
static int Real__SSL_read (void *ssl, void *buf, int num) { return SSL_read (ssl, buf, num); }
extern int __interpose_SSL_read (void *ssl, void *buf, int num);LD_PRELOAD,虽然可以 instrument openssl,但没法改程序本身的代码。理论上,通过改 binary,比如在相应的地址插入 int3,生成新的 bianry,应该可以达到类似的效果,或者直接在编译的时候做相应操作,再或者改 ELF。
相比 eBPF ,个人更喜欢 function Interposing 这种方法
ruby-china.org
无 root 权限、证书查看 Ruby HTTPS 请求内容
Introduction 本文的代码在 https://github.com/yfractal/sdb/tree/main/sdb-shim 在开发或者排查问题的时候,时常会需要查看请求内容。比如著名的 tcpdump 可以查看 ht...
duangsuse::Echo
另外,我刚又又设计了一种新的元编程方式: QuineQuoted (馈硬是一种 eval(s)==s 的测试,它和FP系的ast宏还有点区别: qq需要编译器支持, QQ自己就是编译器) #plt #kt https://github.com/mame/quine-relay 我几年前用这类技术弄了Tk的DSL,forin展开 https://github.com/duangsuse-valid-projects/TkGUI ,但没有意识到值:名替换 是把运算符重载变成编译器的要点 : 首先 kstSel=Fn(2…
https://www.fxzhihu.com/question/528403706/answer/73201328199 #ts
再见了,丑陋的类型体操
通过在JS上使用eval留字面的二段求值,任何这样支持反射的语言,都可以有编译期的预处理器,和# define一样简单
再也不需要理解类型了,解释即编译
再见了,丑陋的类型体操
通过在JS上使用eval留字面的二段求值,任何这样支持反射的语言,都可以有编译期的预处理器,和# define一样简单
再也不需要理解类型了,解释即编译
Inc=F.QUINE((quote,x)=>(quote`${{x}}+=${1};`, x))
acc=2; dd=Inc[acc]
//dd=Inc.scop(s=>eval(s)).MEMO1(acc)
//dd=((x)=>{x+=1; return 3 })(acc)
//展开结果
acc=2; dd=3FxZhihu / Fixup Zhihu
为什么 TypeScript 会有「类型体操」? - @酱紫君 | FxZhihu
TypeScript 聪明反被聪明误, 处于一种微妙的位置. 类型系统比 TS 烂的, type 比 term 少太多原语, type level 压根无法表示复杂逻辑, 也就没这种烦恼 类型系统超越了 TS, 达到 DT 级别的, 此时 term 就是 type, type 就是 term, 也不用写两遍. 只有 TS 不上不下, 夹在中间, type 和 term 有同样能力的原语, 但是 type 和 term 却不等同 于是一模一样的逻辑 term level 写了一遍, type level 又要写一遍…
https://m.youtube.com/watch?v=W20GfV30zG4&t=6m #news 沪爷✌
https://m.youtube.com/watch?v=vV1l1-7FZGs Louise: #bear
>瘋狂在向韓國人開屏這比喻真好 ... 正在吃飯想到孔雀開屏差點笑到吃不下 哈哈哈,顧名思義,對韓國人求偶❤
为啥遥遥领先的小米华为和比亚迪不拿出来??传统文化和独一无二的美食老字号呢? 😂😂😂是丢脸不够威风吗?
>上海这波操作就是典型的田忌赛马,拿着自己的上等马赢了对方的中等马,有什么好骄傲的呢?要比就公平一点,上海的这些富二代去和韩国那些财阀家的二代比,上海的普通工薪阶层去跟首尔的工薪阶层比一下。最后,让韩国那些住在偏远山区的人和咱们西部山区里的老百姓比一下,这样才公平嘛。我查了一下,根据2022年的数据,韩国收入最低的20%的人,平均月收入是181万韩元,约合人民币9000多。。。
https://m.youtube.com/watch?v=vV1l1-7FZGs Louise: #bear
>瘋狂在向韓國人開屏這比喻真好 ... 正在吃飯想到孔雀開屏差點笑到吃不下 哈哈哈,顧名思義,對韓國人求偶❤
为啥遥遥领先的小米华为和比亚迪不拿出来??传统文化和独一无二的美食老字号呢? 😂😂😂是丢脸不够威风吗?
>上海这波操作就是典型的田忌赛马,拿着自己的上等马赢了对方的中等马,有什么好骄傲的呢?要比就公平一点,上海的这些富二代去和韩国那些财阀家的二代比,上海的普通工薪阶层去跟首尔的工薪阶层比一下。最后,让韩国那些住在偏远山区的人和咱们西部山区里的老百姓比一下,这样才公平嘛。我查了一下,根据2022年的数据,韩国收入最低的20%的人,平均月收入是181万韩元,约合人民币9000多。。。
YouTube
上海真火了,讓全世界重新認識上海,傻了吧?5000年文化原來不如西方豪車?一點小小的震撼是指在街上吃西瓜嗎?原來這就是中味,全都被看穿了,怎麼辦?七七叭叭TALK『提神醒腦179』20250114
謝謝你的支持,加入會員頻道的開通鏈接,每個月都有專屬Q&A,期待朋友們有趣的好問題~:https://www.youtube.com/channel/UCFvCQZqv9fMBHDWAqlNDEBg/join
有趣相關視頻:
https://youtu.be/8uO35u4TTuU
https://youtu.be/DyZYZksL45c
https://youtu.be/npuNjUDylxQ
https://youtu.be/kzVG1lWP35g
https://youtu.be/9QFF9npgGRg…
有趣相關視頻:
https://youtu.be/8uO35u4TTuU
https://youtu.be/DyZYZksL45c
https://youtu.be/npuNjUDylxQ
https://youtu.be/kzVG1lWP35g
https://youtu.be/9QFF9npgGRg…
Forwarded from 厘米碎碎念
给会爬虫的兄弟们一个信息差赚钱机会。现在公众号爆文很火,有的人一个月广告几千上万,甚至几万。爆文有个痛点或者是必须要的信息是要找已经爆了的文章,或者对标账号,尤其是低粉爆文。能够收集到这种信息,还是有人愿意付费的。我已经看到有人在收钱了。
路走窄了,火中取栗。我毕业第一家公司就是专门干这个的,巅峰的时候屋子里有五千台物理小米手机,虚拟机器上万,当年小米低端手机被这个产业吃了一堆。收集文章信息,刷评论,刷点赞,全是机器人自动化,洗稿发文带刷一条龙服务。后面不做了,因为太刑了。
不建议批量爬任何国内的任何信息,真的不建议。自己爬自己用也行,别卖。
Forwarded from yihong0618 和朋友们的频道 (伊)
#blog #todo
https://arjunsreedharan.org/post/148675821737/memory-allocators-101-write-a-simple-memory
https://arjunsreedharan.org/post/148675821737/memory-allocators-101-write-a-simple-memory
Tumblr
Memory Allocators 101 - Write a simple memory allocator
Code related to this article: github.com/arjun024/memalloc
This article is about writing a simple memory allocator in C.
We will implement malloc(), calloc(), realloc() and free().
This is a beginner...
This article is about writing a simple memory allocator in C.
We will implement malloc(), calloc(), realloc() and free().
This is a beginner...