惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
H
Help Net Security
N
Netflix TechBlog - Medium
Apple Machine Learning Research
Apple Machine Learning Research
P
Proofpoint News Feed
A
About on SuperTechFans
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
宝玉的分享
宝玉的分享
aimingoo的专栏
aimingoo的专栏
F
Fortinet All Blogs
博客园 - 【当耐特】
Microsoft Security Blog
Microsoft Security Blog
Martin Fowler
Martin Fowler
I
InfoQ
Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
Engineering at Meta
Engineering at Meta
腾讯CDC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog RSS Feed
U
Unit 42
The Cloudflare Blog
Y
Y Combinator Blog

HANG ♥ WRITING

ChatGPT 问世两年,我在 AI 的辅助下成为了一名 iOS 业余开发者 如何使用 Netcat 构建简单的安全聊天系统 QuakeSense 震感,一款简洁原生的 iOS 地震通知 App App Store 中国大陆 ICP 备案最佳实践 几款有意思的 Google Chrome 侧边栏扩展应用 GetVM 让编程学习更快一步 WildCard (野卡) - 国内用户零门槛订阅 ChatGPT、Claude、App Store 万里汇开发者收款使用全指南 | 注册、开户与账户绑定教程 中国大陆居民开通华侨银行(OCBC)海外账户完全指南 实用的 macOS 内置命令,省下买第三方应用的钱 《认知觉醒》之触动学习法 不是程序员也可以搞开发,一小时入门 Retool 低代码 疫情来袭,手把手教你在家制作美味炒鸡 企业微信机器人 Webhook 推送语雀更新消息 基于 Cloudflare Workers 部署的 JSON Database 数据库 印象时间:印象笔记出品的时间管理应用 Pixelmator Photo 2.0: 桌面级功能并适配 iPhone Shortery:Mac 快捷指令自动化 Pixelmator Pro 2.3:AI 背景去除 Quit All:一键退出应用程序 Raycast:推出官方扩展商店和开发者平台 简悦 API 2.0:收藏助手和快照功能 HomePod mini 使用体验 Prizmo 5.5:扫描效果增强并新增批注功能 Notion:近期值得关注的新特性 Google Analytics 替代品,零成本和零门槛搭建 umami.is Infuse 7:一款近乎完美的视频播放器 Gyroscope 4.14:新的产品名称和多项改进 V day:在手机上创作短视频 Things 3.14:备注支持 Markdown,同步速度加快
你的时间都去哪了?我做了这个 Workflow 来记录上下班所需时间
huhuhang · 2018-03-20 · via HANG ♥ WRITING

如果你和我一样,每天的上下班通勤时间较长且存在变数,那么是否会有记录下这段时间的想法?

之前,我一直使用 Moves 追踪自己的地理位置信息,这样也能较为粗略地记录下通勤时间。但可惜的是,自 iOS 11 发布之后 Moves 就不再更新,目前已经无法正常使用。

提醒:Facebook 已于 2018 年 6 月 31 日正式关闭了 Moves 服务,推荐使用 Gyroscope 替代。

后来,我尝试寻找能满足通勤时间记录的应用,不过大多都是以定时器的形式存在。如果使用定时器记时,每次都需要执行较为复杂的步骤:打开定时器应用 → 开始计时 → 结束及时 → 关闭定时器应用。更关键的是,当你想保存下每次持续的时间时,你还需要另想办法。

最后,我将目光放在了 Workflow 上,并通过与 Airtable 配合实现了记录上下班通勤时间的想法。

实现思路

首先,Workflow 中是没有与记录时间相关的 Action,只有能获取到当前时间的 Date 动作。

所以,本文的思路是通过 Workflow 获取到每一次开始和结束计时的时间戳,再将其更新到 Airtable 中,并使用 Airtable 中提供的 Formula 公式计算时间差。该时间间隔即为上下班通勤时间,同时将时间保存在 Airtable 中并返回到手机上。整个过程如下图所示。

如上图所示,每次运行该 Workflow 时:

  1. 先选择上班、下班状态;
  2. 点击开始计时,Workflow 会将当前时间戳上传到 Airtable 中;
  3. 到达目的地后,点击结束计时,Workflow 会将当前时间戳上传到 Airtable 中;
  4. Airtable 会计算时间差,并返回如上方右图所示的通勤时间结果。

配置和安装

该方案对应的 Workflow 制作非常简单,但需要你对使用 HTTP 请求方法比较熟悉,也就是 Workflow 中 Get Contents of URL 动作。而这里面临的主要困难是如何在 Airtable 设置正确的数据表结构。

回顾上一小节提到的实现逻辑,你可能觉得只需要新建一张表格存储 Workflow 上传的数据即可,其实不然。这里无法利用单张数据表实现的原因在于,当上传数据到 Airtable 中时,每一条数据记录都会新建一行,于是就会出现数据交错的情况,也就无法计算时间差。

于是,这里选择新建两个表,分别是 Update 数据表和 Time 数据表。其中,Update 表用于处理 Workflow 上传的时间及计算时间间隔,Time 表则用于记录每次通勤的时间。其中,Update 表如下图所示:

当 Workflow 上传时间戳时,选择使用 Airtable 更新数据记录的 XPATH 请求方法,而不是新建数据记录的 POST 请求方法。于是,这里的 Update 表格中始终只有一行记录。

另一张 Time 表如下所示:

其中:

  • Num:Airtable 中的 Auto number 属性,也就是自动计数器。
  • Created:Airtable 中的 Created time 属性,当某一条数据记录产生时,该属性列会自动记录当前时间。该时间也就是上班或下班到达目的地时间。
  • Action:通过 Workflow 上传,记录运行 Workflow 时选择的上/下班状态。
  • Time:通过 Workflow 上传,记录 Workflow 前一步从 Update 表中获取到的时间间隔。

完成以上的步骤,一切就大功告成了。如果你想直接使用我制作的 Workflow 和 Airtable Base,需要按下面的顺序配置:

  1. 通过 此链接 访问与文中结构一致的 Airtable Base,并点击右上角的 Copy base 复制到自己的 Airtable 中。
  2. 通过 此链接 安装对应的 Workflow,安装时根据提示问题修改自己的 Airtable API 信息和对应的请求 URL

如果你对 Airtable API 不太熟悉,可以通过界面右上角的 HELP 选项查看官方给出的示例用法。

最后,我不愿意夸大记录通勤时间的意义,因为每个人的想法和需求是不一样的。不过,就我个人而言,探索「充分利用工具」的过程十分有趣。