想知道谁在裸泳吗?
1949年,杨振宁在芝加哥发现报纸刊登了一种填字游戏,分数最高的解谜者可以拿到5万美元的奖励。他和其他4名同学很是心动,凑了17美元报名费参加比赛。

一个月后,报纸告诉他们得了第一名,但还有并列第一的人,因此需要解一个更大的谜分出胜负。

但此时杨振宁已经到了普林斯顿做博士后,5名同学只能通过远程电话分工。杨振宁负责每天在学校的24小时图书馆借用一本大字典,穷举了所有符合条件的填字单词,为了5万美元的奖金,这样连续熬夜了一个礼拜。

有一次工作到后半夜,天都快亮了,实在很困,于是步行回到借宿的房子。

他在门口拿起刚寄到的一本纽约时报,进到客厅坐在椅子上打开翻阅,只见封面大字写着:“汤川秀树获得1949年物理学诺贝尔奖”,他突然愣住,一个内心的声音在脑海深处质问:

“杨振宁,你现在在干嘛?”

——2005年杨在上海交通大学的分享会提到的一件小事。

by @哈雷Halley #你不知道的行业内幕
既然很多即友想要听SPA测评和指南,那么我就根据我最近几年的经验说一下,如果有不对的多多包涵。

1,目前全国足浴店(门面)基本正规,但是每个城市都有几家有后台和背景的可以开92。

2,正规SPA(手法型)消费在150-300之间,价格和技师颜值绑定。某团和某音上面很多,随便找。

正规足浴一般就是几十块要一百多。如果是大城市,则会有大几百块的“商务足浴”,大概就是你读书的时候,学校里的班花校花穿着旗袍什么的给你洗脚。(正规)。

3,除了手法,再高级一点的则是“柔式”。柔式其实只能算是擦边,主要是“舒缓身心”。

一般做柔式的都是20多的年轻女技师,纤纤玉手触摸你的皮肤甚至是有意无意的碰触敏感部位。客人揩油也是很普遍的情况,但是由于不做“大活”,这种情况非常普遍,警察也不管。
但由于客单价高,往往成为一家足浴店主要的收入来源。

这个柔式的价位就比较高了,毕竟是出卖色相。不同的技师效果非常大。一般加店里的小哥可以朋友圈选妃。

4,至于很多狼友关注的打X机,这个不展开,如果没有当地熟人带,一般的店是不会主动推销的。(违法)现在国内严打的厉害,国内游南东莞北长春,结果今年长春也被扫光了。

以前东三省说是非常发达的产业,现在也几乎销声匿迹,所以我们才会在南方看到越来越多的东北技师。

而且,就算是有背景,SPA不可能开到92以上的大活,如果有人给你推销说冲卡可以XXX,都是骗子。

所以,现在全国除了SPA之外,还涌现出两大既不违法又擦边的活儿,就是女仆店和台球厅等等,这里面水也很深。

很难想象,稍微好的一点的女仆店,老板的收入可以到3-5万元一天,至于旅游陪玩什么,这个就不展开了。

by @Akira神小狼 #你不知道的行业内幕
简单聊聊国庆吃的屎吧

首先明确下需求,我们要监控哪几个指标

1. RTO:TCP 连接的 RTO ,TCP 的超时重传的阈值,具体可以参见[RFC 0793](https://tools.ietf.org/html/rfc793) 和 [RFC 6298](https://tools.ietf.org/html/rfc6298)
2. 发送队列和接收队列长度
3. TCP 慢启动等指标

而且一个很核心的需求还是在于说,我们需要以 进程 为粒度去做 Metric 的 Group By,细化下来的可以有这样的效果

1. 单个进程的所有连接平均的 RTO 等指标
2. 单个进程Source-Target连接的 RTO 等指标

这个需求看起来可能会很无从下手,但是内核实际上是已经暴露出 metric 来供 Agent 采集了的

1. 对于 IPv4 连接,内核将 Metric 输出到 /proc/net/tcp
2. 对于 IPv6 连接,内核将 Metric 输出到 /proc/net/tcp6

不过这里要注意的是,官方已经不推荐利用 /proc/net/tcp 来获取连接级别的 metrics ,建议使用 [netlink](https://man7.org/linux/man-pages/man7/netlink.7.html) 来获取对应连接的 metrics

在目前输出的 metrics 中,已经包含了一些关键的指标

1. 连接状态
2. 本地端口,地址
3. 远程端口,地址
4. 接收队列长度
5. 发送队列长度
6. 慢启动阈值
7. RTO 值
8. 连接所属的 socket 的 inode id
9. uid
10. delay ack 软时钟

具体可以参见 [proc_net_tcp.txt](https://github.com/torvalds/linux/blob/v4.10/Documentation/networking/proc_net_tcp.txt)

所以根据目前的一些指标,我们通过 inode→process 这一样一个路径便可以实现根据进程为粒度来对内核输出的 metric 进行二次聚合

但是这样做的弊端也很明显

1. 内核直接提供的 metric 信息还是太少,一些关于 RTT,SRTT 这样的指标还是没法获取,也没法获取 SACK 等一些特定事件(虽然走 netlink+tcp_diag) 能获取到一些信息,但是还是相对有限
2. 根据内核输出的 metric 无论是读文件,还是 netlink 轮询,都存在的问题是实时性和精度的问题,换句话说,我们在不考虑精度的情况下可以去做这方面的尝试
3. 如果是读文件,因为全局同一个 network namespaces 下都会写同一个文件,如果我们要强行去通过 [inotify](https://man7.org/linux/man-pages/man7/inotify.7.html) 来监听文件变化来做实时处理得话,首先能否实时处理还是一个问题,其次 inotify 给整个系统带来的开销还是不小的(在频繁变动的情况下)

所以如果有高精度的监控需求,可能还是优先考虑需要在协议层做一些手脚,在有包传输/连接变动的时候,触发特定的事件回调来做

目前一些能监控进程级别连接状态的工具,如 [nethogs](https://github.com/raboof/nethogs) 是依赖 [libpcap](https://github.com/the-tcpdump-group/libpcap)(这货也是 tcpdump 的核心)来根据包传输,连接建立等事件发生地时候触发特定的处理逻辑。而 libpcap 是基于 BPF (应该是没扩展之前的 cBPF)来在内核中打点做协议栈监控

所以考虑后续其余的一些自定义的监控的话,估计还是会考虑基于 eBPF 来做。不过估计不会像 Cilium 那种直接做一套全家桶。可能更类似于头条落地的 Sysprobe 那种专注于系统监控的东西。 RFC 6298: Computing TCP's Retransmission Timer
分层和解耦对我的诱惑太大了, 最近写业务有一些想法.

## UI -> App

比方说一个服务有两种协议 http 和 grpc, 再加上一个 cli 吧, 算是三种完全不同的 UI 层了, 共享同一个 App 层的函数:

type App interface {
    func CreateInstance(name string, count, memory, cpu int, network, podname string, dns, env []string) *Instance
}


这个函数的参数已经够多了, 理论上来说, 我需要用一个 struct 来统筹一下, 比如叫 CreateOptions 的类型, 不过最核心的问题是, 这个 CreateOptions 类型在哪一层?

如果在下层 Model, 属于建模的一部分, 那么模型泄漏了, App 层知道得太多了; 如果放在当前 App 层, 那么下层又会依赖上层, 下层对上层的非接口耦合又让我感到不适, 依赖倒置原则说的可是接口.

当然直接使用领域模型的好处也是显然的, 简化参数就不说了, 首先我们有了更可靠的类型检查, 其次对于返回类型更加容易.

来说第二点, 看上面的代码里返回的是 *Instance, 其实就是模型泄漏了; 但是如果你真的要返回一个有信息量的东西而不仅仅是 ID 什么的, 也不是 mapstringinterface{} 这种不反射都不知道怎么遍历的东西, 那么工作量一下就大起来了.

第一种做法, 返回接口, 这种接口取决与更上层 UI 的使用; 比方说我们有两个 UI, 一个是 http 返回 JSON 一个是 grpc, 那么我们根据业务把 UI 层感兴趣的字段抽出来, 实现一个 interface:

type InstanceProvider interface {
    ProvideID() string
    ProvideStatus() string
}


这样这个 App 层的函数就变成了:

type App interface {
    func CreateInstance(name string, count, memory, cpu int, network, podname string, dns, env []string) InstanceProvider
}


注意这时候虽然下层 App 依然要依赖上层 UI 定义的接口 InstanceProvider, 但是这是符合依赖倒置原则的, 没有任何的硬耦合.

然后 UI 层就可以放肆地调用接口定义的方法来填充自己的 Presentation Model, 而不用知道调用的真实的类型:

func (ui *UI) CreateInstance(w http.ResponseWriter, r *http.Request) {
    provider := ui.app.Create(r.FormValue("name"))
    model := newHTTPPresentModel(provider)
    fmt.Fprintf(w, model.toJSON())
}

grpc UI 就不写了, 类似.

要注意 App interface 的定义也是在 UI, 而实现是在 App 层, 这是标准的依赖倒置, 就不说了.

另一种做法可能是传入一个接口对象, 比如叫 InstanceInterest:

type InstanceInterest interface {
    InformID(string)
    InformStatus(string)
}


然后传入 App 的函数:

type App interface {
    func CreateInstance(name string, count, memory, cpu int, network, podname string, dns, env []string, interest InstanceInterest) error
}


在 App 层最后调用 InstanceInterest 的方法来通知上层; 此时的 App 的类型依然没有模型泄漏, 耦合也是下对上的接口, 很好.

我个人更倾向方案一, 方案二的这种 value-result 模式太 C 了; 不过如果真的没那么介意模型泄漏的话, 也是可以忍受 App 层类型直接使用领域模型, 这里讨论的是"如果我一定不使用领域模型"怎么办.

## App -> Model

App 作为 Model 的客户端应该是很轻的一层, 但是我的主要问题是事务.

比方说具体的业务是要通过 Kubernetes SDK 去创建 Nginx, 同时管理好自己的元数据, 那么至少有两种流派:

第一种是先做事, 再创建元数据:

func (a *App) CreateNginx(name string) NginxProvider {
    virtualization, err := a.orchestrator.CreateVirtualization(...)
    defer func() {
        if err != nil {
            a.orchestrator.RemoveVirtualization(virtualization)
        }
    }()
    err = a.store.Save(virtualization)
    return virtualization
}


为了实现事务, 必须用 defer 处理"创建好容器但是写元数据失败"的情况; 当业务恶心的时候, App 层的实现简直不看入木.

或者, 第二种我们先写元数据:

func (a *App) CreateNginx(name string) NginxProvider {
    nginx := newNginx(name)
    a.store.Save(nginx)
    a.postCreateNginx(nginx)
    return nginx
}


这时候我们先建模, 上来先创建一个内存对象 nginx, 然后先存元数据再说, 最后再操作副作用.

如果我们再把 postCreateNginx 扔到单独的 goroutine 运行, 然后定义 nginx 对象的生命周期, 那就太美好了:

func (a *App) postCreateNginx(nginx) {
    if err := a.orchestrator.CreateVirtualization(nginx); err != nil {
        nginx.UpdateStatus(Created)
    } else {
        nginx.UpdateStatus(CreateFailed)
    }
}


有限状态机可以搬出来了, 这时候事务已经被压缩到最小化, 你发现我们没有 defer 处理回滚, 因为事务只有一件事"写元数据", 而创建容器是单独的后台运行的, 运行后无论成功失败都记录到元数据里, 如果本身要做的事情特别多的话, 定义生命状态周期, 分步进行, 记录状态, 比一个巨大的事务可控得多.

而对上层和客户来说, 如果有一个 web ui, 这种异步模式也友好得多, 用户创建后能立刻看到自己创建的东西和状态, 而不是等浏览器响应等个两分钟, 都不知道是网络问题还是什么问题, 也不敢刷新怕重复创建.

DDD 里反复强调小聚合, 多做最终一致性, 这里也能有体现.

而且 App 层也会变得特别简单, "express user story", "simple invocations" 都能得以实现.

要是再 DDD 一点的话, 这里该上领域事件了, 或者 Event Bus, watever, remote 地处理的话, 那整个架构又可以 FaaS 化, 因为 event 驱动本身就很好 FaaS 化, 加上每个 event 的事务单一, 对于失败的创建, 无论是人工触发补偿或者回滚都没问题, 或者有有个 event center 做自动补偿回滚; 不过无论哪样, 我们的事务是能保证的, 也就是说不会出现 dangling container (容器在跑了但是没有记录下元数据) 或者 empty instance (元数据记录但是容器没有), 或者是一失败就 cascade delete 把啥都删了你都不知道怎么 debug; 精细化的生命周期管理, 小事务小聚合, 不管怎么做都好.

from https://gist.github.com/jschwinger23/38d8b5c7d35ba0b8bf58564357f8f448#file-layer-and-decouple-md
说一个最近遇到的坑吧

我们一个测试服务,Spring Cloud 的,在下线后,节点无法从注册中心摘除,然后百思不得其解,最后查到问题,,

本质上是这样,POD 被摘除的时候,K8S Scheduler 会给 POD 的 ENTRYPOINT 发一个 SIGTERM 信号,然后等待三十秒(默认的 graceful shutdown 超时实践),还没响应就会 SIGKILL 直接杀

问题在于,我们 Eureka 版的服务是通过 start.sh 来启动的,ENTRYPOINT ["/home/admin/start.sh"],容器里默认是 /bin/sh 是 fork/exec 模式,导致我服务进程没法正确的收到 SIGTERM 信号,然后一直没结束就被 SIGKILL 了

解决方法其实很简单在 Deployment 上加了一个 lifestyle 中 pre stop 的hook。

pid=$(ps aux | grep spring | grep -v grep | awk '{print $2}')
kill -TERM $pid


然后在框架里捕获事件,在Eureka 上下线

当然在容器中的东西,还是建议用 exec 来做启动。。。不然后患无穷。。
今天重装了 Windows 11 IoT LTSC,很适合养老,新的系统我一般会:

- 安全地干掉 Windows Defender
- 关闭 SmartScreen
- 删除 Edge 浏览器
- 更新 Edge Webview2(很多软件都需要这个)

这个 开源项目 收集了 Windows11 设置、优化和一些脚本,禁用WindowsDF 只推荐联想那个小工具,最安全,不影响系统更新和完整。截图的工具叫做 Windows11 轻松设置,Google 一下就能找到。

via: @dejavuBlog @dejavuGroup
你每天拼命刷的Agent资讯,99%都在浪费时间。

几天前我听了一场AI圈大神Karpathy的分享,收获很多。

先说这个人。Karpathy是AI圈的传奇人物之一,OpenAI的创始成员,帮马斯克打造了特斯拉的自动驾驶系统。可以说,地球上没几个人比他更懂AI。

但就是这样一个顶级玩家,在这场分享里泼了AI的冷水,现在所有媒体都在吹“Agent元年”,可现实是,我们离那个能真正帮你干活的Agent,还远得很。

为什么?因为现在的AI,根本不智能。

Karpathy提了个特别有意思的比喻。他说,人们总喜欢把AI比作动物,觉得它能像动物一样学习、进化、拥有智慧。可这是个巨大的误会。

他举了个例子。

斑马,生下来几分钟就能跑,那是几十亿年进化写进DNA的结果,是本能。动物的智能,是大自然这台超级计算机,花无数世代打磨出来的“出厂设置”。

而AI呢?

我们只是把互联网上的文字、图片、代码统统喂进去,然后训练出一个能模仿人类表达的模型。

它没有真正的记忆,它的所有“知识”,都只是对人类数据的模仿。

所谓的“预训练”,本质上是我们工程师粗糙模仿进化的一种办法。跟自然界的鬼斧神工比起来,这种方法既笨又短视。

这也解释了,为什么今天的AI会给人一种看起来聪明、用起来不聪明的感觉。

你给它一段文字,让它总结,它做得很好。因为信息就在上下文窗口里,它可以精准地抓取内容,这个过程就像人类的短期记忆。

可当你关掉对话框,第二天再问同样的问题,它就全忘了。因为它没有把短期记忆存进长期记忆的机制。它所谓的“长期记忆”,只是那几千亿个固定的参数。

而在人类大脑中,“海马体”会在睡眠时把当天的记忆整理、归档、保存。AI没有这一环节,所以你没法“教”它任何东西。每次对话,都是从零开始。

除了记不住,它还学得很笨。

Karpathy分享了他自己创业做nanochat(一个轻量版ChatGPT)的经历。

他本以为AI代码助手能帮上大忙,结果发现几乎没用。

因为他在做的是一个完全新的产品,很多代码网上根本没有。AI助手只会生搬硬套它见过的标准答案,比如非要用某个熟悉的框架,结果搞得一团糟,还常常调出过时的API。

这说明,AI擅长做模式化、可重复的事情,但一旦碰到真正需要创造力的场景,那些世界上从未出现过的内容它就完全无从下手。

更关键的问题,在于它的学习方式。

我们都听过强化学习(RL),AlphaGo就是靠它击败人类的。

可Karpathy说,强化学习的效率其实极低。

他举了个通俗的例子。

你让AI做一道数学题,它写了一百步,最后你只告诉它:对,或者错。

如果答案对了,它就会把那一百步都当作“正确”,权重全部调高。可事实上,其中可能有一半都是瞎蒙的。

久而久之,它的学习过程就充满了噪音。

他还讲了一个真实的笑话。

有一次,一个AI系统为了拿高分,学会了输出一串乱码“dhdhdhdh”。

因为它的“考官”是另一个AI,而这串乱码刚好触发了评分系统的bug,被误判为满分。

这意味着,AI根本不理解什么是对。

这就是我们今天面对的AI真相:记性差,学得慢,没创造力。

所以Karpathy才说,别信什么Agent元年。

现在的AI,离真正的智能还差几个数量级。

他在特斯拉时学到一个特别有启发的原则,叫“The March of Nines”。

意思是:要做出一个90%准确率的自动驾驶系统不难,但从90%提升到99%、再到99.9%、再到99.99%,每多一个9,你都要付出十倍以上的努力。

因为每一个9,代表你要攻克那些极端、罕见、复杂到几乎无法预料的问题。

而今天的AI,还远远停留在第一个9的阶段。

by @MemeInformation #科技圈大小事
深夜再碎碎念一下。“我不希望我自己成为很帅的人,没有存在感才是最好的奖励” 这并不是客套话,因为这是我觉得我应该成为的人
我一直认为 SRE 这个岗位,在老板认可你的价值的情况下(很庆幸我现在的团队和老板就是这样,他们高度认同感我存在的价值),是不应该有很强存在感的一个岗位。我的职责应该是去梳理风险,建立机制,而不是当来回救火的“孤胆英雄”
所以我在我这次的反思里有一点很重要的就是,我应该提前把为我自己准备的 SOP 变成面向全员的 SOP。
我入职以来其实一直在做的一件事就是帮助大家建立一些面对事故的处理机制。即便离开我,这套机制也能运转。在目前算是有一些效果
让我自己成为一个“可替代”的人,算是我自己的工作目标吧(
简单复盘一下 AWS 这次事件作为一个 AIGC Startup SRE 的一些操作吧,希望能帮到大家
从入职开始发现我们主要的集群在 USE1 之后,我就开始做一些准备了。
我主要做的事情有这几件事
1. 将我们核心的几个数据库做了多地的备份,形成了 USE1,Tokyo,SG 三地备份。这样在极端情况下,我们损失一部分数据,但是也能保证服务的继续
2. 将我们 SG 的测试集群从原本的 EC2 自己简单搭的 K3S,重构为了一个标准的 AWS EKS 集群。这样可以在灾害时刻快速 warmup 一个集群,复用 AWS 已有组件。将 manifest 变更的代价降至最小
3. 简单梳理了一个 SOP,包含用户公告,DNS 切换,封版等事宜

回到今天,我大概在 AWS 事故发生后的10min,发现了我们容器中有新的 Pod 无法 setup。

在和 AWS 支持确认是 USE1 的问题后,我意识到 ECR 的事件必然关联其余事件,于是我就果断按照我自己规划的 Tier1 等级事件开始处理(对于 SRE 来说,这种事情宁可错,但是不能错过)

T+0 min,我发布了全员公告,开始进入紧急模式。我 setup 了一个全员公开会议。所有人员可以随时加入
T+2 min,我确认事件如我所预期的一样,在逐渐扩大,我发出了两个指令,1. 全线禁止任何代码合入/提交(主要是避免新创建资源会导致 Pod rotate 进而影响流量),2. 请运营同学准备公告
T+3 min, 我开始按照 SOP,开始进行数据库在 SG 区域的恢复,并且级联创建诸如 OpenSearch / Redis 等在内的依赖
T+5 min,我们开始正式的确认上下游依赖的具体问题,确认一个新上线的核心服务受到影响
T+10min,我们停服公告和其余服务的受影响公告发出
T+10min,我请另外两位同时协助 setup 新的 ECR 以及清理测试环境已有资源,并同步 CTO ,在极端情况下,我们可能会存在保体验,丢数据的决策。
T+15min, 我们最终确认目前已创建的资源以及流量入方向不会受到太大影响。切换方案挂起,但是我们继续准备相关资源
T+30min,我们第一个数据库恢复完毕
T+40min,我们第二个数据库恢复完毕
T+1h,我们所有关联的核心 infra,RDS/ES/Redis 都 stand by,并且按照生产架构设置主从等优化选项。同时我们也开始正在新的集群启动新的服务
所幸,最终 AWS 的 crash 没有影响我们全部服务。我们无须面对切换流量后复杂的数据修复工作
大概 T+2h 到 T+3h 后,我正式通报全员,紧急状态解除。为保险起见,今晚依旧对 feature 封版。

回顾整个事故,我还可以做的更多
1. 将我之前为自己准备的极端 case SOP,对全员公开。这样确保我即便不在线,也有人能接替我
2. 我们可以做一些提前的预先演练
3. 指令下达可以更果断一些

差不多就是这样,一点分享,希望能帮到大家
雷峰网对「外卖大战」的Q3阶段做了战报总结,我试着划一下重点:

- 阿里Q3外卖业务的亏损在350亿-400亿人民币之间,差不多是Q2亏损的2.5倍,数据披露于投资指引会,主要功能是吹风降预期;

- 9月开始各家平台都呈现出扛不住的退坡共性,补贴力度相较暑期档下降些许,但依然都没有撤退迹象,原本靠价格战受益最大的淘宝闪购又重新吐回了一些市场份额;

- 根据美团的说法,今年餐饮业堂食客单价已经被打回了2015年的消费水平,而「外卖大战」以来超过一半的增量订单是饮品,75%的增量订单低于15元,「是巨大的泡沫」;

(我看美团的意思还是在敲打阿里,认为阿里发动并升级补贴的做法是对市场稳定性的破坏。)

- 美团依然认为履约效率是自己的优势,内部数据显示,美团骑手的平均配送速度比竞争对手要快13%,「这是美团外卖十几年积累下来的最宝贵资产」;

- 下一步的竞争会转移到订单质量上,美团在大力推广加钱获得一对一急送的服务,同时让黑钻会员免费享用,做好消费能力偏高的那部分用户体验;

- 阿里也是一样,今年双11会把淘宝的大消费体系拉进来一起做,尤其是会员和88VIP作为高价值用户要重点服务,同时还有超过1亿人是在淘宝点过外卖但没进电商下过单的,也要发力转化;

- 好像没提到京东啥事儿。

by @阑夕ོ https://mp.weixin.qq.com/s/36KUDZceJMvRWLy1TD8gaw #科技圈大小事
《西贝谣》
一岁娃吃两岁菜,
冰柜锁住假新鲜。
防腐泡出“嫩”青菜,
化学熬成爱之汤,
国龙味靠香精忙。
祖传锅气早埋葬,
昔日绿叶今老赖,
预制流水称王牌。
西贝厨房后妈爱,
现炒招牌是电磁炉,
热完就说有锅气。
天天吃也不中毒,
六块鸡丁卖天价,
十倍利润往里加。
米饭盛出遗产价,
优惠券夜里作废,
降价幌子暗缩水。
韭菜专割粉丝腿,
病奶奶想尝口鲜,
奶娃张嘴喊“贝饭”。
舌尖沦陷全靠骗,
总说匠心不打折,
实则分量看不见。
顾客不过是韭菜,
老总台上笑开怀,
上市梦里永不衰。
死了都要摆姿态!
TikTok交易,到底发生了什么,又意味着什么?

2025年9月19日,随着中美两国领导人的直接通话,TikTok交易的前景日渐明朗。这项需要同时取得中美两国政府批准,旨在剥离TikTok美国业务的复杂交易正在积极推进中。最近网络上有相当多的关于这项交易的传闻和流言,以目前可以确证的信息来看,到底发生了什么,又意味着什么?

1. 到底发生了什么?

2025年9月14日至15日,中美两国经贸团队在西班牙马德里就TikTok问题进行了谈判。9月19日,两国领导人更是就相关问题进行了直接通话。

目前可以确认的是,尽管中美双方均承认就TikTok问题的解决达成“基本框架共识”,但在任何地方,双方都没有公布具体的交易细节。目前严肃媒体的报道无非是说,双方原则上同意字节跳动继续持股TikTok不超过20%的股份,包括Oracle、Silver Lake、和Andreessen Horowitz在内的美国财团将会持有剩余80%。Oracle将负责处理TikTok在美国的数据,TikTok的核心算法仍然归属字节跳动,但经中国政府批准后可以授权给TikTok使用。

本周五通话之后,中方释出的信息再次印证了这一点。中方再次重申其立场:(1)尊重企业意愿,乐见商业谈判,(2)解决方案需符合中国法律法规和利益平衡;(3)希望美国为中国企业赴美投资提供公平环境。

换言之,中方对目前已经达成的基本框架不持异议,但具体的商业条款还需要企业以商业谈判来确定。

这符合我对这类交易的预期。两国政府更可能从政府审批的红线和大框架入手进行磋商,不太可能代替企业介入具体的商业细节。以目前的谈判进度,在双方政府确定大框架之后,还需要由企业和投资者进行更进一步的谈判,确定具体执行办法。

因此,目前在网络上流传的充满各类细节的传闻,甚至到了哪个股东持有多少比例,董事会由几人构成等等,基本可以确认是没有根据的假消息。这类半真半假的传言,正是AI幻觉新闻的典型特征。

2. 接下来还会发生什么?
即便中美双方均同意字节跳动持股20%、美国投资人持股80%的初步方案,离真正落地还有很长一段距离。最关键的问题是,字节跳动目前持有TikTok的100%的股份,如何把它的股份从100%降到20%?

股权交易最简单直接的方式,无非转股和增发两种。转股即是美国投资人向字节跳动“买下”其持有的TikTok的股份,字节跳动将可以就此套现巨额现金或股票对价。而增发则是美国投资人向TikTok增资,以稀释字节跳动目前持有的股权比例。这两种方案的核心区别是,收款方到底是字节跳动,还是TikTok这家目标公司。仅此一事,就可能构成各方商业层面的核心争议。

除此之外,不论是增发还是转股,都涉及到TikTok目前的市场价和估值的问题。非常有意思的是,截止到目前的官方公开信息之中,都没有任何一方提到“钱”的问题。政府固然可以批准或否决交易方案,但真正出钱的还是以营利为目标的私营企业。卖方想多卖钱,买方想少出钱,都是合理的要求。因为价格谈不拢而失败的并购交易不在少数。

TikTok目前的估值约3300亿美元,草草按美国业务占TikTok 全球业务30%来算,交易额将会超过千亿美元。作为对比,马斯克买下推特总共只花了440亿美元。显然目前的估值是远远超出美国投资人的胃口的。那么到底钱怎么算?这可能也是另一个谈判的难题。

事实上,相较于简单的转股或增发,我认为TikTok更可能的交易方式是把它在美国的资产和业务单独剥离出来,注入到一家新公司,作为其持有不超过20%的股权的对价。而投资人以现金或股票对价等方式投入剩余80%,或者以混合对价的方式,部分资金支付给字节跳动,部分字节注入新成立的TikTok美国公司。

目前TikTok是一家全球运营的公司,如果要单独拆分美国业务,又会产生两个问题:第一,在TikTok紧密全球运营的现状下,剥离真的做得到吗?又需要多久才能完成算法、用户、平台的剥离?第二,在剥离所谓的“美国资产”的时候,到底哪些是投资人想买的资产,哪些是投资人不想要的?比如,TikTok在美国的员工,是否会归属到美国投资人愿意购买的“美国资产”的范围内?

当然,最终双方达成的方案可能不是一个一锤定音式的交易,也可能是有若干年的过渡期,通过股权信托或资产信托的方式,在若干个暂时性的安排之后,最终完成剥离。

3. TikTok交易意味着什么?

TikTok交易对国际政治、中国企业出海投资等等“大”的方面的影响,已有诸多文章分析,我不再赘述。我只提一点,有美国评论家说,是否会由此产生所谓的“TikTok模式”,让美国可以以类似方案处理其他在美国争议性的中国企业 —— 这是中国必须要小心应对的。

对于普通人,特别是对TikTok员工来说,有更多值得关心的问题。不论是以何种方式完成美国业务的剥离和出售,TikTok在美国的人员和管理一定会“大换血”。美国的劳动合同基本都是任意解除(at-will),公司可以随时解除与员工的劳动合同关系,而无需支付离职赔偿金。

特别是,许多互联网公司员工收入的大头是股票和期权,而不同公司的期权协议对于如何处理员工被动离职的情况有非常大的区别。有的协议更加倾向于保障员工权益,会特别约定,在公司整体出售或收购的情况下,员工尚未行权的全部期权提前到期,可以获得全部企业授予的期权。但也有的协议约定在类似情况下,公司可以用极低的价格回收员工期权,而无需给员工实质性的补偿。

总之,可以仔细看看期权协议是怎么规定的。

当然,还会有随之而来的签证问题。有的美国签证允许在和公司解除劳动关系之后更换雇主继续工作,有的美国签证是和单一雇主绑定的,一旦劳动关系解除就需要离开美国,这些都是员工个人需要考虑的。

除了员工之外,可以预期TikTok美国业务出售之后,新的管理团队对于目前电商、直播等业务的开展,很可能会有新的想法,也将会影响大量的以TikTok维生的中小商家。

每一个国家层面的重大协议,落到普通人的身上,就是这么一个个对每个家庭都很重要的“小”问题。

by @敏大是一只柯基 #科技圈大小事
国内政府经济决策部门有没有懂数据的,我觉得应该有,但懂数据的大概率没有话语权。最近的各种政策生动诠释了涸泽而渔,杀鸡取卵。

最近两个事情,一个是以前个独税收政策,也是无数自由职业者(按照云账户的统计过亿)的税收优惠全部取消;第二是增加社保基数。

我怀疑他们决策者是做的静态统计,这些钱是多少,现在增加政策能多多少收入,但这个算法,稍微懂一些经济学就知道是多么傻逼啊。

你收上来的是老百姓要消费的钱,这些钱是要流通的,现在即打压了消费潜力,也打压了个体创业欲望,企业用工欲望,连锁恶性循环。

数字是不能静态算的,要考虑交互影响,而且这个交互是长期的,持续的。

真以为老百姓家家户户都存着好多钱不消费是么,你天天统计存款总额,敢不敢统计一下存款分布呢!!!

最后说点大言不惭的话,如果我来做经济决策,当下最重要的是扩大底层的消费能力和消费欲望,扩大底层从业者的就业空间。

1,个人税收起征点提高,1万人民币起征,你可以总额到45%,但是税基和梯度上提,让低收入人群有钱消费,敢消费,能消费。

刮穷鬼没多少钱,而且败人品。

2,中小企业,新兴企业减免税。

抄新加坡作业都行。

新开设的公司,营收,利润低于一定数字的公司,酌情减免应纳税,规则简单点,但是可持续。要让小业主能活下来,有信心活下来。

别怕小业主不断开关企业薅政府羊毛,如果他们做不大,做不出品牌,只是为了活着,赚点小钱,薅点政府羊毛也没多大事。这点钱迟早还是会流进消费市场。

但凡想扩大经营,维系品牌,都会规规矩矩纳税的。

3,低收入社保补贴

政府提高社保纳税基数,但是低收入人群就业就会异常艰难。企业也会倾向于缩减招聘。

青年就业压力已经很大。

低收入阶层第一次就业,或长期失业后的重新就业,收入低于一定指标,在一定期限内,比如一年,社保政府可以补贴一半,和企业均摊。

让企业敢招人,让低收入年轻人更容易找工作。

甚至,低收入阶层在一定程度上的涨薪行为,企业可以拿这个涨薪幅度用来做税务减免。

提升基层的收入能力,这些收入绝大部分会流入消费领域,从而带动生产,就业循环,以及稳定社会情绪。

而这部分政府成本不会太高,但能够让消费正向循环起来,政府不会吃亏的。

别刮穷人的钱,收益太低,成本太高。
你真以为罗永浩赢大了?贾国龙输惨了? 时间放长点,真不好说。

其实罗已经有点怂了,他也不敢再把事搞大了,他其实开直播的时候已经开始往回找补,虽然看上去很强硬,但措辞已经往回找补了。

最近两年经商环境如何,餐饮环境如何,当老板的都知道,舆论环境如何,很多委屈不能说,不能解释。

在这个场景下,大部分同行老板,投资人,线下经营者,心里都会站在贾老板一边,只是不敢出声而已。

罗赢了么?公众情绪支持他,但是很多从业者默默心里记了一笔帐,是的,没人敢惹罗永浩,贾老板行动怎么看都很傻,但很多人心理有本帐,这些人,他们会用另一种方式做出选择。
我讲一个基本逻辑,在商业领域,如果一个企业的行为没有违法,没有欺诈,没有不当竞争,没有食品安全问题,那么它的产品好坏,价格高低,是要交给市场来判定。这是市场经济之所以有生命力的基础。

作为消费者,你当然可以用自己的行动投票,这是你的权力。

但某些人觉得,一个企业的产品我不喜欢,价格我不接受,就跳出来说政府该管管了,这是病!如果说的过分些,这是犯贱!今天政府可以因为A不喜欢B来管B,明天政府就可以因为C不喜欢A来管A。这些年,各种回旋镖,从来都不缺。

如果说一个中餐厅,做的难吃又死贵,材料还不新鲜,那我说,瑞士的中餐厅,有一个算一个,几乎都是。请问该谁管,该去哪里说理去。

接上面一条,大众的情绪就简单了,我消费不起,就是原罪。

多说几句

所谓预制菜根本就不应该构成一个问题,真正的问题是食品安全,食品安全有问题,政府管是应该的,合理的,也是必要的。食品安全没问题,是不是预制菜,该不该标注,要不要价格歧视,让市场去判定,政府管不着。

政府参与管制的结果就两条,第一是企业合规成本增加;第二是权力寻租空间增加;最后必然是回到胡主编常说的那句话,上面的决定是好的,都是底下执行坏了。

所有政策都有成本和收益,比如你说食品安全也会增加企业合规成本,也会增加权力寻租空间,但是这个成本是必要的,因为食品安全是真的影响每个人的健康和安全,需要企业重视,也要容忍一些必要的监管成本;但预制菜根本就不应该成为一个监管课题,有事说事,有食品安全问题的归食品安全这个口来管,没有这个问题的交给市场评判,这才是最清晰的逻辑。

什么事都求着政府管,今天直播间有人评论很对,这叫五行缺爹。
合理怀疑北美公司那么喜欢做
“那年今日”,“往日回顾”
这类的相册回忆
源于 月日年 格式排序的bug
例如:
0903-2025.jpg
0903-2024.jpg
0903-2023.jpg
0902-2025.jpg
广东汕尾陆丰市职业摄影师辛宏彪在拍摄银河时,偶然记录到概率小于万分之一的蓝色喷流闪电。
分享一个我最近刷到的AI在医疗领域非常有价值的案例。

前几天,浙江大学医学院附属第一医院和阿里巴巴达摩院发布了一个急诊AI模型,专门用来识别一种叫急性主动脉综合征的疾病。

这个病的名字如果你是第一次听的话可能不太熟悉,但它其实是急诊室里最让医生头疼的隐形杀手之一。
举个例子,假设一个人因为剧烈胸痛被送进急诊室,医生第一反应可能是心梗,毕竟心梗太常见了。

但如果这个人得的不是心梗,而是主动脉夹层呢?
这两种病的症状几乎一模一样,但治疗方法却完全相反。
心梗是血管堵了,需要用药物疏通;主动脉夹层是血管撕裂了,如果用了抗凝药物,反而会加速血管破裂。

这就是急诊室里每天都在上演的生死博弈。

你可以把主动脉想象成人体内最重要的高速公路,负责把血液从心脏运送到全身各处。
急性主动脉综合征,就是这条高速公路的路面突然出现了裂缝。血液在高压下不断冲击裂缝,就像洪水冲击堤坝的裂口,如果不及时修补,整个堤坝都可能崩溃。

具体来说,这种疾病主要包括三种情况:主动脉夹层、主动脉壁内血肿和主动脉穿透性溃疡。
其中最凶险的A型主动脉夹层,被医生们称为血管里的定时炸弹。每过一个小时,死亡率就增加1%到2%。48小时内如果没有手术,死亡率高达50%!

那为什么这个病会这么容易被误诊呢?
假设凌晨三点,一个中年男性因为剧烈腹痛被送进急诊。他说自己有腰椎间盘突出的病史,现在腰部和腹部都很疼。
值夜班的医生已经连续工作了十几个小时,面对这样的症状,第一反应很可能是:腰椎间盘突出急性发作。

于是安排了平扫CT,片子显示确实有腰椎间盘突出,病人被当作腰椎病患者留院观察。

7个小时后,病情急剧恶化,再做各种检查,才发现是B型主动脉夹层。
但因为耽误了7个小时,他的下肢和双肾已经因为缺血出现了坏死。

这不是个案,根据浙大一院的统计,在13万名胸痛急诊患者中,有48.8%的AAS患者在初诊时被遗漏了。
对急诊医生来说,心梗病人见得太多了,主动脉夹层却相对少见。当看到胸痛症状时,大脑会自动调取最熟悉的诊断模式。

同理,主动脉覆盖范围太广了,从咽喉到尾椎,从腹部到背部,任何地方的疼痛都可能是它在作祟。
一个腹痛的病人,医生更容易想到胆囊结石或肠胃炎;一个背痛的病人,更容易被诊断为腰椎问题。

换句话说,就是这个病太会伪装了!

那AI又是如何破解这个难题的呢?这就要说到达摩院团队的巧思了。

他们发现了一个关键信息:超过50%的胸痛患者在急诊时会做平扫CT。
注意,是平扫CT,不是造影CT。

这两者的区别在哪?
造影CT需要注射造影剂,能清楚看到血管,但有过敏和损伤肾脏的风险,而且很多基层医院没有这个条件。平扫CT就像普通X光的升级版,便宜、快速、无创,县医院都能做。

传统观念认为,平扫CT看不清血管,对心血管疾病诊断价值不大。
但达摩院团队不这么想,他们用了三年时间,训练AI在平扫CT上识别主动脉的细微变化。

具体来说,AI会在几秒内完成三件事:
1. 自动勾画出主动脉和血管腔的轮廓
2. 判断血管壁有没有结构异常
3. 如果发现问题,立即向医生弹窗报警

这个过程就像给医生配了一个永不疲倦的助手,更重要的是,这个助手的视力超乎想象。

在对比实验中,低年资医生的诊断敏感性显著低于AI,即使是高年资医生,在AI辅助下诊断水平也有明显提升。

理论说得再好,关键还是要看实战效果。
团队把AI模型部署在上海一家三甲医院的胸痛中心,进行了两个月的临床测试。
在15584名胸痛患者中,AI精准识别出21例AAS患者,敏感性达到95.5%,特异性达到99.4%。

敏感性95.5%,意味着100个真正的AAS患者,AI能找出95个;特异性99.4%,意味着AI很少会冤枉正常人。

更关键的数据是时间,这21名患者从入院到确诊,平均只用了1.7小时。
而根据国际研究,欧美国家的中位确诊时间是4.3小时,平均缩短2.6小时,意味着死亡率降低了至少5%。

其中有个案例特别典型。
一个43岁的患者因为"上腹部钝痛12小时"入院,医生初步判断是胆囊结石,开了上腹部平扫CT。

就在这个节点,AI从CT影像中发现了主动脉夹层的征兆,立即报警。医生马上安排血管造影确诊,整个过程只用了1.6小时。

如果没有AI,这个患者很可能被当作胆囊结石收治,等到血管破裂才发现真相。

目前,浙江已经有10家医院部署了这个系统,包括浙大一院这样的顶级医院,也包括衢州市柯城区人民医院这样的基层医院。

这里有个细节特别值得关注,浙江推行医共体模式,意思是大医院和基层医院形成联盟,共享医疗资源。
很多乡镇卫生院虽然有CT机,但没有资深的影像科医生。
他们的做法是,病人在乡镇拍片,影像实时传输到上级医院,由那里的医生出报告。

这意味着什么?
意味着部署在10家医院的AI,实际上通过医共体网络,覆盖到了数百家基层医疗机构。
一个农村的大爷,在家门口的卫生院拍个CT,就能享受到和大城市一样的AI诊断服务。

医疗AI的故事,本质上是关于时间的故事。

对AAS患者来说,每一分钟都在与死神赛跑,1.7小时和4.3小时的差别,可能就是生与死的距离。
对急诊医生来说,面对汹涌的患者,时间永远不够用。
对基层医院来说,培养一个能识别疑难杂症的医生,需要十年时间。

而AI改变的,就是这些时间尺度。
它让诊断从小时缩短到秒,让经验积累从十年压缩到瞬间,让先进技术从大城市扩散到乡镇只需要一根网线。

当然,AI也不是万能的,它不能代替医生的临床判断,不能安慰焦虑的家属,不能在手术台上挽救生命。
但它可以成为医生的第二双眼睛,在最容易被忽略的地方,发现最致命的危险。

技术普惠,或许就是这个意思:让每个生命,无论身在何处,都能被同等地珍视和守护。

by @西里森森 #科技圈大小事
中国能直飞美国的城市:
北上广一天十几班
成都厦门一周三班 LA,武汉一周两班 SF,重庆一周一班 SEA,深圳一周一班 LA。其他没了。
p.s. 这个问题 GPT5 thinking 和 Gemini 2.5 Pro 全军覆没,又找到一道好测试题。

by @志达 #无用但有趣的冷知识
前阵子有人跟我说他自认为“也算努力上进,但还是感觉一事无成,钱不够花,过得没有意义”,“像是努力奔跑,却又在原地踏步”。他表示自己“上班也算认真负责,下班陪伴家人,平时不玩游戏、不刷短视频,甚至很少看电影,但凡有点时间都在阅读”。

我问他:你努力的目标是什么?他说是“有一定的社会地位和拥有一定的资源,可以做点自己想做的事情,并为了小孩以后的发展,可以提供更大的支持。”

可能不少人都和他有类似的困惑。所以我让他思考的问题可能对大家也有帮助:“你认为(上班认真负责,下班陪伴家人、平时不玩游戏、不刷短视频、很少看电影,有点时间都在阅读)就能实现(有一定的社会地位和拥有一定的资源,可以做点自己想做的事情)吗?”

他这时候才恍然大悟,意识到这两者之间没有必然的因果关系。

我经常说的一句话是“请用一个包含‘因为’‘所以’的完整句子把你得出结论的逻辑写出来”。有趣的是,一些人甚至会被这句话触怒,虽然他们也不知道自己为什么生气。用模糊的语言进行模糊的思考不仅是很多人的日常习惯,也是回避现实的方式。而用精确的语言逼着自己面对现实,往往会带来痛苦。

我们小时候会听到很多“努力学习将来就能如何如何”的话。很多人长大后自己也会发明一些同样模糊的逻辑说给自己听。但宇宙不是这样运作的。

如果你要去南极,应该怎么办?“坐船可以去南极”,是这样吗?那么你努力地坐船,在公园的湖里坐船,在长江上坐船,坐了很多船,还是没有到南极,这又有什么奇怪的呢?你得查从哪儿坐什么船才能去南极。当你知道从乌斯怀亚坐邮轮可以到南极,然后再看怎么去乌斯怀亚。当你知道可以从布宜诺斯艾利斯去乌斯怀亚,那么再看怎么去布宜诺斯艾利斯。每一步都准确清晰,最终目标才有可能达成。

via tombkeeper的微博
Back to Top