Thoughts on Personal Time Tracking Solution

Time Tracking and Productivity

Image credit: https://wellcomecollection.org/works/nugmen9p

For a long time, I’ve been searching for an ideal solution for tracking my own time usage at work.

The idea of this practice, is to promote time awareness. Time is money, people say. That is true, but meanwhile, time is also life itself. Just like how budgeting is helpful for personal financial planning, understanding how time being used could be the very first step towards making better use of life.

How I spent time at work is the part I eagerly wanted to improve on. Not just because working hours is (one of?) the biggest chunk of waking hours. But also because working as an employer, in a sense, is trading labor,  experience, and knowledge for income, through time as a medium. Making efficient use of time, hence helps a worker in many different ways:

  • Increased productivity that translates into either less time for the same workload, or same time with more output
  • Avoid work spilled over into personal life, aka better Work-Life balance
  • Grow the value in a career which is also relevant to the productivity or competitive edge

How exactly does time tracking help to improve work productivity? In my personal experience, it helps to keep focusing on the task at hand. More importantly, the data collected during the time tracking practice helps to spot the distractions. Either work-related distractions, caused by meetings, discussions, sync ups, etc. or personal activity-related distractions, such as phone notifications, IM, etc. All of these leads to context switches and that hurts productivity badly.

By practicing daily time tracking at work, I can clearly tell whether it’s a good day or bad day in terms of making good use of my time doing what I planned for. If not, what is the bottleneck? That power of retrospection and being able to audit time usage not just helps to improve productivity in the sense of efficiency, but also allows me to plan my time well.

Time Tracking Solution

The “ideal” time tracking solution I’ve always had in my mind, is something similar to a chess clock. Pressing a button is all I need to do to start time tracking. Before moving on to the next activity, simply have to press the button again. Or stop the clock by pressing the button. At the same time, all the activities and time records should be logged automatically in the background.
 
I believe in order to benefit from time tracking, the effort required to manage the tracking (cost) should be as minimal as possible. That’s the only way to sustain in the long run, and possibly to grow as a habit. The engineering way of achieving it as a goal is to remove friction out of the flow, gradually and continuously.
 
My actual solution consists of several parts. It gradually grew into how it is and makes a lot of sense now when I look back and re-think about it.
 

Part A – Time Tracking Service – Toggl

After a few trials, I finally settled down with Toggl. It is a time tracking as a service platform, which comes with a web UI, desktop and mobile application, API interface, as well as rich 3rd party integrations. For somehow reason, I’m under the impression that the main customers of Toggl are contractors, professionals or whoever bill time by hours. Nevertheless, Toggl also serves my time tracking needs really well.
 
The UI is very intuitive to use. To log a time entry, simply need to click the start button. Details of the time entry, such as category, tag or description can always be added later. Previously logged time entry can be re-started with a click, which I found very handy to use for logging intermittent work of the same job.
 
The desktop version is equipped with an idle detection feature, which means if no input activity (keyboard typing, mouse moving, etc.) detected in the extended period while the clock is on, it will pop up a window asking how to deal with the time window. Choices include discarding the idled time period, keeping it as part of the on-going entry, or create a new time entry for that idle period. This is also very useful, as from time to time, work at hand might be interrupted, e.g. by an incoming conversation. There’s probably no time to log a time entry. In such a case, idle time detection can be used for backfill.
 
With data logged, Toggl also provides various visualization to read the data. Several key things I typically use with the graph are:
 
  • Ratio of meaningful time or signal-noise-ratio throughout the day (categories in a pie chart)
  • Daily or weekly trend of signal-noise-ratio  (weekly bar chart) 
  • Number of context switches for a given day (timeline, num of items)

Part B – Event trigger – iOS widget, and Flic smart button

Toggl solution by itself probably is good in many cases. However, the more I use it, the more I feel a button is really one step missing for a smoother experience. Since time tracking can happen anywhere, anytime. Not always I have my laptop lid open. A button really is here to save.

I end up using a Flic button and place it to the corner of my laptop front lid, where I can easily reach with one hand and press, regardless of laptop lid open or closed.

Flic is a smart button that has bluetooth connection either pair with a smartphone or Flic hub. Once pressed, the real action is up to you to choose from a rich ecosystem. In my case, I hooked it up with IFTTT and from there to Integromat (will talk about that later).

Believe it or not, having an easy-to-access physical button for time tracking, not just making the task much easier, but also gives you a lot of time-in-control confidence psychologically. (•̀ᴗ•́)و ̑̑

It’s worth to mention that, virtual buttons are also helpful on occasions. The virtual buttons I use are from the Integromat app and can be added as iOS widget. With widget, I’m only one swipe away from those virtual buttons even when the phone is locked. That is way much better than opening up an app. I mainly use the virtual buttons when the physical button not around or for the initial troubleshooting setup.

Part C – Workflow engine – Integromat

Integromat in my opinion, is where the magic happens. From there, I can design the whole workflow after button pressed.
 
Similar to IFTTT, it allows all kinds of Internet services to be added either as triggers or action targets. On top of that, filters, routers, API payload processing using functions, and orchestration logic can be easily added with a graphical scenario designer.
 
For instance, I use the following scenario to stop a time entry when Flic button long pressed. When that happens, Flic triggers a webhook through IFTTT. The webhook then fetches current time entry id from Toggl, and reaches out to Toggl again to stop the time entry using that id as input. There’s a lot of room for this designed flow to improve, but hopefully that demonstrates the potential of Integromat, powering customized workflow with automation. 
 
 
Well, that summarizes my time tracking solution. Enjoy the fun!

说说ErgoDox人体工学键盘

一周前键盘鸟枪换炮,升级成了分体式、可编程的人体工学键盘Ergodox EZ。这篇就来谈谈一周来的使用体会和心得。

键盘缘起

其实我一直不太理解机械键盘有什么好。这次升级,诉求主要还是来自人体工学的方面。总结起来一共两点:一是想要换一个分体式设计的键盘。这样双手和胳膊可以调整开幅,与肩同宽。工作起来姿势会自然和舒服很多。二是想要把控制键(Ctrl,Command之类)挪个位置,由拇指进行控制键的操作。因为标准键盘的控制键键位集中在了左下和右下方,快捷键按多了以后手腕会不舒服。

经过一番研究和筛选,把目标集中在了Kinesis Advantage2ErgoDox EZ这两个键盘选择上。价位上两者差不多。功能和设计上,看了一些评测:前者的弧度设计算是加分,而后者由于是左右手两块键盘,便携性胜出。再加上软硬件开源,有一定的可玩度。朋友也在两者之间推荐后者,于是就毫不犹豫的选了。由于Ergodox EZ购买时允许定制,在配置上选择了带LED背光的Glow版本,外加Kailh Copper键轴和与LED背光兼容的PBT键帽。

一周总结

购买之前看评测,普遍都说由于键位的大幅改变,会有一定的适应门槛,大约一周左右输入速度可以恢复换键盘之前的水平。这和我一周下来的实际使用结果很一致。一周的时间,不仅仅是键位的简单适应,同时也是键位布局和输入习惯相互磨合和调整的过程。准确的说,应该是一个迭代的流程。迭代的产物就是键盘布局和键盘固件版本的持续更新。

上面这个图来自ErgoDox EZ提供的图形化键位编辑工具,里面的键位布局是目前为止我的最新版本。从版本号可以看到,大大小小版本一路变过来,也算是迭代了很多轮。从第一天使用时n次固件版本刷新,到现在一两天一次的版本更新。键位布局和使用习惯上趋于稳定。

不得不说,ErgoDox的使用需要学习曲线和时间成本。但在这一周的使用过程中,也让我对这个熟悉得不能在熟悉的设备有了新的认识和体会。不过在说务虚的认识和体会之前,让我先来说说关于键位布局的一些想法。

键位布局

ErgoDox EZ的新键盘里刷的是官方的键位布局

看一下链接里的这个布局就不难体会陡峭的适应曲线。例如:Delete键从右手位换到了左手,虽然同为小指操作但在肌肉记忆上相去甚远;由于右手外侧键盘列数的减少,大量符号按键被安插到了不同的位置。比如,方向按键拆散为左右和上下,分列左右手。再比如=按键从右手最右方换到左手最左方。这两个例子里面默认的布局或许追求的是一种对称性,但它同时也打破了一种固有逻辑认知——方向按键不再是聚集在一个区域,加减号也不再彼此相邻。

不可避免的,用ErgoDox就要调整默认的官方键位布局。把键位布局尽可能改回传统键盘固然是一个思路,但同时又并不希望因此而失了人体工学布局的好处。正所谓不破不立,有时间折腾的话,趁此机会把QWERTY键盘布局改为DvorakColemak抑或也是个不错的选择?我的选择是折中的——既希望能用比较平滑的方式过渡到新键盘,也想要有足够的试错可能学习新布局。改变QWERTY不在当前的考虑之列,因为那意味着适应控制和符号按键布局调整之外,还要去额外适应基本字母按键的布局改变。

在我的具体的键位选择上,大致经过了这样的迭代循环:

  • 大致列了一下平时会用到的快捷键组合,然后在新键盘上体会按这些快捷键的手感,然后进行调整。这其中主要包括Linux命令行、MacOS、iTerm终端、Chrome浏览器、tmux和vim等

具体的调整原则有这么一些:

  • 在可能的情况下确保第一直觉,这算是一种使用习惯上的向后兼容
  • 对于那些不得不改变的键位:优先分配黄金键位给高频需求,同时也保证布局逻辑上的一致性。因为肌肉记忆固然重要,能借助一些原则推断出键位个人认为也是同样重要的
  • 借助ErgoDox允许定义多个Layer的特点,把回车、删除、方向键等大量使用且位置改变较大的键,临时性的在独立的Layer中映射回原有的位置。这样在前期的键盘适应阶段,应急情况可以通过切换Layer,较快找到关键按键。(例如下图中的橙色标注部分)

实际使用效果上,第三条的panic free zone只在第一天起到了一点帮助。因为可编程键盘的带来的便利性,绝不是传统方式上的人来适应键盘,而像一种双向的迭代和适应。直觉操作上觉得键应该在什么地方,就可以刷新固件把键放在那个地方。或者经常敲错的键,有可能反而揭示了这个键最应该摆放的位置。正因为可编程键盘这样的特性,操作习惯上很快就迁移过来。那些为了应急而备下的键几乎都没有用上。

在我常用的快捷键中,共性的需求是各种浏览和切换。比如iTerm终端tab的切换,一个终端窗口内tmux window、session、pane的切换,Vim Windowd切换,Chrome窗口和tab的切换,浏览器页面或者编辑器内的浏览等等。这些操作都离不开方向键。而借助ErgoDox,意外的实现了全局的Vim方向键。只需要把方向键映射到Vim HJKL的位置,而再也不用逐个应用程序的去解决Vim方向键的映射。过去使用的tmux key binding,Chrome的vim插件,似乎都可以被淘汰了。

上面是我今天(工作日)全天的键盘热图(Heatmap),可以看到VIM方向键JK占据了绝对的高频位置。其实,由于生成Heatmap的软件并不识别ErgoDox键盘布局,要是能把VIM方向键映射产生的上下左右键计算进来,HJKL键位显示的频度会更高。这个截图也算是从一个侧面说明了可编程键盘对于核心工作流的贡献。

一些想法

最后再来说说这个键盘一周使用过程中,陆陆续续产生的一些认识和想法。

标准键盘布局的改变,无论是对于前期的键盘选购还是使用中的适应,都可以说是或多或少的阻碍因素。但实际上即便在PC和Mac之间切换时,外设键盘和笔记本自带键盘之间切换时,布局也是有所改变的。在笔记本代际更迭时,厂商也有可能作出布局的调整。例如苹果2016年发布的Macbook Pro就取消了Esc按键,并将其虚拟化为TouchBar的一部分。完全不变的键盘布局或许是种幻觉。对于长尾用户而言,出于人体工学、工作流效率提升等考量,自己掌握键盘布局或许是更好的选择。

对于普通键盘,通过操作系统或者Karabiner这样的第三方软件可以调整键位布局。但因为物理键位空间已经排满,没有冗余位置。也不像ErgoDox这样允许逻辑层面切换Layer来改变按键。总体来说自己调整键位的自由度有限。而我在调整选定ErgoDox EZ键盘键位布局过程中发现:为了有效、合理地确定键位的方式,需要一定的预先设计和思考,另一方面也需要提供一定的冗余。也就是将同一个键映射在多个位置,或者在多个Layer中。推迟键位的选择,在实际的操作中来演化出最佳的位置。这么做一开始的时候,敲击按键会有些许停顿。因为有了多个选择,自然就会去想是应该这样输入还是那样输入。可最后因为各种原因,或许是因为些许的顺手,或许是因为前后操作连贯起来手指懒得挪动位置等等,一种选择就会胜出成为最佳的键位。这个时候不妨保留替代选择,直到下一次布局更新淘汰删除。相对于传统的手指适应键盘,我更愿意称其为键盘适应手指的有机过程。一轮的键盘布局迭代调整,实际是一轮键盘固件、手指肌肉记忆,乃至输入习惯的三者有机融合。

如果有时间,也许我应该试着在ErgoDox Firmware层面生成键盘的heatmap。因为上面的截图由WhatPulse软件生成,在操作系统层面能看到的键码经过了ErgoDox固件映射,已经不能准确反映实际的物理键位。有了更真实准确的数据,或许能将ErgoDox的使用提升到新的层次也说不准呢?

TED演讲推荐 (02):Aaron Koblin: Artfully visualizing our humanity

我始终愿意相信,在虚拟与现实之间隐含着复杂深刻的思辨联系。而人性——是这一深刻故事永恒不变的精彩主题。

(原站链接:Link

TED演讲推荐 (01):Louie Schwartzberg: The hidden beauty of pollination

TED一直是我非常喜爱的内容源之一。因为它短小精悍,每个演讲平均15分钟。信息的获取效率远高于书籍、Web等阅读方式,同时内容又相对完整,完全没有微博、SNS等的快餐化弊端。在TED,可以看到的是来自各领域——尽管名称是Technology,Entertainment,Design——相对较新的观念和思想。更重要的是,这些演讲全部都是当事人第一手的体验和分享,而好的呈现形式本身甚至和内容一样重要。

这就是TED了,有什么理由错过它呢?

“Always take time to smell the flowers, and let it fill you with beauty, and rediscover that sense of wonder.” ——Louis Schwartzberg

(原站链接:Link

注1:这个系列的帖子用于记录那些我看过的touching,moving或是“刷新认识”的TED演讲。推荐~

注2:由于TED网站内嵌视频分辨率较低,建议下载观看(原始链接有Download按钮并可以选择分辨率和字幕;iPad上推荐一个韩国人写的TEDiSUB应用,支持字幕及离线,很好用。

佛教相关概念中英对照

根据傅伟勋《死亡的尊严与生命的尊严》——“世界宗教与死亡超克”中佛教一节,及维基页面整理的佛教相关概念与中英文对照。

 

四圣谛 – The Four Noble Truths

  1. 苦,”The noble truth that is suffering”
  2. 集,”The noble truth that is the arising of suffering”
  3. 灭,”The noble truth that is the end of suffering”
  4. 道,”The noble truth that is the way leading to the end of suffering”

八正道 – Noble Eightfold Path

  • 慧, Prajñā is the wisdom that purifies the mind, allowing it to attain spiritual insight into the true nature of all things. It includes:
  1. 正见, dṛṣṭi (ditthi): viewing reality as it is, not just as it appears to be.
  2. 正思维, saṃkalpa (sankappa): intention of renunciation, freedom and harmlessness.
  • Śīla is the ethics or morality, or abstention from unwholesome deeds. It includes:
  1. 正语, vāc (vāca): speaking in a truthful and non-hurtful way
  2. 正业, karman (kammanta): acting in a non-harmful way
  3. 正命, ājīvana (ājīva): a non-harmful livelihood
  • Samādhi is the mental discipline required to develop mastery over one’s own mind. This is done through the practice of various contemplative and meditative practices, and includes:
  1. 正精进, vyāyāma (vāyāma): making an effort to improve
  2. 正念, smṛti (sati): awareness to see things for what they are with clear consciousness, being aware of the present reality within oneself, without any craving or aversion
  3. 正定, samādhi (samādhi): correct meditation or concentration, explained as the first four jhānas
十二因缘 – Twelve Nidānas
  1. 无明, Avidyā: ignorance, specifically spiritual ignorance of the nature of reality[47]
  2. 行, Saṃskāras: literally formations, explained as referring to karma
  3. 识, Vijñāna: consciousness, specifically discriminative[48]
  4. 名色, Nāmarūpa: literally name and form, referring to mind and body[49]
  5. 六入, Ṣaḍāyatana: the six sense bases: eye, ear, nose, tongue, body and mind-organ
  6. 触, Sparśa: variously translated contact, impression, stimulation (by a sense object)
  7. 受, Vedanā: usually translated feeling: this is the “hedonic tone”, i.e. whether something is pleasant, unpleasant or neutral
  8. 爱, Tṛṣṇā: literally thirst, but in Buddhism nearly always used to mean craving
  9. 取, Upādāna: clinging or grasping; the word also means fuel, which feeds the continuing cycle of rebirth
  10. 有, Bhava: literally being (existence) or becoming. (The Theravada explains this as having two meanings: karma, which produces a new existence, and the existence itself.)[50]
  11. 生, Jāti: literally birth, but life is understood as starting at conception[51]
  12. 老死, Jarāmaraṇa: (old age and death) and also śokaparidevaduḥkhadaurmanasyopāyāsa (sorrow, lamentation, pain, sadness, and misery)

chromoscope

浩瀚的星空?无边的黑暗?关于宇宙,什么才是你心目中最狂野的想象?

可在光谱里,人眼所能见到的光波是如此狭窄的一段,以致于宇宙的面貌远超出了我们直观的视觉想象。例如,木星发出的能量比从太阳吸收的几乎要多两倍。假如我们从红外光谱看,它完全可以看作是一颗恒星(卡尔·萨根《宇宙》)。

这个名叫Chromoscope的项目把数个不同来源的星空数据集成在了一起,让你可以看到不同波段下的星空会是什么模样。来感受一下吧~ (截的图三张图依次是可见光、Hα,和远红外波段)

chromoscope

chromoscope

chromoscope

写给unicell-group邮件列表里朋友们的一封信

邮件列表里的朋友们,大家好

写这封信是想告诉大家,这个邮件列表即将解散了。原来列表里的文章群发,将通过Google Reader中的分享与订阅方式继续(详见本邮件末尾部分)。

05年的时候,我在Google Group上建立了这个邮件列表,并通过它给群里的成员发送一些我认为值得一读的网页、文章或是摘抄。虽然在把每一个人加入列表前都征得了同意,也在每封邮件的最后留下了退订的方式,但心里总还是隐隐有些不安。因为担心这个纯粹出于我个人标准选出的文章,会在其他人那里成为一种无用的信息和骚扰的形式。那样的话,实在是和我的初衷背道而驰。

也正是出于这种不安,我渐渐减少了通过邮件列表里发送的频率。从05年到现在的4年时间里,共有80封邮件。然而按照今天的眼光来看,其中的大部分都不能符合群发或是分享的标准。这也正是我打算终止这个邮件列表的原因之一。

另一个重要的原因是我对于Google Reader的大量使用。Google Reader是一个强大而且好用的RSS阅读器,可以自动生成一份我在其中推荐和分享的阅读列表,甚至可以加上评语和讨论。所以我想,它已经可以完全取代Google Group和朋友或是感兴趣的陌生人分享信息了。

如果你还对我阅读并分享的内容留有兴趣。可以通过以下网址浏览或是订阅。当然,如果你已经在使用Google Reader的话,可以直接点左上方的Follow按钮(需要整个页面加载完才会出现)。

出于一致性的考虑,也为了便于自己在Google Reader中查找,我会把少部分仍然值得保留的文章迁移到Google Reader上。如果还有任何关于邮件列表和Google Reader的问题,来问我就好了。:)

祝,

上网愉快!


unicell
2009-09-28

关于人脑的相关资源

最后更新:2009-07-29

相关词汇

相关链接

清醒梦(Lucid Dream)

什么是清醒梦?

清醒梦(Lucid Dream),又称清明梦,就是意识到自己在做梦的一种梦。经过训练,人们可以在做梦的时候保持清醒的意识,甚至控制梦的内容。

清醒梦可以用做什么?

  • 奇妙的幻想和探险:例如在梦里飞行
  • 克服噩梦带来的恐惧
  • 为真实生活彩排:例如公众演讲,演出,竞技活动等
  • 治愈效果:例如减轻悲痛的情绪,克服心理障碍等
  • 超越性体验:例如助于离体体验(OBE,Out-of-Body Experience)等

做清醒梦的技巧(更多细节参加“相关链接”)

  • 尽可能地回忆并记录梦的细节。维护一本自己做梦的日志,并注意识别其中的特征与模式;
  • 真实性检验。在真实生活中培养一种检验真实性的技巧,并养成习惯。
  • 早睡早起,睡前保持较好的身体状态(避免饮酒、睡前吃太多等影响头脑清醒的因素)
  • 清醒梦推导法(MILD,Mnemonic induction of lucid dreams operation),在入睡时有意识地寻找如梦的特征;
  • 清醒再入睡(WBTB,Wake-back-to-bed)
  • 周期调教(CAT,Cycle adjustment technique)
  • 引导仪器法
  • 。。。

相关链接

http://en.wikipedia.org/wiki/Lucid_dream
http://zh.wikipedia.org/wiki/清醒夢
http://www.lucidity.com/LucidDreamingFAQ2.html
http://www.wikihow.com/Lucid-Dream

突然消失者的来信

“亲爱的,当你读到这封来信的时候,我已经死了。请不要感到意外,世上的一切都太匆匆,死亡当然也不例外。一颗树木枯萎了,它在地下的根系自然也就不再属于这树,而成为大地的一部分。而当我从这个世界消失的那一刻,那些曾属于我的身份、财产和记忆恐怕也就当从此停止生长,消失,褪色直至湮没罢。我想,这应当是用不了多久的事情。然而,若在此期间下面这些信息对你有用,不妨暂记之。Gmail密码:XXX;网银密码:XXX;博客密码:XXX。。。就此别过~”

如果有一天,你收到这样一封信,千万别惊讶。今天城市里的死亡也一样无时无刻不在,然而我们却少有直面死亡的机会和经历。亲人的死亡大多在医院里,朋友的死亡更多地表现为消失。陌生人的死亡则完全不为人知。前不久听梁文道在开卷八分钟里介绍了德国社会学大师Elias的著作《临终者的孤寂》)。Elias认为,这一现象是因为文明化进程之后,现代社会不重视死亡,甚至刻意压抑、隐匿的结果。这不禁让我联想起自己曾在blog里贴过的这篇失落的面孔,里面是两个专登寻人启事的网站。看着这些网站上并排列着的一张张活生生的面孔,似乎总有点直指人心的震撼的效果。我相信其中的一些人不仅是消失了,而且是永远地消失了。其实对于那些有准备,而又不甘于就这么突然消失的人来说,完全可以预先写好本文开头的一封信。下面就来介绍一下方法。

Death Switch是一个能够在用户意外死亡/消失情况下,自动发出其预先写好信件内容到指定的Email地址。其免费帐户可以创建一封邮件,包含最多三个附件。内容创建后,Death Switch可以按照你选定的周期,例如60天,120天等等,发送Email检查用户的状态。如果邮件发出后,在指定的响应时间内用户没有回复,Death Switch会进入“担心模式”(Worry Mode)。担心模式下,网站会以较高频率(可设置,如每天一封)发送一定数量的邮件以询问确认。担心模式下,用户也可以选择让网站试图与其他邮件地址或自己的亲友联系。一旦最终确认用户死亡/消失,Death Switch就会发送出用户预先存放的内容。

虽然不知道Death Switch的信能否作为有法律效力的遗嘱,但至少能在某种程度上起到遗嘱的功能和效用。而对于那些掌握了太多秘密的人来说,比如我,从此就再也不用担心秘密会被带进坟墓了。

而这个网站的用法还远不止这些,有心人不妨继续探索。下面是我想到的一个使用场景:存下你所掌握的黑幕材料,把收件人设为自己Blog的电子邮件发布地址,或是第三方爆料站点。把探测周期设为每天一次。只要自己有一天遭遇黑手没能上线回复,就在第二天向全世界公布材料。怎么样?是不是和电影里的一样?