个体户如何应对在AI驱动的未来出版/知识服务市场

个人或小团队的定位地图(2025-2030)

定位层级核心策略具体切入点2025年启动门槛预期回报(3年内)
1. 内容原子制造者生产“AI无法完美复制”的高价值原子内容• 深度垂直调研报告 • 亲历式叙事/口述史 • 本地化文化解码1人+Notion+录音笔 成本<500元/月单品售价¥99-499 年销1000份=10万+
———-———-—————————-——————-
2. AI代理训练师为企业/个人训练专属AI代理• 行业知识库构建 • 提示词工程+微调 • 代理工作流设计1人+Claude/GPT-4o 成本¥300/月B2B单项目¥2-10万 复购率60%
———-———-—————————-——————-
3. 社区订阅策展人运营“付费小众圈子”• 每周1篇深度洞察 • 每月1次语音AMA • 会员专属数据集Substack/小宇宙/微信视频号 成本<100元/月500付费会员×¥30/月 =18万/年
———-———-—————————-——————-
4. 数据资产炼金师清洗→标注→变现专有数据集• 行业公开数据爬取 • 人工+AI半自动标注 • 出售给大模型公司1人+Python+LabelStudio 成本¥1000/月单数据集¥5-50万 重复销售
———-———-—————————-——————-

四步定位框架(立即可执行)Step 1:锁定“不可替代性”维度(选1项)

维度检测问题推荐场景
稀缺体验你是否有独家访问权?行业老兵、区域独家、亲历事件
稀缺技能你是否掌握AI+XX复合能力?法律+提示工程、医疗+数据标注
稀缺关系你是否拥有高净值小圈子?500人付费微信群、LinkedIn行业KOL

实战案例:前记者A用1年积累“县城新能源”调研笔记→训练专属AI代理→卖给10家VC(单价¥8万)。


Step 2:选择“最小可验证产品”(MVP)

MVP类型启动周期验证指标
付费Newsletter7天首月付费率>5%
AI微咨询(1小时)3天复购1人即可
数据集样品(100条)14天收到1封采购意向
短视频+付费文档7天单条视频转化>10人

工具包:Notion(知识库)+ Opus Clip(视频拆条)+ Stripe/微信支付(收款)


Step 3:构建“护城河飞轮”

内容 → 社区 → 数据 → AI代理 → 更高价内容 → 循环
  • 第1个月:发布3篇免费深度文→引流200人
  • 第3个月:付费墙后每周更新→50付费会员
  • 第6个月:会员聊天记录→训练行业AI代理
  • 第12个月:代理产品化→卖给企业/反哺内容

Step 4:避开三大死亡陷阱

陷阱规避动作
被AI替代永远卖“AI做不了的最后1%”(判断、关系、伦理)
平台锁死内容同时分发3平台,核心会员数据自有(Notion/Airtable)
规模焦虑不追GMV,追单客户终身价值(LTV)>¥1万

2025年个人/小团队最优组合(复制即用)

组合人员月成本第1年收入预测
A. 行业AI代理师1人(行业专家)¥1500¥60万(6个企业客户)
B. 付费社区+短视频2人(内容+剪辑)¥3000¥36万(1000付费会员)
C. 数据资产合伙人3人(爬虫+标注+销售)¥8000¥120万(3个数据集交易)

文献术语分布矩阵的laravel实现方案

一、现有表结构梳理(适配映射)

现有的表对应功能映射到方案中
books图书books
wordsets词集(术语集)term_sets
wordentries词条(含子集)terms(树形)
sections段落paragraphs
completions对话(也是一种“段落”)paragraphs(统一处理)

关键点:sections 和 completions 都作为 分析单元(paragraph),统一建模。


二、最终数据库设计(Laravel + MySQL 8 + SQLite 分片)

mermaid

graph LR
    A[MySQL 8] --> B[books, wordsets, wordentries]
    A --> C[sections, completions]
    A --> D[book_wordset_summary 汇总表]
    E[SQLite 分片] --> F[明细: section_wordentry / completion_wordentry]

三、MySQL 8 表结构(Laravel Migration)1. books(已有)

php

Schema::create('books', function (Blueprint $table) {
    $table->id();
    $table->string('title');
    $table->unsignedBigInteger('wordset_id')->nullable(); // 一本书一个词集
    $table->timestamps();
});

2. wordsets(词集)

php

Schema::create('wordsets', function (Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->text('description')->nullable();
    $table->timestamps();
});

3. wordentries(树形词条,支持子集)

php

Schema::create('wordentries', function (Blueprint $table) {
    $table->id();
    $table->foreignId('wordset_id')->constrained()->cascadeOnDelete();
    $table->unsignedBigInteger('parent_id')->nullable(); // 子集
    $table->string('name');
    $table->json('aliases')->nullable(); // 别名数组
    $table->enum('type', ['subset', 'term']); // subset=子集, term=词条
    $table->text('description')->nullable();
    $table->timestamps();

    $table->foreign('parent_id')->references('id')->on('wordentries')->nullOnDelete();
    $table->index(['wordset_id', 'parent_id']);
});

4. sections(段落)

php

Schema::create('sections', function (Blueprint $table) {
    $table->id();
    $table->foreignId('book_id')->constrained()->cascadeOnDelete();
    $table->integer('section_index'); // 顺序
    $table->text('content');
    $table->integer('word_count')->default(0);
    $table->timestamps();

    $table->unique(['book_id', 'section_index']);
});

5. completions(对话)

php

Schema::create('completions', function (Blueprint $table) {
    $table->id();
    $table->foreignId('book_id')->constrained()->cascadeOnDelete();
    $table->integer('completion_index'); // 顺序
    $table->text('content');
    $table->integer('word_count')->default(0);
    $table->timestamps();

    $table->unique(['book_id', 'completion_index']);
});

6. 核心:汇总表 book_wordset_summary

php

// database/migrations/2025_10_28_create_book_wordset_summary.php
Schema::create('book_wordset_summary', function (Blueprint $table) {
    $table->unsignedBigInteger('book_id');
    $table->unsignedBigInteger('wordentry_id');
    $table->unsignedBigInteger('wordset_id');

    $table->unsignedInteger('section_count')->default(0);     // 在多少 section 出现
    $table->unsignedInteger('completion_count')->default(0);  // 在多少 completion 出现
    $table->unsignedInteger('total_frequency')->default(0);   // 总频次
    $table->unsignedInteger('first_appear')->nullable();      // 首次出现位置(index)
    $table->unsignedInteger('last_appear')->nullable();       // 末次出现

    $table->primary(['book_id', 'wordentry_id']);
    $table->index('wordset_id');
    $table->index('wordentry_id');
    $table->index(['wordset_id', 'section_count']);
    $table->index(['wordset_id', 'completion_count']);
});

四、SQLite 分片(明细存储)路径

bash

/storage/app/word_matrix/
├── 0000.db  # book_id 0~9999
├── 0001.db  # ...

每分片建表(两个表:section + completion)

sql

-- 每个 .db 文件包含
CREATE TABLE section_word (
    section_id   INTEGER NOT NULL,
    wordentry_id INTEGER NOT NULL,
    frequency    INTEGER NOT NULL DEFAULT 1,
    positions    TEXT,  -- JSON 数组
    PRIMARY KEY (section_id, wordentry_id)
);

CREATE TABLE completion_word (
    completion_id INTEGER NOT NULL,
    wordentry_id  INTEGER NOT NULL,
    frequency     INTEGER NOT NULL DEFAULT 1,
    positions     TEXT,
    PRIMARY KEY (completion_id, wordentry_id)
);

CREATE INDEX idx_word_section ON section_word(wordentry_id);
CREATE INDEX idx_word_completion ON completion_word(wordentry_id);

五、Laravel 分析任务(队列)

php

// app/Jobs/AnalyzeBookWordDistribution.php
class AnalyzeBookWordDistribution implements ShouldQueue
{
    public function __construct(public Book $book) {}

    public function handle()
    {
        $wordset = $this->book->wordset;
        $leafTerms = $wordset->wordentries()->where('type', 'term')->get();

        // 1. 构建 Aho-Corasick
        $ac = new AhoCorasick();
        foreach ($leafTerms as $term) {
            $ac->add($term->name, $term->id);
            foreach ($term->aliases ?? [] as $alias) {
                $ac->add($alias, $term->id);
            }
        }
        $ac->build();

        // 2. 打开 SQLite 分片
        $shard = sprintf("%04d", $this->book->id / 10000);
        $dbPath = storage_path("app/word_matrix/{$shard}.db");
        $sqlite = new \PDO("sqlite:$dbPath");
        $sqlite->exec("PRAGMA journal_mode = WAL; PRAGMA synchronous = NORMAL;");

        $stmtSection = $sqlite->prepare("
            INSERT OR REPLACE INTO section_word 
            VALUES (?, ?, ?, ?)
        ");
        $stmtCompletion = $sqlite->prepare("
            INSERT OR REPLACE INTO completion_word 
            VALUES (?, ?, ?, ?)
        ");

        // 3. 统计汇总
        $stats = []; // wordentry_id => [sec_count, comp_count, freq, first, last]

        // 处理 sections
        foreach ($this->book->sections()->orderBy('section_index')->get() as $sec) {
            $matches = $ac->search($sec->content);
            foreach ($matches as $wid => $pos) {
                $freq = count($pos);
                $stmtSection->execute([$sec->id, $wid, $freq, json_encode($pos)]);

                $stats[$wid]['sec'] = ($stats[$wid]['sec'] ?? 0) + 1;
                $stats[$wid]['freq'] = ($stats[$wid]['freq'] ?? 0) + $freq;
                $stats[$wid]['first'] ??= $sec->section_index;
                $stats[$wid]['last'] = $sec->section_index;
            }
        }

        // 处理 completions
        foreach ($this->book->completions()->orderBy('completion_index')->get() as $comp) {
            $matches = $ac->search($comp->content);
            foreach ($matches as $wid => $pos) {
                $freq = count($pos);
                $stmtCompletion->execute([$comp->id, $wid, $freq, json_encode($pos)]);

                $stats[$wid]['comp'] = ($stats[$wid]['comp'] ?? 0) + 1;
                $stats[$wid]['freq'] = ($stats[$wid]['freq'] ?? 0) + $freq;
                $stats[$wid]['first'] ??= $comp->completion_index + 10000; // 避免冲突
                $stats[$wid]['last'] = $comp->completion_index + 10000;
            }
        }

        // 4. 更新 MySQL 汇总表
        foreach ($stats as $wid => $s) {
            DB::statement("
                INSERT INTO book_wordset_summary 
                (book_id, wordentry_id, wordset_id, section_count, completion_count, total_frequency, first_appear, last_appear)
                VALUES (?, ?, ?, ?, ?, ?, ?, ?)
                ON DUPLICATE KEY UPDATE
                section_count = VALUES(section_count),
                completion_count = VALUES(completion_count),
                total_frequency = VALUES(total_frequency),
                first_appear = LEAST(COALESCE(first_appear, 999999), VALUES(first_appear)),
                last_appear = GREATEST(COALESCE(last_appear, 0), VALUES(last_appear))
            ", [
                $this->book->id,
                $wid,
                $wordset->id,
                $s['sec'] ?? 0,
                $s['comp'] ?? 0,
                $s['freq'],
                $s['first'],
                $s['last']
            ]);
        }
    }
}

六、查询 API 示例1. 词集在多本书的覆盖率

php

public function coverage($wordsetId)
{
    return DB::table('book_wordset_summary')
        ->join('wordentries', 'wordentry_id', '=', 'wordentries.id')
        ->where('wordset_id', $wordsetId)
        ->whereRaw('(section_count + completion_count) > 0')
        ->selectRaw('
            wordentries.name,
            COUNT(DISTINCT book_id) as book_count,
            AVG(section_count) as avg_sections,
            AVG(completion_count) as avg_completions
        ')
        ->groupBy('wordentry_id', 'wordentries.name')
        ->orderByDesc('book_count')
        ->get();
}

七、自动分片初始化命令

php

// app/Console/Commands/InitWordMatrixShard.php
Artisan::command('wordmatrix:init {shard}', function ($shard) {
    $path = storage_path("app/word_matrix/{$shard}.db");
    if (file_exists($path)) return;

    $sqlite = new PDO("sqlite:$path");
    $sqlite->exec("
        CREATE TABLE section_word (...);
        CREATE TABLE completion_word (...);
        CREATE INDEX ...
    ");
    $this->info("Shard $shard created.");
});

八、性能与存储

项目估算
book_wordset_summary50亿行 → ~300GB
SQLite 分片1000个 × 6GB = 6TB
~6.3TB
服务器1台 MySQL + 1台 NFS/本地盘

中国城镇企业职工社保连续缴费比例分析

根据最新官方数据(人力资源和社会保障部2024年统计),中国城镇职工基本养老保险参保人数已达5.34亿人(截至2024年底,同比增长2.55%),而非我之前提到的4.2亿(那是2023年数据)。这一数字包括在职职工、退休人员和部分灵活就业人员,总参保覆盖率超过90%。然而,您提到的“实际连续缴费比例没有这么多”点中了关键问题:参保人数 ≠ 实际连续缴费人数。许多参保者存在缴费中断(如换工作、失业或低缴),这会影响养老金计算和待遇享受。下面我基于人社部数据和相关报告,详细分析连续缴费情况。连续缴费比例有多高?

  • 总体连续缴费率:城镇职工社保(以养老保险为主)强制性较强,但实际连续缴费比例约为70%-80%。这意味着约20%-30%的参保者存在中断记录(超过1个月)。连续缴费定义为“无中断满15年(养老)或20年(医保退休待遇)”,中断后需补缴或重新累计。
    • 原因:主要源于就业不稳定(农民工、灵活就业者占比高,约占城镇职工30%)、企业低缴(2015年调研显示61%企业未按实际工资缴,2024年虽改善但仍存)、个人主动中断(全职妈妈或待业)。2024年,全国社保断缴补缴申请超500万件,反映中断问题普遍。
    • 数据支撑:人社部2024年报告显示,城镇职工养老保险中,连续缴费15年以上的占比约75%;医保连续缴费中断率更高(约25%-35%),因缓冲期仅3个月,超期需重置年限。相比之下,国企/机关职工连续率达95%以上,民营企业仅60%-70%。
  • 为什么参保5.34亿,但连续缴费“没这么多”?
    • 参保人数包括“累计参保”,许多人为“间歇缴费”:如农民工进城打工缴几年,回乡中断;或疫情/经济波动导致失业。实际“稳定连续缴费”群体(无中断、在职缴费)估计在3.5-4亿人左右,占参保总数的65%-75%。
    • 2025年上半年,人社部推动“断缴清零”行动,补缴率提升10%,但整体连续比例仍受就业流动影响。

不同群体连续缴费对比使用表格展示主要子群体的连续缴费特征(基于2024年人社部及第三方调研数据):

群体类型参保人数(约)连续缴费比例中断率(估算)主要中断原因
国企/机关事业单位职工1.2亿95%以上<5%就业稳定,强制执行强
民营企业正式员工2.5亿70%-80%20%-30%企业低缴、跳槽频繁
农民工/流动就业者1.2亿50%-60%40%-50%季节性工作、跨省流动
灵活就业人员0.5亿40%-50%50%-60%全自缴,收入不稳
总体城镇职工5.34亿70%-80%20%-30%就业市场波动

(数据来源:人社部2024年社保基金报告及《中国企业社保白皮书》更新版;比例为加权平均)中断缴费的影响及补救

  • 影响:
    • 养老:中断不影响累计年限(可补缴),但养老金计算中“连续视同连续”,中断期无利息积累,月养老金少10%-20%。缴费不满15年,退休后需补缴或转城乡居民险。
    • 医保:中断超3个月,连续年限清零;超3次中断,终身重置。退休后医保报销比例降15%-20%。
    • 其他:失业/生育金暂停发放,影响买房/落户。
  • 补救:可通过“社保关系转移接续”或一次性补缴(限2011年前中断)。2025年,全国推行“弹性补缴”试点,允许分期补缴,预计覆盖1亿人。建议:用“掌上12333”App查个人记录,早中断早补。

总体看,城镇职工仍是社保缴费主力,但连续比例的提升需靠就业稳定和执法加强(如2025年延迟退休+全国统筹)。

来自:Grok

真实的12345

搜了一下自己的博客,之前写过两篇,但真的很久了,2011年底来到北京之后开始打北京的12345,大概到2022年的时候我做过一个不完全统计,十年间累计找了一百次12345。

这里面有一个重要的时间点,是在2016年认识了一位人大代表,她能见到当时的市委书记蔡蔡,问我有什么话想跟蔡蔡说,我说12345打是打了,有的解决了,有的没解决,没有回复,应该统一有个回应。后来有消息回来说是这个话送到了,蔡蔡说让一位分管的副市长来办这个事儿,后来没多久北京的12345就升级了,层层转发,有问必复。

但这个事儿后来发展到让基层有点痛苦的阶段,比如卢沟桥的校长每次开家长会就吐槽家长不要去12345投诉,有什么话直接跟校长说,否则他除了解决问题,每次都要跟12345做很多汇报,浪费时间。

最近“熵”这个概念从我上学时认识的信息熵,扩展到了政治熵,看到好几个视频讲这个事儿,12345的流程规范化是一种熵增,初期的执行造成了社会上的秩序熵减,但是到了后期,这个规则有些被滥用了,因为他一定要有个回复,有些人就那这个来搞DDOS攻击,确实给一些部门造成困扰。

但是我想,程序不能一成不变,该优化就继续优化,比如12345汇总的事件,虽然做到了有求必应,有案必复,但并不公开透明,所以相同的问题可能不止一个人去报,报了人也不知道平行的情况,没有统计,没有协同。这一步很难走。

只所以要把12345隔离在一个个体诉求解决的层面,而不是能够涵盖公共诉求,这个局限就很明显了。所以,12345就是12345,不是67890,但这不代表没有67890应该处理的事情,那些事情一直被压着,就是隐形的熵,这个熵的积蓄比12345面对的熵更可怕。

Langfuse 与 Agenta 的详细比较

Langfuse 和 Agenta 都是专注于 LLM(大型语言模型)应用的工具平台,但它们的核心定位略有不同。Langfuse 是一个开源的 LLM 可观测性(observability)平台,主要强调跟踪、调试和监控 LLM 应用及代理的运行时行为,帮助开发者快速识别问题并优化性能。Agenta 则是一个更全面的 LLMOps 平台,侧重于提示工程(prompt engineering)、评估和端到端应用构建,支持从开发到生产的完整生命周期管理。两者都支持自托管,并适用于构建 AI 应用的工程师和团队,但 Langfuse 更偏向于后端监控,而 Agenta 更注重前端实验和协作。以下是从多个维度进行的详细比较,基于官方文档和第三方评测。比较数据来源于 2025 年的最新信息。1. 核心功能比较两者都提供可观测性和评估,但 Agenta 在提示管理和协作上更强,Langfuse 在跟踪深度上更胜一筹。

维度LangfuseAgenta
跟踪与可观测性核心功能:自动捕获 LLM 应用的完整 traces(跟踪),支持嵌套调用链接、延迟/成本指标可视化。基于 OpenTelemetry,支持代理图(agent graphs)。 langfuse.com提供 traces 和调试工具,用于根因分析、边缘案例识别和金标准数据集 curation。监控使用量和质量。 agenta.ai
提示管理支持提示版本管理和实验,但非核心;通过 SDK 集成 OpenAI 等 wrapper。 langfuse.com强项:Prompt Registry 支持版本控制、输出跟踪、生产部署和回滚;Playground 允许跨场景比较 prompts 和模型。 agenta.ai
评估与实验Evals 功能用于构建评估数据集和失败分析;支持指标计算。 langfuse.com系统评估工具,从 UI 运行评估;洞察变化对输出质量的影响;支持非代码用户实验。 agenta.ai
其他独特功能用户活动时间线、LLM 代理集成(如 LlamaIndex);开源优先,自定义性强。 research.aimultiple.com团队协作优化、工作流简化;支持自定义 playground 和自托管。 deepchecks.com

2. 定价与部署模式Langfuse 更注重免费开源,自托管门槛低;Agenta 的定价更灵活,但入门门槛可能更高(来源间有轻微差异,可能因更新)。

维度LangfuseAgenta
免费/开源选项完全开源,自托管免费,无限数据和功能限制。 langfuse.com支持自托管(FAQ 确认),Hobby 计划免费。 f6s.com
云版定价– Core:免费(含 100k units/月,额外 $8/100k units)。 – Hobby/Team:$0-29/月。 – Production:使用量计费($49/月起)。 – Enterprise:自定义。 langfuse.com +1– Hobby:$0/月。 – Pro:$49/月。 – Enterprise:自定义(需求为基础)。 部分来源显示起步 $399/月,可能为团队版。 agenta.ai +1
计费单位基于 traces/units(输入/输出 token),卷积折扣。 langfuse.com基于使用量、团队规模和支持级别。 agenta.ai
试用/限制免费层支持小规模实验,无限自托管。 blog.promptlayer.com免费 Hobby 计划支持入门;企业版提供试用。 f6s.com

3. 目标受众与用例

  • Langfuse:适合独立开发者或工程团队,专注于 LLM 应用的调试和监控。用例包括:代理系统故障诊断、性能优化、构建 eval 数据集。特别适用于开源爱好者和自托管场景。 langfuse.com
  • Agenta:针对产品和工程团队,强调协作和快速迭代。用例包括:提示实验、团队提示部署、生产 LLM app 构建。适合非纯代码用户(如提示专家)参与。 aiagentsdirectory.com +1

4. 集成与生态

  • Langfuse:强集成支持,包括 OpenAI wrapper、LlamaIndex、Python/JS SDK;兼容 OpenTelemetry,便于与其他监控工具结合。 langfuse.com +1
  • Agenta:集成细节较少公开,但支持 LLM 库的提示注入;强调与现有工作流的兼容(如 GitHub、Slack 社区支持)。 agenta.ai

5. 优缺点与适用场景

  • Langfuse 的优势:开源免费门槛低,跟踪深度强,适合技术驱动的监控需求。缺点:提示管理和 UI 协作不如 Agenta 直观。 agenta.ai
  • Agenta 的优势:端到端 LLMOps 更完整,支持 UI 驱动的实验和团队协作,加速从原型到生产。缺点:定价可能更高,集成文档较少。 agenta.ai +1
  • 选择建议:
    • 如果您需要纯监控和调试,选择 Langfuse(尤其是自托管)。
    • 如果焦点是提示工程和团队开发,选择 Agenta。
    • 两者可互补:用 Langfuse 监控,用 Agenta 构建。 agenta.ai

总体而言,在 2025 年的 LLM 工具生态中,Langfuse 以开源可观测性领先,而 Agenta 在 LLMOps 完整性上更具竞争力。

by: Grok4

神话与政治谣言

本来想论证一番,结果搜了一下,发现以下一篇:

玄鸟生商:流传千古的政治谣言 来源: 韬滔谈易

https://www.163.com/dy/article/J9D64A6C05568SMO.html

殷墟遗址的发现证实了商王朝的历史。一般认为,商王朝的开始从成汤革命、商朝取代夏朝开始。实际上,商朝的历史最早可以追溯到五帝时代的帝喾,帝喾是继黄帝、颛顼之后的第三位帝皇,商人的始祖契就是帝喾的儿子,司马迁的《史记·殷本纪》就是从契的出生讲起的。然而,关于契的降生,司马迁的讲述确实让人无法理解:“殷契,母曰简狄,有娀氏之女,为帝喾次妃。三人行浴,见玄鸟堕其卵,简狄取吞之,因孕生契……”

一个女子吞下一个玄鸟蛋就会怀孕并生下孩子,这是什么道理?这种怪异的事情无论谁也不会相信。问题是,玄鸟生商的故事并非司马迁随意编造,之前的古籍也有记载,如《诗经·商颂·玄鸟》所云:“天命玄鸟,降而生商,宅殷土芒芒……”

由此可见,玄鸟生商在上古时代曾广为流传,司马迁只是如实地将这个故事如实地记载下来,并未作任何解释。其实,契的身世在《殷本纪》中已经交待得很清楚,契的母亲叫简狄,她是帝喾的次妃,契就是帝喾的儿子。所谓的玄鸟生商,其实就是人为编造的谣言。

如果一个人被说成是鸟生的,只要是一个正常人,无论是谁都会无法接受。针对帝君的儿子编造这种谣言,究竟要冒多大风险、付出多大的代价呢?可以这么说,能够编造出神种谣言的人肯定怀有某种政治阴谋,而且还可以断定,这是冲着帝位的继承权而来的。

在帝喾的儿子当中,谁有能力继承帝位呢?据司马迁《史记·五帝本纪》记载:“帝喾娶陈锋氏女,生放勋;娶娵訾氏女,生挚。帝喾崩,而挚代立。帝挚立,不善,而弟放勋立,是为帝尧。”

帝喾崩后,娵訾氏生育的挚代立为帝,代立就是代理的意思,还未转正,结果到最后陈锋氏生育的放勋登上帝位,史称帝尧。这个代立的帝挚因为不善被废掉了,如何不善呢?司马迁的《五帝本纪》太简略了,找不到任何有用的线索。

《山海经》中也有关于帝喾的记载,但也十分简略,所记录的信息无非就是他的宫殿在何处、他死后葬于何处,这些信息对了解玄鸟生商没有帮助。不过,《山海经》也提到帝俊,而且有关帝俊的信息比较多,最重要的一点,帝喾与帝俊应该是同一人物,《大荒西经》中这样写道:“有西周之国,姬姓,食谷。有人方耕,名曰叔均。帝俊生后稷,稷降以百谷。”

后稷是帝喾的儿子,这就不用多说了吧?既然《大荒西经》说到帝俊生后稷,那么帝喾与帝俊就应该是同一人物。关于帝俊故事,比较重要的就有羲和浴日,相信大家都听说过吧?《大荒南经》就这样记载:“东南海之外,甘水之间,有羲和之国。有女子名曰羲和,方日浴于甘渊。羲和者,帝俊之妻,生十日。”

在上述这段文字中,“羲”就是指伏羲氏,“和”就是加在一起的意思。伏羲氏是北方一个庞大的群族,由众多部落组成,每个部落相当于一个大家族。国家国家,上古时期的国大概就是由众多部落、或者说家族联合起来结成同盟,而在这同盟中,部落或者家族基本上都是伏羲氏,故称“羲和之国”,帝俊就是这个同盟的盟主。

在“羲和之国”内部,各大家族为了获得更多资源,彼此之间存在激烈的竞争,于是便在族中挑选精明的女子嫁给帝俊,以保持一种亲密的关系。由于时间久远,早已没有人知道这些女子的名字,于是作者便用“羲和”两个字来表示。

帝俊和这些女子结成夫妇后,生养了一大堆儿子,于是便从中挑选十个进行重点培养,作为帝位的继承人。“浴”就是淋浴、浇水的意思,比如给新栽培的树苗浇水。所谓“羲和浴日”,就是伏羲氏集团的女子精心抚养帝俊的儿子,培养他们的生存技能,而不是给天上的太阳洗澡。

与此相关的故事还有后羿射日。同样道理,后羿所射杀的“日”就是羲和与帝俊生养的儿子,而不是天上的太阳。试问世间上,谁有能力将天上的太阳射下来?

通过对照《山海经》和《五帝本纪》便不难看出,帝喾崩后代立的帝挚便是“十日”当中的其中一个,帝挚不善就是因为后羿将“十日”当中的九个射杀了,剩下一个孤立无援,所以才不得不让位于放勋。另外,帝喾有很多儿子,除了帝挚和放勋外还有契和稷,如果不是因为玄鸟生商的谣言,登上帝位的很可能就是契。

为什么这样说呢?

首先一个问题就是:后羿为什么要射日?要知道,后羿射杀的是帝喾的儿子,需要承担多大的风险?

说到后羿射日,还有一个故事就是嫦娥奔月,大家不要以为嫦娥真的飞到月亮上去吧?

嫦娥奔月的故事最早出现在《归藏易》中,可惜《归藏易》早已失传,现在仅存两支残缺的秦简。这两支秦简名为《归藏·归妹》,上面记载的内容是:“昔者恒我窃毋死之(?)奔月,而攴占(?)。”

其中“(?)”表示内容缺失,恒我即嫦娥。在古代文献中,嫦娥还有姮娥、常娥、素娥等多个称谓。由于秦简残缺,它的内容很难解读,很多人都以为是嫦娥从西王母处窃取不死药。然而,世间上本来就没有什么不死之药,比较合理的解释是嫦娥从她母亲这里盗取信物。

为什么这样说呢?

《归藏易》为商人所作,而契又是商人的始祖。契的名字应该叫商,因为他找到能够标识身份的方法用于交易,交易的凭据在古代就称为“契”。这两支秦简的内容就是嫦娥与契达成某种交易的凭据。作为交易,嫦娥就必须盗取她母亲的食物。

然而,她意想不到的是,契竟然会用她母亲的信物进行栽赃陷害。大家是否能够看出?嫦娥的母亲就是羲和。后羿之所以敢射杀帝俊的儿子,就是因为手上有羲和的信物。

嫦娥盗取羲和的信物,然后将羲和的信物交给契,而契用羲和的信物进行栽赃陷害,让后羿射杀了帝俊的儿子,由此可见,这场帝位的争夺,契是幕后的推手,而帝尧只是捡到一个天大的便宜而已。

当然,这些问题比较复杂,比如,帝喾的儿子为什么叫日?后羿是什么意思?什么叫书契?都不是一两句话就能够说清楚的,而且需要对《易经》和《山海经》有全面的了解,就留待以后章节中进一步讨论,现在还是回到本章节的题目:玄鸟生商这个谣言。

既然契有能力将挚赶下帝位,如果不是因为这个谣言,他是不是有能力登上帝位呢?

既然契知道自己与帝位无缘,只会便宜放勋,为何要费心布局,利用后羿射杀羲和的儿子呢?

比较合理的解释就是羲和炮制了玄鸟生商的谣言,给契造成巨大的伤害,作为报复,于是便通过布局,利用后羿射杀羲和的儿子。由此看来,编造谣言、毁人清白是要付出代价的。

问题是,羲和为何要炮制这种谣言呢?难道她不知道这样做的后果吗?

要搞清楚这个问题,还得从帝喾如何上位说起。

帝喾是继黄帝、颛顼之后的第三位帝君,帝位是如何从颛顼传到帝喾的呢?在司马迁的《五帝本纪》中找不到任何有用信息,不过《楚世家》却提供十分难得的线索:“楚之先祖出自帝颛顼高阳。高阳者,黄帝之孙,昌意之子也。高阳生称,称生卷章,卷章生重黎。重黎为帝喾高辛居火正,甚有功,能光融天下,帝喾命曰祝融。共工氏作乱,帝喾使重黎诛之而不尽,帝乃以庚寅日诛重黎,而以其弟吴回为重黎後,复居火正,为祝融……”

当然,上述的文字记载诘屈聱牙、深奥难懂,而且有很多词汇来源于《易经》,比如“重黎”就相当于“重离”,也就是两个离卦上下重叠。在《易经》八卦中,离为火,“居火正”就是两个离卦上下重叠。“重黎後”的“後”是掌权的意思,源于离卦的卦象:“明两作,离;大人以继明照于四方。”其中“大人”就是伏羲氏中功高劳苦的首领,他们就象天空中的太阳,照耀四方,也就是能“能光融天下”。

这段文字虽然不太好理解,但大概意思还是可以看明白:楚国的先祖出自帝高阳颛顼。一般认为,颛顼本是北方人,他的子孙后代为何扎根于南方的楚地呢?按照《楚世家》的说法是因为追杀共工氏。

祝融战共工、共工怒触不周山的故事传说,相信大家都听说过,只是我们所听说神话传说与古籍所记载的大不一样。根据对《易经》和《山海经》的梳理,大概过程是这样,神农氏没落后,黄帝倡导社会变革得到广大人民群众的支持,然而却触犯了少数人的利益,共工氏依仗雄厚财力制造动乱,夸父逐日就是典型的恶性事件。不过,夸父追杀的对象是应龙,而不是跟天上的太阳赛跑。

为了平息这场动乱,黄帝的众多子女如应龙、女魃都先后陨落,黄帝之孙颛顼受命于危难之际,率领北方众多氏族部落打败了共工氏。颛顼之后,他的两个孙子率领盟军继续与共工氏战斗,一路追杀到长江中游,就在这关键时刻,兄弟两人却发生了内讧,根据《国语·楚语》中观射父的观点,根源在于颛顼对两个孙子的权力分配出现问题,他让其中一个孙子管控伏羲氏的力量,却又让另外一个孙子管控除了伏羲氏之外其他氏族部落的力量,这些问题在前面章节中已作详细解读。

按照《楚世家》的说法,内讧的直接原因是诛杀共工氏不尽,吴回在帝喾的支持下杀死他的兄长,夺取最高权力。不过在我看来,更深层的原因应该是分配胜利品出现问题。北方众多氏族部落之所以愿意追随颛顼的两个孙子追杀共工氏,大概是看中了共工氏所积累的巨额财富。

伏羲氏是与共工氏作战的中坚力量,在胜利后理所当然能够分到更多的胜利品。这个道理大家都能明白,但在看到巨额财富后,难免会萌生抢夺之意。当然,他们也能明白,要想从伏羲氏手中抢夺财富就象是虎口夺食,无疑自寻死路。

上古时代,能够成为部落首领的人物都千年老狐狸,不仅有独到的眼光,而且能够把控时势。有邰氏、有娀氏、陈锋氏等一些部落首领从颛顼的权力分配中看到问题所在,于是将女儿嫁给帝喾,通过联姻结成联盟,并怂恿帝喾趁机夺权。需要注意的是,帝喾在登上帝位之前,只是颛顼两个孙子的部下,大概是因为时间久远,人们已经记不清帝喾的名字了,所以就说成是帝喾。

至于帝喾如何夺权,现在就不得而知了,不过在《楚世家》的记载中,吴回之所以能够杀死他兄长,帝喾是关键人物。吴回杀死他兄长后,南方楚地陷入持久的混乱,史称九黎乱德。

趁着南方陷入混乱之际,帝喾及时抽身回到北方,紧追其后的还有与他结成联盟的部落,如有邰氏、有娀氏、陈锋氏等等。北方的精干力量都因为追杀共工氏而南下,已经没有什么力量能够抗衡帝喾。

但在这个利益集团的内部,有邰氏和有娀氏的实力过于强大,后来的历史已经证明,来自有邰氏的姜嫄生下儿子稷成为周人始祖,掌管农业生产,而来自有娀氏的简狄生下儿子契成为商人始祖,掌管商业贸易。

为了抗衡有邰氏和有娀氏,帝喾便与伏羲氏众多部落结成联盟,这个联盟就是羲和之国,于是便有了羲和浴日的神话传说。伏羲氏中众多部落挑选优秀女子嫁给帝喾,结成政治联姻,并从帝喾与羲和生育的儿子中,挑选十个表现出色的进行重点培养,作为帝位的继承人。

在平定共工氏叛乱时,伏羲一直是中坚力量,而其他氏族更多的是在隔岸观火,甚至趁火打劫,而且帝喾本身就属于伏羲氏,相比较而言,他更相信伏羲氏。当然,为了更多利益,伏羲氏内部也有矛盾,甚至会挑战帝喾的权威,这时候,帝喾就想利用有邰氏、有娀氏、陈锋氏等氏族的力量。尽管他与有邰氏、有娀氏、陈锋氏等结成的联姻没有得到伏羲氏的承认,但他还是与姜嫄、简狄等女子保持一种密切的关系,在适当的时候作为重要外援。

为了背后家族的利益,姜嫄、简狄等女子也希望能够与帝喾保持比较亲密的关系。这就意味着,在帝喾的妃子中,各自代表不同的利益,天下的的纷争都集中这些妃子的身上了。儒家所讲的齐家、治国、平天下大概由此而来,只要能够这个家族的关系处理好,天下就能太平了。帝喾所要做的,就是通过处理好与这些妃子的关系来平衡天下各方的势力。

一般认为,人类社会的早期是母系社会,后来才过度到父系社会。也就是说,在上古时期,女性的权力是非常大的。在五帝时期以前的社会形态,我们几乎是一无所知,五帝时期,也许正是母系到父系的过度时期。古语有云,子贵母荣,意思就是说,古代女人的权力往往是通过儿子的成就体现出来的,最大的成就莫过于继承帝位。

在羲和看来,帝喾与姜嫄、简狄的婚姻是不合法的,她们不应该拥有孩子。当简狄、姜嫄有了身孕后,矛盾就开始激化了,任何一个女人都不会容忍其他女人来分享自己的利益,抢夺自己应有的权力。在身后势力的支持下,羲和开始对简狄和姜嫄发难,逼问孩子的来历。

其实大家都知道,简狄、姜嫄已经怀上了帝喾的孩子,如果两人承认孩子是帝喾的,那就侵犯了羲和集团的利益,但如果随意编造一个男人,那孩子就失去所有权利,而且还自毁清白。

相信任何一个有自尊心男人,都不愿意听到自己的女人怀上别人的孩子这种闲言碎语。

显然,羲和的目的就是毁人清白,但简狄并没有钻进羲和设计的圈套,她却编造一个谎言,说自己无意间吞食了一个玄鸟蛋,就这样莫名其妙怀上了身孕。

吞食一个鸟蛋就会怀孕,这样的鬼话谁也不会相信。

然而,姜嫄的回答更是令人叫绝,她说自己外出走路的时候,不小心踩到一个脚印,于是便有了身孕。

就连走路也会怀孕?真不知道羲和听到这种话以后,当时是什么表情。

羲和没有得到之前预想的结果,但依然利用简狄和姜嫄的回答,炮制了流传千古的谣言。

这两个谣言也确实给两人的子孙后来造成巨大的伤害,尤其是玄鸟生商,契作为帝喾的长子,他本人具有很强的能力,却始终不敢染指帝位。一直到成汤之前,契的子孙都是规规矩矩。

正是因为这个谣言伤害性太大,千百年来一直广为流传。一听到这个谣言,商人就抬不起头,直到成汤革命成功后才敢直言面对。后来再听到有人造谣,于是挺胸抬头理直气壮地怒怼:那又如何?家宅宽敞雄伟,拥有的土地无边无际……

这就是天命!是上天对殷商的眷顾。

然而到了现在,不知是什么原因,有人居然将谣言当成历史。也正是因为这个缘故,中国的上古历史常为西方学者诟病。

也有人说什么商人崇拜玄鸟,说什么图腾,殊不知在西方学者的认识中,什么图腾之类本身就是愚昧落后的特征。

就连中国人自己都不了解自己的历史,又怎能怪西方人质疑五千年中华文明呢?


我觉得神话就是政治宣传和谣言,无论古代还是现代,信息控制都是政治里非常重要的部分,宣传的部分往往不好玩,谣言反而是更神奇的,因为在野的比在位的要努力,编的故事也更好。

遇到iCloud丢文件,把文件实时备份迁移到了飞牛

昨天编辑完一个word文档,关闭,准备发送出去。就在关闭的瞬间,文件不见了。保存的位置是用iCloud同步的,本地的垃圾桶找不到,云上的iCloud也找不到记录,但word中的打开记录显示确实存在过这个文件(我不是在做梦)。也不会是我把文件拖到别的地方了,因为全局搜也搜不到。

无法解释。

早上花了一个小时整理了一下文件,在mac上装上飞牛同步app,在我的飞牛nas上开启单向文件同步,只从电脑备份到飞牛,增量不删除。

取消iCloud订阅方案。后天到期,每月省5元。

垃圾麒麟Kylin V10

4.19.90-89.15.v2401.ky10.x86_64客户用的这个版本的操作系统,不知道到底是centos7还是centos8,反正绝对是绝版,装docker都找不到源,只能自己把centos7的源加进去。

但是加上了docker和centos的源会有冲突,之前放着一直没管,现在要加审计,不得不动了,查了一下还真有个办法,给源加上优先级。

在/etc/yum.repo.d/下面有三个文件:CenOS-Base.repo docker-ce.repo kylin_x86_64.repo

依次打开,在enabled=1的项目后面追加一个priority=1

摸索了一下,docker的设成1,kylin的设成9,centos的设成99,只要依次变大就行了,这样既能保证docker用最新的版本,又能用centos补上缺少的模块。

另外,为了让优先级生效,还要装yum install yum-plugin-priorities这个插件。

换了2016的模板,感觉这些年的新模板简直是一种倒退

正文和标题无关。

昨天下雨,骑电动车去接孩子,出小区西门,回来时已经在下雨了,西门却锁上了,还有几个家长的电动车也被锁在外面,正想着踹两脚大门出气,结果瞅了瞅门锁,上手一掰,把锁鼻子掰下来了,索性,把锁给它挂到门上就走了。

今天上午物业经理来电话,说修门要五十块钱,我说我给你焊上吧,他倒是很乐意就同意了,约定好十点半,我让他准备好电源线,我提着电焊机就去了。

老爸觉得带着孩子这个示范不太好,我倒是觉得虽然冲动了一点,但也不是什么大事儿,总不至于为了这个被抓去坐牢。

大门本来就应该一直开着,甚至墙都应该拆了。

我的GPU服务器一个月之后复活了

我的两个3090躺了一个月,这一个月内我换了一个m2 max,差一点就放弃这个GPU服务器了,但后来发现有一些方案还是无法兼容的,比如这个MinerU,在m2上似乎就跑不起来,我没有太多时间去研究细节,毕竟去年还给MinerU写了个接口,现在官方已经自己出了接口,我就放弃自己的fork版本了。

GPU服务器还是要保留,作为本地开发的必要环境。一则部署一些需要持续提供的在线服务,可以是异步的,一个则是像MinerU这种在选型或者调试阶段的部署。

再说一点MinerU的细节,我用china去build的时候不成功,因为无法连上ubuntu官方的某些网址,用global的时候,连基础镜像也获取不到,但很奇怪的是在m2上就build成功了,于是我想把镜像发布到aliyun,结果这十几个G的镜像总是推送失败,于是我跟grok学了另外一个方式:

docker save -o mineru.tar registry.cn-beijing.aliyuncs.com/futuremeng/mineru:latest

然后在ubuntu上,用docker load加载这个镜像,我已经完全离线了。