Total Pageviews

Saturday, 27 June 2026

龙虾之父 Peter 开源 skill-cleaner:给你的 AI skills做体检


龙虾装了一堆 AI 技能(Skill),结果它反而变笨了?

我之前就是这样。装一个"帮我写代码",再来一个"帮我查文档",再来一个"帮我跑测试"……塞了二十几个 Skill 进去。结果 Agent 调用时,要么选错技能,要么直接愣住不知道该用哪个。

后来才知道,这问题不是 AI 笨,是 Skill 的"简历"写得太烂了。

龙虾之父:别把路标写成说明书

Peter(江湖人称"龙虾之父")最近开源了一个项目叫 skill-cleaner

(https://github.com/steipete/agent-scripts/tree/main/skills/skill-cleaner),专门给 AI 技能做体检。他在 X 上发了一贴,立刻炸出一堆共鸣: 
    "Skill 提示词写得跟说明书似的,Agent 每次调用都要读完才能决定用哪个——这不烧钱吗?"

有人回复说,自己原来把 Skill 描述写到了 90 多词,Agent 根本选不对技能。砍到 40 词以内,一次就选对了。

龙虾之父的主张很直接:Skill 要像路标,目的是让 Agent 找到路,不该把整本说明书挂在路标上。
skill-cleaner 到底能干嘛

这个工具干五件事:

1. 技能预算审计

Skill 占的上下文空间会影响运行成本。脚本会分析每个 Skill 占多少 Token,给你算预算占用比例,告诉你哪些该精简。

2. 重复技能检测

跨 Codex 内置库、插件缓存、个人技能目录扫描同名或描述高度相似的 Skill,标记冗余项。

3. 未使用技能筛查

基于历史日志,识别长期没人用的"僵尸 Skill",提供清理清单。

4. 技能根目录审计

统计所有 Skill 从哪加载、启用还是禁用状态、加载链路是什么。

5. 描述精简优化

把冗长的自然语言描述压缩成短动作词组。比如:
– 调试类 → debug, inspect, fix
– 部署类 → deploy, release, verify
– 检索归档类 → search, sync, summarize

压缩后 Skill.md 只有 56 行,但调用的脚本近千行代码。Skill.md 是路标,代码才是说明书。
怎么用

三步走:

   在技能目录运行 Node.js 脚本(支持自定义参数:时间范围、日志深度、预算阈值等)
    查看审计报告:技能预算 → 描述优化项 → 重复技能 → 未使用技能 → 根目录汇总
    按建议清理,优先保留 Codex 内置技能

脚本用了 Codex 官方源码同款提示词预算核算逻辑,272k Token 上下文基准,严格按 UTF8 字节数/4 向上取整计算。
值得思考的点

龙虾之父在评论区用了一种奇怪的语言风格说话:
install skill
agent smart
user happy

他还说这是"穴居人风格"——把省 Token 刻到骨子里。

我倒觉得这不只是省 Token 的问题,更本质的是:我们花了太多精力教 AI 做什么,却没花足够精力教它怎么做选择。

Skill 越多,Agent 的决策空间越大,但决策成本也越高。这和现实中的组织管理是一样的——不是人多好办事,是合适的人做合适的事。

你的 OpenClaw/Codex 装了多少 Skill?有没有想过给它们做个体检?

相关链接
    GitHub:https://github.com/steipete/agent-scripts/tree/main/skills/skill-cleaner

VoidZero 整建制并入 Cloudflare:Evan You 的 JS 工具链帝国,被云厂商收编了

 


2026 年 6 月初,Evan You 在 VoidZero 官网和 Cloudflare 博客同时发文,宣布一件影响整个 JavaScript 生态的事——他创办的 VoidZero 公司,连同 Vite、Vitest、Rolldown、Oxc、Vite+ 一整套工具链,整建制加入 Cloudflare。 开发工具

不是合作、不是投资,是收购。团队、产品、路线图,全归 Cloudflare。

先说结论:开源承诺写得很满,但社区该盯的是 12 个月后

Cloudflare 在公告里把话说得很死:

    Vite、Vitest、Rolldown、Oxc、Vite+ 继续 MIT 开源
    厂商中立(vendor-agnostic),应用想跑哪跑哪
    Evan You 和 VoidZero 团队继续主导路线图
    Cloudflare 设立 100 万美元 Vite 生态基金,给贡献者发钱

看着是不是很熟悉?这套"开源承诺书"几乎是所有大厂收开源项目的标配模板。但写承诺容易,守承诺难。

真正的考验是 12 个月后——当 Cloudflare 那个野心勃勃的"超集 CLI(cf dev 是 vite dev 的超集)"落地时,Vite 内部会不会出现"Cloudflare 友好特性先于通用特性"的优先级偏移?这是社区应该持续监督的红线。

短期 6 个月内几乎不会有事,因为 Evan You 和整个原团队都还在;真正的变数是第二代维护者接班时,Cloudflare 文化会不会慢慢侵蚀 Vite 的中立基因。 开发工具
VoidZero 是怎么走到这一步的?

回头看 VoidZero 这三年,走的是一条"个人英雄 → 全职团队 → 资本输血 → 卖身云厂"的标准剧本。

2023 年成立时,Evan You 已经是 Vue 和 Vite 的作者,社区几千万周下载量。但只靠 GitHub Sponsors 撑不住"做一个完整 JS 工具链"的野心,于是拿了 Accel 领投的种子轮和 A 轮,跟投还有 Peak XV、Sunflower Capital、Amplify Partners、PWV。

三年里 VoidZero 攒出的家底:

    Vite —— 周下载 1.29 亿次,81.5k stars,1298 名贡献者,已经是 Vue/Svelte/Solid/Nuxt/SvelteKit/Astro/Qwik/Angular/React Router/TanStack Start 十多个框架的共同地基
    Rolldown —— Rust 写的打包器,13.7k stars,Vite 8 的默认 bundler
    Oxc —— Rust 写的 JS 工具链底座(parser/resolver/transformer/minifier),21.6k stars
    Oxlint —— 50-100 倍速的 linter
    Oxfmt —— 30 倍速的 Prettier 兼容 formatter
    Vitest —— 16.7k stars 的现代测试 runner

技术上很牛。但商业化始终没跑通。

VoidZero 团队整体并入 Cloudflare
商业化失败的三个证据

Evan You 在官方说明里其实写得很坦诚。 开发工具

第一个证据:Vite+ 混合授权翻车。VoidZero 想用 Vite+ 走"开源部分 + 商业部分"路线,社区反弹强烈,最后只能改回纯 MIT。一个工具型公司想要赚钱这件事,本身就和社区期望冲突。

第二个证据:Void 部署平台难产。Void 是个"Vite-native deployment platform",底层跑在 Cloudflare 上。本来想靠 Void 反哺工具,结果要分兵两路——一边做工具,一边做云平台。"我们人手本来就不够,再分兵更不够。"Evan You 自己在文章里这么说。

第三个证据:营收跑道不明。Evan You 的原话是"we had plenty of runway, but the road to scalable revenue remained long and filled with unknowns"。钱有,但怎么变成稳定收入,看不到头。

结论是 VoidZero 做的工具太基础了——构建/打包/lint/format 这种东西,用户基数大、客单价低、迁移成本几乎为零。单卖工具赚钱这件事,几乎没人成功过。
Cloudflare 为什么要买?

Cloudflare 这几年在往"开发者平台"方向转型。Workers、R2、D1、KV、Agents、Workflows——基础组件已经齐了,但开发者要往 Cloudflare 上搬东西,需要工具链配合。

Cloudflare Vite plugin(@cloudflare/vite-plugin)是这条路的试水——周下载量已经做到 1400 万,相当于 Vite 本身的 10% 多。Cloudflare 在公告里自己都感叹"一年前你跟我说 Cloudflare Vite plugin 能做到这个量,我肯定不信"。

更关键的是 AI agent 催化。Cloudflare 发现:AI 生成的代码大多从 Vite 开始,因为 Vite 在训练数据里出现得多、错误信息清晰、CLI 一致。当 agent 写代码时,构建工具成了 agent 的"操作原语"。这不是开发者选的,是模型选的。

把 VoidZero 整个收进来,Cloudflare 等于买了一张"AI agent 时代前端基础设施"的入场券。
开源工具公司正在变成云厂的”前装市场”

这次收购印证了一个可能的趋势——优秀的开源工具作者,最终都要么卖给大厂,要么死掉。 字典与百科全书

道理很简单:

    开发者工具的客单价上不去(个人开发者一年到头也付不了 100 美元)
    用户基数再大也撑不起 SaaS 的估值(Vite 一亿多周下载,年营收能到 1000 万美元都算奇迹)
    大厂云平台有最便宜的获客渠道(Vercel 一键部署 Netlify 一键部署,本质都是把工具变成云的前装)

未来 5 年我们会看到更多类似 VoidZero 的剧情——优秀的开源工具作者意识到"靠 Sponsors + 商业版"走不通,转而把项目卖给有云基础设施的大厂。

开源工具正在变成云厂商的"前装市场"。这不是开源的失败,这是开源的新阶段——只是盈利主体从工具作者转移到了云厂商。
Cloudflare 的”开源收购史”是加分项,但别忘了 npm-js 那次

今年一月 Astro 团队就已经加入 Cloudflare,承诺 MIT + 多云部署,到目前为止算是兑现了。这次 VoidZero 算是同一个剧本的延续。

但社区里有一派人对此保持警惕——Cloudflare 历史上有过 ESLint 创始人相关项目的争议性操作,不是所有收购都善终。这次承诺能不能长期兑现,得看 12 个月后 Vite 的实际 PR 走向,而不是公告里的话。
写给普通开发者

这件事对你的直接影响其实不大——Vite 还是 Vite,明天跑 npm create vite@latest 一切照旧。

但有几个信号值得跟踪:

    6 个月内:看 VoidZero 团队有没有成批离职(如果有,说明整合出问题)
    12 个月内:看 Vite 的 PR 里有没有"Cloudflare-only"的特性先于通用特性合入
    18 个月内:看 cf CLI 是不是真的做到"是 vite 的超集"——如果做到了,对开发者是好事(统一体验);如果变成了"vite 之外的另一套",那就是分裂的开始

短期庆祝,长期监督。这才是开源社区对这次收购该有的态度。

频繁发布npm包时, 如何确保始终安装最新版本

 问题背景

在一些极端情况下可能需要频繁发布 npm 包,而 npm 默认的缓存时间是 5 分钟。也就是说,在五分钟之内只会请求一次 npm 包的元数据,如果在更新后五分钟之内再次发包,默认情况下是不会检测到新版本的。

这个时候,如果你搭配 ncu(npm-check-updates 包)更新了 package.json 里的包到最新版本的话,由于 npm 的缓存,执行 npm i 会显示找不到目标 npm 包的指定版本从而更新失败。
解决方案

有两种方式可以解决这个问题:
1. 使用 --prefer-online 标志

在执行 npm install 或 npm update 时添加 --prefer-online 标志,设置优先从远程 registry 获取:

npm install --prefer-online xxx

2. 配置 .npmrc 文件

如果希望在项目范围内都使用这个设置,可以在项目根目录下的 .npmrc 文件中添加以下配置:

prefer-online=true

这样就不需要每次都手动添加 --prefer-online 标志了。
相关选项

    --prefer-offline:优先使用缓存,减少网络请求
    --cache-max=0:这个选项其实是 --prefer-online 的别名

参考资料

更多有关 npm config 的信息请参考 npm 官方文档-https://docs.npmjs.com/cli/v9/using-npm/config#prefer-online

让你的汽车空调自动清洁

 

qq-music-api

 

QQ 音乐API, koa2实现。

 
 ![Ask DeepWiki](https://deepwiki.com/Rain120/qq-music-api) ![GitHub watchers](https\://img.shields.io/github/watchers/rain120/qq-music-api?style=social) ![GitHub stars](https\://img.shields.io/github/stars/rain120/qq-music-api?style=social) ![GitHub forks](https\://img.shields.io/github/forks/rain120/qq-music-api?style=social)

node Ask DeepWiki

GitHub repo size GitHub package.json version GitHub GitHub open issues GitHub closed issues GitHub last commit GitHub top language

QQ 音乐 API,基于 Koa2 + TypeScript 构建,通过 Web 端请求 QQ 音乐接口数据。本项目集成了自动化数据处理代理,提供高效、易用的接口服务。 有问题请提 issue。欢迎阅读 参与贡献指南 参与项目开发,并查阅 AI 代理指南 了解自动化机制。 当前主干分支已完成 TypeScript 化改造,核心源码、测试与构建链路均已切换到 TypeScript 体系。 TypeScript 版本请使用 next 分支,JavaScript 版本请使用 main 分支。

⚠️ 当前代码仅供学习,不可做商业用途。

API结构图

目前暂时没有时间做登录模块的接口,欢迎各位大佬给我PR, 阿里嘎多

qq-music

环境要求

本项目采用 Koa2 + TypeScript 技术栈,建议使用较新的 Node.js LTS 版本进行开发与运行。

node -v

🚀 快速入门 (Quick Start)

📦 安装

请确保您的本地 Node.js 版本满足 环境要求

git clone git@github.com:Rain120/qq-music-api.git
cd qq-music-api
npm install

🔨 项目启动

# 开发环境(支持热重载)
npm run dev

# 类型检查
npm run build

# 代码检查
npm run lint

# 单元测试
npm run test

# 本地启动
npm start

项目默认监听端口是 3200,启动成功后可在浏览器访问 http://localhost:3200 体验接口服务。

🏗️ 项目架构

  • 应用入口:src/app.ts 负责启动 Koa、注册中间件、挂载路由,并暴露 /explorer/explorer/index.html/explorer/metadata
  • 控制器层:src/controllers/* 负责处理 HTTP 入参、调用服务层并整理返回结果。
  • 服务层:src/services/* 负责访问 QQ 音乐相关能力,是歌曲、歌手、歌单、排行榜等数据获取逻辑的核心承载层。
  • Explorer 元数据层:src/config/apiExplorer.ts 维护接口清单、请求方法、分类、参数与 POST 请求体示例,驱动调试表单动态渲染。
  • Explorer 逻辑层:src/explorer/contractssrc/explorer/domainsrc/explorer/application 负责状态模型、树构建、搜索筛选和 Store/Command 逻辑。
  • Explorer 视图层:public/explorer/* 提供静态页面、交互脚本和样式,组成完整的本地调试工作台。
  • 测试与文档:tests/* 覆盖控制器、服务和 Explorer,docs/* 用于 Docsify 文档与界面截图展示。

🔎 API Explorer

  • API Explorer 是项目内置的本地接口调试工作台,用于快速选择接口、填写参数、发送请求并查看结果。
  • 默认入口地址是 http://localhost:3200/explorer,访问 /explorer 时会自动重定向到 /explorer/index.html
  • Explorer 元数据接口为 http://localhost:3200/explorer/metadata,页面会基于该接口动态生成可调试的接口列表与表单。

Explorer 启动方式

# 开发模式:默认自动打开 Explorer
npm run dev

# 本地启动服务后手动打开 Explorer
npm start

# 启动时显式开启自动打开
AUTO_OPEN_EXPLORER=true npm start

# 禁用自动打开(dev 脚本默认会开启)
AUTO_OPEN_EXPLORER=false npm run dev
  • npm run dev 默认会设置 AUTO_OPEN_EXPLORER=true,因此服务启动后会自动拉起浏览器。
  • npm start 默认只启动服务,不会自动打开页面,可手动访问 http://localhost:3200/explorer
  • CI 或测试环境下不会自动打开浏览器。

Explorer 操作步骤

  1. 启动服务并打开 http://localhost:3200/explorer
  2. 在顶部选择请求方法:ALLGETPOST
  3. 在搜索框中输入接口名、路由关键字或分类关键字,选择目标接口。
  4. 根据表单提示填写路径参数、查询参数,或为 POST 接口编辑 JSON Body。
  5. 点击 发送请求,在右侧查看最新响应结果。
  6. Logs 区域检索当前会话中的历史请求、失败记录和最近一次请求。

Explorer 界面能力

  • 接口筛选:支持按请求方法过滤,并通过搜索框快速定位接口。
  • 动态表单:根据接口元数据自动生成路径参数、查询参数和请求体输入区域。
  • 响应预览:展示最近一次请求的状态、耗时和格式化后的返回内容。
  • 会话日志:保存当前页面会话内的请求记录,支持按关键字搜索以及按 全部仅失败仅进行中仅成功 过滤。
  • 快速跳转:内置 最近请求最近失败 快捷按钮,便于定位调试问题。

Explorer 功能截图

整体预览

Explorer 整体预览

Explorer 使用示例

以搜索歌曲接口为例:

  1. 启动项目后进入 http://localhost:3200/explorer
  2. 选择或搜索 getSearchByKey
  3. 在参数区填写 key=周杰伦,可按需补充 limitpage 等参数。
  4. 点击 发送请求
  5. Response 面板查看接口返回,在 Logs 面板查看本次请求的 URL、状态和结果摘要。

提示:部分 POST 接口会提供默认 JSON Body 示例,可直接修改后发起请求,适合调试批量查询类接口。

🧱 当前技术栈与状态

  • 服务框架:Koa2
  • 语言体系:TypeScript
  • 请求能力:Axios
  • 代码检查:Biome
  • 测试方案:Jest + Supertest
  • 构建与容器:支持本地运行与 Docker 镜像构建

⏭️ Next 更新计划

  • 持续补齐接口层、服务层与工具层测试用例,进一步提升覆盖率与回归稳定性。
  • 完善 TypeScript 类型建模,收敛控制器、服务返回结构与公共工具的类型边界。
  • 优化 Docker 与生产部署链路,确保构建产物、运行方式和发布流程保持一致。
  • 持续更新接口文档、贡献指南和 AI 代理说明,减少文档与实现之间的偏差。
  • 逐步推进登录态、个性化数据等高复杂度接口能力的调研与实现。

🐳 Docker

# local local build
npm run build:local-images

# local remote build
npm run build:remote-images

# build images
npm run build:images

# local run
npm run run:images

# remote run
docker pull qq-music-api

功能特性

  • 获取歌曲播放链接 2021-01-24
  • 支持自定义设置 cookie 2021-01-23
  • 获取歌曲 + 专辑图片 2020-05-24
  • 获取歌手热门歌曲 2020-07-04
  • 获取QQ音乐产品的下载地址
  • 获取歌单分类
  • 获取歌单列表
  • 获取歌单详情
  • 获取MV标签
  • 获取MV播放信息
  • 获取歌手MV
  • 获取相似歌手
  • 获取歌手信息
  • 获取歌手被关注数量信息
  • 获取电台列表
  • 获取专辑
  • 获取数字专辑
  • 获取歌曲歌词
  • 获取MV
  • 获取新碟信息
  • 获取歌手专辑
  • 获取歌曲VKey 2021-01-24
  • 获取搜索热词
  • 获取关键字搜索提示
  • 获取搜索结果
  • 获取首页推荐
  • 获取排行榜单列表
  • 获取排行榜单详情
  • 获取评论信息(cmd代表的意思没太弄明白)
  • 获取票务信息
  • 获取歌单详情
  • 获取歌手列表

使用文档

使用apis详见文档

关于项目

灵感来自

Binaryify/NeteaseCloudMusicApi

Vue2.0开发企业级移动端音乐Web App

参考内容

Koa 2

Axios

阮一峰老师 - HTTP Referer 教程

项目不足

  1. 当前已补充基础 unit test 与接口测试,但整体覆盖率和复杂场景用例仍有继续提升空间。
  2. 登录、获取个人信息等依赖登录态的接口能力仍未完善。

🤖 AI 代理 (Agents)

本项目引入了智能化代理架构以优化数据获取和解析链路。详细了解各 AI 代理的角色、功能以及调用规范,请查阅我们的 AI 代理指南 (AGENTS.md)

from  https://github.com/Rain120/qq-music-api

single-spa.js.org

 

此仓库包含 single-spa中文文档 的文档及源码,并由官方实时同步。

入门指南

提前准备

  1. Git
  2. Node: install version 8.4 or greater
  3. Yarn: See Yarn website for installation instructions
  4. A fork of the repo (for any contributions)
  5. A clone of the single-spa.js.org repo on your local machine

如何安装

  1. git clone git@github.com:single-spa/single-spa.js.org.git
  2. cd single-spa.js.org/website to go into the website root
  3. yarn to install the website's npm dependencies

本地执行

  1. cd website 然后 yarn start 开启本地热更新服务。 (powered by Docusaurus)
  2. open http://localhost:3000 打开浏览器查看效果。

贡献翻译

如果你想帮助翻译single-spa.js.org? 请参考下列步骤。 加入 Slack 一起讨论(可能有点慢~)

新建分支

  1. 请 fork 这个仓库
  2. single-spa.js.org 仓库的任何目录下执行 git checkout master
  3. 执行 git pull origin master 确保你的代码是最新的。
  4. 执行 git checkout -b the-name-of-my-branch 创建一个新的分支 (起一个合适的分支名字来替换 the-name-of-my-branch)

挑选章节进行翻译

  1. 保存翻译的文件并在浏览器查看效果
  2. website/src 的修改将会自动更新
  3. 修改 docs 下的markdown文件也会自动更新
  4. siteConfig.jssideBards.json 不会自动更新

词汇表(Glossary

文档翻译的过程中,经常出现的词会总结在词汇表中。如 mount,bootstrap,application等。

from  https://github.com/single-spa/zh-hans.single-spa.js.org

( https://github.com/single-spa/single-spa.js.org)

Next-Whois

 

Better Whois Lookup Tool With Modern UI. Support Domain/IPv4/IPv6/ASN/CIDR Whois Lookup And Powerful Features. Support RDAP protocol.

who.zmh.me

A fast, modern WHOIS/RDAP lookup tool built with Next.js.

English · 简体中文 · 繁體中文 · Русский · 日本語 · Deutsch · Français · 한국어

Deploy to Vercel Deploy to Netlify

Banner

Features

  • WHOIS & RDAP - Domain, IPv4, IPv6, ASN, CIDR lookup with RDAP-first, WHOIS fallback
  • Dynamic OG Images - Satori-based Open Graph image generation via /api/og
  • Responsive UI - Shadcn UI + Tailwind CSS, works across mobile, tablet, and desktop. PWA support.
  • Dark / Light Theme - System detection with manual toggle
  • History & Shortcuts - Local history with search, filter, and keyboard shortcuts
  • EPP Status Codes - Human-readable status descriptions with ICANN references
  • Registrar & NS Branding - Auto-detected icons for major registrars and nameserver providers
  • Domain Metrics - Moz DA/PA/Spam Score integration (optional)
  • Redis Caching - Server-side result caching with Cache-Control headers
  • Open API - /api/lookup for programmatic access, /api/og for image generation
  • i18n - English, Chinese (Simplified/Traditional), German, Russian, Japanese, French, Korean
  • API Documentation - Built-in /docs page with interactive examples

Community Forks

See great work from brilliant builders extending this project:

Deploy

Platforms (Recommended)

Vercel / Netlify / Zeabur

Docker

docker run -d -p 3000:3000 programzmh/next-whois-ui

Source Code

git clone https://github.com/zmh-program/next-whois-ui
cd next-whois-ui
pnpm install
pnpm dev

Environment Variables

Variable Description Default
NEXT_PUBLIC_SITE_TITLE Site title Next Whois
NEXT_PUBLIC_SITE_DESCRIPTION Site description
NEXT_PUBLIC_SITE_KEYWORDS Site keywords
NEXT_PUBLIC_HISTORY_LIMIT Max history items (-1 = unlimited) -1
NEXT_PUBLIC_MAX_WHOIS_FOLLOW Max domain WHOIS follow depth 0
MOZ_ACCESS_ID Moz API Access ID
MOZ_SECRET_KEY Moz API Secret Key
REDIS_HOST Redis host (empty = cache disabled)
REDIS_PORT Redis port 6379
REDIS_PASSWORD Redis password
REDIS_DB Redis database index 0
REDIS_CACHE_TTL Cache TTL in seconds 3600

API

See the built-in API Documentation page, or:

GET /api/lookup?query=google.com — WHOIS/RDAP lookup (parallel, merged results, includes raw responses)

GET /api/og?query=google.com — Dynamic OG image generation

Tech Stack

  • Next.js 14 (Pages Router, Edge Runtime for OG)
  • Whoiser + RDAP client
  • Satori (via next/og) for image generation

from  https://github.com/zmh-program/next-whois

示例: https://who.zmh.me/en/briten.top

轻盈优雅的 Web 原生 Cloudflare R2桶文件管理器,一切皆在浏览器中完成.

 | 📁 A lightweight, elegant, pure-browser Cloudflare R2 file manager. Everything happens right in your browser. 

 https://r2.viki.moe/

中文 | English

R2 Web

📁 轻盈优雅的 Web 原生 Cloudflare R2 文件管理器,一切皆在浏览器中完成。

本项目被阮一峰大佬在 《科技爱好者周刊(第 387 期)》 中推荐,在此表示感谢!

同时也欢迎大家试用并提出宝贵意见,一起把这个工具做得更好用、更顺手!

在线使用

跟随 下方指引 开启 CORS,然后访问 r2.viki.moe 立即开始管理 R2 桶。

私有部署

这里提供几个常见的静态托管平台部署选项,点击按钮即可一键部署:

平台 快速部署
Vercel Deploy with Vercel
Netlify Deploy to Netlify
Cloudflare Pages Deploy to Cloudflare

如果用得不错,别忘了点个免费的小星星 ✨,对这个项目很重要,非常感谢~

其他服务只需部署 src 目录即可,部署后记得更新 CORS 规则允许你的域名访问 R2 API。

反馈途径

为什么是 R2 Web?

传统方案痛点:

  • 官方控制台功能基础,登录、管理麻烦,无法高效管理大量文件(复制、移动、重命名等)
  • 第三方客户端要下载安装,跨平台麻烦
  • 命令行工具上手门槛高,不适合临时操作
  • 其他 Web 项目不专注 R2,功能不完善,体验欠佳

R2 Web 解决的问题:

  • 打开浏览器就能用,跨平台零成本
  • 拖拽、粘贴上传 + 图片压缩,省流量省时间
  • PWA 支持,装到桌面像原生应用
  • 纯前端实现,数据不经过第三方服务器

R2 Web 无法替代的场景:

  • 超大文件上传(>300MB),建议使用 rclone 等工具
  • 复杂权限管理,建议使用官方控制台或 API
  • 自动化脚本,建议使用官方 SDK 或 CLI
  • API 集成,无后端服务,建议使用官方 SDK 或直接调用 R2 API

使用场景

  • 文件管理: 目录浏览、重命名、移动、删除,轻松管理大量文件。
  • 文件浏览: 内置图片/视频/音频/文本预览,快速查看内容无需下载。
  • 私有图床: 拖拽/粘贴上传,自动压缩,复制为 Markdown/HTML 格式。

设计理念

  • 零构建,源码即产物,无需编译打包
  • 零框架,原生 Web 技术优先,不依赖框架
  • 零后端,所有逻辑在浏览器中完成,直连 R2 API
  • 极简美学,黑白灰 + R2 橙色,小圆角、扁平化
  • 性能至上,懒加载、防抖节流、请求缓存
  • 细节优先,流畅动画、及时反馈、键盘导航

界面截图

9392ee.png

ea7dd6.png

功能速览

功能类别 具体功能
文件管理 目录浏览、分页加载、懒加载缩略图;按名称/日期/大小排序;重命名、移动、复制、删除(支持递归);多选批量删除、复制、移动
文件上传 拖拽/粘贴/选择器上传;文件名模板(哈希、日期、UUID 等占位符);上传前自动压缩图片(WebAssembly)
文件预览 图片预览(常见格式);视频/音频内嵌播放器;文本文件预览(代码高亮)
链接复制 URL 直链、Markdown、HTML、预签名 URL
个性化 简体/繁体/英语/日语;深色模式(跟随系统);配置分享链接/二维码
PWA 安装到桌面,原生体验

快速开始

1. 配置 R2 桶 CORS

在 Cloudflare 控制台配置 CORS 规则(路径:R2 → 存储桶 → 设置 → CORS 策略):

[
  {
    "AllowedOrigins": ["https://r2.viki.moe"],
    "AllowedMethods": ["GET", "POST", "PUT", "DELETE", "HEAD"],
    "AllowedHeaders": ["*"],
    "ExposeHeaders": ["ETag"],
    "MaxAgeSeconds": 86400
  }
]

Tip

私有部署? 把 AllowedOrigins 改成你的域名即可。

2. 填写凭证连接

访问 r2.viki.moe,填写 R2 凭证进行连接。凭证只存储在浏览器 localStorage,不会上传。

3. 开始使用

开始管理文件、目录,拖拽文件、直接 Ctrl + V 即可上传,右键文件可进行重命名、复制链接等操作。

如果当作图床使用,建议设置文件名模板,生成带哈希的唯一文件名、开启图片压缩,提升性能和安全性。

实用技巧

文件名模板示例

  • [name]_[hash:6].[ext] - 原文件名 + 6 位哈希(默认)
  • images/[date:YYYY/MM/DD]/[uuid].[ext] - 按日期分目录
  • backup/[timestamp]-[name].[ext] - 时间戳前缀备份

配置分享链接

生成「配置分享链接」或「配置分享二维码」,快速在多设备同步配置。

Caution

链接包含 R2 访问凭证,请不要直接分享到公共平台。

缓存优化

项目内置支持请求缓存,对目录内容等常见频繁请求返回数据进行了缓存。

对于 CDN 缓存,建议在 Cloudflare 控制台配置缓存规则提升加载速度。

fca0bf44.png

技术实现

纯前端应用,无构建步骤,代码写完即可部署。

核心技术: HTML5/CSS3/ES6+,CSS Layers、原生 <dialog>、原生 Fetch、Import Maps、WebAssembly

依赖库:

  • aws4fetch - AWS4 请求签名,处理 R2 S3 API
  • dayjs - 日期格式化
  • @jsquash/* - WebAssembly 图片压缩(MozJPEG、OxiPNG、libwebp、libavif)
  • qrcode - 二维码生成

无需: Node.js、Webpack、Vite、React、Vue 等构建工具和框架,保持项目轻盈和零依赖。

本地开发

git clone https://github.com/vikiboss/r2-web.git
cd r2-web

# 安装依赖(仅用于类型提示)
pnpm install

# 启动本地服务器
npx serve src
#
python3 -m http.server 5500 --directory src

详细开发指南见 CLAUDE.md

FAQ

Q: 凭证安全吗?

A: 凭证只存储在浏览器 localStorage,不会上传到任何服务器。建议使用指定 bucket、非管理员读写权限的 API 令牌。

Q: 支持哪些浏览器?

A: 现代浏览器(Chrome/Edge/Firefox/Safari 最新版),不考虑 IE 兼容。

Q: 图片压缩在哪里进行?

A: 本地压缩使用 WebAssembly,完全在浏览器中完成,文件不会上传到第三方服务器。如果使用云压缩(Tinify 服务),则会将图片上传到 Tinify 服务器进行压缩。

Q: 可以私有部署吗?

A: 可以,fork 仓库后修改 CORS 配置中的 AllowedOrigins,部署到任意静态托管服务(Cloudflare Pages、Vercel、Netlify 等)。

Q: 配置分享链接包含什么信息?

A: 包含访问密钥 ID、秘密访问密钥、存储桶名称等敏感信息,请勿公开分享。

Q: 为什么上传失败?

A: 检查 CORS 配置是否正确、凭证是否有效、文件是否超过 300MB(大文件建议用 rclone)。

后续计划

  • 持续优化 UI/UX,增加更多快捷操作

开发故事

项目使用 Claude 4.6 Opus 模型 Vibe Coding 完成,需求到实现纯手工提示词驱动。初始架构和开发设计的提示词可以参考 plan.md

FROM  https://github.com/vikiboss/r2-web

( https://github.com/brightmann/r2-web)

Friday, 26 June 2026

有保命功能的私人飞机

 

搭建基于nextjs的静态博客程序inb

 

 首先fork此项目https://github.com/imyuanli/next-blog. 我fork后,得到的项目地址是

https://github.com/brightmann/inb .

 删除仓库里的package-lock.json文件。编辑package.json文件,在第3行version的下一行加上:

 "engines": { "node": "20.x" },

 命令就用默认的npm install和npm run build

然后点击deploy,等待部署完成。 部署完成后,我得到的博客地址是https://inb-bm.vercel.app/ ,https://inb-bm.vercel.app/blog

访问https://github.com/brightmann/inb/tree/master/posts,在这里新建源帖(即add file),我新建了源帖love-net.mdx,内容为:

---
title: 情网
summary: "这是一篇文章"
date: 2026-06-26 20:35:00
tags: [misc1, misc2, misc3]
draft: false
---

此处写正文或html codes 

( 详见https://github.com/brightmann/inb/blob/master/posts/love-net.mdx?plain=1)

 约等2分钟,博客网站就会更新。

项目地址: 

 https://github.com/imyuanli/next-blog

 https://github.com/brightmann/inb

 https://github.com/imyuanli/next-blog/issues/31

演示博客: 

 https://inb-bm.vercel.app/blog,支持分页

 https://inb-bm.vercel.app/blog/love-net ,能显示视频

( https://inb-tx3p.vercel.app/blog,我之前部署的。对应的仓库是https://github.com/briteming/inb .

 https://inb-tx3p.vercel.app/blog/fh)

-----------------------------------

在vercel.com/new的console里,提示:2026-10-1日开始, vercel.com不再支持node 20.x版。如果在2026-10-1日或之后的时间部署本程序,可能会失败。到时再问问程序作者。

Thursday, 25 June 2026

搭建基于nextjs的静态博客程序nlb

 首先fork此项目https://github.com/PrinOrange/nextjs-lexical-blog. 我fork后,得到的项目地址是https://github.com/brightmann/nextjs-lexical-blog/.

访问 https://github.com/brightmann/nextjs-lexical-blog/tree/main/data/posts,在这里新建源帖(即add file),我新建了源帖2026-06-20-fh.md ,内容为:

---
title: "战马"
time: "2026-06-20 09:40:00"
tags: ["misc1", "misc2", "misc3"]
summary: "这是一篇文章"
---

此处写正文或html codes.

( 详见https://github.com/brightmann/nextjs-lexical-blog/blob/main/data/posts/2026-06-20-fh.md?plain=1)

然后,访问https://app.netlify.com/,导入项目https://github.com/brightmann/nextjs-lexical-blog/ . Project name的值可以自己设置(我设置为nlb-ym),这个值就是平台给你的二级域名。

我点击deploy按钮后,得到的网址是 https://nlb-ym.netlify.app/

项目地址: https://github.com/PrinOrange/nextjs-lexical-blog.

 https://github.com/brightmann/nextjs-lexical-blog/

演示博客: https://nlb-ym.netlify.app/

 https://nlb-ym.netlify.app/posts ,支持分页。

我在vercel.com/new部署失败,于是转到 https://app.netlify.com/部署。

 https://github.com/PrinOrange/nextjs-lexical-blog/issues/11

我在本地的windows的git-bash程序里,build成功。运行pnmp dev, 然后访问http://127.0.0.1:3000/,即可看到网站效果。如图:


 如果你在linux vps里部署它,则另外安装nginx, 用nginx反向代理127.0.0.1:3000

 

 

 

Wednesday, 24 June 2026

在埃塞俄比亚的一家菜市场,每个人都会说中文

 

react-drive-cms

 

Publish articles directly from Google Drive to your blog with React JS.

 

ReactDrive CMS v4.2.7, updated for 2022!

Publish articles directly from Google Drive to your blog with React JS. Serverless setup with no transpiling. In 2022, the setup has a couple extra steps, mostly because of changes with the third party services:

  • Google Spreadsheets API v3 has been discontinued and the update to the v4 requires the use of an API key that you need to configure in the Google Cloud Console
  • Sendgrid requires to create a verified sender account

Live demo here: http://misterfresh.github.io/react-drive-cms/

Features:

  • A dynamic site, but no backend to manage, no database, no server, no hosting & no maintenance (almost)
  • A MS Word-like and MS Excel-like interface that users are familiar with
  • Disqus comments system integration with React Hooks
  • SendGrid email forwarding integration so that you can receive messages from the contact form on your email address.
  • Regular URLs (no hashbang)
  • A simple blog starter kit that can be easily customized to your liking.

How to use:

  1. Connecting your React App to your Google Drive : follow this detailed step-by-step guide: https://github.com/misterfresh/react-drive-cms/blob/master/GUIDE.md

  2. In order for the contact form to work, publish the following script as a Google Web App: https://gist.github.com/misterfresh/b69d29a97cf415980be2 . In your "Visitors" Google spreadsheet, go to Tools>Script Editor. You can create a free SendGrid account and paste your SendGrid API key in the script. You will also need to have a verified sender email with SendGrid, and set that email in the "From" and "ReplyTo" fields in the script on lines 55 and 59. Save the script and click on Publish>Deploy as Web App.

  3. Fill in the correct values in ./conf.js :

    • "dashboardId" is the id of the "Dashboard" Google spreadsheet.
    • "sendContactMessageUrlId" is the id of the Google Web App script that does the email forwarding
    • "shortname" is the website's Disqus identifier
    • "root" is an optional url parameter, that would be the name of the project on GitHub pages.
  4. Push these changes to your forked repository on GitHub, go to your repo's Settings tab to publish it.

That's it!

7 years of ReactDrive CMS!

ReactDrive CMS was started in October 2015. The objective was to provide a free, most hassle-free way of hosting a basic dynamic website.

It uses Github Pages to host static assets, and uses React to generate the HTML on the client. The CMS part is handled using google Docs, and a google Spreadsheet is the "database". The contact form is the most complicated part : the form data will be sent to a public google apps script which will in turn write the visitor in the logbook spreadsheet and then post the form data to the sendgrid api, which will send an email to the site owner.

This setup has proven remarkably stable over the years, requiring only minor changes every 3 years or so to stay online, and having zero operating costs.

It has evolved with React patterns, starting with Browserify and Gulp and then later using Redux, and now switching to React Hooks and using Preact and htm library under the hood to avoid transpiling the code.

How to customize, no tools required:

From a terminal, run:

npm run start

This will start the local server. Open http://localhost:8080/ in your favorite browser.

from  https://github.com/misterfresh/react-drive-cms

黄仁宇:《万历十五年》失败者们组成了一个失败的王朝

 

“中国两千年来,以道德代替法制,至明代而极,这就是一切问题的症结。”


壹  黄仁宇的明史研究之路

本书的英文版书名为“1587,A Year of No Significance”,作者的署名为Ray Huang,1981年美国耶鲁大学出版。初稿是用英文写的,写成后,出于向国内读者求教之忱,乃由笔者本人译为中文,并作某些修改润色。

我明史感觉兴趣,说来话长。1959年,我在密支根大学历史系读书,选定了“明代的漕运”作为博士论文的题目。这一研究过程花了5年。论文完成后,算是对明代的财政税收制度有了一知半解,然而遗留的问题仍然不少。

为了解决自己的困惑,并图对明代的财政与税收窥其全豹,乃开始收集材料,撰写Taxation and Governmental Finance in 16th Century Ming-China一书。当时正值台北影印出版了《明实录》,此书为明代史料的渊薮,自然在所必读。

全书133册,又无索引可资利用,所以只好硬着头皮,在教书之余每周阅读一册。这一走马观花式的阅览就花去了两年半。除此而外,参考奏疏笔记、各地方志,搜寻国内外有关的新旧著作,费时更多。此书从计划撰写到杀青定稿,历时7年,1974年由英国剑桥大学出版。

结论从材料中来。多年以来摸索于材料之中,我对明史中的若干方面形成了自己的初步看法,开始摆脱了人云亦云的束缚。这些看法容或有所不当,但多少总可以有助于学术界的探讨。


贰  从税收看民生

比如,过去关于明史的叙述,几乎无不有“税重民穷”的说法。

如果意在说明当日的官僚贪污百出,无力的百姓被摊派的赋役过重,富者愈富,贫者愈贫,这可以言之成理。要是认为全国税收总额过高而导致百姓贫困,则与事实有所出入。

16世纪末,全国田赋额最重的为南直隶苏州府,约占农村收入的20%。此外各府县一般都在10%以下,其中又有轻重的不同,山东曹县全县的赋役约占农村收入的9%,去苏州不远的溧阳县,情形就更为奇怪,约在1—5%之间。而以比例而言,与此同时的日本大名政权,税额占收入的50%。以总额而言, 17世纪末期的英国,人口为五百万,税收每年竟达七百万英镑,折合约银两千余万两,和人口为三十倍的中国大体相埒。

据此而作进一步探索,可知“民穷”的根本原因不在国家的赋税过重,而端在法律的腐败和政府的低能。国家的税率低,受惠者并非农民,只是鼓励了大小地主加重剥削以及官僚乡里额外加征。


叁  从先进的汉唐演变为落后的明清

中国幅员广大,情形复杂。明朝采取严格的中央集权,施政方针不着眼于提倡扶助先进的经济,以增益全国财富,而是保护落后的经济,以均衡的姿态维持王朝的安全。这种情形,在世界史中实属罕见,在中国历史中也以明代为甚,而其始作俑者厥为明太祖朱元璋。下面一例可以作为管中窥豹。

洪武二十一年(1388),朱元璋亲自指示,让人民纳税实物不入仓库,直接供应于军士的家庭,军士则不再发给军饷,并规定先在应天府抽派若干税民,和金吾卫的五千军士对口。试验一年以后,朱元璋认为成绩良好,乃通令全国一体施行。

这一办法之脱离实际,窒碍难通,自不待言而自明,于是只好虎头蛇尾,销声匿迹。这种安排虽然不再执行,但与之相适应的其他经济措施,则依然危害极大。如果军需税收总收总发,国内的交通通讯必然相应而有较大的进步,次之则银行业、保险业就会应客观的需要而产生,商业组织和法律也会有所发展。各地区既互通有无,以后就可以分工合作,各按其本地的特殊情况而发展其生产技术。

西欧各国在14世纪已经朝着这一方向前进,日本在德川幕府末期,亦复如是。而明代的财政税收制度则和民间经济的发展相脱节。

万历二十年(1592),北京的宛平县知县沈榜声称,他每年要向27个不同的机构交款,总数则不出白银两千两。与此相似,全国布满了这短距离的补给线,此来彼往,侧面收受,既无架构,而提出的统计数字,经常为一纸具文,以致发生了上述税率参差不一的现象。

这种维护落后的农业经济、不愿发展商业及金融的做法,正是中国在世界范围内由先进的汉唐演变为落后的明清的主要原因。

1973年英国《观察家》(Observer)周刊,以李约瑟博士、鲁桂珍博士和黄仁宇博士三人为封面,做特别报道

1972年,我去英国剑桥,参加李约瑟博士主持的《中国科学技术史》的工作,历时一年,兹后我又几次有机会旧地重游,向李公学习。上述看法,我们已写为“The Nature of Chinese Society:A Technical Interpretation”一文,曾在罗马和香港两处发表。李公1974年4月30日在香港演讲,也以此文为讲稿,后节译为中文,刊载于香港的《七十年代》杂志。


肆   道德代替法制:中国历史的症结

我们也很难同意这样一种看法,即认为在明代万历年间,中国的封建经济已向资本主义经济进展。

资本主义是一种组织,一种系统。即马克思在《资本论》第二卷中论述资本主义的流通方式,其公式亦为C-M-C,即商品(Commodity)交换为货币(Money),货币又再交换为商品,川流不息。

但是货币是一种公众的制度,它把原来属于公众的权力授予私人。私人资本积累愈多,它操纵公众生活的权力也愈大。同时,商业资本又是工业资本的先驱,商业有了充分的发展,工业的发展才能同样地增进。这是欧美资本主义发展的特征。

中国的传统政治既无此组织能力,也决不愿私人财富扩充至不易控制的地步,为王朝的安全之累。


《松窗梦语》(明)张瀚撰

明代张瀚所著的《松窗梦语》中,记载了他的家庭以机杼起家。中外治明史的学者,对这段文字多加引用,以说明当时工商业的进步及资本主义的萌芽。其实细阅全文,即知张瀚所叙其祖先夜梦神人授银一锭、因以购机织布云云,乃在于宣扬因果报应及富贵由命的思想。

姑不论神人授银的荒诞不经,即以一锭银而论,也不足以购买织机,所以此说显然不能作为信史。同时代的书法家王世懋,在《二酉委谈》中提到江西景德镇烧造瓷器,火光烛天,因而称之为“四时雷电镇”。

当代好几位学者据此而认为此即工业超时代发展的征象。实则王世懋的本意,是在于从堪舆家的眼光出发,不满当地居民穿凿地脉,以致没有人登科中举;而后来时局不靖,停窑三月,即立竿见影,有一名秀才乡试中式。

如是等等的问题,其症结到底何在,这是研治明史者所不能不认真考虑的。笔者以为,中国两千年来,以道德代替法制,至明代而极,这就是一切问题的症结。

写作本书的目的,也重在说明这一看法。这一看法,在拙著《财政史》中已肇其端。本书力图使历史专题的研究大众化,因而采取了传记体的铺叙方式。书中所叙,不妨称为一个大失败的总记录。

因为叙及的主要人物,有万历皇帝朱翊钧,大学士张居正、申时行,南京都察院都御史海瑞,蓟州总兵官戚继光,以知府身分挂冠而去的名士李贽,他们或身败,或名裂,没有一个人功德圆满。

即便是侧面提及的人物,如冯保、高拱、张鲸、郑贵妃、福王常洵、俞大猷、卢镗、刘綎,也统统没有好结果。这种情形,断非个人的原因所得以解释,而是当日的制度已至山穷水尽,上自天子,下至庶民,无不成为牺牲品而遭殃受祸。


伍  明朝历史对现代的启示

在上述前提之下,对具体历史人物的具体评论,就难免有与国内外明史研究专家有出入之处。

例如万历皇帝,历来均以为昏庸,读者在读毕本书以后,也许会认为笔者同情这位皇帝。如果真有这样的批评,笔者将不拟多作无益的辩解。因为本书论述万历,本在于说明皇帝的职位是一种应社会需要而产生的机构,而每一个皇帝又都是一个个人。

又比如海瑞,这也是一个容易惹起是非的题目,十五年前的一段公案,至今人们记忆犹新。在本书中专设海瑞一章,并不是要在这段已经了结的公案再来画蛇添足,而意在向读者介绍当日地方政府的一些形态。有关16世纪地方行政的资料不多,沈榜的《宛署杂记》所载,为京师的情形而非一般概况,顾炎武的《天下郡国利病书》过于琐碎,唐鹤征的叙南直隶、归有光的叙浙江长兴县,也都有欠完整。相形之下,海瑞的遗墨,涉及当日地方政府的各个方面,最具参考价值。研究海瑞其人其文,可以使我们对当日的情形有更具体的了解。

当然,问题还远不止此,比如:

何以万历的立储问题业已解决而争执却绵延不断?

何以岛国日本可以侵犯中国而中国却不能远征日本?

何以当日的西欧已经用火器改进战术而中国还在修筑万里长城?

何以人人都说海瑞是好官而他却偏偏屡遭排挤?

这些具体问题,无疑和上述总的症结密不可分,然而却各有其特殊的原因。笔者写作此书时,虽已不同于过去的暗中摸索,但下笔时仍然颇费踌躇。书中所提出的答案,均属一得之见,敬请读者批评指正。

中国的过去,禁忌特多,所以说话作文时有隐晦,或指彼而喻此,或借古以讽今,这在明朝人更为惯技。本书论述明朝时事,举凡有所议论臧否,都是针对16世纪的历史而发的。如果我要对今人今事有所议论,自当秉笔直书,决不愿学明朝人的办法,否则就是违反了自己写书的目的。当然,另一方面,以古为鉴,今人也未尝不能得到若干启示。

这本《万历十五年》,意在说明16世纪中国社会的传统的历史背景,也就是尚未与世界潮流冲突时的侧面形态。有了这样一个历史的大失败,就可以保证冲突既开,恢复故态决无可能,因之而给中国留下了一个翻天覆地、彻底创造历史的机缘。


陆   作者结语

本书由英文译为中文,因为国内外情况的差别,加之所译又是自己的著作,所以这一翻译实际上是一种译写。笔者离祖国已逾三十年,很少阅读中文和使用中文写作的机会,而三十年来的祖国语言又有了不少发展,隔膜更多。

幸经中国社会科学院文学研究所沈玉成先生将中文稿仔细阅读一过,作了文字上的润色;又承中华书局编辑部傅璇琮先生关注,经常就各种技术问题与笔者书函磋商。

所以,本书与读者见面时,文字方面已较原稿流畅远甚。其有创意遣辞方面根本性的不妥,当然仍应由笔者负责。又,廖沫沙兄为笔者年轻时的患难之交,蒙他在百忙中挥翰题签,为本书生色不少。谨此一并致衷心的谢意。

黄仁宇 1981年1月于美国

--------

相关帖子:

 https://briteming.blogspot.com/2021/12/blog-post_98.html

 https://briteming.blogspot.com/2012/08/blog-post_7525.html

 https://briteming.blogspot.com/2015/05/blog-post_68.html

首任国立清华大学校长罗家伦:提起中国的知识分子,我们很觉痛心

 

罗家伦(1897年12月21日—1969年12月25日),字志希,笔名毅,祖籍浙江绍兴柯桥钱清镇江墅村,生于江西进贤。他是“五四运动”的学生领袖和命名者,中国近代著名的教育家、思想家和社会活动家。1928年8月,31岁时出任国立清华大学第一任校长。

本文选自《中国人的品格》。


提起中国的知识分子,我们很觉痛心。

中国社会一般的通病,就是不负责任,而以行政的部分为尤甚(这当然是指行政的一部分而言)。从前的公文程式,是不用引号的;办稿的时候,引到来文不必照抄,只写“云云”二字,让书吏照原文补写进去。传说沈葆祯做某省巡抚,发现某县的来文上,书吏照抄云云二字,不曾将原引来文补入,该县各级负责人员,也不曾觉察。于是他很幽默地批道:“吏云云,幕云云,官亦云云,想该县所办之事,不过云云而已。”

这是一个笑话,但是很足以形容中国官僚政治的精神。

中国老官僚办公事的秘诀,是不负责任,推诿责任。所以上级官厅对下的公事,是把责任推到下面去;下级官厅对上的公事,是把责任推到上面去。责任是一个皮球,上下交踢。踢来踢去的结果,竟和火线中间,有一段“无人之境”(No man’s land)一样。

这是行政界的通病,难道知识界就没有互相推诿、不负责任的情形吗?有几多人挺身而出,本着自己的深信,拿出自己的担当来说,这是我研究的真理,这是我服务的责任,我不退缩,我不推诿!这种不负责任的病根,诊断起来,由于下列各点:

▍第一是缺少思想的训练。

他的思想,不曾经过严格的纪律,因此已有的思想固不能发挥,新鲜的思想也无从产生。外国的思想家常提倡一种严正而有纪律的思想(Rigorous  thinking),就是一种用逻辑的烈火来锻炼过的思想。正确的思想是不容易获得的,必得经过长期的痛苦,严格的训练,然后才能为我所有。

思想的训练,是教育上的重大问题。历次世界教育会议,对于这个问题,都曾加以讨论。有人主张研究社会科学的人,他也得学高深的数学,不是因为他用得着这些数学,乃是因为这种数学是他思想的训练。思想是要有纪律的。思想的纪律,决不是去束缚思想,而是去引申思想,发展思想。中国知识界现在就正缺少这种思想上的锻炼。

▍第二是容易接受思想。

中国人向来很少人坚持他特有的思想,所以最容易接受他人的思想。有人说中国人在思想上最为宽大,最能容忍,这是美德,不是毛病。但是思想这件事,是就是是,非就是非,谈不到什么宽大和容忍。不是东风压倒西风,便是西风压倒东风。

哥白尼主张“地动说”,固且自己深信是对的;就是布鲁诺和伽利略研究这个学说认为他是对的以后,也就坚决地相信他、拥护他,至死终不改变。试看西洋科学与宗教战争史中,为这学说奋斗不懈、牺牲生命的人,要有多少。这才是对真理应有的态度。

中国人向来相信天圆地方:“气之轻清,上浮者为天;气之重浊,下凝者为地。”但是西洋的地动学说一传到中国,中国人立刻就说也是圆的,马上接受,从未发生过流血的惨剧。

又如达尔文的生物进化论,也是经过多少年宗教的反对,从苦斗中才挣扎出来的。直至1911年,德国还有一位大学教授,因讲进化论而被辞退:甚至到了1921年,美国田纳西(Tennesses)州,还有一位中学教员因讲进化论而遭诉讼。这虽然可以说是他们守旧势力的顽固,但是也可表现西洋人对于新思想的接受不是轻易的。

可是在中国却不然。中国人本来相信盘古用金斧头开天辟地:“自从盘古开天地,三皇五帝定乾坤。”不是多少本小说书上都有吗?但是后来进化论一传进来,也就立刻说起天演和物竞天择和人类是猴子变来的(其实人类是猴子的“老表”)。

人家是经过生物的实验而后相信的,我们呢?我们只是因为严复译了赫胥黎的《天演论》,文章做得极好,吴挚甫恭维他“骎骎乎周秦诸子矣”一来,于是全国风从了。

像这样容易接受思想,只足以表示我们的不认真、不考虑,哪里是我们的美德?容易得,也就容易失;容易接受思想,也就容易把它丢掉。这正是中国知识界最显著的病态。现在中国愈是中学生,愈是一知半解的人,愈好谈主义,就是这个道理。

▍第三是混沌的思想。

既没有思想的训练,又容易接受外来的思想,其当然的结果,就是思想的混沌。混沌云者,就是混合不清。况且这种混合是物理上的混合,而不是化学上的化合,上下古今,不分皂白,搅在一起,这就是中国思想混合的方式。

我不是深闭固拒,不赞成采取他人好的思想,只是采取他人的思想,必须加以自己的锻炼,才能构成自己思想的系统。这才真是化合呢!

西洋人也有主张调和的,但是调和要融合(Harmony)才对,不然只是迁就(Compromise):真理是不能迁就的。

我常怪中国的思想中,“杂家”最有势力。如春秋战国时代,百家争鸣,极端力行的墨、虚寂无为的老,都是各树一帜,思想上的分野是很清楚的。等到战国收场的时候,却有《吕氏春秋》出现,混合各派,成为一个“杂家”。汉朝斥百家而尊儒孔,实际上却尚黄老,结果《淮南子》得势,混合儒道,又是一个杂家。

这种混杂的情形,直至今日,仍相沿未改。二十年前我取了一个“古今中外派”的名词,就是形容这种思想混杂的人。丈夫信仰基督教,妻子不妨念佛,儿子病了还要请道士“解太岁”。这是何等的容忍!容忍到北平大出丧,一班和尚、一班道士、一班喇嘛、一班军乐队,同时并列,真是蔚为奇观!这真是中国人思想的缩影!

▍第四是散漫的思想。

这种是片断的、琐碎的、无组织的思想。散漫的思想固然由于思想无严格的训练,但是主要的原因还是由于懒。这思想的方式常靠触机,只是灵机一来,思想就在这机来的一刹那停止了,不追求下去了。这如何能发生系统的思想,精密的思想?于是成了“万物皆出于几,万物皆入于几”  的现象。

他只是让他的思想,像电光石火一样的一阵阵的过去。有时候他的思想未始不聪明,不过他的聪明就止于此,六朝人的隽语,是由此而来的。《世说新语》的代代风行也是为此。中国人的善于“玩字”,没有其他的理由。因此系统的、精密的专门哲学,在中国很难产生。

因此中国文学里很少有西洋式如弥尔顿的《天国云亡》,歌德的《浮士德》那般成本的长诗。因此笔记小说为文人学士消闲的无上神品。现在还有人提倡沈三白《浮生六记》和小品文艺,正是这种思想的斜晖落照!不把思想的懒根性去掉,系统的伟大思想是不会产生的。

▍第五是颓废的思想。

颓废的思想是思想界的鸦片烟,是民族的催眠术——并且由催眠术而进为催命符。颓废的思想就是没有气力的思想,没有生力的思想。什么东西一经过他思想的沙滤缸,都是懒洋洋的。颓废的思想所发生的影响,就是颓废的行为。

以现在的文艺品来说罢,有许多是供闺秀们消闲的,是供老年人娱晚景的。有钱的人消闲可以,这是一格;但是我们全民族是在没有饭吃的时候,没有生存余地的时候呀!

老年人消闲可以,因为他的日子是屈指可算的,但是给青年人读可为害不浅了。而现在喜欢读这些刊物的反而是青年人!文人喜欢诗酒怡情,而以李太白为护符。是的,李太白是喜欢喝酒。“李白斗酒诗百篇”。你酒是喝了,但是像李太白那样的一百篇诗呢?

我们学李太白更不要忘记他是“十五学剑术,遍干诸侯,三十成文章,力抵卿相,虽长不满七尺,而心雄万夫”的人呀!你呢?颓废的思想不除,民族的生力不能恢复!

▍第六不能从力行中体会思想,更不能以思想证诸力行。

中国的文人,中国的“士”,是最长于清谈的,最长于享受的。在魏晋六朝是“清谈”,在以后是蜕化而为“清议”。清谈、清议是最不负责任的思想的表现。

南宋是清议最盛的时代,所以弄到”议未定而金兵已渡河”。明末也是清议最盛的时代,所以弄到忠臣义士,凡事不能作有计划的进行,逼得除了一死以外,无以报国。“清议可畏”,真是可畏极了!横直自己不干,人家干总是可以说风凉话了。自己叹叹气,享享乐罢  :“且以喜乐,且以永日,我躬不阅,遑恤我后。”

老实说,现在我们国内的知识分子,也不免宋明的清议风气,只是享乐换了一套近代化的方式。

我九年前到北平去,看见几位知识界的朋友们,自己都有精致的客厅、优美的庭园,莳着名卉异草,认为不足的时候,还可到北海公园去散散步。我当时带笑地说道,现在大家是“花萼夹城通御气”,恐怕不久要“芙蓉小院入边愁”。现在回想起来,字字都是伤心之泪。

这不仅是北平如此,他处又何独不然?我们还知道近年来通都大邑有“沙龙”的风气吗?“我们太太的沙龙”是见诸时人小说的。很好,有空闲的下午、在精致的客厅里,找几位时髦的女士在一道,谈谈文艺,谈谈不负责任的政治。

是的,这是法国的风气,巴黎有不少的沙龙,但是法国当年还靠莱菌河那边绵延几百里的马奇诺防线呀!哪知道纸醉金迷的结果,铜墙铁壁的马奇诺竟全不可靠。色当一役,使堂堂不可一世的头等强国,重踏拿破仑第三时代的覆辙,夷为奴隶牛马,这是历史上何等的悲剧?

我不否认享乐是人生应有的一部分,只是要看环境和时代。我们的苦还没有动头呢!我们不愿意苦,敌人也还是要逼得我们苦。  “来日大难”,现在就是,何待来日?我们现在都应忏悔。我们且先从坚苦卓绝的力行里体会我们的思想,同时把我们坚强而有深信的思想,放射到力行里面去。

以上的话,是我们互责的话,也是我们互勉的话。因为如果我脑筋里还有一格兰姆知识的话,我或者也可以忝附于知识分子之列。

我所犯的毛病,同样的也太多了。不过我们要改造民族的思想的话,必定先要自己负起知识的责任来。尤其是在现在,知识分子对于青年的暗示太大了。我们对于青年现在最不可使他们失望,使他们丧失民族的自信心。我们稍见挫折,便对青年表示无办法,是最不可以的事。

领导青年的知识分子尚且如此,试问青年心理的反应何如?我们要告诉他们世界上没有没办法的事,民族断无绝路,只要我们自己的脑筋不糊涂

知识是要解决问题的。知识不怕困难。知识就是力量。而且这种力量如此之大,凡是物质的力量透不进去的地方,知识的力量可以先透进去。知识的力量透过去之后,物质的力量,就会跟着透过去。全部的人类文化史,可以说明我这句话。我们只要忠诚地负起知识的责任来,什么困难危险都可以征服!

顾亭林说道:“天下兴亡,匹夫有责。”何况知识分子?他又说:“有亡国者,有亡天下者。”他所谓“亡国”,是指朝代的更换;他所谓“亡天下”,是指民族的灭亡。现在我们的问题,是要挽回亡天下、亡民族的大劫。在这时候,知识分子如不负起这特别重大的责任来,还有谁负?

我觉得我们知识分子今后在学术方面要有创作、有贡献;在事业方面要有改革、有建树。我们不但要研究真理,并且要对真理负责。我们尤其要先努力把国家、民族渡过这难关。不然,我们知识分子一定要先受淘汰,连我也要咒诅我们知识分子的灭亡。

所谓‘社会主义改造’

 

“庆祝社会主义改造胜利”,认为它是“中国社会发生的深刻变革”“华丽转身”。我有种闻到血腥味的感觉。

这个“社会主义改造”之前有个“五反“运动。搜狐历史里面有篇如今被强迫尘封的文章---《那一年,中国商贾千人跳楼 全家共赴黄泉》说的就是1952年。文章中说:

上海的一些资本家纷纷以新任上海市长陈毅戏称“空降部队”的方式告别自己的企业据上海从1月25日至4月1日的不完全统计,因运动而自杀者就达到了876人,平均每天的自杀人数几乎都在10人以上。而且,有不少资本家更选择夫妻一同自尽,甚或带着孩子一同自杀,更足以见这场运动之激烈和对资本家精神冲击之巨大。”(共匪犯下的罪行罄竹难书

去年,资本家 “空降兵” 现象再现,多位企业家跳楼自杀。

现在新华社称当年剥夺资本家财产的事件为“中国社会发生的深刻变革”“华丽转身”, 这究竟对中国资本家和中国人意味什么?

吳祚來:美國為何兩次失去中國?從武器禁運到臺灣危機

兩次武器禁運深刻改變了中國與東亞的命運,如何避免第三次歷史誤判,將考驗美國與文明世界的政治智慧。

美國之音華盛頓報導:七國集團(G7)領導人星期二(6月16日)發表聲明重申,「反對任何單方面改變現狀的企圖,尤其是在東中國海、南中國海和臺灣海峽地區以武力或脅迫手段進行的企圖。」

中央社18日報導:總統賴清德今天表示,美國對臺安全承諾未變,相關軍售案仍在審議中,臺灣將持續強化自我防衛能力,並期待相關軍購案經美方審查後順利通過。

以上兩則新聞,共同指向臺灣安全與美國及文明世界的關聯。

本文透過回顧歷史,揭示一個被主流社會長期忽視的歷史真相:上世紀兩次世界大戰之後,歐美國家出於善意的對華武器禁運,最終卻導致了最惡劣的結果,改寫了中國與大東亞的政治格局,也深刻影響了美國與印太的關係。某種意義上,二戰時的美日太平洋戰爭,以及二戰後的韓戰、越戰,都與這兩次武器禁運有著密切的關聯。

一、一戰後對華武器禁運,中國政治版圖被改變

1919年一戰後的巴黎和會,因山東問題引發五四運動,但極少有人注意到這次會議在5月5日決定對華武器禁運,對中國與大東亞造成的深遠後果。

時任美國總統伍德羅·威爾遜提出的「十四點原則」,核心精神之一就是民族自決與主權平等,並透過建立國際聯盟來避免未來戰爭。在這種理念下,西方國家認為中國內部軍閥混戰屬於中國內政,因此1920年代前後,美英等國對中國政府的武器輸出開始實施嚴格限制。

這種善意的政策,卻使代表中國的北洋政府無法從歐美購買現代軍火,而蘇聯和日本卻因地緣關係持續對華出售武器。特別是蘇聯,1923年後開始系統性援助南方革命力量。孫中山透過「聯俄容共」政策,大量蘇聯軍事顧問、教官、資金與武器經海路進入廣州,建立黃埔軍校,共產黨勢力隨之擴張,成為共產國際在華的重要代理人。最終,北洋政府在財政、軍備與組織動員能力上逐漸落後,而南方革命力量在蘇聯支持下迅速壯大,國民黨北伐成功,共產黨在中國星火燎原

北洋政府的失敗固然有內部派系混戰、財政枯竭與政治合法性不足等原因,但武器禁運使北洋政府失去了從歐美獲取現代軍備的重要管道,而蘇聯卻能持續支持南方革命勢力,從而加劇了南北方力量失衡。中國北洋軍閥的有限內戰,因武器禁運造成力量失衡,從而升級為三個維度的戰爭:

一是內戰主體改變:從國共兩黨共同對抗北洋政府的戰爭,演變為國共兩黨之間的內戰;

二是東北亞地緣政治博弈加劇:中共建立蘇維埃政權,本質上是共產國際和蘇聯在中國的政治代理人,這刺激了日本軍國主義的崛起,蘇聯、日本與中國由此展開激烈的地緣政治競爭;

三是日本因蘇聯勢力在華擴張而受到刺激,發動全面侵華戰爭,進而引發美國介入,最終爆發太平洋戰爭。

回顧1919年5月5日巴黎和會確立的對華武器禁運及其後續連鎖反應,我們應當反思:為什麼歐美尊重國家主權的善意初衷,最終卻結出了惡果?它不僅使中國人民蒙受苦難,也對大東亞和美國產生了災難性後果。

二、二戰後對華武器禁運,中華民國政府敗走臺灣

1945年日本戰敗後,美國希望中國透過政治協商實現「聯合政府」,避免全面內戰。1945年10月,國共雙方簽署《雙十協定》,確認和平建國、政治協商與軍隊國家化原則。然而協定簽署後不久,共產黨依托蘇聯占領東北所形成的戰略優勢,大規模接收日軍遺留武器與工業設施,迅速擴軍備戰。

1946年,美國總統杜魯門派遣喬治·馬歇爾赴華調停,並於同年夏季推動對國民政府實施武器禁運,暫停部分軍火出口和軍事援助,希望以此迫使國共雙方停火談判。由於美國對國民政府實施武器禁運,國共實力對比迅速逆轉,國民政府無力回天1949年渡江戰役後,國民政府失去大陸,中華民國在大陸的統治失敗,美國痛失中國

「美國為什麼失去中國」,一度成為美國二戰後主流社會的熱議話題。直接原因之一,就是國民政府在對抗蘇聯支持的中國代理人-共产党的關鍵時期,美國對國民政府實施了武器禁運(當然,國民政府自身的重大決策失誤、經濟崩潰等因素也共同發揮了作用)。這一決策不僅重塑了中國與東亞的命運,也給美國及西方帶來了巨大衝擊。

中共建政後,美國被迫在東亞長期投入巨大戰略資源。朝鮮戰爭造成約3.6萬名美軍死亡、10餘萬人受傷;越南戰爭造成58,220名美軍死亡、超過15萬人受傷。兩場戰爭耗費巨額財政資源,並深刻影響了美國國內政治與國際戰略布局。(都是美国政府短视/目光短浅造成的恶果。它难道不知道共产党/共产主义是资本主义的死对头吗?支持谁也不能支持共产党啊

三、第三次武器禁運,或將導致中華民國臺灣陷入嚴重危機

歷史上兩次歐美對華武器禁運,導致中華民國兩次遭受重大挫折。

當前,若美國因類似理想主義思維或國際因素,對臺軍售持續拖延、附加條件或實質性限制,中共極可能誤判美國保護臺灣的決心。正如1949年毛澤東在得知美方不會干預渡江戰役後悍然發動進攻,最終使兩岸分治成為現實。

若衝突爆發並演變為類似俄烏戰爭的持久戰,南中國海將成為主戰場。其影響將遠超俄烏戰爭與美伊戰爭:作為印太海上貿易核心通道,日本、韓國、新加坡等周邊經濟體將遭受重創;臺灣晶片與全球高科技供應鏈將中斷,美國與印太地區的正常貿易也將無法維持。一旦臺海戰爭爆發,對世界經濟與產業鏈的衝擊將難以估量

更嚴重的是,中共或不惜一切代價,包括訴諸核威脅,試圖奪取臺灣。一旦得手,美國將失去臺灣這一戰略支點,南中國海將被中共實際控制,印太區域國家可能迅速屈服於中共霸權。

美國絕不能重蹈歷史覆轍。只有大力升級對臺軍備、堅定遏制中共武統野心,才能真正維護印太地區的和平與穩定

結語

歷史從不簡單重複,卻常以相似的方式向後人發出警告。兩次武器禁運,都源於對和平的善意期待,卻最終深刻改變了中國與東亞的命運。今天的臺灣問題,不僅關乎臺灣的命運,更是印太秩序與自由世界能否維持戰略穩定的關鍵問題。如何避免第三次歷史誤判,將考驗美國政府的政治智慧。


awesomeopensource.com

 https://awesomeopensource.com

Monday, 22 June 2026

陈景润-勇攀科学高峰的数学先驱

 

陈景润(1933——1996年),福建福州人,系新中国第一代数学家,中国科学院原数学研究所研究员、学部委员,是哥德巴赫猜想研究领域的先驱者。他在逆境中坚持学术探索、在困境中追求科学真理,用一生的执着与坚守,诠释了科学精神的真谛,也彰显了中国科学家在国际舞台上的学术自信与使命担当。

闽江畔仰望星空的追梦少年。陈景润出生于福州一清寒之家,在少年时期便展现出过人的数学天分,在中学阶段曾自学了大学丛书《微积分学》、哈佛大学讲义《高等代数引论》等。1948年他考入福州英华中学念高中,有幸遇到著名的空气动力学家、航空工程教育家沈元教授。其时,沈元教授任教于清华大学,1948年返榕处理家事,因逢战事滞留福州,遂接受母校英华中学邀请,临时担任数学和物理教师。一次数学课上,他用诗意的语言讲起哥德巴赫猜想:“数学是自然科学之皇后,数论是数学之皇冠,而哥德巴赫猜想恰似皇冠上的明珠。”哥德巴赫猜想被称为近代数学三大难题之一,自1742年提出已困扰数学界近3个世纪之久。这堂课给陈景润留下了深刻的印象,哥德巴赫猜想之梦就此种进了他的心中。

1950年春夏之交,凭借顽强的自学精神和过人的天赋,陈景润以高中同等学力考入厦门大学数理系,次年适逢厦大数学系成立,遂转入数学系接受系统且严格的数学训练。大学期间,李文清教授在讲数论发展史时,介绍了哥德巴赫猜想等3个尚未解决的世界难题,再次激发起陈景润的兴趣。

1953年9月,因国家建设需要,陈景润被安排提前一年毕业分配工作。1955年2月,在时任厦大校长王亚南的帮助下,陈景润回到厦门大学资料研究室工作,后担任数学系助教,得以潜心钻研他所钟爱的数学。在厦大工作期间,正值空袭警报频发之时,陈景润将华罗庚的经典著作《堆垒素数论》拆成单页携带至防空洞中研读,展现出惊人的毅力。其间,他发现书中关于“塔内问题”的论证尚有不足,将自己的改进方法撰写成《塔内问题》一文,受到华罗庚赏识。1956年8月,受华罗庚推荐赴京参加全国数学论文报告会,其研究成果获学界认可。1957年,在华罗庚的推荐下,陈景润正式调入中国科学院数学研究所。

撼动世界的“陈氏定理”。调入中国科学院后,陈景润获得了更广阔的科研平台,他将全部精力投入到哥德巴赫猜想这一世界数学难题的研究中。1966年5月,于《科学通报》上宣布证明了哥德巴赫猜想研究中的关键命题“1+2”,即“每一个大偶数都可以表示为一个素数及一个不超过两个素数的乘积之和”。然而,由于整个论文长达200多页,《科学通报》上的论证仅叙述了几个引理,论证过程并未得到翔实展示,国际数学界对此存有疑虑。

面对质疑,陈景润展现出非凡的定力和科学严谨精神。随后的7年里,在既无桌椅亦无书案,只有一块兼具卧床与书桌功能的木板,面积仅6平方米的狭小宿舍空间内,陈景润忍受病痛侵扰,以常人难以想象的毅力,夜以继日地对该证明进行反复推敲、完善和简化。1973年,他在《中国科学》杂志上发表了《大偶数表为一个素数及一个不超过二个素数的乘积之和》,详细证明了“1+2”,论文长度从原来的200多页精简到了100页,亦改进了1966年的结果。此项近乎以生命铸就的成果,以其无懈可击的逻辑和深刻的洞见,彻底征服了国际数学界,被誉为“移动群山”的杰作。当时英国数学家哈勃斯丹和李希特合著的《筛法》正在校印阶段,他们见到陈景润的论文后,立刻在书中补加一章“陈氏定理”(Chen's Theo-rem),才将书付印。“陈氏定理”的诞生,不仅是中国数学界具有里程碑意义的重大突破,更极大提升了中国基础科学研究的国际地位。它将哥德巴赫猜想的研究推进到前所未有的新高度,使最小素数从80推进至16,并将古老的筛法理论优化至被同行称颂的“光辉顶点”。这个定理被载入美、英、法、苏、日等国的许多论文专著,足见其影响之广泛。世界级的数学大师、美国学者阿·威尔说:“陈景润的每一项工作,都好像是在喜马拉雅山山巅上行走,每前进一步都非常困难。”高度赞誉陈景润攀登科学险峰的孤勇精神与辉煌成就。1977年初,完成论文《算术级数中的最小素数》,其研究成果至今在哥德巴赫猜想的研究领域还保持着领先地位。除了广为人知的哥德巴赫猜想外,陈景润在圆内格点问题、球内格点问题、华林问题等解析数论方面均有重要成果。

1978年1月,《人民文学》杂志刊载了徐迟的长篇报告文学《哥德巴赫猜想》;之后,《人民日报》《光明日报》大篇幅转载了这篇文章。陈景润的事迹传遍大江南北,极大地振奋了民族精神,点燃了无数青年投身科学事业的热情,成为解放思想、尊重知识、尊重人才时代潮流中一面耀眼的旗帜。陈景润也成为“科学的春天”最具代表性的象征人物。

名利之外的家国情怀。在生命的最后十年,即使身体状况不佳、科研工作繁忙,陈景润依然心系科普和人才培养,一次次应邀为中小学生开设讲座,以自身经历勉励青年学子:“科学探索需要决心、信心、恒心。”陈景润以超乎常人的意志,在病榻上完成了《哥德巴赫猜想》《趣味数学趣谈》《组合数学简介》《初等数论》等4部面向青少年的数学科普著作。这些著作语言通俗易懂,阐释深入浅出,成为启迪青少年数学思维、引领他们步入科学殿堂的经典读物。在证明了“1+2”后直到生命的终结,陈景润用一种与生命赛跑的态度向“1+1”这一顶峰发起进攻。住院治疗期间,他输液拒扎右手以坚持书写,直至喉咙失语、手不能握笔,还用含混语言和手势同学生探讨问题,依然表示“我不能停止工作”。

陈景润的一生,是纯粹科学家的一生,更是爱国知识分子的一生。1979年,陈景润应邀前往美国普林斯顿高等研究院讲学与访问期间,整天泡在图书馆、办公室里潜心治学,生活极其简朴。归国时,陈景润将节衣缩食积攒的7500美元全部上交国家。面对赞誉,他只有一句朴素的话语:“我们的国家还不富裕。”这份深沉的爱国热忱,超越了一切世俗的荣华。1996年3月,他安静地离开了这个世界,留下遗愿要将遗体捐献以作“科学事业最后的奉献”,其拳拳之心,尽显对祖国科学事业的殷切期望和无私奉献。

1999年,浩瀚星海增添了一个属于中国科学家的名字——经国际小天体命名委员会批准,将国际永久编号“7681”的小行星命名为“陈景润星”。这是首颗获得命名权的素数编号小行星,既是对陈景润永恒的纪念,也是宇宙星空中独一无二的科学丰碑。

from  https://www.cas.cn/xzfc/202507/t20250725_5077687.shtml

------------------------------------------------------------------------------------------------

陈景润的老婆由昆对他照顾有加。

https://baike.baidu.com/item/%E9%99%88%E6%99%AF%E6%B6%A6/18067

https://baike.baidu.com/item/%E7%94%B1%E6%98%86/5439453