阅读视图

发现新文章,点击刷新页面。
🔲 ☆

博客评论从 Valine 迁移 到 Waline💬

前些日子收到了一个「关于 LeanCloud 停止对外提供服务的通知」,我的博客是Hexo的,评论系统用的是Valine,评论的后端服务刚好就是放在这个上面的,而且 Valine 也是很长时间没有更新了,是时候就得把它迁移到 Waline 上面去了。这个更安全,而且完美支持 Valine 的数据迁移(后面发现其实也没有那么完美)。主要是官方的那个指引写的没有那么小白,而且有些配置或者数据表变更了但是指引没有变,不过在AI帮助下还是一两小时解决问题。

导出数据

登录到Leancloud后台,直接进入数据存储->导入导出->数据导出->选择限定class->选择comment,点击导出,就可以从邮件里面下载这个jsonl文件了。

然后在waline的官方文档中,有一个数据迁移助手,可以把各种格式的文件转换为waline支持的格式。直接把jsonl文件的内容直接复制出来,粘贴到迁移工具的输入框里,选择从Valine迁移至 Waline MySQL/postgreSQL/SQLite这个,点击「转换」就会下载一个csv出来。这里有一个小坑,就是导出的jsonl文件里有一行文件类型声明的代码:

1
#filetype:JSON-streaming {"type":"Class","class":"Comment"}

需要去掉,不然一直会转换失败,而且也不会有什么报错的那种。

导入数据

使用Waline自带的管理后台的导入数据功能,点击导入,选择上面转换之后的csv文件,一直失败报错:

1
Unexpected token 'i', "id,nick,up"... is not valid JSON

我搜了一圈子发现这个问题好像一直存在。算了,看样子是这个导入工具有问题,跟最新的评论表结构不是那么兼容,于是乎我直接让AI帮我根据 waline的pgsql建表语句 这里面的最新的表结构,生成INSERT SQL语句,到到vercel的后台管理中sql-editor面板去直接执行,然后数据就进去了。

关闭Vercel Authentication

又一个坑,数据插入进去之后发现,一直刷新不出来,而且提交新的评论会一直报这个错误:

1
fail to fetch

又是一顿搜索,发现解决方案就是参考这篇文章里面的 「采用waline配置博客评论出现fail to fetch解决方案」,找到Vercel Authentication,找到你的项目里面Setting->Deployment Protection->Vercel Authentication,关掉即可。

域名

最好还是需要一个自己的能直接访问的域名,毕竟vercel国内是不能直接访问的。先在你自己的vercel控制面板里找到Domains菜单,找到你的project点击edit,然后把Domain那一栏改成你自己的二级域名,它会弹出来一个指引,告诉你在你的域名解析里加一条CNAME记录,照着填进去保存,等几分钟生效即可。

添加评论邮件通知

添加邮件通知,需要在vercel中配置环境变量,配置路径是你的项目->Setting->Environment Variables->右上角的Add Environment Variables,然后根据评论通知文档,去配置对应的环境变量就可以,注意SMTP_PASS这个一般是需要去邮箱里配置专用密码,比如qq邮箱的需要去后台安全管理生成一个16位的授权码,别把登录密码写进去了。配置好之后,需要点击Deployment重新部署一下,环境变量才会生效。

以上操作全部完成之后,迁移工作打完收工。

🔲 ☆

杀鸡🐓

前些日子,娃在家里养的小鸡,一不留神就养的很大了,而且很不凑巧是一直公鸡,每天咯咯咯的打鸣,在城市里养鸡也确实是一件难度很大的事儿,因为居住密度太大了,容易惊扰邻居。而且鸡是无法控制排泄的,味道很大,感觉是随时随地都在拉💩。夏天马上就要来了,根本就遭不住这个味道,就准备强行让它寿终正寝了,入了五脏庙算了。

养鸡

其实我还记得小时候也养过鸡,不过是在爷爷奶奶家,那时候还住在村子里,奶奶有养了很多只鸡,那时候我还小,到了喂鸡的时间,我就拿着一把葫芦做的破瓢,挖上一瓢鸡粮,往院子里一撒,鸡就从四面八方汇集到院子里来,一顿啄啄啄啄啄啄啄啄,完成这一餐的进食。平常它们就在院子周围自己觅食,什么小石子儿、小虫子、草根、烂树皮什么的给自己加餐,名副其实的走地鸡。

养鸡,尤其是在村里半散养的鸡,鸡屎也是个需要处理的问题,那时候虽说有个院子,但是院子里基本无时无刻的全都是鸡屎,基本上扫完没一会儿马上就遍布鸡屎了。不过鸡屎也多少有点用途,直接弄在一个桶子里,有时候直接丢在堆肥的地方一起堆着,有时候直接就拿去施肥浇地去了。

还有个对于我们小孩子来说的最好玩的一个事儿就是收鸡蛋,那时候大人就告诉我你去鸡窝里看看有没有鸡蛋,去收一下,那时候年幼的我看到蹲在鸡窝里的母鸡,心里觉得拿鸡蛋还是有点危险的,怕它啄我,大人就直接去鸡窝里把鸡都赶出来,我才能顺利的拿到我的战利品。

养鸡也不是一件特别简单的事儿,除了平常喂鸡什么的,鸡如果有什么病之类的处理起来也是比较麻烦的。那时候有几只鸡,生了病,眼睛上好像长了白色的浓一样的东西,把鸡的眼睛都堵住了,奶奶直接就把鸡抱住,用平常缝衣服用的剪刀,把鸡眼睛外面的化脓长住了的一圈剪开,然后直接用指甲把鸡眼睛里的白色东西挤出来,幼小的我在旁边观看了全程,就是恶心又有点想看的那种。

杀鸡

到了快过年了,杀鸡也是一个重要的流程之一,也还是在院子里,先把准备要杀的鸡挑好,鸡脖子上的毛扯一扯。一般都是家里的男人来干这个活儿,一个手把两只翅膀和抓着,然后脖子也一起捏起来,磨好的菜刀来回几下,鸡血就涌出来了,我们那没有吃鸡血的习惯,有些地方还会把鸡血搜集起来做菜。刚抹完脖子的鸡不会那么快咽气,大人就直接把鸡丢在地上让它自己再扑腾一阵子,过个几分钟咽气之后就可以后面的烫毛、拔毛、之类的操作了。对了,如果杀的是大公鸡的话,还会把尾巴上的最漂亮的那几根羽毛拔下来,给我们小孩子做成毽子,我们就在院子里玩起来。鸡一杀,过年的氛围也就开启了。

后来慢慢的养的鸡越来越少,院子也做了水泥硬化,吃鸡蛋和鸡肉,一般都是直接商店里买去了,再加上自己长大了很少回去了,院子里养鸡这个事儿就慢慢从记忆力抹去了。

🔲 ☆

第三十四年立春

立春也才没过去几天,就还有几天要过年了,今年过年比以往都晚一些,看了看天气预报,过年时候不太冷,希望不要下雨,不要雨夹雪,雪可以下一些,下的大一点也行,这样至少过年时候可以出去玩一下,不然像国庆假期那样,连续下个十来天的雨就很不爽了。25年平均每月一篇的目标还是没有达成,比上一年也多一篇的也没有达成,希望26年可以(虚妄之愿哈哈)。

国庆

国庆的时候回了一趟老家,但是如上所说,天气真的太差了,一直在下雨,下的还不小,哪也去不了,哪也玩儿不了,小县城就像被封印起来了一样,连街上也都没什么人,但是也惊喜发现,老家也搞了一些文旅活动,而且搞的有声有色的,挺好,过年回去之后再去看看,还是尽量找点地方玩一下,或者能带娃看一看自己长大的地方也行。

继续写点东西

今年在知乎上的产出变多了,基本上每天都有更新,活动也参加了一些,粉丝数也增加了一些,比我预想中的要多,而且流量都可以可以,收益比之前有所增加,但依旧是不算多,知乎的工作人员也拉我进了大模型的群。今年也有一些询单推广的,但是都没有成交,不过也还好,我本身就把我的知乎账号当成一个AI记事本,看到一些信息就记录一下而已,26年尝试一些,输出一点更深度的内容看看效果,如果效果不错就继续深耕一下试试看吧。

程序员斩杀线

程序员斩杀线的这一年马上到来了,目前看来生活没有什么太大的变化,工作上之前说的AI工具已经都很成熟了,基本上业务上的事儿都能搞的七七八八,不知道明年会有什么新的变化,不过现在编程语言已经不再是什么瓶颈,AI加持下,技能包都增长了很多,而且对于什么新领域完全没有任何恐惧,公司使用新语言开发什么的也都基本很快上手,直接产出工业级代码。

今年没有太多的运动,但是在饮食上合理控制,所以从年初一直到三季度吧,体重一直保持的还可以,合理改善饮食占比的确是有效的,如果再加上运动会更好,快到年底了,吃的多了一些,体重就直接上去了,看来这个玩意儿还就是一个持久战,不过还是先过完年再说吧,就当是稍微放纵一下。

娃在幼儿园已经是第二年度了,看了老师的评语也都还不错,也参加了幼儿园组织的徒步活动,还当了幼儿园的义工摄影师,跟一大帮子家长和娃一起活动感觉还不错的,希望娃继续健健康康开开心心长大。

🔲 ☆

AI编程工具2025🤖

谢邀,研发工作的变化,我觉得最大的变化就是从重「实现」,变为重「设计」了,从「写代码」,变为「教AI写代码」,而且要把它当一个有「实习生业务思维」的「高级研发工程师」。

之前在接研发需求的时候,大部分时间可能花在具体实现上面:调试API、写业务逻辑、处理边界情况,现在的AI工具在代码的具体实现上其实已经很强很成熟了,比如GitHub Copilot、Cursor之类的工具,使用比较强的大模型的代码能力其实已经超过了很多初中级的开发者了。

从「写代码」过渡到「写需求」

但是如何让AI工具「写自己需要的代码」,这个反而变成更不容易更重要的事情。
AI 不是人类,它是不知道你的「文字」以外项目背景、业务逻辑、历史遗留问题,有时候为了让AI理解一些需求,需要花很久来梳理「这个功能到底是干什么」,可能对理解需求还有帮助。
能生成代码,但不一定是「最优解」,所以有一些提前的架构设计工作还是需要自己来,比如用什么技术栈、代码复杂度的上限、性能和可读性的平衡点。毕竟有时候AI会写出很多能跑但不能维护、可读性不怎么好的代码。这些其实就是架构设计的工作,之前是设计完自己实现,现在是设计好了让AI写。

AI无法替代

还有一些AI无法替代的东西,比如理解模糊的业务需求,产品经理说的话,AI听不懂、处理老项目的坑AI理解不了、设计多个跨系统的服务改动,AI对依赖关系还是不能理解的很透彻。所以需要我这个人类来做这个翻译传声筒。

写作文

现在做一个产品、需求,提示词写的文字数量可能比代码要多得多,每次我都调侃是,做一个需求,就写一篇作文、做一个需求,就写一篇作文,等产品上线了,把我的提示词整理整理,基本就是一个完整的文档了。以前写代码的时候,需求紧了文档不重视,现在为让AI干活不得把这些东西写的明明白白,这反而是个好事儿:代码可能会过时,但好的文档一直有价值。
2025年的编程工作,已经从「how to code」变成「what to code」,AI解决了实现问题,但是其他的更上游的工作变的更重要,现在的日常就是,先做设计(写提示词),接着review AI 写的代码,最后再整体审视项目需求完成情况收尾。虽然代码量少了但是脑力劳动强度一点没降低。

本文为参加知乎活动撰写:AI 编程工具在 2025 年对程序员的工作流产生了怎样的重构?

🔲 ☆

武汉汤粉🍜

在网上一直流传一个说法是就是武汉人过早吃热干面,一般都是上班路上边走边吃的,甚至还有更牛的可以一边吃一边骑自行车,我来证明一下,是的,在武汉就是这么吃早餐的。其实我还有一个更狠的技能,就是汤面我也能边走边吃(自豪),那时候还在武汉上班,小区楼下就有一个老奶奶专门卖汤面的,冬天的早上,我一般就是来上一碗汤面一般走边吃,然后刚好走到小区外面的大垃圾桶差不多吃完,直接筷子一次性碗一丢,完事儿,方便快捷,其实汤面我觉得比较一般,比起面或者细粉,我一般都喜欢把面换成宽粉,汤宽粉我更喜欢吃。

宽粉

武汉的这个宽粉跟我在广东吃的粿条、河粉又不一样的,宽粉那是真的很宽,估摸有河粉两三倍那样,比河粉还要更韧一点,我就喜欢这样的口感,特别软烂的我觉得没有嚼劲,特别宽的粉有个好处就是特别挂汤,特别吸味。我吃粉就是喜欢哧溜着吸,甚至有时候会吃的呛到咳嗽,就是因为宽粉上面带着的汤特别多,而且我当时还比较喜欢吃辣椒,尤其是在冬天的时候。

现在据说在武汉流行的是「生烫」宽粉,也就是把牛肉、牛杂、以及其他的猪肉猪杂之类的生肉直接用高汤汆烫熟的,吃起来嫩滑爽口。但是我当时吃的时候还是传统的牛腩、牛肉、牛杂、排骨、肥肠之类的炖煮卤好的作为汤料,或者就直接是一碗没有什么特别配料是素粉,素粉也挺好吃,吃完宽粉和汤料,我习惯把汤都喝完,毕竟原汤化原食,早上吃完走几下路,搭上公交车,在武汉上班时候的基本一早上的能量就都够了。

配菜我最喜欢的要数是卤干子,就是很薄的那种豆腐干,然后过油锅去炸,炸到整体金黄之后放到卤肉的锅里去一起卤,实际上不算是卤,泡着泡着味道就一起进去了,炸过的干子就是用来吸卤味的,有时候还有香肠啊、海带啊之类的也可以一起加进去。小料也是增加这碗宽粉其风味的一大帮手,我个人就是喜欢什么都加上,葱花、香菜、雪里红酸菜、酸豆角、萝卜丁,加上小料之后,真的就是我最喜欢的满满一碗的粉,甚至有时候中午也可以来上这么一碗。

除了这个汤宽粉,有的还喜欢吃干的,就是没有汤的那种,甚至还有「热干宽粉」就是把热干面里面的面,换成这个宽粉,由于宽粉挂芝麻酱更多更浓厚,也有好多人喜欢吃这个版本的。

🔲 ☆

潮汕牛肉粿条汤🍲

潮汕地区最著名的美食其实应该算是潮汕牛肉火锅,这边基本各式各样的潮汕牛肉火锅到处都有,甚至还有开到全国的连锁店,在我看来潮汕牛肉粿条汤可以算作是「简易」版本的潮汕牛肉火锅,有时候想吃火锅但是又太麻烦,基本上去搞上一碗也差不多有那感觉。总体口味还算是偏淡的,主要是牛肉和汤,加上沙茶酱、整个就是一碗鲜味旋涡。一开始来广东这边我对这样的比较平淡口味的粉面都比较吃不太下去,后来慢慢口味会变的淡一些,接受了这些之后,就能感受到其中滋味。

潮汕

在深圳的潮汕人还是很多的,粿条汤也基本上是随处可见,在没来广东之前,我一直以为潮汕是一个地名,实际上是一个地区,就跟「东北」是好几个省的集合一样。潮汕实际上是三个城市,好的那么问题来了,汕头、汕尾、潮州、揭阳。请问这里面有哪个城市不属于潮汕,答案是「汕尾」。我也是好久之后才知道这个「冷知识」(虽然并没有什么用途)。

牛肉

我记得看过一些探店的,在潮汕当地吃火锅,好些店都开在屠宰场旁边,刚刚屠宰过后的牛,直接拉过来做火锅,甚至于有些牛肉还是冒着热气、肌肉纤维还在跳动着的。故此可见潮汕吃牛肉的第一要务就是「鲜」,当然在深圳肯定是吃不到这样新鲜的牛肉了,毕竟这边不准活牛宰杀。一碗牛肉粿条汤端上来,一般最先得去尝尝上面的牛肉,必须得是软嫩鲜甜、刚刚熟,可能还带一点红色的生的那种最好,吃的时候一般会配上一碗沙茶酱的蘸碟,我的习惯是一片牛肉裹上一大口沙茶酱,一口大饱满,牛肉的鲜,再加上沙茶酱回口的甜,基本上这一口就能决定这家粿条汤的好坏。除了牛肉,通常里面还会有牛肉丸,正宗的肯定得是潮汕手打牛肉丸啦,和火锅的那种就是同一个,吃起来Q弹有劲、甚至可以用来打乒乓球。

粿条汤

粿条、河粉、米粉、宽粉,其实都是大米做的,但是米的比例上、形态上、口感上还是有差异的,粿条在我看来是没有河粉那么硬、厚,它更薄一些,吃起来更软一点。最开始我是分不太清楚河粉和粿条的,吃得多了也就能分辨了。

一般进了粿条汤的店,里面会有一口大锅,里面用牛棒骨之类的炖上一锅鲜汤。整个粿条汤的制作流程有顾客点单了,直接加上牛肉、牛肉丸,在锅里稍微的烫一下,烫的将将要熟,颜色可能还带着一点红色的时候捞起来放入碗里,而这样做出来的最嫩口。粿条因为就是熟的,稍微也回锅汆烫一下即可。最后把滚烫的牛肉热汤均匀的泼上整个碗里,出锅的时候还会撒上芹菜碎以及炸好的金蒜末,一碗粿条汤就大功告成,带上沙茶酱、辣椒酱就直接端碗上桌。

🔲 ☆

武汉凉面🍜

那时候刚毕业,还在武汉上班,一个不怎么大的也不怎么正规的公司,老板带我们去大排档吃武汉的油焖小龙虾,一般光吃虾不太到位,就会点上一大盆凉面放在小龙虾的中间,作为今天的主食,我们几个员工的聚餐就这么开始了。在火炉武汉的夏日晚上,下了班,在人声鼎沸的大排档里,这么一桌子员工聚餐凉面作为收尾再适合不过了,如果第二天没有什么重要工作,还会来上一打冰镇啤酒,完美。

凉面的这个面就是碱面里最细的那种面,就是我在之前的襄阳牛肉面里面说的,我非常喜欢的那种碱面细面,不需要煮的很软,因为这种面在备面的时候已经是熟的了,一般为了快速出锅,稍微烫一下就可以直接配上菜上桌了。配菜经过这么些年的进化基本也就大一统了,黄瓜丝儿、汆烫过水的绿豆芽、酸豆角,如果想要卖的贵一些的还会加一些鸡丝儿,基本也都是鸡胸肉煮好之后直接用手撕一撕。

调味上也不太复杂,蒜水是比较重要的一环,去皮的大蒜,用压蒜器压成蒜泥、用菜刀剁一剁也行然后加入适量的凉白开,搅一搅完事儿。蒜水、蒜末、盐、味精、生抽、香醋、能吃辣椒的再加一些油辣子、剁椒酱之类的。还有更讲究一点可以弄点花椒水,简单的做法就是提前用热水把花椒浸泡就行,取其鲜麻味就可以。

芝麻酱在武汉的重要程度不言而喻,不知道别的地方的凉面是不是也会加芝麻酱,反正当时吃的凉面里最后一步,就是淋上芝麻酱,这个芝麻酱貌似也没有什么特别处理,似乎就是早上吃的热干面同款,至少我没吃出什么区别来。细碱面煮好过凉开水,配菜往上一撒、调味先后入盘、最后淋上芝麻酱,就可以直接开吃。武汉太热的时候,中午热的什么也吃不下,我一般也会就在当时的公司楼下搞上这么一碗,吃完也不会大汗淋漓的了。

大排档的小龙虾吃完之后还有一个隐藏吃法,就是我喜欢把小龙虾的汤底拌到这个凉面里一起吃,鲜上加鲜的感觉,可能有人会觉得有点太重口,不过我觉得刚刚好。

那时候还没去广东,还没有养成现在的饮食习惯,还是炙热的城市、炙热的人。

🔲 ☆

黄葱蛋炒饭🍳🍚

我很早就算是会自己做饭了,如果把蛋炒饭也算做「会做饭」的话。基本上在上初中的时候就尝试开始自己搞饭吃,做的最多的就是蛋炒饭,一般情况就是午饭的时候妈妈会在电饭锅里多做一些米饭,然后等到晚上专门做炒饭吃,有说炒饭最好用隔夜饭,虽然不不算是隔夜饭,但是水汽蒸发了一顿饭时间之后的米饭也是很适合炒米饭的。所以我的做饭生涯中,蛋炒饭是我做的可以说是次数最多的、最熟练、最有心得的了。

黄葱

不是山东那种大葱、也不是小葱、是我们那边的一种大小介于前边两种之间的葱,通常似乎是长在沙地里面,为啥叫黄葱呢、是因为最外面的那层白色的皮皮老了之后是黄色的,所以这么叫,出来了之后除了回家,就再也没有吃到过这样的葱了。

我比较喜欢吃葱,我觉得葱就是蛋炒饭里面不可或缺的一位「大将」,整个炒饭的灵魂之升华就在这里。我一般会把葱分成两部分,葱白和葱绿分开,葱白切成段,葱绿切成末,在最开始炒饭下油的时候把葱白炸出香味,最好是有点金褐色、糊了的感觉但又没有完全糊掉,那时候感觉最好吃,香味激发到最大。

蛋炒饭

我自己做蛋炒饭的基本做法就是,先「炼油」,最好是用猪板油,这个时候不需要加太多油,基本够用来炸葱就行,如果里面还有点猪油渣那更是再好不过了,等油温到达了之后,有点冒烟的感觉,就把葱白放进去炸,炸到我要的效果之后放入中午剩下的米饭,米饭在下锅之前已经用饭铲提前铲的比较松散了,如果有些小米饭坨坨也没关系,待会再炒的时候用锅铲按一按就可以。

鸡蛋🍳

鸡蛋我一般不会一开始就加,我喜欢再把米饭全部都炒松散了之后,在把米饭从中间全部拨开,留个「火山口」露出锅底,再次加油,稍微等油温起来一点,再把打好的蛋液倒进去。倒蛋液也有说法,倒的时候可以顺着碗边儿弄成细细一条,更能有蛋花的感觉。如果想吃的嫩一点的蛋花就趁着蛋液还没凝固就把米饭立马扒拉过来一顿爆炒,想吃老一点的,就多等一会,等鸡蛋焦焦的再混着米饭炒。有时候不想搅打鸡蛋了,就直接拿鸡蛋磕了之后放进去,然后用铲子尖儿划拉几下,后面再一起炒,蛋黄蛋白没有完全融合,还能有「金银鸡蛋」的感觉在里面。

炒饭🍚

我自己炒的过程就主打一个火开大、勤翻锅、快锅铲。我很早就掌握了颠锅的技巧,就是得益于经常做蛋炒饭,一遍颠锅一遍锅铲快速翻动,保证每一粒米饭都感受到了铁锅的火热和热油的拥抱。等到看到锅底的一颗颗米饭在锅里跳的时候,基本上就炒好了,可以开始调味了,以前只需要撒点盐,顺便尝一尝到自己口味就行,现在可以再锅边淋点生抽,滋啦一声,关火,关火之后把葱绿末撒到炒饭里然后再颠几下锅,翻几下铲,就可以出锅大功告成了。

我记得小时候没有什么菜的情况下,这种炒饭我都能干个一两碗,后面再长大了就慢慢在里面加更多的配菜,火腿丁、肉丁、胡萝卜丁、香菇之类的,就变成了「炒花饭」,是的,我们那管这种五颜六色的炒饭叫「炒花饭」,属于是很形象了。

🔲 ⭐

客家腌面三及第🥣

第一次听到「三及第」这个名字的时候觉得这个名字起的真好,寓意也很棒,一下子就和「状元及第」这个事儿联系起来了,下次如果有考试什么的,考前来喝上一碗哈哈 。这个好像也是地域性非常强的食物,甚至只在广东省内的一部分才有这个食物,深圳这个地方得益于是个移民城市,所以虽然小众但是也能吃到,也有客家同事吃过这里的说是味道也能有个七七八八。

客家

广东有三大民系,潮汕、客家、广府,而且他们都有自己的语系方言:潮汕话、客家话、粤语。这个食物就是属于客家地区的,大致是在广东、江西、福建的三省交界的地方,据说客家地区的早餐、夜宵一般都有这个,一碗三及第汤,再加上一碗腌面作为标准配置。

腌面

一般和三及第汤配在一起的叫「腌面」,最著名的是梅州腌面,这个「腌」字儿呢,不是我们通常理解的那个「腌菜」的腌那个意思,而是在客家话里「腌」的意思是把烫熟的食物加上调料汁,然后用筷子翻拌均匀这一做法,所以可以理解为广东常见的叫法「捞面」,或者更通俗一点叫「拌面」也行。现在外面的除了配腌面,也可以配米饭,或者腌细米粉、腌河粉之类的其他主食。

腌面通常使用的是扁一点的生面条,跟武汉的热干面有个类似的地方就是也是使用的碱水面,做法非常简单,就是把面条煮熟以后,趁热加上猪油、炸的成金黄色的,香香脆脆的蒜末、以及一些葱花,加上少许鱼露或其他生抽之类的调料,还有肉末之类的,用筷子拌匀即可上桌,香味非常浓郁,一定得趁热吃,醇厚香浓的味道才能发挥到最大。

三及第汤

根据广东省人民政府的官网介绍,三及第的由来:

在科举取仕时代,状元、榜眼、探花为 殿试头三名,合称三及第。林召棠(清朝状元)用猪肝、瘦肉、猪肚子三种猪内脏比作三及第,三及第汤由此而得名。

汤底基本上就是使用猪骨高汤,加点酒糟、咸菜一起煮沸,煮沸之后加入枸杞叶,再加上上面说的「三及第」,等到猪杂刚刚熟好,就可以盛出开吃,枸杞叶做汤也是在广东才知道的,枸杞叶竟然能做汤。汤的味道我还记得第一次吃给我的感觉就是一个字「鲜」,一碗汤里也没什么异味、仿佛是把这个猪杂里面的鲜味全部都提取到这里来了,猪杂也是非常嫩爽可口,一点也不柴,当前前提是猪杂得新鲜。

不知道传统的客家的及第汤里有没有「五及第」「六及第」这个说法,还是说这些个超过「三」的如同椰子鸡一样是「深圳发明」,由于没去过客家地区,也暂时无从考证,不过这些也都是在原有的三种内脏上加了其他猪杂来扩充汤的复合味道,也未尝不可。

🔲 ⭐

砂锅糊饽🥘

从小时候起到在很长的一段时间里,「糊饽」这俩字儿我是真的不知道怎么写的,虽然从小到大一直这么叫它,毕竟这个东西更广泛的叫法可能被称作「薄饼」或者「烙馍」、「烙饼」,为了写这篇文章我问了AI才知道这俩字儿原来是这么写。但是它和广义上的「薄饼」还是有点差别的,毕竟它是作为一种像「面条」一样的食物是带汤吃的,通俗点就是把「薄饼」切成宽点的面条状叫「糊饽」。

砂锅糊饽真的是太少见了,上一次吃它应该我都不记得是在初中或者高中了,襄阳牛肉面至少还能吃到,砂锅糊饽真的是完全吃不到了,连卖的都找不到了,我只能回想一下这个面食的味道,不知道这个砂锅糊饽是不是真的只在我们这个南不南北不北的小地方才有。

砂锅

砂锅就是那种最便宜的砂锅,随处可见,颜色有深有浅,丢了也不心疼的那种,带一个长一点的把手防烫。吃的最多的时候就是在上学的路上,尤其是秋冬时候,最喜欢吃这个了,外面的雪刚停,路上还有不南不北地区的半化不化的雪水混合物,踩上去既是「嘎吱嘎吱」又「噗嗤噗嗤」的那种,比正在下雪的时候还冷得多,一大早上六点钟不到就出门上学去,走在路上天都还没有彻底亮,天色就是半墨半留白的,带点脏脏的灰色的那种天。

到学校半路途中常吃的那家砂锅店的灯还亮着,店老板把煮砂锅的整套装备都直接放在门口两排小灶砂锅轮番上阵,整个门头基本都被水蒸气笼罩,光是远远瞅着就感觉气温上升了好几个摄氏度,这个时候来一碗这个还正在沸腾着的砂锅糊饽,一碗下肚从头到脚寒气彻底被驱赶一空,有时候甚至脖颈背后还能有微微出汗的感觉,这也让在这家店过早,成为我们寒冬腊月上学路上必不可少的一项仪式了。

糊饽

炕的有点微微发糊的薄饼,切成大约两指宽,其实这个干的糊饽就是可以直接吃的,只是在砂锅里过了一遍热汤之后,味道会更浓厚了,汤头基本上就是一些调料加上鸡骨头熬成的鲜汤,微微发糊的糊饽直接把汤汁吸得饱满浓厚,有些年纪大一点的喜欢把糊饽在砂锅里煮的软软的,舌头一抿就吸溜下去了。而我还是喜欢有点口感的,等待砂锅里的汤刚刚开,利用余温直接把糊饽过一下就可以端上来了,这样吃起来糊饽的表面上还是有汤的味道,内芯儿里面可以让牙齿过瘾的嚼劲还在。

有时候老板还会允许我们这些学生自己带上几个鸡蛋丢进去窝成荷包蛋,早餐营养直接提升一个层次,其他的配料上都还是常规选项,肉丁、胡萝卜、土豆、豆腐丁儿之类的,辣椒自助,基本也要不了多久就可以干光一整锅。除了砂锅糊饽,还有砂锅面可以选,汤底配菜都一样,只是把糊饽换成了手擀面,有时候糊饽吃腻了,也会换成面来吃一吃。不知道啥时候能再吃一次砂锅糊饽。

🔲 ☆

第三十三年春分

都过完年了才想起来我的年终总结还没有写,往上翻一翻发现去年也是到了来年才写了上一年的,不过去年是还没过农历新年,今年连春节也过了,直接从冬至干到春分了属于是。也好,不管怎么样,先把标题跟文章创建了再说。2024年一共写了9篇文章,比2023年多了一篇,虽然微小,但也算是一种进步,希望是后面的每年都比上一年多,先立了flag再说。

知乎

注册知乎也差不多马航14年了,也就最近两年开始真正的有记录一些东西。在知乎涨粉了有个小几千吧,也写了挺多篇的「爆款」,抓了苹果发布会的热点,跟风了几个回答,比去年的爆款输出的更多一些,阅读量都也还不错,而且就在昨天,被知乎的创始人周源关注了,说明这些东西也还真的是算是有一些价值的,也算是一个小节点,对一个知乎小透明的肯定吧。

其实写知乎的这些文章,最开始并不是真的想去做自媒体什么的,而且我自己本身就很尽量的在避免自己沉入这些算法导向的app里面,就把知乎当做一个记事本一样,顺便把自己了解的一些跟AI相关的领域的技术类的东西都记录下来,现在是大模型时代,所有的开发人员是必须要有了解这些的,后来没想到确实是点赞收藏(收藏的比点赞的多得多)的挺多,就一直持续写下去了。

变现上也没有多少变现,之前都还提现,现在我都留着不提现了,确实没多少,不过后续还是继续写一些东西在知乎上,能输出更多个人观点出来,写一点没那么AI,「有人味儿」的文章,就像在这个博客的吃面系列一样。(我还在考虑要不要把吃面系列放知乎上,流水账写的太笨拙怕被喷)

>

爸爸妈妈去上班,我上幼儿园

娃在幼儿园适应的不错,一切基本都是按部就班的进行,除了刚开学哭了几鼻子,后面也都能很快的和同学打成一片,今年也参加了几次幼儿园搞的活动,感慨现在的娃的活动的确比我们小时候都还要好的太多了。后面就继续健康快乐滴长大吧。

大模型应用

今年的大模型还是真的非常井喷的状态,而且现在商用的大模型接口的价格也都算是打下来了,目前我自己也是各种AI工具都用的飞起,在知乎上累积了那么多的开源应用,今年应该要在工作中用到大模型了,真正的开发一个和工作业务合并在一起的那种。

🔲 ⭐

南宁老友粉🍝

还是广西美食,暂时还没跑出两广,也是另外一种口味比较重的美食,也是到了广东才吃到这个粉,而且还是最近几年才吃过的,它的知名程度没有柳州螺蛳粉那么大,可能出了两广基本就吃不到了,而且做这个粉还需要使用小锅烩炒一下,更增加了它推广的难度。由于是现炒现烩的,风味满满、锅气腾腾,基本上算是跟柳州螺蛳粉不相伯仲。最近经常吃的那家老友粉倒闭了,卖老友粉的门店也没那么多,想再吃一下得跑好远。

南宁

提到广西,最出名的应该是「山水甲天下」的桂林,其次是「五菱宏光上山了」的柳州,好多人可能还以为广西的省会是桂林,实际上南宁才是广西的首府,穿插一个小知识,民族自治区的省会一般叫「首府」,南宁也算是一个低调的首府之一。

老友

这俩字的来源是一个温馨的传说:

据说很久以前,一位老翁每天都光顾南宁一家茶馆。有一天,老翁因感冒没去茶馆,茶馆老板便以爆香的蒜末、豆豉、辣椒、酸笋、肉末、胡椒粉等配料,煮了一碗热气腾腾的面条送给这位老友吃。老翁吃后出了一身热汗,病状减轻,这碗饱含友情的面条就被称为“老友面”。后来,这种面条的做法逐渐演变成了老友粉。

我在没听到这个来源传说以前,笃定的认为这个「老友」的意思是指里面的各种猪杂,肉片、粉肠、猪肝什么的它们都是来自于猪身上,算是「老友」,我真的好地狱的想法。

老友粉的做法就是一碗一烩,热锅凉油,放入蒜末,小火慢炒,炒香后放入酸笋,然后放辣椒、豆豉一起翻炒到干爽、炒出酸香,通常会加一些切碎的番茄丁,一起继续翻炒
不过有些人可能是吃不惯带番茄的,在店里点单的时候,会有「去番茄」的选项。炒到差不多的时候,加上生抽、盐、鸡精,加入水,沸腾之后加入肉片或者猪杂划熟,如果觉得不够酸还可以加点醋,最后放入米粉,煮熟后出锅的时候加点葱花,还可以加点紫苏。大功告成,酸辣开胃、汤浓味稠、鲜香扑鼻。

据说以前老友粉是面,后面改成了粉,粉是又宽又扁的,跟广东这边的河粉还是有点差别,不过我吃到的基本就是河粉做的了,河粉这种有棱有角的粉,比圆粉更能挂汤,再加上这个汤本身就够浓,嗦起来那是相当过瘾。

🔲 ⭐

Kong 3.7重磅上线!Kong AI Gateway 正式 GA!🦍

Kong Gateway 3.7 版本已经重磅上线,我们给 AI Gateway 带来了一系列升级,下面是 AI Gateway 的更新亮点一览。
文转载自 Kong Inc 公众号,原文查看 https://mp.weixin.qq.com/s/zMZpuEA1tI0UNlD7X7PP8A

AI Gateway 正式 GA

在 Kong Gateway 的最新版本 3.7 中,我们正式宣布 Kong AI Gateway 达到了通用可用性(GA)阶段。

现在,AI 开发者们可以专注于开发 AI 定制应用,比如利用大型语言模型(LLM)和检索增强生成(RAG)技术打造的聊天机器人,或者其他 AI 集成方案。他们无需再从零开始搭建底层架构,去构建保证 AI 应用在生产环境中安全、可监控的基础设施。Kong Konnect 和 Kong Gateway Enterprise 平台将提供所需的扩展性支持。

此外,Kong AI Gateway 现在也可以作为一个软件即服务(SaaS)解决方案完全部署在云端。同时,Kong 还推出了新的 Konnect Dedicated Cloud Gateways 选项,供用户进行云端部署。

Kong AI Gateway 可以用于广泛的场景,帮助加速新的人工智能应用程序在生产环境中的落地。

对现有的 OpenAI SDK 提供支持

Kong AI Gateway 允许让用户通过 OpenAI API 规范作为统一标准,访问其支持的所有 LLM。

使用开发人员熟悉的 OpenAI API 规范将大大简化大家上手的难度。

并且, Kong AI Gateway 原生支持了 OpenAI SDK 客户端库,进一步简化了构建 AI 代理和应用程序的过程。您只需将请求重定向到指向 AI Gateway 路由的 URL,即可通过 AI Gateway 使用LLM。

如果您已经使用 OpenAI SDK 编写了现有的业务逻辑,则可以重用它来使用 Kong AI Gateway 支持的每个 LLM,无需修改代码,因为它是100%兼容的。

引入流式 AI 消息支持

Kong AI Gateway 已在”ai-proxy” 插件中,对所有LLM引擎加入了对AI的流式交互能力的原生支持。这将解锁更多实时体验,而不用等待 LLM 完成处理后再发送回客户端。

在流式模式下,响应将以词元(token)为单位通过 HTTP 响应块(SSE)逐个发送。用户可以通过设置“ ai-proxy” 的以下属性来启用该功能:

1
2
3
4
config:
model:
options:
response_streaming: "allow"

功能启用后,客户端便可在请求体中显式地进行流式请求,例如:

1
2
3
4
{
"prompt": "What is 1 + 1?",
"stream": true
}

凭借这项新功能,Kong AI Gateway 的用户将能够打造更具吸引力和互动性的人工智能体验。

基于 Token 的高级限流能力 (企业版)

我们正在引入一项基于 token 请求量进行限流的企业级功能。通过启用新的“ai-rate-limiting-advanced” 插件,客户可以更好地管理组织中不同团队的 token 消耗水平,从而更好地控制整体 AI 开销。对于自托管 LLM 提供商,当应用程序中的 AI 流量增加时,客户将能够更好地调整其在 AI 基础设施上的流量。

Kong 已经提供了基于发送到 API 的请求数量进行速率限制的 API 速率限制功能。而新版“ai-rate-limiting-advanced” 插件则专注于所请求 AI token 的数量,并不考虑发送给它们原始 HTTP 请求的数量。如果客户希望同时对原始请求和特定AI Token进行速率限制,则“ai-rate-limiting-advanced” 插件可以与标准 Kong 速率限制插件结合使用。

ai-rate-limiting-advanced 插件是目前市面上唯一可以用于 AI 的速率限制插件。

基于 Azure 的内容安全能力 (企业版)

新的企业插件“ai-azure-content-safety”允许客户与包括“Azure AI”在内的多个内容安全服务无缝集成,以验证每个通过AI网关的prompt请求。这项功能也被所有ai-proxy插件的所有LLM引擎所支持。

例如:凭借该功能,客户可以使用 Azure 的原生安全服务策略,在 Kong AI Gateway 中检测和过滤所有不和谐的内容,并将该策略应用于所有 LLM 提供商的prompt请求,以实现内容安全的统一管理。

基于 URL 动态选择 LLM

该特性使用户可以通过客户端请求的 URL 路径动态调用所需的模型。同时,用户可以通过在插件配置中硬编码其名称来使用模型。通过启用此功能,Kong AI Gateway 便可以更容易地扩展到希望尝试各种模型的团队,而无需预先在 “ai-proxy” 插件中进行配置。

该功能可以通过 “ai-proxy” 的新 “config.route_source” 配置参数进行配置。并且,用户只需配置一次,便可使所有模型均通过识别URL路径的方式来动态地、灵活地调用。

支持 Anthropic Claude 2.1 Messages API

Kong AI Gateway 提供一个 API 接口,使用户可以随意调用部署在云端的或自托管提供商提供的模型。该接口在新版本中得到了扩展,以支持 Anthropic Claude 2.1 Messages 这样的通常用于创建聊天机器人或虚拟助手应用程序的API,用于管理用户与 Anthropic Claude 模型(助手)之间的对话交流。

基于用户需求, Kong AI Gateway 将持续增加对更多 LLM 的支持。

更新 AI 用量统计的格式

随着 Kong AI Gateway 进入 GA 阶段,我们已经更新了所有由 Kong 处理的 AI 请求的分析日志格式。

通过这种新的日志格式,用户可以测量 “ai-proxy”,“ai-request-transformer”和“ai-response-transformer” 所请求的每个模型的消耗情况。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
"ai": {
"ai-proxy": {
"meta": {
"request_model": "gpt-35-turbo",
"provider_name": "azure",
"response_model": "gpt-35-turbo",
"plugin_id": "5df193be-47a3-4f1b-8c37-37e31af0568b"
},
"payload": {},
"usage": {
"prompt_token": 89,
"completion_token": 56,
"total_tokens": 145
}
},
… more AI Plugins

这种新的分析日志格式取代了旧的格式,以便企业用户实现更精细化的用量管理。

🔲 ⭐

襄阳牛肉面🍜

在之前的《岂因福祸避趋之,跑完还得继续吃》里面有提到过襄阳牛肉面,但是鉴于我真的好久没吃过了,势必是要单独为襄阳牛肉面写一篇。这个面也真的算是比较有特色的了,比如使用的面条是碱面,碗底垫着的是绿豆芽,除了这个面,我去过这么地方还没碰到第二个这么加的。要说口味的话「火锅面」算是跟它比较接近,而且火锅还得必须是麻辣的牛油火锅,就是放冷了会有橙红色的固体油脂封在锅口的那种。

襄阳

我长大的地方算是个三省交界的地方,也没有什么享誉全国的美食特产什么的,但是我一直都挺喜欢隔壁市的这个牛肉面 – 襄阳牛肉面,虽然我并不是襄阳人。其实我一直叫它襄樊牛肉面,没别的,因为从小就这么叫的,那时候知道襄樊这个名字的来源是因为城区是分了襄城和樊城,后来这个牛肉面名字也随着城市的改名也一起改名了。

牛肉

牛肉面里面最有味道的辣卤一般都是在店门头放一口陶锅,两口三口的都有,一口放辣卤的牛肉,一口放卤过的海带豆腐,还有放肥肠的,迎客的硬招牌就从这些陶锅的味道里蔓延开来。小时候吃的更多的是海带豆腐面因为它更便宜,海带也是卤过一遍的,豆腐呢,有些店是直接就用豆腐过卤,我更喜欢的一种是切成豆腐丁之后,过油炸过一道的,每一颗油炸豆腐丁都吸满了辣卤汤汁,顺着碱面一口下去毫不留情,一干到底。

说到底辣卤的卤,精髓还是飘在最外面的那层红油上,红油除了牛油熬制的香味,通常也还会有一些碾碎的辣椒面,比较细的那种,吃完了面,有时候在碗边上还能看到点点斑驳的辣椒面,升华的辣味就是从这里来的。吃完还依旧会回味一下子,吃不惯这个麻味的也挺多的。

牛肉面的用料是碱面,跟热干面是一样的,而且我特别喜欢细一点的那种碱面,出了湖北之后真的就没有吃过细的碱面了,太粗的减免咀嚼起来没有那种爽脆感,蔫蔫的黏糊。碱面吃起来的口感更加劲道有嚼劲,刚好我个人也不喜欢那种煮的软塌塌的面。襄阳牛肉面的面一般都是提前煮熟了之后放在那,点单之后用笊篱盛面在沸水中来回浸烫数次,待熟透滚热后迅速盛入碗中即可。通常做襄阳牛肉面的小馆子也会做热干面、汤面之类的,面可以通用嘛。

垫在碗底的豆芽才是一绝,必须是使用的绿豆芽,不需要二次汆烫,直接垫在碗底,面煮好之后直接盖在上面,浇上热汤、辣卤,靠着这些余温直接把绿豆芽烫到将脆不脆。我特别喜欢这个绿豆芽的口感,每次去点的时候我都会嘱咐一下,多放一些豆芽。

🔲 ☆

知乎2023中秋月饼礼盒开箱!🥮

作为一个已经在知乎混了12.3808257年的古董级用户,当初知乎还是内测的时候,在微博上问知乎的联合创始人要的内测资格注册了知乎。一眨眼这么多年过去,还是第一次从知乎薅到了羊毛,收到知乎的中秋月饼礼盒,倍感欣慰呐,还差一点被快递弄丢了,邮了三四天才从帝都到货,到货第一时间开箱!

礼盒的内容还是遵从了各大互联网公司礼盒华而不实的传统,收到货好大一个箱子,月饼就四个,其他都是小礼物。

双肩包

一个材料很让人回忆小时候的蛇皮袋子双肩电脑包,外面是裹了一层透明塑料,有种复古又科技的感觉。内胆还是有软质包裹的,有隔层可以放电脑。

加湿器

一个刘看山的遨游太空加湿器,一个宇宙飞船,盖子可以打开,里面的小刘看山可以拿出来。不过这边的湿度已经常年很大了,估计是不太用得上,当个桌上摆件也是不错滴。

茶杯

一个刘看山的冰山茶杯,里面可以打开放茶叶泡茶。茶杯的材料还是珠光流彩的薄薄的玻璃材质,看起来挺贵气的,茶叶就放在刘看山瞅着的冰山里。

还有四个稻香村的月饼,密瓜月饼、乌梅月饼、椰蓉月饼以及枣泥月饼。

🔲 ⭐

苹果WWDC2023 发布的Apple Vision Pro🍎

看到苹果发的这个Apple Vision Pro,瞬间想到微软当年发布的HoloLens,2015年发布第一代,2019年发布第二代,有幸在2016年的时候,在前公司玩过同事的这个HoloLens的一代产品,当时觉得非常惊艳,现在想来也觉得挺震撼。

苹果的这个新品和HoloLens一样,不单纯的是VR产品,更多的是AR(虚拟现实增强),或者说是更接近与MR(混合虚拟现实增强)?,大致意思就是通过摄像头实时的获取现实中的所有场景,在此场景的基础之上实时建模计算拟合之后再输出。

当时用 这个HoloLens印象最深的就是内置了 一个演示游戏,我带着眼镜看向地面,眼镜就实时建模计算 地面的材质、三维、光照以及周围环境等等信息,然后立马模拟出地面碎裂掉落的场景,实时输出到眼镜画面之上,不过碍于分辨率和计算能力,当时看起来还稍微有点假,不过等硬件和算力跟上去之后,应该会有更多的玩法,也会更加惊艳。

不过一些缺点也是明显存在,重量非常感人,基本就是大半个头盔的感觉,做不了什么太大的动作;戴上之后过一阵子发热就非常严重。二代应该比我当时玩的一代重量和发热控制好很多。

目前微软的这个产品除了给消费者使用,企业级应用也不少[1],例如应用于航空航天、建筑改造、汽车行业、军事训练与作战[2],基本上各个领域都有探索与应用。

不知道苹果的这个消费级的能做到什么地步,如果有配套的能特别让人惊艳的游戏或者应用相辅相成,应该会有概率成功,至于能不能引领下一个时代,还是需要加上一个问号。

如果把这类产品加上AI ,《头号玩家》会不会就真的到来了吧!?

参考:

🔲 ⭐

灭蟑螂🪳

今天在V2EX上看到一个帖子是问怎么灭蟑,想起来与蟑螂对抗这么多年,也走了不少弯路,之前买过城中村的「蟑螂药」「老鼠药」无效不要钱的、也用过拜耳的饵胶、还有蟑螂贴、贴墙上的那种黑色小盒子、虽然都有些效果,不过都是反反复复,不能达到一个持续灭蟑的效果。目前正在使用的灭蟑方案是比较可行的,也已经持续了很长一段时间家里基本看不见蟑螂了。

总结一波使用经验,水一篇文章😁。

呋虫胺

买带「呋虫胺」成分的那种喷剂,或者买粉剂回来自己兑,然后持续喷一段时间就可以了,过一段时间定期喷,基本都能保持住,这个东西算是比较新的技术,目前能应对大部分的蟑螂。

成分或者使用效果在知乎上面有很多介绍,基本就是类似于蟑螂的兴奋剂,所以杀死的时候蟑螂都特别兴奋,最主要的事还可以抑制蟑螂卵鞘,防止下一代祸害人间。

使用经验

  1. 喷的地点: 家里其实有很多蟑螂窝点,就照着这些地方喷,蟑螂经常出没的地方也喷一些,还有一个经常忽略的就是外来蟑螂,领居家、大楼里、等等地方,家里杀干净了,蟑螂还是会从外面进来,所以家里出入口、门缝内外、外窗户、窗户缝都喷一些最好。
  2. 喷的时间: 第一次喷完之后会发现死一大批成年蟑螂,然后很长一段时间家里会比较干净,那如何判断下一次啥时候喷呢,就是会看到一些零零碎碎的小蟑螂出没的时候,这时候其实就是下一批小蟑螂又出生了,再按照 [1] 的方法喷一次。如此循环往复,这样就会发现后面每次需要喷的时间间隔会拉大,就会保持比较干净。后面可以定时去喷,就可以长期保持住了。
  3. 最开始喷完的时候会看到蟑螂全部都四面八方的跑出来手舞足蹈挂掉的是正常现象,尤其是第一次喷量大的会吓一跳,勿惊慌,基操。
  4. 「呋虫胺」对人体是有微毒的,虽然杀蟑螂含量很低,但是家里有小孩的还是要注意一些,不要让小孩靠近。
  5. 「呋虫胺」的宠物毒性木有了解过,可自行搜索一下,但是应该也都在可控范围内。

品牌

直接在马云网搜含有「呋虫胺」的都可以,成分基本都是很低很安全,直接有喷剂,或者买粉剂自己兑,找便宜的买就行,现在卖的比较好的就是「巴斯夫」,目前用的就是这个。

🔲 ⭐

Kong Gateway 3.0 正式发布🦍

原文链接:https://konghq.com/blog/kong-gateway-3-0

Kong Gateway 3.0是一个重要的里程碑版本,它引入了我们原生云API平台的下一个发展。Kong Gateway 3.0的企业版和开源版现在都可以从各个发行渠道获得。

在Kong Gateway 3.0中,我们引入了许多功能强大的功能,可带来以下主要好处:

  • 更强的安全性和治理能力:符合 FIPS 140-2 的安全机密存储的合规要求(跨网关操作和插件)
  • 灵活性和可扩展性:客户可以选择他们的插件执行顺序,添加对WebSocket通信的本地支持,深度集成OpenTelemetry。
  • 简单的API管理:Kong Manager UI的新功能增强了用户体验。引入一个功能强大的新路由引擎,优化了复杂路由的表达,同时也提高了运行性能。
  • 显著的性能改进:与Kong 2.8.1.4相比,在高复杂性的路由场景,吞吐量提高37%,延迟至少降低27%、很大概率(99%的情况下)降低47%,内存消耗减少了9%。

Tracing 和 OpenTelemetry

了解Kong Gateway如何执行是部署的关键一环,我们很高兴地宣布在Kong Gateway 开源版和企业版中都提供了广泛的跟踪支持。有两种方法可以开始。可以使用开箱即用的 OpenTelemetry 插件直接将OTel发送到任何兼容的后端,或发送到 OpenTelemetry 收集器。我们一直在用 Honeycomb 测试 Kong Gateway,它很管用。

这是一个代理一个请求到 mockbin.org 的跟踪:

图1:将单个请求代理到mockbin.org的跟踪

然后同样的请求,一旦启用速率限制插件(使用Redis):

图2:启用速率限制插件的相同请求

第二个选择是使用Kong的跟踪插件开发工具包(PDK)来挂钩所有关键事件。这就是 OpenTelemetry 插件的工作方式,它可以完全控制如何收集和抽样跟踪信息,以及如何将数据导出到其他系统。

无论您选择哪种选择,了解Kong Gateway的表现是关键。确定在每个请求上花费的时间可以帮助您优化更高的性能,从而优化用户体验。

Websockets (Beta) (企业版)

秘钥管理(GA)

我们最初在 Kong Gateway 2.8 中发布了 Secrets Management 测试版,我们很高兴地宣布,在本版本中已正式支持。

Secrets Management 允许您将敏感信息安全地存储在外部存储中(用于OSS的环境变量、AWS Secrets Manager 和用于企业的HashiCorp Vault)中,Kong可以在运行时访问这些外部存储。通过将敏感值作为机密存储,可以确保它们不以明文形式通过平台、在Kong.conf或声明性配置文件、日志或 Kong Manager UI 中可见。

此外,使用 Secrets Management 可以为开发、预发布和生产环境提供特定的值,同时使用完全相同的声明性配置文件配置每个环境。

开始Secrets Management 是很容易的,在之前设置明文密码的任何地方,将其替换为一个保险库路径,例如:

1
{vault://hcv/redis/password}

Kong将检测到此引用,并在运行的时候安全地解析。

要更深入地了解秘密管理,请关注我们即将发布的博客,该博客将介绍如何在使用代理缓存高级插件时在 HashiCorp Vault 中存储 Redis 密码。

FIPS 140-2 Compliance(企业版)

插件排序(企业版)

新的路由引擎

这个新功能还是有一些技术含量,Kong Gateway 3.0附带了一个全新的「表达式」路由引擎,可以使用该引擎将请求路由到上游 api。

假设想要路由GET和POST请求,但仅当它们是HTTP请求时。如果不用使用 JSON 来配置路由,可以写一个如下所示的表达式:

1
net.protocol == "https" && (http.method == "GET" || http.method == "POST")

这是一个简单的示例,但是假设希望路由与特定主机匹配的请求,并包含包含主机名的头信息。这是很难预想的,所以让我们来看看它是什么样子的:

1
2
3
(http.host == "example.com" && http.headers.x_example_version == "v2" ) ||
(http.host == "store.example.com" && http.headers.x_store_version == "v1")

只有当主机为example.com且header头x-example-version头的值是v2,或者host为store.example.com且header头x-store-version头为v1时,此路由才会匹配。这是Kong Gateway 3.0新路由引擎灵活性的一个很好的例子。如果在2.x中实现相同的功能将要创建两个单独的路由。

新路由器不仅表现力更强,性能也更好,大型路由配置现在可以增量地重新加载,而不是每次配置更改时都重新构建整个路由器。这使得P99时间在我们的测试中从1.5s减少到0.1s。

最后,介绍一下2.x中的JSON路由器。在这个版本中依旧可以使用,因为目前需要支持现有的路由规则,所以在3.0中保留了现有的路由器。你可以在 kong.conf 中将 router_flavor 设置为traditional,那么路由匹配会和2.x版本一样。

Kong Manager 3.0(企业版)

弃用项和删除项

Kong对稳定性的承诺意味着我们在一个主要版本的所有发行版中都保持向后兼容性。Kong Gateway 3.0让我们有机会弃用一些功能,并删除其他功能,以提高产品的质量。

以下是已弃用或删除的项目:

  • Kong Gateway不再使用启发式来猜测一条路径是否正确。Path是一个正则表达式模式。从3.0开始,所有的正则表达式路径都必须以“~”前缀开头,所有不以“~”开头的路径都将被视为纯文本。从2.x升级到3.0.x,迁移过程应该会自动转换正则表达式路径。
  • 3.0版本弃用对nginx-opentracing模块的支持,将在4.0版本时移除。并使用新的跟踪PDK和OpenTracing模块作为替换
  • Amazon Linux 1 和 Debian Jesse 不再是官方支持的操作系统。
  • 目标端点上的POST请求不再能够更新现有实体。他们只能创造新的。如果您有使用POST请求修改/目标的脚本,在更新到Kong Gateway 3.0之前,将它们更改为对适当端点的PUT请求。
  • Prometheus 插件默认禁用高基数度量。这样 Prometheus 在清除统计信息时会减少数据库的负载。

额外亮点

  • 插件版本一致:要确定你之前运行的是哪个版本的插件是很困难的。从Kong Gateway 3.0开始,插件版本与网关版本保持一致,这样人们就可以确切地知道他们运行的是哪个版本的插件
  • Slim/UBI 镜像:我们已经将Docker构建的基本镜像切换为debian-slim 和 rhel-ubi。这意味着镜像更小,安装的软件包更小,从而获得更安全的镜像。
  • 系统证书颁发机构:Kong 现在默认使用安装在主机操作系统上的任何CA证书。这允许您在一个地方为所有软件管理证书颁发机构
  • LDAP认证:LDAP 认证插件可以通过对 LDAP 服务进行认证来保护服务。Kong Gateway 3.0 增加了基于组成员资格的授权支持。例如「只有 FinanceDev 团队的成员才能访问这个API」。
🔲 ⭐

Kong 2.8 已经发布:提高安全性,简化API管理

原文链接:https://konghq.com/blog/kong-gateway-2-8
今天,我们激动地宣布,Kong Gateway 2.8发布啦,它进一步简化了API管理,并提高提高跨任何基础架构的服务安全性。Kong 对客户和社区的持续承诺,通过提供下一代服务连接平台,在现代架构中智能地代理各类信息。

Kong Gateway 2.8的开源和商业版本现在都可以从各个分销渠道下载或购买使用。

秘钥管理( Beta )【Kong开源版/Kong企业版】

在Kong Gateway 2.8发布的新功能中,首先是一个名为秘钥管理管理的新功能集,目前还是测试版。

在我们开始之前,先定义一下「secret」的含义。在这种情况下,一个秘钥是正确的网关操作所需的敏感信息。秘钥可能是核心网关配置的一部分,例如,数据库连接信息,或者作为与网关服务的api关联的配置的一部分。一些最常见的秘密类型包括:

  • 特殊帐户凭据
  • 密码
  • 证书
  • API密钥

从「分散秘钥」转向集中化管理

通过Kong的秘钥管理,客户可以利用他们自己的集中管理的秘钥管理基础设施。有助于遵守IT安全策略,并确保网关操作所需的敏感信息是最新的,并由适合的使用者来掌握。

提高整体安全性

有了Kong的秘钥管理功能,运营商和开发者可以在开发、测试和部署api时独立工作。随着运营商将更多的基础设施(如new一个数据库)在线化,以支持不断变化的应用程序需求,敏感信息首先根据IT安全治理需求添加到集中式秘密管理器(如HashiCorp Vault)。这些秘钥将作为变量在Kong Gateway配置中引用,从而使Kong部署更加便携和安全。

配置秘钥管理后,Kong Gateway数据平面将向第三方秘钥管理器(如AWS secrets Manager和Hashicorp Vault)请求秘钥,并在数据平面上解析秘钥的值。通过使用具有直观语法的简单变量,开发人员可以在声明性的配置、OpenAPI规范和CI/CD管道中引用秘钥的值,以便在运行时仅在需要的地方临时解除对秘钥值的引用,例如,Kong数据平面。

秘钥管理

通过Kong的新秘钥管理功能,在整个API管理生命周期中使用的任务关键密钥和网关部署都是集中管理的,可审计的,并防止未经授权的使用。这个秘密管理功能包括以下功能:

  • 使用预先构建的「Connectors」到AWS Secrets Manager 和Hashicorp Vault,甚至使用环境变量访问和存储秘钥。
  • 使用一个简单和直观的变量使用到Kong的配置中。
  • 在Kong数据平面上自动解析秘钥,秘钥的值只存在于内存中,并在整个部署过程中被混淆。

《Kong Gateway 2.8》的秘钥管理功能目前已提供公测版本。企业客户可以使用AWS秘密管理器和Hashicorp Vault集成。有关可用性和功能的详细信息,请查看此处的文档

Kong Manager 新增过滤/分类功能【Kong企业版】

(略)

双向TSL认证Forward Proxy高级插件【Kong企业版】

(略)

其他亮点

在插件前端,我们添加了一些新功能:

作为一个独立且值得关注的版本,decKv1.11中得到了增强,改善了声明式配置体验:

  • 首先,decK现在支持核心实体的默认值,并在schema端点的帮助下支持插件。总的来说,这将降低管理Kong Gateway所需的配置文件的复杂性。
  • 其次,在validate命令中添加了一个--online标志,它将对Kong API执行验证,而不会影响Kong Gateway的状态。使用该标志将有助于捕获配置问题之前,试图通过deck sync设置网关。

开始使用Kong Gateway 2.8吧

相关功能,修复和更新的完整列表,请查看这里,Kong Gateway OSS查看这里

现在就开始使用Kong Gateway 2.8 - 商业版和开源版都可以免费下载!如果你已经安装了Kong Gateway,升级到2.8是很容易的,可以查看升级指南。别忘了让我们知道你对Kong Nation的看法!

请继续关注我们即将发布的博文,我们将更多地讨论Kong Gateway 2.8的秘钥管理能力。

❌