2026-01-04 08:00:00

元旦小长假去苏州玩了一圈,有满意也有失望。首先是景色还是很不错的,各种园林寺庙都逛了。拙政园、平江路、山塘街、金鸡湖东方之门、西园寺、寒山寺等等,非常 city walk。
但是吃到了最近几年觉得最难吃的食物,不清楚是店面的问题还是我不太符合当地口味 --- 李百蟹的蟹黄面,平江路店。
我在各大平台专门对比了各个店面,找了一家评分比较高的店(因为不是当地人,首选肯定是查攻略),然后是个人账号推荐的,看着比较真实,就打算尝试一下。
店面排队很长,看着很厉害的样子。等了一二十分钟入座,看了一眼菜单价格不菲。但考虑到想尝试一下著名的当地美食也没有犹豫,就点了两份,108 元/碗。后面想到之后感觉当了大冤种。
上来之后,看了一眼色泽,怎么说呢,不是很有食欲。

口感方面,入嘴之后很明显的冷冻感和预制味,虽然招牌上没写现做的,但我想也不至于搞这么浓的预制味。那种感觉就像想食品加工厂打包好的罐头,在冷库放了几个月然后运输到后厨,经过高温加热后倒入碗中,甚至闻不到蟹的香味。
因为我前一天刚吃了新鲜蒸的螃蟹,对那种味道感知还是比较灵敏的。一碗蟹黄面和一碗蟹黄米饭,米饭口感其实还凑合,但是面条就有些差强人意了,感觉甚至都没煮熟。
不过还是有个可圈可点的地方,他们店的姜茶味道还不错,是我认为在他们店中唯一能吃/喝的餐饮。
还有一个小插曲,中间我吃的老火的时候,旁边也有一对夫妻在啃螃蟹,啃到一半喊来服务员,问你们的螃蟹是不是味道不对,吃起来很奇怪的样子(具体用词有些记不清了,反正是带着贬义),那服务员支支吾吾说了半天,“什么腌制工艺“ ,“可能第一次吃不习惯”之类的话。
看了其他几桌感觉也都吃的不是很开心,像是跟我们一样被攻略骗来的。
我自己是一个非常不挑食的人,今天吃的这个鬼东西玩意我剩了一半,一言难尽。临走前很生气,端了一杯姜茶走。
踩坑 + 避雷,希望打算去苏州的朋友一定要注意这家店,虽然我去的是平江路的分店,但是殊途同归,其他店也好不到哪里去,千万千万切记不要吃“李百蟹”,见一次差评一次。
不过也不能因为这个事情影响我们的旅途,其他时候玩的还是很开心的,拍了不少照片。





2025-12-20 08:00:00
又是一年过去,思考良久,终于到了动笔的时候,基本都在年底 12 月中旬发出来。
常读我博客的朋友或许察觉,近期的更新频率有所下降,打算换个风格。
之前看过 Steph Ango 写的 《40 questions to ask yourself every year》,每年用 40 个问题拷问自己。我觉得这非常有意义,完全可以以此为主题聊一聊。我在原版基础上做了一些符合实际情况的修改,花了一周时间来回答,记录这一年的思考。
1. 你今年做了哪些之前从未做过的事?
经历了一场 3000 公里的自驾长途。之前从未有过这么长距离的驾驶体验,原本以为会很累,没想到精神反而非常舒爽,一路看遍了不同的风景。我之前基本都生活在平原地区,这次来到了一个和我过去二十多年生活环境完全不同的城市,这是一种奇妙的体验。
此外,开发了多个自己想要的小工具,并积累了很多稳定的用户。虽然目前没有盈利的想法,但这也为以后积攒了不少经验。
2. 你有没有遵守年初时和自己许下的约定?
坦白说,只完成了三分之二。明明拥有大把时间却未能如愿,懊恼之余,也确实该好好反思这一年的执行力。
3. 你身边有人生孩子了吗?
大学和高中的同窗们陆陆续续步入婚姻、迎来新生。有时不禁感慨,仿佛大学毕业就在昨日,可现实是,我已经毕业五年了。
4. 你身边有人去世了吗?
万幸,没有。
5. 你去了哪些城市?
宁波、湖州、嘉兴、金华(基本都在浙江省内),还去了重庆和南京。近期有个去苏州的行程,但还未完成。
未来想去舟山、台州度假,也想去太湖和千岛湖。
6. 明年你想要获得哪些你今年没有的东西?
不知道是不是物欲变低了,我实际上没有特别想要的东西。明明喜欢的手机出了新款,却发现完全没有更换的必要(旧手机流畅且够用),不知道是不是我已经跳出了消费主义的怪圈(待考察)。
不过,大概率明年会买一台相机,已经计划了一段时间。
7. 今年的哪个或哪些日子会铭刻在你的记忆中,为什么?
仔细想想,今年过得挺中规中矩的,似乎没有哪个日子让我特别印象深刻。
8. 你今年最大的成就是什么?
下定决心实现“开发 100 个小工具”的目标,目前进度 11/100。这些大多是可以提升我自己体验或效率的工具,有些则是灵光一闪的产物。
9. 你今年最大的失败是什么?
没有成功跳出目前的就业环境,这方面需要好好静下心来筹划一下。
10. 你今年还遇到过哪些困难?
对未来的焦虑,对自我的认知,以及对他人的反应。有些时候心里想到了很多事,却没能付诸行动。
11. 你今年是否生过病或受过伤?
大病没有,小病不断,这应该是当代年轻人的常态了。年中时手腕疼得要命,怀疑是敲键盘太久得了腱鞘炎,去医院检查却没发现大毛病,注意防护了一阵后恢复了正常。最近又有十二指肠溃疡,持续了一周左右,吃点药又好了。
12. 你今年买过的最好的东西是什么?
大疆 Pocket 3。它有着类似相机的质感,女朋友喜欢拍照,周末我就带着她出去玩顺便拍拍 Vlog。有一说一,出片效果确实惊艳。
13. 谁的行为值得去表扬?
这里我要自夸一下。长这么大基本没下过厨房,今年我已经练就了一身厨艺,虽然还比较拙劣,但好在已经养成了一个习惯。
14. 谁的行为令你感到震惊?
没有什么特别的发现。
15. 你大部分的钱都花到哪里去了?
大部分用来储蓄和提高生活质量,很小部分用于玩乐。
16. 有什么事让你感到超级、超级、超级兴奋?
完成一个需求,或者开发出自己心仪的软件。
17. 哪首歌会永远让你想起这一年?
好像没有特定的旋律。
18. 与去年的这个时候相比,你是:感到更快乐还是更悲伤了?变得更瘦还是更胖了?
心态保持稳定,并没有太大的起伏。唯一的变化可能是思考得比以前多了,包括各方面生活工作。
19. 你希望自己能做得更多的是什么?
增加学习强度,打磨技能。继续进行软件开发,学习新的技术、语言和框架,不断尝试新东西。
20. 你希望自己能做得更少的是什么?
少一些颓废,少一些瞻前顾后。
21. 你是如何度过节假日的?
去一些稍远的地方自驾露营,玩个几天。
22. 你今年坠入爱河了吗?
是的,我确认我已经找到了可以陪伴一生的人。
23. 你是否有讨厌某个你去年此时不觉得讨厌的人呢?
谈不上讨厌,反而看淡了许多人吧。不影响我的生活,就随风而去吧。
24. 你最喜欢的电视节目是什么?
我已经很多年没看过电视了,这里换成播客吧。今年听得最多的播客是《半拿铁 | 商业沉浮录》,讲了很多商业大佬的发展历程,非常有意思,也让我了解了很多以前不懂的商业知识以及历史。
25. 你读过最好的一本书是什么?
今年书读得不多。前段时间重温了刘慈欣的小说集,其中的《朝闻道》让我记忆深刻。虽然不完全认同那群科学家的做法,但我尊重他们,正如时代的进步,总是有一群人在孤独前行。
26. 你今年发现的最好听的一首歌是什么?
邓紫棋翻唱的《唯一》,“你真的懂唯一的定义...”
27. 你今年看过最喜欢的一部电影是什么?
今年只去了一次电影院,看的《疯狂动物城 2》,感觉中规中矩,没有特别惊艳,甚至觉得有些不值票价。
28. 你今年吃过最好吃的一顿饭是什么?
在杭州一家叫“野果”的云南菜,很合我胃口。顺便提一句,我讨厌云南的酸汤火锅。
29. 有什么是你想要且得到了的?
一些精神上的东西吧,有了支柱,也有了牵挂。
30. 有什么是你想要却没有得到的?
稳定且无后顾之忧的生活。人这一生无外乎这些,我没有太大的抱负,更看重家庭。
31. 你生日那天做了什么?
我的生日在下周末,期待一下。
32. 有什么还未发生的事,如果发生了,会让你的这一年变得无比满足?
想做的事情其实还蛮多的,我在心中列下了一个清单,希望明年能够全部完成。
33. 你会如何描述你今年的个人时尚风格?
这个问题由我女朋友来回答可能更合适,哈哈。日常穿搭都是她负责,我对时尚没什么感知。根据我的体验,可能是更潮流了,偏向成熟风。
34. 是什么让你保持理智?
稳定的情绪和性格,做事习惯思考后果,这让我规避了很多风险。但代价就是瞻前顾后,不够果断。
35. 你最欣赏哪个名人/公众人物?
最近关注了罗永浩,看了一些他的视频,对某些观点还是挺认同的,其他的就不细说了。
36. 哪个政治问题最令你有感而发?
无。
37. 你想念哪些人?
老同学、老朋友。离开大学所在的城市,还是让我比较困扰,现在只能在互联网上和他们聊天打游戏。
38. 在你新认识的人之中,谁是最好的?
有些失望,今年并没有认识新朋友。
39. 今年你学到了什么宝贵的人生经验?
别总想着失去了什么,失去了就是失去了,多想想自己还剩下些什么。
40. 能够总结你这一年的一句话是什么?
迷茫地过完了这一年。回过头才发现 2025 年过得好快,我都怀疑时间是不是被偷走了,一眨眼就没了,感觉自己并没有做出太大的成就。
附带一份 2025 的 GitHub 年度总结,没想到提交了这么多 Commits.

2025-11-21 08:00:00
如果你的静态博客使用了 Giscus 作为评论系统,那么所有评论内容实际上都会存储在你对应仓库的 GitHub Discussions 中。
这种方式免去了自建数据库和后端的麻烦,但很多人会关心一个问题:能否把评论备份导出?
答案是:可以!因为 GitHub 提供了完整的 API 来读取 Discussions 的全部数据。下面是一份 python 脚本,可以一键导出 Discussions 的数据成 json 格式。
准备工作:
脚本放在最下方,我们先需要得到几个关键数据:
read:discussion 权限前三者很好得到,暂不提,分类 ID 可以在之前部署 Giscus 看到,也就是 data-category-id 的值。

开始爬取
在本地新建一个 export_giscus.py 文件,复制下面的代码进去,然后将这几个信息都填到配置中,最后在终端执行 python export_giscus.py。
程序会生成一个 .json文件,里面就是所有的 Giscus 评论数据。
import requests
import json
# 配置
GITHUB_TOKEN = "YOUR_GITHUB_TOKEN" # 填你的 token
REPO_OWNER = "your_owner" # 仓库 owner
REPO_NAME = "your_repo" # 仓库名
CATEGORY_ID = "your_category_id" # 绑定 giscus 的 Discussion 分类 ID
# GraphQL Endpoint
API_URL = "https://api.github.com/graphql"
HEADERS = {"Authorization": f"Bearer {GITHUB_TOKEN}"}
def run_query(query, variables=None):
r = requests.post(API_URL, headers=HEADERS, json={'query': query, 'variables': variables})
if r.status_code != 200:
raise Exception(f"Query failed with status code {r.status_code}: {r.text}")
return r.json()
def export_discussions():
discussions_data = []
has_next_page = True
end_cursor = None
query = """
query($owner:String!, $name:String!, $categoryId:ID!, $after:String) {
repository(owner: $owner, name: $name) {
discussions(first: 50, categoryId: $categoryId, after: $after) {
nodes {
id
title
url
createdAt
author { login, url }
body
comments(first: 100) {
nodes {
id
createdAt
author { login, url }
body
}
}
}
pageInfo {
endCursor
hasNextPage
}
}
}
}
"""
while has_next_page:
variables = {
"owner": REPO_OWNER,
"name": REPO_NAME,
"categoryId": CATEGORY_ID,
"after": end_cursor
}
result = run_query(query, variables)
repo_data = result["data"]["repository"]["discussions"]
for discussion in repo_data["nodes"]:
discussions_data.append(discussion)
end_cursor = repo_data["pageInfo"]["endCursor"]
has_next_page = repo_data["pageInfo"]["hasNextPage"]
with open(f"{REPO_OWNER}-{REPO_NAME}-giscus.json", "w", encoding="utf-8") as f:
json.dump(discussions_data, f, ensure_ascii=False, indent=2)
print(f"导出完成,共 {len(discussions_data)} 个 Discussion,保存到 {REPO_OWNER}-{REPO_NAME}-giscus.json")
if __name__ == "__main__":
export_discussions()
2025-10-24 08:00:00
很久没有在小区门口看到摆摊的小贩了,之前还有很多,最近一个月突然销声匿迹,经常能看到城管在巡逻,应该是维持卫生秩序,不让摆摊。
然后昨天晚上下班后,和女友路过小区门口看到一家摆着河南烩面招牌的小摊,价格很公道只需要 12 元,来自家乡的味道,本来晚上不打算吃东西的,但是激烈思考了几秒钟后,决定和女友一起吃一碗。
毕竟也好久没吃了,我都记不起上次吃河南烩面是什么时候。
大致看了一下确实是羊肉汤煮的,能闻到些许羊膻味,感觉还是蛮正宗的。当时阿姨正在做的时候没怎么关注,只顾着和女友聊天了。
等到做完之后发现用一个塑料袋打包的,我们还略微吐槽了一下,第一次见用塑料袋打包汤面的,往常都会给一个塑料盒,不过也没怎么在意,分量还是很大的,想着是缩减成本然后就回家了。
等到家之后,拿出一个大碗把袋子套在里面,一打开就能闻到非常香的羊肉味(膻味),点缀着一些葱花香菜,看起来非常有食欲,汤里还带有一些羊杂、千张,甚至还有一颗鸡蛋,这让我们很惊喜。
虽然说成本不高,但是在杭州这个地方,遇到这个价位的食物,里面给出这些配料,非常之良心了。最后我们几乎是把汤都喝的干干净净。
ps: 另外想起来上回女友在公司楼下吃的一碗招牌牛肉面,25 元一碗,真的是清汤清水,喝了一口汤尝尝味道,连面都没吃直接走了。
哎,一言难尽。
2025-10-22 08:00:00
因为一些需求,需要和同事之间同步一些代码,但是前提是不上云,也不想走公司内部的 svn 存储。因此打算在本地局域网起一个 git 服务,想要多台电脑像操作 GitHub 一样在本地执行各种拉取合并操作。
我锁定了开源项目 Gitea,可以在任何一台机器上部署类似 GitHub 的服务,支持各个系统。当然也支持我的电脑环境本地 Windows。
只需要一台电脑长期开着充当服务器的角色,其他电脑在同一个局域网下就可以连接。
打开网站 https://dl.gitea.com/gitea/ ,找到最新版本,此时我的最新版本是 1.24.6,进去之后找到符合我电脑的版本。

搜索 windows-4.0-amd64.exe,找到 gitea-1.24.6-windows-4.0-amd64.exe,点击下载,然后把这个文件放在一个指定的位置,比如我放在了 D:\Gitea\ 目录下,然后再双击运行,就会弹出一个 cmd 窗口,不要关闭放在那里即可。
接下来打开 http://localhost:3000/ ,就可以看到本地运行的服务。

此时已经成功了一半,接下来就是配置时间。
注意:关于管理员账号
如果没有在配置服务时填入管理员账号,那么默认第一个注册的用户就是管理员。

一切准备就绪后就完成了,让同事登录 http://192.168.xx.xx:3000,使用方式和 GitHub 一致。
终于可以愉快的写代码了~