阅读视图

女儿学习成绩拉胯,老父亲也焦虑上了

  女儿正在初三,再过三个月就到中考了,但是成绩一直都很不在状态,我这么不焦虑的人,都变得有一丢丢的焦虑了。

  她的成绩是从初二开始明显下滑的,到初三已经比较难看了。虽然她成绩变差,但并没有因此受到指责,我和她妈妈都还是比较宠她,也考虑到这么大的孩子了,应该自己去做自己的事,家长不应要求太多,还有就是,青春期的孩子,说她了难免会产生逆反。考虑过给她报课外辅导班或者一对一家教,但也没有太放在心上去花精力寻找和试课,而且感觉针对性不高,从她的状态来看也不太适合,也就作罢,不勉强。

  她和她妈一起生活,日常也都是一幅母慈女孝,她妈也不怎么管她的作业,主要靠她自觉。我周末会给她一些陪伴,带她户外运动一下,跟她聊聊天,给她辅导一下作业。通常也只是看看数学作业,偶尔也看看物理化学,不怎么看其他作业,为啥呢,一是因为其他作业她更容易应对,二是她没那么多时间跟我检查和探讨。

  平时的作业,有一段时间我是让她拍照给我看的,我会抽时间看,然后把她整不明白的题给她讲解一下。这个模式施行了两个月就无疾而终了。我总结的话,原因有,其一,她的作业完成时间经常太晚了,晚到如果我再看作业再讲作业就会影响到她正常睡觉了;其二,她对此并不积极,我催了几次之后,也懒得每次催她拍作业了;其三,视频讲题的效果不得而知,反正她啊啊哦哦的,是不是真懂了我不知道,但肯定是不如面对面讲解的效果好。

  周末的时候,我有机会给她面对面讲题,但也是效果越来越差。感觉她的耐心越来越差了,有时候我讲了一个题,她就在打呵欠了。讲题的过程中,局部过程跟她提问,她多半也答不上来。我要等她把作业做完,或者做完一两页,我再去查看,但她做的太慢了,在我看来就半小时到一小时的量,她可能磨叽四个小时还没写完,说她一个作业从早写到晚都不夸张。

  老师打过好几次电话,反馈她的学习状态和学习态度问题,但是似乎我也无能为力,有劲也不知道往哪儿使,也怕使错了方向而适得其反。她会迷恋电子产品,有机会就会玩游戏,不能玩游戏就看动漫或者别的。有一种说法,说是因为家长没有给孩子创造有意思的活动去参与,所以孩子才会去玩电子产品,这个我不太认同,一般成年人都抵不住短视频的诱惑,小孩子怎么抵得了游戏和动漫的吸引。

  现在她的数学成绩差到什么程度呢,就是不及格的程度,第一次看到她数学不及格的时候我挺诧异的,我觉得普通智商+有听课的话都能及格的吧。我最近买了基本中考数学相关的书,准备看一看初中数学的知识点,不一定能够帮到她,至少她遇到疑问时,我能够联系起来。

  我已经是有点躺平思维了,准备这最后三个月,微弱的推她一把,要是推不起来,那就愉快的接受现实吧。就算她数学考零分,地球该转还得转。

  •  

🦞龙虾初体验

龙虾刚出来的时候,我无动于衷;龙虾爆火的时候,我依然无动于衷;龙虾开始被卸载的时候,我终于不再无动于衷了。

从春节的时候,龙虾忽然就开始变得热度极高。几乎所有人都在讨论龙虾,以及养虾的话题。这儿东西最开始的时候,给我的感觉就是,如果本地没有足够多的资源,龙虾就发挥不出自己的作用;如果直接用自己的电脑去安装,又会出现龙虾权限过高的问题。

龙虾做得事情,可能在我的预期范围之外。单纯为龙虾创建一个沙盒环境,意义感觉也不是很大。如果一个问题需要解决两遍,那感觉和不解决似乎也没太多的区别。

尽管如此,龙虾的热度还是越来越高,一度出现各种上门安装的服务。

再后来出现线了,各种收费卸载的服务。果然是此一时,彼一时,三十年河东三十年河西。

然而,在这滚滚的卸载浪潮中,我逆流而上,反其道而行之,我安装龙虾了。

不得不多,openclaw基于node的服务还是蛮笨重的,安装的确有点麻烦,刚开始为了省事,直接百度云买了个所谓的9.9的open claw实例,然而订阅coding plan的时候发现根本抢不到。

使用按量付费之后,简单尝试了以下,发现效果还是可以的,不过就是太费token了。千帆大模型感觉体验也还ok。

可以理解你的意图,也能正常的推进任务。然而,不能订阅,这个长期跑费用是个问题。

于是再次尝试别的方式,直接腾讯清凉弄了台99的服务器,干净安装openclaw,模型选择参考的杜郎的文章里提到的nvidia nim。好处是免费,当然,速率还是有限制的。

昨天的时候,第一次玩这个东西没啥经验,还是用的kimi,后来尝试minimax,但是效果怎么说呢,不知道是配置问题还是啥问题,总是不尽如意。

再后来看到了zero claw,号称体积更小,占用资源更少。直接二进制安装,下载之后启动:

至于怎么在公网访问,直接使用nginx反代即可,参考: https://cnb.cool/oba.by/baby-claw

这次直接用glm5,配置好之后,整体体验感觉有些差,就是非常智障的感jio。

假装执行,这种处理逻辑真是可以,如果我不知道文章分类都有啥,差点就信了。在这种状况下不得不再切回openclaw。鉴于昨天的配置问题,今天reset之后,尝试重新配置运行,依然用与zero claw同样的glm5,这次相对来说还是比较顺利的。

与之前zero claw的对比就会发现了,这次好歹是真的获取到相关的分类了,而不是假装执行。

所以,有的时候虽然都说自己很厉害,但是不对比永远都不知道谁更厉害。很多东西不是单纯说说就可以的,当然zero的优势在于部署方便,占用资源更低,但是作为一个agent,实际的效果并没有赶上open claw。

所以,现在各种龙虾层出不穷,如果不知道选择哪一只,建议还是选择原版,open claw,虽然安装费劲点。但是相对来说,没那么弱智(在同样的模型glm5下)。

上图为三小时token消耗量。

微信公众号文章,自动发布wp效果:

相关资源:

https://cnb.cool/oba.by/baby-claw 

https://dujun.io/28c43a95-478f-5e2a-8805-510244c99494.html

https://build.nvidia.com/z-ai/glm5

https://q.qq.com/qqbot/openclaw/index.html

  •  

又活半年

活到2026年,终于如愿以偿地玩上了生化危机9。作为0~8代无一缺席的粉丝,这次迫不及待地在首发就以三百多大洋购入游戏本体。

RE9的快乐

开局是惊艳的,依然是发丝清晰可见,场景细致入微,但是里昂老了,虽然风韵犹存,但是我还是更怀念2和4的奶昂。另一个遗憾是艾达从始至终没有出现,虽然有新的角色格蕾丝,怯懦口吃颇有几分可爱,但是艾达已经成为了a part of me i can’t let go.

RESIDENT EVIL requiem 2026_3_1 23_37_30.png

RESIDENT EVIL requiem 2026_3_1 23_37_50.png

RESIDENT EVIL requiem 2026_3_10 23_49_47.png

RESIDENT EVIL requiem 2026_3_12 23_18_17.png

慢悠悠搜刮的话,差不多是13个小时的通关流程,每天间歇性玩几个小时的话,差不多一两周的快乐时光。但是通关后的空虚,可能要长达两个月。很难再找到这么符合我口味的高质量游戏了。

我是从原版那个年代过来的,原版的乌鸦,可以用枪击杀,落地变成金币,原版的艾达,是毫不留情抢夺我胜利果实跳上直升机的坏女人,一袭红衣两缕飘带,这个形象挥之不去了……

3D打印的快乐

3D打印机是我买过最正确的东西。我是抱着智商税的怀疑下单的,结果它真的解放生产力。甚至靠着它打印出来的大疆nano配件在小红书开店小赚了一笔,直接售罄,已经赚回了打印机的钱。(虽然炒股又亏了)

1773843571902.jpg

1773843571940.jpg

1773843571978.jpg

1773843572018.jpg

销量好的时候每天下班要发十单左右,来不及做现货,只能下班继续加自己的班,那段时间感觉很命苦,但是是真暴利,成本6.21元,运费5块左右(偏远省份更贵),售价38,就这样我大概卖了100多个……

磁吸手环成本:

  1. 圆形包胶磁铁(磁力加强到极限值12kg)4元
  2. 拍拍带手环 1.5元
  3. 圆形引磁片两片 0.15+0.08元
  4. 黑色包装盒 0.24元
  5. 3D打印成本 0.1元
  6. 螺钉 0.04元
  7. 其他 0.1元

但是由于是懒人主义+完美主义+同行竞争+玻璃心+悲观主义,我卖完第一批库存后还是收手不干了,现在市场应该已经被其他竞品吞没了,机会窗口也就那么一两个月。懒是因为单打独斗+扮演客服真的让人心神不宁,时不时来个咨询都要及时回复,上班时间很难回复;完美主义是我认为产品本身不完美,不够轻薄,大疆Nano本身也不完美,为不完美的产品做配件是不可能完美的;同行竞品也确实多,他们甚至更暴利!但是他们也确实宣传图精美,而这是我没有时间改进的,哪怕在AI时代,我也没有多余力气去调教;玻璃心是因为有极为挑剔的用户差评并投诉了我的拼多多店铺,虽然其余95%都是好评或沉默,但这加剧了我的不完美主义……悲观主义是我害怕下次进货没有这么好的流量,库存烂手里,于是我选择了见好就收……于是我草草结束了这次从设计、采购、生产到销售的完整实践……虽然几个月后依然有买家追着问何时补货……真的很感激他们的认可,但是我真的力竭了……

寻找下一个商机真的很难……有的时候太想赚钱,反而赚不到钱,这次商机,完全是恰好对运动相机感兴趣和恰好有3D打印机的双重偶然。真的是有心栽花花不成,无心插柳柳成荫。

除此之外也打了很多很多实用的工具和摆件,比如小米鱼缸增高架、垃圾袋悬挂支架、桌边收纳盒、nano三脚架兼手持握把、打字机抽纸盒、游标卡尺、豪宅模型、皮划艇模型、王冠、花瓶、盖瑞蛇……

1773846292711.jpg

1773847399292.jpgRESIDENT EVIL requiem 2026_3_12 21_09_13.png

简直就是生化危机的周边!这个打字机抽纸盒我花了一周改良,甚至还在拓竹社区上传了配置,还有下面的三脚架也是!

1773846292773.jpg

1773846292840.jpg

1773847110118.jpg

RESIDENT EVIL requiem 2026_3_1 11_46_26.png

虽然这栋小房子和游戏里的疗养院不能说是一模一样,也算是同一种风格吧,更温馨,超喜欢!

1773582332049.jpg

1773846659399.jpg

今年以来打印的东西实在是太多了,实在不能每张图片都放全了……所以说3D打印机真的不是智商税!是第一生产力!拓竹能发财我是一点也不意外,可惜没有上市,不然肯定要重仓!

口袋照片打印机

除此之外小米的热升华打印机也是极具幸福感的好东西,虽然没有靠它挣到钱……

1773845624437.jpg

从Pinterest上打印了好多康纳的美照……当然也可以打自己的……丑照!

没有买拍立得,是因为以我的拙劣摄影技巧,废片率太高。

断舍离

今年是我的断舍离元年,物质观有重大转折,从囤积综合征转变为身外之物皆可弃的流浪主义——一个行李箱装下所有,保持随时随地可以踏上旅程的状态(毕竟要追随里昂的步伐可得轻装上阵)。

经常吃灰的switch和kindle已经咸鱼出掉了。

电脑和掌机游戏不互通实在不方便,墨水屏不能听书刷小红书实在不方便,于是想换steam deck和海信A10了,还没剁手,后者据说下半年才会出。

虽然物品还在努力删减中,但我相信极简主义已经说服了我——

有什么东西不是花钱能买回来的呢?花几块钱就能买到的东西,留着干啥?塑料袋、空瓶都是废物,自从批发了几百个整齐叠放的漂亮袋子就再也没有囤塑料袋的习惯了,自从买了漂亮的玻璃罐子就再也没有囤空瓶的习惯了;就连3D打印机这样的大件,也完全是工业标准品,就算地震了房塌了也可以随时东山再起卷土重来,没有必要视为不可割舍的一部分,只要有存款,黄金才是唯一值得囤积的东西!1773850933520.jpg

到哪里去

如今的我已经不再纠结从哪里来,只常常梦想到哪里去。这半年间我踩点了好多地方,在湖州爬了山,在东太湖看了日落,在独墅湖划了浆板,在宁波东钱湖看了日落,在杭州西湖坐了手摇船,在钱塘江没追上日落……我的梦中情乡也在苏州吴江和杭州滨江之间反复横跳……

虽然看似还是去了一些地方,但真实的情况是大部分时间还是家里躺着……

Monday,work & sleep
Tuesday,work & sleep
Wednesday,work & sleep
Thursday,work & sleep
Friday,work & sleep
Saturday,sleep~
Sunday,sleep!

陷入虚无

随着养鱼养猫成为日常生活的一部分,那种初遇时的新鲜感也在迅速流失,哆哆的猫砂盆换了一个又一个,啵啵的鱼缸清洗了一次又一次,长期复购的品牌和鱼缸造景也逐渐稳定下来。啵啵会钻进它的洞穴,哆哆会在键盘上打滚……只能趁它睡觉的时候偷偷码字喽,写这篇文章的时候哆哆正在熟睡,嘘!

虽然这些可爱的瞬间仍然能让人会心一笑,但是嘴角上扬的弧度逐渐变小,撸猫喂猫和在鱼缸前发呆已经成了例行公事。有那么几个时刻似乎理解了有钱人的空虚,也许拥有更多,也会觉得寡淡无味吧。当漂亮房子、漂亮老婆、漂亮饭变得唾手可得的日常基线,就会想要更多。但是他们随时可以踏上新的旅途,尝试新的运动,或者发展新的relationship……而打工人不能。

随着不停地画板改板投板调板,越发地对技术的本质——人人都能做但有些人不愿意做的dirty work——产生了疲惫。于是愈发地发现人类工作30年是一种酷刑,这30年间将无数次盼望衰老,错过四季,时间上的不平等分配是人类生产资料不平衡的终极本质。但我也渐渐想明白了自己最需要的一种自由是时间自由。

随着文章更新的频率越来越低,我不得不承认我的曾经引以为傲的精力正在迅速流失,一切的意义正在黯然失色,或者俗不可耐地聚焦到金钱上,然后献给股市和彩票的镰刀,人性的贪嗔痴一个都逃不掉,最终成为一个无聊的大人。

本文发表于鸦鸦的巢穴,感谢您的订阅!如需评论请前往又活半年

  •  

不确定性

昨晚,对象接自己下班的时候。刚上车,还没系好安全带,就听她说:『咱们租的那个车位要没了,那大姐不租了。房子也不租了,自己去住,所以车位也就不再往外出租了。』

这个车位,租用的时间也蛮长了,大概快三年了吧。小区里的车位一直比较紧张,买房的的时候就就已经没车位了。后来,物业在路边又画了几个,但是,没有任何的声响,那些车位又没了。至于怎么分配出去的,并不清楚。也不知道那些人是怎么弄到那些车位的。

马上租的车位没了,两辆车就都没地方停了。之前都是周末对象把车开回去,登记了车牌方便一些。自己也就偶尔中午回家吃个饭开开,其他时间并不会停在小区里。现在小区里已然没有地方能停了,而小区中间的收费车位,虽然费用不贵,一天6块钱,但是回去晚了就没空闲位置了。能不能有地方停完全是运气。

山上公园的停车场,周五可以停进去,但是周末如果开车出去,那就再也进不去了。公园的路边都停满了车,又怎么可能停的进去。

再有停车的地方就剩下区政府的停车场了,然而这停车场的入口走过去得二里地。来来回回周末要想出门叶诚然是异常麻烦。之前每天早上开车送宝子上学,以后可能就只能做公交车,或者走过去了。当然,也不是不行,只是不管那种方式,都得更早出门。只有这样,才不会迟到,毕竟公交车需要提前等,而走过去需要花费更多的时间,不管是哪种方式,都意味着要更早出门。

对象提议把房子租出去,找个有车位的房子租。然而,这种方式能解决眼下问题,解决不了长久问题。租的房子,说不定哪天房东不租了,就需要搬家,来回折腾。这么折腾也定然不是长久之计。

当然,还有另外一个办法,就是把现在的房子卖了,买个有车位的房子。这个解决了长久问题,但是战线又被无限的拉长。不管是那种决定,都充满了不确定性。并且这种不确定性不是自己能左右的,也没有任何的可以遵循的规律。一旦开始了,就是长期。

中午回家吃饭,消灭掉了周末剩下的两篇披萨,还有早上的两个小笼包。拿着手机去刷碗的时候,手机啪的一声掉到了地上。捡起来看了以下虽然屏幕没碎,但是后盖裂了,用手摸上去能明显感觉到一条条的玻璃纹路。总感觉哪天不小心可能会扎自己手上。

从美团搜了下手机壳,发现现在还在卖p30手机壳的商户不多了。随便找了一个,下单,竟然需要凑单。

然而,换了几个不同的店铺之后就更离谱了,需要凑单的金额一个比一个高,竟然需要凑到90。问题是我只需要一个破手机壳啊。

返回第一次看的那个店铺,买了一条肉色的裤袜,算是凑够了。

然而,等外卖到了,才发现tm给发的黑色的。这尼玛就离谱,连裤袜颜色都能看错。

真是tm薛定谔的丝袜。

 

  •  

同事的招聘广告:深圳 20-30k 招聘前端工程师

  代同事发一个招聘广告,具体内容如下:

【深圳】【非远程】【持续招聘中】国产电气工业软件 ecad 招聘前端工程师 20-30k

  • 简历发送:zenghaixia(at)sz-jlc.com (邮件中可注明来自本站)
  • 产品体验:https://jlc-ecad.com/editor
  • 技术栈:React、canvas 2d、webgl、自建 UI 组件库

一、岗位职责:

  1. 负责 ecad 绘图软件的 UI 交互、基础组件搭建、核心 api 的设计;
  2. 负责绘图功能的完善、性能调优、内存泄漏排查;
  3. 设计开发者工具,优化团队的开发者体验,提升项目的稳定性、健壮性。

二、任职要求:

  1. 本科及以上学历,有 React 项目开发经验;
  2. 熟练掌握 React 及其相关生态,如 jotai、zustand、ant design 等;
  3. 精通 HTML5、CSS3,熟悉 ES6 + 语法,能够手写高性能的前端代码;
  4. 了解 Vite 等前端构建工具,能够进行基本的配置与优化;
  5. 具备良好的问题解决能力,能够独立分析和解决前端技术难题;
  6. 具有较强的学习能力和创新精神,能够快速掌握新技术并应用到项目中;
  7. 良好的团队协作精神,能够与不同部门的人员有效沟通与合作;
  8. 有大型前端项目架构设计经验者优先,维护过开源 UI 组件者优先。

  我补充一下:

  • 该团队技术氛围优良,人际关系融洽,同事领导人很nice,是个能够开心工作的地方,关键是钱也给的够,不妨来试试。
  • 职位相关问题可以在本文评论中提问,我也可以代为询问解答。
  •  

开源项目目录📇

部分开源项目源码。

PHP8 探针项目(包含WP插件)

专业的服务器监控和管理工具,提供实时系统监控、性能测试、数据库检测等功能。本项目包含两个版本:独立PHP探针和WordPress插件版本。

 项目结构

php8-probe/
├── phpprobe.php              # 独立PHP探针(可直接访问)
├── php-probe-widget/         # WordPress插件版本
│   ├── php-probe-widget.php  # 主插件文件
│   ├── includes/             # 小组件类
│   ├── css/                  # 前端样式
│   ├── js/                   # 前端脚本
│   └── README.md             # 插件详细文档
├── LICENSE                   # 许可证
└── README.md                 # 本文件

🚀 快速开始

方式一:独立PHP探针

  1. 将 phpprobe.php 上传到您的Web服务器
  2. 通过浏览器访问该文件即可查看服务器信息
  3. 支持实时监控、性能测试、数据库检测等功能

特点:

  • ✅ 无需安装,直接使用
  • ✅ 单文件部署,简单方便
  • ✅ 支持多平台(Linux、Windows、macOS、FreeBSD)
  • ✅ 实时系统监控

方式二:WordPress插件

  1. 将 php-probe-widget 文件夹复制到 wp-content/plugins/ 目录
  2. 在WordPress后台激活”服务器监控探针”插件
  3. 进入 外观 > 小组件 页面
  4. 将”服务器监控探针”小组件拖拽到侧边栏
  5. 配置显示选项和主题设置

https://gitee.com/obaby/php8-probe


结巴分词HTTP服务

基于Flask和jieba的本地HTTP分词服务。

https://gitee.com/obaby/baby-jb-server


WordPress 博客数据分析工具

这是一个用于分析 WordPress 博客数据的 Python 工具,可以通过 WordPress REST API 获取并分析博客的文章和评论数据。

功能特性

  • 📝 统计指定年份发布的文章数量(按月统计)
  • 💬 统计指定年份的评论数量
  • 🏆 分析评论用户的评论数排行
  • 💾 将分析结果保存为 JSON 文件

https://gitee.com/obaby/baby-wp-data-analysis-tool


微信双开脚本 (WeChat Dual Launch Script)

一个用于 macOS 系统的微信双开自动化脚本,通过复制微信应用并修改 Bundle ID 实现真正的微信双开功能。

📋 功能特性

  • ✅ 一键双开 – 自动完成所有设置步骤
  • ✅ 智能检测 – 自动检测已存在的 WeChat2.app
  • ✅ 安全可靠 – 完善的错误处理和权限检查
  • ✅ 彩色输出 – 友好的命令行界面
  • ✅ 进程管理 – 查看和管理微信进程
  • ✅ 自动化设置 – 无需手动执行复杂命令

https://github.com/obaby/baby-wechat


Baby 足迹地图

 

简介:

 

基于百度地图的足迹地图。
启动服务之后,先去后台 地图 key 设置页面,添加百度地图浏览器端 ak!
启动服务之后,先去后台 地图 key 设置页面,添加百度地图浏览器端 ak!
启动服务之后,先去后台 地图 key 设置页面,添加百度地图浏览器端 ak!

为了防止 js 地址解析受限,需要同时添加服务端 ak!
为了防止 js 地址解析受限,需要同时添加服务端 ak!
为了防止 js 地址解析受限,需要同时添加服务端 ak!

添加之后,访问: http://127.0.0.1:10099/api/location/process-my-location/ 地址刷新数据库的地点坐标信息,后续无需再通过 js 接口进行解析!

https://github.com/obaby/BabyFootprintV2


Simple microblogging

Add a microblog to your site; display the microposts in a widget or using a shortcode. 
增强版优化页面显示,增加分页功能。wp微博插件。

 

https://github.com/obaby/Simple-microblogging-wordpress-plugin


Baby WP 评论强化拦截插件

 

一个强大的WordPress评论过滤插件,支持字数限制、中文检测、关键词过滤等功能。

插件信息

 

  • 插件名称: Baby WP 评论强化拦截插件
  • 版本: 1.0.5
  • 作者: obaby
  • 作者网址https://h4ck.org.cn
  • 许可证: GPL v2 or later

功能特性

 

🛡 评论过滤功能

 

  • 字数限制: 设置评论的最少和最多字数
  • 中文检测: 要求评论必须包含中文字符
  • 关键词过滤: 支持自定义关键词和WordPress设置的关键词
  • 正则表达式支持: 支持使用正则表达式进行高级匹配

⚙ 管理功能

 

  • 简单设置界面: 直观的管理后台设置页面
  • 错误消息自定义: 可以自定义各种错误提示消息和标题
  • 统计信息: 记录评论过滤统计信息,支持重置功能
  • WordPress集成: 与WordPress讨论设置完美集成,支持实时预览
  • 设置验证: 完整的输入验证和数据清理机制

🔧 技术特性

 

  • 简单架构: 采用简单的面向对象架构,易于维护
  • 性能优化: 高效的过滤算法,不影响网站性能
  • 兼容性: 支持WordPress 5.0+版本,PHP 7.4+
  • 多语言: 支持多语言环境
  • 数据安全: 完整的输入验证和清理机制
  • 错误处理: 完善的错误处理和日志记录

https://github.com/obaby/baby-wp-comment-filter


WinRAR-Keygen

 

1. What is WinRAR?

 

  • WinRAR is a trialware file archiver utility for Windows, developed by Eugene Roshal of win.rar GmbH.

  • It can create and view archives in RAR or ZIP file formats and unpack numerous archive file formats.

  • WinRAR is not a free software. If you want to use it, you should pay to RARLAB and then you will get a license file named "rarreg.key".

  • This repository will tell you how WinRAR license file "rarreg.key" is generated.

2. How is “rarreg.key” generated?

 

  • WinRAR uses a signature algorithm, which is a variant of Chinese SM2 digital signature algorithm, to process the user’s name and the license type he/she got. Save the result to “rarreg.key” and add some header info, then a license file is generated.

https://github.com/obaby/winrar-keygen


Baby Device Manager

 

一个功能强大的WordPress设备管理系统插件,支持设备分组管理、设备信息管理、自定义排序、状态跟踪等功能。

功能特点

 

  • 设备分组管理
    • 创建和管理设备分组
    • 自定义分组排序
    • 分组描述信息
  • 设备管理
    • 添加/编辑/删除设备
    • 设备状态管理(在售、停售、已售出、维修中、已报废)
    • 设备图片和产品链接
    • 自定义设备排序
    • 设备描述信息
  • 前端展示
    • 响应式布局
    • 按分组分类显示
    • 支持多种排序方式
    • 美观的界面设计
    • 支持自定义每行显示设备数量(1-6个)
  • 其他功能
    • 图片管理:支持设备图片上传和显示
    • 产品链接:支持添加产品详情页链接
    • 状态跟踪:支持多种设备状态管理
    • 自定义排序:支持设备分组和设备的自定义排序

https://github.com/obaby/Baby-Device-Manager


RSS Beauty

 

为 WordPress RSS Feed 提供美观的网页展示样式(基于 RSS.Beauty 的 Pink 主题)。

项目功能

 

  • RSS 样式化:在 Feed 中注入 XSL 样式表,浏览器打开 feed 地址时以 HTML 页面形式展示,而非原始 XML。
  • Feed Content-Type:将 feed 的 Content-Type 设为 application/xml,使浏览器按 XML 解析并应用 xml-stylesheet
  • XSL 地址:样式表使用插件目录下的静态文件 pink.xsl。需在 OpenResty/Nginx 中为 .xsl 配置正确的 Content-Type(见下方配置说明),否则浏览器可能不按 XSL 解析。
  • 主题:内置淡粉色(light pink)页面背景与适配的文字颜色。

https://cnb.cool/oba.by/rss-beauty


WP-UserAgent

 

Contributors: obaby
Donate Link: https://oba.by
Tags: useragent, user-agent, user agent, web, browser, web browser, operating system, platform, os, mac, apple, windows, win, linux, phone
Requires at least: 2.0
Tested up to: 6.3
Stable tag: 16.06.99

IP 查询方式(归属地)

 

插件支持四种 IP 查询方式,可在 设置 → WP-UserAgent 中选择:

方式 说明
IP2Location 使用 IP2Location 数据库(需将 BIN 文件放入 show-useragent/ip2location_db/db/),依赖 Composer
CZDB 使用纯真 CZDB 数据库(需授权与 db 文件放入 show-useragent/czdb/db/),依赖 Composer
ip2region 使用 ip2region xdb(仅内置 ip2reginapi,不依赖 Composer)。需将 xdb 文件放入 show-useragent/ip2region_db/,文件名:ip2region_v4.xdbip2region_v6.xdb
纯真QQWRY 使用 qqwry_api(qqwry.dat + ipv6wry.db),无需 Composer。数据文件放入 show-useragent/qqwry_api/ipdata/

选择 ip2region 或 纯真QQWRY 时不会加载 vendor/autoload.php。若选择 IP2Location 或 CZDB 时 vendor 加载失败,插件会自动回退为 ip2region 模式,避免站点白屏。

Description

 

WP-UserAgent is a simple plugin that allows you to display details about a computer’s operating system or web browser that your visitors comment from.

It uses the comment->agent property to access the User-Agent string. Through a series of regular expressions, this plugin is able to detect the operating system and browser which can be integrated in comments or placed in custom places through your template(s).

I’m adding new web browsers and operating systems frequently, as well as updating and optimizing the source code. Your feedback is very important, new features have been added by request, so if there’s something you would like to see in WP-UserAgentleave a comment, and I’ll see what I can do.

WP-UserAgent was written with Geany – http://www.geany.org/
Images created with The Gimp – http://www.gimp.org/

注意:

  • 使用 CZDB 时:若更新替换纯真数据库,请同步更新 show-useragent/ip2c-text.php 中的 $key = 'n2pf2+PrE1y9I55MjdpLpg==';
  • 使用 ip2region 时:将 xdb 文件放入 show-useragent/ip2region_db/ip2region_v4.xdbip2region_v6.xdb),无需 Composer。

https://cnb.cool/oba.by/wp-useragent

 

 

  •  

修理修理几个手机

 距离上次更新已经一个月了,好像还没有间隔这么长时间断更过。主要还是今年春节放假时间太长了,前后将近放假一个月了。在家的时候基本上就跟家人在一起很少看手机,也就没有动力来更新博客了。
 本来公司通知的是3月10号上班,我本来最开始抢的是3月4号的票,后来了解了一下,挺多同事都是10号才过来,我又改了个票,从4号改到了8号,上周末才过来,新的一年的第一周已经过去,5天一过,又是一周。一天一天上班过的感觉比在家过的还快,还有一个半月,五一假期又能回家了。
 我之前用的有一个小米11的手机,一直做备用机。过年回家拿回家了,给我奶奶用了,把她原来的vivo Z1换了下来,原来那个手机太卡了。她日常用来微信视频通话和刷抖音,换下来的vivo Z1我就拿回来了,不安装任何APP,专门用来开热点使用。
 回去之前又购入了一台iPhone17,回家给我媳妇儿的新年礼物。然后我媳妇儿这边又退休下来一个iPhone13 Pro,我也拿回来了,专门收破烂,哈哈,之前她就就一直吐槽,他的iPhone13 Pro不存电,这次我拿回来直接在网上买了个电池,好像是有一个活动吧,然后100多拿下,日常是210左右,这带的还有安装服务,只贵了10块钱,周二的时候快递一到就去附近店里让人家给换上了,直接满血复活,续航杠杠的,备用机+1。

 再一个就是我的主用机小米14,用了有两年半了,日常工作用手机还是挺多的,算是重度使用,现在基本上就是需要一天三充。干脆也换个电池得了,然后就单独买了一块电池,回来自己换,实际操作下来倒也不难,只不过可能是第一次没经验,没把握好尺度,有一个角还没有完全撬开,抬了一下后盖,直接给后盖玻璃干碎了。。。又紧急在闲鱼淘一个小米14的原装拆机后壳,晚一会应该快递就到了,再给它换上,这样密封性良好,防水好一点吧。


 这个电池说是小米15移植到小米14和小米13使用的,比原装电池容量大,用了两天确实续航提升不少,又能再战三年,等着换小米20。

  •  

她不爱他

或许,如果不是那场矛盾,从来都不曾那么深入的了解一个人的内心。也不曾知道在他的内心里怎么看待他的母亲,更不曾知道那种无所谓到底是因为什么。

他以前对于那种父爱或者母爱并没有太多的感觉,只是在一个平平无奇的农村的家庭生活,活着,长大,离开。离开之后他竟然不是那么想回去了,有时候一些莫名其妙的对比总是让人心绪不宁,情绪低落。

在漫长的冷暴力之后,终于在某一天,背对着他的时候他用手指从背后轻轻戳了自己一下。转过身,看着他表情依然凝重,感觉还是那么的沉默。终于过了良久,他开口说:“我最近情绪不是很好,感觉有点被忽略了”

在那一刻终于那块冰开始融化,两个人又聊到之前的种种过往。那种被忽略的人生,那种被贴了无数的标签的前半生,以及父母那种所谓的都是为了你的那种付出,为了让你产生愧疚感拼命去pua你的那种种的行为和话语。

“有时候,我觉得挺不公平的,对你来说。我内心也挺生气的”我说,“去年你妈过生日的时候,去了那么多人,二十几号人,你看她那个表情,全程耷拉着脸。咱们一家人下着大雪,跑那么远去给她过生日,她连个好脸色都没有。关键是那天也花了不少钱吧,路费加上乱七八糟的礼品,吃饭什么的得一千多吧。”

“不止,差不多两千吧。”他转过头不再看我,“我已经不在乎了,其实,我回去,只是为了回去。以前的时候总是觉得想在家多待一会儿,后来,我的心态变了”

“为什么?我有时候,都觉得她没资格让大家对她那么好。”

“从宝子出生的那一天开始吧,那时候,我脚骨折还没好。孩子出生了,她和姐姐来看咱们。不是没资格,是不配,真的不配大家对她那么好。”

“我记得,当时宝子从产房抱出来,她在外面等着,看了一眼发现是个闺女就走了。我那时候还晕乎乎的,麻药的劲还没过去。我觉得她不关心我们俩无所谓,但是她最起码该关心你啊。你那个样子,一只脚在医院里蹦来蹦去。”

“我当然记得,从她看了一眼走了之后,我的心就开始冷了,为了带她们去吃饭,我一只脚蹦着带她们去二楼的餐厅,还得给她们打饭。”他顿了一下,接着说“吃完饭,就开始要求往家走。你知道那时我的心情吗?那时候是真的死心了。我一只脚蹦着带她们回家,看她们收拾好东西,然后给她们打车送她们离开。我再一只脚蹦着去厨房给你准备吃的。我从来没想过她会这么冷漠,以前结婚的时候,为了办婚礼,我说断绝关系,那不过是吓唬她。而这件事情之后,她就彻底死在了我的心里了。有时候你老嫌弃我不给她钱,其实我就是不想给她。当然也不能让她没得花。”

“我也不给我爸妈钱,给了她们就作。”我附和。

“孩子从出生到现在,她一共就看了一个月。剩下的都是你爸妈给看大的,虽然有时候她们说话也挺难听的,但是我知道那是真的对孩子好。所以我也不介意,只是我妈这个态度,来看了一个月孩子。一周之后就开始嚷嚷着要回家。从此,我内心没了任何的感情。很多时候这种场合,我只是为了出现,至于她什么表情或者什么心情,我内心已经没了任何的波澜。甚至,很多的事情我都不再关心了。她说什么,或者做什么都不再重要了。等哪天不在了,我甚至内心都说不上痛苦。”

凌晨三点的夜,格外的宁静,窗外公路上甚至连车辆都没有了。

“以前,我觉得她不在乎我,其实,她从来不在乎任何人”

是啊,她不爱他。

  •  

二十七年前的家书,信封里的慢时光

  前阵子在家过年的时候,跟老弟打扫屋子整理旧物,找到几封积灰的家书,是我和老弟老妹在大学期间给家里写的信。其中我写的有五六封,信封积灰破旧泛黄,把信纸抽出来时,里面的信纸仍然完好,字迹也清晰。这些信能保存到今天,其实并不容易,这得益于我爸的精心保存。现在的房子是十几年前建的,更早的老房子彻底拆除了,搬家的时候这些东西没有弄丢。农村的简陋房子里,没有书柜,没有专门的收藏空间,只是在衣柜的其中一个格子里,存放着这些书信和几本旧书。

家书

  身为家在农村的80后,上大学的时候,家里没有电话、没有网络,手机也还没普及,和家里的联系就靠写信。一封信从寄出到被收到,往往要半个月,镇里的邮递员隔几天才去一次村里,从村里到家里又还要耽搁几天,比城市到城市的通信要多花一倍的时间。但也不常写,一年一两封的样子。

  回头想想,那些信写得都很认真。因为知道下一次联系要很久之后,尽量多写一点:宿舍的生活、食堂的饭菜、天气冷不冷、见到了什么朋友等等,很多在今天看来微不足道的小事,当时却像是必须郑重记录下来一样。

家书

  那些名人的家书,具有历史价值或文学价值,可以出书或在博物馆展出。我们普通人的家信,只对亲历的当事人是珍贵的,更像是时间留下的一点私人痕迹,但这些痕迹其实非常脆弱。随着年岁流逝,随着搬家装修或其它意外,可能会慢慢损毁丢失,等到某一天想起时,甚至都说不清是在哪一年、哪一次搬家时消失的。我也曾经经历过租住的房子的发生消防事故而损失一些珍贵信件的事情。

  书信应该是七零后和早期八零后的共同记忆吧,八五后们上大学可能已经开始普及电话和手机了。我刚上大一的时候,整栋宿舍楼只有一部拨号电话,就放在楼管门外,印象中是有人打电话来了,楼管大叔就会扯开嗓门喊“六零四~,六零四~,张某某,电话~”,楼上的学生回喊“来啦~”然后下楼去接电话。后来每两层楼有一部公用的IP电话,主要用于拨出。还有少数学生用上了“高科技”的BP机。好像是到大三的时候,宿舍里已经装上了固定电话,并且可以拨号上网。大学毕业后我用上了手机,西门子的功能机。短短四五年,从邮局寄信,到打电话、传呼机、固定电话,到手机,进步之快,给了我这个农村人极大的震撼。

  电话打完,很快就记不起我们说过什么了,而书信,让我们三十年五十年后,还能看到当时每一个字说了什么,这种感觉很神奇,很独特。

  听闻过人民大学的家书博物馆,他们会征集展出民间家书,进行完善的保管和电子化,我觉得这是一件很有意义的事情。我倒是希望我的母校厦大也能学习一下这个做法,比如向校友征集他们在校生活期间的书信、明信片、日记、老照片等,可以展出和出版,让现在和以后的人们对当年的厦大生活多一个角度的观察。

  我自己的信件,最有可能在将来某个时候全部公开在网站上,不为别的,只为人间到此一游的标记。

  •  

老机伏枥,志在千里

  2021年买的老米11,不知不觉已经服役快满5年了。平时没有玩大型游戏的需求,一般app都能正常用,偶尔卡顿也还算能忍。就是电池老化很厉害,不满电都不敢出门,满电持续使用两个小时就没了,所以出门远一点就用超级省电模式将就将就,毕竟出门在外也就地图和微信是刚需。我是真能将就啊,不得不佩服我自己,其实就是懒。

  年前,考虑到要回老家,老家天气冷,电池肯定更加不经用,是时候解决一下这个问题了。于是在国民购物app花了80多了买一块电池,商家提供了一堆零零碎碎的小工具,我也看了一遍拆机换电池的视频教程,毅然决定去维修店,我这山猪干不了细活。维修店帮我换了电池,也把松脱的摄像头模组重新上胶水粘了粘。修完给用橡皮筋五花大绑了起来,我就在这橡皮筋的缝隙内使用了两小时的手机。

老米11

  老机伏枥,志在千里。从深圳到老家来回,这台老米,物理意义上跨越数千里为我服务了,我给它一个表扬不为过。

  新换的电池还是挺给力的,老家的天气里没有扯后腿,也没有充电焦虑了,电量告警也从20%改为5%了。这台5年老机,还得再为我发光发热若干时日。至于为啥不换新机,可以说我是一个恋旧的人,真实原因可能是手机上的数据转移有些小麻烦,尤其是大量的小游戏app和我的游戏进度记录。还有谜一样的微信聊天记录,迁移之后往往一些图片或文件莫名丢失。虽然这些似乎也没那么重要。

  人性处处充满惯性,依赖惯性,无论是对手机的使用,还是人与人的相处,或是思维的模式。根深蒂固的惯性,也许是舒适区,也可能是捆住手脚的绳索。

  •  

原则

青科大门口有两个保安,一个是男人,另外一个也是男人。

然而,这两个男人在当门卫这件事情上,行事风格却迥然不同。一个年纪稍微大点的,相对来说比较随和,一般停车给看下访客邀约的记录就可以了。然而,另外一个年轻小胖,在这件事情上异常较真,哪怕给看了访客申请记录还是会追着问半天,去哪里,找个老实等等。哪怕已经见过无数次了还是乐此不疲。

最近大学开学,学校的预约系统无法使用了,每次预约都提示预约已满。那就只剩下一条路,下车登记。周六的时候,门口是年纪稍微大点的保安,说了以下也就进去了。

年后为了巩固宝子练球的效果,已经连续加了好几次课。当然效果也是有的,能看到比较大的长进了。不过回忆之前雪球的历史,仍然让人愤恨,对象一直让着要去原来学🎾的地方,找教练对峙异常,要回点钱来。然而,这东西有怎么评判是教练教的不好?他也完全可以说是宝子太笨了。

目前在这个新教练这里已经交过两次钱了,又花了6000块钱,才把之前这2万块钱学的错误的动作给纠正过来。周六宝子的钢琴课老师有个测评,钢琴课挪到了周日上午十一点多。下课的时候,网球教练问周日能不能继续加课,刚开始也说十一点,后来才想起来十一点有课。一通算计下来,总算是在十二点半到一点半挤出来了一个小时。

不过,这课间时间稍微短了点。十二点零五下课,需要在十五分钟内干到学校,并且在上课之前带宝子围着球场跑完两圈。

桥底等红绿灯的时候,因为红灯时间稍微长了点,又不想非常用力的踩刹车就挂到了空挡上。然而,等起步的时候,一脚油门下去,车没动。转速上去之后,下降的有点慢。想拉到d档,以为拉进去了,又点了下油门发现根本没挂进去。唉,好尴尬啊。不过后面的保时捷竟然没催。等转速下降的功夫,先打开运动模式吧,实在是丢人。终于转速掉下来之后,赶紧拉到d档,一脚油门窜了。此时再看后视镜,返现后面的保时捷已经准备变道了。

有时候一辆车开习惯了,偶尔换一下真的不适应。粉皮的auto hold感觉比大白的auto hold要安静很多,所以开大白的时候不习惯开auto hold,于是有时候红绿灯太长了就切空挡。不过有时候容易忘了在空挡,总想踩油门直接就走了,直到踩下去车没动才发现,哦吼,不在d档。

赶到学校的时候,时间刚刚好。然而,在进门的时候,遇到小胖了。登记之后,非得让给老师打电话。

好不容易打通了,小胖结果电话,开始沟通,问老师的工号。这当时我也有点震惊,这都登记了,至于跟查户口似的?

门口没车的情况下,一个破登记登记了十几分钟。等进校门到网球场已经12点55了。

开门下车,正好老师也刚到,下车第一句话,就是『你别介意,进来了就行了』

『没事,你先去跑步吧』我跟宝子说。

『那哥们问我工号,当时我就怒了。这跟查户口似的』老师说『都跟他说了还不行,还追着一通问,如果不是你在哪等着,我真想骂他一顿』

『没事,有的人就这么较真』我说。

聊了会儿,宝子也跑完了。宝子学网球,按理说应该没我啥事,然而,实际上,在教练给宝子纠正动作的时候,我还得给宝子抛球。此时,教练就在宝子边上的特定位置,观察宝子的动作,距离,步伐等等一些列的动作是否到位。

这一节课下来,终于能开始隔网打回和了。为了能达到这个程度,所有的人都付出了代价,宝子付出了20节课的体力,我多花了20节课的钱。如果当初找个好教练,这一切都可以避免的。之前的教练,来回的带着做差不多的事情,教差不多的动作,一切都毫无意义,此时需要一个人有原则的时候,原则这个东西反而没了。

下课开车带宝子回家,到门口缴停车费的时候,那个小程序又进入了死循环,开始不断的跳转,跳到最后就是一个支付失败的页面,在这之前,我连支付的账单金额和支付流程都没看到。终于在扫了数次码之后,终于出来了金额。

这坡系统,我交着停车费,正常登记了。不但不能自动放行,还得一通盘查,真是特娘的智障。

  •  

浅谈对人工智能的未来畅想

感谢订阅陶其的个人博客!

没座!这又是一篇关于人工智能的闲扯淡。

不是我只想写人工智能,是最新这玩意儿被炒的话题度太高了,高到仿佛要 毁灭 拯救世界了一样。

最近又有一个很有意思的东西出现了:OpenClaw

无论是程序员还是互联网科技公司、无论是否从事编程工作都要搞OpenClaw。

因为这个东西的Logo是一个小龙虾,所以使用OpenClaw被称为“养龙虾”,使用人被称为“养虾人”。

这东西有什么用呢?

用通俗易懂的话来说。

之前无论是豆包、还是DeepSeek、亦或者Gemini,都是对话式的大模型,即便是即梦AI这种的全模态模型,也只是一个能输入产出更多格式的大模型。它们更多能做的就是完成你的单一指令,并给你提供方案。因为他们无法操作浏览器之外的“世界”。

我在这里为不太了解的同学用大白话科普一些概念:

  • AI Agent(AI智能体): 是整合了大脑(思考核心)、记忆、规划、(内置)技能的完整智能实体,是完成任务的核心载体;
  • AI MCP(AI世界的USB口): 是 AI 连接外部世界的通用接口标准,是所有能力互通的基础;
    • 比如:飞书云文档开发并开放了MCP,那么你的AI大模型就可通过配置好的飞书MCP去操控你的飞书账号里的文档等等,就像是你在你的电脑上插上一个U盘,电脑可以对U盘内的文件进行读写一样。
  • AI Skills(AI技能): 是基于标准封装的原子能力,是 AI 能落地做事的具体本领,赋予AI在某个领域的专业技能。
    • 比如:你把从各种销售合同单汇总数据,然后使用某些公式换算统计成最终可用于汇报的统计报表,并输出成PPT的一系列操作步骤封装成一个Skills。然后告诉AI,让AI给你一份统计报表,AI就会调用这个Skills,并按照步骤一步一步执行。当然Shills的用处远远不止这么固定。

那么OpenClaw又是什么呢?

OpenClaw 是把前三者打包好的、开箱即用的 Agent 运行平台,让普通用户也能快速用上 AI Agent 的能力。

一句话讲:你可以用 OpenClaw 这个平台, 搭建专属 AI Agent,这个 Agent 通过 MCP 通用标准,调用各类 Skills 技能包,帮你完成复杂的真实世界任务。

那这么看来,OpenClaw真的是个很🐂🍺的东西呢,甚至有些人表示这个“龙虾”完全可以成为自己的“数字分身”。

很多人通过它完成了自己因为没有掌握对应技能而能完成的事情。

  • 比如:6年纪小朋友通过对话,让这只“龙虾”在短时间内完成了一个具有完善功能和UI的“番茄钟”软件的开发;
  • 又比如:有律师把案件的资料交给“龙虾”,让龙虾查阅对应的法律条文并分析过往类似公开案例,分析这个案子怎么打、往哪个方向打,胜率最高、利益最大化,然后让给出全套文稿。

看起来,这只“龙虾”确实能做不少事情,甚至能一定程度的替代人类完成部分工作。

但是我们不能只看表面,不看本质。

使用 OpenClaw 的代价是什么?

外行人可能会认为,付点电费的事情。

不不不,远不止这些。

首先,是部署。

人们为了方便使用这只“龙虾”,更多的希望在本地部署这只“龙虾”,这样才能操控本地的文件或者什么的。

那么就需要一个载体。

目前人们选择更多的是:苹果的 mac mini。

为什么不用已有的电脑?

这就牵扯出使用OpenClaw的第一个问题:安全与隐私

你的个人电脑或者工作电脑,或多或少已经存了一些相对重要的或者隐私的文件。

如果把 OpenClaw 部署在这种电脑里,OpenClaw 为了操控你的电脑和文件,你必然要开放对应的权限。

那么你电脑里的那些文件就很有可能被它读取或者改动,甚至删除。

这个风险是存在的,所以很多人都会在全新的电脑里部署 OpenClaw。

但同时,你如果想要这只龙虾能操控你的账号里的东西,必然需要给它账号密码,那么这依旧是有风险的。

比如,有一个老哥,把自己钱包的账号交给了自己的 OpenClaw,结果被盗刷了或者被OpenClaw支付了他没有想支付的东西,等他发现时,信用卡都刷爆了。

而第二个问题。

这只龙虾是如何思考的呢?

我们前面一直没有提到,这只龙虾是如何思考的。

目前主流的方案还是接入市面上的AI Agent提供商的API。比如:阿里的Qwen、DeepSeek、豆包或者国外的GPT、Gemini等。

那么这又会带来另一个问题,调用大模型的费用问题,即Token的消耗

Token,你可以理解为你调用AI提供商提供的大模型时所付的费用。

可以这么粗浅的理解:

  • 一个英文单词 ≈ 2-3个Token;
  • 一个中文汉字 ≈ 1-2个Token。

而无论是你发出去的提示语,还是AI的思考过程、思维链、过往的上下文,还是最终的输出,都要消耗Token。

像GPT或者DeepSeek这种对话式大语言模型,一次回答大约消耗几百到小几千不等。

而 OpenClaw 这种综合体,为了更好的理解你,它会把很多很多的历史沟通记录和上下文带入调用大模型。

所以 OpenClaw 可以说非常非常烧Token。

有人说,OpenClaw 的一次对话动辄几万个Token,甚至有时一个回答会烧几十万的Token。

虽然各家对Token的定价不同,但是基本上一次对话几块钱,甚至十几块钱是没跑的。

那么,如此烧钱的 OpenClaw,如果只用来完成一些简单的demo或者日常简单任务的处理,那么花费可能是普通人受不了的。

如果用来工作呢?那必然需要反复的调试、训练、纠正,光这笔费用,就不比直接聘用员工的花费低。

所以,目前想让 OpenClaw 充当生产力,暂时还做不到,但是以后不保准。

但是 OpenClaw 的出现,就像是 钢铁侠的贾维斯 一样,至少给AI的发展带来了一个方向。


所以,由此我不由对未来的人工智能发展产生联想。

未来的人工智能,且不论那种大型的智脑。

我想必然会有如下的一种发展方向。

你的电脑或者电脑旁边会有一台专门用于AI跑的机器,这个机器不能联网,或即使可以联网,但是也只能访问互联网数据,不能上传本地数据。

然后人工智能的核心思考全部都在这台机器里,不需要消耗线上大模型的Token。

真正做到使用AI的代价只是设备、网络和电费。

而且这个设备可能因为批量生产而价格降到电脑相同的价格。

我感觉只有这样,普通人才能真正的使用的起AI为自己的助手。

到时候,估计个人能拥有消费级的AI;企业能拥有企业级的AI;甚至大型企业或者先进的城市估计可能会出现成熟的大型智脑。

那个时候才真是未来已来。

但如果那时候个人想使用大模型,还只能给这些大模型提供商缴纳Token“税”,那估计普通人将永无翻身之日。

喜欢浅谈对人工智能的未来畅想这篇文章吗?您可以点击浏览我的博客主页 发现更多技术分享与生活趣事。

  •  

Git命令汇总

前言

单纯的对一些经常用的 git 命令进行总结,方便以后查询使用,没啥营养

1. 基础

git add          # 提交到 暂存区
git commit -m "commnet"    # 提交到 版本库
git branch -M main # 重新命名分支
git remote add origin # 添加远程仓库
git pull origin master # 从名为 origin 的远程仓库的 master 分支拉取最新的提交,并将其合并到当前分支
git push origin main   # 将本地仓库的文件push到远程仓库(若 push 不成功,可加 -f 进行强推操作)
git diff read.txt # 查看文件变化

2. 版本回退

git reset --hard HEAD^ # 恢复到上一个版本
git reset --hard HEAD~10 # 恢复到网上10个版本
git reset --hard commitID # 恢复到指定commit版本

3. 撤销修改

git restore  # 工作区
git restore --staged  # 暂存区,工作区需要执行上一步 add
git reset --hard HEAD^ # 工作区、暂存区、本地仓库都回退 commit

4. 删除文件

rm file
git add file
git commit -m ""

5. 分支操作

git branch test # 创建分支 test
git branch # 查看当前分支
git switch -c test # 创建test分支,然后切换到test分支 git branch test git checkout test
git switch master # 切换
git merge test # 合并指定分支到当前分支
git merge --no-ff -m "no-ff" test # 禁用快进(fast-forward)合并,强制创建一个新的合并提交
git branch -d test # 删除分支
git branch -D test # 强制删除
git log --graph # 查看分支合并图

6. 保存和恢复

git stash save "Your stash message" # 保存工作进度
git stash list # 查看 stash 列表
git stash apply [] # 应用
git stash drop [] # 删除
git stash pop [] # 应用并删除
git cherry-pick # 将一个或多个提交从一个分支应用到另一个分支

7. 多人协作

git remote -v # 查看远程库的信息
git switch -c dev origin/dev # 本地创建一个新分支 dev,并将其设置为跟踪远程仓origin/dev 分支
git branch -u origin/dev dev # 本地分支 dev 设置为跟踪远程仓库的 origin/dev 分支
git push origin master   # 将本地仓库文件push到远程(若push不成功,可加-f进行强推)
git pull origin master # 从远程仓库origin的master分支拉取最新提交,并将其合并到当前分支
git rebase # 把本地未push的分叉提交历史整理成直线

8. 标签

标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。
git tag v1.0 # 打一个新标签V1.0,默认是打在最新提交的commit上
git log --pretty=oneline --abbrev-commit # 每一行包含了一个提交的简略哈希和提交信息
git tag v0.9 f52c633 # 在特点commit上打标签
git tag -a v0.1 -m "v0.1 released" 1094adb # 创建带有说明的标签,用-a指定标签名,-m指定说明文字
git tag # 查看所有标签
git show v0.9 # 查看标签信息,标签不是按时间顺序列出,而是按字母排序
git tag -d v0.1 # 删除标签
git push origin v1.0 # 推送标签到远程
git push origin --tags # 一次性推送全部尚未推送到远程的本地标签
git push origin -d tag tagName # 删除一个远程标签
git ls-remote --tags origin # 查看删除远程tags执行效果
  •  

讯飞免费星火大模型部署教程

前言

发现两个多月没写文章了,不过考试月也没啥好写的。

最近大模型这么火,正好有个项目用到,于是便水一篇教程吧。

此篇教程为 科大讯飞的星火大模型 部署教程,部署完成后即可与智能助手进行聊天。

这里是关于部署到服务器端,如果有其他需求可以查看官方文档。

大模型简介

大语言模型 (英语:large language model,LLM) 是一种语言模型,由具有许多参数(通常数十亿个权重或更多)的人工神经网络组成,使用自监督学习半监督学习对大量未标记文本进行训练[[1]](https://zh.wikipedia.org/wiki/大型语言模型#cite\_note-1)。

大型语言模型在2018年左右出现,并在各种任务中表现出色[[2]](https://zh.wikipedia.org/wiki/大型语言模型#cite\_note-Manning-2022-2)。

尽管这个术语没有正式的定义,但它通常指的是参数数量在数十亿或更多数量级的深度学习模型[[3]](https://zh.wikipedia.org/wiki/大型语言模型#cite\_note-extracting-3)。

大型语言模型是通用的模型,在广泛的任务中表现出色,而不是针对一项特定任务(例如情感分析、命名实体识别或数学推理)进行训练[[2]](https://zh.wikipedia.org/wiki/大型语言模型#cite\_note-Manning-2022-2)。

尽管在预测句子中的下一个单词等简单任务上接受过训练,但发现具有足够训练和参数计数的神经语言模型可以捕获人类语言的大部分句法和语义。

此外大型语言模型展示了相当多的关于世界的常识,并且能够在训练期间“记住”大量事实[[2]](https://zh.wikipedia.org/wiki/大型语言模型#cite\_note-Manning-2022-2)。
参考资料:llm - 搜索 (wikipedia.org)

部署

API领取

首先前往科大讯飞的星火大模型官网 讯飞星火认知大模型-AI大语言模型-星火大模型-科大讯飞 (xfyun.cn)
进行注册,然后领取大模型的API

这里选择 API免费试用 ,然后进入如下页面

选择第一个 个人免费包免费试用 。等到领取成功后,后台会有如下界面

这里的 APPIDAPISecretAPIKey 就是接口信息,后面会用到。

Linux SDK 下载

进入上面页面后,点击 Linux SDK 右边的下载按钮。将会下载SDK包,感兴趣的也可以点击文档查看使用教程
下载完成后传到服务器,使用解压命令解压包

unzip Spark3.0\_Linux\_SDK\_v1.1.zip

然后进入解压出来的包 Spark3.0\_Linux\_SDK\_v1.1 , 里面应该包含如下文件

root@echofree:/opt# cd Spark3.0\_Linux\_SDK\_v1.1/
root@echofree:/opt/Spark3.0\_Linux\_SDK\_v1.1# ls
build include lib src

动态库配置

进入 lib 目录,里面会有一个相关的调用库

root@echofree:/opt/Spark3.0\_Linux\_SDK\_v1.1# cd lib/
root@echofree:/opt/Spark3.0\_Linux\_SDK\_v1.1/lib# ls
libSparkChain.so

这里为了方便点,直接采用暴力方法,将库文件 libSparkChain.so 复制到 /usr/lib

cp libSparkChain.so /usr/lib

API接口配置

进入 src 目录,会有一个 demo.cpp 文件,进入此文件,修改如下信息

int initSDK()
{
// 全局初始化
SparkChainConfig \*config = SparkChainConfig::builder();
config->appID("appID") // 你的appid
->apiKey("apiKey") // 你的apikey
->apiSecret("apiSecret"); // 你的apisecret
// ->logLevel(0)
// ->logPath("./aikit.log");
int ret = SparkChain::init(config);
printf(RED "\ninit SparkChain result:%d" RESET,ret);
return ret;
}

将这里的 三个API配置信息改为自己的即可。

demo测试

配置完成后就要测试连接了,使用 GNU 编译套件进行编译,命令如下

g++ -Iinclude src/demo.cpp -o demo -lSparkChain -lstdc++ -lpthread

如果你会 Makefile 的话,也可以复制下面的进行编译

CC = g++
CFLAGS = -Iinclude
LIBS = -lSparkChain -lstdc++ -lpthread
SRC = src/server.cpp
OUTPUT = demo
all: $(OUTPUT)
$(OUTPUT): $(SRC)
$(CC) $(CFLAGS) -o $@ $^ $(LIBS)
clean:
rm -f $(OUTPUT)

如果一切正常,文件夹下会生成一个可执行文件 demo

root@echofree:/opt/Spark3.0\_Linux\_SDK\_v1.1# ls
build demo files include lib src

运行看看

root@echofree:/opt/Spark3.0\_Linux\_SDK\_v1.1# ./demo
######### llm Demo #########
init SparkChain result:0
######### 同步调用 #########
syncOutput: assistant:Hello
syncOutput: assistant:こんにちは
######### 异步调用 #########
0:assistant:Hello:myContext
2:assistant::myContext
tokens:1 + 5 = 6
0:assistant:こ:myContext
1:assistant:んに:myContext
1:assistant:ちは (:myContext
1:assistant:Konnichi:myContext
2:assistant:wa):myContext
tokens:12 + 10 = 22

很好,配置完成!

加点互动

下面就要给他加互动功能了,毕竟大模型不能进行交互聊天,那还要他做什么
修改 demo.cpp 文件,内容如下

记得修改下 API信息哦
#include "../include/sparkchain.h"
#include
#include
#include
#include
#include
#define GREEN "\033[32m"
#define YELLOW "\033[33m"
#define RED "\033[31m"
#define RESET "\033[0m"
using namespace SparkChain;
using namespace std;
// async status tag
static atomic\_bool finish(false);
// result cache
string final\_result = "";
class SparkCallbacks : public LLMCallbacks
{
void onLLMResult(LLMResult \*result, void \*usrContext)
{
int status = result->getStatus();
printf(GREEN "%d:%s:%s:%s \n" RESET, status, result->getRole(), result->getContent(), usrContext);
final\_result += string(result->getContent());
if (status == 2)
{
printf(GREEN "tokens:%d + %d = %d\n" RESET, result->getCompletionTokens(), result->getPromptTokens(), result->getTotalTokens());
finish = true;
}
}
void onLLMEvent(LLMEvent \*event, void \*usrContext)
{
printf(YELLOW "onLLMEventCB\n eventID:%d eventMsg:%s\n" RESET, event->getEventID(), event->getEventMsg());
}
void onLLMError(LLMError \*error, void \*usrContext)
{
printf(RED "onLLMErrorCB\n errCode:%d errMsg:%s \n" RESET, error->getErrCode(), error->getErrMsg());
finish = true;
}
};
int initSDK()
{
// 全局初始化
SparkChainConfig \*config = SparkChainConfig::builder();
config->appID("appID") // 你的appid
->apiKey("apiKey") // 你的apikey
->apiSecret("apiSecret"); // 你的apisecret
// ->logLevel(0)
// ->logPath("./aikit.log");
int ret = SparkChain::init(config);
printf(RED "\ninit SparkChain result:%d" RESET,ret);
return ret;
}
void syncLLMTest()
{
cout << "\n######### 同步调用 #########" << endl;
// 配置大模型参数
LLMConfig \*llmConfig = LLMConfig::builder();
llmConfig->domain("generalv3");
llmConfig->url("ws(s)://spark-api.xf-yun.com/v3.1/chat");
Memory\* window\_memory = Memory::WindowMemory(5);
LLM \*syncllm = LLM::create(llmConfig, window\_memory);
// Memory\* token\_memory = Memory::TokenMemory(500);
// LLM \*syncllm = LLM::create(llmConfig,token\_memory);
int i = 0;
//const char\* input = "";
while (1)
{
char input[256]; // 定义一个足够大的字符数组来接收用户输入
printf("请输入问题 (输入 'q' 退出):");
scanf("%s", input);
if (strcmp(input, "q") == 0) {
break; // 如果输入是 'q',则退出循环
}
// 同步请求
LLMSyncOutput \*result = syncllm->run(input);
if (result->getErrCode() != 0)
{
printf(RED "\nsyncOutput: %d:%s\n\n" RESET, result->getErrCode(), result->getErrMsg());
continue;
}
else
{
printf(GREEN "\nsyncOutput: %s:%s\n" RESET, result->getRole(), result->getContent());
}
}
// 垃圾回收
if (syncllm != nullptr)
{
LLM::destroy(syncllm);
}
}
void uninitSDK()
{
// 全局逆初始化
SparkChain::unInit();
}
int main(int argc, char const \*argv[])
{
cout << "\n######### llm Demo #########" << endl;
// 全局初始化
int ret = initSDK();
if (ret != 0)
{
cout << "initSDK failed:" << ret << endl;
return -1;
}
syncLLMTest(); // 同步调用
// 退出
uninitSDK();
return 0;
}

如果你仔细观察,会发现少了一部分代码。

星火大模型的接口调用给了两种方式,一种是同步,一种是异步

这里我用的是同步,所有文字都输出完,才会打印在终端。

正常的大模型,应该都是异步调用,即慢慢打印出来,这里留给读者自己修改了。
下面看下运行效果

root@echofree:/opt/Spark3.0\_Linux\_SDK\_v1.1# ./demo
######### llm Demo #########
init SparkChain result:0
######### 同步调用 #########
请输入问题 (输入 'q' 退出):徐州天气怎么样
syncOutput: assistant:今天徐州市的天气是多云,气温在3℃到11℃之间,有点冷。东风4-5级,湿度为53%。空气质量良好,PM2.5指数为60。在这样的天气条件下,适宜旅游、钓鱼和户外运动,但要注意保暖。同时,感冒较易发生,请注意保持干净整洁的环境和清新流通的空气。
请输入问题 (输入 'q' 退出):你是什么
syncOutput: assistant:您好,我是科大讯飞研发的认知智能大模型,我的名字叫讯飞星火认知大模型。我可以和人类进行自然交流,解答问题,高效完成各领域认知智能需求。
请输入问题 (输入 'q' 退出):q
root@echofree:/opt/Spark3.0\_Linux\_SDK\_v1.1#

效果还是不错的。

整点花活

既然一切都配置ok了,那肯定得进行应用开发了,这里来个小demo

这里是使用 Qt 开发的一个非常质朴的聊天界面,也就是开头所说的项目中正好用到大模型的地方。由于时间紧张,技术能力有限,就直接搬上去了。

具体原理就是使用 Linux的 socket多线程 与界面进行通信。服务器端负责接收客户端的信息并进行回复。

后续

由于技术有限,并且考试月繁忙,等到有空闲时间了,再写个单独的交互界面。

  •  

九月

九月小记

糊弄着,糊弄着,开学已经一个月了。

看着还差两条数量就要追上文章数的 碎碎念 ,我觉得不能摆烂下去了。

不过写文章是真的费时间,除非是学习笔记,直接上传发布,可惜最近没啥笔记,就算有,也没有啥价值。emm,文章也没啥价值,不过最起码以后还能看看,回忆下(如果博客继续存在下去)。
所以,我做了一个......的决定,水篇文章,hh

大三

虽然现在已经大三了,但是还是像打车一样,在生活的旅途中,找不到自己的定位。

开学时踌躇满志,想要好好拼搏下,可惜药效不够,过几天就原形毕现了,实在是不知道做什么。不是事情太少,无事可做,而是事情一大堆,找不清主线了。就像打剧情游戏一样,一堆游戏线路需要去做。不过游戏还好,最起码给你标了主线,给了指引和线索。

好在没过几天,全国计算机等级考试来了,索性报了个三级。明知就业没啥用,但还是报了。还记得之前学院开会,统计二级证书人数,结果寥寥无几,于是便让我们去报名考试。

网上搜寻一番,发现都说网络技术简单,便火速下单了未来教育的习题。之前的二级考试,因为太过简单,直接白嫖学姐用过的。这次好歹是三级,打算认真刷题,好好准备。可惜看了一下,发现基本都是背诵的知识,唯一需要计算的就是ip地址内容了。

这下好了,又没有事情做了,emm,于是买了本《C++ Prime Plus》看看。之前买的《深入理解计算机系统》由于二进制内容对我来说太过枯燥,便舍弃了一会。

于是整个9月都在游戏和书籍中度过。对了,还有实验课。

数电的实验课,线子越插越多,脑子转速越来越慢。好在勉强还能做出来,然后就是万恶的实验报告了。

而且数电老师讲课速度是真的快,短短一个月就讲了一半内容,我是真的赶不上了,还是等考试前突击吧。

实验课下课拍的学长(也可能是学姐)。

除此之外,在连烧了两块开发板后,再次忍痛买了两个ESP32,也终于调库成功,连上了阿里云的物联网平台

把子肉

疫情过去了,两年没走过的南门也正常开放了。于是下午课上完,便和室友走一公里路,去旁边的万达广场吃把子肉,还有隆江猪脚饭~

虽然这个图片里没有猪脚,也没有把子肉。

从室友那偷的学校晚霞图,当时正好下课,准备出去吃一顿,然后走回学校,也是很惬意的。毕竟人生偷得几时闲。

三级考试

在考试的前一晚,学校在操场举行了迎新晚会,哈哈,没办法,太穷了,555

人倒是挺多的,他们拍表演,我只能拍个手机。

第二天考试,梦回我多年未见的母校
之间还有个小插曲。由于学校不开设考试点(狠狠表扬了),于是只能报名矿大了~



矿大,嗯,很大,哈哈。有山有水有树林,风景很美,可惜没吃到矿大的饭。

还记得上次蓝桥杯也是在这考的,当时做了好长时间,可惜没出好成绩,考完心情也不咋地。这次三级就不一样了,果然如预料的一样,非常简单,考试前一星期背背题就行了。

也不知道下次四级报不报。想报软考,可惜11月就考了,时间来不及了。至于教资考试,已经过去了,而且也从来没想过。

考完试的晚上,也就是昨晚,顺便买了杯茶百道犒劳下自己(虽然没动啥脑子)

一个小彩蛋。才发现茶百道的包装纸有学校的曲艺团标志,哈哈。

突然想起了之前友链里看过的一篇文章,有关奶茶的,在这推荐下:[饮者杂记(Ⅰ) - 庭院一角
(harrypan.cn)](https://www.harrypan.cn/index.php/archives/328/)

虽然作为店员的我自然要满足顾客的需求,然而我内心中则是十分认同清玉的那个搞怪广告:“调你妈,黄金比例最好喝!” 都买奶茶了,还要想东想西,瞻前顾后,连片刻的休憩都要充满对身材和健康的焦虑。 ———— 此文摘抄

秋招

离毕业也快了,看了下牛客秋招,发现是诸神之战,hc越来越少,简历越来越多。

连全国城镇调查失业率都暂停发布了,233,还能咋办呢,对吧
国家统计局:8月起,全国青年人等分年龄段的城镇调查失业率将暂停发布*新闻频道*央视网(cctv.com)

这里又想推荐一篇友链的相关文章了:对当下高等教育的一点思考 – Abin的个人博客-爱上小树枝 (xiaoshuzhi.love)

至于考研,只能说缓解就业了,而且还不一定能考上。在这学历贬值的时代,考研的人数已经到达了450万了。

当然了,还有考公,也是千军万马,不容易。

不过也不能这么悲观,还是得发现生活的美好的一面。

  •  

外设篇01:那些年用过的键盘

前言

转眼已经大三了,也买了四个键盘,谁让我喜欢电子产品呢。除此之外,天天敲代码,对键盘使用度极高。

换句话说,键盘已经替代了高中的黑笔,成为了我新的实现理想的工具。于是趁着开学之际,便想写篇文章介绍下用过的几种键盘。

1. 达尔优EK815


高中毕业的暑假,对于电脑以及外设还处于一问三不知的状态,在知乎搜了几篇文章,只知道买这些东西走京东自营店比较好,于是便下载了京东(京东快打钱)。

当时在京东的键盘销售榜上,这个键盘,也就是 达尔优EK815机械合金版,好像排在了第一名,而且价格也挺便宜的,149
元,有着可调的RGB灯光,还是机械的,对那时候没有接触过键盘的我来说,十分具有吸引力,于是光速下单买了蓝白色。

与此同时,也买了第一个steam游戏,战地5,整个暑假都在这个游戏中度过。虽然每次都被打成薯条,但也不亦乐乎。

还有一点是,用这个键盘的人太多了,高中同学就有几个撞了。

2. 黑峡谷X3Pro



到了大一暑假,经历一个学年的洗礼,对键盘的知识也增加了不少,于是开始寻找更高配置的键盘。

因为第一个键盘是有线的,有时候使用起来极其不方便,这次便想买个三模的。经过多次搜寻,最终目光落在了两款键盘上:RK98黑峡谷X3Pro。到了最后还是买了黑峡谷的黑森林慕斯色

没办法,黑白色对我的吸引力还是很大的,还送了个掌托(虽然从来没用过)。选定的轴体为流沙金,价格
389,还是很贵的,不过体验感完虐之前的达尔优,果然是一分钱一分货。后来又发现隔壁宿舍两个和我一样的,哈哈,这个键盘销量也挺高的。

不过很气人的是,今年暑假直接降价了100,虽然电子产品是理财产品,但还是很离谱。

3. 华为蓝牙键盘


这款小键盘则是从舍友那收过来的,因为有时候需要便携操作,正好有个平板,缺个小键盘,于是打个折,花费了 111.11 大洋买了下来。

虽然想法很不错,不过用的时间几乎可以不计,一般当个备用键盘或者静音键盘使用。

4. Cherry KC1000


55元 极致性价比,一款非常经典的薄膜键盘。因为之前的黑峡谷声音有点大,所以开学就买了这个,切换着用。

使用手感和学校机房的已经沾满油的薄膜键盘基本一样,声音很小,不过如果快速敲代码声音还是有点大的。

相比于这个,我还是更喜欢没有小数字的87键,打字速度更快,但也失去了双人4399的快乐~

总结

总的来说,黑峡谷的X3Pro是我用的最舒服的一个。

Cherry的薄膜键盘由于刚到,还没有捂热,而且87键机械键盘用惯了,导致手感不是很好。

华为的蓝牙键盘比较小巧,适合平板办公。

至于达尔优那款,如果经费有限,又想体验RGB+机械轴,那么可以一试。

  •  

RSS阅读器安利:Fluent Reader

前言

由于之前在网上搜寻到RSS订阅工具都差强人意,今天闲来无事,偶然发现了一款颜值非常高的开源免费RSS订阅器:Fluent Reader , 于是便想写一篇文章安利下

如果想要使用,微软商店直接搜索下载即可,也可以前往 GitHub 上下载,此仓库包含了APP端软件包

至于更多RSS订阅源可跳转相关链接处

RSS 介绍

RSS(Really Simple Syndication,真正简单的分发)是一种用于发布和订阅网站内容的数据格式和协议。它通过简单的 XML 格式来传递网站的文章、新闻、博客等信息,允许用户通过订阅器(RSSReader)获取网站内容的最新更新,而无需直接访问网站。
RSS 最早出现在 1999 年,由 Netscape 公司创立。随后,RSS 标准逐渐发展,演变为不同的版本和格式。常见的 RSS 版本包括 RSS 0.9x、RSS 1.0、RSS 2.0 和 Atom 等。

RSS 的工作原理如下:

  1. 网站创建并维护 RSS 文件:网站管理员会将网站的文章、新闻、博客等内容整理成 XML 格式的 RSS 文件,并将其发布在网站的特定位置,通常是一个预定义的 RSS Feed URL。
  2. 用户使用订阅器订阅 RSS Feed:用户可以使用 RSS 订阅器(也称为 RSS Reader 或 Feed Reader)来订阅感兴趣的网站的 RSS Feed。订阅器会定期检查订阅的 RSSFeed,以获取其中的更新。
  3. 订阅器获取更新:当订阅的网站有新的文章或内容发布时,RSS Feed 文件会被更新。订阅器会检测到这些更新,并将最新的内容显示在用户的订阅列表中。

RSS 的优点包括:

  • 方便获取信息:用户可以一站式地收集和查看多个网站的内容更新,无需频繁访问每个网站。
  • 自动化更新:订阅器会定期检查更新,用户不需要手动去查看是否有新的内容发布。
  • 隐私保护:RSS 订阅不需要提供个人信息,保护用户的隐私。

随着社交媒体和其他内容分发平台的兴起,RSS 的使用逐渐减少。然而,RSS 仍然被许多网站和博客用于提供内容更新,并且一些专门的订阅器应用程序仍然广泛使用,满足了一部分用户对于个性化内容订阅的需求。

软件截图




相关链接

GitHub地址:Fluent Reader
RSS入门指南:高效获取信息,你需要这份 RSS 入门指南 - 少数派 (sspai.com)
使用体验:Windows平台最美RSS阅读器-Fluent Reader上手体验 - 知乎 (zhihu.com)

友情提醒:卸载软件时,记得导出相关订阅源进行备份
  •