Tapestry应用 |
2025-02-17 |
刚通过这篇文章发现了 Tapestry 应用,这是一个类似 Follow 的阅读器,可以订阅各种信息来源,创建自己的信息流。
不同的是它只做 iOS 端,并且有插件系统
2024年一月开始在 Kickstarter 上众筹,并达成目标($177,840 / $100,000),耗时一年的开发,2025年2月发布了正式版。
界面看起来还不错:
tapestry-app-1
tapestry-app-2
不同的是它只做 iOS 端,并且有插件系统
2024年一月开始在 Kickstarter 上众筹,并达成目标($177,840 / $100,000),耗时一年的开发,2025年2月发布了正式版。
界面看起来还不错:


TRMNL电子墨水仪表盘 |
2025-02-14 |
每家公司仅限一台设备,仅限美国境内,因为我们没钱🤣

Meta FAIR AI Demos |
2025-02-14 |
Meta FAIR AI Demos
这是 Meta 公司最新的 AI 研究成果的 Demo 展示,
目前网站上有4个 demo:视频对象选取、语音翻译、手绘图转动画、AI语音故事创作,都挺有意思的,体验挺不错的
这是 Meta 公司最新的 AI 研究成果的 Demo 展示,
目前网站上有4个 demo:视频对象选取、语音翻译、手绘图转动画、AI语音故事创作,都挺有意思的,体验挺不错的
使用 rubocop 自动格式化每次的代码提交 |
2025-02-13 |
起因:经常在 push 代码前忘记格式化,所以干脆将该动作放在 CI 里自动格式化代码 ( 适合Github代码库 )
步骤:修改 rails 默认生成的 ci.yml 文件,将 lint job移到最上方,并修改如下:
步骤:修改 rails 默认生成的 ci.yml 文件,将 lint job移到最上方,并修改如下:
jobs: lint: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: .ruby-version bundler-cache: true - name: Lint code for consistent style run: bin/rubocop -f github -A - uses: stefanzweifel/git-auto-commit-action@v5 with: commit_message: "style: auto fix by rubocop"
然后将 /vendor/bundle 加入到 .gitignore 中,防止 auto-commit 提交了 bundle 里的缓存文件。
最后,在 repo 的 Settings / Actions / General / Workflow permissions 中勾选 Read and write permissions 确保写入权限。
这样每次提交,即可自动使用 rubocop 格式化代码,非常方便
最后,在 repo 的 Settings / Actions / General / Workflow permissions 中勾选 Read and write permissions 确保写入权限。
这样每次提交,即可自动使用 rubocop 格式化代码,非常方便
在 Docker 容器中获取和显示 Git 部署版本号的折腾记录 |
2025-02-11 |
昨天晚上,我准备给我的 CMS 添加显示 deploy git hash 的功能,方便跟踪当前博客部署所使用的最新提交 hash,以判断是否需要更新,或者更新是否成功。
最开始,我直接执行 git 命令获取 HEAD 所在的 hash 值(commit):
最开始,我直接执行 git 命令获取 HEAD 所在的 hash 值(commit):
def self.git_version @git_version ||= `git rev-parse HEAD`.strip[0..7] end

但又失败了:
fatal: not a git repository (or any of the parent directories): .git
我忘记 Dockerfile 中的 COPY 命令默认是不会复制 .git 目录的。
所以最后决定直接在 Dockerfile 中执行命令并输出 hash 到 REVISION 文件中,然后 Rails 直接读取该文件即可。
Dockerfile 添加了下面的代码:
所以最后决定直接在 Dockerfile 中执行命令并输出 hash 到 REVISION 文件中,然后 Rails 直接读取该文件即可。
Dockerfile 添加了下面的代码:
COPY .git /rails/.git RUN git rev-parse HEAD > REVISION && \ rm -rf .git RUN chown -R rails:rails REVISION
重新 git_version 函数:
def self.git_version @git_version ||= begin if File.exist?("REVISION") File.read("REVISION").strip[0..7] else "NA" end end end
最后在相关的 html.erb 文件中添加:
<span>Depoly Git Hash: <%= VersunCms::Application.git_version %></span>
效果如下
deploy git hash

AI正在造就一代文盲程序员 |
2025-02-10 |
我不再阅读文档。既然人工智能可以即时解释,为什么还要费心呢?
我甚至不再阅读错误信息,而是直接复制粘贴。
我成了一个人肉剪贴板,只是我的代码和 LLM 之间的中介。
以前,每一条错误信息都能让我学到一些东西。现在呢?解决方案神奇地出现了,我却什么也没学到
现在,我只需执行人工智能的建议。如果不奏效,我就改进上下文,然后再次询问人工智能
我太熟悉这种感觉了,从早期的Github Copilot,再到Codeium、Cursor、Windsurf,一路见证了AI的代码能力突飞猛进,直到2024年12月底的年终总结时,我发现我的代码能力进步缓慢,成为了一个面向上下文的程序员。
于是,我做出了改变:
- 不再续订Cursor和Windsurf
- 使用Perplexity代替谷歌搜索
不再直接让AI提供代码,而是回归传统方式 - 通过关键词搜索来理解错误信息,自主调试解决问题。虽然在遇到困难时,我常常怀念Cursor和Windsurf这类工具带来的便利,也会被它们不断推出的新功能所吸引,但我还是克制住了使用的冲动,当我重新开始阅读文档、分析错误日志、一步步排查问题时,虽然过程更艰辛,但每解决一个问题都能带来更大的成就感。
经过一个多月的坚持,我重新找回了编程的乐趣。现在我不再试图与AI较劲,而是将其视为辅助工具和良师益友。
以前总是想着如何更快地完成任务,现在却发现慢下来的过程中,我对代码的理解更深入了,解决问题的思路也更清晰了。
在编程学习的道路上,有时"慢"反而是最快的方式。
AI确实是个强大的工具,但更重要的是要懂得如何恰当地使用它。就像一个经验丰富的程序员,知道什么时候该查文档,什么时候该请教同事一样,我现在也学会了在合适的时机寻求AI的帮助,而不是过分依赖它。
经过一个多月的坚持,我重新找回了编程的乐趣。现在我不再试图与AI较劲,而是将其视为辅助工具和良师益友。
以前总是想着如何更快地完成任务,现在却发现慢下来的过程中,我对代码的理解更深入了,解决问题的思路也更清晰了。
在编程学习的道路上,有时"慢"反而是最快的方式。
AI确实是个强大的工具,但更重要的是要懂得如何恰当地使用它。就像一个经验丰富的程序员,知道什么时候该查文档,什么时候该请教同事一样,我现在也学会了在合适的时机寻求AI的帮助,而不是过分依赖它。
电影《魔法坏女巫》 |
2025-02-09 |
昨晚看了2024年12月在北美上映的电影《魔法坏女巫》,音乐不好听,满满的尬点,虽说是音乐剧,但《爱乐之城》就很好看很好听,就这片听说一周票房过亿,无法理解
本博客已迁移 |
2025-02-06 |
喜大普奔,终于摆脱 wordpress 了,博客迁移到自己用 Rails 写的 CMS,
添加了自动同步到X、Mastodon 和 Bluesky 的功能
主要目的就是博客做为主要的发布平台,其它社交平台做为宣发平台,既能控制自己的数据又能不耽误交流宣发,非常方便。
添加了自动同步到X、Mastodon 和 Bluesky 的功能
主要目的就是博客做为主要的发布平台,其它社交平台做为宣发平台,既能控制自己的数据又能不耽误交流宣发,非常方便。
您想建立自己的数据中心吗? |
2025-01-21 |
So You Want to Build Your Own Data Center
文章介绍了Railway公司如何从0开始构建自己的数据中心的历程。
个人非常喜欢看这类文章,就像折腾自己的HomeLab一样,很有意思
面向LLMs的开发文档 |
2025-01-17 |
Designing tools for developers means designing for LLMs too
目前 LLMs 在解决较新的前后端框架或者软件包时的表现并没有像解决 Django 或者 React 那么好,所以 Encore 公司开始面向 LLMs 优化文档,并针对 Cursor 等 IDE 进行了规则匹配,大大提升了 LLMs 在解决或构建 Encore 框架代码的质量
或许以后面向LLMs的开发文档会成为主流