微信小程序链接怎么转换为二维码?扫码直接跳转到小程序指定页面
这篇文章介绍了作者在做海报时,因购买指定影院场次电影票分享只有链接无二维码,传播不便。经查找,发现可通过这家网站将小程序链接转二维码,该网站输入链接点击生成,每日 5 个免费额度,打开无广告,解决了作者做海报需扫码便捷购票的难题。

这篇文章介绍了作者在做海报时,因购买指定影院场次电影票分享只有链接无二维码,传播不便。经查找,发现可通过这家网站将小程序链接转二维码,该网站输入链接点击生成,每日 5 个免费额度,打开无广告,解决了作者做海报需扫码便捷购票的难题。

精神食粮系列 声音的觉醒(四) 科班声乐体系与普通人自学唱歌的天然断层:语言、方式与结构的差异 无敌的个人博客 tangwudi
1 前言 随着最近我初步实现了“喉位自由”这一目标,我就一直在反思过去两年研究“唱歌”这件事走过的弯路——说是山路十八弯都不夸张。之所以绕了那么多圈,最根本的原因还是一开始就被网上各种“声乐老师”的教学视频带偏了方向,更别提其中不少内容,本质上是为了卖课而刻意把大家往“高音路线”上引(这一点在系列文章第一部里已经聊过了:当唱歌被误解成’高音游戏)。 但高音误区只是问题的一部分,更关键的,其实是我在最初入门时压根没意识到:科班声乐体系的练声、理论和专业术语到底适不适合作为一个零基础、只是想把 KTV 唱好的普通人来用的“理论起点”? 这个问题当时我完全没想过,只觉得专业的、系统的、正规的训练方式,应该就是最好的方式。 等到我真正把科班的训练逻辑、课程结构、练声内容、目标体系一点点拆开来看之后,才慢慢意识到——这里面可能隐藏着一个巨大的误解,而这个误解几乎困住了绝大多数自学唱歌的普 […]
<p>The post 精神食粮系列 声音的觉醒(四) 科班声乐体系与普通人自学唱歌的天然断层:语言、方式与结构的差异 first appeared on 无敌的个人博客.</p>

作为资深 MinIO 用户,经历过 MinIO 一系列操作,从砍掉网关模式,砍掉控制台,到维护模式。老实说,我个人认为这类开源产品很难实现商业化。这种不断收缩能力边界的变化,对使用者来说影响是实实在在的。并不是功能不好,而是你已经把它当作基础设施依赖了,却发现它的产品路线在变, 这也是我开始认真考虑 MinIO 之外的选择的直接原因
为啥选择 RustFS,经过大量讨论与实践,RustFS 逐渐成为那个改动最小、适配最易的首选替代品,深度兼容 MinIO 的 API 与架构。
本次主要迁移了一个大盘鸡备份 MinIO, 方便操作直接使用 compose 部署
services:
minio:
image: ccr.ccs.tencentyun.com/k7scn/minio:2025
container_name: minio
restart: always
environment:
- MINIO_ROOT_USER=Fah0quaixei0
- MINIO_ROOT_PASSWORD=wi0iez3gaaZoghohCai5zeedeenatooxunoh8AhwangeiPho8Obahja
- MINIO_DEFAULT_BUCKETS=backup
ports:
- '100.90.80.15:9000:9000'
- '100.90.80.15:9001:9001'
volumes:
- '/data/minio:/bitnami/minio/data'
rustfs:
image: ccr.ccs.tencentyun.com/k7scn/rustfs:latest
container_name: rustfs
restart: always
environment:
- RUSTFS_ACCESS_KEY=Fah0quaixei0
- RUSTFS_SECRET_KEY=wi0iez3gaaZoghohCai5zeedeenatooxunoh8AhwangeiPho8Obahja
ports:
- '192.168.94.15:9000:9000'
- '192.168.94.15:9001:9001'
volumes:
- '/data/rustfs/data:/data'
- '/data/rustfs/logs:/logs'
注意 RustFS 的日志目录,不确定官方文档和示例有冲突(/logs 或者 /app/logs), 其实影响不大。
docker compose up -d
chown -R 10001:10001 /data/rustfs/data /data/rustfs/logs
docker compose down -v
docker compose up -d
其他的都和 MinIO 没啥区别,登录控制台创建 Bucket
可以直接使用 MC 操作
mc alias set rustfs http://192.168.94.15:9000 Fah0quaixei0 wi0iez3gaaZoghohCai5zeedeenatooxunoh8AhwangeiPho8Obahja
测试直接使用 restic 测试
export RESTIC_REPOSITORY=s3:http://192.168.94.15:9000/backup/test
export AWS_ACCESS_KEY_ID=Fah0quaixei0
export AWS_SECRET_ACCESS_KEY=wi0iez3gaaZoghohCai5zeedeenatooxunoh8AhwangeiPho8Obahja
export RESTIC_PASSWORD=eexeeWie1ri
直接备份测试
restic init
restic backup /data/mariadb --tag mariadb
repository 7d5b008d opened (version 2, compression level auto)
found 2 old cache directories in /root/.cache/restic, run `restic cache --cleanup` to remove them
no parent snapshot found, will read all files
[0:01] 100.00% 1 / 1 index files loaded
Files: 205 new, 0 changed, 0 unmodified
Dirs: 8 new, 0 changed, 0 unmodified
Added to the repository: 10.385 MiB (730.814 KiB stored)
processed 205 files, 124.408 MiB in 0:10
snapshot fed84173 saved
从目前来看没啥问题,可以先跑一段时间再看看。也可以使用 mc mirror 等工具将存量数据从 MinIO 迁移至 RustFS
开源的魅力,就是你永远有选择的余地。

年底了,小偷开始频繁出没。最近在群里多次看到小偷进店行窃的视频,我提前在屋前屋后都装了摄像头,即便不在家,也能通过监控直接喊话震慑。
以前每天早上,我都会看看大家写的日志、随手评几句,时间充裕的话,还会自己写篇生活日志发布。可能是心态变了,前段时间我干脆关闭了评论功能,早上也不再去逛各位博主的网站。
但这段时间,我从各种渠道收到了大家的留言:有的发在留言区,有的写在还能评论的文章下,还有人在群里艾特我,甚至还有专门发邮件过来的。看来大家确实喜欢交流,看到生活日志就忍不住想评论,我自己其实也是这样的人,以前就经常评论别人日志。这么看来,我当初 一刀切关闭评论确实不妥,直接断了和大家沟通的渠道。
最近我和两个小伙伴,忙着捡回我丢了十年的开发技术。最开始是从我的博友圈(现在改名为有圈)程序里拷贝了一份源代码,帮小伙伴做二次开发、改成符合他需求的版本。改着改着就上了瘾,后来又和另外一位小伙伴聊到 webp 压缩,说起那些网上提供的webp压缩服务一言难尽,超过5兆还得开会员,所以干脆说不如我做一个工具,说干就干。
我已经很多年没写过桌面应用程序了,下载的 IDE 界面看着都陌生。毕业后上班就一直做 B/S 开发,正是如此我经历了IE6魔鬼时代,天天被各种兼容性问题折磨。等到我退出开发行业时大家已经开始用谷歌浏览器了。
现在这个图片压缩工具,我还在不断优化:已经支持上传到阿里云 OSS,压缩完上传能直接生成 URL 地址供复制,目前正在加 FTP 上传功能,也新增了水印功能。这么多年没写代码,现在反而越写越上瘾。尤其是前天晚上,我们三爷们,一个在武汉一个岳阳一个东莞居然熬到了 4 点,我是因为一个 bug 一直没解决,好在有他俩陪着一起熬夜、聊天,快4点的时候总算把问题解决了,程序也能正常运行。
白天有别的事,只能趁间隙偶尔看一眼。接下来我想再把这个软件的功能做强大些,也考虑靠它赚点收入:比如转码同步上传云存储的功能,年费 19.9 元;软件所有功能买断,定价 99 元。赚钱不丢人,如果能靠这个赚点钱,也是件好事。总不能觉得这也丢人、那也“丢人”,最后什么都不做,一分钱也赚不到,那才真可惜。
昨天我还想到,之后可以再开发一个文件备份软件。以前在公司上班时,我就特别需要 “用户上传文件同步备份” 的功能,这样每天新增的文件,都能自动异地同步备份,会方便很多。
好了,今天就写到这。现在快6点了,得赶紧叫还在外面玩的娃回来吃晚饭了。
这个蓝图是一个双栏布局,可用于情侣和合作伙伴的作品集网站。其设计理念是展示一个初始的双面视图,当点击其中一面时,整个页面会向相应方向过渡,显示所选人物的独立页面。




从Hugo主题Stack移植而来( https://github.com/CaiJimmy/hugo-theme-stack ),支持深色模式
在线预览
原版无评论功能,本站网盘版本已为其追加评论功能
该渲染由 Shiro API 生成,可能存在排版问题,最佳体验请前往:https://innei.in/notes/204
这段时间,事情一件接一件。先从日常说起吧。
最近看了新的 IP:疯狂动物城,前作看了一半之后忍不住直接去电影院先去把 2 看了。
https://www.themoviedb.org/movie/1084242-zootopia-2
复仇爽剧:模范出租车出第三季了,速看。
https://www.themoviedb.org/tv/119769-taxi-driver
上个月说的羊蹄山之魂通关了,正在二周目新游戏+。最近有点忙,还没有时间玩。
然后再来说说一系列的难受的事情。
裁员那天,HR 找我聊。我以为会是一次体面的告别,甚至在某个瞬间,我还真的把它当作“和平结束”。
我接受得很平静。没有赔偿,只有十天的通知费,设备还要折旧回收。
这和老板之前的说法不一样——他说会有一笔金额,最后并没有兑现。说到底,给不给,很多时候更像是取决于公司怎么选择,我也很难指望一定会有结果。我当时理解香港这边的规则和大陆不太一样,很多保障并没有那么到位,至少对我来说是这样。相比之下,大陆的劳动法在这件事上,确实更能保障一点。
后来我写了一篇文章,是对这段时间的总结、复盘和经验整理。我写到了一些我认为真实发生过的事情,于是被要求删掉。他们似乎不希望外界因此去质疑产品的未来。但在我看来,这个项目对外的更新与动作已经停滞了一段时间,我很难再用更乐观的词去形容它。
我还是删了。调整内容,重新发布。
删掉的那几个小时,反而让吃瓜的人传得更开:更多人开始围观一个可能从来没用过的产品,开始猜测、开始补全故事。
我没想过会这样。我只是把文字放在自己的博客里,没有在任何社交媒体发链接。可它还是自己长出了腿,走得比我想象的远。
总之,事情已经发生了。只是我没想到,最安静的地方,也会有回声。
后来的事情,让我开始感到气愤。
我从一些同样被裁的人那里,听到了很多过去从未得知的细节。起初我也知道:所谓「事实」,往往只是当事人愿意倾述的版本;人们更愿意相信自己想相信的那一套。可再往后,一些细节在不同人口中反复出现,我很难再把它当成纯粹的「版本」。
而这些信息里,我感受到的是一种让我很不舒服的做法。我很难把它当成善意。
我甚至有种恍惚:我正在经历的流程,像是他们已经很熟悉的流程。很多表达让我感觉更像是在引导情绪,让人先心软,再一点点降低预期。
有些话当时听起来很重,像是在替你争取,像是站在你这边。可很快我又看到各种说法开始变化,解释一层层叠上来,最后结论还是往下走。有人情绪激动,场面也变得很难堪,我也在那种尴尬和同情里破防。
我就是在那一刻意识到:这不是沟通,也不是协商。我当时的感受是,这一切太熟练了,像是事情最终会走向哪里,大家心里早已有数。
我当时接受得很平静,而此刻回想起来,更像一个小丑。
我其实并不在意有没有赔偿。入职之前我就查过资料,也问过 GPT,知道香港的法律大抵如此:很多东西写不写进合同、给不给到位,最后都落在“愿不愿意”上。换句话说,我对结果并不意外。
让我气愤的不是钱。是前后说法的落差,是那种被轻轻带过的感觉。
是他们先把话说得像承诺,让你以为自己会被认真对待;又在最后一刻轻描淡写地收回,仿佛从来没有说过。你甚至很难抓住一个明确的“反悔瞬间”,它更像是一种温柔的推诿:说过,但不算数;答应过,但没保证;本来想给,但现在不行。
直到那天的晚上,老板出面发布了第一个公关帖子。
在发帖前后,我注意到他之前转发过的一些内容不见了。这种变化让我很难受,像是我们被悄悄从叙事里抹掉了:那是裁员当天,我们在 X 上发帖找工作,他还转推了,看起来像是"好聚好散"。
可现在,那些转推都不见了。仿佛他从未表态过,仿佛我们从未存在过。舆论开始发酵,像一把火终于找到了引线。
我很气愤那些让我觉得不真诚的说法,但我还是忍着。
很多认识我的朋友,在我把事情的全貌讲清楚之后,都站在我这边。有人在评论区替我打抱不平,也有一些从未谋面的、一直默默关注我的人给我留言。谢谢你们。那一刻我才意识到,原来我并不是一个人在扛。
可真正让我彻底破防的,是这篇公关帖之后发生的另一件事:后来我看到有人公开说“还在招人”。这和我当时的处境放在一起,让我非常困惑。
我后来从别人转述里听到,确实有人收到了类似的招聘信息。真假我不想再追究,但它带来的观感已经足够刺痛。
一边是把所有开发裁掉,一边又在招人。即使我已经大概能猜到这个项目的结局,我仍然会本能地怀疑:他们到底在招什么?他们到底在维护什么?他们到底在演给谁看?而更可怕的是,我已经不会再相信他们说的任何一句话了。
这件事荒诞到像段子,可它真的在发生。
于是开始出现各种猜测。我不想替任何猜测背书,但我能理解大家为什么会这么想,因为许多细节拼在一起,确实让人很难安心。
我那一刻是真的崩溃了。回想过去一年多,自己亲手从零开始打磨那个项目,很多夜晚、很多细节、很多你以为“会留下些什么”的东西,最后把我推到这个下场。突然就显得很可笑。
后面我开始反击。
我把我知道的、我听到的、那些彼此矛盾的说辞一条条摆出来,把不满也摆出来。不是为了吵赢谁,而是因为我突然明白:如果我继续沉默,他们就会替我把故事写完——写成一个“大家都理解、都体面、都没问题”的结尾。
第二天,情绪被推到了顶点。
奇怪的是,这段时间里没有人再来找我“沟通”、也没有人再来做公关。倒像是他们自己开始上演一出反向公关。
先是招人的事。我看到那条内容挂了一会儿,后来又不见了。
然后,有一位老板在公开场合说了这样一句话:
“大意是:创业不是慈善,加入前就该知道风险。”
后面那半句更锋利:他甚至还在强调公司对我们“没有任何可以挑出问题的地方”。
我当时看到这段话,心里一下子就凉了。
原来他们最后选择的立场不是“解释”,也不是“道歉”,甚至不是“沉默”。而是把一切包装成一句轻飘飘的逻辑:你选择了创业,所以你就应该承担一切;你受伤了,也只是你没想清楚风险;至于他们许下过什么、表演过什么、推诿过什么,都可以被这句话一笔抹平。
你们的委屈不是委屈,你们的付出也不算付出——你们只是在“应该如此”。
而真正荒诞的地方在于:他们一边说“风险自担”,一边又需要你相信他们;一边裁掉所有开发,一边又试图招新人;一边要求大家体面收场,一边又在公众叙事里把责任切得很干净。
我从来没指望创业像童话。我只是没想到,最后会被当成一个“应该懂事”的道具。
更荒诞的是,话说到这里还没有结束。那个说出“创业不是慈善”的老板,转头又出现了一些私下的说法,像是在推动大家选边站,也像是在形成某种“口径”。于是新的版本开始流出来。而且每一个版本都比上一个更像谣言。
他说我是自愿离职的,不是被裁的。
他说公司裁员不给赔偿,是因为“你没签国内合同,这是你当时的选择”。可事实是:这根本就不是“选择”。对我来说,那份合同从一开始就没有真正的可选项。你甚至没有站在十字路口,你只是被推着往前走,走到最后再被反过来指责:你看,是你自己走的。
这两天我真的累了。我开始想结束这一切,不想再把更多人的时间和精力卷进来。朋友的,围观者的,甚至我自己的。
可偏偏就在我想把情绪压下去的那天晚上,他发了第二篇公关小作文。很长,很“认真”。开头先说外界的讨论被片段化信息带偏了,说这次人员调整是正常的商业决策:为了长期发展、为了降低成本、为了对用户负责,并且不是突发,而是按节奏推进。接着,他把矛头对准了“某一位离职员工”,暗示情绪之所以失控,是因为有人在夸张表达、带动对立。
我看完反而更气愤。是因为他把重点换掉了。他没有正面回应那些承诺为什么会消失、那些话为什么会变成空气。他只是把故事重写成另一种更安全的版本:公司在做正确的事,而问题出在“表达方式”和“情绪”。
更让我不舒服的是,他把生活也拖进了工作里。奖金、回忆、一起旅行、一起拍照,这些东西被摆出来。我承认,加班可能是我自己的选择,奖金也是对方的选择。我只是觉得,选择不等于可以互相抵扣。钱当然重要,但它换不回生活,也换不回那些被占用的深夜和周末。
至于所谓朋友,我更不愿意被拿来当论据。老板和员工之间存在强利益关系,权力和选择从来都不对等。它可以是合作,可以是尊重,甚至可以是欣赏,但很难是朋友。朋友不会在争议发生时,用私人回忆来证明自己更正确。那更像一种提醒:你应该懂事……,你应该感恩,你不该把事情说成这样。
那一刻我意识到,对我来说这更不像沟通。他们只是要一个体面的结尾——而这个体面里,不包括我。
我再也压不住情绪,于是主动联系了他。在那段漫长的沟通里,我其实只想尽快结束这个闹剧。
越聊越像陷进去的泥。一边是迫切想停下来的疲惫,一边是被情绪推着走的冲动。再加上一点点生活外的交情,哪怕只是曾经的礼貌,曾经的温和,我心软了。我以为只要把话说开,把情绪压下去,事情就能回到“到此为止”的轨道上。
但现实不是这样运作的。
我在对话里意外透露了一些来自前同事的说法。它原本只是倾诉,只是“我听说过”。可话转了几层之后,性质就变了。传到另一个老板耳朵里,它可能就不再是信息,而变成了立场。不再是叙述,而变成了证词。于是那个说过“创业不是慈善”的人,随后我也听到,有人反复联系前同事,话里话外像是在把责任重新分配。
我成了夹在中间的人。两边都不满意,两边都觉得我有问题。我既得罪了他们,也伤到了那些曾经支持我的人。
最后,事情还是结束了。非常不愉快。
我得到了什么呢。得罪了两边的人,伤害了曾经站出来替我说话的人。然后我发现这一切都无法挽回。那一晚,我对自己的鲁莽感到深深的自责。情绪冲昏了头脑,像个小孩子一样,急着证明,急着结束,急着把痛苦从胸口掏出来给别人看。结果只换来两败俱伤。
我甚至开始反问自己,我预想的结局到底是什么。是一个道歉,一个解释,一句真话,还是一个终于可以睡觉的夜晚。可到了最后,什么都没有。只有更大的噪音,和更难收拾的残局。
那天回家的路上,我在车里坐了很久很久。车外的世界还在动,灯在走,我却像被按在原地。然后我给前同事发了一段很长的消息,更像是一封迟到的道歉。
发完那段话,我才意识到一个更刺人的事实。有些话一旦说出口,就不再属于你了。它会在别人手里变形,会被拿去站队,会被拿去证明某个叙事。你站在中间,怎么解释都像狡辩,怎么沉默都像默认。
那一晚,我第一次认真地承认,我不是输给了他们的公关。我输给了自己的冲动。
那天之后,我删掉了 X。直到一周之后,世界仍然在运转,吃瓜的人已经散伙,一切又恢复了平静。
平静来得很快,快到像是什么都没发生过。可有些东西并不会因为热度退去就被证明是误会,它只是被遗忘了。
那个曾经说还会继续迭代维护的人,直到现在也没有看到对应的变化。对我来说,那句话更像是一种当时的安抚,而不是后续会兑现的计划。
而我也慢慢确定了一点,我很难再信任他们对外的表述。不是因为我想否定什么,而是因为我已经看过太多前后不一致。
不是因为真话太复杂,也不是因为真话太难讲。我能想到的解释是,真话一旦说出口,就会让体面露出裂缝。于是更多时候,他们选择沉默,选择拖延,选择用一句句看起来正确的话,把真实的部分藏起来。
在那一周里,我无意经过一座寺庙。我进去站了一会儿,很诚心地祈祷,希望自己能在安稳中找到一块生存地。
出来的时候,看见门口有两块石头,上面分别刻着两个字。
放下 接受
像是冥冥之中在告诉我,事情已经到这里了。
回去的路上我又路过一家书店。玻璃上印着一句话,我站在那儿看了很久。
希望你能记住我,记住我曾经这样存在过。 ——村上春树
我不知道为什么那一刻忽然很想哭。也许不是因为谁,也不是因为那个项目,而是因为我突然意识到,我真正害怕的并不是失去工作。
我害怕的是,我花了那么多时间和心力,最后连“好好告别”都不被允许。连一句真话都不能留下。连我曾经那样认真地存在过,也要被改写成不合时宜。
感谢你能看到这里。
该渲染由 Shiro API 生成,可能存在排版问题,最佳体验请前往:https://innei.in/posts/experience/looking-back-at-myself
前几天收到通知,所在的团队解散了,我这段工作也一起画上句号。
虽然这个月一直隐隐觉得情况不太妙,但真的落在自己身上的那一刻,人还是会愣一下。有点空,有点失落,也有种「啊,原来已经走到这一步了」的感觉。
想了几天,还是决定把这一年多的经历和一些个人反思写下来,当作一个存档。以后哪天心态稳定了,再回头看,至少能更清楚地知道自己这段时间到底经历了什么、学到了什么。
最早接到这个机会时,我刚经历人生第一次裁员。那段时间整个人状态挺糟的,对未来特别迷茫,对自己也没什么信心,各种躯体反应、抑郁、焦虑、失眠一股脑地冒出来。
就在那时候,有人找我聊到这个项目。那会儿项目还非常早期,很多东西都停留在想法、脑图和讨论里,连像样的 demo 都还没有。但对当时的我来说,有人愿意拉我一把,给我一个能重新把注意力投进去的事情,本身就挺不一样的。
现在回头看这段经历,哪怕后来大家的路径和选择各不相同,我依然很感谢当时那次「拉一把」。它确实是在我比较低谷的一个时间点,给了我一个出口。
另一方面就是一个很简单的判断:我本身就对这种类别的产品很感兴趣。
我一直喜欢做 ToC 的产品,喜欢琢磨交互细节、体验和界面呈现。
再一次从零开始创造一个东西,其实是很酷的事情,而且自由度也很高。这个项目在早期也给了我很多发挥空间。
如果只看事情本身,这一年多其实过得很密。
因为项目很早期,很多基础的东西都需要从头搭起来,我主要做了这些:
那段时间,我基本是 设计、前端、产品 三件事一起干。经常是白天写代码、改交互,晚上还在想组件要不要再重构一下,周末偶尔继续打磨。
我对细节的执着,在那个阶段被放大得很明显。经常为了一个 1px 的对齐,或者一个 hover 状态,盯着屏幕看半天,不停调 spacing,调整节奏。
后面我的 commit 数一直往上爬,前端那块几乎所有角落都翻过一遍,一些历史遗留的问题也是趁着重构的时候顺手清。
有人跟我说,我这状态有点像把公司项目做成了个人项目。虽然有点玩笑的成分,但确实说明了当时那种「恨不得所有细节都先过一遍我眼睛」的投入。
从纯工程师视角看,这一年我学到的东西挺多的。
以前更多是「完成别人安排的需求」,现在多少对这个产品的形状、系统架构、体验节奏,有了一些自己的判断。
接下来这部分,就不局限在这个项目本身了,更多是我在这段时间里,对「怎么做一个产品」的一些感受。
我不打算给任何人下结论,只讲我自己以后会怎么做得不一样。
在早期阶段,我确实更偏向「先把东西做出来」「先做一个好玩的产品」,对商业化的思考会往后放。事后回头看,对我自己来说,教训是:
不一定一开始就要把每一块都推到极致,但至少要在心里留一条大致的路: 这个产品大概是为谁做的,这些人未来有没有「愿意为它长期买单」的可能。
如果脑子里完全没有这条路,日常决策就很容易被短期数据牵着走。很多看上去漂亮的增长,不一定是在为未来打基础,有时候只是让你在一条不太适合长期生存的路径上走得更远。
现在再做任何项目,只要心里有一点「它有机会变成一个长期产品」的念头,我都会尽量在比较早的阶段,先粗略想清楚:
这不只是这次经历的感受,其实是这几年所有项目叠加起来给我的提醒。
另一个对我很深的提醒是:激励是一种筛选器。
各种奖励、玩法,在短期内都非常有效,这点我在这个项目以及别的一些项目里都见过。
但它筛出来的,更多是「对激励敏感的人」,而不一定是「对产品本身有强需求的人」。
如果前期一直用这种方式去拉新,很容易导致:
以后再做类似的产品,我会更谨慎地区分:
这个反思同样不是在评价哪个项目好或不好,而是提醒自己:
不能只被短期数字牵着走,要时刻记住自己真正希望留下的那一拨人是谁。
这段经历里,还有一个挺扎心的感受:
大家都很努力,事情也很多, 但有时候你隐约知道,自己是在用努力填前面没想清楚留下的坑。
你越是全力往前冲,就越难停下来问自己一句:
如果照现在这个方向一路做到极致, 那个终点真的是我想要的吗?
这个问题不针对任何人,只是对我自己的一种提醒。以后我会更刻意留出一点「按暂停键」的空间,哪怕只是定期问自己这个问题。如果长期答不上来,可能就说明有哪里不太对劲了。
这几年回头看,会有一个很强的感觉:
有些窗口期是真的会关上, 关上之后再做同样的事,难度完全不一样。
不只是这一次,我接触过的好几个项目都有类似的影子。在某个阶段其实都迎来过一小波关注或讨论度,如果那时能更早地意识到:
后来的剧本可能会不太一样。当然,也未必就一定成功,但至少不是在热度退去之后再来补前面的课。
这件事给我的提醒是:
前面说了很多产品、商业、技术上的东西,但对我个人来说,这段经历还有一块很重要的是「人」。
不管后来每个人的选择如何,这件事本身我是一直记在心里的。
有时候就是这样。你在别人低谷的时候伸一把手,对那个人来说,意义会很长。
所以,对这段经历,我的情绪是很复杂的:
它既不是简单的「成功」或「失败」两个字可以概括的,更像是一次把很多课提前塞给我的密集训练。
短期内,要面对的还是很现实的问题。找下一份工作,解决生活,慢慢让自己从这段紧绷的节奏里抽离出来。
但可以确定的是,以后再谈「做一个可持续的产品」,我的态度会比以前更加谨慎,也会多一点敬畏。
如果你刚好也在经历类似的阶段,或者也在做一个早期项目,希望这些碎碎念能给你一点参考。哪怕只是让你提前避开我走过的一两个坑,也算是这段经历留下的价值之一。
谢谢你看到这里。
Photo by Bakd&Raw by Karolin Baitinger / Unsplash
最近有注意到关于 react和next.js 高危漏洞 CVE-2025-55182 引发的一些麻烦,多数表现是VPS被攻击者改成了挖矿肉鸡。
博客群里的 @veryjack 就因为安装了Umami v2 也成了受害者之一。
我也安装了Umami v2,所以第一时间上VPS后台检查了一下,幸运的是目前应该还没遭受到攻击。为了避免也中招,所以我先第一时间关闭了Umami 的统计服务。
因为这个漏洞是框架带来的,使用这两个框架的相关项目也在第一时间对漏洞进行了修复,所以Umami也很快带来了v3版本,我需要做的就是尽快升级。
我一直用的v2的mysql版本,但是v3开始官方开始只支持PostgreSQL,所以我需要先对数据进行迁移后再升级到v3版本,官方也提供了升级指南 Migrate MySQL to PostgreSQL ,同时其他一些博主也出了一些迁移教程 Umami v3 正式发布:告别 MySQL,全面拥抱 PostgreSQL —— 升级与迁移指南。
version: '3.8'
services:
umami:
container_name: umami
image: ghcr.io/umami-software/umami:postgresql-v2.19.0
restart: always
ports:
- "3000:3000"
environment:
TZ: Asia/Shanghai
DATABASE_TYPE: postgresql
DATABASE_URL: postgresql://umami:password@postgres:5432/umami
HASH_SALT: "SALT"
networks:
- flux-data_flux-network # 关键:加入外部网络
networks:
flux-data_flux-network:
external: true # 告诉 Compose 这个网络已经存在
v2版umami PostgreSQL的compose
用miniflux的数据库账号创建一个Umami的数据库
docker exec -i postgres psql -U miniflux -c \
"CREATE USER umami WITH PASSWORD 'password';"
docker exec -i postgres psql -U miniflux -c \
"CREATE DATABASE umami OWNER umami;"手动创建用户和数据库
按照官方指南清空 user 和 _prisma_migrations 表的数据
docker exec -i postgres psql -U umami -d umami <<EOF
TRUNCATE TABLE "user" CASCADE;
TRUNCATE TABLE "_prisma_migrations";
EOF按官方要求清空数据
通过以下命令导出mysql内的Umami数据到 mydbdump.sql 文件内。
docker exec -i mysql mysqldump --no-create-info --default-character-set=utf8mb4 --quick --skip-add-locks -u umami -p umami > mydbdump.sql
导出mysql的dump文件
因为两个数据库特性、语法要求的不同,我们在导出mysql的数据后需要对sql语句做特殊处理后才能正确导入到PostgreSQL。
首先用双引号替换反勾号,使其兼容PostgreSQL。
sed -i 's/`/"/g' mydbdump.sql
处理引号
其次,因为存在如 Xi\'an 、@1900\'blog 这种在PostgreSQL中被认为是转义语句的内容,所以还需要做特殊处理。这部分网上的教程我都试了,对我来说不管用。
这个问题卡了我很久,最后在和AI搏斗了两天后终于得到了一条在替换后至少能正常导入的语句。
sed -i 's/\\'\''/'\'''\''/g' mydbdump.sql
处理转义符
再将修改好后的文件导入Umami的PostgreSQL数据库内。
sudo docker exec -i postgres psql -U umami -d umami < mydbdump.sql导入PostgreSQL
最后修改compose文件中的Umami镜像为最新版后,重新docker-compose up -d 即可。
version: '3.8'
services:
umami:
container_name: umami
image: ghcr.io/umami-software/umami:postgresql-latest
restart: always
ports:
- "3000:3000"
environment:
TZ: Asia/Shanghai
DATABASE_TYPE: postgresql
DATABASE_URL: postgresql://umami:password@postgres:5432/umami
HASH_SALT: "SALT"
networks:
- flux-data_flux-network # 关键:加入外部网络
networks:
flux-data_flux-network:
external: true # 告诉 Compose 这个网络已经存在
升级镜像版本
重新访问网站后你就能得到一个最新版的Umami了,不过v3版本的首页好像默认不再直接显示各个网站的概览信息了,需要手动点击网站进入详情页面才能看到数据,略微有点不适应。

其实,在因为数据导入失败期间我一度想放弃之前的数据,尝试过其他统计工具,如 Tianji ,但是都觉得太臃肿了,最后还是选择继续攻克导入问题。
因为我只需要一个简单管用的访问统计工具,这也是当时我选择Umami的原因。
END。
- 书名: 认知觉醒:开启自我改变的原动力
- 作者: 周岭
- 简介: 为什么我们做事总是急于求成、避难趋易?所谓有耐心,就是要“咬牙坚持、死磕到底”?如何不再用“三分钟热情”和“打鸡血”的方式做事?如何保持极度专注?如何消除焦虑?如何提高学习能力?这是一部可以穿透时间的个人成长方法论。7大底层概念,20个成长关键词,助你彻底走出焦虑与迷茫,拥有清醒的认知、清楚的目标、清晰的路径、清爽的情绪。通过“大脑构造、潜意识、元认知”等思维规律,你将真正看清自己;通过“深度学习、关联、反馈”等事物规律,你将真正看清世界,提升自控力、专注力、学习力……只有洞悉底层的内在规律,我们才能真正开启自我改变的原动力。
- 出版时间 2020-06-01 00:00:00
- ISBN: 9787115543424
- 分类: 心理-认知与行为
- 出版社: 人民邮电出版社
📌 我们在生活中做的大部分决策往往源于本能和情绪,而非理智
📌 焦虑的原因就两条:想同时做很多事,又想立即看到效果。王小波说:人的一切痛苦,本质上都是对自己无能的愤怒。焦虑的本质也契合这一观点:自己的欲望大于能力,又极度缺乏耐心。焦虑就是因为欲望与能力之间差距过大。
人类的天性却正好与这个规律相反。在欲望上急于求成,总想一口吃成个胖子,导致自己终日在困难区受挫;在行动上避难趋易,总是停留在舒适区,导致自己在现实中总是一无所获。
📌 ·为什么我不由自主地沉溺于这段剧情了?
这就是高手学习的方法:先用感性能力帮助自己选择,再用理性能力帮助自己思考。文中的触动来自感性,而提问则来自理性,感性在前,理性在后,这背后的原理就是通过捕捉潜意识发出的信号进行感知。
📌 先用感性能力帮助自己选择,再用理性能力帮助自己思考。
📌 目标是存放我们热情和精力的地方
📌 小事听从你的脑,大事听从你的心。
📌 做选择是一件极为耗能的事情,如果没有与之匹配的清醒和定力,绝大多数人最终都会被强大的天性支配,去选择娱乐消遣。在有约束的环境下我们反而效率更高,生活更充实。
📌 考试得了高分,不叫有知识;茶余饭后能高谈阔论,这也不叫有知识。这些场合下,知识虽然有用,但是这些知识都不太牵扯到具体的得失,所以只是智力游戏。只有当局势不明朗、没有人告诉你该怎么办,而错误的判断又会导致一些不良的后果时,你要是能因为有知识而敢于拿一个主意,这才算是真有知识。请注意,这不是在说,实用的知识才是知识,而是在说,只有当知识能够帮助你做实际决策的时候,它才是你的知识。
📌 处于认知圈边缘的知识与我们的实际需求贴合得最紧密,因此也更容易让我们产生触动,进而与现有的知识进行关联。
📌 这就是打卡心态的特性:学不到,假装一下;学到了,立即停止。所以单纯抱着打卡这一任务心态去学习,很少会有强烈的主动性,毕竟在任务心态的驱使下,人们关注的是完成情况,对任务本身没有更大的热情。
📌 制定分享策略,展示给那些能力不及你的人。只要你认真打磨了作品,就肯定有人会觉得你比他们厉害,此时,赞扬就会飞向你。而真正比你强的人往往没空打击你,所以你不必担心会被人嘲笑。
📌 精力,在某种程度上可以作为意志力的代名词。精力充沛时,人们面对困难会无所畏惧,面对诱惑也有更强的抵抗力,但当精力不足时,我们不仅难以面对困难,甚至对诱惑的抵抗能力也会变弱,毕竟克服困难和抵制诱惑都需要消耗意志力。
📌 在一定的前提下,贫穷确实会使人变笨,这不是因为贫穷让人能力不足,而是因为贫穷造成的稀缺俘获了人的注意力,进而降低了人的心智带宽。
📌 真正的行动力高手不是有能耐在同一时间做很多事的人,而是会想办法避免同时做很多事的人。
📌 这些理由听起来可能有些可笑,但不要低估这种假设的力量,一旦你有了新的选择,就会意识到:事情本身并不重要,我们只是在通过它获取另外一种乐趣,顺便把这件事给做了。在心理学上,这个方法叫作“动机转移”。
📌 无论何时,都要把对方的情绪和意见分开对待,这样,即使在最糟糕的事情中也能学到有用的东西。
📌 好的反思是感知生活中最触动自己的点,难受的、欣喜的、念念不忘的……这些点正是处在自己成长的舒适区边缘的感悟,人在舒适区边缘学习,成长是最快的。
- 书名: 沿着塞纳河到翡冷翠
- 作者: 黄永玉著
- 简介:
- 出版时间
- ISBN:
- 分类:
- 出版社: 人民文学出版社
该渲染由 Shiro API 生成,可能存在排版问题,最佳体验请前往:https://innei.in/posts/experience/put-this-year-in-a-drawer
前几天收到通知,所在的团队解散了,我这段工作也一起画上句号。
虽然这个月一直隐隐觉得情况不太妙,但真的落在自己身上的那一刻,人还是会愣一下。有点空,有点失落,也有种「啊,原来已经走到这一步了」的感觉。
想了几天,还是决定把这一年多的经历和一些个人反思写下来,当作一个存档。以后哪天心态稳定了,再回头看,至少能更清楚地知道自己这段时间到底经历了什么、学到了什么。
最早接到这个机会时,我刚经历人生第一次裁员。那段时间整个人状态挺糟的,对未来特别迷茫,对自己也没什么信心,各种躯体反应、抑郁、焦虑、失眠一股脑地冒出来。
就在那时候,有人找我聊到这个项目。那会儿项目还非常早期,很多东西都停留在想法、脑图和讨论里,连像样的 demo 都还没有。但对当时的我来说,有人愿意拉我一把,给我一个能重新把注意力投进去的事情,本身就挺不一样的。
现在回头看这段经历,哪怕后来大家的路径和选择各不相同,我依然很感谢当时那次「拉一把」。它确实是在我比较低谷的一个时间点,给了我一个出口。
另一方面就是一个很简单的判断:我本身就对这种类别的产品很感兴趣。
我一直喜欢做 ToC 的产品,喜欢琢磨交互细节、体验和界面呈现。
再一次从零开始创造一个东西,其实是很酷的事情,而且自由度也很高。这个项目在早期也给了我很多发挥空间。
如果只看事情本身,这一年多其实过得很密。
因为项目很早期,很多基础的东西都需要从头搭起来,我主要做了这些:
那段时间,我基本是 设计、前端、产品 三件事一起干。经常是白天写代码、改交互,晚上还在想组件要不要再重构一下,周末偶尔继续打磨。
我对细节的执着,在那个阶段被放大得很明显。经常为了一个 1px 的对齐,或者一个 hover 状态,盯着屏幕看半天,不停调 spacing,调整节奏。
后面我的 commit 数一直往上爬,前端那块几乎所有角落都翻过一遍,一些历史遗留的问题也是趁着重构的时候顺手清。
有人跟我说,我这状态有点像把公司项目做成了个人项目。虽然有点玩笑的成分,但确实说明了当时那种「恨不得所有细节都先过一遍我眼睛」的投入。
从纯工程师视角看,这一年我学到的东西挺多的。
以前更多是「完成别人安排的需求」,现在多少对这个产品的形状、系统架构、体验节奏,有了一些自己的判断。
接下来这部分,就不局限在这个项目本身了,更多是我在这段时间里,对「怎么做一个产品」的一些感受。
我不打算给任何人下结论,只讲我自己以后会怎么做得不一样。
在早期阶段,我确实更偏向「先把东西做出来」「先做一个好玩的产品」,对商业化的思考会往后放。事后回头看,对我自己来说,教训是:
不一定一开始就要把每一块都推到极致,但至少要在心里留一条大致的路: 这个产品大概是为谁做的,这些人未来有没有「愿意为它长期买单」的可能。
如果脑子里完全没有这条路,日常决策就很容易被短期数据牵着走。很多看上去漂亮的增长,不一定是在为未来打基础,有时候只是让你在一条不太适合长期生存的路径上走得更远。
现在再做任何项目,只要心里有一点「它有机会变成一个长期产品」的念头,我都会尽量在比较早的阶段,先粗略想清楚:
这不只是这次经历的感受,其实是这几年所有项目叠加起来给我的提醒。
另一个对我很深的提醒是:激励是一种筛选器。
各种奖励、玩法,在短期内都非常有效,这点我在这个项目以及别的一些项目里都见过。
但它筛出来的,更多是「对激励敏感的人」,而不一定是「对产品本身有强需求的人」。
如果前期一直用这种方式去拉新,很容易导致:
以后再做类似的产品,我会更谨慎地区分:
这个反思同样不是在评价哪个项目好或不好,而是提醒自己:
不能只被短期数字牵着走,要时刻记住自己真正希望留下的那一拨人是谁。
这段经历里,还有一个挺扎心的感受:
大家都很努力,事情也很多, 但有时候你隐约知道,自己是在用努力填前面没想清楚留下的坑。
你越是全力往前冲,就越难停下来问自己一句:
如果照现在这个方向一路做到极致, 那个终点真的是我想要的吗?
这个问题不针对任何人,只是对我自己的一种提醒。以后我会更刻意留出一点「按暂停键」的空间,哪怕只是定期问自己这个问题。如果长期答不上来,可能就说明有哪里不太对劲了。
这几年回头看,会有一个很强的感觉:
有些窗口期是真的会关上, 关上之后再做同样的事,难度完全不一样。
不只是这一次,我接触过的好几个项目都有类似的影子。在某个阶段其实都迎来过一小波关注或讨论度,如果那时能更早地意识到:
后来的剧本可能会不太一样。当然,也未必就一定成功,但至少不是在热度退去之后再来补前面的课。
这件事给我的提醒是:
前面说了很多产品、商业、技术上的东西,但对我个人来说,这段经历还有一块很重要的是「人」。
不管后来每个人的选择如何,这件事本身我是一直记在心里的。
有时候就是这样。你在别人低谷的时候伸一把手,对那个人来说,意义会很长。
所以,对这段经历,我的情绪是很复杂的:
它既不是简单的「成功」或「失败」两个字可以概括的,更像是一次把很多课提前塞给我的密集训练。
短期内,要面对的还是很现实的问题。找下一份工作,解决生活,慢慢让自己从这段紧绷的节奏里抽离出来。
但可以确定的是,以后再谈「做一个可持续的产品」,我的态度会比以前更加谨慎,也会多一点敬畏。
如果你刚好也在经历类似的阶段,或者也在做一个早期项目,希望这些碎碎念能给你一点参考。哪怕只是让你提前避开我走过的一两个坑,也算是这段经历留下的价值之一。
谢谢你看到这里。

移植自兽兽的一款开源 ghost 模板,原作者:https://github.com/Showfom/Affinity
部分功能文字写死,需要自行修改主题代码
在线预览
整体CSS部局,基本一至。评论部分,单独整理的代码和CSS。
缩略图,默认调用 img 自定义字段,如果没有,到文章检索第1张图片。
搜索页面,后台添加页面,自定义模板,设置为 page-search 即可。
十一月已过,目前十二月中,月度总结还在路上。坚持做一件事情很难,但是习惯做一件事件却很容易。建博客的初衷是为了写总结和记录,虽然每月总结从未落下,但这次间隔时间确实有点长。但为了保持总结习惯,还是敷衍了一下。
我们常说内容一旦发布都是给访客看的,独立博客的流量虽然很少,但总有人在不经意的瞬间读到我们写的内容,哪怕内容写的一塌糊涂,也少有人较真,即使真的较真了也不会引起轩然大波。在我眼中独立博客十分矛盾,既想有人关注,又不想有人关注。
既然是敷衍总结,那继续从摄影、骑车、读书这三个方面来总结十一月我都经历了什么。
转人像摄影有一段时间了,如今自感水平一般,光线差一点、引导差一点,很容易被负面情绪影响,很难调动模特的情绪。学人像摄影差不多三个月了,有很多难点需要克服,大部分内容不是摄影本身,而是摄影之外的一些事情。经常被提到,眼睛不要总是盯着相机,放下相机多观察。
挑选一些11月拍的照片↓
















| 总里程: | 246.5km |
| 总时间: | 13:22:52 |
| 月骑行均速: | 18.42km/h |
| 骑行次数: | 22 |
| 平均单次里程: | 11.2km |
关于骑车开始放纵,再也不关心均速什么的,甚至有时候都没有记录数据,没记录相当于没骑车。
还是上下班骑车,其他的骑车活动也没有进行,没想到均速已经掉到18.42km/h,进步不容易,退步却很快。
这个月依旧没有看书,想好要看书,拿起书本就被其他事情吸引了,甚至说拿起手机就相机自己只是回了回复一个消息,转而打开短视频无节制的刷了起来。
但心底在告诫自己,读书使人进步,碎片化的短视频很难学到东西,娱乐不能没有节制。
继续写博客,继续写总结,继续写记录,继续写心得体验,继续分享自己。

最近几个月很少写博客文章,仅仅写了一篇月度总结。然而,十月份的总结迟迟没有行动。10月中旬新建文章仅写了标题:“二〇二五年十月总结”,自此便没有了后续。
现在仅能凭借一些记忆和一些记录数据,回顾十月的一些事情。老规矩,摄影、骑车、读书,这三件事来总结一下成败,更多是一些反思。
十月总结,来晚了。
摄影分三大块,人像、风光、人文。其中最难的是人文,其次是人像,然后是风光。
虽然有难以,想要拍好任何一种题材都需要长时间积累和锻炼,有天赋的人少之又少。
风光拍不好,人文更拍不好,随后看上了人像摄影。这个月重点在人像摄影,初尝人像并不简单,拍到和拍好是两码事。学习如何拍好人像,实践复盘,烂片拍了很多很多。也许摄影水平就是堆快门,拍的越多经验值才会增加。







| 总里程: | 337.1km |
| 总时间: | 17:19:54 |
| 月骑行均速: | 19.44km/h |
| 骑行次数: | 32 |
| 平均单次里程: | 11.59km |
10月的总里程虽然比9月多了一些,但这些里程不足支撑自己进步。但目前已经不想再骑车方面进步了,正如所见,平均单次里程不足12公里。
现在仅保留骑车上班的习惯,只要不下雨就骑车。进入冬天上海的雨水也在减少,几乎每个上班日都会骑车。
10月没有读书,枕边放了一本《成为专业人像摄影师》只在买回来的时候看了看,感觉要吃灰了。
还是想把读书写下来,主要目的是提醒自己,读书可以拓展见识与认知,不能丢下。
时光继续,生活继续,健身继续,增长继续,不刻意关注时光的快慢,不刻意关注成长的快慢,慢慢生活,慢慢变老。

嘟嘟车机桌面是一个完全区别于其他安卓桌面的 APP,完全根据车机用户使用习惯进行设计,本地使用完全免费,使用在线服务会根据实际情况收取部分费用,付费项目包括车辆实时定位,行程在线记录,地理围栏通知,共享车机控制和定位等在线功能

嘟嘟桌面PRO比亚迪专享版安装后全名为嘟嘟桌面PRO-比亚迪专享版,是专为比亚迪全系车型车主们打造的版本。
实时显示车辆的电量、油量、记录仪状态、胎压温度、电池电压与健康度监测等数据,帮助用户全面掌握车辆状况。软件支持语音唤醒控制导航、打电话,并且主题也可以根据自己的喜好自定义设置,打造专属桌面风格

https://dudu-lucky.com/auto/byd.html
1、打开嘟嘟桌面PRO比亚迪专享版app,点击桌面设置功能
2、依次点击桌面-插件设置-导航插件功能
3、选择高德导航车机版即可
嘟嘟桌面比亚迪专享版适配比亚迪全系车型,包括纯电、混动、纯油车型,但需根据车机安卓版本选择对应版本,安卓4系统需安装PROMini版,安卓5及以上可直接安装本页面提供的这个版本
主题自定义、车况监控、语音控制等本地基础功能是完全免费,无广告干扰
车辆实时定位、行程记录、地理围栏通知等功能需订阅会员才能使用
可通过车机设置 - 应用管理直接卸载
若遇权限问题,可尝试恢复出厂设置或联系售后协助
部分车型需安装其他桌面应用覆盖卸载,操作前建议备份重要数据
跟普通软件一样,点击此处下载相应个版本安装即可
警告:某些车型的车机限制安装第三方软件,具体能否使用需要自己尝试
注意:
占用内存大小:[嘟嘟桌面PRO]>[嘟嘟桌面PRO Mini]>[嘟嘟桌面普通版]>[嘟嘟桌面Mini]
嘟嘟桌面会根据功能收取订阅会员服务费,订阅会员额外提供以下服务
“历史不会因时代变迁而改变,事实也不会因巧舌抵赖而消失”,今天是第十二个国家公祭日。

这是一个为Typecho博客系统开发的终端风格主题,采用vib coding设计风格,具有命令行交互界面。用命令行看博客感觉太酷了。
在线预览
vibe coding风格:纯黑色背景,绿色文字,模拟终端界面ls [页码] - 列出博客文章,每页显示10篇,包含标题、日期和摘要cat [文章ID/URL] - 查看指定文章的详细内容about - 显示博主个人简介home - 返回博客主页tree - 以树形结构显示博客归档内容help - 显示帮助信息blogscn 也运行快一年了,在这一年里我们迎来了很多新朋友。也失去不少老朋友(关站了).马上就是新的一年了,我也仿照其他圈主给大家整理了一个年度回顾!在忙也要赶一个。如果有使用bug请原谅我。哈哈哈!

另外也对遗留问题做了优化主要是后端,抓取更加快捷了,后期看看在上邮件功能,当大家的站点抓取失败会给大家发送邮件作为提醒!
忙忙忙!溜了