2023年总结
2023年对于我整个人生来说注定是非同寻常的一年。无论是墩墩的诞生,还是带娃的第一年经历,再到年终突然被告知的裁员。我的整个2023年真是可以用跌宕起伏来形容。而且自从娃出生后,一直没什么机会再更新我的博客,上篇文章的主体还是篇AI生成的水文章。 趁着年终了,对于这片互联网的自留地,我不更新个年终总结啥的,实在说不过去。 年初年初的时候,老婆怀孕已经 30 周+了,每天基本都担心宝宝会不会突然降临。但事实证明还是我想多了,我们家墩墩一点没有要出来的意思,感觉在妈妈肚子里舒服极了。最后定在了 2 月 3 日,进行“强拆”!但由于疫情的原因,从我和老婆入住医院到墩墩诞生后的这几天,只能由我一个人单独陪同,说实话,当时我慌的一批。就怕照顾不好术后的老婆和刚刚诞生的小生命。好在在护工阿姨的帮助下,顶着两个熊猫眼,我成功坚持到了护送母子一起回家。说到这,突然想到术后的老婆流着冷汗一步步爬 5 楼的样子,心又揪起来了。孩子妈,你辛苦了! 然后再说说第一次见到墩墩时候的心情吧,激动的忘记了言语!感觉那一时刻的时空都停滞了,小家伙出生的时候长得太像我了,那小眼睛,小鼻子。简直和我一模一样!果然只...
Python调用OpenAI GPT4-vision API方式
自从有了娃之后,抽空写文章的时间越来越少。看了下自己上一篇发布的博客文章已经是今年7月份了,一晃4个月时间就过去了。 最近因为OpenAI发布会,跟着热点尝试用python调用GPT4-vision的接口,看看如今AI识图究竟能做到什么程度。尝试之后感觉非常的惊艳,照这个发展速度,每个人拥有专属“贾维斯”的时代很快就能到来了。 Python代码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647import base64import requests# OpenAI API Keyapi_key = "$API key"# Function to encode the imagedef encode_image(image_path): with open(image_path, "rb") as image_file: return base64.b64encode(image_file.read())...
Ubuntu系统上手美化
写在开头,这篇文章是从Ubuntu 美化与终端配置 - Fing’s Blog (imfing.com)这篇文章中节选出适用我自己配置ubuntu server的内容。重新复制这篇文章的主要原因是方便自己未来重装系统后配置美化用。所有对配置文章感兴趣的小伙伴,请参考Fing‘ Blog的原文。 终端配置首先安装 zsh 并通过 chsh 命令将其设置为默认的 Shell 环境。 1234567891011# 安装 zshsudo apt install zsh# 确认 zsh 安装成功which zsh# 设置为默认 Shellchsh -s /usr/bin/zsh# 查看当前shellecho $SHELL 安装 Oh My Zsh1sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" 配置Zsh 安装Powerlevel10k主题 123git clone --depth=1 https://github.com/romkatv/p...
DIY NAS
继五月份购入了中年人三好的充电器之后,趁着六月份 618 活动,“油腻”如我又折腾起了 NAS。(其实还有软路由,但是软路由毕竟还是不适合放在内网上分享,所以我还是先分享一下 DIY NAS 的过程吧。对我这个中年人来说,过程可以说是相当艰辛了。当然现在配置完毕后,耍起来非常愉快! 配置选择既然要 DIY NAS,那首先就是要确定配置清单了。其实我自己本身有一台当初闲鱼淘来的矿难垃圾『暴风酷播云』,它的配置如下: 其实这套配置用起来没什么问题,就是两盘位在过去的使用过程中明显感觉不太够了,所以趁着这次 DIY NAS 的机会,直接 4 盘位走起。当然这次突然 DIY NAS 的起因也是因为无聊的时候刷闲鱼,突然发现了 B 站是喵大佬的开源 4 盘位马里奥机箱方案,一见倾心,再见剁手…… 因为机箱已经确定了,接下来就是配合机箱选主板,电源等硬件了。考虑到这次怎么说都是一次升级,再用 J3455 就有点说不过去了,无论如何都得把性能再升级一波。但是我又已经习惯了群晖的操作系统,原生 moments 是真的好用,所以考虑到核显兼容性问题,我这次闲鱼淘了一块 i3-8100 的 C...
Hexo butterfly主题添加RSS插件
由于我自己是一个 RSS 信息流的忠实用户,所以自己的博客怎么能没有 RSS 的信息流订阅方式呢!本文参考网上诸多教材,记录一下自己的 Hexo 博客网站 butterfly 主题配置 RSS 的过程。 插件选择根据 butterfly 主题的进阶教程里插件推荐,可以使用hexo-generator-feed插件进行 RSS feed 的制作。 于是根据hexo-generator-feed的官方教程,一步步进行插件配置。 hexo 根目录安装插件并配置 进入 hexo 的根目录,执行如下命令进行插件安装 1npm install hexo-generator-feed --save 根据官方建议配置 hexo 根目录的_config.yml 文件,再_config.yml 文件末尾添加如下配置信息 12345678910111213feed: enable: true #是否启用插件 type: atom #有atom和rss2两个选项,使用默认atom就好了 path: atom.xml #也用默认配置atom.xml就行 limit: 20 #展示文章的数量...
闪极67w麦金塔充电器使用体验
都说互联网时代中年男性油腻的三大特征:充电器,路由器和 NAS,不得不说有点道理。起码人到中年的我对这三个产品都非常感兴趣,也购入了不少,之前还特地写了篇自用的充电头文章投稿到了张大妈。而最近我的日常充电器又添加了新成员,就是闪极四月份最新发布的 Retro67 充电器。 购买原因其实这次购买新充电器的原因还要追溯到半年前,那会我的数码设备在充电的时候只能共享一个充电插座,而我的 65W 多口充电器又被老婆大人征用了,意味着每次我冲完手机或者 iPad,如果需要冲电脑就得去换个高功率的充电头。或者不换充电头,但得更换充电线(什么时候苹果才能所有接口都换成 TypeC 啊!!!)所以那时候我就计划再入一款多口的 65w 以上充电器,最好 C 口多点(我现有的 ZMI 的 65W 充电头是 1 个 C,2 个 A,无法做到同时手机与电脑快冲,一直感觉很遗憾) 上手体验最早知道闪极这个品牌是因为他们家硬核的充电宝。有一说一,要不是高昂的价格,只说产品外观和性能还是非常吸引人的。也是因为这个产品,闪极在我的印像中一直就是产品设计优秀但价格也很高的非性价比之选品牌。而 Retro67 ...
DIY个单片机,优雅地“偷”数据吧!
起因最近因为个人项目需要,要将不允许联网的主机里数据库的数据发送至远程服务器。考虑到既然主机无法联网,不如用单片机作为中间人,通过串口将数据发送给单片机,再由联网的单片机将数据发送至服务器。这不就完美实现“偷数据”的操作了么!说干就干! 主机数据抓取既然要将数据发送至单片机,那首先我得先拿到数据。由于主机是离线且最高权限状态,果断装一个python环境(这样可以先分析一波数据,将异常值与有效的数据进行区分后选择发送),通过pyserial和pymssql进行数据抓取。详细的代码就不列了,说下在过程中碰到的一个坑。 最开始由于python程序中没有设计发送截至符,所以测试时,单片机无法确定数据截至位置在哪,导致发送至远端服务器的数据都是断断续续的。而在主程序中添加截至符发送后,完美解决该问题。 1234567891011121314151617181920212223242526272829import serialimport jsonimport pymssqldef get_data(): """ ""&quo...
腹灵FL680使用体验
起因差生文具多,说的就是我。去年 9 月份刚买了一把腹灵 MK870 键盘+TTC 的静音茶轴 V2+光头哥微光的组合,想着在办公室用个痛快,也不会打扰到周围办公的同事。为此我之前还写了一篇文章《萌新的第一把客制化机械键盘——腹灵 MK870》,来记录一下第一次自己选配一款机械键盘的经历。这半年使用下来,只能说我 TTC 静音茶轴的输入体验 YYDS!可惜上海的疫情来得太突然,老婆大人被迫在家办公,并且征用了我的 MK870。那我也只能委屈下我的钱包了。 选购键盘的心路历程因为我已经有了一把大 F 的 104 键圣手茶,一把 87 键的 MK870。所以这次我想买把尺寸再小一点的键盘,同事考虑到疫情期间,可能随时居家办公,那么 75%配列及以上的键盘随身携带起来还是有点不方便。那么基本就锁定在 40%~ 65%配列区间里了。为了尽可能平衡尺寸和使用体验,最终选择了带方向键的 68 键键盘,毕竟日常需要 ssh 登陆远程服务器,没有方向键使用起来实在不太方便。确定了具体的配列,那么接下来就选购。由于之前的两把键盘都是有线单模的键盘,而我有时需要多设备间切换使用,非常不方便,所以这...
日常Python Tips
Python中使用remove命令导致的问题: 123456# wrong code example:list_a=[1,2,3,4,5,6]list_b=[1,2,4]for i in list_a: if i not in list_b: list_a.remove(i) 上述代码的目的是为了将list_a与list_b做交集,并取list_a的交集部分。但是由于python中remove函数会导致列表结构的索引会少于原始列表,并导致无法完全遍历整个列表,最终出现上述结果为list_a=[1,2,4,6]。 下面演示正确代码: 123456# Correct code example:list_a=[1,2,3,4,5,6]list_b=[1,2,4]for i in list_a[::-1]: if i not in list_b: list_a.remove(i) 通过将list_a反序遍历,即可避免remove函数导致的索引缺失问题。关键方法:[::-1]。 Python中时间模块的使用方法 12345678imp...
「我的A7M4初体验」
自从去年索尼发布 A7M4 的时候开始,我就一直心心念念想升级手上的 M2。但是不知道是因为疫情原因还是产线爬坡问题,自发布以来,供需不平衡导致完全没有机会原价抢到 A7M4。直到从今年 5 月中旬开始 M4 的产能和库存都提高了,终于在 5 月底的时候,我在索尼官网抢到了一台带 CfexpressA 卡存储套装的 A7M4。回想过去半年蹲守官网,京东,淘宝的经历,真是太不容易了。 硬件感受 从包装里把 M4 谨慎小心地拿出来的时候,第一个感觉就是大且重。由于我的 M2 已经服役了 6 年多了,所以我对它的手感和重量可以说非常熟悉了,一上手 M4,就能明显的感受到尺寸和重量上的变化。握把宽了不少,抓起来更加舒服。顺手按一按机身上的按钮,转一转前后的波轮,明显和 M2 上的按键是完全两种不同的东西。以前没觉得,现在对比下来,M2 的按键感受就和玩具一样。 取出包装中的 NP-FZ100 电池,真的是比 M2 的 FW50 大上了一整圈,可想而知续航能提升不少。可惜我之前买的这么多原装 FW50 电池和充电器,只能和 M2 一起呆在防潮箱里了。而且还得重新买 FZ100 电池...


