英伟达CUDA=诺基亚Symbian?

吃过两天CUDA的苦之后,隐隐觉得英伟达这种玩法似曾相识。于是提了个问题让DeepSeek和Kimi来回答。

“英伟达的CUDA和诺基亚的Symbian是不是有点相似?”

以下是DeepSeek的回答:

英伟达的CUDA生态和诺基亚的Symbian生态在某些方面确实存在一定的相似性,例如两者都曾(或正在)主导某个技术领域的生态系统,但它们的核心定位、发展路径和面临的挑战存在显著差异。以下从多个维度对比分析:


1. 核心定位与技术领域
  • CUDA生态
    围绕GPU并行计算构建,专注于高性能计算(HPC)、人工智能(AI)、深度学习等领域。其核心是硬件(NVIDIA GPU)+ 软件(CUDA工具链)的垂直整合,目标是加速计算密集型任务。

  • Symbian生态
    以移动操作系统为核心,面向功能机向智能机转型的早期市场,目标是打造开放的手机操作系统生态,联合多品牌厂商(如三星、索尼爱立信)共同推广。

差异:CUDA是垂直整合的硬件加速生态,Symbian是操作系统生态,两者的技术领域和商业模式不同。


2. 生态系统的开放性与控制权

  • CUDA

    • 封闭性较强:CUDA仅支持NVIDIA GPU,技术标准由NVIDIA完全掌控。
    • 软件生态依赖专有技术:开发者需基于CUDA Toolkit开发,且NVIDIA通过持续迭代(如cuDNN、TensorRT等)强化生态壁垒。
  • Symbian

    • 名义开放,实际碎片化:Symbian联盟(Symbian Foundation)试图通过开源吸引开发者,但因硬件厂商各自定制系统(如诺基亚S60、索尼UIQ),导致生态割裂,开发适配成本高。

相似性:两者都试图通过技术标准主导市场,但CUDA的封闭性更统一,Symbian的开放尝试反而导致失控。


3. 市场竞争与替代者

  • CUDA的挑战

    • 面临AMD ROCm、Intel oneAPI等开源竞品,但CUDA凭借先发优势、性能优化和开发者习惯仍占据主导地位。
    • 替代门槛高:AI领域模型训练高度依赖CUDA生态,迁移成本巨大。
  • Symbian的衰落

    • iOS和Android通过更现代的架构、开发者友好的环境快速颠覆市场。
    • Symbian未能适应触屏交互和移动互联网浪潮,诺基亚的硬件思维与软件生态脱节。

差异:CUDA的护城河更深(硬件绑定+软件优化),而Symbian的替代者(Android/iOS)直接重构了用户体验和开发范式。


4. 生态繁荣的关键因素

  • CUDA的成功要素

    • 技术不可替代性:GPU在AI计算中的核心地位。
    • 开发者粘性:学术界和工业界已形成CUDA的代码积累和工具链依赖。
    • NVIDIA的持续投入:从游戏GPU到AI算力的战略转型,始终保持技术领先。
  • Symbian的失败教训

    • 生态碎片化:厂商定制导致开发效率低下。
    • 创新滞后:诺基亚未能及时拥抱触屏和开放应用商店模式。
    • 用户体验落后:系统交互设计停留在功能机时代。

相似性:两者都依赖生态参与者的支持,但CUDA通过技术绑定和持续创新维持了生态向心力,而Symbian因内部冲突和外部冲击瓦解。


5. 未来前景

  • CUDA
    短期仍难以被颠覆,但面临行业对算力平权的需求(如PyTorch支持多后端)和地缘政治风险(如国产GPU的替代尝试)。
    长期需警惕:如果AI计算范式发生根本变革(如量子计算或存算一体架构),CUDA的壁垒可能被削弱。

  • Symbian
    已退出历史舞台,但其教训(生态碎片化、创新滞后)仍对当前技术竞争有借鉴意义。


DS结论:形似而神不似

以下是Kimi的回答:

英伟达的CUDA生态和诺基亚的Symbian生态在某些方面有一定的相似性,但整体上存在较大的差异,以下是具体分析:

相似之处

• 技术主导地位:CUDA和Symbian在其各自的领域都曾占据主导地位。CUDA是英伟达推出的并行计算平台和编程模型,凭借其强大的并行处理能力和广泛的应用支持,成为高性能计算和人工智能领域的重要技术标准。而Symbian系统曾是智能手机操作系统领域的领导者,特别是在功能机时代,诺基亚凭借Symbian系统在全球智能手机市场占据重要份额。

• 开发者的依赖:两者都拥有庞大的开发者群体,并且开发者对其平台的依赖度较高。对于CUDA,开发者通过CUDA API和相关工具链进行并行计算编程,一旦熟悉了CUDA的开发模式,迁移至其他平台的成本较高。类似地,Symbian系统也有大量的开发者为其开发应用程序,这些开发者熟悉Symbian的开发环境和API。

• 生态系统构建:两者都构建了较为完整的生态系统,涵盖了硬件、软件、工具链和应用等多个层面。CUDA生态包括英伟达的GPU硬件、CUDA编程模型、各种库(如cuDNN、NCCL等)以及与主流深度学习框架的集成。Symbian生态则包括Symbian操作系统、开发工具、应用程序商店(如Ovi Store)以及诺基亚的硬件设备。

差异之处

• 技术领域和应用场景:CUDA主要应用于高性能计算、人工智能、深度学习等领域,其核心优势在于利用GPU的并行计算能力来加速复杂的计算任务。而Symbian系统主要用于移动设备,特别是功能机和早期智能手机,其应用场景主要集中在通信、办公、娱乐等方面。

• 开放性和兼容性:CUDA生态相对较为开放,支持多种编程语言和工具链,并且与多个行业的标准和协议兼容。相比之下,Symbian系统在某些方面相对封闭,例如其中间件层和驱动层的源码仅对诺基亚内部可见,第三方开发者无法随意修改。

• 市场适应性和竞争态势:CUDA生态在高性能计算和人工智能领域的市场需求持续增长,英伟达通过不断更新硬件架构和软件库,保持了其在该领域的领先地位。而Symbian系统在智能手机市场的竞争中逐渐被iOS和Android超越,主要原因是其在用户体验、应用生态和系统更新等方面的不足。

• 技术迭代和创新:CUDA生态不断进行技术迭代和创新,英伟达每年都会发布新的GPU架构和CUDA版本,以满足不断增长的计算需求。Symbian系统在后期的技术迭代相对缓慢,未能及时跟上智能手机技术的快速发展。

综上所述,虽然CUDA生态和Symbian生态在技术和开发者依赖方面有一定的相似性,但它们在技术领域、开放性、市场适应性和技术迭代等方面存在显著差异。

DS提供的搭建本地知识库的方法

1. 知识库的接入方式

要使你能够访问本地知识库,通常需要以下步骤:

  • API接口:你可以通过编写一个简单的HTTP服务器(例如使用Python的Flask框架)来提供对知识库的访问。
  • 文件系统直接读取:如果知识库是一个结构化的文件(如JSON或CSV),我可以直接从文件系统中读取这些数据。

2. 知识库格式

以下是几种常见的知识库格式,你可以选择适合自己的:

  • JSON: 易于解析和存储复杂的数据结构。
  • Markdown: 适用于文档型的知识库,每个文件代表一个独立的“知识点”或主题。
  • CSV: 适用于简单的数据表格。

3. 示例:使用本地知识库扩展你的知识

假设你有一个名为local_knowledge_base.json的JSON文件,内容如下:

{
"knowledge": [
{
"topic": "科技新闻",
"content": "2024年1月,某公司发布了新一代AI模型。"
},
{
"topic": "经济动态",
"content": "2024年第一季度,全球经济呈现复苏迹象。"
}
]
}

4. 实现步骤

以下是如何在代码中集成本地知识库的示例:

a. 安装必要的库
Flask: 用于创建简单的HTTP服务器。
pip install flask
b. 创建一个简单的API
from flask import Flask, jsonify
import json

app = Flask(name)

加载本地知识库
with open('local_knowledge_base.json', 'r') as f:
knowledge_base = json.load(f)

@app.route('/query')
def query():
return jsonify(knowledge_base)

c. 启动服务器
python server.py

d. 在你的代码中调用API
假设你已经启动了Flask服务器,你可以在代码中进行如下操作:

import requests

response = requests.get('http://localhost:5000/query')
knowledge = response.json()

处理 knowledge 数据

5. 注意事项

  • 性能优化:如果你的知识库非常大,可能需要考虑分片或其他高效的数据检索方法。
  • 数据更新:定期同步知识库内容到本地仓库,确保信息的最新性。
  • 通过这种方式,你可以扩展我的知识范围,使其不再局限于现有的训练数据。

DS提供的量化投资框架

可以基于量化投资的方法建立一个针对某只股票的投资策略模型。以下是一个完整框架(以Python为例),包含数据获取、策略设计、回测和风险管理模块:


1. 数据准备

import pandas as pd
import numpy as np
import yfinance as yf  # 雅虎财经数据接口

# 获取股票历史数据(示例:宁德时代,A股代码300750.SZ)
stock_data = yf.download("300750.SZ", start="2018-01-01", end="2023-12-31")
# 添加宏观经济数据(例如锂电池原材料碳酸锂价格)
lithium_price = yf.download("LIT", start="2018-01-01", end="2023-12-31")  # 全球锂ETF

2. 策略逻辑设计

(1) 多因子选股模型

结合基本面、技术面和行业周期因子:

# 因子1:动态市盈率(TTM)分位数(低估值)
def calculate_pe_rank(data):
    data['PE_rank'] = data['Close'].rolling(60).apply(lambda x: (x[-1] - x.min()) / (x.max() - x.min()))

# 因子2:锂电池行业景气度(通过碳酸锂价格趋势代理)
def lithium_trend(stock_data, lithium_price):
    stock_data['Lithium_3M_Return'] = lithium_price['Close'].pct_change(60)  # 3个月锂价涨幅

# 因子3:技术面动量(60日涨幅)
stock_data['Momentum_60D'] = stock_data['Close'].pct_change(60)

# 因子4:政策事件(人工标注关键政策日期,如补贴退坡、碳中和目标发布)
policy_dates = {'2020-11-02': '中国新能源规划', '2021-07-01': '欧洲碳关税提案'}

(2) 交易信号生成

# 综合信号(示例:简单加权)
stock_data['Signal'] = (
    0.4 * (1 - stock_data['PE_rank']) +  # 低估值权重40%
    0.3 * stock_data['Lithium_3M_Return'] +  # 行业景气度30%
    0.3 * stock_data['Momentum_60D']  # 动量30%
)
# 生成买卖信号(阈值触发)
stock_data['Position'] = np.where(stock_data['Signal'] > 0.6, 1,  # 买入
                         np.where(stock_data['Signal'] < 0.3, -1, 0))  # 卖出

3. 回测与绩效评估

# 计算策略收益
stock_data['Strategy_Return'] = stock_data['Position'].shift(1) * stock_data['Close'].pct_change()

# 对比基准(买入持有)
stock_data['Benchmark_Return'] = stock_data['Close'].pct_change()

# 计算累计收益
stock_data[['Cum_Strategy', 'Cum_Benchmark']] = (
    (1 + stock_data[['Strategy_Return', 'Benchmark_Return']]).cumprod()
)

# 绩效指标
def calculate_performance(returns):
    sharpe_ratio = returns.mean() / returns.std() * np.sqrt(252)  # 年化夏普比率
    max_drawdown = (returns.cumsum().expanding().max() - returns.cumsum()).max()  # 最大回撤
    return sharpe_ratio, max_drawdown

sharpe, drawdown = calculate_performance(stock_data['Strategy_Return'].dropna())

4. 风险管理模块

(1) 动态仓位控制

# 波动率调整仓位(例如:ATR指标)
stock_data['ATR_14D'] = talib.ATR(stock_data['High'], stock_data['Low'], stock_data['Close'], timeperiod=14)
stock_data['Position_Size'] = 0.02 / (stock_data['ATR_14D'] / stock_data['Close'])  # 固定风险比例

(2) 止损机制

# 移动止损(跟踪过去N日最低价)
stop_loss_window = 20
stock_data['Trailing_Stop'] = stock_data['Close'].rolling(stop_loss_window).min() * 0.95  # 5%止损线

5. 模型优化与验证

  • 参数敏感性测试:通过网格搜索优化因子权重和信号阈值。
  • 样本外测试:将数据分为训练集(2018-2021)和测试集(2022-2023),防止过拟合。
  • Monte Carlo模拟:随机扰动历史收益率,检验策略稳健性。

6. 实盘部署建议

  1. 自动化交易接口:通过券商API(如盈透证券、Alpaca)连接实时数据。
  2. 监控与再平衡:每周或每月检查因子状态,动态调整持仓。
  3. 黑天鹅应对:设置熔断条件(如单日跌幅超10%时强制平仓)。

示例结果(模拟数据)

指标 策略收益 基准收益
年化收益率 18.7% 9.2%
夏普比率 1.4 0.6
最大回撤 -22.3% -34.8%

注意事项

  1. 数据质量:需处理缺失值、异常值(如宁德时代在2018年上市,早期数据可能不稳定)。
  2. 过拟合风险:避免在单一股票上过度优化参数。
  3. 市场变化:锂电池技术迭代(如固态电池)可能颠覆行业逻辑,需定期更新模型。

如果需要针对具体股票(如特斯拉、比亚迪)定制策略,可进一步结合其财报发布日期、产品周期等独特因子。

MUSA架构和CUDA的关系


MUSA架构与CUDA效率对比分析

摩尔线程的MUSA(Moore Threads Unified System Architecture)架构旨在兼容英伟达CUDA生态,但其设计目标并非完全复制CUDA,而是通过硬件和软件协同优化,在国产GPU赛道上寻求平衡。关于效率问题,需从多个维度综合评估:


1. 架构兼容性与效率损失的来源

(1)指令集与硬件差异

  • CUDA核心设计:英伟达GPU的SM(Streaming Multiprocessor)架构经过多年迭代(如Ampere、Hopper),其线程调度、缓存机制、Tensor Core等模块高度优化,与CUDA指令集深度绑定。
  • MUSA架构设计:摩尔线程的MTT GPU硬件虽兼容CUDA编程模型,但物理实现(如计算单元比例、内存带宽分配)可能与英伟达存在差异,导致相同算法在硬件执行时效率波动。

(2)软件栈开销

  • 编译与运行时转换:MUSA需通过兼容层(如MUSA SDK)将CUDA代码转换为自有指令集,此过程可能引入额外开销(如指令映射、内存管理优化不足)。
  • 驱动与工具链成熟度:CUDA生态的驱动、库(cuDNN、cuBLAS)经过长期优化,而MUSA的软件生态处于早期阶段,性能调优空间较大。

2. 效率损失的具体场景

(1)通用计算任务

  • 简单并行任务:对于纯计算密集型任务(如矩阵乘法),若MUSA硬件算力(FP32/FP16 TOPS)对标英伟达同级产品,理论峰值性能可能接近,但实际效率受内存带宽和软件优化影响。
  • 案例对比
    • 若某CUDA程序在英伟达A100上达到80%硬件利用率,移植到MUSA GPU后可能因指令调度或缓存未命中降至60-70%。

(2)复杂AI模型推理

  • 动态计算图支持:CUDA对PyTorch/TensorFlow的动态图优化成熟,而MUSA可能因编译器静态优化能力不足,导致实时推理延迟增加。
  • 算子融合效率:英伟达通过cuDNN实现高效算子融合,MUSA需自研类似优化,否则可能因多次内存读写增加耗时。

(3)图形渲染与混合负载

  • 图形与计算协同:CUDA在光线追踪、物理仿真等混合负载中调度优势明显,MUSA若硬件资源分配策略不同,可能导致效率下降。

3. 摩尔线程的优化策略

(1)硬件层面

  • 定制化计算单元:针对常见CUDA操作(如原子操作、Warp调度)设计专用硬件逻辑,减少指令转换开销。
  • 内存子系统优化:通过高带宽HBM或智能缓存分区,弥补兼容性导致的内存访问效率损失。

(2)软件层面

  • 编译器深度优化:MUSA SDK通过静态编译预测和动态运行时优化(如JIT编译),减少指令映射开销。
  • 生态共建:与深度学习框架(PaddlePaddle、MindSpore)合作,直接集成MUSA后端,避免通过CUDA兼容层中转。

4. 实测数据与行业反馈

(1)官方性能宣称

  • 摩尔线程宣称其MTT S3000 GPU在部分AI推理任务(如ResNet-50)中达到英伟达A10级性能,但未公开对比CUDA原生环境下的效率损耗率。
  • 在图形渲染场景(如Unity引擎),MUSA驱动仍处于功能完善阶段,帧率与稳定性较CUDA有差距。

(2)第三方测试

  • 学术机构测试:早期开发者反馈,移植CUDA代码至MUSA时,需手动调整内存分配和线程块配置,优化后性能可达CUDA的70-85%。
  • 行业应用案例:某国产云计算平台采用MTT GPU部署NLP推理服务,实测吞吐量约为同算力英伟达T4的65%,但成本低30%。

5. 效率损失的权衡与长期展望

(1)短期劣势

  • 兼容性代价:MUSA为兼容CUDA生态,需牺牲部分硬件设计自由度,导致效率损失;
  • 生态短板:缺乏CUDA的成熟工具链(如Nsight、NCCL),开发者需额外适配。

(2)长期潜力

  • 国产化替代红利:在政策驱动下,MUSA可通过定制化优化(如中文NLP、政务云场景)提升实际效率;
  • 异构计算扩展:若未来集成专用加速单元(如LPU模块),可能实现“通用GPU+领域加速”的混合架构,部分场景反超CUDA。

总结

MUSA架构在CUDA兼容性上确实存在效率损失,主要源于硬件差异、软件生态成熟度及指令转换开销,但其设计目标并非完全替代CUDA,而是在国产化替代与自主可控需求中寻找平衡。

  • 短期建议:在算力需求较低或政策导向型场景(如信创、教育)可优先采用MUSA,借助成本优势弥补效率损失;
  • 长期展望:若摩尔线程持续优化硬件架构并完善软件生态,部分场景效率有望接近甚至超越CUDA,尤其在国产定制化应用中。

最终效率表现需结合具体工作负载和优化投入综合评估,建议通过实际业务场景测试验证。

国内IDM龙头企业对比


国内IDM龙头企业优劣势比较

1. 士兰微(Silan Microelectronics)

优势

  • IDM全产业链:拥有8英寸晶圆厂,12英寸产线建设中,覆盖芯片设计、制造、封测,供应链自主可控。
  • 功率半导体领先:在IGBT、MOSFET等产品中,光伏和消费电子领域市占率国内前列。
  • MEMS传感器突破:国内少数能量产MEMS麦克风芯片,进入华为、小米供应链。
  • 政策支持:作为国产替代重点企业,获得政府补贴和项目支持。

劣势

  • 高端产品不足:车规级IGBT模块认证进展较慢,与国际巨头(英飞凌)差距明显。
  • 第三代半导体布局滞后:SiC/GaN技术尚处研发阶段,未大规模量产。
  • 毛利率压力:LED驱动芯片等传统业务竞争激烈,利润空间较低。

2. 华润微(CR Micro)

优势

  • 全产业链覆盖:拥有6英寸、8英寸晶圆厂,聚焦功率半导体和智能传感器。
  • 第三代半导体布局:在SiC(碳化硅)和GaN(氮化镓)领域技术积累较深,部分产品已量产。
  • 客户多元化:覆盖消费电子、工业控制、汽车电子等多领域,抗风险能力强。

劣势

  • 车规级产品较少:主要市场仍集中在消费和工业领域,汽车电子渗透率低。
  • 制程技术受限:先进制程(如12英寸)产能不足,依赖外部代工部分高端产品。
  • 研发投入分散:同时布局功率器件、传感器、第三代半导体,资源分配压力大。

3. 扬杰科技(Yangjie Technology)

优势

  • 二极管领域龙头:在整流桥、保护器件等细分市场全球市占率较高(约15%)。
  • 成本控制能力:通过IDM模式优化生产流程,毛利率高于行业平均。
  • 汽车电子突破:车规级二极管通过AEC-Q101认证,进入比亚迪等供应链。

劣势

  • 产品结构单一:过度依赖二极管等传统器件,IGBT/MOSFET占比低。
  • 技术升级压力:第三代半导体布局较晚,需加速追赶。
  • 国际竞争激烈:在高端市场面临安森美、意法半导体等巨头的挤压。

4. 斯达半导(StarPower)

优势

  • IGBT模块专家:国内车规级IGBT市占率第一(约20%),客户包括比亚迪、蔚来等车企。
  • 技术迭代快:第7代IGBT芯片已量产,性能接近英飞凌水平。
  • 聚焦高毛利市场:主攻新能源汽车、工控等高端领域,毛利率超30%。

劣势

  • 依赖Fabless模式:自身无晶圆厂,制造环节依赖华虹等代工厂,产能受限。
  • 产品线单一:业务高度集中于IGBT模块,抗市场波动能力较弱。
  • 研发投入压力大:需持续投入SiC模块研发以保持竞争力。

综合对比表

企业 核心优势 主要劣势
士兰微 IDM全产业链、光伏IGBT领先、MEMS传感器突破 车规级产品滞后、第三代半导体布局慢
华润微 第三代半导体布局深、客户多元化 车规级产品少、先进制程产能不足
扬杰科技 二极管全球龙头、成本控制优 产品结构单一、技术升级压力大
斯达半导 IGBT模块国内第一、高毛利市场聚焦 无自主晶圆厂、产品线单一

行业共性问题

优势

  • 国产替代红利:政策推动下,国内市场份额持续提升。
  • 垂直整合能力:IDM模式在供应链安全与成本控制上优势明显。
  • 新兴市场机遇:新能源汽车、光伏储能等领域需求爆发。

劣势

  • 技术差距:高端产品(如车规级IGBT、SiC芯片)仍落后国际巨头。
  • 资本压力:晶圆厂建设与研发投入巨大,资金链风险较高。
  • 生态壁垒:软件工具链、客户认证周期长,生态建设滞后。

未来竞争关键点

  1. 第三代半导体突破:SiC/GaN技术将决定企业能否进入高压高功率市场。
  2. 车规级产品认证:新能源汽车供应链的深度绑定是关键。
  3. 产能与制程升级:12英寸产线投产及先进制程研发决定成本与性能。
  4. 全球化布局:应对贸易摩擦,拓展海外市场(如欧洲光伏、东南亚消费电子)。

总结

国内IDM龙头企业在细分领域各具优势,但普遍面临技术追赶与生态建设的挑战。未来竞争中,技术突破速度产能扩张能力高端市场渗透率将是决定胜负的核心因素。

Willow有突破但不到吹的地步

Willow上一代叫悬铃木,中国的同期生叫“祖冲之二号”。

这两天大家肯定能看到不少(乔/雷布斯)式的宣发,毕竟谷歌是要市值管理的。尽管人家的ppt很老实地写清楚了后四代的路径,那就没人关心了。

还有,Willow拿在手里是挺唬人的,感觉找个主板装上就能用了是吧?这个宣发小技巧,建议我国科研机构收藏一下,凡事不能都那么严谨。

事实上,Willow是“超导”,除非去年那个韩国团队研发的LK-99“室温超导”是真的,否则这东西只能在几乎绝对零度的环境中才能用。

国内还有“九章二号”,用的是光量子技术,和超导量子技术的“祖冲之二号”不同。

在腾讯轻量应用服务器上部署memos

系统centos,安装了docker,同时在宝塔的“面板设置”里把docker在菜单中显示的选项打开。然后跟着如下步骤走就是了。

  • 靠着老张,部署了memos。 https://laozhang.org/archives/3385.html

  • 中途解决了宝塔面板反向代理删除后的缓存问题。事实证明,删掉那两个文件夹,再清浏览器缓存就搞定。
    https://www.bt.cn/bbs/thread-31411-1-1.html
    这一阶段的问题在于,没有搞清楚宝塔面板中“站点”的概念。后面搞清楚了:

    每一个服务(二级域名)都是一个站点,反向代理针对全站。

  • 把memos数据导入thino的插件
    https://blog.csdn.net/qq_46246106/article/details/13800638
    这个插件我没试过,就是用python的sqlite3功能将db数据文件转换为html再导入thinos,留存作个备手。

  • (寻觅许久之后,我本来以为)这是唯一一个简洁、能让我看懂且让我配置成功的:使用Nginx反向代理将多个服务配置成二级域名访问
    https://zhuanlan.zhihu.com/p/705944193
    实际上宝塔也可以做到,只是我在这个阶段还没有想清楚“站点”这个概念。

  • 吃一堑长一智。升级memos,(自以为)把库给删了。

    Dockers拉取memos之后,会重新指定一个volume,原来的库还在原来的volume里。当时我发现了这个问题,但用旧库覆盖新库总是不成功,只好放弃旧库。隔天试了试才搞明白,覆盖库的操作必须先停止容器,memos在运行中时是不能覆盖数据的。

  • 研究一下443端口能否同时监听多个证书,给memos配加密访问。不想了解其中工作机制的,请直接阅读第3条。
    1、这个链接 里对机制作用的解释更详细。
    2、这几个做的也不错 链接1 链接2 链接3
    3、(最终发现)还是用宝塔来设置最简单,与链接中不同的是,用letsEncrypte的文件验证方式就可以。 链接

  • 然后就开始琢磨memos数据的备份了。灾难性地毁掉了两个docker容器,不得不重新创建。原因以及搞清楚的问题如下:

    试图编辑容器的挂载参数,挂载到另一个volume。但是,但是,但是,Docker在容器创建后是不可以编辑“挂载”等参数的,否则就会报错。好在memos的数据还在,可以迁移过来,停止容器,直接拷到相应文件夹下覆盖即可。数据备份则可以反向操作。但是clouderev就必须重建了,挂载多个volume,参数过于复杂。

至此memos可以用https的二级域名访问、可以备份数据。

       

随记20240523

  • 年初去袁崇焕祠,最近去孔庙终于找到了刻有袁崇焕名字的石碑。孔庙进门右手走到头,即孔庙的东南角,北面紧邻明正统年御碑亭,前排倒数第三块碑最底一行中部写有“袁崇焕 广西藤县”字样。

  • 孔庙这个地方遍布着“普通迷信”,个人理解这应该是个上层建筑尊师重道的场所。目下虽然没有香火吧,所到之处弥漫着“精神香火”。祈福什么美好愿望可以理解,行礼鞠躬是不是大可不必?十之八九是受到了附近宗教场所的浸染所致。

  • 街上的外国游客见多,应该是免签带来的利好。

  • 这个社会按闹分配,上次闹完之后,楼上的老头儿是真消停了点儿。

  • 新政频出,看房的人又多起来,身边的人换房的也多起来,搬家的人也多起来,导致水管沉垢堵塞多发、蟑螂多发。

  • 很多人看完了《我的阿勒泰》,很多人想去新疆。很多人仍然不知道而且去过了也不会知道:新疆很大,大到整个阿勒泰也只是多样生态中的一小部分。

  • 看了野马国际的视频号,没想到陈总还送给过马云一匹汗血马,没想到这个基地就建在鲤鱼山,用了医学院西边的一大片地。这会不会是全国唯一建在市区里的马场?

  • 最近的篮球生活:打算重拾单打能力的我和尝试做球队领袖的儿子。还有,期待独行侠再进一步。

  • 在工作站上安装了ollama,下了一个llama2中文,觉得并不好用,智商欠费,怎么把这东西用起来还真得琢磨琢磨。否则不如去用Kimi、文心一言什么的。

日本画圣与汉字

丰子恺曾在日本留学,写过一些关于日本“画圣”雪舟等扬的文章。在一篇丰子恺写于一九六三年的文章里,彼时关于雪舟的“天童第一座”称号还未见有“明宪宗御赐”一说。更常见的说法是,雪舟在四明天童山景德寺修行,被方丈授予“第一座”的荣誉称号,后来雪舟回到日本,就一直以“四明天童第一座”自称,在他的人物画代表作《慧可断臂图》上就能看到这样的款识。雪舟看重这个称号相当有道理,因为日本佛教曹洞宗的大量信徒将宁波天童寺奉为祖庭,雪舟带着一个这样的头衔回日本,必然能得到更多关注。从另一面讲,明宪宗看重雪舟这事就很牵强,所以“御赐”一事如果没有纸面证据,大概率是后人出于种种目的,为了抬高“画圣”贴金附会。


慧可断臂图落款为“四明天童第一座雪舟行年七十七岁”

雪舟名动京城一事也更像是史家的意淫,礼部尚书邀其为大堂作画,难道不会是因为猎奇吗?之后这位尚书告诉属下,一个外国人也能画成这样,尔等要努力了云云,这样的言辞,是真觉得雪舟有多么高明吗?

这么一想,雪舟对中国的影响力可能比目前民间的某些“传说”要逊色得多,但要论中国对雪舟的影响,那可是太深了。

雪舟早期自称“等扬”,这个名字来自宋代画家扬补之。扬补之说自己是汉代思想家扬雄的后人,因此自书姓名时写“扬”不写“杨”。雪舟喜欢扬补之的画,就给自己取名“等扬”。

后来,等扬偶然见到中国楚石梵琦禅师题予日本僧人的“雪舟”二字,觉得十分合意,便用作自己的姓。从此便有了“雪舟等扬”。

在中国浙江和北京游历、学习绘画之后,镀了金的雪舟返回日本,不出意外地声名鹊起,还以黄庭坚诗句“人得交游是风月,天开图画即江山”为名,建起了画室“天开图画楼”。

中国文化给日本“画圣”带来的这些影响,如今在日本媒体介绍“画圣”时已经很难见到。如同日文中的汉字一样,只会越来越少。

二战后,日本在美国的指引下,去中国化去汉字化如火如荼。日本一九五六年曾拍摄过一部纪录片,叫《雪舟》,由字幕很容易得知,战后的日本还保有大量汉字,该片虽为日语旁白,但片头演职人员表完全使用汉字,中国观众理解毫无障碍。今天的日本,去汉字化已经非常成功,人名里的汉字占比都远不如前,新闻等文本更是如此。中日之间的交流困难重重,完全不比雪舟当年的毫无障碍。

前不久,日本网友在社交媒体上发起过一个游戏,大意就是把平常用语中的平假名片假名都去除、只留汉字表达,发出来看看朋友们看不看得懂,竟然发现互相都能明白意思,并不影响交流。此番共鸣之后的大致结论是:除了汉字,日语中剩下的都是可有可无的冗余信息。


《岩波日本史》中一位作者的致歉

[1] 杨古城:日本画圣“雪舟”名号由来及元代高僧楚石梵琦禅师与日僧之交往
[2] 中国美术报:在日本京都国立博物馆,追寻日本“画圣”雪舟的传说
[3] 丰子恺:天童寺忆雪舟