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

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
Forwarded from DBin_K 🤯 Tingle 灵光一闪 💡 (DBin_K ∣ 人工智矿👾)
随手翻到一本18年的 老书 , 技术发展是真的很快, 书里很多内容都和现在大不相同了
#嵌入式 #单片机 #阅读
Forwarded from 风向旗参考快讯
Telegram 已悄然改变规则,允许对私人聊天内容进行举报与审查

今天,Telegram 在其常见问题解答页面中悄悄进行的一项修改中写道,在私人聊天与群组聊天中,用户首次可以“举报非法内容”以供平台审查。同一页面已被移除的旧版本中写道,“所有 Telegram 聊天和群聊都是参与者之间的私密聊天。我们不处理与它们相关的任何请求。”

今天早些时候,在法国被捕的 Telegram CEO 杜罗夫在帖子中承认, Telegram 的快速发展“使犯罪分子更容易滥用我们的平台”,并承诺做出改变。

—— Telegram FAQ
Forwarded from LetITFly News (LetITFly 让技术飞)
把美卡绑到支付宝微信算 1
想办法在国内花外汇

在美国刷银联卡算 2
想办法在国外花人民币

深港存人民币算 3
想办法把人民币「带」出境

旅游没花完的外汇现钞算 4
想办法把外汇「带」进来

有 FTF 的美卡算 5
办一些「国内没啥用」的外国卡

开 HSBC Expat 然后零余额被关户算 6
办一些国外(美国)更没啥用的外国(英国)卡

然后我就不定义什么是 7 了
想办法让钱在「一堆没啥用的卡」之间流动

比如给 HSBC US Fake DD 不算“没啥用的卡”,对我来说每张美卡都有用!

https://t.me/woshadiao/163316
😓 最近头疼死了,自己都跟不上自己设计的进步。 就拿序列化为例,之前我用 TrimLits+Imp[T](TParam..) 模式,它这样编解码 Pair(A:str,B:int)

.:
Pair-A-B ["" 0]

.: Pair static
As: (Pair "" 0) #空可变实例
Types: {} #非sealed
Tvars: ["A" "B"]
Tr-it-key: key :. #重载
"A": it.A=fmt -Tr(it.A)
"B": it.B=fmt -Tr(it.B)

fmt: 线程局部 # 通过这种方法耦合json,ini格式
Init:
(TrimLits as Imp)[Pair]={this} #注册字典读写器

dump (Pair "老铁" 666)
dump-it:
#省略""转义部分
w "{"
TrimLits.typeof(it):
Tvars:(k)
wstr(k); w":"
Tr(it, k)
w"," ifNot1st
w "}"

load 同理,对sealed会要求首key是""或"type",直接从Types查到Pair这样的TrimLits元表
DeepCopy 则需要用PairT.As()空拷贝整颗树,然后zip遍历,通过 swp.reset; Tr(A,"k",swp); Tr(B,"k",swp) 来中介。虽然较丑,因为0拷贝比纯函数更美。

Imp的好处是, it.A=fmt -Tr(it.A, "") 既可以利用反射Proxy实现,也可以编译期优化,它很规范地兼容了泛型、trait impl{}和懒初始化
TrimLits 为我们解决了Java反射和序列化API的根本毛病,简化额外功能(如 val:List/Map)的添加,它其实是个Good Visitor

……
但很快,这种树遍历扩展到了AST(甚至RPC)上,改变了之前计划的,通过JSON编码简单函数(= 只包括顺序赋值&引用) 的RPC被认为是过度设计,甚至AST都不依赖dataclass来保存和传输了

此前,典型的DSL/AST如 !1 to !2 go Int::plus ,很明确,Int不是 enum Calc_union{..} 的成员,我们被迫 new A(1)+A(2) 这种丑陋的Tag:


//请您建模算式1+2 ,实现求值和rustfmt
interface Goes<out T> { fun go(): T }

sealed class Calc: Goes<Int> {
/* A literal */
data class A(val n: Int): Calc() { override fun go() = n }
data class Op(val a: Calc, val b: Calc, val op: Int.(Int) -> Int): Calc() {
override fun toString() = "($a ? $b)"
override fun go() = op(a.go(), b.go())
}
companion object DSL {
operator fun Int.not()=A(this)
infix fun Pair<Calc,Calc>.go(f:((Int,Int)->Int))=Op(first,second,f)
}
}
val c = Calc.run { !1 to !2 go Int::plus }
c.go() //3


别忘了Java里一切本来就是Any?,Kt的enum Result{Ok(T),Err} 都显得非常多余。
但有了Tagless,一切自然多了:

interface Calc<out R> {
/* A literal */
fun A(n: Int): R
fun Op(a: R, b: R, op: Int.(Int) -> Int): R //toStr只将op查成"+-*/"
}


「学院派」Tagless 虽然直球好写,仍无法替代data class AST 在内存外存的复用性。 (某乎 #PLT 称其 Finally Tagless ,其实是误读,人机到 pointer tag 都不解释把自己绕晕了,呵)
(当然,R=()->Wtf 都是可以的,abstract nonsense。 https://iota.huohuo.moe/FreeMonad.html

很简单,用pickle那样的反序列化栈包一层,遍历时生成 1 A 2 A :+ Op 即可二次遍历,省去了OOP的极大麻烦。 别说懂GADT却连逆波兰都玩不转。
实现上只需 open class TagienumCalc(val ops=生成至..){ open fun A= } , parser("", Run); ops(Run) 用法相仿,便可同时解决AST序列化问题


TrimLits:Imp 对我来说是比反射方便可信的ABI, Tagienum 涉及的可能性却太大了:
既然可以记录函数调用树(而非简单的vararg&kwarg),为何不转义出bash函数的 $1 $2 .. 参数,约定 十一Xノ 这些operator,约定类似BEncoding的高效能格式,然后直接用于跨语言RPC? 序列化光搞状态管理太蠢了,复用是理所当然的。

这俩兄弟的原理都很简单,数组状广义AST的挑战和陷阱却非常多,我不希望听从「Talk cheap show me code」搞出不够本的设计后,再去拍脑门子改API 2.0 3.0!
尽管如此,这几个姓T的是我在研发编程范式里「数据类型」届的首席

>
关于JVM序列化器&验证:并不是所有XML都容易表达为JSON,例如没几个人认为html <div k=v>.. 该表达为 [{type:div, k=v, }, ...]
这倒是有个ABI设计,可以支持泛型和多态子类,而且不引入Encoder这些概念
form格式化的问题应该是 inline class 的本意,不知为啥Kt没有考虑验证语法这种问题
按道理来说,你可以Unsafe loaddump任意field类, Gson就是
py的pickle也有RCE问题但没这么业余 外面input()一个类名你就new它, what's wrong with u?

如果您有它俩满足不了的demo情景,欢迎私我讨论,尤其是Tagienum
duangsuse::Echo
😓 最近头疼死了,自己都跟不上自己设计的进步。 就拿序列化为例,之前我用 TrimLits+Imp[T](TParam..) 模式,它这样编解码 Pair(A:str,B:int) .: Pair-A-B ["" 0] .: Pair static As: (Pair "" 0) #空可变实例 Types: {} #非sealed Tvars: ["A" "B"] Tr-it-key: key :. #重载 "A": it.A=fmt -Tr(it.A) "B": it.B=fmt…
一个设计者就是这样推倒、再来、再推导、再来…… 😓 #life #statement

幸好,这是最后几朵乌云了, 只需要解决RPC的基本规范, HOLP的整个强类型IO体系就可以移植给java那些能丰富简历的平台了,
这个优雅到能放在README上的算法,肯定是能吊打JavaKt一众「魔法版」序列化库(至少 Fastjson https://t.me/dsuse/20186 😅😅😅

当然,HOLP 被设计为「语言之中的语言」。它本身有自己类似yaml+bash的语法,独立于电脑而存在,却又能联合OOP+FP+SQL的代码范式。 只不过依我的元编程写法,Trim*这些技巧仿佛背后并不存在一个体系……
如果以后您能见到一些漂亮的语法,那大概是HOLPful的节选和变体
-user {-id "Amy" -age 20}
-vs {.id="Amy", .age=20, }
pass user
if u.age>18 {}
or u.age>10 {}
or u.age<0 not {} --or{NO}

class {
-Pair(A,B){}
-Tri(A,B,C){}
}
-tbl Tri{
1,2,3,
'a','b','c',
{-[]Pair{666,233}}
}
tbl [3]A pairs [1]B==233
tbl [2]C=='c'

-f(x,) {x+1}
pass fsql"SELECT 1, 2" for(2,) { A+B } -- bash式参数!


我总是在闭关,看起来很闲,但做的就是这样的工作。 七年的积攒,只能是为了开创性的工作。

如果我家人稍微不粉红那么一点,我就不需要急功近利,可以耐心归纳,代码质量想必能突破一个个「单一用途」的桎梏。
其实他们才是最不爱国的,和某公子一样,只爱自己赢。
>虽然有点不礼貌, 螺丝能不能接受我吐槽下。 你们对玩元编程的minimalist,为何敌意那么大。 #life #dev #statement

@yihong0618 在X上看见几个HR在写1hr 黑客松 json parser ,我去解释了下原理,说了这个: https://t.me/dsuses/5352
我的语气是很普通的,自问没什么,日常技术交流而已,我甚至还编辑了comment里的错漏。
我最后说,难不难取决于多余的工作量,这是因为,在国内 #PLT(编程语言设计) 领域,大量demo都充斥着让你熬个通宵的无效算法,单就json.loads而言,确实不会超过100行。 我希望PLT(大学编译原理)潜在的新人不会重走我的老路,而是能更加自由发挥,不被任何技术栈吓住。

很快他把整个post都删了(幸好在drakeet事件后我已懂得资料备份), 过两分钟,拉黑了。 前者我是能接受的,或许贴太长了—尽管Yi转发 https://t.me/dsuse/19854 时那才叫长

我大概能猜到,Yi对「玩元编程的」已经PTSD到,连我出于善意☺️ 指出一个demo,都觉得是在贬低别人的程度了??
我也知道,Yi并不在乎「我的领域」能创造多大的价值。他是否只是想用「小众的东西eg.BPF,PSQL」装点自己呢? 容我说句,这对真正在本领域用功的人,而非仅仅贴个链接念个术语的人,很不礼貌。

Talk cheap 的话我写代码了,Code tldr 的话我解析了, 难道一言不发,删除,就是您对别人的「修炼」的态度?
国内PLT领域不会比拉丁文、古生物学(◉▽◉) 的情况好很多,我不想说什么宏大叙事,什么虚伪的协作, 但我觉得不该因为自己热爱的编程,而孤立无援。 您要知道,开源协作未必只发生在「确定的Project」甚至「盈利的」「流行的」工具下。
如果这就是Vue的作者、王垠、cloudwindy 在国内遇到的事情:被所认为的同道,像Q群那样「管理」的话, 我觉得Vue尤大不给中文文档,很棒。 我们不配。
我没去拉任何人的投资、没骚扰任何人,只希望墙外的IT圈能给今天尚是「小圈子的研究」最底线的善意。 哪天国内和前沿技术隔离时,请别出声,也别拿不知根底的英文链接和术语造人设:你们根本不尊重他们的同行,这开源环境,已是比10年前更差。

发生这件事后,我看到了 https://github.com/yihong0618/gitblog/issues/193 ,我不明白,一个32+的人,情绪稳定上为何不如23的废青
我是个认真的人,我眼中你们也一样,只是我们的领域不一样。 我不明白,这似乎人设不符啊。
我对Pythoneer yihong 并不了解,可以分享下吗? 🙏
>>你好~ 我是yihong0618,生活工作在大连。 喜爱游戏,跑步,读书,编程和有趣的东西。 项目大多和这些相关。
duangsuse::Echo
>虽然有点不礼貌, 螺丝能不能接受我吐槽下。 你们对玩元编程的minimalist,为何敌意那么大。 #life #dev #statement @yihong0618 在X上看见几个HR在写1hr 黑客松 json parser ,我去解释了下原理,说了这个: https://t.me/dsuses/5352 我的语气是很普通的,自问没什么,日常技术交流而已,我甚至还编辑了comment里的错漏。 我最后说,难不难取决于多余的工作量,这是因为,在国内 #PLT(编程语言设计) 领域,大量demo…
https://t.me/dsuse/19798 losses 对这条回复了:
你对自己不懂的领域妄加评论,完全没有 humble 的心态,且论述有极强的民科性质

>你们测试过我的code就会知道,不是「不懂还要硬聊,没理还要装蒜」

😊好吧, 对我没影响。 我也只能继续下去

我的每个设计,和中国都有一定耦合:河图hito 握迹wojs 诺榫LOSon 爬扣pahQL
当然也可以说是日本,hito是「人」嘛
今天贴的 TrimLits+Tagienum 模式就属于诺榫,一个函数式RPC架构

我不太可能仅仅因为受到所谓同道or爱国者的不理解和恶意猜测,就和Vue那样去中国化。 唉,吃得苦中苦

btw. 在 @pyhunter 很快解释清楚了,和Losses那次不同,是误会, yihong只是删贴,踢人是bot搞的,不过这样就rm-rf了一堆我不在意的评论
之前的一次是因为 codedump, 我读过他的书,所以就在另一个author的新宣传下贴了链接, 肯定就比了下大小王, Yi就不高兴了,老C则没有表示

>原po的重点明显不在json parser难度如何怎么实现,你品品是不是。你这样上来头几个字一般都给人不好的观感
我就是这个性格,我毕竟是相关领域的公知,会比较直球
>会把所有话题都拉入你的领域。没有必要吧,克制一下
https://peps.python.org/pep-0768/

在古代我 gdb 注入 pdb 的方法大体来说是:
1. gdb -p $(pidof python)
2. gdb 会话里 call (int)PyGILState_Ensure()
3. gdb 会话里 call (int)PyRun_SimpleString("import pdb; pdb.set_trace()")
4. gdb 会话里 call (int)PyGILState_Release($1)
5. gdb 会话里 c

诚如 pep-0768 所说,由于可能在任意时刻进行注入,如果运气不好在 malloc 时注入 pdb 导致 malloc 会直接崩溃,或者在 gc 时修改对象破坏一致性,临界区修改 tstate 导致死锁

所以这个 pep 提议提供一个 cpython 接口,让 gdb 把要执行的代码写入指定的一个结构体字段,cpython 在可以安全被注入的时候会主动执行。

初看之下挺好,但我细想着就皱起眉头了:进程阻塞时如果还依赖 cpython 运行到一个安全点,那就可能永远等不到了。简单举例,单线程 cpython sleep(233) 的时候整个进程都 offcpu,此时如果想等 cpython 执行 debugger 命令岂不是要等 233 秒。如果进程已经死锁,岂不是永远无法执行 debugger 命令?

(而且我主观上认为 debugger 和 tracee 协商运作是软弱的行为,我不能想象 bpf 要等 tracee 执行到“安全点”再运行是什么画面)

虽然我也曾经尝试过很多方案试图 pdb -p 动态 attach cpython,但是现在我更想要的是一个 wrapper 能从 cpython 里翻译出 python vm 的东西,如 https://docs.python.org/3/howto/gdb_helpers.html#gdb 。 但 python-gdb.py 的实现调用了不少 cpython API,为了杜绝和 cpython 状态冲突应该用指针转换来翻译内存。
管家实拍 猫老太: 🪳 🏚 #bilibili #nCov19 捡破烂怀旧服
警告:密恐 #猎奇 内容

8人工程量不亚于再建个屋子了:卧虎藏龙(没蟑螂的屋子有肥壁虎,到处是吃完的外卖盒,东西一挪开……
119:应该价钱,向你们致敬
马桶:没想到吧?我是这家里最干净的~
姥姥:让我来恢复虫族的荣光
经典:看似勤俭节约,实则顶级浪费,平台说这期是全免费的,只报销了交通费,我靠
科学家:要明白一件事,蟑螂和蛆在这么多垃圾的情况下其实是起到好的作用了,没有蟑螂和蛆帮着分解垃圾的话,整栋楼都得因为垃圾发酵成毒气室
记得有个热带雨林求生的的人,伤口生蛆了,但还是很幸运,因为没有蛆虫的话,他伤口直接就会严重感染并致死。

#文革 囤积癖: 还记得封城期间吃屎老人的新闻吗 🤔 ,这都是饿出来的。 美国也有猫老太,但都是都市奇闻的概率了
现代有闲出抑郁症的, 历史上有被惯出囤积癖的,我们都有光明的未来。
#life #recommend
https://www.fxzhihu.com/question/635841165/answer/3477288352

长期0社交的危害:
1 远香近臭,损害家庭关系。 多出去坐坐, 史铁生当初人生的低谷《我与地坛》的素材也是这么来的。
2 容易抑郁,损失肢体和表情语言能力,不利于未来破冰
3 接触不到新材料,一些旧对话会洗脑循环,降低效率,最坏情况是变得神经质,而且才思枯竭,明明有动力的事情也不想做了

当然,这些社交人你必须确保是友善的,对保持自己的心理健康非常重要。 远程工作和这有些差别

btw. 我知道绝大部分「躺平啃老」是有自养能力的,无论外面学历贬值或单休996到什么程度,比如 「新三架马车」外卖网约带货 「吉祥三保」保安保健保姆,以及商超美食城富士康,按三线城市的标准购买力大都是3~4k水平
这显然难以让人咽下这口气 ,当然学IT的也有不少人当上了SQL CRUDBoy的,你们很不容易,历史的垃圾时间就是这样。 多投资自己的特长或跨国技能, 与你们相比,我才大专毕业,没长衫可穿。
别按国内的鄙视链选新专业了,没用。

中国民生以上的消费就是靠军公教、投资抵押出口,其根基是借来的繁荣;而民生以下的消费,哪怕妓院也赚不了啥钱,没能及时脱手庞氏泡沫,意味着你几代人的努力毫无意义,选择>奋斗,这当然比「次贷危机」更残酷,别忘了资产是流动的,有风口就自然有洼地,不存在永久的第二春。 按劳分配是需要大环境支持的,劳动力再生产更需要。

经济是市场情绪的反映,在经济危机时,却是权力或智慧的反映。 老实人是最被欺负的,也是最物化别人的。别拿无心无知当老实。 如果老板在招兵买马时都把增长分润给外人,他富强了就该兔死狗烹了。GDP亦然。
如果想让历史的垃圾时间尽早结束,就要有纳税人意识,如果你觉得没希望,那是因为基本盘还没经历明年年底的经济。
>He who has a why to live can bear almost any how
Forwarded from Solidot
硅谷的福利文化逐渐消失

2024-12-14 20:37 by 时间的折皱

硅谷科技公司过去二十年一直用各种福利吸引人才,但随着行业的大规模裁员,以及构建 AI 的昂贵转型,硅谷的福利文化在逐渐消退。Salesforce 去年取消了员工的牧场休假和销售的每月休息日,Netflix 削减了其育儿假政策,Meta 前不久解雇了 20 多名用餐券购买家庭用品的员工。Google 的前员工和现有员工称,公司越来越少的在工作场所以外地点举行会议,搜索巨人还关闭了部分小厨房,提供的零食也变得更便宜,比如用 Twix 巧克力取代了手工巧克力。根据 Layoffs.fyi 的数据,2023 年科技行业裁员逾 26.4 万人,比前一年多 10 万人——科技行业的从业者失去了其最大的福利——工作保障。

https://www.nytimes.com/2024/12/13/technology/tech-perks-culture.html?unlocked_article_code=1.hE4.kupU.YvEtUe_i9Xpm&smid=url-share

#商业
Forwarded from 荔枝木
韩国国会当地时间14日16时举行全体会议,尹锡悦弹劾案通过,尹锡悦总统职务立即停止。

韩国宪法法院将在180天内完成弹劾审判程序。如果宪法法院做出弹劾案不成立的裁决,尹锡悦将立即恢复总统职务;如果宪法法院认可弹劾案成立,尹锡悦将立即被罢免,预计韩国将在明年4月至6月间举行大选。 ​​​
米莱 bilibili.com/video/BV1NVBEYhEio #谈政事 自由主义
小K https://youtu.be/mC8W7H5vWZ0?t=1959 #谈政史 资本主义、宗教、欧洲的春秋
小K https://youtu.be/nkGtyWot_AE?t=687 马列政教合一:农民起义政、八股白吃教
1 左派是「集体主义者」,左派里面也有人渣,但当他们喊出宏大口号,这些人自我的卑劣就被掩盖了
2 左派同而不和,他们敢于给自由主义阳奉阴违,这包括他们总为justice杀人,即便还有更正义的谈判手段
3 人类都会犯错,而左派总是鼓励人进步,但当你在经济和公平上比左派更进步,甚至更廉价,他们就会想灭了你,想拿别人的税钱战胜你, 但当他们统治撒哈拉,沙子都会短缺

一个富人掌权的国家远比一个掌权后才有权致富的国家好得多。——哈耶克
达尔文进化论的愿景是进化,淘汰只是手段。很明显,社达愿景是淘汰,结果是退化。
如果高校采用末位淘汰制,提出这个制度的人。我衷心祝愿你能够在人生各个阶段遇到这个制度 。

>米莱是阿根廷的「无政府资本主义者」,这很像BTC的主张: liberty&property ,弱肉不受强食,反垄断,便是自由。
每个人都有天赋的性质,这便是property和interest,让社会机会平等,和而不同,保障他们所得的上限liberty和下限freedom,才能所有人都有拒绝贫瘠和恐惧的自由

我认为,现代「自由主义」的自由,是让穷人免于贫瘠,富人免于恐惧,因此能正当竞争,和而不同,实现可持续发展的合作经济。 这样的法制符合直觉和科学实验,不会因贪婪恐惧而旱死涝死,也满足以人为本和主权在民的合规要求
1
https://www.fxzhihu.com/question/652185870/answer/3458513818

#android 的失败给了「崇文」崇尚八股文的人一个教训: 没有 User Experience 的代码内卷是很蠢的投入,一旦垄断被打破,我们无处可去
认为 #dev 「领域护城河」和医学生一样的想法,是不切实际的。 医学生对照的是 #cs 拉丁文或IT架构师, 开发者就是纯粹的实干网红,应该对自己的产品负责

只有像PyJS这样有缺陷的直白,才有被开发的潜力, 在App的功能点上到处设卡、贩卖焦虑和私货的 android API 没有资格。
#dalao #tool https://github.com/OXY2DEV/markview.nvim

一个穷孩子用蓝牙键盘+Lua(gsub+vim.treesitter) 开发的 Nvim(命令行版 VSCode) md渲染器插件
此渲染器用特殊字符和ANSI色彩可视化 markdown 格式,支持footnote和check等拓展,甚至支持 html/LaTeX 格式的markdown富文本。

有些文件非常庞大,很容易让 Neovim 变得缓慢。因此他不得不禁用 LSP、自动补全、Tree-sitter 和语法高亮,只是为了让它不卡顿。
作者 Exciting_Majesty2005 是第三世界的 Termux.dev 用户,目前在孟加拉国上高中。使用 Termux 和 NeoVim 可以获得 PyDroid 提供的所有功能,而无需每月订阅。

好心的用户们已经给他捐款了2300刀的电脑
开源社区也在回报他。在 Reddit 帖子里甚至有人推荐他来申请新加坡国立大学,这让一直以来想要学医的他有了更多的自由