普通视图

Received today — 2025年8月6日技术

使用 LiteLLM 自建 Claude Code 中转服务

2025年8月5日 20:27

最近 A 站大规模封号,导致之前的号商的中转大都歇菜了,另外加上国内用户在使用 Claude Code 时常常面临网络限制、账号注册门槛等难题。如何绕过这些障碍,稳定、高效地使用 Claude Code?答案是:自建 Claude Code 中转服务!

今天,我们将介绍如何利用开源工具 LiteLLM 自建 Claude Code 中转服务,不仅能规避官方限制,还能灵活调用多种语言模型(如 OpenAI、Vertex AI、xAI 等),实现成本优化和高效开发。无论你是个人开发者还是团队用户,这篇保姆级教程都能帮你快速上手。

LiteLLM 是什么

LiteLLM 是一个轻量级的开源代理工具,支持将 Claude Code 的 API 请求转换为多种语言模型的格式,兼容 Anthropic、OpenAI、Vertex AI 等主流模型。通过 LiteLLM,你可以:

  • 绕过地域限制:无需海外账号,国内也能流畅使用 Claude Code
  • 灵活切换模型:支持多种模型(如 Claude Sonnet、GPT-4o、Gemini),按需分配任务以优化成本
  • 本地部署:数据隐私更有保障,适合对安全性要求高的项目
  • 开源免费:完全开源,社区活跃,易于扩展和维护

实操

litellm 主要使用 python 编写,部署途径有两种,我这里方便操作使用镜像方式

  • ghcr.io/berriai/litellm:main-latest
  • 国内镜像 ccr.ccs.tencentyun.com/k7scn/litellm:main-latest

使用 compose 部署

  • docker-compose.yaml
services:
  litellm:
    image: ccr.ccs.tencentyun.com/k7scn/litellm:main-latest
    container_name: litellm
    command: --config /app/config.yaml --detailed_debug
    environment:
      - OPENAI_API_KEY=sk-PpJVj1N7Btoken
      - OPENAI_API_URL=https://api.example.ai
      - LITELLM_MASTER_KEY=sk-nb666
    volumes:
      - '/data/litellm/config.yaml:/app/config.yaml'
    ports:
      - '4000:4000'
    restart: always

本文示例使用的是某中转 claude 服务商

  • /data/litellm/config.yaml
litellm_settings:
  master_key: os.environ/LITELLM_MASTER_KEY

model_list:
  # Responses API models
  - model_name: claude-sonnet-4-20250514
    litellm_params:
      model: anthropic/claude-sonnet-4-20250514
      api_key: os.environ/OPENAI_API_KEY
      api_base: os.environ/OPENAI_API_URL
      cache_control_injection_points:
        - location: message
          role: system

启动完成后,在环境里配置

export ANTHROPIC_BASE_URL=http://127.0.0.1:4000
export ANTHROPIC_AUTH_TOKEN=sk-nb666
claude --model claude-sonnet-4-20250514
# 或者在claude里使用/model设置

一分钱一分货,真是贵的可怕。

后续高级玩法

  • 多模型协同:通过 LiteLLM 的路由功能,为不同任务分配不同模型。例如:
  • 代码生成:Claude-3-5-Sonnet
  • 语法检查:GPT-4o-mini
  • 复杂架构分析:Gemini-1.5-Pro

在配置文件中添加更多模型和提供商

总结

通过 LiteLLM 自建 Claude Code 中转服务,你不仅能绕过地域和账号限制,还能灵活调用多种模型,兼顾性能与 成本。这种方式特别适合国内开发者,既省钱又高效!无论你是想快速生成代码、优化开发流程,还是探索 AI 编程的更多可能,这套方案都能让你事半功倍。

其他

本文主要参考两个文档

  •  
Received yesterday — 2025年8月5日技术

一款简洁、美观的 WordPress 友情链接插件

2025年8月5日 10:38

近日,我开发了一款全新 WordPress 友情链接插件。该插件简洁、美观、易于使用。

可以访问以下链接查看实际展示效果:友情链接展示页

插件特性

  • 响应式布局:在桌面端默认每行展示 3 个链接,并能根据屏幕尺寸自动调整,在平板和手机上也能完美呈现。
  • 信息展示丰富:每个链接均会展示对方网站的 Favicon(头像)和博客名称,一目了然。
  • 灵活的排序方式:支持固定排序和随机排序两种模式。设置为随机排序后,每次刷新页面都会带来全新的链接顺序。
  • 智能头像获取:自动通过 favicon.im 服务抓取网站头像。同时支持手动指定头像链接,或在留空时显示默认头像。
  • 简洁的管理后台:后台管理界面操作直观,美观大方。
  • 纯净无残留:启用时自动创建专属数据表,禁用时彻底删除,不在数据库留下任何冗余数据。
  • 数据轻松迁移:内置导入/导出功能,方便备份和恢复友链数据。

使用方法

1. 下载与安装

可从以下链接下载该插件:点此下载

下载 .zip 压缩包后,在 WordPress 后台的“插件”—>“安装插件”页面上传并启用。

2. 插入短代码 (Shortcode)

在任意页面或文章中插入短代码即可展示友情链接。

如何在编辑器中插入?

  • Gutenberg (区块编辑器):添加“自定义 HTML”区块,将短代码粘贴进去即可。
  • Classic Editor (经典编辑器):直接在文本编辑模式下粘贴短代码。

未来计划

计划将此插件移植到 Typecho 平台。

致谢

在插件的开发过程中,AI 提供了巨大帮助,特此感谢科技的力量。

经过两天的密集调试,目前插件运行稳定,暂未发现明显 Bug。欢迎提出宝贵的意见和建议,或是一同参与改进,让它在保持简洁、美观、易于使用的同时可以变得更好。

  •  

MovieRecord

2025年8月5日 11:37

MovieRecord

一款typecho影视记录插件(插件运行在php7.4、Typecho1.2.1版本上没有问题。部分主题可能不兼容)

使用

在文章或者页面填写封面、名称、链接使用。

[movie img="https://img1.baidu.com/it/u=3042287271,1241422176&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=701" name="仙逆" url="https://example.com/movie1"]

下载

截图展示

一款typecho影视记录插件.webp
  •  

GameRecord

2025年8月5日 11:34

GameRecord

一款typecho游戏记录插件(插件运行在php7.4、Typecho1.2.1版本上没有问题。部分主题可能不兼容)

使用

在文章或者页面填写logo、角色名、时间使用。

[game logo="图标地址" name="游戏名称" nickname="游戏昵称" time="游戏时间"]

下载

截图展示

typecho游戏记录插件GameRecord.webp
  •  

LinkShow

2025年8月5日 11:32

LinkShow

typecho友情链接显示插件(插件运行在php7.4、Typecho1.2.1版本上没有问题。部分主题可能不兼容)

使用

在文章或者页面内填写logo、名称、地址、介绍使用。

[linkshow]
[link logo="图片地址" name="网站名称" nickname="网站昵称" url="链接地址" intro="网站介绍"]
[link logo="图片地址2" name="网站名称2" nickname="网站昵称2" url="链接地址2" intro="网站介绍2"]
[/linkshow]
其中,nickname="网站昵称2"可以删除使用非必用

下载

截图展示

typecho友情链接显示插件LinkShow.webp
  •  

BlogSubscribe

2025年8月5日 11:29

BlogSubscribe

一款博客订阅插件(插件运行在php7.4、Typecho1.2.1版本上没有问题。部分主题可能不兼容。)

使用

通过在插件后台输入订阅地址,通过短代码调用,在你需要放的位置使用下方短代码

[blog_subscribe]

插件下载

效果截图

typecho博客订阅插件BlogSubscribe.webp
  •  

2025年7月阅读书摘

2025年8月4日 22:08

7月阅读记录

  • 《在中国大地上》Done
  • 《如何找到想做的事》Done

7月阅读书摘

《在中国大地上》

第三章 开往北京的90次夜车

  • 我问这是什么战争,春歌的丈夫答道:“这不是战争,只是一段过渡期而已。如果足够了解中国历史,你就会明白的。在我们四千六百年的历史中,每逢改朝换代,都会有一段动荡不安的时期,短则六十年,长则一百年。

第四章 上海快线

  • 2025年7月阅读书摘

    在中国,一直有个难题。如果有什么地方风景特别好看,人们就会蜂拥而至,然后美景就被人群毁了。

  • 由于一整天都在人群中钻来钻去,我问道:“你觉得中国人以后会有私家车吗?” “极少数人会有的,但不是为了图享受,而是为了做生意。我们想要做的,是生产汽车,然后卖到国外去。出口市场才是我们的兴趣所在。”

  • 然后我眼前就浮现出一堆红卫兵,他们手里拿着长剪子,脸上露出狰狞的笑容,沿着南京路一路往前,边走边寻觅哪里有肥大的衣袖或者飘逸的长发。他们挥起长剪子,开始不停地剪,剪,剪!我意识到,一个狂热的青少年,手里要是握着一把剪子,简直比端着步枪的士兵还可怕。

  • 潘教授在这方面是个典型,但他给人的印象却不会因此而减弱。他轻声笑了笑,说:“美国人没理由惧怕中国人,一点理由都没有。在这世上,中国人只对两样东西感兴趣——权力和金钱。美国是最有权也是最有钱的国家,所以中国人永远都需要跟美国搞好关系。”

第五章 开往广州的快车

  • “我不是在说他们——我讲的是投资者的信心好像正在消退。这就是为什么未来三四年至关重要了。很多公司都已经撤离,他们既不是慈善家也不是空想家。他们想赚钱,如果赚不到钱,他们就走。中国市场正处于大规模扩张阶段,但目前为止还没有得到很多回报——因此没有理由让人寄予厚望或者吸引大规模投资。泡沫是会破裂的,而且一旦破裂,这里就会变成地狱。五年之内我们就会知道这样的事会不会发生。

  • 共同奋斗'是他们经常使用的说法,体现着某种团结一致的思想,而如今这种思想已经销声匿迹。他们不再友善,不再礼貌。我觉得他们已经迷失,他们的结局会很可怕。

第八章 开往西安的104次列车

  • 正午时分,列车停在了处于铁路枢纽位置的宝鸡市。一位先生告诉我:“渭河里没有鱼。”然后,他大声清了清喉咙,往站台上吐了一口痰,随即习惯性地出于礼貌,用鞋底把痰擦了擦。 每个人都会像这样清嗓子、吐痰,他们的痰有时会成滴快速落下,有时则会拉成细条缓缓下流,就像顺着痰盂边缘而下的烛蜡。一般他们都会吐在垃圾篓里或者树干旁边,但就算政府专门发起倡议,也无法阻止一部分人随地乱吐,我见过有人把痰吐在地毯上,并且还记得要礼貌地用鞋底去抹两下。

  • 这对中国人来说再好不过了。或许他们已经认识到,游客的好处就在于他的注意力集中而短暂。对政府而言,游客要是只把观光作为旅行目的就太完美了。他们来访,去各处景点参观,等到把所有地方都转了个遍,就会马上离开。不以观光为目的的人往往会驻足徘徊,他们不看博物馆的介绍,喜欢问尴尬的问题,不是让人感到心惊胆战,就是把人搞得垂头丧气,所以他们最好不要来。

第十六章 开往大连的火车:92次列车

  • 虽然我在中国见过很多胆小鬼,但坚忍不拔却是中国人最大的特点。

第十七章 开往烟台的“天湖号”游轮

  • 我想起了自己身边所有自命不凡的人和自认为无所不知的人,以及那些讨厌的教师、评论家和书评家,我希望他们都被赶上去内蒙古的火车,到那里去铲猪粪,住牲口棚。不过,我当然也会在其中。在中国,不干体力活的人通常都被称作知识分子。这群人太招人烦了,作为惩罚,我们都要在那里挖洞。这样的命运真是悲惨,但很容易就能想到相关政策是怎么来的。每个人在他的一生中,或多或少都希望过自己讨厌的人被车拉到别的地方去铲粪——尤其是那种四体不勤又心高气傲的人。

第十九章 开往上海的山东快线:234次列车

  • 这里的每个人都因农事而筋疲力尽,而且每一寸土地都已被开发利用。既然可以种菠菜,为什么要种花呢?既然阳光可以照耀庄稼生长,为什么要种树将它挡住呢?

第二十二章 开往西藏的列车

  • 外表越是普通,就越像救苦救难的英雄。

《如何找到想做的事》

“可以作为工作的爱好”和“不能作为工作的爱好”之间的区别

  • 全部行动都以“这个有用吗?”为标准筛选,人就会备受阻力,最终会丢失“做‘喜欢的事’且幸福地生活”这一初心,觉得只能做“有用的事”(合理的事)。这就是合理性陷阱。

序 一本让你找到“想做的事”的书

  • 因为对工作没兴趣,也就没有学习动力,所以无法成长。

误区2:找到想做的事时会有命中注定的感觉

  • 实际上大部分情况下即使找到“想做的事”,你开始也只会觉得“嗯?或许挺有趣的”,即仅处在感兴趣的阶段。

误区4:必须多行动才能找到

  • 去服装店可以随便挑选衣服的款式,但是如果没有明确的选择标准会怎么样呢?你也许会被“现在这个很受欢迎”“价格便宜”等与“自己想穿的衣服”不符的信息所影响,进而做了选择。

“如果不知道自己想做的事是什么,就只能试着先行动了”,这种想法中的陷阱

  • 人在选项多的时候往往会“不做选择”

“一直迷茫的人”和“走自己道路的人”之间唯一的区别

  • 不要把自己的判断标准建立在外部的“以他人为中心的坐标轴上”,必须切换到自己内心的“自我中心坐标轴”上。

公式1:喜欢的事×擅长的事=想做的事

  • 技能和知识是为了实现自己想做的事的手段。如果以使用技能为目的,人生当然会变得无趣。正因为如此,才有必要了解自己在任何时代、任何地方都能使用的“擅长的事”。在找到“真正想做的事”之后,如果有需要的话再去掌握“技能和知识”也来得及。

如何找到实现“想做的事”的手段

  • 所谓的色彩浴效应是一种心理学现象,指如果刻意关注一些事物,那么与之相关的事物就会很自然地映入你的眼帘。比如听到“请找出你周围红色的物体”,你就会看见以前没有注意到的红色物体。

  • 色彩浴效应和实现“想做的事”的手段是一样的。确定好“想做的事”之后,色彩浴效应开始发挥作用,实现“想做的事”所需的信息就会源源不断地冒出来。浏览信息时竖起“天线”,关注对自己想做的事有用的信息,从而不断地将它们收集起来。

所谓成功并不是“达成目标”,而是“活出自我的这个瞬间”

  • 那时候我才意识到,真正的幸福并不是得到金钱或名誉。如果对现在这一瞬间所做的事情感到充实才是幸福,才是人生的成功。
  •  
Received before yesterday技术

“林海爱折腾”上线

2025年8月4日 16:10

林海爱折腾”这个站点酝酿很久,在2025年7月31日终于正式上线了。

很多次告诉自己不要再折腾了,可是当出现让自己感兴趣的东西时,还是忍不住要动手。比如,遇到一个样式钟意的主题,就必须动手修改一番,直到它成为自己最喜欢的样子;又比如,心血来潮利用 AI 制作了一个样式精美的友情链接展示插件;在折腾 VPS 的过程中,也总会遇到些值得记录和分享的问题。

我的主博客(lhcy.org)是一个非常棒的平台,记录着我的生活与感悟。但我不希望让这些时效性强、略显硬核的技术类文字冲淡它的主题。因此,我建立了“林海爱折腾”这个全新的博客,专门用来记录我在技术世界里的每一次探索、每一次尝试和每一次“折腾”。

至于技术选型,这个新站最终选择了 Typecho。熟悉我的朋友可能知道,我的主博客曾因插件生态等原因从 Typecho 迁移到了 WordPress。但时过境迁,如今 Typecho 的许多问题要么可以绕过,要么得到了解决,它依然是我心中轻量、高效的代表。它现在使用的主题源自 Github,在AI的协助下修复了十几个 Bug 并按我的心意调整后,它重获了新生。

也许你会问,我自己也发布过三个 Typecho 主题,为何不直接用呢?不怕笑话,时过境迁,心境变了,我已经不喜欢当初的样式了。当然,如果你喜欢,它们在 PHP 8.x 环境下依然能稳定运行。

“折腾”不止,探索不息。希望“林海爱折腾”这个小站,能成为我记录技术足迹的专属空间,也希望能在这里遇到同样热爱探索的你。

  •  

散装日常

2025年8月4日 16:33

Photo by Michal Průcha / Unsplash

标题来自 betty 姐的 散装日常 一文

8月进入三伏天的中伏,天气一日炎热过一日。

我是每天早上八点出门,可即便是这个时候,路面都已经开始热气蒸腾,而且这种情况会一直持续到晚上9点,期间路面上即便刮过微风也都是带着热意,吹着风时会让我有种在空气炸锅中的错觉。

博友圈中大家也都是被热的鬼哭狼嚎,期间在某位博友的文章下回道 如今的极端天气已经是一年多过一年了,想来用不了多久地球的气候就要被我们玩坏了

都这么热了,月底恰好因为工作的事情需要做一些费力气的活,但即便在阴凉的房子里稍微干一会,流出的汗液就会打湿衣服,再多一会便会从额头上滴下豆大的汗珠,必须用衣袖或纸巾擦干,不然掉进眼泪要被盐分刺的生疼。此时算是了解那些工人们的苦楚了,只不过我们这体验可不及他们的百分之一吧?

每次做半天休息半天,回去后便要立马喝上一支藿香正气液,缓解中暑症状,但依旧还是感觉浑身乏力,脑袋昏沉。

各位博友们可也要注意防暑了。


因为去年折腾了NAS,后来的图片基本上都存放在那上面了,用博友的香港机器打完洞后外网的访问速度能有10M/s左右,看照片什么几乎都是秒加载,看4k影视基本上也没有什么延迟,这让原来的阿里云、OneDrive变的如同鸡肋,食之无味。

所以这几天整理了一下这两个网盘的照片,准备全部转移到NAS上。OneDrive的我直接挂载到飞牛上,将相册复制粘贴到飞牛就好了,速度慢是慢一点,但是基本上不用怎么管。

阿里云则要麻烦的多。

我是阿里云盘内测的时候便开始使用的用户了,当时网盘是集成在Teambition这个协作软件里的,后来可能是看到用这个的用户挺多的,便被他们提溜了出来,单独做成了阿里云盘,当时打着用不限速的口号可是狠狠抢了一波百度的用户。

不过好景不长,用alist、小雅挂载云盘做媒体影视库的玩法可能也让高层熬不住了,彻底不要脸了,开始限速、限制webdav挂载等。而且相册这种基本的功能也加了很多限制,不能预览高清,加载速度慢等等,这也是我那时候下定决定搭NAS的主要原因之一了。

所以只能通过阿里云盘的客户端将照片全部下载到本地,在上传到NAS上去。

不过被喜闻乐见的限速了,刚开始速度只有300kb左右,后来晚上速度提高到1m左右,之后几乎最高就是这个速度了。

好在一晚上就处理完了所有照片,通过内网上传到我NAS的话大概有30M/s左右,一个小时就搞定了。

终于算是完整完成了网盘的切割,现在只用了OneDrive来同步工作文件。

之后如果飞牛出了随用随下特性的同步功能可能OneDrive也要退了。


手上这部小米12su陪了我两年了,虽然在 vivo x200 pro mini 出来的时候有过那么一点心动,曾几度晚上在电商购物节时下单但是早上又退掉,理性成功战胜了购物欲,它的性能依旧足以支撑我继续使用。

目前主力使用的系统版本一直是miui14的早期版本,期间也试过HyperOS,但是新系统刚出来时刷过一次,体验特别不好,肉眼可见的卡顿让我回退回了miui14。期间也想过刷原生系统玩,但是因为是主力手机,原生系统在工作方面会有很多问题,所以也放弃了。

最近突然心血来潮打开了需求没看的酷安,在12su专区发现大家都在盛传HyperOS2(居然已经HyperOS2了吗?我1都没用过呢...)202这个小版本好特别好用,续航、功耗控制的都非常不错,让我非常心动。

为了确定是不是幸存者偏差,我连刷了好几天,几乎没有差评,所以在慎重考虑之后花了一天时间备份原始数据,并在晚上刷入了新系统。

虽然在恢复备份数据时有一些问题,但是用了个把星期下来,从功耗、发热、系统流畅程度来说都几乎吊打了原来的系统,我非常满意。

  •  

博客知识地图

2025年8月4日 15:14

博客知识地图 无敌的个人博客 tangwudi

1 博客知识地图 · 精选导航 本知识地图仅收录具有体系化、方法论、实战突破价值的文章,帮助新读者快速掌握博客的核心内容。 建议与 站点地图、Cloudflare 学习地图、AI 学习地图 配合阅读。 1.1 🏠 家庭数据中心搭建与优化 家庭数据中心 IPv4/IPv6 双栈网络架构及应用访问流程优化 独立个人博客搭建及避坑指南 WordPress 极速搭建个人博客之零基础新人直升大礼包 从零开始搭建个人博客之完整攻略(最低成本) WordPress 多节点“半自动”、“近乎”实时同步方案 WordPress 多活架构(简版)在个人博客中的落地方案 博客架构的第二次重构:VPS 搬家引发的服务迁移与双活容灾实践 用 Cloudflare Worker 解决 WordPress 多活架构中的评论同步难题 1.2 ☁️ Cloudflare 系列精华选(独立于学习地图) 从 Cloudflar […]

<p>The post 博客知识地图 first appeared on 无敌的个人博客.</p>

  •  

醒脑提升的咖啡压片糖果

2025年8月4日 11:02

拆开这个意外收获的小盒子时,浓郁的咖啡香瞬间钻入鼻腔。这盒精致的"来一口咖啡吧"压片糖果,不知是哪个咖啡订单的赠品,就这样悄悄出现在我的生活里。

作为一个伪咖啡爱好者(其实只懂喝不懂品),平时最抗拒的就是甜食。但武汉39℃的酷暑实在让人嘴里发苦,连最爱的无糖美式都提不起劲。这时候,营养快线、冰绿茶就成了续命神器——当然还得跟家里的小祖宗抢AD钙奶喝,每次都要演一出"这是大人饮料"的戏码,想想也是哭笑不得。

豆子颜色是灰褐色,香味浓郁,让人很想吃一颗的感觉。

今年体检报告上的"血糖偏高"和"脂肪肝"三个字,彻底给我的吃货生涯按下了暂停键。看着灰褐色的小糖豆在掌心滚动,浓郁的香气不断挑衅着我的意志力。第一颗入口时,咖啡的醇苦和糖果的甜味在舌尖打架,意外地和谐。连续几天尝试后,居然还发现了提神效果——这对总在开车时犯困的我简直是救命稻草。

想起老妈总吐槽我喝的黑咖啡像锅底灰,再看看手里这些穿着糖衣的"咖啡豆",突然觉得生活就像这糖果,总要裹着点甜头才能咽下苦涩。就像那瓶15年的五粮液,明明珍贵得很,宿醉后的我却喝得龇牙咧嘴,真是暴殄天物。

现在这盒糖果成了我的办公桌常客,既满足了咖啡瘾,又不会摄入太多糖分。偶尔含一颗,就会想起这个夏天:和媳妇抢奶喝的幼稚,跟孩子斗智斗勇的温馨,还有在健康与口欲间反复横跳的成年人烦恼。原来最美好的滋味,往往就藏在这些平凡的日常里。

  •  

家庭数据中心系列 WordPress 健康检查接口优化:使用 204 响应打造探活插件

2025年8月4日 09:39

家庭数据中心系列 WordPress 健康检查接口优化:使用 204 响应打造探活插件 无敌的个人博客 tangwudi

1 前言 在我之前的多活架构部署实践中(详见:家庭数据中心系列 WordPress多活架构(简版)在个人博客中的落地方案),Cloudflare 的运行状况检查(Health Checks)是实现节点可用性判断的核心机制之一,之前我博客的运行状况检查的内容如下: 上图中使用的检查路径是 “/healthcheck”,这是我专门创建的一个 WordPress 页面,内容非常简单,只输出一段“OK”文本,便于 Cloudflare 定期发起 HTTP 请求来确认站点是否存活: 同时,我也在 Cloudflare 的规则中为该路径设置了绕过缓存、防火墙、安全挑战等策略,以尽可能确保响应结果能真实反映源站状态。 这种方案功能上是可行的,也确实稳定运行了一段时间。但在进一步分析和优化中,我发现这种方式其实存在不少隐藏的结构性问题: 首先,这个路径返回的是 200 状态码,并且 […]

<p>The post 家庭数据中心系列 WordPress 健康检查接口优化:使用 204 响应打造探活插件 first appeared on 无敌的个人博客.</p>

  •  

niRvana轻拟物主题

2025年8月4日 08:33

niRvana轻拟物风格Typecho主题

niRvana

typecho-Theme-niRvana 移植自 WordPressniRvana 主题,轻拟物主题,让设计上不再趋从于现有的扁平化,近日移植版已支持评论功能。

预览

注意:在线预览功能因为服务多个主题,故无法专门为其建立搜索页面,这个不是主题的原因

在线预览

下载

开源地址https://github.com/michaelliunsky/typecho-theme-niRvana

设置教程

搜索页面

按照下方截图的方法设置独立页面,然后将页面网址填写到主题设置里
搜索页面.webp

图标格式

使用区域:猜你喜欢、分类菜单、顶栏菜单

icon font_family icon-表上内容

icon.webp

猜你喜欢

使用区域:后台设置 - 相关文章

<div class="relate-posts clearfix"><div class="post-model"><i class="far fa-star"></i>标题</div><div class="posts clearfix">内容</div></div>
  •  

安利神器:Claude Code Router

2025年8月3日 21:43

在如今的 AI 开发浪潮中,编码辅助工具层出不穷,但能真正提升效率、灵活适配多种模型的却不多。今天,我要给大家强烈安利一个开源项目——Claude Code Router!这个基于 Claude Code 开发的智能路由器*,不仅能让你更灵活地使用 AI 编码能力,还能无缝切换多种模型,堪称开发者的小助手

主要是体验国内大模型不是

什么是 Claude Code Router

Claude Code Router(后续简称 CCR)是一个开源项目,基于 Anthropic 的 Claude Code 打造,旨在为开发者提供一个灵活的编码基础设施。它就像一个智能路由器,可以将你的编码请求分发到不同的 AI 模型(如 DeepSeek、Ollama 等),并支持高度自定义的配置,让你根据任务需求选择最合适的模型。简单来说,CCR 让你在享受 Claude Code 强大编码能力的同时,还能灵活适配其他模型,省时省力又省钱

一句话总结:CCR 是一个让开发者自由掌控 AI 编码能力的超级工具, 你的省钱小能手

为什么需要 Claude Code Router

灵活的模型切换,打破 API 限制

我们都知道,Anthropic 的 Claude 系列模型在编码任务上表现优异,但它的 API 有时会受到限制,比如封号风险或高昂的 Token 费用。CCR 通过启动一个本地服务,将 Claude Code 的 API 请求转发到任何支持 OpenAI 格式的 API 接口,完美规避了这些问题。你可以用 DeepSeek、Gemini 等其他模型的 API 来驱动 Claude Code,灵活又高效!

高度自定义,适配多样化需求

CCR 支持通过 Providers 数组和 Transformer 机制自定义模型和 API 交互方式。你可以为不同模型设置全局或特定的转换器(Transformer),确保请求和响应的兼容性。比如,AnthropicTransformer 可以实现 Claude 与 OpenAI 格式的双向转换,而 GeminiTransformer 则处理 Gemini 与 OpenAI 格式的转换。这种"混搭"能力让多个模型无缝协作,简直是国内开发者的福音

自动化任务,节省成本

CCR 支持通过 GitHub Actions 实现自动化任务。例如,你可以在非高峰时段运行编码任务,降低 API 调用成本。它的配置简单,配合 GitHub Actions 可以轻松实现触发式自动化,比如当 Issue 评论中包含 @claude 时自动启动编码任务。省时又省钱,效率拉满!

开源免费

CCR 是完全开源的,托管在 GitHub,你可以自由下载、修改和贡献代码

项目地址: musistudio/claude-code-router

核心功能

  • 多模型支持
  • Transformer 机制, 核心功能。它能将不同模型的请求和响应统一到 OpenAI 格式,确保兼容性。
  • 支持本地化
  • Tool Mode,智能任务处理。借鉴了 Claude Code 的 Plan Mode,CCR 为 DeepSeek 等模型实现了 Tool Mode。当启用时,模型会主动选择最合适的工具来完成任务,极大提升编码效, 具体可以参考 Tool Mode

快速上手

  • 本地运行(个人推荐)
  • docker 部署(任意地方)

本地运行

本文示例对接魔搭的 qwen3 最新模型。

环境要求

安装依赖:确保 Node.js 版本 ≥18.0.0,使用 bun 或 npm 安装所需包

安装

  1. 安装 Claude Code
npm install -g @anthropic-ai/claude-code
  1. 安装 CCR
npm install -g @musistudio/claude-code-router

配置

默认配置文件 ~/.claude-code-router/config.json

{
  "LOG": true,
  "CLAUDE_PATH": "",
  "HOST": "127.0.0.1",
  "PORT": 3456,
  "APIKEY": "",
  "API_TIMEOUT_MS": "600000",
  "transformers": [],
  "Providers": [
    {
      "name": "modelscope",
      "api_base_url": "https://api-inference.modelscope.cn/v1/chat/completions",
      "api_key": "不要ms-的token",
      "models": [
        "Qwen/Qwen3-Coder-480B-A35B-Instruct"
      ],
      "transformer": {
        "use": [
          [
            "maxtoken",
            {
              "max_tokens": 65536
            }
          ]
        ]
      }
    }
  ],
  "Router": {
    "default": "modelscope,Qwen/Qwen3-Coder-480B-A35B-Instruct",
    "background": "modelscope,Qwen/Qwen3-Coder-480B-A35B-Instruct",
    "think": "modelscope,Qwen/Qwen3-Coder-480B-A35B-Instruct",
    "longContext": "modelscope,Qwen/Qwen3-Coder-480B-A35B-Instruct",
    "longContextThreshold": 60000,
    "webSearch": ""
  }
}

启动

ccr code

容器版部署(非编译版)

容器部署可以从源码编译,也可以像本地一样 npm 安装

  • Dockerfile
FROM node:lts
WORKDIR /app
RUN npm install -g @musistudio/claude-code-router
CMD ["ccr","start"]

基于上面的构建出一个镜像

  • docker-compose.yaml
version: "3.8"

services:
  ccr:
    build: .
    container_name: ccr
    ports:
      - "3456:3456"
    volumes:
      - ./:/root/.claude-code-router
    restart: unless-stopped

配置 config.json 区别, 仅列出调整的

"APIKEY": "xxxxxx", // 必须要有
"HOST": "0.0.0.0", // 以及这里

在本地的配置~/.claude/settings.json,和配置 Claude Code 一样

{
    "env": {
        "ANTHROPIC_BASE_URL": "https://xxxxxxx",
        "ANTHROPIC_AUTH_TOKEN": "123"
    }
}

然后 claude 开始你的编码

总结

潜力已经显而易见, 未来可期哈哈。如果正在为 Claude 的高成本和限制头疼,国内开发者还是值得试一试,当然如果能直接用 Claude Code,还是推荐用 Claude Code

  •  

[Frightening Dream] 梦见清新秀气与油腻肥头「005」

2025年8月3日 00:14

正常人类在梦里没有嗅觉。

声明:「本故事是做梦梦到的,如有雷同那你脑部有神经类疾病,应尽早就医」


正文

章节一

临近毕业,就差拿证走人了。这阶段学校的屁事最多,学校有任何用人的屁事,就会随便抓一个班过去干杂活,此所谓最后的剩余价值不榨白不榨。

在床上躺着好好的,突然来电话,说让我们班过去收拾机房。时间倒是给得很多,而且是时间内不会再分给我们其他垃圾活。

但是修机房这事情是技术活,全班有能力干这活的基本上就我一个人。

很明显上面的事逼领导就是针对我们这个事逼班分配的任务,时间长难度大没收益没好处,顺带恶心我这个犟种。领导是明显知道这事情就我能干,如果我不干,那就全班一起在机房熬时间,最后或者这活还是我干了,或者所有人一起干耗到毕业领证。活可以不干,但是人不到时间不许走,反正最后毛病都得落在我身上。我干活,大家就能得到自由,我不干活,大家就都坐在这里磨时间。

章节二

大早上全班去机房。景色完全可以想像,一堆人坐在那里玩手机,就是硬磨时间。

没办法,劳者多能,干吧。

一台机器一台机器的开始调。学校的破机器基本都是能亮就行,学校想到找人修机房,那大概就是不亮了。

从早上一直干到临近中午,快到饭点了,同学屁颠屁颠的一个个基本走没了,其实半路就有不少偷偷摸摸溜了。

我人还钻在桌子底下调机器呢,屋子里人都走得差不多了。苦逼一个。

从桌子底下钻出来,身上沾了一身灰,脏兮兮。

还没走的姐们实在看不下去,“下午要拍毕业照的,你衣服脏成这样可不行”。姐们说先去她家把衣服换了,她家就在学校对面。

章节四

到姐们家,直接被姐们拉近卧室。姐们从衣柜里翻出一堆中性的衣服扔到床上,让我挑能穿的衣服换上,她则出卧室去翻别的东西去了,“你衣服换好了就先在屋里歇着,躺床上睡一会,下午指不定还有什么屁事呢”

把脏兮兮的外套换下来,套上姐们给的衣服。衣服上有一股奇妙的清新的气味,既不是沐浴露也不是洗衣液的气味,是从未体验过的清新的香味,很微妙。

床是坚决不能躺的。我就在梳妆台前面的椅子上坐了一会。

姐们回来,手里拿着个照相机。

姐们看着我说:“你这穿得也太秀气了,不拍几张照片都可惜了。”

我:“机会难得,别客气”

姐们:“真的?”

我:“这辈子可能就这一次机会了,错过就再没有了,别留下遗憾。”

姐们:“那我可就不客气啦!”

姐们说罢从梳妆台里拿出一堆化妆品就要开动了。

章节五

姐们电话响了,接电话,是“老师”打过来的,说是学校毕业聚餐,选上我们班凑数了,要马上过去,等会上面领导要出席,还有电视台的记者。

姐们撂下电话。然后我电话也响了,一样的通知。

赶到指定饭店,指定餐厅。姐们从后门进,坐房间那边女生堆里对付一拨领导,我从前门进,坐房间这边男生堆里对付另一拨领导。

进门一看,虽说前面的桌子是预留给领导的,但是所有学生都做到角落去了,完全没有充场面做样子的学生在前排。

勉为其难又他妈的是我来充场面打头阵。我刚坐下,后面一群臭男人就在那喝倒彩:“XXX穿女装!”

章节六

已经到了饭点了,饭菜已经上好了,大鱼大肉,但是电视台的人和大领导们都没来,也没人敢动筷子。

终于领导来了,电视台的人也来了。

电视台立马就架好机位,立刻就上了阵势,先拍领导和学生握手。

但是前排就能抓到我一个学生,其他学生都躲到远远的。老师赶紧示意我先上去跟领导握手,此时电视台的摄影师已经站好位置了,我和大领导都已经在镜头里了。

我立刻整理好衣服,然后毕恭毕敬地从低处伸出右手准备和领导握手。电视台的摄影师也配合着我的动作,移动到我身后,进行着完美的走位运镜。

只见领导上身穿着白衬衫,没扎领带,下身穿着黑色的西服裤子,鼓着大肚子,带着个大手表。

领导突然伸出双手,把我搞得一愣。领导一只手抓住我的手,我以为领导要用双手握手,赶紧伸出左手。

结果领导突然左手搭在我的肩膀上,用力把我向一边猛猛推走,然后径直走到餐桌前,坐下拿起筷子就开吃,根本不在意什么电视台不电视台。

我被突然推出去,没站稳,趔趄出去好远。

回头,只见领导已经开吃了,电视台的人面无表情地放下设备,也坐下开吃,其他桌也开吃了。

只是没给我预留座位,前排的座位被领导老师和电视台的人占满了,后排的座位也没空位。

我就无助地站在空地上。


醒了。

那股奇妙的清新的气味也没有了。

The post [Frightening Dream] 梦见清新秀气与油腻肥头「005」 first appeared on 石樱灯笼博客.
  •  

这应该是资本最内卷的病态产物

2025年8月2日 21:06

“内卷式”竞争,作为一种低效率的不公平竞争,让不少行业、企业深受其害,也影响到经济的高质量发展。

“‘价格战’‘争赛道’‘抢人才’,以税收减免、土地特惠、厂房白送等超乎寻常的优惠条件来吸引企业……这种‘内卷式’竞争,在不少行业和地方招商引资中较为突出。”究其背后原因,既折射出部分行业因需求疲软、产能过剩而导致的供需失衡困境,也凸显了过分追求眼前利益、短期政绩的短视行为,对长远健康发展构成潜在威胁。

地方招商引资存在“内卷”,行业发展也存在“内卷”,打价格战是其突出表现。

视频来源于 https://www.douyin.com/video/7533493769107262739

  •  

Excel单元格做多选下拉框

2025年8月2日 17:12

Photo by Mika Baumeister / Unsplash

最近做数据筛选,有些列是固定的几个选项,并要求可以多选。新版本的excel和wps能不能实现不知道,但是默认情况下2016版的wps没法。

研究了一下,AI给了个解决方案,亲测好用。

一、准备下拉列表源

  1. 在任意空白列(如 Z 列)依次输入:
    • 退货
    • 促销
    • 调拨
    • 冻结
    • 关注
    • 补货
  1. 选中这些单元格 → 公式 → 定义名称 → 名称填 ActionList → 确定。

二、给“处理结果”列加下拉

选中需要多选的单元格区域(如 C2:C1000)→ 数据 → 有效性(或者数据验证) → 允许:序列 → 来源:=ActionList → 确定。

此时依旧只能单选,接下来用 VBA 让它支持多选。

三、插入 VBA 代码

  1. 按 Alt+F11 打开 VBA 编辑器。
  2. 左侧找到对应工作表(如 Sheet1),双击打开。
  3. 把下面代码整段粘进去即可:
'========== 支持多选下拉(逗号分隔) ==========
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngDV As Range
    Dim oldVal As String, newVal As String
    
    '如果改动区域不在“处理结果”列,直接退出
    Set rngDV = Me.Range("C2:C1000")   '←改成你的实际区域
    If Intersect(Target, rngDV) Is Nothing Then Exit Sub
    
    Application.EnableEvents = False
    
    newVal = Target.Value
    Application.Undo
    oldVal = Target.Value
    
    If oldVal = "" Then
        Target.Value = newVal
    ElseIf newVal = "" Then
        Target.Value = ""
    ElseIf InStr(1, oldVal, newVal) = 0 Then
        Target.Value = oldVal & ", " & newVal
    Else
        '已存在则去掉
        Target.Value = Replace(oldVal, ", " & newVal, "")
        Target.Value = Replace(Target.Value, newVal & ", ", "")
        Target.Value = Replace(Target.Value, newVal, "")
        If Left(Target.Value, 2) = ", " Then Target.Value = Mid(Target.Value, 3)
    End If
    
    Application.EnableEvents = True
End Sub
  1. 关闭 VBA 编辑器,保存数据,并将表格另存为.xlsm格式。
  2. 重新打开文件,点击“处理结果”列的下拉箭头,可以连续勾选多个动作,结果自动以“退货, 促销, 调拨”形式写入单元格;再次点击已选项可取消。

注意事项

  • 文件需保存为 .xlsm(启用宏),并重启表格程序。
  • 若区域或列号不同,只需把代码里的 C2:C1000 改成实际范围即可。
  •  

二〇二五年七月总结,点沮丧也有点颓废

2025年8月2日 14:20

又过了一个月,很慢也很快,回头看这个月接触了很多事情,也做了很多事情。摄影、骑车、看书、玩游戏。

说实在的,不想更新,最近有点沮丧也有点颓废。也许是某个岔路口不知道该咋走,无论是哪条路,都没有明确的险阻,中青年不像青年人那样敢拼敢闯。

拍照

自从七月中旬做了一个[每日摄影]的决定,到目前已经获得了300多张照片。当然,这些照片不乏废片。

时常迷茫这种刻意练习的方式,熟悉的场景怎么拍,司空见惯的事物怎么拍,绞尽脑汁找不到好的方法,也许陌生的环境才有拍摄欲望。都说新手先拍风光与人文,光影稍纵即逝,很多时候看到但很难拍到。

7月7日,买了索尼18-105半画幅电动变焦镜头,目前是挂机镜头。

七月的一些照片:

骑车

总里程:424.10km
总时间:21:06:17
月骑行均速:20.10km/h
次数:31

在速度方面已经没有突破了,也许跟心态有很大关系,从内心觉得身体条件不允许,仅能做一些维持健康的运动。

月底尝试一次跑步,2.7公里慢跑大汗淋漓,休息了3天才缓过劲。但之后给我的感觉是更有力量了,可能是需要搭配其他运动才能有所提升。

力量一直是我的弱项,针对力量的训练又是十分痛苦的,正是这样避重就轻才导致不前。

看书

看书这件事没有坚持,月初翻看一本《认知驱动:做成一件对他人很有用的事》。但最终还是没有看完这本书,进度停留在46%,一个月一本书的任务虽败告终。

玩游戏

王者荣耀、和平精英、第五人格,曾经常玩的游戏,现在重回游戏,水平一如既往的菜。

后半月下载了这3款手机游戏,刚开始玩的不亦乐乎。也许是暑假期间小学生太多,有些胜利、吃鸡都莫名其妙的发生了。

把游戏当做调节情绪的工具,当我在游戏中败下阵来也不感到沮丧,时间差不多就收起来,但总体玩游戏的时间还是太多,以后要注意。

  •  

被迫新增一条移动宽带,和电信宽带形成双出口

2025年8月2日 15:07

被迫新增一条移动宽带,和电信宽带形成双出口 无敌的个人博客 tangwudi

上周,电信的师傅又上门,说怀疑我家里有pcdn,怀疑的依据是连续215个小时有大量的上行和下行流量(其实这段时间我都下得很少了,215个小时才不到1T的下载,上传甚至不到300G~),我都无语了,我的transmission上行都限制成1024KB/秒了,还要我怎么办? 随便去看到一下最近网上的那些被运营商以pcdn名义限速或者断网用户的案例,感觉各大运营商都以pcdn这个万金油名义大力打击上传量大(这个”大”是相对一般家庭用户,要知道,一般家庭用户上行可能1天都超不过1G~)的用户,所以我也感觉到了危险:毕竟我是用很低的价格还用着公网IP套餐的老用户,本来就是电信的眼中钉,如果逮着机会说我违规把我公网IP收回就亏大了(虽然我现在也用不上公网IP,但是有便宜不占王八蛋)。 思来想去,再加上去年有被电信断网3天的经历,本来就有危机感,所以干脆就又牵了一条移动的千兆宽带 […]

<p>The post 被迫新增一条移动宽带,和电信宽带形成双出口 first appeared on 无敌的个人博客.</p>

  •  

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

2025年8月1日 22:07

技术深度解析

解密 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
  •  

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

2025年8月1日 22:16

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

天河潭

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

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

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

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

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

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

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

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

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

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

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

卖房

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

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

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

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

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

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

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

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

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

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

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

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

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

  •  

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

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

  •  

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

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

  •  

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

2025年8月1日 00:14
该渲染由 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,然后替换颜色定义!

看完了?说点什么呢

  •  

七月的最后一个幸运日

2025年7月31日 10:21

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

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

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

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

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

MyShortcodes

2025年7月31日 10:50

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
  •  

台风来袭的七月月报

2025年7月30日 22:50

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

送外卖

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

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

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

折腾

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

我的Glance

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

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

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

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

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

小王子

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

游戏

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

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

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

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

总结

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

看完评论一下吧

  •  
❌