PROJECTS · 开源项目

范凯 Robbin

2003 年创办 JavaEye,推动开源技术在中国开发者中的普及;曾任 CSDN、丁香园 CTO,带队打造服务上千万人的丁香医生在线问诊和上亿人使用的疫情地图。现在专注 AI 实践与课程,用 AI 创造价值,把个人能力经营成事业。

开源项目
8
GitHub Stars
1,246
近期 AI / Agent
5

05近期项目(AI / Agent)

围绕 Agent 的工程实践:让 Agent 能接力干活、能看新闻、能操作手机,也能从旧应用里把数据取出来。

x-news

社区热点新闻站 news.fankai.me 的源码:报告用 Markdown 写,导航和首页在构建时生成。

  • Daily、中文话题和英文话题三类报告按目录增删即可,hooks/autonav.py 在构建时生成导航、分类 index 和首页,不用手改 mkdocs.yml。
  • 中英文用 mkdocs-static-i18n 的后缀布局,根路径是中文、/en/ 是英文,缺英文稿自动回退;页头、首页和页脚订阅入口由 presentation.py 注入。
  • push 到 main 由 GitHub Actions 构建发布到 GitHub Pages,报告本身由 News bot 通过 x-research 技能生成,仓库里不放凭据和订阅者数据。
  • MkDocs Material
  • Python
  • GitHub Pages

android-adb-control

给 Agent 的安卓手机操作技能:先看界面,再走一步,验证结果后才决定下一步。

  • 纯指令型 Agent Skill,不是 MCP Server 或后台服务;Pi、Codex CLI、Claude Code 和 OpenCode 共用同一份 SKILL.md 与参考文档。
  • 默认限制 30 次设备状态变更和 5 分钟,发送、购买、删除、安装等动作必须单独授权,发送状态不明时不会自动重发。
  • 明确不碰锁屏、验证码、支付验证和企业策略,也不做无人值守监控;截图和 UI XML 可能带隐私,交云端模型前要先确认数据策略。
  • Agent Skill
  • ADB
  • Bash
  • Python

wechat-exporter

把 macOS 微信 4.x 的 SQLCipher 本地库恢复成标准 SQLite,用来导出自己的聊天记录和联系人。

  • 原来依赖的上游项目已下线,仓库改成一套可执行的实现规范:页面布局、密钥派生与 HMAC、逐页解密、WAL 处理和验收标准,Agent 可以据此从零写工具。
  • 验收要求全页 HMAC、独立内容比对和逐库结论,只看文件头、表名或 integrity_check 不算恢复成功;未覆盖的版本差异必须明说。
  • 产物是明文 SQLite,不是整理好的聊天文本,正文编码、联系人与附件关联仍需后续处理;也只覆盖客户端 db_storage 中实际存在的记录。
  • Agent Skill
  • SQLCipher
  • SQLite
  • Python

03历史项目

手工写代码的年代留下来的三个 Ruby 项目,以及一篇关于 ORM 缓存的设计模式文章。

javaeye3

JavaEye 社区网站的源代码,Ruby on Rails,2006–2013 年的中国技术社区。

  • 整个代码库约 7 万行 Ruby 与页面模板代码,Robbin 直接贡献了三万多行。
  • 公开前移除了旧提交历史和一份含账号密码的敏感配置,源码本身已不再运行,保留下来是给手工写代码的年代留个记录。
  • 附带《Web 应用的缓存设计模式》:从细颗粒度表设计和 n + 1 主键查询讲到 second_level_cache 二级对象缓存。
  • Ruby on Rails 2.3
  • MySQL
  • memcached

robbin_site

Robbin 当年的个人博客站,也是一份 ORM 缓存设计模式的教学级完整示例。

  • Padrino(基于 Sinatra 的轻量框架,不是 Rails)配 ActiveRecord 和 memcached,约 2500 行 Ruby 与模板代码,跑在 thin / zbatery 上。
  • model 层大量使用 acts_as_cached 和 second_level_cache,把多表关联拆成主键查询加对象缓存,用减少磁盘 IO 换性能。
  • 仓库里的 webcache.md 就是那篇缓存设计模式文章,配合代码可以直接对照阅读。
  • Ruby
  • Padrino
  • ActiveRecord
  • memcached
  • MySQL

sinatratest

用 Sinatra 写 Ruby Web Service 的服务端模板项目,把 Ruby 的性能尽量榨出来。

  • 轻量组合:Sinatra + ActiveRecord + MySQL,配 Oj 做 JSON 序列化,用 second_level_cache 和 Dalli 做对象缓存,生产环境跑在 Rainbows 上。
  • test.md 用 siege 压测,对比了 Fiber 池、多线程、多进程三种并发模型,以及 Rainbows 和 Puma、Dalli 和 redis-store。
  • 实测结论:同样 2 个进程,Fiber 池或多线程完成同一批请求约 72–77 秒,多进程要约 251 秒,快了 3 倍多,每个进程内存只有 50–60MB。
  • Ruby
  • Sinatra
  • ActiveRecord
  • memcached
  • Rainbows