OKHK 👀
✨ Thinking ❤️
-
-
-
- 纽时记者称 Adam Back 是中本聪
#比特币
纽时记者 John Carreyrou 在调查之后宣称 Adam Back 是比特币作者中本聪,Adam Back 本人公开否认。Adam Back 出生于 1970 年,是一位英国密码学家和密码朋克,工作量证明系统 Hashcash 的作者,这不是第一次他被认为是比特币作者。Carreyrou 是知名的调查记者和作家,他的调查认为,Back 的写作风格、意识形态、技术背景以及早年发表的帖子都与中本聪有重合之处。他的调查主要是基于芬兰程序员 Martti Malmi 公开的数百封与中本聪交流的电子邮件。Back 通过其 X 账号回应称,他不是中本聪,但他早年非常关注密码学、网络隐私和电子现金的积极社会影响,因此从 1992 年左右开始积极参与电子现金和隐私技术的应用研究,在密码朋克邮件列表中参与讨论,最终促成了 Hashcash 等创意的诞生。
https://www.nytimes.com/2026/04/08/business/bitcoin-satoshi-nakamoto-identity-adam-back.html
https://en.wikipedia.org/wiki/Adam_Back -
- 霍尔木兹海峡开放了吗?
https://www.ishormuzopenyet.com - AWS S3 Files - 让 S3 Buckets 像文件系统一样挂载使用
https://aws.amazon.com/cn/blogs/aws/launching-s3-files-making-s3-buckets-accessible-as-file-systems/ - NeriPlayer - 原生 Android 多源音频播放器
https://github.com/cwuom/NeriPlayer
NeriPlayer 是一个基于 Jetpack Compose + Media3 的原生 #Android 音频播放器。
整合网易云音乐、Bilibili 与 YouTube Music 的在线内容,并提供流媒体缓存、应用内下载、本地导入、本地歌单管理、 可选 GitHub 私有仓库同步等能力。
#Music #Tool #GitHub - 继续 golang 数码世界大冒险,上次说到 https://go.dev/play/p/kfAeED2Q2mJ 这个程序里的 callback 版本和 direct 版本有巨大的性能差距,群友 Bo 指出这是由于 literal func 导致的,把闭包移动到循环外避免每次循环都创建就可以了:
@@ -65,12 +65,13 @@ func consumeCallback(ring eventRing) (int, uint64) { ops int digest uint64 ) + f := func(chunk []byte) error { + digest += binary.LittleEndian.Uint64(chunk[:8]) + ops++ + return nil + } for range totalItems { - err := readFunc(ring, func(chunk []byte) error { - digest += binary.LittleEndian.Uint64(chunk[:8]) - ops++ - return nil - }) + err := readFunc(ring, f) if err != nil { panic(err) }
That's a very sharp observation!
但是喜欢随地乱拉闭包的我也很想知道如何在没有参照物 baseline 的情况下单纯通过 perf/pprof 发现这样的性能问题。不要想得太复杂,用常识去思考就能发现。
随便做一次 perf record -g + perf report --stdio,发现热点栈是这样的:99.62% 0.00% purego_callback purego_callback_repro [.] runtime.goexit.abi0 | ---runtime.goexit.abi0 runtime.main main.main | --98.72%--main.consumeCallback2 | |--79.03%--runtime.newobject
稍微敏锐一点应该都能注意到那个 80% runtime.newobject 不对劲,用 gdb disas/m 一下 main.consumeCallback 可以看到:0x000000000049cb68 <+104>: call 0x413f00 <runtime.newobject> 0x000000000049cb6d <+109>: lea 0x14c(%rip),%rcx # 0x49ccc0 <main.consumeCallback.func1>
说明确实是每次循环都创建了闭包。
但是把闭包移出循环之外,再做一次 perf record,发现依然有 80% 的 runtime.newobject
再用 gdb 看一次,发现循环里还有另一个闭包:0x000000000049cbc0 <+192>: call 0x413f00 <runtime.newobject> 0x000000000049cbc5 <+197>: lea 0x94(%rip),%rcx # 0x49cc60 <main.consumeCallback.readFunc.readWithPoll.consumeCallback.readFunc.func2.func3>
这个闭包看名字就知道是来自:func readFunc(ring eventRing, f func(chunk []byte) error) error { return readWithPoll(func() error { return ring.readRecordFunc(func(chunk []byte) error { return f(chunk) }) }) }
想办法把这个闭包初始化 hack 掉,发现把 ring 显式传入而不是 capture、并且直接 forward closure 而不新创建 closure 就可以了:@@ -24,12 +24,12 @@ func (r *Ring) readRecordFunc(f func(chunk []byte) error) error { return f(r.data[:chunkBytes]) } -func readWithPoll(read func() error) error { +func readWithPoll(ring eventRing, read func() error) error { return read() } func readInto(ring eventRing, rec *[chunkBytes]byte) error { - return readWithPoll(func() error { + return readWithPoll(ring, func() error { return ring.readRecordFunc(func(chunk []byte) error { copy(rec[:], chunk) return nil @@ -38,10 +38,8 @@ func readInto(ring eventRing, rec *[chunkBytes]byte) error { } func readFunc(ring eventRing, f func(chunk []byte) error) error { - return readWithPoll(func() error { - return ring.readRecordFunc(func(chunk []byte) error { - return f(chunk) - }) + return readWithPoll(ring, func() error { + return ring.readRecordFunc(f) }) }
这下性能直接提升了十倍,从 40 Mops/s -> 400+ Mops/s,看 perf record 里也不再有 runtime.newobject,全是干净的业务代码栈:|--97.11%--main.main | | | |--94.43%--main.consumeCallback | | | | | |--48.08%--main.(*Ring).readRecordFunc | | | | | | | --33.64%--main.consumeCallback.func1
我觉得教训还是比较深刻的,我之前确实不知道 go 闭包有这么悲痛的性能问题,真就随手 closure。但 perf 方法论依然可以让我们在不具备相关知识储备的情况下重新发现这个问题,perf 好! - 才知道天天疯狂蒸馏蒸馏蒸馏的。。。蒸馏是这么回事儿么?
才知道搞这个的和小猫补光灯是一个人
啊啊啊啊啊啊啊啊 - 川青铁路尖扎黄河特大桥“8·22”垮塌事故调查报告,经青海省政府常务会议审议通过公布。
现场16人,最终找到13人遇难、3人失联。
事故起因是:临时扣塔中斜拉扣挂系统的分配梁由两个节段用螺栓连接而成,使用了强度劣于国标27%、螺纹长度劣于国标20%的劣质螺栓;分配梁制作安装由临时招揽的劳务队伍完成,未按设计和规范要求开28mm螺栓孔,现场安装时因无法对齐而随意扩孔;主桥合龙前对西宁岸扣塔4号扣索实施第二阶段张拉后,分配梁承受了施工全过程的最大荷载,劣质螺栓超过承载极限断裂,导致斜拉扣挂系统整体失效,主跨钢桁拱结构和桥面结构突然失去扣索拉力而迅速垮塌。
中铁大桥局指定电商平台“鑫方盛”对供货商除提点12%外“什么都不管”。供货商事故后用美图秀秀制作产品质量保证书,有明显错别字,提交给调查组。
(应急管理部) -
- 一觉醒来发生了什么 04 月 09 日
#Daily
2026 年 4 月 9 日
🌍 资讯快读
1、国务院国资委新设境外国资工作局
https://www.jiemian.com/article/14222739.html
2、国家体育总局游泳中心就全红婵等跳水运动员遭受网暴一事发布声明
https://www.jiemian.com/article/14221397.html
3、腾讯上线首个浏览器“龙虾”QBotClaw
https://www.jiemian.com/article/14221027.html
4、严惩“机闹”等犯罪,两高发布司法解释
https://www.jiemian.com/article/14220094.html
5、DeepSeek 上线专家模式
https://www.jiemian.com/article/14218983.html
👬 即刻镇小报
1、毛绒公仔三四只
https://m.okjike.com/originalPosts/69d61827f8e5787b6ff8dc2c
2、张雪和某造车大佬都证明了
https://m.okjike.com/originalPosts/69d5ff5d9f3cd84f659a3b59
3、通过 Claude Code 实现了微信群聊天自由
https://m.okjike.com/originalPosts/69d538f49f3cd84f65883366
4、大家知道了他的事情了吗
https://m.okjike.com/originalPosts/69d260155effd6c397421dbf
今日即刻镇小报内容来自 @油百万 @CEO 来信 @刘飞 Lufy @黑米 HeeMi ,感谢以上即友的创作与分享。 -
- 今天你又TACO了吗?
把画K线的神,蒸馏成SKILL。让他来告诉你,这次会不会TACO。
进入网页实时获取最新TACO概率:https://trump.kirinjin.com
获取SKILL:
github.com/KirinJin2046/trump-skill - Cloudflare 计划到 2029 年全面实现后量子加密
#加密技术
Cloudflare 宣布它计划加快速度提前到 2029 年全面实现后量子加密,原因是最近的两项研究显示破解现有加密算法所需的量子比特规模比预期的要少得多。IBM Quantum Safe CTO 认为最快到 2029 年量子计算机就能对高价值目标进行破解(即所谓的 moonshot attacks)。Cloudflare 称,它在 2014 年开始免费提供通用 SSL 证书,2019 年开始准备迁移到后量子加密,2022 年为所有网站和 API 启用了后量子加密,目前逾 65% 的 Cloudflare 用户流量已使用后量子加密。
https://blog.cloudflare.com/post-quantum-roadmap/
https://www.solidot.org/story?sid=83945 -
- “FlamingChina”自2月起兜售国家超算天津中心的10PB数据,样例内容包括钻地弹打击海马斯和航母的仿真研究等。
其接受网安研究者Marc Hofer访问时称:侵入方式是通过被攻破的VPN网域控制器。数据下载和存储利用了一个大型的botnet肉鸡网络以逃脱风控,总共花费约6个月时间。目前(3月25日)他还没有将泄露数据售出,但正在与多方进行谈判。这些说法外界尚无法验证。
(CNN) -
- Gemma-4-31B-JANG_4M-CRACK 去除安全限制的越狱版本
https://huggingface.co/dealignai/Gemma-4-31B-JANG_4M-CRACK
https://fxtwitter.com/outsource_/status/2040605292971315328