一个只有我看得到的仪表板:Cloudflare Worker+Apple Reminders+调度 AI
大学生的事情散在太多地方:死线、学校邮件、交换进度、学会工作,各有各的地方。我想要的是早上打开手机,一个画面就知道接下来 30 日要做什么。 于是我做了 dash.joenyc.net:一个跑在 Cloudflare Worker 上的私人仪表板,前面加一层 Cloudflare Access,只有我自己登录得到。这…
浏览全部的写作纪录。
这里收录了所有的 10 篇文章 (第 1 / 1 页)
大学生的事情散在太多地方:死线、学校邮件、交换进度、学会工作,各有各的地方。我想要的是早上打开手机,一个画面就知道接下来 30 日要做什么。 于是我做了 dash.joenyc.net:一个跑在 Cloudflare Worker 上的私人仪表板,前面加一层 Cloudflare Access,只有我自己登录得到。这…
上一篇〈PolyU × Linköping University 交换申请〉讲到,我选课时用了「两科没有专业先修要求的课当地基,再加一科有风险的课当上盖」的策略。现在第一轮审核结果出来了:上盖那一科没批。 这篇是结果回报——实际少了什么、对毕业学分有什么影响,以及为什么这个结果没有让我手忙脚乱。如果你也在申请有先修要…
用 AI 做事做久了,我发现最花时间的不是等它回答,而是每开一个新对话,都要重新讲一次同样的规矩:改文件前先备份、做完要自己验证、不要乱编数字、投资帐户只能看不能动。 Claude 有一个叫 Skills 的功能,可以把这些规矩写成一份说明书,相关的任务一出现它就会自己读。这篇记录我写了哪几套、每套解决什么问题,以及…
我现在是大学生,手上有五张信用卡。 这篇分两半:前半讲这五张卡各自负责什么、为什么要分这么多张;后半讲一件我觉得所有新生都应该先知道的事——信用卡最可怕的地方不是利息,是那两个月的时间差。
我 Year 1 修的 COMP1004,现在课号改成 DSAI1202,课名没变:Introduction to Artificial Intelligence and Data Analytics。如果你是搜课号找进来的,这两个代号指的是同一科。 期末的 Final Quiz 以选择题为主,可以带 cheat s…
一般博客的数据流是「后台写进数据库,前台从数据库读」。这个站没有数据库——文章就是 repo 里的 Markdown 档,后台是一个把文件 commit 回 GitHub 的客户端。 这个决定听起来像偷懒,但它把备份、版本控制、脱机编辑、回滚这几件事一次解决了: 就是完整的修改史, 就是回滚。代价是写入延迟从毫秒变…
SubLens 是我自己用的订阅追踪器,数据存在自己的 Google Sheet 上(这套把 Sheet 当后端的架构,我在另一篇写过怎么搭)。这个设计对我很好,对第一次点进来的人很糟:网页一开就跳出「请输入 API Token」,而他根本还不知道这东西能干嘛。 这篇记录怎么加一个 Demo 模式让陌生人先看到东西,…
我一直用一张 Google Sheet 记帐,痛点很单纯:输入麻烦、图表丑。我想要一个能一眼看懂趋势的界面,但完全不想为了一个自己用的小工具去养一台服务器——要付费、要更新、要监控,还要备份一份跟 Sheet 一模一样的数据。 于是后端就是那张 Sheet 本身。前端是一个纯静态网站丢在 GitHub Pages,中…
我在准备 2026/27 Semester 2 到瑞典 Linköping University 交换的时候,发现一件事:网上关于 PolyU 交换的中文数据,几乎都停在「我玩得很开心」那一层。真正会卡住你的东西——AR41a 怎么填、学分怎么对应、对方大学的先修要求会不会挡你——一个字都查不到。 这篇把出发前的流程…
网站搬迁或换编辑器之后,最麻烦的不是版面跑掉——那看得见。最麻烦的是短码被改坏:页面上什么都不显示,但你要一篇一篇打开才知道哪些坏了。 我写了一个插件处理这件事,源代码在 GitHub。这篇不是教学,是把几个当下做过取舍的决定写下来,包括一个我觉得很难自己想到、只能踩过才知道的 WordPress 行为。