Vibe coding:时区时钟
Source: Dev.to
介绍
Hi! 这是我自大学时期以来关于任何计算机科学相关内容的第一篇博客,也是我想做很久的事。感谢收看!
我写这篇博客的目标是:
- 记录我的项目。
- 提醒自己,即使不走 beaded(即规定的)路径,也能达到最终目标。
我的使用案例、工作流、代码、实现等可能并不完美,但没有什么是完美的。我只想证明我能够开始并完成一个项目,几年后回顾时不再对自己的工作产生怀疑。我想记住我从哪里开始,以及我走了多远。
灵感火花:Vibe 编码
Vibe coding 在 2025 年初就吸引了我的注意。作为一个不经常写代码的人,LLM 能够为你编写代码并加速工作流的想法令人着迷。下面是该项目想法来源的一些背景信息。
自建实验室背景
- 我在一台 Dell Latitude 上安装了 Proxmox,并一直在用它进行实用项目的 tinkering。
- 我有一块较旧的 Raspberry Pi 3 B+,装在 Retroflag‑NESPI 机箱中,最初运行 RetroPie 用于复古游戏。
- 在获得 Steam Deck 后,这块 Pi 被存放起来,准备用于未来的项目。
在 2019 年,我购买了一块 Raspberry Pi 7‑inch 触摸屏显示器,用作主桌面的音乐播放器/温度读取器。它运行良好,直到 2025 年初,我升级到更大的显示器并把 Pi 与屏幕一起放进抽屉中。
想法成形
在 2025 年末,我翻找抽屉时发现了树莓派和触摸屏,心想,“我到底要用这玩意儿干什么?”
我不想把它扔掉,于是寻找一个实用的用途。
在之前的一份 SaaS 远程工作中,我帮助用户处理医疗文档、登录问题、账户管理、数据库更改等。我们的用户遍布美国各地,了解每位用户的时区至关重要。
身在东海岸,我只能在脑中按一小时递减的方式换算出中部时间(CST)、山地时间(MST)和太平洋时间(PST),但桌面上显示多个时区的时钟会快得多。我也想要一种不依赖电脑小部件就能查看时间的方式。
这种便利性激发了 时区时钟 的概念。
实现规划
- 轻量且简洁 – 我想要一个开源工具,能够作为桌面可执行文件运行。
- 硬件 – Raspberry Pi OS(轻量,专为 Pi 设计)将作为操作系统;最坏情况下我可以回退到 Ubuntu。
- 耐用性 – 设备应能可靠地开关机,而不会导致操作系统崩溃。
我决定使用 LLM 来 vibe code 这个项目,看看能否接近完整的产品。
选择 LLM
- ChatGPT 是我首先尝试的 LLM。
- 我本可以尝试其他模型,但我想避免学习新系统的开销,所以坚持使用 ChatGPT。
首次提示与工具选择
我向 ChatGPT 的最初提示是:
“我需要帮助将 raspberry pi 3 b+ 改造成一个一次显示三个不同时区的时钟。Pi 将装在 7‑英寸触摸屏中。帮我寻找可以安装的想法或免费开源工具。请注意,我的设备上已安装 Raspberry Pi OS。”
ChatGPT 理解了硬件限制,建议使用 Tkinter(Python 的标准 GUI 库)。其优势:
- 轻量级,无需 Web 堆栈。
- 运行快速,无浏览器或网络依赖。
- 高度可定制(例如夜间模式)。
ChatGPT 甚至生成了一个设想 UI 的模型图,我很喜欢。
获取第一个脚本
ChatGPT 提供了一个 Python 脚本,内容包括:
- 安装 Python 3 和 Tkinter。
- 显示三个时区。
我感到很兴奋,但也注意到 ChatGPT 自行添加了一些小细节,这让我重新考虑实现的部分。这是一次典型的 vibe‑coding 教训:不要假设 LLM 的输出就是最终版——你仍然需要审查并进行调整。
接下来怎么办?
从这里我将:
- 完善脚本(调整布局,添加夜间模式,处理夏令时的变化)。
- 将应用打包为独立可执行文件,以便在树莓派上轻松启动。
- 完整记录设置过程(安装依赖、配置触摸屏等)。
敬请期待下一篇文章,我将在其中分享最终代码、安装步骤以及 Time‑Zone Clock 实际运行的演示!
项目概述
LLM 知道关于你的想法的一切,就像你自己一样。
要获得最佳结果,你应该:
- 从一开始就在提示中解释细节——向模型提供所有必要的数据,以便它能快速、准确地把握想法。
- 在进行中进行更改——对设计和功能进行迭代。
从 Version 1 的更改
| # | 更改 | 详细信息 |
|---|---|---|
| 1 | 时区顺序 | 将显示的时区重新排序,使 EST 出现在底部。 |
| 2 | 突出显示 EST | 为 EST 时区添加了视觉突出显示。 |
| 3 | 12/24 小时切换 | 在屏幕上放置了一个按钮,以在 12 小时制和 24 小时制之间切换。 |
| 4 | 退出方式 | 长按触摸屏(或鼠标按下)即可退出应用,省去右上角退出按钮,使 UI 更简洁。 |
| 5 | 方向 | 将原点设置为水平。(后来发现方向遵循操作系统设置,因此不需要代码更改。) |
实施这些更新后,我将脚本加载到 Raspberry Pi 上并运行了 Version 1。
初步印象
- 简洁性 – 该应用即插即用;无需进行无止境的测试。
- 功能性 – 时间显示正确,屏幕保持点亮直至应用关闭,12/24 小时切换按钮正常工作,长按退出功能如预期。
现在我只需要:
- 为 7 英寸显示屏调整字体大小。
- 添加夜间模式功能。
第二波更改
- 调节字体大小 – 为精确的7‑英寸屏幕进行优化。
- 夜间模式 – 在 22:00 – 06:00 之间自动启用。
- 夜间模式颜色 – 夜间模式激活时将字体颜色切换为 琥珀色。
注意: “Pi 已就绪!明白了吗?不?好吧…”。
下一步
- 创建一个桌面图标可执行文件,这样我就不必每次想运行应用时都在树莓派上打开文本编辑器。
- 我会分享一个包含安装说明的仓库(完整脚本对这篇博客文章来说太长了)。
反思与经验教训
-
小问题:
- ChatGPT 有时会要求澄清或尝试重写整个脚本,而不是让我手动编辑。
- 出现了文件权限和文件转换问题。
-
未来想法:
- 将应用迁移到 Proxmox 环境。
- 改善对更大显示屏和 Windows 的兼容性(当前为 Linux 7 英寸屏幕构建)。
代码库与资源
一个包含代码、安装说明和已知问题的仓库链接将在下方提供,供想要自行尝试的人使用。
最后说明
如果你读到这里——谢谢!我在构建这个项目和撰写相关内容时玩得很开心。我希望自己能更早开始,并且对未来发布更多博客感到兴奋。