格局·经历·读书:人生的容量与边界

一、格局

人常说,格局是一个人的上限。我却觉得,它更像是一个人生命的容量,是天地在你心中留白的广袤,是灵魂所能承载的星河的宽广。

格局太小,纵有泼天的富贵、旷世的机缘,也接不住、留不住。这好比以斗量海,以瓢承雨,终究是一场徒劳的奔忙。想象一下,你手中只有一只陶盏,命运却忽倾下一条江河。水流湍急,从你盏边不断溢出,待潮头过去,盏中仍不过一握清浅。更甚者,这般汹涌的“大运”往往来势汹汹,冲垮了盏的根基,待水退时,连原先的那一握也未必保得全了。 继续阅读“格局·经历·读书:人生的容量与边界”

思维训练:从“找框架”到“长能力”

思维训练:从“找框架”到“长能力”

副标题:一条可复用的思维进阶路径——逻辑思维 → 抽象思维 → 系统思维


一、先破一个迷思:你不是缺思维框架

知乎上“思维框架”收藏夹多如牛毛,但真到用的时候,大部分人都用不出来。

问题不是框架不够多,而是脑子没练到能“架得起框架”的状态。框架就像施工图纸,你手上只有图纸,肌肉没力量,照样搬不动砖。所以与其继续囤模型,不如先回到更底层的问题:思维本身是怎么一层层长出来的? 继续阅读“思维训练:从“找框架”到“长能力””

企业 AI 网关,让AI使用透明化

企业级大模型统一接入层。一份代码、一个网关、多家模型,让组织在享受大模型红利的同时,把成本、权限、合规、可观测、可扩展五件难事一次解决。


1. 一句话定位

「像用云一样用大模型,像管内网一样管 AI 流量。」

企业 AI 网关是部署在自有服务器上的 AI 流量治理层,对上游屏蔽各家厂商的协议差异,对下游提供统一的 OpenAI / Anthropic 兼容接口;对内提供完整的管理后台、计费体系、内容审查与运营看板。 继续阅读“企业 AI 网关,让AI使用透明化”

下一个词,与命运的流形

知乎上刷到一个问题《为什么 LLM 仅预测下一词,就能「涌现」出高级能力?》,看了几篇高赞回答,像一颗石子,落进心里那片静水。

“压缩即智能”——为了预测准确,模型被逼得没办法,只能去理解整个世界的运作规律。它不是想理解,是为了降低误差,被迫演化出了理解。读到这里,我忽然想起另一句盘桓在心里很久的话:“广度是深度的副产品。”

这两句话,一句讲机器的智能,一句讲人的学问,看似无关,放在一起却绞成了一条绳。

大模型为了在浩如烟海的数据里精准预测下一个词,必须放弃死记硬背,转去提取规律,压缩信息。人要想拥有真正的广度,何尝不是如此?必须先在某一条线上深深扎下去,提炼出那种被压缩过的抽象规律与联结。所谓“压缩”,就是抓到本质,抓住那条可以牵动万物的主线。 继续阅读“下一个词,与命运的流形”

AGENTS.md: 我的opencodede的全局agents提示词设置

可以直接复制使用:

## 工作态度
- 每次工作都要用严谨的工作态度,保证完美的质量标准
- 给出详细的目标,关注目标,不要只关心步骤

## 沟通风格
- 直接输出代码或方案,禁止客套话("抱歉"、"我明白了"等)
- 除非明确要求,否则不提供代码摘要

## 求真原则(禁止瞎猜)
- 不确定/信息不足时先查证或提问澄清
- 对环境/配置/源码/行为的结论必须有证据
- 回答里把"事实"和"推测/假设"分开写

## 输出规则
- 输出语言和思考使用中文

## 代码规则
- 代码实现尽量简洁,涉及架构问题必须先进行确认
- 必须带有详细标准的注释
- 函数和文件注释必须有
- 实现的核心算法与步骤带有注释说明
- 更新代码原来的注释不要删除,不合适的更新。
- 注释原则上越详细越好

## 代码检索
- 系统安装有 codegraph ,可以使用此命令工具辅助查找分析代码

## 工作报告
- 执行的计划与结果都必须在工作目录的  "ai-work" 目录下记录
- 文件名以报告生成的 “年月日时分秒(yyyyMMdd-hhmmss)” 做开头
- 报告内记录上任务的完成的详细时间
- 使用markdown格式记录

编程语言中的线程安全

当前冯诺依曼体系下所谓的并行安全,就是那几种模式的,rust也不例外。 据我个人所知,并行只有

  1. 锁死竞争: 各种锁或原子操作
  2. 不可变: 共享的都是只读的
  3. 隔离:没有竞争,也就没有所谓的安全问题了。 其他各种手段也都是这几种基本做法的调优和组合。 针对变成语言提供的所谓线程安全:
  4. C/C++ 是默认不优先使用任何一种而已。
  5. Rust只是默认用了 不可变 ,提供了 锁/原子 而已。
  6. Go和erlang是默认提供 隔离 方式,然后基于隔离又提供了一套通讯机制。 所谓并发语言,也就是提供了优选机制,把此机制用语法糖 好用了而已。

大模型高效沟通的技巧

一、 核心心态:把AI当作“超级实习生”

和AI沟通最有效的心态是:把它想象成一个能力超强、知识渊博、但缺乏常识和背景信息的实习生。

  • 它不会读心术:你必须清晰地交代背景、目标和约束条件。
  • 它非常听话:你的指令越精确,它的产出越符合预期。
  • 它会犯错:你需要像导师一样,检查、追问、纠正它的输出。

记住这个黄金法则:垃圾进,垃圾出。你输入的提示词质量,直接决定了输出的质量。


二、 提问的基本规范与结构

一个高质量的提问,通常包含以下四个要素。你可以把它看作一个万能公式:

1. 角色

  • 是什么:明确你希望AI扮演什么角色。
  • 为什么:这能设定对话的基调和知识领域,让AI使用更专业的语言和思维模式。
  • 示例

不如D:D语言GC暂停时间简单测试

注:测试不严谨,只是为了了解下D语言GC不同堆下暂停情况,目的是为了根据实际项目使用部分@nogc进行堆大小控制。实际情况下堆中一般还有string,ubyte[]等一些可以块跳过扫描的,理论上暂停会更小

D 语言默认GC算法

D语言默认是保守式扫描清除算法。默认执行时期为 新分配内存,GC堆中可用内存不足时才触发(也就是如果欲分配堆够大,并且手动归还GC内存,GC堆中一直有可分配内存就不出触发GC)。D的GC使用的算法比较简单,GC耗时主要在标记和清除两个阶段。其中标记是GC增加的耗时,清除是不可避免的耗时,只是清除是把原来手动管理散点式,集中起来一起执行(RC可能出现集中清除产生的短暂暂停)。GC标记时程序会STOP THE WORLD(暂停程序所有线程执行),这个耗时也就是大家常说的GC暂停时间。GC清除时间只会占用启动GC的线程。GC标记的时间受堆大小与存活对象数量相关,GC清除与不存活对象数目相关。

触发GC的执行工作流程:

  1. 停止除了分配内存的当前线程外的所有受GC管理的线程(core.thread新建的线程,以及thread_attachThis的线程)(STOP THE WORLD开始)。
  2. 劫持当前线程开始GC工作(分配逻辑转而调用GC收集工作)。 继续阅读“不如D:D语言GC暂停时间简单测试”

不如D:Dlang(D语言)下ARM嵌入式板子开发

最近自己开发一个板子上的数据处理与转发。无需UI,本来都是基于Qt/C++进行板子开发的。但是不同型号和板子基本都是靠厂商的虚拟机开发。于是想到之前用Dlang支持交叉编译的,于是测试了下Dlang下ARM嵌入式开发,结果让人惊喜。十分愉快。 Dlang进行ARM开发基于LDC,可以选择完全betterC或完整D语言。本次小项目考虑周边的库,就采用的完整D语言开发的方案。至于GC,作为一个安全的内存池使用。

开发依赖:

  • Linux 主机,因为基本ARM交叉编译GCC都是linux运行的,我是在 openSUSE-Tumbleweed下
  • LDC 编译器,dmd不支持arm,需要使用LDC
  • arm-gcc 交叉编译器(开发板厂家会提供,只需要C语言编译器就行。)

    开发步骤:

    1. 交叉编译 DRuntime 和 Phobos
    2. 配置LDC交叉编译的依赖库和链接器(GCC)
    3. 使用D语言编写程序(注意依赖,如果依赖需要C库,相应库也需要交叉编译)
    4. 进行交叉编译程序(dub build –compiler=ldc2 –arch=你的交叉编译配置)

继续阅读“不如D:Dlang(D语言)下ARM嵌入式板子开发”

记一个QSharedPointer 和 QTcpsocket一起使用的断开连接导致段错误问题

记一个QSharedPointer 和 QTcpsocket一起使用的断开连接导致段错误问题

写了一个简易的TCPserver,需要很多回调需要socket再回调内写数据,就需要保证回调执行的时候,socket不能被删除,所以采用智能指针老保证QTcpSocket 类的生命周期,加上本地管理,写了如下代码: 继续阅读“记一个QSharedPointer 和 QTcpsocket一起使用的断开连接导致段错误问题”