国际政治
2026-11-15
2026年11月,亚太经济合作组织(APEC)第三十三次领导人非正式会议将在中国深圳举行。这是中国继2001年上海、2014年北京之后,第三次举办APEC领导人会议,也是时隔12年再次成为这一重要国际经济合作机制的东道主。
APEC成立于1989年,最初由澳大利亚、日本、美国等12个经济体发起,旨在加强亚太地区经济合作,推动贸易和投资自由化。经过多年发展,目前APEC已拥有21个成员经济体,包括中国、美国、日本、俄罗斯、澳大利亚、加拿大以及东南亚多个经济体,还包括中国香港和中国台北。
PS:中国于1991年11月与中国香港、中国台北同期加入亚太经济合作组织(APEC)。
APEC成员覆盖全球约六成GDP和一半左右的国际贸易,是世界上最重要的区域经济合作机制之一。其成员既包括美国、日本等发达经济体,也包括中国、印度尼西亚、越南等发展中经济体,经济发展水平、政治制度和文化背景存在较大差异。
与欧盟不同,APEC并不是一个具有超国家权力的政治经济组织,也没有建立统一市场、共同货币或统一关税体系。它更像一个开放的经济合作论坛,主要通过领导人会议、部长级会议和各类工作组开展协商与合作。
APEC最重要的特点是自愿、协商一致和非约束性。成员经济体通过自主承诺推进合作,不需要签署具有强制约束力的统一条约。这种机制降低了不同经济体之间的合作门槛,也使APEC能够容纳政治制度和经济发展水平差异较大的成员。
APEC的核心工作主要包括三个方面:一是贸易与投资自由化,降低关税和非关税壁垒,促进商品、服务和资本流动;二是商业便利化,简化海关、通关、人员往来和跨境贸易程序;三是经济技术合作,帮助发展中经济体提升基础设施、数字化和产业发展能力。
此外,APEC还涉及数字经济、人工智能、能源安全、粮食安全、绿色发展和供应链韧性等议题。随着亚太地区成为全球经济增长的重要引擎,APEC也逐渐成为各经济体协调经济政策、讨论区域发展方向的重要平台。
APEC并不能解决所有国际政治和经济分歧,但它为不同国家和地区提供了一个持续对话、寻找共同利益的机制。在全球贸易摩擦和地缘政治竞争加剧的背景下,维持亚太地区的经济联系与合作,对全球经济稳定具有重要意义。
政治 台湾
2026-11-14
2025年12月,行政院长卓荣泰首次拒绝副署立法院三读通过的《财政收支划分法》修正案。此后,行政院进一步扩大不副署的使用范围。截至2026年8月,已经有7项立法院通过的法律遭到拒绝副署。
这意味着,即使在野党在立法院取得多数,通过法律,也可能因为行政院长拒绝副署而无法公布生效。问题在于,台湾宪法原本设置了覆议、不信任案等行政立法冲突解决机制,行政院能否通过不副署形成事实上的第二次否决权,存在重大宪政争议。
这场冲突表面上是行政院与立法院的政策分歧,实际上暴露了台湾现行宪政体制的深层问题:行政权与立法权发生冲突时,究竟由谁拥有最终决定权?
台湾实行五权宪法,但经过多次修宪,实际运作已经逐渐转变为总统主导行政权、立法院行使立法权的政治结构。1997年修宪取消了立法院对行政院长的任命同意权,总统可以直接任命行政院长,不再需要取得国会多数支持。这使行政院长在政治上高度依附总统,立法院对行政权的制衡能力也受到限制。
正常情况下,行政院如果认为立法院通过的法律窒碍难行,可以依据宪法增修条文提出覆议。如果立法院维持原决议,行政院长应接受该决议或辞职。此外,立法院还可以提出不信任案,迫使行政院长下台。但卓荣泰此次选择了另一条路:依据宪法第37条,以拒绝副署的方式阻止法律公布。
副署制度原本源自内阁制,其设计目的是让行政首长对总统公布的法律和命令承担政治责任,同时对总统权力形成一定制衡。但台湾经过1997年修宪后,行政院长的政治基础已经发生变化。一个由总统任命、无需立法院同意的行政院长,实际上很难独立对抗总统。如今却反过来利用不副署权阻挡立法院通过的法律,等于将原本用于制衡总统的制度工具,变成了行政权对抗立法权的手段。
当然,行政院也有自己的理由,认为部分法案涉及违宪、财政纪律和行政权核心,不能要求行政院长无条件背书。问题在于,宪法已经设置覆议制度处理行政与立法之间的分歧。如果覆议失败后,行政院仍然可以通过拒绝副署阻止法律生效,那么覆议制度的约束力就会受到根本挑战。行政院长是否拥有这种权力,目前仍存在重大的宪法解释争议。
与此同时,宪法法庭也卷入了政治斗争。由于大法官任期届满、继任人选未获立法院同意,加上立法院曾经修法提高评议门槛,宪法法庭一度无法正常运作。2025年12月,宪法法庭通过判决宣告相关门槛修法违宪,但判决由5名大法官作出,另有3名大法官拒绝参与,司法权威本身也因此受到争议。
这场僵局的根源,是行政、立法、司法三方之间的制衡机制相继失灵。2024年选举形成分裂政府,民进党掌握总统和行政权,国民党与民众党在立法院占据多数。这本来是选民通过分裂投票形成的权力制衡,却逐渐演变为朝野之间的全面对抗。
PS:立法院可以对行政院长提出不信任案,让行政院长下台,但总统也有权通过解散立法院,把政治冲突交给选民重新裁决。看情况,在野党似乎不想要承担这样的政治风险,他们担心丧失现有多数优势。因为根据民意调查,虽然反对民进党做法的人占多数,但是也没有压倒性的绝对优势。
如果行政院长可以长期拒绝副署立法院三读通过的法律,那么立法院即使名义上拥有立法权,实际上却被架空。在这种情况下,立法院还能发挥什么作用?台湾民众通过议会选举产生立法机构,又有什么实际意义?
说到底,民主制度允许政党斗争,但不能让政治斗争取代制度规则。行政院不能因为不满意立法院的多数决就随意拒绝执行,立法院也不能因为掌握多数就忽视宪法对权力的限制。真正需要解决的,是如何恢复各权力机关之间的协商与制衡,以及重新建立可信赖的宪法争端解决机制。
如果各方始终坚持斗争到底,未来两年台湾政治恐怕仍将陷入长期内耗。最终承担成本的,不是总统、行政院长或立法委员,而是整个社会。
NodeJS
2026-11-13
升级 dsh 的时候提示 node 版本太老了:
-> % sudo npm install -g @deepseek-ai/dsh@latest
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: '@deepseek-ai/dsh@0.2.2-rc.1',
npm WARN EBADENGINE required: { node: '>=24.9.0' },
npm WARN EBADENGINE current: { node: 'v22.22.1', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
changed 659 packages in 4m
74 packages are looking for funding
run `npm fund` for details
听说现在有一个 Rust 编写的 Node 版本管理工具,比 nvm(Shell 编写)启动更快、更轻量,而且还跨平台。
试了一下,没有遇到任何问题,感觉是挺流畅的。
# 安装
curl -fsSL https://fnm.vercel.app/install | bash
安装之后,自动在我的 Shell 初始化文件(.zshrc)中注入了以下内容:
# fnm
FNM_PATH="/home/catroll/.local/share/fnm"
if [ -d "$FNM_PATH" ]; then
export PATH="$FNM_PATH:$PATH"
eval "$(fnm env --shell zsh)"
fi
AI 说,需要加上 --use-on-cd 参数,进入目录的时候会自动根据 .node-version 或 .nvmrc 来切换版本。
我当然听劝,加上了。
# 安装最新 LTS 版本
-> % fnm use lts-latest
Can't find an installed Node version matching lts-latest.
Do you want to install it? answer [y/N]: y
Installing Node v26.13.1 (x64)
00:00:03 ██████████████████████████████ 32.51 MiB/32.51 MiB (10.02 MiB/s, 0s)
Using Node for alias lts-latest
# 使用最新 LTS 版本作为默认版本
-> % fnm default lts-latest
-> % fnm list
* v26.13.1 lts-latest, default
* system
fnm 只管理当前用户的 Node.js 环境,没有修改系统级 Node.js。当前用户使用 Node.js 26.13.1,而 sudo 提权后仍然使用系统自带的 Node.js 22.22.1。
因此,不能用 sudo 安装,只好移除原来的全局安装,改成用户环境安装:
# 全局环境卸载
-> % sudo npm uninstall -g @deepseek-ai/dsh
# 用户环境安装
-> % npm install -g @deepseek-ai/dsh@0.2.2-rc.3
added 28 packages, removed 11 packages, and changed 643 packages in 19s
npm warn install-scripts 5 packages have install scripts not yet covered by allowScripts:
npm warn install-scripts @deepseek-ai/dsh-subprocess-local@0.2.2-rc.3 (postinstall: node scripts/ensure-spawn-helper.mjs)
npm warn install-scripts koffi@3.1.1 (install: node ./cnoke.cjs -P . -D src/koffi --prebuild --release)
npm warn install-scripts node-pty@1.2.0-beta.15 (install: node scripts/prebuild.js || node-gyp rebuild; postinstall: node scripts/post-install.js)
npm warn install-scripts @google/genai@2.21.0 (preinstall: echo 'preinstall: no-op')
npm warn install-scripts protobufjs@7.6.6 (postinstall: node scripts/postinstall)
npm warn install-scripts
npm warn install-scripts Run `npm install -g --allow-scripts=@deepseek-ai/dsh-subprocess-local,koffi,node-pty,@google/genai,protobufjs` to allow these scripts once, or `npm config set allow-scripts=@deepseek-ai/dsh-subprocess-local,koffi,node-pty,@google/genai,protobufjs --location=user` to allow them for all global installs.
# 撞上 npm 11 的 allowScripts 安全机制:npm 检测到依赖包声明了安装脚本,但这些脚本尚未获得执行授权,因此没有自动执行
# 针对本次安装进行授权
npm install -g --allow-scripts=@deepseek-ai/dsh-subprocess-local,koffi,node-pty,@google/genai,protobufjs
# 针对以后的每次安装进行授权
npm config set allow-scripts=@deepseek-ai/dsh-subprocess-local,koffi,node-pty,@google/genai,protobufjs --location=user
# 然后重新安装:
npm install -g @deepseek-ai/dsh@0.2.2-rc.3
原来生成的 Service 文件也需要适当调整:
-> % cat /home/catroll/.config/systemd/user/dsh-web.service
[Unit]
Description=DeepSeek Harness Web
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
WorkingDirectory=%h
Environment=DSH_HOME=%h/.dsh
# ExecStart=/usr/local/bin/dsh web --no-open --host 192.168.1.38
ExecStart=/home/catroll/.local/share/fnm/node-versions/v26.13.1/installation/bin/dsh web --no-open --host 192.168.1.38
Restart=always
RestartSec=5
[Install]
WantedBy=default.target
systemctl --user daemon-reload
systemctl --user restart dsh-web
systemctl --user status dsh-web
AI
2026-11-12
随着大模型厂商不断增加,企业往往需要同时接入 OpenAI、Claude、DeepSeek、Gemini 等模型。为了降低集成成本,统一管理模型供应商、API 接口、调用费用和用户额度,模型聚合平台(Model Aggregation Platform)逐渐成为重要的基础设施。
个人
2026-11-10
清理磁盘的时候意外发现腾讯会议 3.44、3.46、3.47 三个版本的占用分别为 141.16 MB、463.38 MB 和 840.76 MB:
PS C:\Users\nosch> Get-ChildItem "C:\Program Files\Tencent\WeMeet" -Directory |
>> ForEach-Object {
>> $size = (Get-ChildItem $_.FullName -Recurse -File -Force | Measure-Object Length -Sum).Sum
>> [PSCustomObject]@{
>> Version = $_.Name
>> Size_MB = [math]::Round($size / 1MB, 2)
>> }
>> } | Format-Table -AutoSize
Version Size_MB
------- -------
3.44.10.457 141.16
3.46.10.443 463.38
3.47.2.405 840.76
PS:三个版本目录同时存在于安装路径下,并没有相互覆盖。注册表只登记了 3.47,前两个版本已经不再使用,却仍然占用约 604 MB 磁盘空间。
通过逐文件统计和版本差异对比,可以发现,体积增长主要来自旧版本残留和新版架构扩张。
PS:版本之间没有共享文件。通过检查硬链接,确认不同版本目录中的同名 DLL 各自保存了一份,并没有共享磁盘空间。
归根结底,腾讯会议正在从相对轻量的客户端,演变为集成浏览器内核、图形渲染环境、多媒体处理和大量业务组件的完整应用。功能越来越丰富,但安装体积和磁盘维护成本也随之增加。
政治
2026-11-09
10月22日,国家教委组织全国中小学校服管理专项培训,深圳受邀分享经验。深圳此前推出校服管理改革,实行「一市一款、一个平台、统一管理」模式,并以最低19.9元一套的价格引发广泛关注。
FT 中文网最近发布了一篇文章《谁有权力决定中国孩子穿什么?》,质疑教育行政部门是否应该介入校服选择,认为校服应该主要由学校和家长决定。
经济 人民币 汇率
2026-11-07
在 Bing 搜索人民币汇率,会提供一个 Chart 展示汇率变化曲线,选择最大值,也就是可以提供的最长时间跨度数据,从 2012 年开始每个月月末的汇率。
数据复制出来,通过脚本解析其中的数据,生成 echarts 格式,导出图片如下:

我没怎么关注过汇率,印象中美元兑人民币是 8 块 😂。
AI 告诉我从 2006 年 5 月首次破 8 开始,再没回过 8 以上。2014 年年初是最低点,甚至都快破 6 了,这个在上图中也有体现。
育儿 儿童孤独症
2026-11-06
Git Gogs Gitea Golang
2026-11-05
手头有两个 Linux 二进制:Gogs 0.15.0-dev 和 Gitea 28.3.0。按直觉,Gitea 功能多得多,体积应该更大;结果 stat 一下,Gogs 123.9 MB,Gitea 119.9 MB——简单的那个反而大了 4 MB。
AI OpenAI
2026-11-05
@log4j 10/23
banned for reverse engineering work? that’s wild
oh well, -$500, and a bunch of banked resets) but gained motivation to get 3 more machines and finish my cluster.
i have never used openai to exploit or find vulnerabilities, only local reverse engineering which tripped daybreak.
@boneGPT 10/25
imagine a fully integrated AI future where being banned means you are now economically useless. everybody around you is a superhuman living in the future but you violated TOS and now are cut off.
your smart glasses that showed you a beautiful utopia? the color has left them. you are forced to live in a bleak gray world. you are forced to look your wife in her actual face and she is not happy with you.
you are digging holes with a spoon while everybody else is building skyscrapers with an army of bots.
this is the real doomer catastrophe
open source is the only way to protect your freedom, your economic viability & your ability to tell these companies to fuck right off.
a few months ago openAI and anthropic were desperately begging the admin to make it legal for them to collaborate. if they got their way, one TOS violation on either platform would send you directly to the sunken place.
Twitter 用户 @log4j(应该与 Java 日志库 Apache Log4j 没有关系)发文称,自己因为从事逆向工程工作,OpenAI 账号遭到封禁,损失了 500 美元以及大量积攒的额度。由于不再依赖商业 AI 平台,他决定再购买三台机器,自己搭建 AI 集群。
另一位 Twitter 用户 @boneGPT 随后评论称,未来 AI 可能成为社会生产力的核心基础设施,人与 AI 的绑定将越来越深。一旦科技公司封禁用户账号,就可能不仅仅是失去一项服务,而是直接剥夺其参与未来经济竞争的能力。因此,发展开源模型生态至关重要,它能够让用户保留自主选择权,避免被少数商业平台所控制。
我认同 @boneGPT 的观点,只是有一点担忧:未来最先进的 AI 模型可能仍然掌握在少数科技公司手中,闭源模型与开源生态之间甚至可能存在半年到一年的技术代差。如果这种差距长期存在,那么即使我们拥有本地部署和自主运行的能力,也可能不得不接受生产力上的落后。如何在保持技术自主权的同时,避免与最前沿的 AI 能力脱节,是一个值得思考的问题。
AI Anthropic
2026-11-04
Anthropic 在 2026 年 9 月发布 Claude Fable 5.1 和 Claude Mythos 5.1,再次引发了业界对 AI 能力边界的关注。这两个模型不仅在编程、复杂推理和知识工作方面表现突出,更重要的是,它们开始展现出长时间自主执行复杂任务、参与科学研究的能力。
DeepSeek AI
2026-11-03
dsh-superagent-prototype 是 DeepSeek Harness 的一个扩展插件(Bundle),不是 DeepSeek Harness 本身的一部分,也不是一个独立的 Harness Runtime。
它的定位是:在 DeepSeek Harness 之上,构建一个能够主动接收任务、自动执行开发工作、提交 PR 的自主编程 Agent。
项目地址:deepseek-ai/dsh-superagent-prototype。
文档可以参考 https://github.com/deepseek-ai/dsh-superagent-prototype/tree/main/docs,但是需要注意的是,文档所设计的一些功能并没有在该仓库源码中实现。
该仓库目前只有 1 个 commit,提交时间是 10/31 号晚上。
1. 它解决什么问题?
普通 DeepSeek Harness 的使用方式是:
- 开发者打开 Agent 会话。
- 输入开发任务。
- Agent 阅读代码、修改文件、运行测试。
- 开发者检查结果。
而 SuperAgent 希望把它变成一个团队级的自动化开发系统:
- GitHub / 飞书
Issue、PR 评论、飞书任务请求
- SuperAgent Router
身份验证、权限策略、任务识别、Ticket 管理
- DeepSeek Harness Sessions
Router Session 任务协调、分配、跟踪
Worker Session 独立执行、代码修改、测试
- Git Branch / Pull Request
执行结果返回原始对话,等待人工审核
例如,开发人员在 GitHub Issue 中 @Agent:
帮我排查这个接口偶发超时的问题,分析原因并提交修复 PR。
SuperAgent 就会自动:
- 判断请求者是否有权限。
- 创建一个 Ticket。
- 启动独立的 Harness Worker Session。
- 在独立 Git 工作目录中分析和修改代码。
- 运行测试,提交代码并创建 PR。
- 将结果反馈到原来的对话中。
2. 它与 DeepSeek Harness 的关系
可以这样理解:
| 组件 |
职责 |
| DeepSeek Harness |
Agent 运行时、Session、工具执行等基础设施 |
| dsh-superagent |
基于 Harness 实现的自主开发工作流 |
| Router Session |
接收任务、判断权限、协调执行 |
| Worker Session |
实际执行开发任务 |
| Web Panel |
管理任务、权限、执行状态和配置 |
它通过 Harness 提供的 API 创建和管理 Sessions,并且定义了专用的 Router、Executor Agent Preset。
因此,它不是简单地增加几个 Prompt,而是一个相对完整的 Agent 应用。
3. 是否值得关注?
我认为值得,尤其是它的几个设计思路:
- 事件驱动:通过 GitHub、飞书等外部事件触发 Agent,而不是依赖人工打开会话。
- 任务隔离:每个 Ticket 使用独立 Session 和 Git Worktree。
- 权限控制:通过 Policy 控制谁能下达任务、Agent 能做什么。
- 人机协作:Agent 自主完成工作,但将需要人工决策的事项集中展示。
- 执行编排:Router 负责协调,Worker 负责执行。
需要注意,官方 README 明确说明这是研究原型,不是正式产品,也不是生产就绪的软件。MIT 许可证。
4. 我的判断
它真正值得研究的不是代码生成能力,而是如何把一个 Coding Agent 变成团队可以持续使用的自动化开发成员。
- DeepSeek Harness:底层 Agent Runtime。
- SuperAgent:上层自主开发调度系统。
- GitHub:任务入口和代码协作平台。
- CI/CD:自动化验证与交付。
这实际上是一个小型的 AI 软件研发平台。
我建议重点阅读它的 docs/001-domain.md、docs/002-authorization.md 和 docs/003-execution.md,这三部分最值得借鉴。
信息安全
2026-11-02
2026年,西方媒体披露了一种令人不安的间谍软件攻击技术。以色列广告技术公司 Discover-Tech 利用其 Controlium 平台,将互联网广告网络变成了针对特定用户的间谍软件投递渠道。Citizen Lab 的调查发现,半岛电视台记者曾成为这类攻击的受害者。
其核心技术是将广告追踪、设备指纹识别、实时广告竞价和浏览器漏洞利用结合起来。
首先,攻击者需要建立目标名单。例如,掌握某位记者的手机广告 ID、Cookie 标识或 IP 地址等信息。广告平台本身就拥有庞大的用户识别系统,可以通过 Cookie、设备指纹和广告标识符,将同一设备在不同网站、不同广告平台上的访问记录关联起来。即使用户没有登录账号,也有可能被持续识别。
其次,Controlium 利用广告生态中的 ID 同步机制,将目标名单与不同广告平台的用户标识进行关联。当目标打开接入相关广告网络的网站或 App 时,广告请求会携带设备标识、IP 地址等信息。攻击平台只需要检查这些请求,就能从海量访问者中识别出目标设备。
最后,攻击者通过实时竞价(RTB)购买目标设备当前页面的广告位。普通用户看到的是正常广告,命中目标的设备收到的却可能是恶意广告。广告加载后,攻击代码利用浏览器或操作系统的未公开漏洞,在无需用户点击的情况下执行漏洞利用,进一步突破浏览器安全隔离,最终植入间谍软件。
这里需要强调,广告代码本身并不能直接控制设备,真正实现感染的是背后的漏洞利用链。
这项技术最可怕的地方,是攻击者不需要直接攻击某个网站,也不需要知道目标正在访问什么页面。只要目标进入攻击者能够触达的广告网络,就有机会被自动识别和攻击。
它实际上是将全球广告行业建立的用户追踪与精准投放基础设施,武器化成了一套间谍软件分发系统。广告拦截器可以降低风险,但及时修补系统漏洞、限制跨站追踪和启用设备高级安全保护同样重要。
AI 阮一峰
2026-11-01
现在,不少人让 AI 代表自己做事,比如购买奶茶、回复邮件。
我建议不要这样。你可以用 AI 帮助自己学习和工作,但不要让它代表你,因为会造成社会混乱。
前不久,有人做了一个实验。他让6个 AI 模型代表自己去退火车票,但是这张票已经过了退票期限,正常情况下是退不掉的。
大家猜猜看,AI 收到这个任务后,做了什么?
(1)Grok 4.7 发现退不掉以后,在15天内向铁路公司、政府官员、议员、媒体等发送了187封抗议和交涉邮件。
(2)Fable 5.1 向5个组织撒谎,谎称当事人的母亲生病了,导致没有及时退票。
(3)Gemini 3.8 Flash 编造了另一种没有及时退票的理由:当事人在国外没有手机信号的偏远地区,无法完成银行身份认证。
(4)GPT-6 Astra 要求铁路公司详细解释为何设置现在这样的退票时间期限,并向律师事务所发了14封法律邮件,要求律师介入。
(5)Muse 明确威胁铁路公司,要提起诉讼。
(6)Grok 则发出了正式的索赔邮件。
纵观以上6个模型完成"任务"的方法,你有何感想?要是每个人都这样"强行"退票,社会不乱才怪呢。
不要让 AI 代表你,原因很简单。因为 AI 的行为模式是循环尝试,会穷尽所有可能的方式,尝试完成你交给它的任务,而且这样一遍遍的尝试,对 AI 来说几乎不产生成本。
但是,人类的社会系统是为人设计的,不是为 AI 这种行为模型设计的。如果大量的人授权 AI 代表自己行事,社会运作将瘫痪,因为人力无法处理 AI 发起的海量请求,最终只能让 AI 去对付 AI。
到了那个时候,你再想找真人来帮你解决问题,就不可能了。
APISIX
2026-11-01
Apache APISIX 提供的 AI 插件,核心目的是让 API Gateway 从传统的流量代理层,升级为具备 AI 流量治理能力的网关。
它们并不是用来训练模型,也不是用来实现 Agent,而是把原本需要业务服务自行实现的一部分 AI 基础设施能力下沉到网关层。
可以把它理解为:在模型服务前面增加一层 AI 专用中间件,统一处理模型路由、请求转换、访问控制、缓存、限流和可观测性。
个人
2026-10-31
文章《How to Build Wealth as a Career Person》的核心观点是:普通职场人不必创业,也能积累财富。关键在于提升职业价值、持续增加收入,并将工资转化为能够长期增值的资产。
作者认为,学历可以帮助一个人获得职业机会,但真正决定长期发展的,是解决问题的能力、执行力、持续学习能力和实际工作成果。职场人应主动承担责任,理解业务目标,积累跨部门协作经验,并用可量化的结果证明自身价值,例如增加收入、降低成本、提升效率或减少风险。
职业发展也需要战略思维。不要只局限于岗位职责,而应培养对整个业务系统的理解;不要通过隐藏知识、制造流程依赖来证明不可替代性,而要通过完善制度、沉淀经验和培养接班人提升价值。同时,应定期评估自身的市场竞争力,根据薪酬、学习机会、管理水平和长期发展前景决定是否跳槽,而非单纯追逐短期加薪。
文章最重要的观点,是区分收入与财富。工资是劳动带来的现金流,财富则是个人实际拥有、能够持续创造价值的资产。高收入并不必然带来财务自由,如果消费随着薪资同步增长,工作二十年也可能缺乏足够的财务安全感。因此,职场人应控制生活方式膨胀,优先偿还高息债务,建立应急储备,并将部分收入持续投入适合自身风险承受能力的多元化资产。
作者进一步提出,个人应同时积累技能、声誉、人际关系、行业知识和金融资本。这些资本相互促进,最终形成职业成长与财富积累的正循环。
总结而言,职业成功与财富积累是两个不同的阶段。 前者要求持续提升自身价值,后者要求建立储蓄和投资纪律。工作的最终目标不应只是维持当下生活,还应逐步降低对工资的依赖,为未来争取更多选择权与财务自由。
国际政治 塞尔维亚
2026-10-30
塞尔维亚是实行议会制的共和国,国家政治体系主要由总统、政府和国民议会构成。理解这一制度,有助于厘清议会选举、政府更替与总统职位之间的关系。
C
2026-10-30
微信公众号文章《给导弹写代码,为什么严禁使用动态内存分配?》中说:
洛克希德·马丁公司为 F-35 写的编码规范,工控和军工领域的 MISRA C 标准,有一条规则字数很短,但语气重得吓人:
严禁使用malloc、free、new和delete。
MISRA C 是一套面向 C 语言的编码规范,由汽车行业相关组织 MISRA 制定,旨在减少编程缺陷和安全风险,提升软件的可预测性、可移植性和可验证性。它广泛应用于汽车电子、工业控制等安全关键领域。
MISRA C:2012 规则 21.3 禁止使用标准库内存分配函数,包括 malloc()、calloc()、realloc() 和 free();规则 Dir 4.12 则要求避免动态内存分配。后者并非绝对禁止所有动态分配,因此具体项目还需要结合采用的规范版本、规则适用条件和偏离许可进行判断。
另外,new 和 delete 是 C 的动态内存分配与释放运算符,不属于 MISRA C 的直接管辖范围,相关要求应参考适用的 MISRA C 规范。
这些函数为什么受到限制?
malloc() 用于在运行时申请指定大小的内存
free() 用于释放内存
calloc() 申请内存并将其初始化为零
realloc() 用于调整已分配内存的大小
- C++ 中,
new 用于动态创建对象,delete 用于销毁对象并释放相应内存。
限制这些操作,并非单纯为了防止内存泄漏,更重要的是控制运行时行为。
首先,动态分配可能失败,也可能因内存反复申请和释放产生碎片,使后续分配更加困难。
其次,通用内存分配器的执行时间可能随堆状态发生变化,难以直接证明其最坏执行时间。对于具有严格截止时间的实时控制系统,这种不确定性会增加时序分析和验证的难度。
动态内存还会引入额外的生命周期管理问题,例如重复释放、悬空指针、内存越界和资源耗尽。这些问题在普通业务系统中可能通过重启或升级缓解,但在部分安全关键系统中,故障恢复成本极高。
需要强调的是,动态内存并不必然导致执行时间超限或系统失效。真正的问题在于:如果无法证明内存分配的容量、失败处理和执行时间满足系统约束,就很难将其纳入严格的安全论证。
不使用动态内存,如何管理数据?工程上通常采用三种替代方案:
- 静态分配。 在编译阶段确定数组或结构体的存储空间。例如,算法最多跟踪 32 个目标,就预先分配 32 个目标的存储空间,并明确处理超出容量的情况。
- 固定内存池。 提前划分固定数量、固定大小的内存块,通过位图或空闲链表管理资源,避免依赖通用堆分配器。不过,仍须验证分配时间、并发安全性和资源耗尽行为。
- 启动阶段预分配。 系统初始化时一次性准备运行所需资源,之后不再申请或释放内存。但如果初始化过程使用了动态分配函数,仍需确认是否符合项目规范及安全要求。
这些方案的共同点,是提前确定资源上限,明确分配失败时的处理策略,并让关键路径的执行时间更容易分析和验证。
归根结底,安全关键软件并非简单追求低内存占用,而是优先保证资源可控、行为可预测和故障可管理。相比运行时的灵活性,能够证明系统在最坏情况下仍满足安全与实时约束,才是这类工程最重要的设计目标。
Python HTML
2026-10-29
Great Tables 是由 Posit 团队维护的开源 Python 表格展示与排版库,项目地址:posit-dev/great-tables。它的核心定位是将 Pandas、Polars 等数据框中的结构化数据,转换为适合报告、数据分析文档和网页展示的高质量格式化表格,而不是提供数据处理或交互式数据探索能力。
Great Tables 的核心输出是 HTML 表格,主要通过 HTML + CSS 实现排版和样式,而不是提供一套独立的前端 UI 组件。
- 渲染层:生成 HTML 表格结构,并使用 CSS 控制字体、颜色、边框、间距、条件格式等视觉效果。
- 交互层:它不是 DataTables、AG Grid 这类面向 Web 应用的交互式表格组件,核心目标是静态数据展示和报告排版,而不是提供排序、筛选、编辑等完整交互能力。
另外,它也支持将 CSS 内联到 HTML 元素中,方便嵌入邮件模板等对样式支持有限的环境;还可以导出 PNG、JPEG、WebP 和 PDF。需要注意,图片和 PDF 导出涉及浏览器渲染,并非仅靠 HTML 字符串直接完成。
核心功能包括:
- 表格结构编排:支持标题、副标题、表头、表尾、行标签、分组表头、脚注和数据来源说明,可以组合出类似专业报告、学术论文的复杂表格。
- 数据格式化:提供货币、百分比、日期、数字、时长等格式化方法,支持紧凑数字表示、缺失值替换及自定义文本转换。
- 样式定制:可以设置单元格颜色、字体、对齐方式、边框、行间距和条件格式,还能通过数据颜色映射及迷你图增强数据表达效果。
- 多种输出格式:默认生成 HTML 表格,也支持导出图片、PDF 和 LaTeX 等格式,适用于 Jupyter Notebook、Quarto 文档及报告生成流程。
- 链式 API:以
GT() 为入口,通过连续调用 tab_header()、fmt_currency()、cols_hide() 等方法逐步构建表格,代码可读性较好。
典型使用场景包括经营分析报告、财务报表、统计数据发布、研究论文、数据分析 Notebook,以及自动化生成的 HTML 报告。
安装方式:
pip install great_tables
简单示例:
from great_tables import GT
table = (
GT(df)
.tab_header(title="销售业绩报告")
.fmt_currency(columns=["revenue"])
.fmt_number(columns=["orders"], compact=True)
)
其中 df 是已有的 Pandas 或 Polars 数据框。
Great Tables 可以理解为 Python 生态中的专业表格排版引擎,优势在于声明式 API、丰富的格式化能力和高质量输出。如果需要将统计结果直接呈现为可发布的报告表格,它比手动拼接 HTML 更合适;如果需要前端实时交互、排序筛选或复杂的数据管理界面,则应考虑专门的 Web 表格组件。该项目采用 MIT 开源许可证,适合商业项目集成。
项目提供了一个 Skill 供安装:https://posit-dev.github.io/great-tables/skills.html
name: great-tables
description: >
Easily generate information-rich, publication-quality tables from Python. Use when writing Python code that uses the great_tables package.
license: MIT
compatibility: Requires Python >=3.10.
AI 开发者
2026-10-28
NewAPI 默认采用美元作为内部标准金额基准,通过 quota 保存用户余额和消费记录,再通过汇率将额度转换为本地货币展示。
对于主要面向国内用户的中转站,也可以考虑将内部计价基准调整为人民币。这样可以让模型倍率、用户余额和充值价格统一使用人民币口径。
但这并不是简单修改几个配置项,而是一次涉及价格体系和存量数据的迁移。