阅读视图

解密 SSH AI Chat:它是如何运行的

技术深度解析

解密 SSH AI Chat 它是如何运行的

探索一个令人惊叹的创新项目:通过 SSH 协议直接与 AI 对话。无需安装客户端,无需打开浏览器, 只需一条简单的 SSH 命令,就能开启与 AI 的终端对话之旅。

$ ssh username@chat.aigc.ing

大家好,我是面条,今天想和大家分享我最近的一个项目 —— SSH AI Chat。

项目简介

核心理念

SSH AI Chat 是一个可以通过 SSH 直接连接的 AI 聊天应用。使用方式非常简单, 你不需要安装任何客户端,不需要打开浏览器,只需要一个 SSH 客户端,就能和 AI 进行对话。

ssh username@chat.aigc.ing

没错,就这么简单!你不需要安装任何客户端,不需要打开浏览器,只需要一个 SSH 客户端,就能和 AI 进行对话。

作为一个对 TUI 应用有着浓厚兴趣的开发者,我一直觉得在终端里聊天是一件很酷的事情。其实我最初是被 itter.sh 这个网站惊艳到了 - 居然能用 SSH 访问社交网络!这让我意识到,原来 SSH 不只是用来连服务器的,还可以做很多有趣的事情。

于是就有了这个想法:如果能用 SSH 和 AI 聊天,那该多酷啊!不需要安装任何软件,不需要打开浏览器,只要在终端里输入 ssh yourname@chat.aigc.ing 就能开始对话。

项目架构

核心技术栈

  • SSH 服务器:Node.js + ssh2 模块
  • UI 框架:React + Ink(终端渲染)
  • 数据库:PostgreSQL / PGLite
  • 缓存:Redis / ioredis-mock
  • AI 集成:Vercel AI SDK

架构特点

  • • 无客户端安装需求
  • • 跨平台终端支持
  • • GitHub 公钥认证
  • • 实时流式响应
  • • 多模型 AI 支持

系统架构图

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   SSH Client    │    │   SSH Server    │    │   React App     │
│                 │    │                 │    │                 │
│  ssh username@  │───▶│  Node.js +      │───▶│  Ink UI +       │
│  chat.aigc.ing  │    │  ssh2           │    │  React Hooks    │
└─────────────────┘    └─────────────────┘    └─────────────────┘


                       ┌─────────────────┐
                       │   AI Services   │
                       │                 │
                       │  OpenAI API     │
                       │  Gemini API     │
                       │  DeepSeek API   │
                       └─────────────────┘

核心模块解析

1. SSH 服务器模块

这是整个应用的核心,负责处理 SSH 连接和认证。系统会自动处理密钥验证、GitHub 公钥认证、登录限制和速率限制。

2. 认证系统

最巧妙的设计是使用 GitHub 公钥认证。用户不需要注册,直接使用 GitHub SSH 密钥就能登录。

系统会获取用户的 GitHub 公钥进行验证,每 6 小时缓存一次,既安全又高效。

3. 终端 UI 系统

使用 Ink 框架在终端中渲染 React 组件。想象一下,你平时写的 React 组件,现在不是在浏览器里渲染,而是在终端里显示!

多语言界面

实时聊天

历史记录

响应式布局

4. 聊天系统

使用 Vercel AI SDK 处理 AI 对话。当你在终端里输入消息时,系统会接收消息、加载历史对话、选择模型、实时显示流式响应,并保存对话记录。

流式响应多模型支持思维链展示对话历史管理

技术难点和解决方案

核心技术挑战

项目开发过程中遇到的关键技术难点

终端渲染复杂性

React 组件在终端环境的适配

会话状态管理

多用户并发连接的处理

1. 终端渲染的挑战

最大的挑战是在终端中实现复杂的 UI 界面。使用 Ink 框架将 React 组件渲染到终端,实现虚拟 PTY 来处理终端 I/O。在终端里显示 AI 回复的 Markdown 需要用专门的 worker 进程处理转换,才能显示粗体、斜体、代码块。

2. SSH 会话管理

管理多个 SSH 会话和状态需要为每个连接创建独立的 React 应用实例,使用 Context API 管理全局状态,并实现会话生命周期管理。

3. 实时流式响应

AI 的回复是流式的,如果每收到一个字节就刷新界面,终端会直接卡死。使用 Vercel AI SDK 的 streamText 配合节流更新,每 300ms 更新一次,既流畅又不卡。这是性能优化的关键技术点。

4. 数据存储的灵活性

项目支持 PostgreSQL 和 PGLite 两种数据库,以及 Redis 和内存缓存,让项目既能独立运行又能部署到生产环境。

有趣的设计细节

GitHub 认证

最酷的设计!用户不需要注册,直接使用 GitHub SSH 密钥就能登录,既方便又安全。

零注册流程

多模型支持

支持 DeepSeek-V3/DeepSeek-R1、Gemini-2.5-Flash/Gemini-2.5-Pro 等多个 AI 模型,包括思维链展示。

DeepSeekGemini

国际化支持

完整的 i18n 支持,通过 LANG 环境变量自动检测用户语言偏好,支持中英文切换。

自动语言检测

键盘快捷键

Ctrl+C 退出应用,N 新建对话,I 聚焦输入框,? 查看帮助。还有一些小彩蛋功能。

Ctrl+C退出
N新建

开发心得

技术感悟与收获

开发过程中的深度思考与技术洞察

终端应用潜力

现代化终端交互的可能性

SSH 协议创新

跨平台应用的新思路

技术栈融合

现代前端技术的适应性

1. 终端应用的可能性

这个项目让我看到了终端应用的巨大潜力。通过 Ink 框架,我们可以在终端中实现复杂的交互界面。

2. SSH 的妙用

SSH 不仅仅是一个远程管理工具,它还是一个强大的应用平台。通过 SSH,我们可以实现跨平台的客户端应用,用户不需要安装任何额外的软件。

3. 现代化的技术栈

虽然这是一个终端应用,但我们使用了最现代的技术栈:React、TypeScript、Vercel AI SDK 等。这证明了终端应用也可以很”现代化”。

未来展望

发展规划

本地模型支持

计划支持 Ollama 等本地模型

MCP 协议

支持 Model Context Protocol 插件扩展

计划支持更多的 AI 模型,包括 Ollama 等本地模型,以及支持 MCP (Model Context Protocol) 协议让用户可以通过插件扩展功能。

总结

项目价值与意义

终端应用的现代化可能性
SSH 协议的灵活应用
React 在不同平台上的适应性
AI 技术的普及化

SSH AI Chat 是一个融合了多种技术的创新项目。它展示了:

  • 终端应用的现代化可能性
  • SSH 协议的灵活应用
  • React 在不同平台上的适应性
  • AI 技术的普及化

这个项目让我意识到,技术不只是为了解决问题,也可以很有趣。把 SSH 和 AI 结合起来,创造出了意想不到的体验。

希望这个项目能给大家带来一些启发,让我们一起探索技术的边界!

体验地址

立即体验

一条命令即可开始

ssh your-github-username@chat.aigc.ing

如果你对这个项目有任何问题或建议,欢迎在 GitHub 上讨论。也欢迎 Star 这个项目,你的支持是我继续开发的动力!

stat
  •  

八月首夜:忆天河潭与售房

八月夜初,天连日晴好,唯暮气闷热。回首迩来诸事:有陪内子携小女游天河潭之欢;有售房久待之盼与终成之喜;亦有前两月家父车刮蹭后两月忽被起诉之忧,及近因内务疏失遭上官约谈之虑。噫,惟愿八月诸事皆顺,出行之约如期,万物渐入佳境,岁岁安然耳。

天河潭

周末如常,天朗气清,吾与妻携女,将出游以遣怀。目的地于贵阳花溪之天河潭,其地距贵阳二十四里,距花溪十三里,地广十五里,以喀斯特胜景闻名,集黄果树之雄、龙宫之奇、花溪之秀,飞瀑清泉、深潭奇石、怪洞天桥错落其间,农舍水车相映成趣,素有“黔中一绝”之称,亦为国家AAAA级景区。吾幼时曾游,今妻与小女未往,故再访之。

晨起餐毕,整装出发。时暑气蒸腾,骄阳似火,热风扑面,与车中空调之凉,判若两境。然出游之意切,何惧日晒风炎?

车行四十许,抵天河潭。虽酷热难耐,然游人如织,携童嬉戏者众,热闹非凡。至售票处,队列绵长。票分两种:纯门票七十余,含观光车及部分项目者八十五。念及天热携幼,遂选后者。

购票后,往乘观光车处,亦是人山人海。幸有遮阳帐与送风机,稍解暑气。候二十分钟,方得检票登车。此车无窗,仅设护栏,约五六排,每排可坐四众。吾辈携女坐于末排。车动之际,凉意顿生,沿途风光甚好,转瞬至换乘点。

闻商贩言,上行可乘船观溶洞,复步行探之。整理行装,拾级而上。行不远,又见长龙排队,自楼上延至楼下,幸多为室内,可避烈日,吾亦自备伞具。

楼上候船时,问于执事:“航程几何?”执事曰:“小船十许分,竹筏四十许分。”因携幼女,不能乘筏,遂选小船。远观小船晃晃悠悠,似无遮阳,心有惴惴。然既至,必亲验之。

候十许分,登船。船长约十米,宽不及一米,前后五六排,每排二座。妻携小女坐前,吾携长女随后,着救生衣,稳坐启程。水面碧绿,舟行缓缓,渐入溶洞。洞顶彩灯映照,岩色斑斓,虽知为灯影之效,亦叹其美。洞内清凉宜人,舟行十许分即靠岸。

登岸回望,岩壁高耸,绿植繁茂,飞瀑自三四十丈高空垂落,凉气沁人。继而步游溶洞,道为单行,仅容一人,阶途起伏。彩灯照处,石景万千,月牙潭、金龟滩、瑶池、天上石林之景,尽收眼底。洞内人虽多,然美景足以消烦。行千五百步,出洞复遇烈日。

前行有木吊桥,长余二百步,晃摇不定。余有恐高,桥高六丈余,护栏空隙稍阔,心甚忧。然大宝急欲上桥,余遂牵其手,缓步前移。至桥中,摆动最剧,心甚惧。幸桥短,转瞬即过。

复前行,有高空滑索,票虽含此项目,然携幼女不能试,仅远观之。继而下坡,兜转复回观光车换乘处,时至四时半。观景区图,仅游三分之一,尚有二处未及。然小女已寐,烈日仍炽,遂决意返程,待日后再游。

排队乘观光车,抵终点。稍歇,便归。此行虽未竟,然吾与妻虽疲,见二女嬉乐,心亦欣然。

卖房

久有售宅之心,迁延未行。此宅乃吾与内子新婚所置,时未有嗣。购未久,内子有孕,后诞小女,倏忽四五载,房贷亦偿此数。

家中旧宅可居,故早有退售之意,唯迟迟未动。一日,家父言:“此宅空置,月偿房贷,岁纳物业费,暂不入住,不若售之,可得闲钱以宽用度。”吾闻之,与内子议,终决出售。盖因现有居所无忧,此房月供物业费持续支出,且近年不拟入住,细算得不偿失。虽核之,自首付至月供、物业费,亏约二十万,然长远计,此乃无奈之举,总胜空置持续耗损。

既决,便欲探本地中介行情,亦于抖音观售房之视。原计划询线下中介,然除工时外,所知者寥寥,且有一旧识,昔年购房之顾问,今亦转行中介。吾恐杀熟,亦嫌线下奔走低效耗时,遂转至线上,下五八同城、安居客、乐有家等诸般二手房程序。然数日研究,见此等应用皆多收费,发布房源、提高曝光皆需钱,房未售出而费先至,遂弃之。

正无头绪时,偶于抖音见人直播售房,介绍楼盘。吾思:他人可借此传房产知识,吾何不借此寻合适中介?遂搜本地售房相关内容,果见诸多中介,各介房源,琳琅满目。吾择适者信,问可否助售,彼等多愿应之,盖因售出可得提成。一两日间,陆续有七八乃至更多中介加吾联系方式,吾亦告之房屋信息。后有中介问吾:“是否遍投本地中介?今诸中介皆知君售此房。”方知互联网传播之速,竟至于此。

初时,与诸中介相谈甚欢,亦有带客看房、入宅拍视频者。然渐而往来稀疏,看房者亦无动静,终至寂然。吾与内子戏言:“莫非黄矣?无人识此房?”言罢相视而笑。

实则此房地理位置与环境皆佳:处本地大学城区、老城区、城北新区三区交汇之核,周边“两横两纵”交通便达,一公里内多公交站,五分钟可至老城区与城北新区。教育方面,小区内有公立幼儿园,周边有两三所幼儿园、两所中小学、两所高中、两所大学,全龄教育皆可便捷抵达。环境上,百分之三二绿化率之下沉式园林邻江湾,景观甚佳,部分户型大阳台可赏泳池之景。配套而言,自带星悦城商业综合体,五分钟生活圈便利,近有三所医院;智能社区配管家服务,人车分流,居之安全舒适。如此佳宅,今待售之,唯盼识者。

越数日,天朗气清,值周末,吾携妻女出游散心。行于途,忽接一中介来电,遂驻足与之语。其言有客欲购此房,已观宅,意甚满意,且付订金两千,嘱吾与买方一会,互释疑虑,并携房本往登。言毕,吾复问卖方需担之费。中介告曰:“此房得本未满二载,故有增值税,加之中介费,无他费矣。”其言甚详。唯中介与买方议价为每平X元,与吾则为每平X减二十元,然此价吾可受,且较他家中介所出为高,遂欣然应之,约时往中介处会买方。挂电话,吾与妻皆讶异,自决卖房至客付订金,未及半月,速之甚,几不可信。遂喜而续游。

至期,吾家驱车赴中介公司。中介经理迎于门,引吾泊车。观其店,广约三十平方,幸网可查其资历,不然难令人信。入内,见买方二人,皆三十许女子,一携稚子,言词爽朗;一举止沉稳,寡言素衣。初以为亲眷,后知乃友或同事。少坐,略谈,中介与买方验吾房本,复印房本及双方身份证,遂签中介合同。未及二十分钟事毕,买方往银行打征信与流水,吾归待消息,此乃中介买卖双方首会。

越半月,中介传讯,言买方征信与流水已过审,嘱次日往银行签合同、开监管账户。次日,吾早至银行。买方独来,衣仍朴素;中介来二人,一男一女,前曾见于店,盖负责与银行对接者。俄而,银行合同签讫,然中途有小失:买方存首付于监管账户时,卡显为休眠,被限额,有钱而不得动,需往他行处理。待约二十分,中介女与买方匆匆返,乃存首付于监管账户。核金额毕,复归待讯。

又半月,吾问中介进展,答曰:“买方离异,然户口本未显,上次签合同亦未言,审核未过,今需重交资料,尚待时日。”再半月,吾复问,中介曰:“买方月初误以信用卡充话费二百,因其用公积金贷款,名下不得有欠,需处理,再待数日。”

又数日,中介来电,言买方银行面签及资料皆过审,可约期往税务局过户缴税。至期,吾早至政务大厅税务局窗口,不料买方到更早。吾先取号,数分钟后中介方至。幸过户窗口人少,速及吾辈。仍由中介代交资料,待税务局评估、审核,终双方缴费,再待系统审核,约二小时事毕。吾问中介何时放款,答曰:“公积金贷款每月二五统一下放,尚需待。”

倏忽又半月,二五日午后一时,吾问中介:“今已二五时,款未到矣?”中介曰:“午后二时后预问银行执事者。”吾曰:“今日务必到,迁延久矣。”中介言其同事已询银行,午后五时许可到。也罢,既已待久,亦不在乎此时,遂耐之。傍晚归家,启手机视之,房款到账,唯监管账户之款未达。联系中介,言银行已休,次日再放。

此夜,吾告妻房款以故。虽售此房亏约二十万,然及时止损,尚有余资,且此后不负房贷,无债一身轻,快哉!次日午时,尾款亦到。吾遂与中介结清费用。历时三月余,此房终售。看似有亏,然房贷之苦难耐,况今有房可居,无房贷车贷,有存款,家人安康喜乐,是乃至宝,余皆不及也。

  •  

洪绘闪回发布!论坛快捷回复,自动填充随机短语,浏览器插件

这篇文章介绍了作者基于自身体验开发的Chrome插件“洪绘闪回”,旨在解决论坛回帖后可见内容的烦恼。插件支持右键快捷生成预设或自定义回复,并可为不同网站配置不同短语集合,还具备自动填充功能,使回复操作更加高效便捷。文章还附上了Chrome插件商店的下载链接,Edge版本正在审核中。该插件提升了用户在需要频繁回帖环境下的使用体验。

  •  

在Mac上如何测试本机与服务器之间的带宽?使用iperf3测试本地与服务器的连接情况

这篇文章介绍了如何使用 iPerf3 工具排查服务器带宽不稳定问题。通过在本地电脑和服务器上分别安装 iPerf3,并在服务器上启动监听(默认5201端口),可以进行网络速度测试。文章提醒要开放对应端口,并展示了测速示例,指出丢包和带宽偏低等现象可能存在。该方法适用于分析实际带宽与云服务标称带宽之间的差距,是排查网络瓶颈的实用手段。

  •  

TailwindCSS v4 全新颜色系统与主题切换

该渲染由 Shiro API 生成,可能存在排版问题,最佳体验请前往:https://innei.in/posts/tech/tailwindcss-v4-color-system-theme-switching-guide

在这之前

在很久的时候我写过一篇文章使用一种便捷的方式去实现 dark mode 的颜色切换,简单来说就是用 CSS 变量实现的,替换了默认的所有的颜色色值。

https://innei.in/posts/programming/tailwind-built-in-colors-dark-mode

这样虽然也可以实现,但是局限性比较多,比如为了让颜色支持 Tailwindcss 的 /<alpha> 的语法,我们在定义颜色的时候得这样写:

module.exports = {
  theme: {
    colors: {
      "material-opaque": "rgb(var(--color-materialOpaque) / <alpha-value>)",
    },
  },
}

此时的 CSS 变量的值并不是一个颜色值,而是一个字符串:

  --color-materialOpaque-light: 246 246 246;

不仅在编辑器中无法直接看到颜色的呈现,修改起来也是难事。

无法直接看到颜色呈现

最大的问题,如果设定的颜色本身带有透明度,那么 /<alpha> 的语法直接失效:

module.exports = {
  theme: {
    colors: {
     "material-ultra-thin-light": "rgba(var(--color-materialUltraThin-light))",
    },
  },
}

/// CSS
 --color-materialUltraThick-light: 246 246 246 / 0.84;

因为 CSS 颜色引用了透明度,将无法应用两次透明度。这直接导致 bg-material-ultra-thin-light/10 失效。

color-mix 是什么

在 TailwindCSS 4 中,不在使用原先的方式去调整透明度,而是改用 color-mix() color-mix() 函数标记接收两个 <color> 值,并返回在指定颜色空间、指定数量混合后的颜色。

它是支持多种颜色进行混合的,那么对于本身是透明的颜色,也可以再进行一次混合。

在 TailwindCSS v4 中是这样调整透明度的。

bg-background-secondary/30
    ↓
color-mix(in oklab, var(--color-background-secondary) /* oklch(0.98 0.0049 230) = #f5f9fb */ 30%, transparent);

通过混色一个 transparent,控制 transparent 的深度来实现最终的透明。

对于本身就存在透明的颜色也是没有问题的:

.bg-material-thin\/20 {
  background-color: color-mix(in oklab, var(--color-material-thin) /* oklch(0.96 0.0049 230 / 0.60) = #eff2f499 */ 20%, transparent);
}

@layer 层级控制场景下的颜色

在 TailwindCSS v4 之前的版本,也已经大量使用 @layer 来控制 className 的优先级问题,但是这个声明都是 polyfill 的,在 PostCSS 中进行转义,实际在应用中并不会出现这个 layer。

在 V4 之后的版本中,已经默认使用 layer 控制层级。v4 和 v3 之前的版本最大的不同,就是 v4 不再需要在 js config 中定义新的颜色或者覆写自带的颜色。而是全部通过 CSS 实现的,这也是得益于 layer 的优势。在 TailwindCSS 所有定义都在 @layer theme 中,我们只需要在不同的时候覆写其变量值就可以了。

那么下面就是一个简单的例子,我们需要自动切换 light/dark,支持当 data-theme='cute' 时切换主题颜色到 cute 的颜色风格。

@import "tailwindcss";

/* Light mode colors (default) */
@theme {
  --color-blue: oklch(0.65 0.18 237);
  --color-pink: oklch(0.68 0.22 350);
  --color-purple: oklch(0.65 0.2 280);
  --color-green: oklch(0.67 0.15 155);
  --color-orange: oklch(0.68 0.15 60);
  --color-yellow: oklch(0.75 0.12 100);
}

首先使用 @theme 定义 TailwindCSS 颜色。@theme 在 浏览器中也是应用在 @layer theme 中,其目的让 TailwindCSS 识别配置。

然后控制在当 dark: 作用下的颜色:

@layer theme {
  * {
    /* Dark mode overrides */
    @variant dark {
      --color-blue: oklch(0.7 0.16 237);
    --color-pink: oklch(0.73 0.2 350);
    --color-purple: oklch(0.7 0.18 280);
    --color-green: oklch(0.72 0.16 155);
    --color-orange: oklch(0.73 0.16 60);
    --color-yellow: oklch(0.78 0.14 100);
    }
  }

这里注意了,写成 @layer theme 而不是 @theme 因为这个是在浏览器中覆写的,而不是 TailwindCSS 的配置。

最后实现另类主题,我们可通过 data-theme 控制:

    
@layer theme {
  [data-theme=cute] * {
      /* Kawaii color overrides */
      --color-blue: oklch(0.85 0.12 237);
      --color-pink: oklch(0.87 0.16 350);
      --color-purple: oklch(0.84 0.14 280);
      --color-green: oklch(0.85 0.12 155);
      --color-orange: oklch(0.86 0.12 60);
      --color-yellow: oklch(0.9 0.1 100);
  }
  
     /* Kawaii dark mode overrides */
      @variant dark {
        --color-blue: oklch(0.65 0.14 237);
        --color-pink: oklch(0.7 0.18 350);
        --color-purple: oklch(0.67 0.16 280);
        --color-green: oklch(0.68 0.14 155);
        --color-orange: oklch(0.69 0.14 60);
        --color-yellow: oklch(0.73 0.12 100);
  }
}

同样另类主题也要适配 dark: 颜色适配。

至此我们实现了四套颜色的无缝切换。效果非常的好,在编辑器中也可以直接查看色值:

对比之前 V3 因为是变量,什么都看不到。而 V4 本身配置下的颜色就是变量,所以可以直接看到颜色了。

结语

什么,你问这么好用的现代的 TailwindCSS V4 的颜色系统库在能哪里找到。那必须是我最新写的 Pastel

https://github.com/Innei/Pastel

还不知道这个的赶快去点 Star,然后替换颜色定义!

看完了?说点什么呢

  •  

七月的最后一个幸运日

"今天早上打开支付宝的时候,突然蹦出来个外卖红包,本来没想点的,结果手一滑就点进去了。仔细一看,嚯!居然领了个将近20块的大红包!这运气,跟中彩票似的!"

"我赶紧翻了下能用的店铺,发现瑞幸咖啡居然能用这个红包,而且叠加优惠后直接0元购!这便宜不占白不占啊,立马下单了一杯冰美式。虽然平时我都自己带饭,总觉得外卖不卫生还油腻,但偶尔放纵一下也挺爽的~"

这几年几乎没点过外卖,美团、饿了么那些APP都快长草了。自己做饭虽然麻烦点,但胜在干净卫生,吃着也放心。特别是夏天,清淡的饭菜比油腻的外卖舒服多了。"

"最近天气还是热,不过能感觉到早晚稍微凉快些了。早上太阳出来得晚了,晚上天黑得也早了。早上躺在床上的时候,透过窗户能看到外面的晨光,特别美。随手拍了张照片,阳光洒在楼宇间,有种说不出的宁静感。"

这世间的美好,总在不经意间悄然绽放。
  •  

MyShortcodes

MyShortcodes

Typecho通用短代码插件,里面有10个短代码,理论上是上传安装既用。经过测试“typecho默认主题、joe主题”是没有bug,正常使用的

下载

使用

<!-- 时间线示例 -->
[timeline]
[timeline-item title="2023年" date="1月"]项目启动,完成需求分析[/timeline-item]
[timeline-item title="2023年" date="6月"]开发阶段,完成核心功能[/timeline-item]
[timeline-item title="2023年" date="12月"]项目上线,开始运营[/timeline-item]
[/timeline]

<!-- 流程图示例 -->
[process]
[process-step title="需求分析" icon="fa fa-search"]收集并分析用户需求[/process-step]
[process-step title="设计阶段" icon="fa fa-pencil"]完成UI和UX设计[/process-step]
[process-step title="开发阶段" icon="fa fa-code"]实现功能开发[/process-step]
[process-step title="测试上线" icon="fa fa-rocket">进行测试并正式上线[/process-step]
[/process]

<!-- 提示框示例 -->
[tooltip text="这是一个提示" position="top"]悬停我[/tooltip]

<!-- 手风琴示例 -->
[accordion]
[accordion-item title="常见问题1"]这是第一个问题的答案内容[/accordion-item]
[accordion-item title="常见问题2"]这是第二个问题的答案内容[/accordion-item]
[accordion-item title="常见问题3">这是第三个问题的答案内容[/accordion-item]
[/accordion]

<!-- 进度条示例 -->
[progress percent="75" color="blue">项目完成度[/progress]

<!-- 图标示例 -->
[icon name="fa fa-home" size="2x" color="red"]首页图标[/icon]

<!-- 剧透内容示例 -->
[spoiler title="点击查看答案"]
这是隐藏的答案内容,需要点击才能查看。
[/spoiler]




[tabs]
[tab title="选项卡1"]这里是第一个选项卡的内容。[/tab]
[tab title="选项卡2"]这里是第二个选项卡的内容,可以放任何东西。[/tab]
[tab title="选项卡3"]这里是第三个选项卡的内容。[/tab]
[tab title="选项卡4"]这里是第四个选项卡的内容。[/tab]
[/tabs]




[alert type="success"]恭喜你,操作成功![/alert]

[alert type="warning"]这是一个警告信息,请注意。[/alert]


[button url="https://www.example.com" color="green" size="large" blank="true"]点击访问示例网站[/button]



[column width="1/2"]
这是第一栏的内容。
[/column]

[column width="1/2"]
这是第二栏的内容。
[/column]

<!-- 注意:分栏后最好加一个 <div class="clearfix"></div> 来清除浮动,以防布局错乱 -->
<div class="clearfix"></div>





如何扩展这个插件?
非常简单!只需在 Plugin.php 文件中进行以下三步操作:

在 shortcodeCallback 函数的 switch 语句中添加新的 case:
    
        case 'my_new_shortcode':
        return self::my_new_shortcode_shortcode($atts, $content);
    
    
    
    编写一个新的处理函数:
        
            public static function my_new_shortcode_shortcode($atts, $content)
    {
        // 在这里编写你的HTML逻辑
        // 例如: return '<div class="my-new-class">' . $content . '</div>';
    }
    

效果截图

ovogk.com_archives_222_.webp
  •  

台风来袭的七月月报

此时此刻台风依然在袭击上海,而这也算的上这个月最大的一次台风了。公司的应用终于上架Google play,也算进入了正常的工作节奏。小朋友进入暑假,老家的亲戚过来了,但是因为台风,高温,人多一辆车拉不下等等因素,这个月竟然没有出行。同时这个月书看的也少,以下是详细内容。

送外卖

月初的某一个周末晚间,陪着小朋友在外面与同伴玩耍,因为没啥事,突发奇想去试试送外卖。于是下载了达达,骑上电驴可是去送外卖。花了接近两个小时,送了四单,扣掉3块钱的保险费,纯收入19块钱。

作为一个新手,这真不是一件容易的事情,不少卖家的位置比较难找,四单中的两单花了我很久很久才找到店铺,因此就导致送的时间不够。另外因为达达的体验和定位比较差,导致有一单送错了,多亏了人家给我送出来不然估计就要被平台处罚了,这也导致了最后一单超时。

达达软件体验差,导航难用,定位不准,因此同时接两单比较难以接顺路单。而送达之后,需要拍摄门牌号和小票两张照片才能送达确认。众包单价低,新手不熟悉,接近两个小时才够买一杯奶茶,让人没有动力再次尝试送外卖了。

折腾

之前使用Sun-Panel搭建过一个个人导航页面,最近在少数派看到网友分享的使用Glance打造Home仪表盘有被种草,于是也搞了一个。通过Glance不仅仅可以展示网页链接,还支持服务器状态展示,RSS订阅,股票,自定义组件等等。除了使用rss,股票之外,我还做了自己博客的统计数据展示和最新评论,以下是截图,感兴趣的也可以去参考Glance的文章搞一个。

我的Glance

这个月书看的很少,一方面是工作忙起来没时间,另外就是懒。

首先看完的是,上个月拿到的《读库2503》,这本中的主题是香烟,通过这本书才知道,原来香烟是在哥伦布到达美洲之后才走出美洲,风靡世界。从第一篇文章中,我们可以知道香烟的发展,如何发展出卷烟,以及最后让大家产生共识吸烟有害健康。第二篇文章,这是讲述一个文科生如何使用贝叶斯算法击败香烟广告,也让我了解了被广泛应用于人工智能领域的贝叶斯算法是怎么被提出的,它的具体原理是什么。这里也来说一下,贝叶斯算法就是用先验概率来计算一件事情的概率,比如说肺癌发病率,肺癌患者中吸烟的概率,吸烟者的概率,可以算出吸烟者患肺癌的概率,因此可以使用已有的数据来计算出想要的数据。

另外则是看了一本去年购买的《经济学原理漫画版》中的国民经济原理这一本,这套书买了好久了,但是到目前位置才看了三本,还有四本没拆封。这一本中主要讲解了GDP,CPI等名词,金融工具,金融市场,通货膨胀等,这些名词虽然之前都知道是什么,但是详细的都还是不了解,他们之间的关联更是不知道。通过这本书,对于相关概念的详细信息,对于他们如何计算的也有所了解,漫画风格比较好读,值得推荐看一下。

电视剧的话,台剧出了《我们与恶的距离2》,第一部是备受好评的,第二部网上的评分要低一点,但是我感觉还是挺不错的。10集的长度,讨论了台湾的选举政治,精神病人杀人等话题,插叙倒叙等叙事方法也很不错,感觉比国内动辄三四十集的爽剧好多了。

另外还看了《鱿鱼游戏3》,这个感觉是越来越差了,警察到最后所有的同伴都丧生才找到小岛,但是什么也没能做。贵宾们都是傻逼,游戏方面也没有新意,男主也没能拯救谁,自己还丧生了。结尾在美国打卡片,这是还要去美国的节奏吗。

小王子

最近才知道,原来《小王子》还有电影版,书之前看过但是感觉看不太懂,这个动画电影看起来倒是挺不错的,画面很美,故事来源于书,但是有不仅仅是书中的故事。故事的主角小女孩,既是小王子故事的观众,也是另一个小王子,强烈推荐。

游戏

微信有很多游戏的广告,有一天不小心玩了一个小游戏,然后这个小游戏比较难过关,后面看广告才能玩下去。后面里面推荐的另一个三国题材的游戏,感觉还不错,就去完了一下。然而这个游戏,不充钱是真的玩不下去,稍微氪了一下,加入了一个同盟,贡献了不少元宝和资源给同盟,等到了10级之后,结果被踢出同盟了。除此之外,这个游戏很费时间,一整个周末都浪费进去了。在查攻略的时候,发现这个游戏的评价很差,很多官方的托,同时内游戏里面也是各种东西都要花钱,抽卡要钱,装备要钱,升级技能也要钱,购买资源还要钱,然后等到晚上,官方大号一下过来把你打到解放前。

这种垃圾游戏当然不能继续玩,费钱又费时间。因为是在微信里面,也没法使用手机的时间管理来控制,通过搜索发现可以通过微信成长守护这个小程序来设置,可以在其中设置每个小游戏的消费和使用时长限制。在这里,我又发现了这个小游戏的少操作,为了避免被家长给小孩限制消费,给它充值的是另一款同名的小游戏,也就是说我限制了同名的A小程序,用户还是可以用同名的B小程序消费。

无良游戏,坚决抵制。这款游戏叫作三国:冰河时代,强烈建议大家不要玩,同时查了一下还有另一个叫无尽冬日的游戏也是同样的套路,建议不要玩。

而EPIC上最近在限免《文明6》白金版本,这个游戏就很不错,同样的是建造类的游戏,这个上面的设计就很合理,虽然是好几年前的游戏了,画面也还不错。希望国内有更多这种好游戏,而不是冰河时代这种垃圾氪金游戏。

总结

这样看这样也还算充实吧,对于前面的读库文章感兴趣的找我,分享给你。这个月另外还更新了两篇博客,也还算不错。现在是暑假起见,竟然没有能够出去旅行放风太不应该了,下个月一定要出去走走。

看完评论一下吧

  •  

解锁知识管理新体验:安利 AI 驱动的 Wiki 知识库 PandaWiki

解锁知识管理新体验:安利 AI 驱动的 Wiki 知识库 PandaWiki

在信息爆炸的时代,如何高效地整理、存储和利用知识成为了企业和个人的共同需求。传统的 Wiki 系统虽然功能强大,但在智能化和易用性上往往稍显不足。今天,我要向大家强烈安利一款由 AI 大模型驱动的开源知识库搭建系统 PandaWiki,它不仅继承了传统 Wiki 的文档管理能力,还通过 AI 的加持,为用户带来了前所未有的智能体验。

什么是 PandaWiki?

PandaWiki 是一款由长亭科技开发的开源知识库系统,融合了强大的 AI 大模型能力,旨在帮助用户快速构建智能化的产品文档技术文档FAQ、博客系统等。它不仅能满足企业级的知识管理需求,还适合个人用户打造个性化的知识库。简单来说,PandaWiki 是一个兼具传统 Wiki 功能和 AI 智能化的下一代知识管理工具。

通过 AI 驱动,PandaWiki 提供了 AI 辅助创作AI 智能问答AI 语义搜索等核心功能,让知识的创建、查询和共享变得更加高效和便捷。无论是企业用于构建产品手册、帮助中心,还是个人用于记录学习笔记、整理生活经验,PandaWiki 都能轻松胜任。

PandaWiki 的核心亮点

AI 驱动的智能化体验

PandaWiki 的最大特色在于其深度集成了 AI 大模型能力,为用户提供了以下智能功能:

  • AI 智能问答:基于知识库中的内容,用户可以通过自然语言提问,系统能够快速理解并返回精准答案。想象一下,客户或团队成员无需翻阅冗长的文档,只需一句提问就能获得所需信息!

智能问答

  • AI 语义搜索:传统的关键字搜索常常不够智能,而 PandaWiki 的语义搜索能够理解用户意图,检索出最相关的文档或答案,极大提升信息查找效率。

AI 语义搜索

  • AI 辅助创作:无需从零开始编写文档,AI 可以根据你的需求生成初稿或优化内容,大幅提升创作效率。无论是技术文档还是博客文章,PandaWiki 都能帮你快速产出高质量内容(目前开源版创作这里体现不是很明显, 写完本文发现了,没有凸显出来 😂)

AI 辅助创作

这些 AI 功能依赖于接入的 Chat 模型、Embedding 模型和 Reranker 模型

  • Chat 模型:又称为对话模型, 常见的 chatGPT4、Deepseek-r1、Deepseek-v3 等可以聊天的模型都属于 Chat 模型
  • Embedding 模型:又称为嵌入模型,可以将文档转化为向量,为 PandaWiki 提供了智能搜索和内容关联的能力
  • Reranker 模型:又称为重排模型,通过对初始结果进行二次排序,实现快速召回 + 精准排序,是提升检索系统质量的关键技术

强大的富文本编辑能力

这个是基本功能吧,目前导出的格式支持有限,如果支持 PDF 导出就更好了。

PandaWiki 支持 Markdown 和 HTML 两种格式的富文本编辑,满足不同用户的使用习惯。你可以轻松创建结构清晰、格式美观的文档,并支持将文档导出为 HTML 或 Markdown 两种格式,方便分享和存档。无论是撰写复杂的技术文档还是简单的笔记,PandaWiki 都能提供流畅的编辑体验。

灵活的第三方集成

PandaWiki 的设计非常注重开放性和兼容性。它支持与多种第三方应用无缝集成,例如:

  • 网页挂件:可以将 PandaWiki 嵌入其他网站,方便用户在不同平台访问知识库。
  • 聊天机器人:支持集成到钉钉、飞书、企业微信等平台,打造智能化的问答机器人,助力企业提升客户服务效率

这种灵活性让 PandaWiki 能够轻松融入现有的工作流,适配各种使用场景。 只不过暂时还不支持问答机器人 API

多样化的内容导入方式

PandaWiki 支持从多种来源导入内容,极大简化了知识库的搭建过程。你可以通过以下方式快速填充知识库:

  • 网页 URL 导入:直接抓取网页内容,快速生成文档
  • Sitemap 导入:从网站站点地图批量导入内容
  • RSS 订阅:自动获取订阅源的最新内容
  • 离线文件导入:支持上传本地文件,轻松整合现有文档
  • 飞书文档
  • Confluence 文档

导入方式

更多细节可以参考官方文档 导入现有文档到 PandaWiki

简单高效的部署体验

实测 1c1g 也可以轻松部署

PandaWiki 的安装过程非常友好,只需一台支持 Docker 20.x 以上版本的 Linux 系统,就能通过一键安装脚本快速部署。安装完成后,系统会自动输出管理面板的登录方式,默认账号密码随机生成,确保安全性。整个过程仅需几分钟,即使是技术小白也能轻松上手。

使用场景:从企业到个人,PandaWiki 无所不能

PandaWiki 的应用场景非常广泛,以下是一些典型用法:

  • 企业产品文档管理:快速创建产品手册、技术规格、用户指南,结合 AI 问答功能提升客户支持效率。
  • 智能 FAQ 系统:整理常见问题,客户通过自然语言提问即可获得答案,减轻客服压力。
  • 团队知识共享平台:团队成员可以记录项目经验、技术笔记,形成知识库,促进团队协作。
  • 个人知识管理:记录学习笔记、工作心得、生活经验,打造专属的智能化知识库。

一个有趣的例子是,开发者曾用 PandaWiki 创建了一个名为“PandaWiki 品三国”的知识库,将《三国演义》小说导入后,系统能够基于小说内容回答相关问题,展现了其强大的智能化能力。

为什么选择 PandaWiki?

相比传统的 Wiki 系统(如 Confluence 等),PandaWiki 在以下方面具有明显优势:

  • 智能化:AI 驱动的创作、问答和搜索功能,极大提升效率。
  • 易用性:一键安装、简单配置,技术门槛低。
  • 灵活性:支持多知识库管理、多种内容导入方式和第三方集成。
  • 开源免费

项目地址

https://github.com/chaitin/PandaWiki

如何快速上手 PandaWiki?

搭建一个智能化的 PandaWiki 知识库只需三步:

  1. ssh 到目标机器
  2. 执行安装脚本
  3. 选择动作类型安装
bash -c "$(curl -fsSLk https://release.baizhi.cloud/panda-wiki/manager.sh)"

安装完成后,根据提示访问对应的 URL 进入管理面板。
如果你是内网环境,使用内网地址; 使用腾讯云等云服务商,使用公网地址(记得防火墙放行对应端口)

登录完成后安装引导操作即可。

使用过程中的注意事项

所有改动操作都不要保存

  1. 只需要配置 Chat 模型即可测试,根据自己实际情况填写,我这里是第三方中转商

配置通用格式

  1. 内网测试域名, 影响 web 挂件生成

sslip

  1. 配置 web 挂件

配置挂件

  1. 效果

配置挂件

不足之处

  • 图片、附件支持效果不太好
  • 部分导入方式失败率较高
  • 仅支持单知识库
  • 没法查看或者回滚历史版本
  • 不知道为啥我测试老是遇到未发布情况,都没编辑

未发布

写在最后

PandaWiki 是一款真正将 AI 技术与知识管理结合的创新工具,它不仅功能强大、简单易用,还完全开源,适合各种规模的团队和个人用户。如果你正在寻找一款能够提升知识管理效率的工具,或者想体验 AI 驱动的智能文档系统,PandaWiki 绝对值得一试!

  •  

分享个音乐播放器html源码支持滚动歌词

播放器模仿 n 年前 ikk.me 博主的 kkplayer 当年他一直没公开,馋了很久哈,现在借助 ai 简单复刻了下。

同一页面放置多个播放器时,播放其中一个另外的会自动暂停,播放器画蛇添足加了个跳舞小人😄第三首实例歌词我手动对的时间轴可能部分词对的不准哈没细校对

最新更新:支持双语歌词,支持音频可视化,配色采用css变量方式方便diy,同时内置了额外两种配色

效果截图

2025-07-29T04:24:32.webp

下载

  •  

人贩子太猖狂,光天化日就敢拐孩子?

"昨天我们小区业主群里都在传一个让人后怕的消息。在离小区大约一公里外有个菜市场,那里有几家生鲜超市,平时也有些老人在路边摆摊卖菜。有家长带孩子去买菜时,因为要挑选食材,难免会分散注意力。小孩子活泼好动,总喜欢到处跑着玩。没想到昨天就发生了惊险一幕:有个陌生人趁家长不注意,牵着孩子就往路边停着的面包车走。幸亏当时有热心路人及时发现并出声提醒,家长这才赶紧追上去。那人贩子见事情败露,丢下孩子就逃跑了。后来报警查证,那辆面包车用的还是套牌。现在想想真是脊背发凉,要不是那位好心人及时提醒,孩子可能就被带上车了。要知道我们小区旁边就是高速公路入口,一旦上了高速,后果简直不敢想象..."

昨天晚上出去遛弯的事儿,大家都在讨论这个事儿,以后不敢出小区了,就在小区里面玩儿,而且还通知物业,让其加大巡逻力度,陌生人不能进入小区,最关键的还是家长一定要看好孩子。

今天早上又看到别小区的消息,这种更猖狂,直接到小区里面拐小孩儿。

感觉最近拐卖儿童又开始蠢蠢欲动了,现在孩子拐卖可能更多的为了器官,之前上海成立了儿童大器官移植中心,我也去了解了下,这里有篇文章,摘录如下:

"暑假来临,大家千万看好自己的孩子,器官移植,直指儿童"没有买卖就没有伤害"……最近,部分网民在网络对"上海成立儿童大器官移植中心"一事进行如此解读,并配发相关视频,引发了议论。

上海辟谣平台调查发现:相关言论是对今年5月21日国家儿童医学中心复旦大学附属儿科医院成立“儿童大器官移植中心”的歪曲解读,实为罔顾事实的恶意关联、阴险影射、造谣诽谤,其险恶用心昭然若揭。
真实情况究竟如何?记者采访复旦大学附属儿科医院进行澄清。

复旦大学附属儿科医院党委副书记、上海医学会小儿外科专科委员会候任主任委员董岿然教授告诉记者,儿童器官移植是点燃终末期器官功能衰竭患儿生命之光的关键技术,也是国际上广泛认可的对于一个城市、一家医院临床综合诊疗能力评价的重要指标。因此国家卫健委对于器官移植机构资质的审批是非常严格的。目前国内三级儿童专科医院中也仅有极少数具有器官移植资质,复旦儿科是本市唯一同时具备心、肝、肾器官移植资质的儿童专科医院。

儿童器官移植手术中的器官是如何获取的?专家强调,对于每一例潜在器官捐献病例需要经过院内、市级专家两个层级的审核,确认疾病状况符合器官捐献指征,才能由市卫健委指定的OPO单位和官方认证的器官捐献协调员来启动后续器官捐献流程,最终的器官捐献和获取也是由红十字会工作人员和器官捐献协调员共同见证。另一方面,政府建设“中国人体器官分配与共享计算机系统(简称COTRS)”平台,统一管理全国的器官捐献与分配,每一例等待移植的病例都需要在此系统内进行登记。按照供受体双方双盲的原则,COTRS系统有详细的分配规则,包括年龄、地区、疾病状态评分等,促进每一个捐献的器官都能分配到合适的受体患者。

目前儿童开展的心、肝、肾等三种大器官移植中,肝移植主要是亲体肝移植,绝大部分为患儿的父母供肝。心脏移植的供体均源于COTRS系统网络分配,儿童肾移植的供体来源大部分也是COTRS系统,只有少部分来自于亲体供肾。而无论是COTRS网络分配,还是亲体器官移植,都需要在移植手术前进行伦理审查,伦理审查的材料也是有明确的要求,不能遗漏任何一份佐证材料。尤其是亲体移植,除了书面材料之外,还要对捐献供体的亲体本人进行面谈和审查,确认不存在买卖器官的“假亲体”情况。

数据显示,自2022年8月儿科医院获批器官移植机构资质至今,已累积开展器官移植手术达116例,其中肾脏移植102例、肝脏移植10例和心脏移植4例,也是国内2023年肾移植手术量最大的儿童专科医院,实现包括“极低体重双供肾整块”肾移植、极低体重供肾(<5kg)单肾移植、高PRA预致敏受者二次肾移植、跨代亲属供肾儿童肾移植等高难度技术突破。医院严格遵循国家卫健委关于器官获取和分配制度,提升器官移植技术水平,保障移植的质量和患儿安全,还曾对全国儿童肾移植推进作出重大贡献,明确了儿童捐献肾脏优先用于儿童的基本原则。

器官移植是终末期器官功能衰竭患儿生命的希望。复旦儿科医院院长王艺教授说,医院组建大器官移植中心整合心肝肾移植团队,以及重症医学、麻醉等多学科支撑团队,完善“移植前评估-登记-手术-移植后随访”的全链条多学科体系,为的是更好满足患儿需求,保障儿童生命健康。

可能每个人看待的方向不同,我一直觉得需求决定市场,市场决定价格,价格决定来源,所以自己得多个心眼。
  •  

EdgeOne用户必看:可以白嫖3个加速套餐

EdgeOne是腾讯云提供的全球边缘安全加速平台,基于腾讯全球边缘节点面向境外市场提供L4/L7安全防护和加速服务,为电商与零售、金融服务、内容资讯与游戏等行业保驾护航,提升用户体验。

EdgeOne的热度一直居高不下,从上线到现在,相信不少朋友都已经领到了免费兑换码并用上了。不过可能还有些小伙伴没赶上这波福利,而且每个兑换码只能绑定一个站点,对于喜欢折腾、同时运营多个站点的朋友来说确实不太够用。

今天给大家分享个小技巧:通过一个账号可以免费领取两个套餐,再加上兑换码,总共能拿到三个免费套餐!这样应该就够用了。喏,这是我的截图,已经成功到手啦~"

参与活动之后,是这样的。

如果一个免费套餐不够用,可以参照我的方式去把剩下的套餐也拿到手,一共搞三个,妥妥的

第一步:打开EdgeOne官网,注册一个账号;
第二步:注册完成之后,登录账号打开活动页面,按照提示完成测速分享

完成测速后,将获得一个免费额度,同时分享到XFaceBook可再次获取一个免费额度;

此时我们已经获取到了两个免费额度,我们还可以通过兑换码再拿到一个免费额度,也就是一共三个免费套餐了。

兑换码可以去Discord 社区Github项目中获取,Discord每天定时定点都会分享大批兑换码,蹲一个不是难事儿,分享下昨天九点的兑换码,还有很多没有使用的,可以去试试。

常见问题解答:

1、如果已经通过兑换码获得了一个免费套餐,还可以再参与测速分享活动吗?

可以,无论之前是否有免费套餐,都可以通过分享测速结果再获得两个免费套餐。

2、如何获得两个免费套餐?

完成测速后,点击 X 和 Facebook 图标即可快速分享 —— 每成功分享到一个平台,回到现在的活动页即可获得一个免费套餐,每个平台仅可获得一次,重复分享不再额外获得。套餐将直接下发至账户,无需使用兑换码,可在EdgeOne控制台查看。

3、领取完免费套餐后应该如何使用?

请在 EdgeOne的"计费管理" > "套餐管理"下查看免费套餐,免费套餐需接入站点和域名后进行使用。

4、还能通过什么方式获得免费套餐?

本次活动无需兑换码即可获得免费套餐,但原本兑换码形式仍保留,仍然可以通过加入 Discord 社区和参与 GitHub 项目的形式获得免费套餐兑换码,到兑换活动页进行兑换。

  •  

风记星辰设计的《鱼悦未来官网视觉设计方案》正式落地

前言

这一个多月以来除了忙于生活,也设计出一项新的原创作品。

鱼悦未来是一个专注于多平台应用分发的创新站点,通过高效的工具和管理功能。目前你可以出售博客主题、网站插件,通过站点实现销售管理、迭代管理、动态管理、日志管理等功能。旨在以最便捷的方式,帮助开发者轻松发布、销售并持续优化作品,致力于为开发者提供从生产到销售的解决方案。

鱼悦未来由 kunkunyu.com 创建和开发,风记星辰提供设计和前端支持。目前网站已落地,欢迎大家支持 https://www.yunext.cn

设计方案

方案的页面截图内涉及的文字均为测试使用,请以网站实际内容为准。

页眉和页脚
通用区域
模块区域
单独页面

结语

我的设计理念是希望阳光和舒适,正如 THYUU/星度主题那般。

  •  

Code Agent初体验:Kilo Code + Qwen3-Coder

Code Agent 初体验:Kilo Code + Qwen3-Coder

在 AI 编程领域,国产大模型正在强势崛起!2025 年 7 月,阿里通义千问团队重磅开源了 Qwen3-Coder,这款号称性能比肩 Claude 4 的代码生成模型,凭借 480B 参数、35B 激活参数的 MoE 架构,以及强大的 Agentic Coding 能力,迅速成为开发者关注的焦点。与此同时,Kilo Code 作为一款高效的编程 Agent 工具,与 Qwen3-Coder 的结合更是如虎添翼,为开发者提供了前所未有的编程体验。本文将带你一探 Kilo Code + Qwen3-Coder 的初体验,分享实际使用感受与技术亮点!

ModelScope 社区给所有用户赠送了每天 2k 次 API 调用的额度,我们可以把它接入到 Kilo Code 插件中使用

获取 API Key

访问 ModelScope 并登录,页面右侧的查看代码范例中可以复制自己的 api_key

查看 api_key

注意,我们需要的 api_key 是一个 36 位的字符串,形如 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx。如果你看到的 key 有 ms- 前缀,需要去掉它。

使用限制

总结版,具体可以阅读官方文档使用限制

  • 个人使用没问题(以保障开发者单并发正常使用为目标)
  • 需要绑定阿里云账号才能使用免费额度 2k

配置信息备用

地址: https://api-inference.modelscope.cn/v1/
Key: ms-****
模型: Qwen/Qwen3-Coder-480B-A35B-Instruct

安装并配置 Kilo Code

在 Cursor/VSCode 中下载 Kilo Code 插件,选择 Use my own API key,并进行如下配置:

仅需要配置上面圈出来的配置即可。

高级选项中配置 temperature 为 0.7,这是 Qwen 官方推荐的参数

查看已使用额度

在 ModelScope 网站右上角点自己头像,能看到用量。根据我周末的测试 2k 额度完全足够日常开发使用了。

Kilo 代码库索引

个人使用经验,完全可以使用本地模型可以处理。

Ollama 模型

下载相关 embed 模型,这里推荐 nomic-embed-text

Qdrant

可以使用 docker 部署一个

  • docker-compose.yaml
services:
  qdrant:
    image: qdrant/qdrant:latest
    container_name: qdrant
    ports:
      - '6333:6333'
    restart: always

配置图

使用体验

还是挺不错的,干点简单的没啥问题,稍微复杂的准确率或者成功率就大大降低了,胜在免费不要钱。

附录

主要参考如下:

  •  

Sketch2025上手:迎接画框的时代,对齐Figma的一大步了,画框快速入门教程

这篇文章介绍了Sketch新版采用“画框”替代传统“画板”的重大更新,详细讲解了画框的创建、嵌套、选择方式以及如何使用智能布局与层叠功能提升设计效率。通过快捷键操作(如A/F、cmd+F、shift+option+A等)和布局绑定,画框实现了更清晰的层级关系和自适应布局。作者建议在Sketch 2025中,用画框替代矩形来完成所有UI设计,以适应全新工作流。文章旨在帮助用户快速掌握新版本Sketch的使用方法。

  •  

iOS26的设计规范模板下载:更大的按钮和圆角,全新设计的组件

这篇文章介绍了iOS18设计规范及其变化,涵盖iPhone16系列的设计尺寸与分辨率,并回顾了过往iOS版本的设计资料。同时提供了旧版本Sketch组件库的获取方式,方便维护陈旧项目。文章还评述了iOS18在弹窗、输入法、开关、菜单及tabbar等界面组件的视觉与交互更新,其中大圆角与独立tabbar设计获得作者好评,而键盘和开关的改动则引发一定争议。

  •  

家庭数据中心系列 WordPress 也能玩命令行:wp-cli 入门与实战

家庭数据中心系列 WordPress 也能玩命令行:wp-cli 入门与实战 无敌的个人博客 tangwudi

1 前言 在之前的文章中(参见:家庭数据中心系列 WordPress网站通过Simply Static插件实现站点静态化),我详细介绍了如何在 WordPress 上使用 Simply Static 插件,将动态网站一键导出为纯静态页面。这个方案非常适合用来构建一个全站缓存的备份站点,或者直接部署到 Cloudflare Pages 之类的平台,实现极致的访问速度与安全性。 其实如果只是偶尔更新网站,手动点一下仪表盘的「生成静态文件」按钮倒也没什么问题,甚至于对于现在我的更新频率来说,这种方式已经足够了。但是嘛,问题就出在“手动”这两个字上: 一旦网站更新频率高,比如我这种几乎隔三差五就要改点小东西的人,就很容易忘记去点那一下。 更别提如果想要每周定时导出,然后自动同步到 GitHub 仓库,触发 Cloudflare Pages 的重新部署,就完全做不到了。 虽然目前我还是选择每周手动导 […]

<p>The post 家庭数据中心系列 WordPress 也能玩命令行:wp-cli 入门与实战 first appeared on 无敌的个人博客.</p>

  •  

初见重庆

十一年前,离开故乡。先后漂泊在天津、南京、广州、深圳,或是求学,或是实习,或是工作,工作单位更是换了不计其数。人来人往,聚散匆忙。或许只有经历过常年漂泊的人,才能真正体会到远行客的各种滋味。

与其说如今的我更能理解父亲了,不如说父亲是现在最能理解我的人了。还记得离开深圳前,我和对象一起去看望父亲母亲,父亲笑着说:我知道你们这次来是跟我们告别的。我虽然笑着接了话,但内心百感交集、泪如雨下。

四月初,我们来到了重庆。比起其他城市的快节奏,重庆给我的第一印象就是很有生活气息。地铁上能经常看到老伯伯挑着箩筐、嬢嬢背着背篓。有一次,我还在地铁里的过道上看到有老伯伯卖栀子花——那是久违的故乡的味道。街边大家做着自己的小买卖,还有各种我爱吃的小吃,走在路上也会有路人跟我搭话闲聊,让我感觉这座城市的百姓都非常热情。还有一次,我们去小吃街买田螺,我们不确定好不好吃,于是老板让我们随便试吃,我本想挑一两个田螺试试口味,结果老板直接用小盘子盛了一盘给我们,更重要的是,她并没有用道德绑架我们,而是笑着说:先拿去吃,买不买没关系,好吃的话下次来买,我经常在这的。

后来,我们找好房子之后,开始搬家。货拉拉司机看到我们行李多之后,主动过来帮我们搬。让我印象特别深的是,在一楼大厅的陌生人,也很热情地过来帮忙把那些行李搬上车。还有一次,我取完快递,因为是大箱子就用双手抱着,在我前面的小姐姐把防火门打开之后朝身后看了一眼,发现我腾不出手来开门,就在那把门支着等着我过去,其实我离她还有一段距离,她本可以直接离开。

再后来,和朋友聚餐,点餐的时候不小心点多了两碗米饭,老板主动过来问我们是不是点多了让我们退掉,后面发现确实看岔了点多了。其实若不是他主动提醒,我们在场的所有人都没有发现这个问题。

作为律师,我当然也很关注司法环境。目前给我的感觉还是很不错的。无论是劳动仲裁还是法院诉讼案件,都可以网上立案,这对于我办案就极为便利了。我之前网上立的一个案件,开庭时间确定之后,虽然我同时收到了短信通知和线上通知,但仲裁委还特意打电话给我确认了一下,这让我觉得仲裁委很负责。

后来我在渝中法院开庭,由于上一个庭审(与我代理的案件是同一个法官)还没结束,但法庭的门是开着的,于是我在旁听席等候。那个案件是个劳动争议案件,只有原告来了,案件是缺席审理的。我看见法官特别耐心地倾听、特别温柔地讲述,这让我觉得,法院很负责,至少负责审理我这个案件的法官很负责,那个时候我仿佛看见了一束光。当然,最后这个案件也很快收到了胜诉判决。

还有一次,仲裁员在开庭前,核对了我们双方的身份,发现对方的身份并不是被申请人的代理人,而是案外人。这个时候,本来也可以缺席审理。但仲裁委为了定分止争,还是耐心地问了来龙去脉,花了将近 3 个小时极力促成双方的和解。无论是仲裁员、我、我的当事人还是案外人,本可以庭审完静候判决即可,毕竟,正常情况下庭审所花费的时间成本远远低于和解谈判,但当时所有人都愿意花更多的时间去促成和解。我还记得仲裁员当时说了这样一句话:遇到你这样的律师,是当事人的幸运,也是我的幸运。遇见这样负责的仲裁员,又何尝不是我的幸运?

当然,这段时间的经历远不止如此,只是这些事情让我感触颇深。比起量化的人生,这种难能可贵的品质更让人动容。种种经历让我觉得,这座城市是有温情的。或许你会问,难道没有糟糕的方面吗?当然有。但对于我个人而言,瑕不掩瑜,不然怎么叫渝呢。而且,我听说市长信箱非常好用。更何况,这座城市是她的故乡。

闲下来的时候,我也会尝试着去思考:为什么重庆的生活气息会这么浓厚,大家为什么都会这么热情。后来我翻阅了历史,找到了答案——那次惨绝人寰的轰炸……那场漫无边际的山火……网红城市只是它的表面,有更合适的词去形容这座山城。游离之间,或许定居于重庆,也是一个不错的选择。

(此文写于出差返程途中宜兴飞往重庆的飞机上,2025 年 7 月 4 日 22:45)

  •  

记录:彻底删除Windows系统中我的电脑 - 文档 - 搜狐影音 文件夹

一、背景

最近给家里的台式电脑安装了纯净的win10系统,但由于U盘启动工具原因,导致安装系统后预装了一些软件应用。由于我并不习惯使用这些软件,便把它们全部卸载,并清理了注册表。唯一让我头疼的是,虽然我已经卸载了搜狐影音,也通过腾讯电脑管家把冗余的注册表记录删除了,但我的电脑 - 文档中,仍然存在“搜狐影音”这个文件夹,后面我无论是删除,还是用各种工具粉碎,重启电脑后仍然会在文档文件夹中自动生成搜狐影音文件夹。对于强迫症的我,确实受不了,于是尝试了各种方法去解决。

二、各种尝试

最开始还是希望能够通过搜索到相关的教程文档,按照教程来解决。可是,我使用了各种搜索引擎结果也没有得到一个解决方案。于是,我开始自己尝试。先是清理注册表,搜索了所有包含SOHU或sohu的注册表记录,并把它们全部删除。后来我检查了服务进程和计划任务,禁用和移除了可疑的任务进程。再后来我甚至使用了电脑管家的系统急救箱,把系统文件查了个遍。再后来我问AI,按照AI说的方法尝试了,依然无法解决。重启电脑后,搜狐影音这个文件夹还是会自动生成。于是,我开始怀疑,这个肯定是计划任务,但并不是独立的计划任务,而是绑定在系统进程中,也就是有系统进程给它套壳,导致无法追踪。

三、最终解决

既然是启动电脑后自动创建的文件夹,那就可以通过监听行为来查找原因。这里需要用到微软官方工具:Process Monitor 来捕捉创建行为。这里需要自定义筛选规则,在 Filter 中添加规则:Path contains 搜狐影音 then Include。

接下来,我删除文档中的“搜狐影音”后重启电脑,然后第一时间运行Process Monitor(必须赶在搜狐影音文件夹自动生成之前,否则无法捕捉到),捕捉到是系统服务svchost.exe这个进程创建了搜狐影音。接下来,通过管理员运行命令提示符:

tasklist /svc /fi "PID eq 5096"

(这个PID需要根据自己的记录填写)来查看svchost.exe实例中运行了哪些服务,然后终于找到了可疑服务:SHServicePlatform

通过AI了解到SHServicePlatform是搜狐影音残留的后台服务(SohuHelper Service Platform 的缩写),它注册为系统服务并托管在 svchost.exe 中。虽然卸载了搜狐影音,但该服务仍保留在系统服务列表中,导致:每次开机由 svchost.exe 托管启动、自动创建C:\Users\Administrator\Documents\搜狐影音 文件夹、自动写入注册表项、甚至可能保持后台网络活动。

问题已经找到,可以放心删除该服务以及注册表中的对应记录了。

四、解决方案

第一步:通过管理员运行“命令提示符”,彻底移除SHServicePlatform:

sc stop SHServicePlatform

sc delete SHServicePlatform

第二步:清理注册表,搜索“SHServicePlatform”,并删除所有相关注册表记录,然后重启电脑。

至此,我的Windows系统干干净净,我的电脑 - 文档 中,“搜狐影音”文件夹不再自动生成。

  •  

与自己和解

今天下午去物流站点送上最后一箱行李的时候,我抬头望了一眼天空,半截天的乌云呈排山倒海之势,似乎在宣示着些什么。我赶紧让对象先回去拿伞,我刚到站点,这场雨就下了起来。

在决定去重庆前的这两年,发生了很多值得记下来的故事。偌大的世界,这些零零碎碎不过尔尔。但记录生活,是这个博客的初衷,也是给将来的自己一个交代。某一天回首过往,能够清晰地看见那个真实存在过的自己。

有一件事情我一直引以为傲,那就是我为自己做的规划。从毕业前的实习期,到成为独立律师的前一年,所有的职业生涯都在规划的预期之中。最后一份授薪律师的工作,是我人生脱轨的开始。

我还记得决定放弃在互联网公司做前端开发、转而从事法律行业的那时候,我看到了一篇优秀的辩护词,无论是从法理还是从情理的角度,它都深深地感染到了我。为公平正义而奋斗终身,成为一个真正有用的人,这不正是我的理想所在吗?于是,坚定地选择了律师这条道路。

刚到深圳的时候,我已经渡过了做律师最痛苦的阶段,成为了一名执业律师。那个时候我选择了一家案子比较多的律所,只为在真刀实枪的战场上锤炼自己、积累经验。平均每周 3-4 个庭要开,这个强度或许只有同行知道。百炼成钢,虽然可能远远比不上那些优秀的前辈们,但对于我个人的诉讼经验,可以说是指数式地增长。后来,又选择了一个主要做刑事案件的团队。在无尽的诉讼之中,虽偶觉疲乏,但内心丰盈而富足,期间也不乏耀眼的成绩。

看着自己离理想更近一步,心中不少欢愉。只是,这个世界是残酷的。经济环境的影响,让我的老板也开始为案源焦虑,最终,我被派驻到了一家政府单位。就工作本身而言,老板对我特别好,政府单位的领导和同事也都特别好,薪资也是我非常满意的。只是从我个人职业发展的角度来说,在派驻单位的那段时间,等同于虚度。后来,老板的案源渐渐回温,我也更加没有自己的时间了。于是,我最终选择了离开,离开那个我曾经称之为“理想工作”的岗位。生活总是如此讽刺。

那个时候,我已经执业快三年了。2024 年 2 月,综合各方面的考虑,我决定独立。独立之后,最匮乏的就是案源,一介布衣,无人问津。以前我代理过的客户可能都信任我的专业能力和责任心,但对于素昧平生的陌生人,或许更愿意相信没有《律师法》和《律师执业行为规范》等约束的法律咨询公司,或者是他们长期合作的老朋友。

独立以后,最富裕的就是时间。其实,让自己在奋斗的路上停一停,是有必要且有意义的。只要这段时间没有虚度,那就无愧于此生。

三月,我去把两边的智齿都拔了。其实,我对于拔牙这件事,一直是很抵触的,而且是很恐惧的。得益于在卫健委的工作经历,我选择的医院还算不错,术后对象贴心照顾,如今早已恢复,算是迈过了心中的那道坎。

四月,父亲告诉我他被公司克扣了年终奖。这是一件让人愤怒且值得较真的事情。平复好父亲的情绪以后,我决定先礼后兵。先让父亲去找人事了解情况,请求补发。毫无疑问,人事坚持那一套冠冕堂皇的说辞。既然如此,只能诉诸法律,尽管程序可能很复杂,而代价也会很大。毫不夸张地说,办理本案的成本,已经远远超出了我们所主张的数额。这里引用电影《第二十一条》里面的一句台词:“所有正确的事情都会有代价,但不能因为有代价就不去做。”毕竟,这个世界并不存在唾手可得的正义,人活着就是为了争一口气,而“法,不能向不法让步”。

后来,正常走诉讼流程。开庭的时候,公司聘请了律师,也派人参加了旁听。同行相惜,正常来说,律师都是站在自己当事人一方说话,各种论点无可厚非。我也并不喜欢去对别人评头论足,更何况是同行。只是,这一次的对方律师,实在让我大跌眼镜。这里记录出来,也是为了给律师行业正名。

首先,案件无论大小,但凡接受委托了,理应好好准备,在法律允许的范围内,为自己的当事人争取最大的权益,这是责任心的问题。而对方律师,我能够明显感觉到没有怎么准备,或者是过于自信?至少我认为,很不负责。其次,至少要有基本的专业功底,这已经是一个很低的要求了。法律应该是严肃的、慎重的、专业的,而不是轻浮的。言及此,这里举一个当时庭审中的例子。对方律师为了证明制度的真实性,拿出了一张有我父亲签名的《××制度告知书》,这份文件只有制度的标题没有制度的内容。我质证这份文件的时候,否认了这份证据的真实性,核心理由是这份证据只有形式上的真实性,但不具备内容上的真实性,不能真实地反映公司已经履行了公示告知义务,具体就不展开了。当时对方律师直接红温,破口而出“做人要讲诚信,人无信不立,可以申请笔迹鉴定”等等甚至进行人身攻击。庭审进行到这里的时候,我彻底放心了。我的内心难免五味杂陈。要知道,对方是一个执业 20 多年的老律师。至少我会认为,这样的前辈一定是值得学习的榜样。特别是最后庭审结束的时候,他可能真的气急败坏、失了分寸,直接走到我的面前炫耀他的资历,嘲笑我“你是拿你爸的案子练手吧?”从执业年限上来说,我确实不及他。但或许他并不知道我的故事,以为我只是一个初出茅庐的小律师。

我不知道他后来收到败诉裁决的时候作何感想,也不知道,公司的财产被强制划扣的时候他是否还能自信地跟公司交代。至少在他后来给法院的申请书中,我能够清楚地看到,他终于认识到了自己的狂妄无知和不负责。此时补救,为时已晚。很多答辩意见早就应该在庭审中提出,或许并不会改变案件的结果,但至少问心无愧,也值得被尊重。

我想说的是,这个案子遇到的律师,确实是我遇到过的律师中的极少数,也可能是律师群体中的少数。无论输赢,大部分律师还是专业负责的。只是,从心理学上来讲,基于这种幸存者偏差现象,很多人往往会因为极端的个案改变对群体的认知。更何况,现在法律咨询公司以各种话术让老百姓误以为这些销售就是律师。这或许是一个时代的悲哀。

再后来的几个月,主要是在写代码。编写完善了“情侣日志”小程序、律师名片网站、法律知识管理网站,以及基于 Typecho 的 OneBlog 生活博客主题。我一直认为,写作是一件非常重要的事情。于爱情,那是我们共同的珍贵回忆;于生活,那是我真正存在过的痕迹;于专业,知识管理和复盘是专业能力得以精进的有力保障。

十一月,在京东购买了最新款的Surface Pro。我个人而言,确实更喜欢 Windows 系统的开放,也有很多优秀的软件。轻薄笔记本用来办公再合适不过。在收到货以后,才发现 Surface 的处理器架构并不是 x64 或者 x86,而是 Arm 架构。这意味着很多软件和驱动都安装不了,这是我不能接受的。于是我申请 7 天无理由退货,但是京东以“激活后非质量问题不支持退货”为由拒绝退货。这又是一件值得较真的事情。

其实,这很明显是霸王条款。讨论条款的合法性并无太大意义,毕竟,诉诸法律的代价是高昂的。能够解决问题,才是最重要的。现在京东已经不同意以“七天无理由”为由退货,那继续纠结这个法律依据已经没有任何意义,除非直接诉讼,但直接诉讼并不是解决问题的最好方式。于是,我重新仔细查看了商品介绍页面的任何一个角落,终见端倪。于是,我不再以“七天无理由”为由申请退货,而是以“虚假宣传,商品欺诈”为由,告诉京东,如果不同意协商解决,那就退一赔三,并且明确给了他们最后的期限。最后,以这种非诉的方式实现了诉求。我在社交平台上看,很多都是激活后没有退货成功,也有很多是通过诉讼解决的。后来,对象告诉我,她同办公室的律师,听说我激活后还退货成功了,特意夸赞了我。我听后,心中窃喜。

二月,也就是春节过后。新的一年,新的开始。本规划着个人的发展,谁曾想对象的妈妈被确诊癌症。知道消息的那一瞬间,有声亦无声。我们刚回到深圳,行李箱还没放下,又立马飞去重庆。这里引用对象记录的文字吧:短短几天,像是有一生那么漫长,上一秒还在地狱,下一秒感觉又到了天堂,希望我们都有一颗强大的心脏来应对生活中的所有困难。

三月,计划中离开深圳的日子。房东人很好,有问题能够及时解决,退房的时候也正常全额退了押金。换城市最让人担心的是行李问题,由于小区门口就有物流站点,多个平台对比之后,去这家公司谈价格,最后老板同意走内部价,比市价便宜一半。

还记得我刚去深圳的时候,一腔热血,怀揣着激情和梦想。那时候,我和货拉拉司机闲聊着,他说,很多人来深圳都是不到三年就离开了,能够待满三年的,都是人群中的佼佼者,最后大概率也留在了深圳。我心里想着,要好好努力,争取能够留下来。彼时,“天之骄子,大有可为”,毕业时母校的祝福在我的心里回响着。今年,刚好满三年。生活总是充满着讽刺,不是吗?

离开深圳的时候,雨下个不停,天气格外冰冷,朋友特意赶来机场相送,我心里很是感动。我们笑着说再见,却深知再见遥遥无期。于朋友如此,于理想亦如此。

人生天地间,忽如远行客。

(执笔于2025年3月15日 深圳宝安国际机场)

  •  

若坚持面向光明,则必将抛却暗影

十四年前,也就是2007年,我体验到生命中第一次、也是唯一的一次等成绩的忐忑。

在2007年考博之前,没有哪一次考试让我有过忐忑。究其原因,或出于懵懂,比如小学阶段的任何考试;或失于轻狂,比如中学阶段的所有考试;或缘于拼命,比如硕士研究生入学考试;或因为有些考试本身没有任何挑战性,比如普通话资格、教师资格之类的。

之所以忐忑,首先是因为这是我第三次考博,并且坚持到走进考场、做完试卷。具体而言,2005年、2006年的考博,我从报名、缴费,到复习、备考,直到最后一刻决定放弃走进考场、看看试卷,我都是认真、审慎的,以至于没有成绩早已在我的预料之中。

从结果上看,放弃是一步到位的堕落。不过,在放弃之前,却往往斗志昂扬、顾盼自雄。2005年我第一次考博,报名之后我做足了功课——从买书、看书到旁听课程、参加在读博士生的研讨……在一年的复习中,博导对我的鼓励、学长对我的肯定、学习中屡有心得的小喜悦,这一切细节仿佛都在不厌其烦地暗示我通关的必然性。我记得当时我亲爱的老妈依照惯例,在大年三十晚上感慨“今年过得可真快”,我嘴上没言语,心里却暗叨叨说,今年这日子过去的速度吧,恰好与我学识增长的速度、笔记积累的厚度和势必通关的程度成正比。

到了考试的前一天中午,我就住进了离考场最近的发小寝室。他当时正在读博士一年级,我平时跟他和他的室友也多有照面,既然大家都这么熟络,而且我满肚子的考点无处释放,于是,我自然把话题引到了我的考试范围中。通常在吹嘘自己的时候,时间就过得飞快,一眨眼就到了下午,我的另一个发小如约而至,要请我吃晚饭。刚落座,他就从手提袋里拿出两瓶白酒,并且斩钉截铁地给出了我无法抗拒的理由:兄弟之中,只有你读书多,干了这瓶壮行酒,明天考试占鳌头!……第二天早上我挣扎着从梦中醒来,朦胧中看看手表,已经九点半了。我跟读博的发小抱怨说:“你怎么不叫醒我?!”他咧开嘴说:“叫了,叫了好几遍,你没有反应啊!”他话音未落,一阵酒意冲得我四肢百骸酸软乏力,罢了罢了,不如睡去。

在备考这件事上,重整旗鼓几乎易如反掌,如果不是要换专业、买新书的话,应该会更简单。在2005年的某个夏夜,好友小聚话考博,我手握酒盏,面如平湖,总结前番考博教训说:“一年焚膏继晷,可谓问心无愧,唯一的小遗憾是酒喝多了点,以至于晚节不保,今夜兄弟在座,我举杯为誓——2006年考博,绝不重蹈覆辙!”

接下来,我换学校、换专业、换博导、换新书,不忘初心,砥砺前行,更投入、更专注,更多地与新的博导、新的学长交流,获得了更真切的肯定……我觉得自己对考博、读博充满了爱,就像歌词唱的,“爱要越挫越勇,爱要肯定执着”,我像一只经过风雨洗礼却白帆满涨的航船,轻快地划过海面,驶向报名、缴费的日子。不过,单位的人事制度给了我当头棒喝:请长假是不允许的,要么正常工作、放弃考试,要么坚持考试、旷工处理。挣扎归挣扎,当时,我几乎没用多长时间就选择了前者。

正视羞耻是勇往直前的序章。整个2006年的夏天,我不断尝试着站在正常人的角度而不是我自己的角度去反思前两次考博的经历,客观地说,差一点儿成功与成功相比,差的可不是一点儿,而是很多——谁会在考试前夜烂醉如泥?谁不会统筹工作与备考的日程?

2006年初秋的武汉,空气里浸润着湿冷。我第三次选择了新学校,第三次选择了新专业,第三次选择了新导师,第三次购买了新书籍,第三次整理心态、开始复习。接下来的日子里,我倍感艰难:2005年以来的房贷令我每月入不敷出,我不仅增加了本单位的授课工作量,还在校外兼职授课,一周下来,不是在上课,就是在去上课的路上。那一年,我不再跟以前一样时时出没于博导的课堂和学长的寝室,我总是背着一个巨大的书包,把几乎所有的资料都放在包里,还练就了在公交车上站着都能看书的技能。

2007年4月6日,周五,晚上九点半,我进了书房,把这一年来我看过的所有资料浏览了一遍,给重要的资料写一条百字左右的摘要。凌晨两点半,我躺在床上,昏然入睡。六点半,我洗漱完毕,动身前去考场。

2007年4月7日,上午九点,我打开了试卷密封袋,看到了试卷。这是我人生中第一次看见博士入学考试的试卷,我能感觉到密封线内的答题留白处浮动着自己这三年来的影子。我提笔作答,胸中无端地有一股意气,一定要在字里行间抒发。收笔之际,我检视答卷,没有涂改,工整如一。

2007年5月末的武汉,仍旧是乍暖还寒。我捏着小灵通,忐忑地等着回电——前几天我听说复试结果出来了,可是学校网页上没有公布,好友帮我找到老师的手机号码,几番鼓励我给老师发个消息问问。我思忖再三,也顾不得那么多了,于是给老师发了一条问询短信。我背着书包,漫无目的地兜着圈子,踱过来踱过去,突然手机响了,我赶紧看一眼,却是广告短信。我心想:算了吧,都这么久了,脚也踱得酸了,肩也硌得生疼,回家吧,看看书,为来年做一点准备也好。正要抬脚走人的时候,短信铃响了,定睛一看,正是老师发来的,打开一看,“把你录了”——说实话,祖坟冒青烟我没见过,可是此刻的我如同身临其境。就在此时,短信铃又响了,我一看,居然还是老师的短信。这让我心里一惊,莫不是老师发错了,现在来纠错?我打开短信,赫然写着“给你个公费”。

四年后,在博士毕业的谢师宴上,老师在点评我的学业时,指着我说:“你是那一届我们导师组无人认识,仅凭一张试卷就给你复试机会的学生,而你在复试中的表现,说明当初我们没有看走眼。”

若坚持面向光明,则必将抛却暗影。与诸君共勉。

作者:高晖云

  •  

甘于平庸

我年青的时候,功利性极强,不是稼轩当年万里觅封侯的气概,只是希望出人头地,二十几岁成为政协委员,跻身小城名流。2001年左右,蒙桂明师兄推荐和许靖兄的垂爱,上了央视,混了一个脸熟。不过,这只带来一拨又一拨的求助信件,(当时并没有多少社交媒体,因此,求助信就是鸡毛信),当时还去了山城帮出租司机群体维权,在电影院帮他们开会,幸好薄王主仆二人并未上任,否则估计也会很李庄。这些维权过程中,很快发现自己能做的,极有限。

混个脸熟无助于业务增长,为什么律师界闷声发大财的,主要是帮有钱人做事,不管大事小事,总之都是有钱的服侍。求助于电视或者网络的,只能是穷苦人。后来开始有社交网络,发现世上高人异事极多,多了些敬畏之心,功利性有所减弱,但依然会以曾文公为典范,知道无曾文公的本事和机遇,学修身养性,文正公如同父兄师长。后来极偶然机会,侥幸得着一点薄名,除了带了骄傲,还被转型引入刑事辩护领域,骄傲加压力,让自己遭遇种种试探和挫折,人的尽头,就是神的开始。

现今五十岁,算略知一些人生和世界。你看世界上,成名成家者毕竟少数,多数人客观上会要学会接受“平庸”,当然这个平庸,是世界的标准,我等会儿会讲另一个标准。世界的标准,就是古希腊人说的,人是万物的尺度。人的尺度,最成功的,无非就是如亚历山大大帝一样,十几岁开始争战,三十岁征服世界,美中不足的是,他就只活了三十三岁;人的尺度,或者就是富可敌国,咱们就不谈胡雪岩了,都知道结果不好;人的尺度,或许就是美女如云,可惜,中国皇帝的平均寿命不过三十。人的尺度,或许就是刘邦项羽,项羽不说,刘邦最爱的戚夫人和儿子,等老刘一死,成了吕后残忍的牺牲品。

但人们总是看到各种成功人士的美好的一面,却忽略了另外一面。当据说科比的曼巴精神是凌晨三点去投篮,你想过没有,这个年轻人,又多少时间,去思考人生,去认识世界,除了给人贡献了精彩的篮球比赛和自己的总冠军戒指。黑曼巴是非洲的一种毒蛇,我们会敬佩科比的球技,但如果要从人生的均衡而言,热情,执着,严厉,回击和无惧,这些美好的词后面,其实,都藏着对自己的严苛功利。或许科比的曼巴方式成功了,但可以肯定绝大多数,就算凌晨一点开始去练投篮,也未必会赶上科比一二,天赋很重要,有时甚至是决定性的。有了天赋,可以有勤奋,但勤奋也还是要有限度的,人生均衡性很重要。

真正幸福的人生,是认识自己的天赋,更重要的,是认识自己的使命,有时天赋意味着使命,有时发现自己什么天赋都没有,那也得接受,你肯定有自己的使命。勤奋也会让人有一块存留的天地。但要记得,不管有什么天赋,如何的勤奋,如何的成功,都要走下T台,回归自己真实的生活。乔丹必须接受,他之后有科比,科比也得接受,他之后,还有新的明星。如果你以T台为惯常,你会不习惯没有掌声。我曾在一个非常有名的律师身边工作过,见识过,一个辉煌的人物,走下舞台之后的落寞。其实,除了终身领导,几乎所有的人,都要习惯寂寞,当然,终身领导会更寂寞,因为,他身边都可能是敌人。康熙皇帝把自己的大儿子杀了,这样的事情,对历史来说,无非是又一出小花絮。

对大多数人来说,甘于平庸,无非是接受自己的使命,(不是认命),人最重要的使命,是认识真理。孔子开始就说,朝闻道,夕死可矣。信仰是所有价值观的基石。人都有信仰,就算号称无神论的,也有信仰,就是:我信自己。记得,很久之前,我刻了一枚章,理学后人。因为,我在比较理学和心学之间,我不是很认同我的老乡王阳明,虽然,他的事功似乎比朱熹要牛。但一般人,学朱熹的理学,修身养性,有圣人的言语作标准,不至于作狂人,可以踏踏实实过日子。但学心学,往往我心即宇宙之后,缺乏外在约束,后来泰州学派的赤手缚龙,就似乎入狂禅了。当然,你也可以说,理学也容易变教条。

甘于平庸,是要平衡自己的责任。你说我找不到使命,也行。人类很重要的现象是,你其实,并不是光为自己而活。就算不信神,你恐怕也要为家庭而活,看到很多为了自己的成功追求,而舍弃(在家如同出家)家庭的,除了留给家庭一个背影,或者一个取款机之外,一无所有。但绝大多数人,(除非特别呼召)还是要完成自己的职责,教养孩子,陪伴孩子,抚养孩子,赡养父母。就这一点,你恐怕就得甘于平庸了,你有多少时间可以去追求卓越?你的卓越,或许就是其他责任的抛弃。

甘于平庸,也得接受孩子平庸,或者让孩子接受甘于平庸。真正的平庸,可以是一种很均衡的生活,也是一种各种职责平衡的生活,不受世界偶像,和别人掌声的诱惑。古人说,杀君马者,道旁儿。世人多被这些掌声吸引,其实,你去看看那些明星的生活,你就知道,掌声背后的寂寞。你看看林青霞现状如何?世上美人如英雄,不许人间见白头。很多人,往往得等到孩子出事了,才想明白,孩子平平安安,平平庸庸,也是很美好的事情,不是吗?

甘于平庸,不是颓废,而是按照内心呼召的节奏生活,不要拔苗助长,追求的目标,不是功利。补习班可以增加你的成绩,但不会增加你的能力。每天凌晨三点的投篮练习,可以增加你的投篮命中率,但你会牺牲自己的健康和精神生活。卓越需要代价,如同浮士德博士的交易,你总得付出些什么。有些人蒙上帝的垂青,就是有某种天赋,很好,但主要天赋不要成为自己的束缚和绊脚石,人往往跌倒在自己的擅长上。

人不光是服事自己的家庭,也要服务自己的国家和社会,这中间也需要平衡。在国家和社会的服务中,更需要不要视之为偶像。德国人在一战二战的陷阱中,就是视国家为偶像,为终极的救赎者,最终落入万劫不复之地。

甘于平庸,是不求人的悦纳,但求神的悦纳。基督信仰是不苛求人成功的。因为耶稣在世上就是一个失败者,他选择的人,不是渔夫,就是犹太人唾弃的税吏等。基督徒没有什么成功标准,不以地上的财富权力为标杆,最重要的只要求你一件事,传福音。这个事情,不管成功者,不成功者,都可以做,而且,只求你传,信不信不是你的事情,是神的事情。虽然如我等信徒,未必能活出好的样式来,但依旧可以活在内心平安之中。

记得新儒家冯友兰先生有一副对联,阐旧邦以辅新命,极高明而道中庸。后一句,不如改为极高明而道平庸。不鸡血谓之平,不激进谓之庸。冯友兰先生就是被第一句束缚,似乎将旧邦新命视为偶像,结果落入伟大领袖的“天下英雄尽入吾彀中”。儒家的立德立名立功三不朽用佛教的一句话来说,有执就有障,但佛家的学问太出世,也容易落入不均衡的境况中。工作,家庭,个人,集体,社会,国家,都需要均衡,而能统摄这均衡的,必须是真道。

要甘于世人眼中的平庸,因为那是人的标准但真正的标准,是神的标准。要知道在神眼里,每一个人都不平庸,都是独一无二的,就算指纹都没有一模一样的,一花一叶都不同,使命也不同。没有所谓平庸,因为评价体系不一样,爱神和爱邻舍,成了最重要的。如同在真爱的家人,朋友面前,只有独特的关系,没有平庸和成功,子不嫌母丑,狗不嫌家贫。再用民间的一句话来说,宁要讨饭的妈,不要当官的爹。因为,虽然妈比平庸还惨,但她爱我,爹比世人成功,但没时间爱我。

圣经里有一句话:人若赚得全世界,赔上自己的性命,有什么益处呢?当然,这个性命,是指真正的生命,在这个生命里,每一个人,都永远不会平庸。对不起,我又传道了。但你似乎也看完了。谢谢你!

作者:斯伟江

  •  

大人与小孩

执笔的这一刻,梦境还是很清晰,已经很久没有出现如此完整而真实的梦了,昨晚梦见回到了初三——那段人生至暗的时光。

梦里是这样的场景:假期结束返校,班主任叶老师特意来教室跟我们说“我知道你们早已习惯了社会上的酒肉生活,现在突然回到了这里,难免坐不住,但是既然回来了,我们就好好做好当下的课业”。说完便开始检查假期的作业,我记得大概是要在自己的日记本里找到《玫瑰花的葬礼》这首歌的歌词誊抄,大家都找到了,我却没有,一时间不知所措又惶恐至极。同桌是一名很有名的企业家,记不清是谁了,但是我看到了他那充满岁月痕迹却工整的日记本。心里便感叹,原来一个人的得失是能够在成长的过程中找到端倪的。我担心没做作业受到批评,也完全不知道作业没做的情况下怎么应对,只是想着先做一份吧,于是拿着书包里的书法纸,准备现场赶工。誊抄的时候我的心思完全不在作业本身,而是在想能不能早点回去,回到那个经历过很多事、吃过很多苦的年纪。 因为我知道,我已经没有勇气再把过去的苦难重新经历一次。

忙里偷闲,我打开电脑访问了几个邻居的博客,看了一下大家的2022年年终总结,虽然大家表面上不说,但字里行间,无不夹杂着收获与辛苦之意。其实,不只是成年人,每个人的世界都有着各自的苦难。只是,不如意事常八九,可与语人无二三。

过年的时候,我和弟弟谈了谈心,大概的话题就是他成绩不太好,担心高考的问题。对于他那个年纪,这是个非常普遍的话题,在很多人眼里,成绩好的就一定有经验,而且我也算不上成绩好。当然,言及此,不至于哑口无言。我没有讲我自己的过往,只是告诉了他一件他可能并不知道的小事:高三那时候,下晚自习之后,学校都要求半小时内洗漱完毕关灯睡觉,但是你如果去我们的宿舍查寝,乍一看一片漆黑以为大家都已入睡,但是你只要走进宿舍,无论掀开谁的被子,你看到的都会是他打着手电筒正在学习的景象。也许是我见识太少,私以为世上并没有所谓的天才与好运,只是我们没有看到别人背后努力的模样。 小孩有小孩的磨难,大人有大人的担当。

前些天租房的时候,认识了一个房屋中介,比起其他中介,他的真诚与实在打动了我,在还没有看房子的时候,我就在心里下了决定,这次就在他的手上租房。虽然前几次没能看到中意的房子,但最终还是在他的帮助下租到了理想的小窝。其实,比起租房本身,我更想聊聊我在他身上听到的故事。疫情爆发之前,他和朋友合伙开了一家饭店,苦心经营数月后,生意如火如荼,那段时间赚了不少。2020年初,疫情爆发并蔓延全国,人口密集、流动性大的营业场所不可避免地受到了严重的冲击。原本以为数月后就能恢复正常,结果我们都知道,半年过去了,依然封控;一年过去了,封控成为常态;两年过去了,也只是陆续有了放开的声音;两年半过去了,营业仍没有恢复正常。可是,对于一个小店,甚至说对于一个小规模的企业,这种打击都是致命的,无数公司因此闭业,他的小店也不例外。

眼看他起高楼,眼看他宴宾客,眼看他楼塌了。虽然不能真的做到感同身受,但当他说出这段故事的时候,我能看出他眼里的无奈和释然。后来我得知他现在打着两份工,白天干着本职工作,晚上出去摆摊,天天如此。对他的敬重之情,已悄悄涌上心头。 每个人都有自己生命中不能承受之重,我们都是带着遗憾和泪水拼命绽放。

时至今日,我都还记得之前在地铁口见到的一幕:一个小朋友,背着书包,小心翼翼地搀扶着他的奶奶,走得很慢很慢,但是步伐很坚定。而那位老奶奶的手里,提着刚买的蔬菜。可怜天下父母心,我相信他的父母,比我们任何人都想亲自接他放学,只是身不由己,在背后默默承受着一切,而他也正努力成长为大人。

刚来深圳的时候,面试完几家律所后,我偶然来到福华路,那里高楼林立,蓝天白云,在十字路口等红绿灯的我,伴随着滴答滴答的声音,陷入了孤独和茫然的状态,天地之大却无我容身之所,车水马龙却与我无关。那个时候,我才真正明白,每个人都有自己的路。 我们或许有机会选择路的方向,但最终能否抵达,还是取决于我们能否披荆斩棘、朝这个方向坚定地走下去。

或许正如尼采所说,人生本就是一场苦难。至于人生的意义,大可不必追问,因为,过程本身就是答案。

  •  

内在的从容

——当我们改变不了什么的时候,就用最好的心态去接纳当下。

写这篇文章的此刻,我正被隔离在酒店。向工作组了解完隔离期间的一些注意事项后,终于安顿了下来。如果说之前没有时间去思考、去写作,这一次怕是没有借口了。

像往常一样,周一正常地去律所,中午在大厦餐厅吃了午餐;周二早上收拾完后正准备出门,收到了师父的消息——大厦检出阳性、先不要出门,我看了一眼昨晚的核酸结果,阴性,绿码仍在。于是我就打开了电脑准备在家里办公。接着,先后有流调中心、街道办、居住社区的防疫工作站给我打电话,大概意思就是我被判定为密接了,赶紧收拾一下行李,要拉去集中隔离。没错,原因就是阳性病例周一中午也在大厦餐厅吃了午餐。不久,防护服就送到了门口,绿码也变成了红码,很快,我就被拉到了集中隔离的酒店。

在路上我也询问了律所同事的情况,才知道并非所有去过餐厅的人都被判定为密接,而是流调人员看了餐厅视频监控把密接范围缩小到了可控范围。这也就意味着被判定为密接的人,确实存在较大的感染风险。得知事情的来龙去脉后,我并没有一丝紧张或焦虑。一方面,跟师父说明了我的现状;另一方面,让单位同事帮忙把我的办公电脑寄到了酒店。此时的焦虑和惶恐,除了与内心的另一个自己共鸣,毫无裨益。密接也好,确诊也罢,这些事实我没法去改变,总不能让时光倒流、周一的中午不去吃饭吧。既如此,不如妥善处理好因此带来的影响,用最好的心态去接纳当下。就像朋友所说,终于可以好好休息一下了,就当做是强制休假了。当然,还是要工作的。对此,也很感激帮我寄电脑的同事、帮我协调取电脑的防疫工作组专班人员。

从2020年1月23日武汉封城至今,疫情已经影响了我们国家、我们社会、我们每个人近三年。这三年,有企业关停、有人失业、有人逝去,有理解和不理解,但是可以肯定的是,防疫工作已经从最开始的摸索阶段变成了如今的有体系有规范有成效的“动态清零”机制。个人有压力,国家更有压力,国家已经做得足够好了,面对疫情突发,个人的情绪管理显得尤为重要,保持内心的从容,大概是最好的方式。

防疫如此,工作和生活也是如此。

听闻现在年轻人的状态,时常充斥着焦虑和压力。其实,一代人有一代人的使命,一代人有一代人的担当,每个人身上都背负着各自的责任和压力。如果说压力还能转化为动力的话,焦虑则百害而无一利。面对未知、面对挑战、面对不确定性,如果我们能够通过自己的努力或者借力左右其结果,那就好好努力、设法借力,如果最终的结果自己无法左右,只能与自己和解、坦然接纳。

今年11月初,我裸辞了。年底不好找工作,这大概是职场的共识,但我还是选择了辞职。对于能否找到工作、能否找到一份好工作,我是丝毫没有把握的。但人总不能坐以待毙,我选择了好好完善简历、多渠道地投递简历、好好准备面试,尽力去做好这些现阶段我能做的,毕竟,我也只能努力地去改变能改变的。至于未来的东家觉得合不合适、硬性条件是否满足,我无法左右。努力过之后,至于结果其实已经不重要了。与其陷入失业的焦虑之中,不如把它当做是一次长假,韬光养晦。我也有考虑过,如果最后真的没有找到合适的工作,那就过完年再说吧,天塌不下来。幸运的是,不久之后便入职了信达律所,更幸运的是遇见了我生命中的贵人——曾律师。

堵不如疏,面对世事的无常,我个人认为这是最好的方法论。如果内心有萌发焦虑的倾向,就引导它流出去,保持一个开阔的心灵空间,而不是积压在心底。“祸兮福之所倚,福兮祸之所伏”,既然祸福无常,我们某种程度上就不应该太过于上心,做一个内核稳定的人。这种内核稳定,来自于保持与外界的距离感,去留无意、宠辱不惊,最终取决于正确的认知,毕竟,要避免走向另一个极端——麻木。

不管是面对日常的琐事、家庭的压力、工作的困扰、生活的波折,还是未来的不确定,当我们能够改变的时候,就低下头沉下心默默努力,去改变既往和眼前的不堪,当我们无论怎么努力也改变不了什么的时候,就用最好的心态去接纳当下。人生短短不过数十载,昔日光景,不复当初。与其让焦虑、抑郁占据大部分光阴,不如用这些时间去做自己喜欢的事、去陪伴家人、去爱你所爱。

  •  

昨夜的梦

这是一个春节,按照惯例,大年初一给爷爷奶奶拜年。我从田间小路抄近道过去,于是提前来到了奶奶家。送奶奶小礼物,然后聊起了家常。没多久,“大部队”就来了。上午我们要去祭祖,回来后就帮着忙活。忙活过程中,奶奶问了一句:“下午打算干嘛呀?”我和几位发小一致回答说:“打麻将”。说完之后我数了数人数,就连我们这些小朋友也能凑三桌。然后接话说:“我们小朋友就有三桌噢!”奶奶回答说:“没问题,找邻居家借麻将和桌子就好了。”一家人说着笑着,每个人的脸上都洋溢着幸福的神情。

这是昨晚的一个梦,趁着记忆清晰就此记录了下来。这也是曾经存在过的年味,那时候我们都还小,父辈们也都在故乡种地,虽然日子过得寒苦了些,但年味十足、情谊十足。

今朝梦醒,恍如隔世。年迈一点的亲人相继过世,我们的父辈们陆续都出去打工了,而我们,也渐渐长大,在所谓的大城市里面游离着。故乡,便成了老人们的空巢。最近几年春节回家,曾经的那群人,再也没有聚齐过。

毕竟,在农村种地,就会有忙月和闲月之分,过年这段时间,那就有足足2个月的悠闲时光,走亲访友、相互串门,大多时候的感情都是这么保持和维系的。背井离乡之后,春节只有七天,农村人省吃俭用,很多时候不会选择飞机高铁或者动车,而是会选择相对廉价的绿皮火车。这样,来来回回在路上的时间就有4天,真正在故乡相聚的日子,可能就只有那么三四天。在外务工不比在老家务农,时时刻刻都有规矩,从未受过约束的父辈们是多少会因为自由受到限制而觉得身心俱疲的。

于是,春节假期为数不多的日子,除了去看看各自的父母,稍微远一点的亲戚都不会再串门了,一是没有时间,二是没有精力,三是长期没联络感情也没有那么好了。人与人之间的感情,大概都是这么变淡的。我们为了各自的伟大前程,奔赴各自的世界,在别人为我们布好的局里,我们学会了唯利是图,意识到经济基础决定上层建筑。于是,我们对于故乡的看法、对于亲人的态度,都远不如以前了。

只是,很多东西是不能用利益和金钱来衡量的。或者说,真正可贵的东西,是与金钱和利益无关的。这大概就是我们常常感到空虚和落寞的本因了,我们的灵魂深处没有了根,把社会上所谓的尺度看得太重,灵魂时刻处于游离状态,无处安放。十八线城市容不下灵魂,北上广深容不下肉身。如何在灵魂和肉身之间做一个权衡,大概是我们面临的最大难题。

今天,终于拿到了律师执业证,实现了一个小小的梦想;而在昨晚,却做了一个这样的梦。也许冥冥之中,有一种声音在告诉我,不要因为走得太远,把灵魂深处向往的快乐全丢了。毕竟,长大以后,真正的快乐就少了很多,或者说寥寥无几。

我们也是第一次来到这个世界上,很多道理,不去经历一些事情是想不明白的。就用最近很喜欢的一句话来给本文作结吧:成为有意思的人,过着令人感兴趣的生活,这并不是唾手可得的事情,而是一种重大的幸运,它的获得也像精神世界的任何殊荣一样,它来自于深深的苦难。

  •  

岁月面前我们都不是对手

——写在生命的25岁

此前的几个月,因疲于备考,无心作文。在今天,终于尘埃落定。好多人应该和我一样,受到律政影视的影响,对律师这个行业存在着诸多误解。当初选择这份职业,也许是因为误解,也许是内心的正义使然,也许是机缘,何种原因不得而知。

跌跌撞撞,还算是如愿以偿,以最快的速度实现了立下的Flag。当初,为了给这个Flag让路,放弃了很多,也暂缓了很多计划。虽然接下来还有另一个Flag,但毕竟算幸事一桩,总该欢喜一场,给自己放个假,宠幸一下自己的兴趣和爱好,把搁置的半成品完成,了却自己的一番心愿。

然而,当我专门抽时间与它们相处的时候,却发现熟悉又陌生,意料之外,情理之中,毕竟很多年之前就被告知“一鼓作气,再而衰,三而竭”。在这里,突然想到以前一位故友的留言:capture a fleeting thought。当有想法的时候,就好好抓住它吧,时过境迁再回头的时候,或许早已物是人非。

准备法考的时候,有幸听了厚大高晖云老师的理论法课程,从中学到的专业知识可能会随着时间的推移而被我遗忘,但有一段话我必将终身难忘:不要觉得网上说的什么什么时候开始都不算晚,以后你们就会明白,年轻的时候都不去学,老了更不可能,凡事都是有他自身的规律,以后年纪大了人体机能退化,记忆也会大不如前,你想学也客观不能了。

时间是个永恒的话题,第一次写它的时候我还是一名高中生,大概是十年之前,“为赋新词强说愁”,写下那篇《时光列车》。这十年,时间匆匆地告诉我,岁月面前我们都不是对手。

这句话放在过去,我只会不屑一顾,然后轻蔑地说一句:呵呵,不就是年龄大一点吗,内心永远是少年。此刻,我想说的是,强大的从来不是时间本身,而是与之相应发生变化的——你曾经熟悉的一切;年龄也从来都不是衡量一个人是否成熟的标准,关键在于你接触了多少人、见识了多少事,格局和眼界是否符合成熟的标准——世人的标准。

后来的我,喜欢用一个词,叫“蓦然回首”,我们都在怀念过去。

父亲曾是村里舞狮队的灵魂人物,各种高难度杂耍不在话下,也算得上是一名习武之人。而我对于他的印象也尘封在他过去的力拔山河之时。时间最爱胡闹,未经任何人同意,就把一切都改变了。再见到他时,头发愈发稀疏,牙齿也坏掉了几颗,脸上的皱纹更是越来越深。我爱吹空调盖被子,这大概是年轻人公认的最舒服的睡觉方式。为了多陪陪我,父亲和母亲决定在酒店陪我住一晚,广州太热,我自然一进房间就把空调打开了。第二天,父亲就开始流鼻涕、打喷嚏,我想,大概就是年纪大了,受不了寒。再想到从前,老家是在长江边上,父亲可是经常冬泳的人。很是讽刺,短短不过一年,时间就轻而易举夺走了这一切,寂静无声。

我想,除了容貌上的变化,心智的改变更让人扼腕叹息。“聚是一团火,散是满天星”这大概是对同窗最美好的形容和祝福了。只是,我们真正彼此告别之后,是否成为了那满天星光?我们心中各有答案。“恰同学少年,风华正茂;书生意气,挥斥方遒”,是啊,我们都曾是意气风发的少年。在我们奢侈地干完几桩桩坏事之后,在我们发现理想和现实的差距之后,在我们全力以赴却终究没能如愿以偿之后,心中原有的那股澄澈的意气是否依然激荡在我们心中?恐怕,工位上一道道呆滞的目光已经给了我们答案——恍惚间看到一个个死去的灵魂。以前那个有棱有角的少年,如今似乎也学会言不由衷了。

渐渐明白,自己不是万能的,学会了与自己和解;渐渐明白,有天赋有能力还很勤奋的人有很多很多,顺势而为抓住机遇比天赋、能力、勤奋甚至更重要;渐渐明白,那些我所看重的东西,在很多人眼里一文不值,选择是一门看似简单却暗藏玄机的学问......

“说好的,大写的,渴望的明天,要赢过全世界;
不过一眨眼,还没发现,青春早已蜕变。”

二十五岁,新的征程。向前走吧,不必回头,往日种种,早已物是人非。也不必追光,去成为光。不管怎样,祝自己生日快乐。

  •  

伟大与渺小

回家的时候,起风了。春天来了,一切看起来都那么平静而美好。

下午的时候,有一同事爆料,新入职的谁谁谁跟新入职的谁谁谁在河边牵着手呢。于是,办公室里的时间,在八卦与笑声中流逝地飞快。前辈们回想起青春校园时光,我也暗自羡慕和祝福着这对新人。

羡慕,倒不是因为一见钟情的爱情,而是因为他们还那么年轻就拥有安稳的工作。虽然这样的工作,我也曾经拥有,但并不是每个人都有选择走下去的权利和自由。在这个快节奏的时代,爱情和面包能同时兼得,实属不易,值得庆幸。

在听罗翔老师讲授刑法理论时,心中燃起了法治之光。在看完《我们与恶的距离》之后,心中更加坚定律师梦。欣赏完崔英杰案的辩护词之后,就真正在刑辩律师的这条路上,一步一步,走着。

眼中有正义,心中有热血,周遭的一切不堪在梦想面前便显得微不足道。是啊,认准一件事,就会义无反顾。还记得第一次看刑事卷宗时,把卷里的每一个角落,甚至页码都逐一翻阅过。虽然当时理论功底有限,办案经验不足,但单凭满腔热血,也让我把工作完成得很好。后来陆陆续续参与过很多刑案,每次写的辩护词、法律意见等文书,都得到了师父的肯定。为此,我会窃喜许多天。

特别是在针对个案进行法律分析时,恍惚间觉得自己手持利剑,可以斩除人间一切邪恶。其实,即使是现在看来,也不觉得当时的自己幼稚,毕竟那是第一次切身感受到刑事辩护的魅力。就这样,在口诛笔伐的战场上驰骋着。

那时候,感触最深的一段话:“你们必须经受各种痛苦的经历,背最厚的书,参加最难的考试,忍受最低的一次就业率,更重要的是,必须在精神上脱胎换骨。法学是成年人的工作,如果不快点毁掉你们的童年,你们怎么真正成熟!法学是统治者的事业,如果不毁掉你们的平民心态,怎么能进入领导者的行列!法学是研究人性恶的科学,如果不深刻地直面邪恶,你们又怎么能彻底地明白正义!”

在偌大的法律职业共同体中,我是平凡的。在直面邪恶维护正义时,却又倍感伟大。从一开始,我就知道,这条路走下去很艰难、很艰难。还记得律师协会给我们培训时,其中一位资深律师,因为同时也是校友,所以我印象很深刻,说过这样一句话:“如果没有一点点理想主义,在律师这条路是走不下去的。”因为心中有爱与正义感,对于前路未知的艰险,从未有过畏惧。

出地铁的时候,突然下起了小雨。

离住的地方还有一段距离,我一如既往地享受着这片沉寂的夜色。下班前我被告知,下周我将要回到最初的起点。这一消息如晴天霹雳,让我寝食难安。心中没有神明,我只好问自己:是否走错了路?我没有回答,因为我不知道答案,也害怕知道答案。

生活一直很讽刺,不是吗?想下海的人下不了海,想上山的人上不了山,运气总是把我们的梦想莫名其妙地推给别人。

还记得当初梦碎时,写了这样一段日记:

“18:39,回到律所,办公室桌上的刑事卷宗在安静地等着我。

好像也对我说了句再见,于是,我抱着他们放回了师父的屋子。

不属于我的,都一一退还;属于我的,也都一一带走。就这样,理想的工位,没能坐上两天就要告别。

似乎突然间理解了田维在博客中写到的:有些梦,还没来得及去实现,就匆匆被击碎。

如果可以选择,如果早知如此......可惜,没有如果。

还是余华先生说得好:永远不要相信苦难是值得的,苦难就是苦难,苦难不会带来成功。苦难不值得追求,磨炼意志是因为苦难无法躲开。

当把一抽屉办公用品装进书包,把电脑合上屏幕,我明白这一刻,意味着梦想又一次被亵渎、被践踏。

因为我足够卑劣,所以没有追逐梦想的权利。使劲浑身解数,也不过是跳梁小丑罢了。

到底要笑得多虚伪,才能融入这世界。”

其实今天的心情,与当时很相似。经历一次苦难,心中就会生起一层茧;经历多了,茧就自然厚了。所以,今天虽然很难受,但没有当时的情绪那么激动了。“这个孩子多懂事,一定吃过很多苦吧。”我终于明白当初看到这句话时为什么会动容了。

所谓的梦想,就像翅膀一样,被无情地折断,而后愈合,而后再被折断,而后再愈合,如此反复,千千万万。也许有一天,它会像雄鹰的翅膀,自愈后变得更加坚挺有力。也许有一天再也没有了飞翔的勇气。

真理和正义是存在的,但只在炮弹的射程之内。如果渺小如蚍蜉,永远撼动不了树,只能在自己的世界里,浮浮沉沉。

我也不知道将去何方,但我已在路上。


  •