- 珍妮特·内谢瓦特,美国公共卫生局局长提名,1976年生;
- 布伦丹·卡尔,美国联邦通信委员会主席提名,1979年生;
- 李·泽尔丁,环境保护署署长,1980年生;
- 卡什·帕特尔,FBI局长提名,1980年生;
- 黄之瀚,美国副国家安全顾问提名,1980年生;
- 贾米森·格里尔,美国贸易代表提名,1980年左右生;
- 图尔西·加巴德,美国情报总监提名,1981年生;
- 爱丽丝·斯蒂芬尼克,美国常驻联合国代表提名,1984年生;
- 斯蒂芬·米勒,美国总统助理、国土安全顾问,1985年生;
- 博·海因斯,美国总统数字资产顾问委员会(即加密货币委员会)提名执行董事,1995年生;
- 卡罗琳·莱维特,白宫发言人,1997年生。
作者: 蟹老板
Docker-desktop容器的更新
Docker-desktop容器的更新
具体的事情是这样的,旧版本的weaviate反复restart,导致知识库索引动作失败,显示“向量数据库错误”。
要更新这个container,咋整?找了一圈,发现没有什么省力的办法,只能手动搞一遍。
首先要知道docker里有几个镜像,用 docker images
命令查看。
还要知道有几个活动的容器,用 docker ps
命令查看。
然后把要更新的镜像停掉,用 docker stop 镜像ID
命令。
去拉取新的镜像吧,用 docker pull 镜像名称:latest
,拉不到的话,请挂梯。
(这一步不清楚有没有用,下次可以跳过试试看)让新的镜像跑两步,用
docker run 镜像ID
命令。
接下来你就发现,新的镜像是在跑,但是在docker-desktop里显示,它是无名氏,在docker外面跑。这就需要docker-compose把它收编进来。
直接去这个目录 ~/dify/docker
下用 ls
命令看看,docker-compose.yaml
是不是在。如果是,就在这个目录下执行 vim docker-compose.yaml
编辑文件,按 i
键进入编辑模式。我就干了一件事,找到 semitechnologies/weaviate:1.19.0
替换成了 semitechnologies/weaviate:latest
,也就是新版本的名字。然后 esc
退出编辑模式再按 :wq
保存退出。
在同一个目录下,执行 docker-compose up -d
命令,这是让所有容器按照新编目运行。
问题解决。打开Docker-desktop,发现docker目录下weaviate没问题了,但是目录外那个“无名氏”还在。我直接把“无名氏”给删除了。目前没有影响。
最后一步,清除旧镜像 docker rmi 旧镜像ID
。
英伟达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. 实盘部署建议
- 自动化交易接口:通过券商API(如盈透证券、Alpaca)连接实时数据。
- 监控与再平衡:每周或每月检查因子状态,动态调整持仓。
- 黑天鹅应对:设置熔断条件(如单日跌幅超10%时强制平仓)。
示例结果(模拟数据)
指标 | 策略收益 | 基准收益 |
---|---|---|
年化收益率 | 18.7% | 9.2% |
夏普比率 | 1.4 | 0.6 |
最大回撤 | -22.3% | -34.8% |
注意事项
- 数据质量:需处理缺失值、异常值(如宁德时代在2018年上市,早期数据可能不稳定)。
- 过拟合风险:避免在单一股票上过度优化参数。
- 市场变化:锂电池技术迭代(如固态电池)可能颠覆行业逻辑,需定期更新模型。
如果需要针对具体股票(如特斯拉、比亚迪)定制策略,可进一步结合其财报发布日期、产品周期等独特因子。
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芯片)仍落后国际巨头。
- 资本压力:晶圆厂建设与研发投入巨大,资金链风险较高。
- 生态壁垒:软件工具链、客户认证周期长,生态建设滞后。
未来竞争关键点
- 第三代半导体突破:SiC/GaN技术将决定企业能否进入高压高功率市场。
- 车规级产品认证:新能源汽车供应链的深度绑定是关键。
- 产能与制程升级:12英寸产线投产及先进制程研发决定成本与性能。
- 全球化布局:应对贸易摩擦,拓展海外市场(如欧洲光伏、东南亚消费电子)。
总结
国内IDM龙头企业在细分领域各具优势,但普遍面临技术追赶与生态建设的挑战。未来竞争中,技术突破速度、产能扩张能力及高端市场渗透率将是决定胜负的核心因素。
Willow有突破但不到吹的地步
Willow上一代叫悬铃木,中国的同期生叫“祖冲之二号”。
这两天大家肯定能看到不少(乔/雷布斯)式的宣发,毕竟谷歌是要市值管理的。尽管人家的ppt很老实地写清楚了后四代的路径,那就没人关心了。
还有,Willow拿在手里是挺唬人的,感觉找个主板装上就能用了是吧?这个宣发小技巧,建议我国科研机构收藏一下,凡事不能都那么严谨。
事实上,Willow是“超导”,除非去年那个韩国团队研发的LK-99“室温超导”是真的,否则这东西只能在几乎绝对零度的环境中才能用。
国内还有“九章二号”,用的是光量子技术,和超导量子技术的“祖冲之二号”不同。
浏览器另存图片格式webp怎么破?
以前遇到过,也改过,烦死了。
-
开注册表后,在顶部地址栏输入以下地址并按Enter键:
-
计算机\HKEY_CLASSES_ROOT\MIME\Database\Content Type\image/webp
-
双击打开“Extension”,将“.webp”改为“.jpg”。
在腾讯轻量应用服务器上部署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的二级域名访问、可以备份数据。
- 顺手在服务器Docker上部署了Cloudreve,用remotely save插件连接webdav,帮助obsidian实现秒同步。
参考文档 https://blog.csdn.net/weixin_50647100/article/details/128373005