组了个 QNAS MINI
QNAS MINIQNAS MINI 是一个 2.5 寸 6 盘位 NAS,拼好后就是下图 (下半部分,上面是个 UPS) 硬件如下 3D 打印外壳(海鲜市场) QNAS MINI 背板及线材螺丝(海鲜市场) 畅网微控 N355 主板 Crucial DDR5 4800MHz 32G 内存条 M.2 转 6 SATA ASM1166 扩展卡 致钛 500G + 2TB SSD 软件系统安装了飞牛,一直想试试,真好用 主要是相册和影音,相册支持 AI 人脸识别和以文搜图搜视频,影音相当于 Jellyfin + 信息刮削 + 字幕下载,还自带一个 FN Connect,可以远程访问到 NAS,免费的完全够用 除此之外,我又单独跑了一个 Cloudflare Tunnel 做内网穿透,Docker 跑起来,配置简单,作为一个备份。也确实遇到过一次官方远程连不上的问题 之前用的 NPS,需要自己搭建服务器,作者也不更新了,所以刚好也是顺便换掉 拼装踩坑总结出了一个视频 BV1H34UzWEwJ,可以参考一下,以下是文字总结 主板上螺丝是,有一侧螺丝不好拧,可以使用束线带绑住螺...
Certimate 半自动阿里云虚拟主机证书
CertimateCertimate 是一个开源的 SSL 证书管理工具,可以自动申请、部署、续签 SSL 证书,通过高自由度的节点配置工作流 博客迁移前一阵把博客 imba97.cn 迁到了 imba97.com,服务器也换了,但 .cn 域名有备案只能指向阿里云的产品,所以临时租了个虚拟主机过渡 迁移前是用的宝塔,直接无脑申请,只是自动续签的自动任务好像一直是失败的,所以每三个月要手动点一下 很早之前就看到了 Certimate,这次刚好有证书管理、部署的需求,于是折腾一下试试 部署这次主要是分享一下 Certimate 证书部署阿里云虚拟主机,首先事先配置好 Certimate 的提供商 部署节点的配置是这样的,服务地域是 cn-hangzhou,具体参考 《服务接入点》文档 执行流程后,证书会自动发送到数字证书管理服务 点击 SSH 证书管理 -> 上传证书 虽然阿里云也提供部署,但这里的部署需要花钱买次数 所以你需要来到虚拟主机管理页面,如果之前设置过证书,则先点击关闭 再点击开启,选择新的证书
公司报销全凭本事
前情提要两个月前《我入职了老东家的母公司》,也连轴转到 18 号,甚至没放过周末。做了个原生 微信小程序转 支付宝小程序的转换器,有机会单开一篇文章聊聊 目前终于是告一段落了 工作环境现在在公司的状态感觉跟逛超市差不多,悠闲自在的心态,整个一显眼包 这句话从一个一天 10 ~ 14 小时工作的人嘴里说出来,可能没啥说服力,但别人怎么想不重要 我现在的风格就是,如果工作环境不适合自己,那就自己动手改造(包括物和人)。这边是个新办公场地,之前说要买点小家电,在群里征集意见,我想到啥点啥,制冰机、咖啡机、吧台桌一大堆 但其实,公司买个东西相当慢,就算是最需要的冰箱,也等了一个多月才下来,我点的那些大部分买都不可能买 于是… 迂回战术这件事本质上不就是,一、买制冰机,二、让公司出钱。那么事情就简单了,我先买了,凭本事报销不就好了,这可难不倒我,于是一个稀奇古怪的计划就诞生了 制冰机到了之后,我开始了我的报销计划,在群里发了这么个东西 主打一个没法反驳 然后在制冰机旁边还贴了个这个 结果目前参与的基本都是朋友,同事还没有,争取把公司老大拉过来拍一个 不过之前同事的闺女倒是被我拖过来...
两年 AI 使用感悟
买家秀今年是 Github Copilot 第二年的付费用户了,从 Ask、Edit 到现在的 Agent 模式,AI 编程是越来越好用 刚开始有了 Edit 模式,我还不太爱用,因为有些时候会理解错我的意图,改了一些意料之外的代码 Agent 模式也是一样,个人习惯是一方面,也总感觉刚出来得保守的观望一阵再说 直到最近才接触到系统化的 AI 编程,感觉 Agent 真是越来越流畅,越来越符合我的心意了 当然其中有些技巧大家可能早就知道了,这篇文章只是以我的视角来分享一下我的感悟 AI 编程的特点我主要讲两点(doge) 上下文遗忘随着对话的进行,AI 会逐渐忘记前面的重要信息。特别是在长时间的编程会话中,AI 可能会忘记项目的整体架构、之前的约定条件,或者已经确定的方案等 之前遇到的比如说,我有两个文档,需求文档和项目文档,一开始我说的“文档”都是指的需求文档,但后面创建项目文档后,再说“文档”时 AI 就会搞混。你就得花时间撤销内容、重新描述 专注力AI 的专注力主要会分配在当前的对话中,如果你在一个对话中频繁切换任务内容,那 AI 很容易分心 比如先让 AI 完成了一项...
我入职了老东家的母公司
老东家去年离开老东家做了一年的数字游民,准确说是 “数字居家民”。之前文章也提到过,老东家是做餐饮系统开发的,我们部门主要是做像泸溪河、赛百味、皮爷咖啡这些面向员工用的点餐屏 我在职的这一年多的时间里,除了页面功能上开发,主要做的是打通了点餐屏客户端与各种硬件的交互,蓝牙打印机、网口打印机、电子秤、客显屏、读卡器等等 还封装过一些前端库,比如基于 EJS 的 Electron 打印模板库,基于纯文本的打印模板库,新加坡支付系统 NETS 的 POS 机 SDK 等 母公司其实在几天前我还不知道这两家是什么关系,只听说过一耳朵,这两天问了问前同事,才知道是全资母公司 当时老东家的办公场地半数是母公司的人员,门口也有 logo 和名字。最近找工作,突然刷到了这家公司(分公司),看着眼熟就试着投了一下,毕竟开发内容上也会有相似 面试经过了面试题、技术面、HR 面。中间其实也有点波折,因为薪资、地点等综合因素,两次想放弃了 本来以为就这样了,但后续交流中听说部门还是希望我过去,并且起薪也稍微提了一下。感觉能被认可,对我来说比薪资、地点更重要,毕竟这直接关系到 个人在工作中的 舒适度...
数字游民报告
前情提要一年前我向大家提交了 《辞职报告》,给自己了一年的时间,探索数字游民的生活方式 这篇文章来总结一下这一年我都干了什么 久违的暑假2024 年 6 月 30 日,上完了最后一天班,我就开始了自己 《久违的暑假》 因为有文章了,这里就不赘述了 imba97.me考虑到之后要找远程工作,那么最好有个个人网站来专门展示自己的技能和项目 于是就有了 imba97.me,2024 年 7 月至今迭代了 42 个版本 🎉,除了基本的展示,也做了不少有意思的功能 同步展示在听的歌 同步展示在玩的游戏封装了一个简单的 Steam SDK,快速获取正在玩的游戏 steam-playing-game AI 简历 introxd.comintroxd.com 这是我想到的第一个项目,个人简介定制 在做 imba97.me 的时候,想到也许其他人也会需要一个快速展示自己的网站,所以就有了这个项目 不过没怎么宣传过,主打一个随缘买卖 存款逐渐消失虽然是在家,但每个月的开销比我想的要多 每个月缴着灵活就业的社保医保 1300+,相当于以前交房租了 在家也懒得做饭还是点外卖,吃喝玩乐每个月跟以前...
PicGo 插件项目重构
FTP 上传插件这是一个四年前的项目,当时发现 PicGo 没有我需要的 FTP 上传插件,于是自己写了一个 最开始用的官方提供的插件模板,这是重构前的代码 imba97/picgo-plugin-ftp-uploader/003b4e 前端技术发展迅猛,积累了四年的前端知识,让我有了重构的想法 Refactor!我当前开发前端库主要用以下技术 TypeScript 不用多说 unbuild 打包工具 eslint + @antfu/eslint-config 代码规范 simple-git-hooks + lint-staged 代码提交规范 bumpp 版本管理 打包工具之前是直接用 tsc 编译,unbuild 作为一个现代化的打包工具,提供更灵活、自由度更高的配置、插件等,并能优化代码 规范eslint 作为代码规范工具,开源魔法师托尼老师的 @antfu/eslint-config 提供了一套很好的规范,简单易用 simple-git-hooks 创建 git hooks,在提交前检查代码 lint-staged ...
让 HR 直接跟我的 AI 聊
做个自我介绍 做了个求职偷懒 AI,基于我的简历数据的聊天,目前感觉有不少场景都可以用上 比如直接发给 HR 比如直接复制工作要求让 AI 给出匹配程度 可以自己跟 AI 聊聊,学习参考 AI 的回答技巧 技术细节AI 是 DeepSeek,并使用了 one-api,直接用 Docker 跑起来 它可以整合各种 AI 接口,统一成 ChatGPT 的格式,便于之后切换 AI 也算是摸清了流式输出和 SSE 格式处理 网站有兴趣可以体验一下 imba97.me/ai 代码可参考开源项目 imba97/me
initx v0.1.0 发布
可圈可点initx 是一个免安装的脚本引擎,可以使用 npx 执行,通过 插件实现各种功能 初期设计了匹配器和插件的核心逻辑 简单且强大的匹配器来匹配用户输入指令,后来单独抽离成了一个项目 matchinitx 美中不足initx 可以免安装运行,但你需要全局安装各种插件,这显然是不合理的 虽然有一个插件管理器 @initx-plugin/manager,但它甚至也要先全局安装才能使用,这太傻了 v0.1.0在这个版本以及之前的几个版本中,陆续解决了以上的问题 首先插件不是全局安装了,而是被安装在用户目录下的 .initx 目录中 同时执行 npx initx 命令时,如果没有 @initx-plugin/manager 插件则会自动安装 现在你可以随时随地尝试 1npx initx plugin list 如果觉得每次输入 npx 比较麻烦,也推荐全局安装 initx 1npm i initx -g 解决需求目前做的几个插件,以解决我自己日常使用需求为主,比如以下几个简单的例子 复制比如复制 SSH 公钥、GPG 公钥、当前目录路径,你可以轻松解决 12345678# ...
在个人简介同步正在玩的 Steam 游戏
上回之前写过一个同步我当前正在听的音乐,大概长这样 这次尝试把当前正在玩的 Steam 游戏展示到个人简介中 于是去看了一下 Steam API,发现还真行,效果是这样的 开源:imba97/me 开源库为了方便调用,简单封装了一下用到的 Steam API 你可以直接使用 steam-playing-game 的 getUserPlayingGame 123import { getUserPlayingGame } from 'steam-playing-game'getUserPlayingGame('steam-api-key', 'user-id') 或者使用 useSteamApi 获取更详细的参数 123456import { useSteamApi } from 'steam-playing-game'const { getPlayerSummary, getGameDetail } = useSteamApi...