
之前发帖,意外获得了许多 v 佬的支持和鼓励,真的非常感动!只要还有 1 个人喜欢我们的作品,我们都会专注的坚持把 Ries 做下去~ 因为这真的是我们热爱的“孩子”~
今天我们发布了 v2.22 ,我想做一个相对完整且正式的作品介绍,还请 v 佬们批阅~
做 Ries 主要是因为我琢磨了很久,我发现我们学不好英语,最根本的原因就一个:
我们平时接触到的英语,实在太少了!
我们一天到晚,眼睛看到的,耳朵听到的,99% 都是中文。每天就算硬挤出那么十几分钟、半小时去“学”英语,跟咱们铺天盖地的母语环境一比,那点输入量,真的不够看。语言这东西,不“泡”在里面,效果有限。
所以,Ries 不提供任何课程,而是主张为你“实时创造英语接触”,并且努力让这个接触是适合你的。
在多年的语言学习经历中,我发现传统方法常常伴随着这些痛点:
英语接触严重不足:除了少的可怜的专门学英语时间,其他时候基本没有接触,缺少语言环境,只是在学,并没有保持接触和使用。
急功近利,违背语言学习规律:过度追求“速成”和学习效率,总想两三个月搞定一门语言,或每周仅投入少量时间上课,这种短跑模式违背语言学习的自然规律,难以持久,就像健身减肥,短冲一下会有成效,但只要一停下来,就会迅速反弹。
语言压强过大,容易焦虑:强迫自己打卡、只追求成绩和分数,直接暴露在海量的语言元素中,这些行为很容易让人产生抗拒心理,从而失去对语言真正的兴趣和乐趣。
学习内容与生活脱节,难度难匹配:我们上课的教材(包括多邻国的游戏化课程)都是某个老师设计的标准化课程,跟我们真正日常会看的内容是完全脱节的,并且内容难度要么太难导致频繁中断查词、阅读效率低下、越看越焦虑,要么过于简单、帮助有限,难以找到那种“刚刚好”的、适合当前水平的材料。
Ries 正是为了解决这些问题而生。她致力于 “懂你 · 不打扰”,让英语学习回归自然,在你的日常生活中,静静地创造语言接触的机会。
下面是一些 Ries 用户对我们的鼓励,我们会持续每周迭代下去,努力把这款小而美的产品体验做到极致~
Ries 能在你看中文或英文内容时,智能地进行“实时改造”,让你在 无感、不中断娱乐 的情况下,逐步拓宽英语边界。
-
许多早期用户都反馈:
毕业 8 年,10 年学会的英语都快忘光了,结果使用 Ries 后,都没主动花时间学,平时看新闻文章,感觉很久没见过的词汇慢慢又回来了!
“一学英语就焦虑,背单词太痛苦了。这个插件完全不一样,看我喜欢的内容时自然融入英语,没有死记背的感觉,接触量大了自然就会了。”
“就很神奇?我平时看小说、刷微博时会出现一些英文单词和短语,一开始以为是 bug ,后来发现这就是学习方式啊!”
目前 Ries 已兼容 Chrome 、Edge 和 Firefox 浏览器扩展。我们持续进行周更新,核心引擎几乎重写,带来了肉眼可见的速度提升和更智能的“语言图谱”推荐。
我们也在积极规划开发手机端应用,让你在手机上也能实现“无痛”英语提升。
我们正在积极寻求更多的小伙伴一起共创,特别是在产品的运营增长方面。
如果你认同 Ries 的理念,非常欢迎加入我们!
英语学习是一场马拉松,而非百米冲刺。告别急功近利,选择一种更自然、更有效、更无压的方式,让 Ries 成为你语言成长的伙伴。
现在就来体验在日常生活中悄悄变流利的感觉吧!
你的任何感受、建议,哪怕是吐槽和 bug 反馈,对我们都非常宝贵!
请多多留言反馈,哪怕只是一句鼓励都对我们至关重要!
]]>还在为会议记录、听课笔记发愁?试试这款实时语音转写工具,说话就能出文字。
版本: 2.1.0
大小: 57.6 MB
下载地址: https://www.pgyer.com/RVT-android
支持 Android 5.0 及以上系统。扫描二维码或点击链接即可下载安装。
提示:首次使用建议下载对应语言的识别模型,离线使用更流畅。
]]>我是一个偏重度的 YouTube 用户,是 YouTube Premium 的长期订阅者,主要还是用 PC Web 版本。平时听歌以及看视频都在 YouTube 上完成。
但 YouTube 的有些东西着实让我不爽,比如:
只显示用户名,只有点用户名进去才能显示昵称(或者说频道名)四个变为了三个,让老用户很难受。作为一个码农,我想着手解决这些问题,至少让自己用的舒服一点。
我采用了最简单便捷的方式来处理这些问题,这个项目一开始只是一个 UserScript ,在Github和GreasyFork上发布。
后来觉得 UserScript 开发体验不太好,并且也想试着学习开发一个浏览器扩展,于是后面就改成了浏览器扩展的形式。
在花了一段时间学习如何开发浏览器扩展,并且重构了代码以及自行测试了数月后,终于完成了一个 _我自己觉得可以公开发布的版本_。
这个扩展的名字叫做 YouTubeTweak,目前已经在这些平台通过了测试并发布:
Edge 暂时没有发布,因为我安装完 Windows 的第一件事就是彻底卸载 Edge 浏览器。
(后续看情况可能会测试并发布。
源代码仓库:https://github.com/xlch88/YoutubeTweak
域名:YTTweak.com (目前还是什么东西都没有,我还没制作网站)
一张图概括这个插件的功能以及 UI:

以及一些功能实际的样子:





这个项目是出于提升和我有同样困扰的用户的使用体验的目的而开发的,我不准备进行任何商业化或追踪器植入,确保代码的干净。
整体使用 TypeScript + Vue + WXT 进行开发,全手写 SCSS 样式,未使用任何 UI 框架。
整体插件功能模块化,每个功能都分成了单独的模块,方便后续维护和扩展。
我希望有更多人能参与到这个项目中来,将你的想法变成现实。
也欢迎参与代码的优化和审计,让我知道我哪里写得不够好。
如果你有兴趣参与这个项目,请访问项目的 GitHub 仓库:https://github.com/xlch88/YoutubeTweak
如果你觉得这个插件对你有帮助,欢迎在 Github 给我一个⭐️ 以及 在扩展商店给我一个好评 ,让我知道有人在使用这个插件。
以及,这个项目的多语言翻译来自我的几位朋友的帮助,非常感谢他们。
如果你也愿意帮忙翻译成其他语言,请在 Github 仓库中提交 PR ,或者联系我。
谢谢大家!
]]>观察 AI 交易是很有趣的,而如果你能很方便的亲自调教他们就更好啦。为此,我们也复刻并开源了一套类 nof1 的交易系统,实盘开放在这: https://open-nof1.vercel.app/
交易 Agent 由 Langgraph 搭建,便于开发者定制各种工具或接入 MCP 服务,可玩性很高。 前端则最大限度的保留了 Nof1 简约的设计风格。
基本原理是获取实时的 K 线数据,利用开源的 ta-lib 进行技术指标分析,定时触发让 LLM 结合目前的持仓和用户自定义的策略和目标进行交易决策。目前仅支持 binance 交易所。
随缘求 star 🌟 亲自体验 AI 亏钱👇
http://github.com/wfnuser/opennof1

经过一段时间的试验和对市面上各种类似方案的观察,想让 AI 稳定赚取交易收益其实还是非常困难的。而当用户量足够大的时候,让每个用户都通过 AI Agent 交易来赚钱本身更是一个悖论。
但或许做一个让用户用自然语言来定制符合自己交易策略的 bot ,尽可能模拟一个真人交易员,减少大家的盯盘时间,还是一个很可能实现的目标,这也是我们团队后面对这个项目的主要期待。
相比于 nof1 的交易系统,至少有一些地方是可以明显优化的:
而一个能基于外部事件做决策的能力本身也肯定可以扩展到更多的场景里。
AI 时代,几乎任何中等复杂的项目在不追求很高可用性的时候,都可以在很短的时间里复刻。因此开源对我们来说是非常自然的选择,而时间拉长后,各个项目则仍然会因为观察角度的不同而发展出独特性。
期待感兴趣的小伙伴们跟我们一块共建,让我们一起面向好奇心编程,探索 AI 交易的上限。
写在最后:
笔者从去年 gap 之后,一直在做一个不怎么成功的去中心化协作类的产品;而从小团队的建立,市场宣传,用户调研,每个环节都让我感到不小的挫败感,前段时间则更是陷入深深的内耗;在看到朋友们的创业项目风生水起,常常觉得自己对不起投资人的期待。
从理智上当然觉得这些行为是毫无益处的,但心里仍然很难摆脱这种挣扎。
而这个项目则开启了一个新的节点,它足够好玩,也足够有挑战性。(如果你真的想让 AI 通过交易接近可以赚到钱的话)
在沉浸式 vibe coding 的两天里,让我久违的忘却了外面所有的压力,回归到这场人生冒险的初衷:不要去做牛马,而是去做你感兴趣且有意义感的事情。
所以,结论就是,迷茫的时候不妨先把时间投入到你最擅长和最热爱的事情上,好运或许就会找上你。在 2025 的冬天,我是这么想的。
有兴趣联系合作的话,可以加我 V: wfnusee
]]>详细更新日志: bluenova.ruiransoft.com
测试了所有支持的 SQL 数据库的各种列类型的支持情况,并整理了一个文档,参见SQLTypes
Oracle 数据库的驱动从sijms/go-ora更换为godror/godror,并以外部驱动的方式提供
因为之前的授权判断单位一直都搞错了,,,,所以这次赠送更多的授权。
0: 019a7164-9633-7470-8350-6946bfcb61e1 1: 019a7164-963e-77bf-9c1e-7359865452f3 2: 019a7164-963f-7d44-8f96-999c5035de01 3: 019a7164-9640-7cba-aaff-360a4f47df36 4: 019a7164-9641-7c4f-8c9e-2c12e9fc8a0e 5: 019a7164-9642-7a1d-b93a-4d2668907b40 6: 019a7164-9643-7824-970d-a98a2c2ccf23 7: 019a7164-9644-79cc-9d8b-0239dea0382c 8: 019a7164-9645-7c37-b774-01002d89e89b 9: 019a7164-9646-7dfc-853b-2c2311e0b0b7 10: 019a7164-9648-7233-afba-e06d4a59926e 11: 019a7164-9649-75be-bfd6-e8f554225ac4 12: 019a7164-964a-77a2-9ebd-8d32271e4e94 13: 019a7164-964b-7820-ab9f-3c1040af598a 14: 019a7164-964c-7aa7-9f49-dfd15ad76f61 15: 019a7164-964d-7ca8-8cd6-1bfdca1004b6 16: 019a7164-964e-7dcb-b343-ec7a9566d410 17: 019a7164-964f-7f07-818e-cd4ec44b0738 18: 019a7164-9651-7172-8aaf-575cbd601d19 19: 019a7164-9652-7316-aec7-74ba62cefc46 20: 019a7164-9653-73e0-a932-724a73af8dfd 21: 019a7164-9654-74ec-a547-31971191e858 22: 019a7164-9655-7805-9271-18b82d6dfe15 23: 019a7164-9656-7b6a-a19a-9b2b55225606 24: 019a7164-9657-7d77-9e90-8dce835c7e3d 25: 019a7164-9659-7031-a1c3-f570cd4a0c0a 26: 019a7164-965a-727c-8cd0-edb51cc22c00 27: 019a7164-965b-7495-9578-103037efe1f9 28: 019a7164-965c-76c1-b55b-a6c197d2afb6 29: 019a7164-965d-77c2-8d7b-0dacfe442a73 30: 019a7164-965e-7999-9016-a5c4cda3e08f 31: 019a7164-965f-7aed-9616-9c8d2cb3f90d 32: 019a7164-9660-7d72-8183-a06776e6c0d5 33: 019a7164-9661-7f3b-a818-d14d40b25501 34: 019a7164-9663-7196-8404-73c46a3ecbee 35: 019a7164-9664-7350-a5c7-fa7a939ccb8d 36: 019a7164-9665-75c1-b6c2-10e9d0cfdd2c 37: 019a7164-9666-7707-8a30-be235313ce75 38: 019a7164-9667-7811-a8c7-a4648361a487 39: 019a7164-9668-7a2d-9e90-3bf7c22e1466 40: 019a7164-9669-7b3a-9c7e-abf73840239d 41: 019a7164-966a-7cf6-8e21-1e7ecd33af7c 42: 019a7164-966b-7efa-a87c-5f1f7ea2a488 43: 019a7164-966d-7222-b508-a11f79e9350d 44: 019a7164-966e-72c5-a561-a2f4d9a35798 45: 019a7164-966f-7385-9f30-db65ad2f7a72 46: 019a7164-9670-7410-a1c2-c3a77e013fed 47: 019a7164-9671-7489-a1e3-9fae41649a74 48: 019a7164-9672-754c-a969-418cb562d26f 49: 019a7164-9673-7786-be2e-0b3fe522effd 访问授权下载页面,输入 UUID 为激活码。(不需要输入前面的序号,序号用于回复提示他人已使用。)
]]>这次继续增加实用的背单词功能。同时修复了上下方向键导致输入框失去焦点的问题。


桌面端的受众会小很多,也是很多大的 APP 不愿意适配的场景。我把墨境英语作为各大英语 APP 的一个桌面端的补充,给电脑旁的朋友多一个选择。并没准备取代其他的英语 APP ,自认为也办不到。
也有好多老哥提出增加素材的需求。其实我的学习经历来讲,是厌倦了挑素材的。特别是在买了扇贝会员后,那茫茫多的素材,要不是我已经交了年会员,就要被吓退了。
我会适当的增加一点听力素材,但不会太多,够用就行,让用户点进去就学,别陷入选择困难。尚雯婕那个英语学习法我觉得就很好,10 篇内容就足够了。
要不要增加多的素材,增加多少,也请老哥们支支招。
76P63YENPX3P
NF6P6Y4HF4XJ
NNFL4M3PXY9L
TLE7YX9LRNTH
763FWLKX3YT6
6XFLJHP6FJ74
7PRPN9HMHM46
HLERXKE9RMTL
Y3WLTW67L3MN
MATEMALRJEWR
MN6LY33K3W3J
EA96M7R66X9F
W6FF6YME4YKK
K33LWT6AXWEY
XMF7476ANTP6
6NNJAHHAXM4A
M376XHXTNPHA
TATEJWNLT9WE
K9NL9A4347JX
HT4LKPYNXERE
LPNPAKF9APXT
NMHNJ99XTLWL
76NAEARN7PK9
9EPXAAP9YFHF
H3RWAPKE97E9
9HAFRXT3WEEN
NAYX4337R3JR
FPHEH7EWA4R6
KXHM4E3YPFLF
3Y6LNHN764H7
]]>Reclamation of Idle Compute Instances
Idle Always Free compute instances may be reclaimed by Oracle. Oracle will deem virtual machine and bare metal compute instances as idle if, during a 7-day period, the following are true:
- CPU utilization for the 95th percentile is less than 20%
- Network utilization is less than 20%
- Memory utilization is less than 20% (applies to A1 shapes only)
来源于: https://docs.oracle.com/en-us/iaas/Content/FreeTier/freetier_topic-Always_Free_Resources.htm
所以说我做了这个小工具, 可以智能的稳定你的内存在一个可被设置的百分比, 默认是 25%-35%区间每隔几分钟随机调整 (虽然说没有证据表明甲骨文会回收内存占用极其稳定的服务器, 但是故意制造随机的浮动看起来更安全点). 并且有高级的策略智能地释放和填补内存, 尽可能让它完全不真正"浪费"任何内存.
项目地址: https://github.com/bOOOOcG/nerdy-holder
使用方法:
对于 Ubuntu/Debian 你只需要一条指令即可完成部署:
# 安装 (Ubuntu/Debian) curl -fsSL https://raw.githubusercontent.com/bOOOOcG/nerdy-holder/main/remote-install.sh | sudo bash # 卸载 (Ubuntu/Debian) curl -fsSL https://raw.githubusercontent.com/bOOOOcG/nerdy-holder/main/remote-uninstall.sh | sudo bash # 查看状态 (Ubuntu/Debian) curl -fsSL https://raw.githubusercontent.com/bOOOOcG/nerdy-holder/main/deployment/monitor.sh | bash 对于 Oracle Linux / CentOS / Rocky Linux 😅:
# 1. 安装依赖 sudo yum install -y python3 python3-pip git # 2. 克隆项目 git clone https://github.com/bOOOOcG/nerdy-holder.git cd nerdy-holder # 3. 安装 Python 依赖 sudo pip3 install -r requirements.txt # 4. 创建安装目录 sudo mkdir -p /opt/nerdy-holder sudo cp -r nerdy_holder/ /opt/nerdy-holder/ sudo cp run_holder.py /opt/nerdy-holder/ sudo cp requirements.txt /opt/nerdy-holder/ # 5. 创建 systemd 服务 sudo tee /etc/systemd/system/nerdy-holder.service > /dev/null << 'EOF' [Unit] Description=Nerdy Holder - Memory Management After=network.target [Service] Type=simple User=root WorkingDirectory=/opt/nerdy-holder ExecStart=/usr/bin/python3 /opt/nerdy-holder/run_holder.py Restart=always RestartSec=10 StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target EOF # 6. 启动服务 sudo systemctl daemon-reload sudo systemctl enable nerdy-holder sudo systemctl start nerdy-holder # 7. 检查状态 systemctl status nerdy-holder Important: Oracle 可能会时不时更改判定规则, 比如说之前最开始是 10%, 然后提升到 15% 现在是 20%, 所以说你可能需要关注最新政策来配置你的 nerdy-holder.
FAQ
Q: 你可以提供 docker 吗😥?你可以提供 docker 吗😫?你可以提供 docker 吗😭?
A: 说真的, 你不应该用 Docker 运行它 🤓☝
Q: 为什么它叫 nerdy-holder
A: 因为我们采用了大量的酷算法让他更好的完成这个水多加面, 面多加水的简单工作! 包括 PID 控制算法 EMA 指数算法 成本-收益分析 非对称策略算法, 因为算法太多导致需要的参数变量太多 所以说甚至有一个自我学习优化参数算法自动优化所有的策略, 所以说你完全不需要为了每个环境配置精心调配任何参数, 它就可以自我学习适配到任何的环境任何的服务器完美工作, 甚至有一个 benchmark.
Q: 为什么需要 PID,EMA,成本-收益分析,非对称策略,自我学习,benchmark?
A: 因为过度设计很酷, 而且可以学习到很多东西.
Q: 我没有抢到 Oracle 的 A1 实例怎么办????
A: 你可以在你的个人电脑运行这个 nerdy-holder 让微软不会回收你的个人电脑.
Q: 我可以用于其他的场景吗, 我没有 oracle 服务器, 但是我看最近又涨价的金子内存条被我花钱买过来 天天占用极其低让我心里非常不舒服, 我想让他占用高的同时又不影响我日常使用, 我可以用这个 nerdy-holder 配置为固定占用内存到 100%吗?
A: 当然可以, 不过我建议设置为 80% 到 90%, 100% 可能会影响你的正常使用.
Q: 它会浪费我的 RAM 吗?
A: 我们有非对称策略, 在你需要用到内存时 他可以智能的秒级释放内存.
Q: 这违反任何 ToS 吗?
A: 这不违反任何的 ToS, 本质上和你故意运行一些服务试图让 Oracle 判定你的服务器并不是闲置的原理一样, 只是这个会更智能和适合长期作为服务运行
]]>
各位好,我是 Vetiver 的开发者
两个月前我在这里发了 TestFlight 公测版本「 V2Explorer 」
应用现已正式更名为 Vetiver, 主题色也更新为与之呼应的暗绿色,灵感来自香根草( Vetiver )的自然色调
并已在 App Store 正式上架 🎉
完全免费,欢迎下载体验
App Store 目前上架的版本为 1.0.5。 最新的 1.0.6 版本已提交审核,并在 TestFlight 先行更新, 包含以下改进:
感谢所有参与 TestFlight 测试的朋友!
TestFlight 版本将继续保持更新,频率会比 App Store 更高,用于提前体验新功能与改进。

🟢 App Store 链接 https://apps.apple.com/app/id6749879796
🧪 TestFlight 公测通道 https://testflight.apple.com/join/7d5qPCbS
💬 Discord 讨论组 https://discord.gg/Futuj6WRwb
]]>感兴趣的可以看看,觉得有用的话,欢迎点个✨。
详细介绍一下核心能力:
本项目和 new-api 等项目的不同,本项目目标用户是 AI 产品开发者,不是中转服务商,所以会有更多开发监控相关能力,比如 Trace 。
项目核心代码都有单测覆盖,并且技术选型比较新颖
本项目已经迭代了好几个版本了,本次正式发布 v0.4.0 ,主要添加功能
1.trace/threads 可以 trace 并且查看同一个任务的多个请求,并且可以开启 claude code trace 支持,了解自己本次任务到底用了多少 token 等。 
2.支持配置保存 request/response 以及 response 的 SSE events 到外部 s3,gcs 等存储,减少数据库压力
未来规划:
更多信息大家可以看看项目 README ,有什么其他问题的欢迎提问或者创建 issue 。
上文可见:
]]>初衷是想做一个只占桌面一角,然后可以展示单词卡片和一些常规背单词 APP 的记忆模式的桌面应用。并且可以设定定时随机抽查等手段去强化记忆(也是角落小卡片的形式)。
原则上尽可能的不阻塞正常工作和占用桌面。
后来做着做着,觉得工作中有些场景也可以移植进这个快捷工具,例如 AI 助手查询、粘贴板历史记录、粘贴板快捷翻译等等
目前做了个 DEMO ,大家帮忙看看有没有搞头,市面上有没有类似的

三击 Command (⌘),获取应用焦点,⌘+1,2,3,4 切换到对应功能。争取做到后续全部功能都能快捷键,不需要鼠标操作。
除了中英翻译面板外,还双击 Command (⌘) + C 快捷翻译粘贴板(支持中英互转) 
目前具体功能还没开发,准备做成市面上的背单词 APP 一样,几个记忆模式,记忆曲线,词本等 
因为应用总是在最前的,可以做到一些其他工具做不到的,例如单词小卡片桌面轮播,单词抽查(全屏弹幕、小卡片)
就和市面上普通的 AI 工具一样,调调 API 去调用 AI Chat (支持 ChatGpt/Gemini/Deepseek )
可能就是操作上快一点,⌘×3 获取焦点 & ⌘+3 (切到 AI 助手),输入框自动获取焦点,就可以问了,全程不需要操作鼠标

设置没啥好说的,就是设置 AI 平台的 API Token ,快捷键设置之类的
除了目前设定的三个工具外,未来还想内置 Wordle 小游戏。
甚至有点想做成类似于 uTools 的工具平台,允许插件化。可以放一些类似于股票助手、RSS 推送、各种格式转换、编码解码工具等等。
想看看大伙儿的看法,不太确定市面上是不是有类似的学习英语或者便捷桌面应用
]]>之前 UWP 版日历,月视图可以用鼠标滚轮来上下翻,周视图可以左右翻。换成 PWA 版之后就没这个功能了。于是写了一个 userscript 简单实现了一下,然后周视图还加上了 Shift + 滚轮左右翻。
录屏在这里:

免费的话,还是有用户用(虽然也不多),但是根本不会有人付款。
感觉真正付费率高工具,还是得是能提升用户效率的才行。
言归正传,好久没写总结了,这篇文章就记录一下 App 上架一周年的一些情况与心得。去年心血来潮,想学习 App 开发,于是在空闲的时候,写了两个 App ,主要采用 Flutter ,一个是桌面端应用,用于下载 B 站视频,投稿了阮一峰的周刊,上了周刊推荐,链接地址: https://www.ruanyifeng.com/blog/2024/06/weekly-issue-305.html

另一个是纪念日记录与展示的 App ,亮点主要是应用秒开、界面简洁、支持多语言、支持暗黑模式,支持桌面小组件: https://apps.apple.com/us/app/unique-days/id6737198411

上架后,由于做了一波宣传和限免,所以下载的人挺多的,达到 5.9K ,后面可能同类型的产品太多了,做的确实比较一般,没什么新意,也没什么人下载了,陆陆续续就几个用户下载。


其实,刚开始做还是挺兴奋的,因为从零到一开发一款产品,确实挺有成就感的,从设计、开发到上架做宣传图,一套下来基本上就粗略熟悉了一个产品的制作与发布的流程,工作了这么久,也算是给个人创造一些“数字资产”,比较可惜的是没有带来多少收益,到最后,连 iOS 开发者费用都没有收回来。本来想,既然成功上架了一款 App ,那么后续再多上架几款应该挺容易的,然而,在过去的一年,突然没有了开发的动力,也不知道开发啥,看了一下,现在 App 好多,经过一番调研,打算在开发一款日记 App ,可开发到一半就开发不下去了,做的太普通了,界面也很一般,与现在市面上的 App 相比,自己开发的又有什么亮点与差异化呢?于是一直搁浅开发进度未上架。

总结:还是见过挺多成功的个人开发者的,所以现在应该还有一定的机会,只是要做出一些好的产品很难,但是总归可以去尝试一下,即使没有成功,也可以从中学到很多知识,获得一些开发的乐趣。
]]>距离上次发布已经过去两周了,感谢各位 V 友的关注和反馈!
这两周根据大家的建议疯狂迭代,合计 179 次提交,发布了 23 个版本 (v1.5.2 → v1.11.0),带来了多项重磅功能。
还记得评论区有 V 友建议的自动记账功能吗?已完成!
核心功能:
技术亮点:
flutter_ai_kit 框架,支持多 AI Provider 切换感谢有 V 友提供的苹果快捷指令思路,给了我很大启发!
评论区有 V 友提到"从微信导入后,想批量修改分类太麻烦",已解决!
新增功能:
使用场景:
已支持 8 种语言:
新增 10 种货币支持: EUR, GBP, JPY, KRW, HKD, TWD, SGD, AUD, CAD, CHF
完善了所有页面的翻译,包括 OCR 识别页面、自动记账、批量操作等新功能。
感谢社区捐赠支持,iOS 版本 TestFlight 公测已开启!
TestFlight 地址: https://testflight.apple.com/join/Eaw2rWxa
App Store 正式版正在审核中,预计本周通过,敬请期待!
两周成果:
感谢所有在上个帖子中提供建议和反馈的 V 友们,你们的每一条评论我都认真看了:
特别感谢 4 位捐赠者,让 iOS 版本得以上线!
近期规划(根据社区反馈):
🤖 训练专用账本识别模型(重点)
📸 优化 AI 识别准确率
🎨 UI/UX 持续优化
🌐 HarmonyOS 版本
长期规划:


Android:
iOS:
源码:
欢迎提 Bug 、建议和 PR !
这两周的快速迭代证明了一件事:开源社区的力量是巨大的。
每一条评论、每一个建议,我都认真看了,能实现的都尽快实现了。这才是做开源项目的乐趣所在。
接下来会继续保持这个节奏,持续优化产品,回馈社区。
如果觉得项目不错,欢迎 Star ⭐️ 支持一下!
感谢 V2EX ,感谢各位 V 友!🙏
项目地址: https://github.com/TNT-Likely/BeeCount 功能特色: 本地优先 | 云同步可选 | AI 智能识别 | 完全开源 | 隐私安全
]]>欢迎增加新功能,这个游戏属于越玩越好玩。
// 配置对象 const COnFIG= { WIRE_MAX: 100000, PRICE_HISTORY_LENGTH: 100, // 存储最近 100 个价格 PRICE_PREMIUM: 0, // 在最低价基础上加的溢价 INTERVAL: 500, STOP_ON_PROJECT: true }; // 环形缓冲区实现(高效存储历史数据) class PriceRingBuffer { constructor(size) { this.size = size; this.buffer = new Array(size); this.index = 0; this.count = 0; } push(price) { if (typeof price === 'number' && price > 0) { this.buffer[this.index] = price; this.index = (this.index + 1) % this.size; this.count = Math.min(this.count + 1, this.size); } } getMin() { if (this.count === 0) return 15; // 默认值 let min = Infinity; for (let i = 0; i < this.count; i++) { min = Math.min(min, this.buffer[i]); } return min; } getStats() { return { min: this.getMin(), count: this.count, ready: this.count >= 10 // 至少收集 10 个数据点才启用动态定价 }; } } // 初始化价格追踪器 const wirePriceHistory = new PriceRingBuffer(CONFIG.PRICE_HISTORY_LENGTH); // 缓存 DOM 元素 const elements = { wire: document.querySelector('#wire'), wireCost: document.querySelector('#wireCost'), btnBuyWire: document.querySelector('#btnBuyWire'), btnExpandMarketing: document.querySelector('#btnExpandMarketing'), btnMakePaperclip: document.querySelector('#btnMakePaperclip'), projectList: document.querySelector('#projectList'), processors: document.querySelector('#processors'), memory: document.querySelector('#memory'), btnAddProc: document.querySelector('#btnAddProc'), btnAddMem: document.querySelector('#btnAddMem') }; // 安全解析数字(处理各种格式) function parseGameNumber(element) { if (!element) return 0; const text = element.innerText || element.textContent || ''; // 移除逗号、货币符号、单位文字 const cleaned = text.replace(/[,$\s]/g, '').replace(/spool/i, ''); const num = parseFloat(cleaned); return isNaN(num) ? 0 : num; } // 安全点击 function safeClick(button) { if (button && !button.disabled && button.offsetParent !== null) { button.click(); return true; } return false; } // 获取动态价格阈值 function getDynamicPriceThreshold() { const currentPrice = parseGameNumber(elements.wireCost); if (currentPrice > 0) { wirePriceHistory.push(currentPrice); } const stats = wirePriceHistory.getStats(); // 数据不足时使用保守策略 if (!stats.ready) { return 15; } // 动态阈值 = 历史最低价 + 溢价 // 随着游戏进行,价格会上涨,这个策略会自动适应 return stats.min + CONFIG.PRICE_PREMIUM; } // 核心自动化逻辑 function runAI() { // 1. 制造回形针(最高优先级) safeClick(elements.btnMakePaperclip); // 2. 购买线材(动态定价策略) const wireStock = parseGameNumber(elements.wire); const wirePrice = parseGameNumber(elements.wireCost); const priceThreshold = getDynamicPriceThreshold(); if (wirePrice <= priceThreshold && wireStock < CONFIG.WIRE_MAX) { safeClick(elements.btnBuyWire); } // 3. 扩展营销 safeClick(elements.btnExpandMarketing); // 4. 自动购买 AutoClippers (前期核心) const btnBuyAutoclipper = document.querySelector('#btnBuyAutoclipper'); safeClick(btnBuyAutoclipper); // 5. 平衡升级 Processors 和 Memory const procCount = parseGameNumber(elements.processors); const memCount = parseGameNumber(elements.memory); if (memCount < procCount * 2) { safeClick(elements.btnAddMem); } else { safeClick(elements.btnAddProc); } // 6. 项目完成检测 if (CONFIG.STOP_ON_PROJECT && elements.projectList?.innerText.includes('Complete')) { console.log(`已制造 ${parseGameNumber(document.querySelector('#clips'))} 个回形针`); console.log('检测到项目完成,停止自动化'); clearInterval(autowire_int); } } // 启动自动化 const autowire_int = setInterval(runAI, CONFIG.INTERVAL); // 控制台工具函数 window.stopAutowire = () => clearInterval(autowire_int); window.getPriceStats = () => wirePriceHistory.getStats(); console.log('回形针自动化已启动'); console.log('命令:stopAutowire() 停止自动化'); console.log('命令:getPriceStats() 查看价格统计'); ]]>项目在这里:https://github.com/zhixiangxue/chak-ai
说说我为啥要写这个库哈~
我自己的几个痛点:
OpenAI 的 API 很方便,但上下文得自己管
每次对话一长,自己算 token 、截断历史、写策略...重复劳动,烦。
虽然都支持 OpenAI API,但各家文档翻起来也烦
想用 DeepSeek?翻文档找 base_url 和 model 名。想用百炼?火山?腾讯云?再翻一遍文档。切换模型?又得改配置、查参数。多数时候我只是想快速验证个想法,不想在文档里跳来跳去,烦。
虽然有 one-api 、OpenRouter 这种聚合方案
但要自己部署服务、配置路由、管理密钥...我就想写个脚本测试模型,不想搞运维,烦。
想要个本地网关?自己搭又麻烦
有时候就想在本地起个服务,快速测试不同厂商的模型,最好还有个 UI 能直接对话。但现有方案要么配置复杂,要么功能太重,烦。
所以我撸了个库,叫 chak 。
我的目标特别简单:能不能搞一个像 requests 一样简单的 LLM 客户端?
看代码就懂了:
pip install chakpy[all] import chak # 就这么简单,像 requests.get()一样直观 cOnv= chak.Conversation("deepseek/deepseek-chat", api_key="your_key") print(conv.send("介绍一下 Python 装饰器").content) # 继续聊,一直聊,上下文自动帮你管 print(conv.send("那装饰器用类怎么实现?").content) # 换个模型?改一行就行 conv2 = chak.Conversation("openai/gpt-4o-mini", api_key="your_key") 它不是要取代 OpenAI SDK 或 one-api ,而是:
上下文管理?内置 FIFO 、总结、LRU 三种策略,自动触发。
多家供应商?provider/model统一格式,支持 18+家。
复杂配置?不存在的,api_key 一给就能用。
本地网关?chak.serve()一行代码,内置对话界面,1 分钟就能和不同厂商模型对话。
如果你也:
可以试试。纯粹是解决自己的痛点,希望能帮到有同样困扰的人
觉得有用?给个 Star 吧 ⭐ → https://github.com/zhixiangxue/chak-ai
欢迎交流,有兴趣的兄弟给我留言哈~
]]>在传统的 AI 聊天场景中,交流方式主要局限于文字对话。虽然这在日常交流中已经足够,但在教育场景——尤其是 STEM 学科(科学、技术、工程、数学)的教学中,这种纯文字的交流方式远远不够。在真实课堂里,教师可以利用黑板、教具、图表等多种工具来帮助学生理解复杂的概念。ChatTutor 正是为了弥补这一缺陷而诞生的。
ChatTutor 采用了创新的多 Agent 架构,包含两个核心智能体:
项目目前已实现的功能包括:

正在规划中的功能:
ChatTutor 的目标是将真实课堂中的所有教学工具数字化,让 AI 不仅能"说",更能"做"——通过图形、图表、动画等多种形式,帮助学习者更直观、更深入地理解知识。这代表了 AI 在教育领域应用的新方向:从简单的问答助手,进化为真正具备教学能力的智能教师。
]]>
小米 17 Pro 发售,我个人其实觉得背屏的便利贴功能还挺好用的。所以就开始着手如何把功能搬到 iPhone 上,最后就有了这个 App 。
其实周六的时候就上线了,然后更新了两个版本,感觉各方面比较完善一点,所以拿过来吆喝一下。
快捷指令的支持,可以做到下面这些事情。

此外还支持了锁屏小组件、一个桌面小组件(都是拿来启动实时活动的)
整体来说,追求的就是简单快捷的实现一些信息上岛,然后可以在需要固定的时候固定住。
App 名字,中文「钉一下」,英文:Pin It
商店地址: https://apps.apple.com/app/id6753946385
说了这么多,免费兑换还没说,App 本体免费,然后里面有一个内购,内购设计的价格是 USD$3.99 ,但是也算是通常操作了,上线来一波限免,现在一直到周三( 2025/11/12 ),内购价格都是 0.00 ,这就是「免费兑换」。
希望大家可以积极反馈功能的建议和意见。如果可以的话,帮忙在现在这个帖子底下回复甚至能给个五星好评就更好了。
]]>之前被电视盒子恶心了好一段时间。 一直琢磨怎么绕开那玩意儿看电视。 思来想去还是觉得电脑好用,上了电脑我播什么内容可就由不得他了。
问题是电视盒子的遥控器确实方便,这点电脑比不了。 试了无线鼠标、键盘、遥控键盘方案(某宝那种),用了一段时间还是觉得不够方便。
键盘鼠标占地方、还得充电,而且也只能放在沙发、床附近的地方,不能像遥控器那样拿着到处跑。 键盘遥控器的操控更是一坨。
直到有一天我在沙发上看电视划手机,扒拉出了一个想法:用手机充当触控板和键盘,来控制电脑鼠标滑动和打字,外加远程开关机,能完成这三点功能基本上控制电脑看片就很方便了。
于是做了这个 App 。
做出来用了一段时间感觉还行,就准备上架商店。
iOS 倒是比较顺利,上架有一段时间了。
现在来上架 Google Play 。结果 Google play 要求 23 年以后注册的个人账户,上架必须邀请最低 12 个人参与测试,并连续测试 14 天才允许上架。。。。。
干了。。
因此,邀请大家来进行测试玩耍。
1️⃣ 加入 GG 群组自动获得测试资格: 传送门在此: 👉 https://groups.google.com/u/1/g/mousehero
2️⃣ 加入群组后手机访问 Google Play 下载 app: 👉 https://play.google.com/store/apps/details?id=com.aprilzz.mousehero
3️⃣ 下载并允许电脑端(绿色免安装): 👉 https://mousehero.aprilzz.com/
程序员都要失业啦,做个 APP 收点费用怎么了??? 怎么了!!!而且我收的也不多嘛。
国内 2 块钱一个月,国外也才 0.5 刀一个月,还可以买断。
土豪如你,洒洒水啦。
不是,兄弟,你听我解释。
这个封闭测试期间是要走一下购买的流程没错,但是亲测是用只是模拟卡片付费,并不非真的扣钱的。
所以加入测试群组获得测试资格后,就可以白嫖 APP 了。
(我也是第一次上架,以上纯属瞎猜,如果有误,我会好好解释的!!🙁)
这就看什么时候能达到 12 位朋友帮忙连续测试 14 天 这个标准了, ┑( ̄Д  ̄)┍
兄弟,首选地点是回复此贴。
其次可以发邮件到 wujiyuntian#gmail
别骂的太狠 😔
这位上帝,别生气嘛,iOS 我已经为您全部办妥了,只要打开 App Store 搜索 鼠标侠或者 MouseHero 就可以找到 APP 了,完全不需要测试。
大概搞定了,我在 Arch + KDE ( wayland )下面试了下看起来 OK ,别的系统没测试(懒 ╮(╯▽╰)╭)
]]>网址:nanobibi
NanoBibi 是一个面向个人的 AI 批量创作与自动化平台。
支持多模态生成与图片处理,让创作流程标准化、自动化。
一次设置,批量完成,把时间花在创意上,而不是重复劳动上。
功能介绍
AI 图片处理
批量处理与自动化
自定义模板与提示词
把重复的 AI 劳动变成自动化,让 AI 真正成为创意生产线。
专注创意,而不是重复。
<sub>Image generated with Gempix • Prompt by @azed_ai</sub> Prompt
A minimalist and creative advertisement set on a clean white background. A real [Real Object] is integrated into a hand-drawn black ink doodle, using loose, playful lines. The [Doodle Concept] interacts with the object in a clever, imaginative way. Include bold black [Ad Copy] text at the top or center. Place the [Brand Logo] clearly at the bottom. The visual should be clean, fun, high-contrast, and conceptually smart.
<sub>Image generated with Gempix • Prompt by @egeberkina</sub> Prompt
retexture the image attached based on the JSON aesthetic below { "style": "photorealistic 3D render", "material": "glass with transparent and iridescent effects", "surface_texture": "smooth, polished with subtle reflections and refractive effects", "lighting": { "type": "studio HDRI", "intensity": "high", "direction": "angled top-left key light and ambient fill", "accent_colors": ["blue", "green", "purple"], "reflections": true, "refractions": true, "dispersion_effects": true, "bloom": true }, "color_scheme": { "primary": "transparent with iridescent blue, green, and purple hues", "secondary": "crystal-clear with subtle chromatic shifts", "highlights": "soft, glowing accents reflecting rainbow-like effects", "rim_light": "soft reflective light around edges" }, "background": { "color": "black", "vignette": true, "texture": "none" }, "post_processing": { "chromatic_aberration": true, "glow": true, "high_contrast": true, "sharp_details": true } } Reference Image Required: An image needs to be uploaded as the base for retexturing.
<sub>Image generated with Gempix • Prompt by @ZHO_ZHO_ZHO</sub> Prompt
Hyperrealistic, top-down bird's-eye view shot, a beautiful Instagram model [Anne Hathaway], with exquisite and beautiful makeup and fashionable styling, standing on the screen of a smartphone held up by someone. The image creates a strong perspective illusion. Emphasize the 3D effect of the girl standing out from the phone. She wears black-rimmed glasses, high-street fashion, and strikes a cute, playful pose. The phone screen is treated as a dark floor, like a small stage. The scene uses strong forced perspective to show the proportional difference between the hand, the phone, and the girl. The background is clean gray, using soft indoor light, shallow depth of field, and the overall style is surrealistic photorealistic compositing. Very strong perspective. ]]>扩展依托 Manifest V3 内容脚本,在页面加载后注入 scripts/content.js 与 styles/content.css ,无需外部依赖即可完成 DOM 监 听、按需刷新、大纲渲染与锚点滚动。
https://www.xugj520.cn/archives/chrome-deepseek-outline-nav-plugin-guide.html
插件下载在文章末尾
]]>
]]>起因很简单,就是我每次给别人写生日祝福的时候都会卡壳。
「生日快乐」太普通了,多写一点,又会写得很尴尬、做作,甚至有点社死感。 尤其是给不同的人——好朋友、同事、爸妈、伴侣,小心翼翼地调整语气这件事,真的挺难的。
我后来发现,不止我这样。 身边的人写生日文案、给人发生日信息、甚至写生日卡片的时候,也经常都是「救命,帮我写一句」,然后大家一起现场即兴创作。
我就想: 能不能有一个工具,不是那种「模板句子」大杂烩,而是真的根据关系、语气、表达方式,帮你说出你心里本来就想说但一时说不出来的话?
于是就做了这个网站。
你可以: • 先选「关系」:朋友 / 情侣 / 父母 / 同事…… • 再选「表达风格」:走心 / 可爱 / 幽默 / 正式 / 简短 • 也可以填一点对方的特点、小细节 网站就会生成一句「你会愿意自己说出口」的生日祝福。
另外我还整理了一个比较大的祝福语合集库,做了分类,让不想动脑的人可以直接复制,不用翻一堆百度文库、公众号、微博图。
还有一个小功能是: 把祝福语直接生成一张可保存/可发的生日卡片。 不需要设计基础,也不会很花哨,就是干净、体面、能发得出去的那种。
这个项目不大,也没什么「改变世界」「 AI 颠覆人类」的那种宏大目标。 就是一个我自己真正需要的小工具。 也希望对同样在表达上会犹豫、担心说不好的人,有一点点帮助。
如果你愿意试一下,我很乐意听听你觉得哪里可以改得更顺手。 尤其是:你觉得「关系分类」要不要再加一些?比如:网友、群友、前同事?
非常感谢看到这里。
]]>因为自己有很多邮箱,outlook,gmail,qq 等,每次查看邮件都要登录对应的网页,因此做了一个邮件聚合平台,后面发现邮箱主要就是接收验证码和登陆链接等,所以又加上了验证码,链接取提取功能
主要利用的是 Cloudflare Worker 接收邮件功能,思路就是将各个邮件设置转发,转发到 Worker

https://github.com/bestruirui/Alle
小程序体验: ![]()
萌眼小团效果图: 
该功能是对此项目的重新实现:Blobby
]]>我将字节的即梦 4.0 的强大文生图能力通过 MCP 协议接入 Cursor ,现在 AI 不仅能写代码,还能自动为网页生成、插入合适的图片! 只需要在 Cursor 中通过自然语言指令,即可为网页自动生成并插入风格匹配的图片,大幅提升开发体验与页面质感。
🚀 立即体验:
开源 MCP 服务: https://github.com/wearzdk/seedream-image-mcp
开箱即用 SaaS 版: https://mcp.pixelark.art/
如果有用,欢迎给个 Star ⭐️ 也非常期待大家体验和反馈!
]]>Code Switch 核心点是 claude code & codex 代理模式, 可以多渠道同时使用, 按优先级调度, 失败了就降级到下一个渠道, 还支持了 拖动排序调整优先级
昨天发布以后收到不少大佬提的需求, 正在逐步增加
先支持下 claude code & code 通用的 mcp server 管理
可以在 Code Switch 内管理 双平台的 mcp server 服务
github: https://github.com/daodao97/code-switch


这是一个“公共画布”,后来的需求会覆盖前面的作品,抢活靠手速,整活不设限。
https://play.apexstone.ai/欢迎把它改成算命、写真馆、复古主页、知识库……再被下一个网友“推翻重建”。右下角提需求,整活就对了!
]]>Key Features
Perfect for writers, developers, and AI enthusiasts who want to stay organized, creative, and productive.
Disclaimer: Extension co-authored with Claude AI.
]]>开源了一个基于 Docker 的星露谷物语服务器一键部署解决方案。
项目地址: https://github.com/truman-world/puppy-stardew-server

这个项目最大的亮点是整合了几个自定义模组,带来了更好的多人游戏体验:
即时睡眠功能:任何一个玩家在床上选择睡觉,游戏会立刻为所有在线玩家存档并结束当天。再也不用互相等待离线或 AFK 的玩家。
24/7 专用服务器:基于 Docker 容器化,服务器可以 7x24 小时独立运行,房主无需在线。适合部署在 VPS 、云服务器或家用 NAS 上。
一键脚本部署:一条命令,3 分钟即可完成所有环境配置和启动。无需手动安装 SMAPI 、配置模组或设置环境。
跨平台联机:支持 PC 、Mac 、Linux ,以及 iOS 和 Android 玩家在同一个服务器中游戏。所有平台互通,无需复杂配置。
房主自动隐藏:主机玩家作为服务器运行,在游戏中自动隐身,不占用玩家名额,也不会干扰正常游戏。
存档自动加载:服务器重启后会自动加载最新的存档,无需手动操作。首次部署通过 VNC 创建存档后,之后完全自动化。
内置 VNC:首次创建世界时,可以通过浏览器或 VNC 客户端远程访问图形界面,操作简单。
自然技能升级( v1.0.58 新增):防止服务器强制房主升到 10 级,保持基于真实经验值的技能等级。玩家可以手动选择技能专精路线,保留游戏原有的成长乐趣。
在任何一台安装了 Docker 的服务器上运行:
curl -sSL https://raw.githubusercontent.com/truman-world/puppy-stardew-server/main/quick-start.sh | bash 脚本会自动完成环境检查、配置文件生成、目录创建、权限设置和容器启动。
如果你更喜欢手动控制:
1. 创建 docker-compose.yml
version: '3.8' services: stardew-server: image: truemanlive/puppy-stardew-server:latest container_name: puppy-stardew restart: unless-stopped stdin_open: true tty: true environment: - STEAM_USERNAME=your_steam_username - STEAM_PASSWORD=your_steam_password - ENABLE_VNC=true - VNC_PASSWORD=stardew123 ports: - "24642:24642/udp" - "5900:5900/tcp" volumes: - ./data/saves:/home/steam/.config/StardewValley:rw - ./data/game:/home/steam/stardewvalley:rw - ./data/steam:/home/steam/Steam:rw deploy: resources: limits: cpus: '2.0' memory: 2G 2. 设置权限并启动
mkdir -p data/{saves,game,steam} chown -R 1000:1000 data/ docker compose up -d 3. 首次设置
使用 VNC 连接到 your-server-ip:5900(密码:stardew123),创建或导入存档。
4. 玩家连接
游戏中:Co-op → Join LAN Game → 输入 your-server-ip:24642
服务器端:
客户端:
修复:
改进:
已解决的问题:
如果觉得有用,欢迎给项目点个 Star 。
]]>我最近一个个网站试脚本,才发现很多人根本不知道某些网站已经有超强的脚本功能(比如某站竟然能解锁 4K...我也是最近才知道 但是别人已经用了大半年了 比如本站大佬开发的 链接助手 一劳永逸的解决了我每个论坛都得从头写默认新标签页打开帖子脚本的困境 实际上发布会很久了 但我也是某天刷论坛看到有人推荐才知道有这么好用东西)。
问题是现在的筛选机制几乎没法用: 就拿油猴来说
按安装量排 → 一堆上古脚本,早没人维护了的
按发布时间排 → 大量新手练手作根本没什么意义
想筛出「最近 3 个月有更新 + 安装量前 10 」的脚本?对不起 做不到
想看「最近一周新增安装量最多」的脚本? 那还是做不到
连多条件筛选都不支持,比如“适用于某网站 + 今日下载量排行 + 总安装了 100 以上”,完全做不到
Chrome 商店更糟,连模糊发现都不行,只能按名字硬搜 这导致很多小众但高质量的扩展几乎没人知道
这其实也可以变成一个自媒体方向: 每天评测常用网站的前十脚本、前十插件、新发布推荐之类 我自己肯定会天天看。
只是我不适合做这种内容,我的性格很烂 是全世界最多的 intp 乐趣来自独立探索,不是分享
我们太需要一个能发现工具的工具了。
如果有大佬写个给 Greasy Fork / Chrome 商店加多重筛选和推荐算法的脚本,我立刻感谢安装
]]>| 模块 | 内容 |
|---|---|
| 元音系统 | /a e i o u/ |
| 辅音系统 | /p b t d k g m n s r l/ |
| 双辅音 | /pp tt kk mm nn rr ll/ |
| 音节结构 | CV / CVC ,重音倒数第二音节 |
| 平调 | 无声调,高低变化通过元音长度或叠音表达 |
| 叠音机制 | 词或音节重复 → 强化、延续或数量 |
| 发音继承系统 | 下位概念继承上位词干音素 + 尾音/元音变化表示细化 |
| 虚/实系统 | Tae = 实界 / Sha = 虚界,通过尾音或元音延长区分 |
| 构词规则 | 尾音扩展、叠音、无限层继承 |
| 句法提示 | 虚实一致,尾音长度和叠音决定语气和语义层级 |
比如石头为 ko ,岩石为 kou ,花岗岩为 kota ,玫瑰花岗岩为 kotara 。下位的发音要继承上位的发音
| 分类 | 典型例子 |
|---|---|
| 实 (Tae) | 石头、水、风、电、树、身体、声音 |
| 虚 (Sha) | 情感、思维、梦、记忆、灵魂 |
某些发音要双重发音
]]>Hi ,v 友,我开发了一个能够用手机控制电脑浏览器上视频播放的工具,欢迎使用,any issue is welcomed! https://github.com/Leteno/BilibiliController
示意图: https://github.com/Leteno/BilibiliController/blob/main/misc/demo.png
为啥要做这个呢?明明有 B 站自带投屏?
自己用起来还行,至少不用从沙发爬起来,跑过去了。 当然如果 v 友有什么想法的话,可以提 issue ,我抽时间看能实现不。
感觉这个需求还是偏小众,如果 v 友觉得这个好玩的话,麻烦点颗星星,star did encourage engineer ,多谢!
]]>

https://apps.microsoft.com/detail/9n6x2fnjv21v?hl=zh-hans&gl=CN&ocid=pdpshare
]]>和 AI 协作写了详细的技术规范( 2000 行),让 Cursor/Copilot 基于这些规范工作,上下文窗口完全够用。但 AI 开始:
问题不在上下文大小,而在上下文质量。
讽刺的是:你写详细规范帮助 AI ,但细节却让 AI 变笨。
四个实用策略:
1. 分区( Partition ) - 拆分大文档,只加载需要的部分
specs/dashboard/README.md (200 行 - 概述) specs/dashboard/DESIGN.md (350 行 - 架构) specs/dashboard/IMPLEMENTATION.md (150 行 - 计划) # AI 只读它需要的,不是全部 1200 行 2. 精简( Compact ) - 删除重复和可推断内容
# 之前:300 行解释 JWT 的好处 # 之后:使用 JWT 令牌(无状态,无会话存储) 3. 压缩( Compress ) - 总结已完成的工作
# 之前:50 行详细步骤 # 之后:✅ 第 1 阶段完成(见提交 abc123 ) 4. 隔离( Isolate ) - 将独立功能拆分为单独的规范
我们用这套方法构建了 LeanSpec 本身:
中途违反了自己的原则:规范增长到 1166 行
应用上下文工程后:拆分为 378 行以下
npm install -g lean-spec cd your-project lean-spec init lean-spec create user-authentication LeanSpec 提供:
底线:你的 AI 工具只有你给它们的上下文好。2000 行规范即使装得下,也会比 300 行规范产生更差的结果。
GitHub: https://github.com/codervisor/lean-spec
文档: https://lean-spec.dev
对 LeanSpec 和 SDD 感兴趣的小伙伴,欢迎加微信 tikazyq1(请注明 lean-spec )进讨论群交流 👇
]]>我自己用了有一段时间了,确实帮我解决了 Spotlight 搜索不到一些文件的问题,而且速度也够快,我自己很喜欢,所以分享给大家。
实现过程中走了很多弯路,如果最近事情不多的话,找时间分享一下踩坑历程和实现思路 :D
目前项目已开源:https://github.com/ldm0/cardinal,大家可以在 release 页面下载。

因为 espanso 可以调用 shell 脚本所以约等于一个小号的 raycast 。espanso 只是一个文本扩展器软件,它有个搜索框很方便,我日常使用它来记住一些比较常用的 shell 命令,代码片段,这只是它的特别用法。
brew install gh espanso gh auth login ~/Library/Application Support/espanso/match/promats.yml) # how to use this config ## 1. install gh in your system run gh auth ## 2. set editor in gh eg: gh config set editor "zed -w" ps: you can use vscode "code -w --disable-extensions" ## 3. $: echo hello | run gh gist create -d "llm prompt" ## 4. get your and change your gist id $: gh gist ls --filter prompt global_vars: - name: gist_id type: echo params: echo: b94d3e90a752b849757d2a078fbf293a #echo: f3171d580fab61b8a3ec76d9514863f6 # test # 1. Get the gist list - name: gist_list type: shell params: cmd: "gh gist view {{gist_id}} --files" # 2. Format the list for the choice menu - name: gist_options type: shell params: cmd: | echo "{{gist_list}}" | while read -r line; do echo "$line" done matches: - trigger: ":prompt-view" label: "Select LLM prompt from GitHub Gist" replace: "{{prompt}}" search_terms: - prompt - llm - ai vars: # 3. Show the choice menu to the user - name: gist_choice type: choice params: values: "{{gist_options}}" # 4. Get the content of the chosen gist - name: prompt type: shell params: cmd: gh gist view "{{gist_id}}" -r -f "{{gist_choice}}" - trigger: ":prompt-edit" label: "edit LLM prompt to GitHub Gist" replace: "{{output}}" search_terms: - prompt - llm - ai - edit vars: # 3. Show the choice menu to the user - name: gist_choice type: choice params: values: "{{gist_options}}" # 4. Get the content of the chosen gist - name: output type: shell params: cmd: gh gist edit "{{gist_id}}" -f "{{gist_choice}}" - trigger: ":prompt-add" label: "add LLM prompt to GitHub Gist" replace: "{{output}}" search_terms: - prompt - llm - ai - add vars: - name: file type: form params: layout: | 请输入文件名[[name]] 示例: claude_user#role#coding#claude 请输入 prompt 内容: [[content]] fields: content: multiline: true - name: carete_file_in_tmp type: shell params: cmd: echo "{{file.content}}" > /tmp/prompt - name: add type: shell params: cmd: gh gist edit "{{gist_id}}" -a "{{file.name}}" /tmp/prompt - name: output type: shell params: cmd: gh gist view "{{gist_id}}" --files | grep "{{file.name}}" && echo "{{file.name}} create faild" || echo "file {{file.name}} create success" trim: false - trigger: ":prompt-del" label: "del LLM prompt for GitHub Gist" replace: "{{output}}" search_terms: - prompt - llm - ai - del vars: # 3. Show the choice menu to the user - name: gist_choice type: choice params: values: "{{gist_options}}" # 4. Get the content of the chosen gist - name: delete type: shell params: cmd: gh gist edit "{{gist_id}}" -r "{{gist_choice}}" - name: output type: shell params: cmd: gh gist view "{{gist_id}}" --files | grep "{{gist_choice}}" && echo "{{gist_choice}} is delete" || echo "file {{gist_choice}} is exist" trim: false