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的使用提升到新的层次也说不准呢?

个人数据管理方案 – 同步、备份与管理

最近抽时间重新整理了一下自己硬盘上的各种文件、存档和备份。也趁此机会重新梳理了一下自己对个人数据管理的一些想法和实践。在这儿简单记录一下。

需求描述:个人长期积累的一些文档、照片、媒体等文件的管理(这篇blog主要讨论二进制文件的管理。类似笔记等个人文本数据不在讨论范围)。希望对这些二进制文件的管理能平衡和兼顾以下的各个因素:

  • 价格:希望能最大程度利用现有的笔记本、台式机以及分散的硬盘。如无必要,不希望购买新的硬件或云服务增加成本;
  • 隐私:有限度地信任网络(云)存储方案,保护个人隐私;
  • 数据安全:重要文档有至少一个备份,且备份的增删查改便于调整和管理;
  • 数据可用性:灵活利用现有的数据同步、移动硬盘离线存储、Samba、Cloud等机制,便于Windows/MacOS/Linux/iOS/Android等操作系统对数据的访问;
  • 便利性与时间、学习成本:乐于付出学习成本,但希望尽可能照顾日常使用的便利性;

在说日常使用中的具体问题前,再简单描述下使用环境和背景:

  1. 出于对国内网盘产品的天生不信任,不打算把任何个人数据通过国内的网盘进行存储和管理;国外的网盘产品有限度地信任;
  2. 没有NAS设备,各机器也都没做RAID。前者是出于价格考量(见上)。而后者更多的是因为遗留环境所致——硬盘购买时间不一,容量不一,新购硬盘时旧硬盘已塞满数据等。另外也包含其他一些考虑,如软RAID人为地增加了管理成本等;
  3. 现有的备份基本是通过手工的复制、粘贴,以及定期的跨盘同步(rsync)与克隆(外置USB硬盘Dock自带功能)来完成;

正是因为这样的使用方式,在解决了一部分问题的同时,也存在一些问题没有解决:

  • 备份不及时(无自动化):例如相片从相机导入电脑时,不会自动进行备份。即便刻意地通过一些方式进行缓解,将相机SD卡中的文件作为备份保留一段时间,仍然存在窗口期有丢失数据的风险。在此期间也存在跨设备的文件访问问题;
  • 乏力的存档双向同步:这个大约是最头疼的问题了。因为数据的跨设备存储(移动硬盘/Samba/本地硬盘)和跨平台访问,需要保持同步的一致性。rsync的双向同步没有去尝试,另外Windows平台也不容易支持rsync;
  • 缺少数据的集中视图:由于数据散落在各硬盘,缺少集中的逻辑视图和目录式管理,所以多块硬盘都有文档、照片或电影文件夹。导致:1、只能靠记忆或搜索的方式查找存档文件;2、或是手工定期不定期地进行转移和合并,而在此中途又可能会有数据的同步确认,白白地增加了时间成本;
  • 冗余的数据(次要问题):一个相对的次要的问题。主要发生在给别人的照片分享,或是因为照片处理等场景下,手工复制了部分照片的子集用于好友分享或后续处理。而这些重复数据在已有跨设备文件备份的前提下,白白占用了磁盘空间;

解决现有问题的一些想法和原则:

  • 不是所有数据都是平等的:包括访问的频度、是否需要跨平台访问、是否愿意牺牲一定的隐私性换取便利性等等。所以值得区分不同数据选择相对应的解决方案;
  • 数据管理天然的异构特性:作为长期的个人数据管理,无论是数据来源,还是管理和使用方式都在不断地变化。所以更重要的是建立一种机制,能够包容后续对数据的不断调整,甚至管理方式的调整,而不是一次性试图解决所有问题;
  • 关于工具箱:通过工具箱的组合来解决问题,重要部分在于了解工具本身的优缺点,以及工具与问题的适配程度。同时需要兼顾诸如:公有服务和私有方案,收益和付出成本等方面的平衡;

解决问题的工具箱组合:

Dropbox对我而言仍然足够好用。由于存在云端存储且有丰富的跨平台客户端,所以用于存放有较强同步需求或跨平台需求的个人数据。符合这一定义的文档数量并不多,Dropbox提供的免费容量已经完全够用。必要时可将数据向下一级存档方式进行转移。另外,Dropbox存放的数据不涉及个人隐私,如有个别需要可加密后再通过Dropbox同步;

作为Dropbox的替代同步方案,它的优点主要包括:无容量限制,家庭局域网中同步速度快,文件分享便捷,同步源数量不受限制可跨机器同步多个内容仓库;不足主要在于缺少云端存储部分,当然这一部分如有需要可购买第三方付费服务或者自行搭建。

此外,尽管存在私钥的加密,但secret SHA值、数据传输量、IP地址等数据仍然会被收集。对于个人隐私数据的局域网同步,需要禁用relay server、tracker server与DHT。这么做的代价是损失了通过Internet同步的能力,但对于局域网同步的需求足矣。此外,可根据数据隐私与重要性的不同在多个同步源中分别独立设置是否允许通过Internet同步。另:Bittorrent Sync暂不支持自己架设tracker server与relay server;

Git Annex本身,这里就不详细介绍了。官网有详细的说明。它的本质,是通过git的方式管理大文件的元数据(SHA256与符号链接),而文件内容本身并不真正存入仓库。

所以Git Annex不是一个备份或同步工具,我更愿意理解它为数据元数据的管理工具。由于和git命令可以完全操作git annex仓库,可以分方便的在多个硬盘间建立统一的文件视图。如photo文件夹下有2013和2014两个子文件夹,在两块硬盘上都可以看到这两个子文件夹,以及文件夹下的全部文件名信息。但2013子文件夹下的全部照片实际存在于硬盘1,而2014子文件夹下的全部照片实际存在于硬盘2。

数据的实际位置是可查询可管理的。例如”git annex move 2013/ –to disk2″命令,可将2013/全部转移至硬盘2并释放硬盘1的存储空间;或”git annex whereis 2013/”查询文件的实际位置;数据拷贝的数量也是可管理的,例如”git annex get –auto –numcopies=2″自动下载备份维持两拷贝。

Git Annex的不足可能在于一定的学习成本和Linux/Git知识。虽然有图形化工具可用,但由于概念本身就比同步方案复杂,仍然存在一定的使用门槛。

另外的问题和不足之处在于:Windows下Git Annex仅支持Direct mode,丧失了绝大部分git命令操作的能力;另外,实际使用中发现Linux挂载NTFS分区创建的符号链接为Interix格式,在Windows下重新挂载时无法识别。Win 7下尝试开启SUA(Subsystem for UNIX-based Applications)仍然不起作用,暂时没研究出来。Mac + NTFS的组合可通过加载ntfs-3g fuse driver的方式进行解决。最好用的组合,个人觉得还是Linux下进行Git Annex管理,数据通过samba访问。

总结:

综上,Dropbox/Bittorrent Sync/Git Annex,分三级解决了我的个人数据管理问题。

其中,Dropbox最简单,用于管理最少和相对最常用的数据量;Bittorrent Sync用于解决剩余的“同步”类型的需求,它够快且容量不受限制。通过BTSync,解决了“现有问题”中的备份不及时以及双向同步的问题。所有被管理的个人数据在局域网都是双向同步且有备份的。而Git Annex解决了剩余的“统一文件视图”与“消除冗余数据”的问题。它灵活但相对复杂,用于管理最不经常访问的存档数据。当然,这也是数据量最大的一部分个人数据。

实际使用中,个人数据可在三种类型的管理方式之间迁移,以满足个人数据管理在备份、存档、传输、共享等不同方面的需求。

关于个人数据管理的一些想法

数字时代,个人数据不仅作为工作上的产出,更成为一种生活的记录。随着数据量的增加,怎样进行有效的管理其实真的是一个值得讨论一番的问题。以下是我的一些想法:

方法论

  • 区分个人生成数据和个人收集数据

前者主要是指自己编写的文档、记录的笔记、各种个人创作的文件等。这类个人生成数据的特点是较为珍贵,一旦丢失很难找回;而另一类个人收集数据,主要是指经过个人分类、整理、阅读的文档和数据。这类数据的特点是经过二次处理。原始数据往往能在最初的位置或互联网上获得。附加值在于经过个人阅读、整理所做的分类和标记等。

区分个人生成数据和个人收集数据的主要目的在于两者的重要性不同,需要区别对待。此外,除去两者共同的备份需求之外,前者更加侧重于数据的可管理性、可维护性,而后者往往侧重于分类和检索的便利。由于这个区别,个人生成数据应尽量从个人收集数据中剥离开,单独管理。例如:所做笔记和收集的资料相互分开,采用引用、链接等形式剥离出笔记、评论而避免在原始资料中嵌入个人笔记等等。

  • 成本收益取舍

无论如何,对自己的数据做管理总会需要额外的时间和精力。除去实际管理和维护的时间成本,了解并选用适合的工具,探寻新的数据管理形式,全都需要额外时间和精力的投入。这里就涉及到成本收益的比较问题。假如为了追求细致的分类,便捷的控制而销毁了过多的时间和精力,也就本末倒置了。从这一角度想,秘书的存在其实也是个人数据管理的手段之一。

  • 迭代式的数据管理

管理个人数据需要考虑成本和收益,自然也就引出了迭代式管理的想法。先用现有、可行的手段维护好自己的数据,在这个过程中逐渐地细化分类、重新组织、优化内容等。当一种新的工具和管理方法出现,采用后如果在现有数据规模的基础上,可以获取大于成本的收益时,则考虑升级开始下一轮的迭代。

经验记录

  • 文档和笔记

利用svn(subversion)做版本控制。这样做的好处在于:不限制文件类型(文本文件、office文档或各种数据文件都可以管理),服务器的数据备份,多台电脑(如公司和家)之间的数据同步。相对于流行的git、hg等分布式管理工具,个人觉得svn更适于管理个人文档和数据。主要是因为svn完全按照文件夹方式操作,这样在一个新的工作环境中使用时,可以根据需要只同步全部个人数据中一个子分类,而非全部。

  • 书签

使用Chrome浏览器的书签同步功能。最早的时候,我也是一直用svn来管理全部书签的。那个时候MyIE(后来的Maxthon)还没有出来,用的是一个iWander的多窗口浏览器。svn管理书签不仅可以同步URL信息,还记录了访问次数,最爱书签之类的信息。之后,导出了一部分书签存放在del.icio.us。这两种方法在使用Chrome的Bookmark Sync后完全弃用。

  • 简单笔记(随手记录)

采用Evernote进行管理。 Evernote是基于云存储的笔记工具,提供了跨平台的客户端(Chrome插件,Windows客户端,iOS客户端,Android客户端等)。免费账户提供每月60MB的上传量。非常便于随时随地做些记录。但由于这类工具的导出格式往往很难再次利用,所以只在Evernote上存放相对次要的内容。

  • 个人收集类数据

这类数据往往量大,但时效性有限 ,经过一段时间后就很少访问。一种方法是在个人的服务器上统一存档,定期备份;对特定文档,也可以考虑采用云存储工具进行备份。目前Box.net免费提供50GB容量,但缺点是不提供同步工具。因其定位于企业市场,且更侧重基于数据的分享和协作,而非同步;Dropbox非常便于各种设备间的数据同步,通过邀请最高可达18GB容量,但国内访问受限;Windows Live Mesh有5GB的免费容量,但不支持iOS和Android客户端,且Windows系统要求为Win7。用Amazon的S3做数据备份,比较适合一经上传访问较少的场合。数据安全可靠,但价格仍然偏高。

  • 阅读的文章

以前采用Google Reader(见关于GReader中Feed管理的介绍)进行阅读文章的标记和管理。这部分管理在Google Reader最近改版砍掉全部原有share机制后,暂未找到替代方案。

  • 个人数字资产

采用类似Death Switch介绍)的服务进行管理。 主要是考虑发生意外情况下,各类帐号、密码等数字资产的继承和转移。

  • 博客

相对于以上各种被动式手段来说,博客是一种主动式内容管理工具。它的数据管理出发点不是“保存”,而是“发布”和“传播”。当然,博客本身就是一个很好的内容管理工具,但适用的内容需要相对完整和成型。

Google Reader获取Feed全文输出的Chrome插件

最后更新:2010-01-12

自从Chrome 4.0 Dev版本支持插件机制后,终于找到了这个Read More! for Google Reader插件,实现GReader下的Feed全文抓取功能。Firefox下早就可以通过Greasemonkey + google reader full feed changer脚本实现这个功能,而Chrome下这个Read More!似乎就是唯一的选择了。

配置很简单,URL Pattern用来匹配站点地址,Content XPath/CSS Selector用来匹配全文内容所在的div标记。Read More!插件的介绍页面相当简单,也没有实际的使用说明。不过基本上可以参照插件内建的cnbeta配置改写。

以下是我用到的几个:

说明 URL Pattern Content XPath/CSS Selector
CB IT新闻 http://www\.cnbeta\.com
//*[@id=’news_content’]/div[@class=’digbox’]
/preceding-sibling::node()
国家地理每日一图中文 http://my\.dongua\.com\/ngpod //div[@class=”cont cs-output”]
Universe Today http://www\.universetoday\.com //div[@class=”post”]
财经网每日要闻 http://www\.caijing\.com\.cn //div[@class=”artical”]
经济观察 – 观察家 http://www\.eeo\.com\.cn //div[@id=’text_content’]
中金在线财经频道 http://news\.cnfol\.com //div[@class=’content’]
     

关于Google Reader中Feed管理的一些想法

最后更新:2009-09-21

自从把RSS阅读器从Bloglines换成Google Reader以后,真的是越用越顺手,越用越喜欢。也不止一次在不同场合向别人推荐过。这个帖子主要说一说我在Google Reader中关于Feed管理的一些体会和想法。

Google Reader的好处

GR的好处其实不需要多说。我理解它首先是一个RSS阅读器;其次它是一个RSS内容管理、内容发现的工具。内容管理包括怎样有效地发现有价值的内容,避免信息过载,标记和搜索已阅的内容等等。而内容发现则包括怎样在自己订阅的内容之外发现有价值的Feed,好友的分享源等等。Google Reader本身只是个工具,关键是怎样用好它。最后,在今年GR升级以后,开始具备了社交化网络(SNS)的功能。与开心001,豆瓣这些网站的SNS功能不同,Google Reader是基于阅读的SNS,是很适合有阅读习惯的人群的。

关于Feed管理

也许有不少人和我一样,订阅的Feed太多,以至于根本读不过来,很多分类下的未读条目动不动就1000+,典型的信息过载 。这个时候请一定记住:DON’T PANIC! 下面就是我的方法。

  • 同时采用按类别与按阅读频率对Feed进行分组

按类别是最常用的,相信每个人都有各自习惯的分类法。例如经济类、政治类、文化类、科技类等等,又或者名人blog,好友blog,官网blog等等。而GR中的分类(我用的英文版里叫Folder)其实是tag,也就是说同一个Feed可以同时标记为两个或更多的分类。

我的方法就是在传统的分类之外,加上一个阅读频率的分组,例如freq_0,这个分组表示自己最常看的一类Feed。另外再建一个freq_1分组,表示相对freq_0阅读频率要低一些的Feed。而保持有效阅读,避免信息过载的关键就在于:根据阅读频率迭代性地调整Feed的频率分类。

举个例子:假如freq_0分类下的Feed我每天都会看,而freq_1分类下的Feed每周才去看一次。这样当新订阅一个自己感兴趣的Blog时,除了设置传统的分类,我还会根据其内容的价值设置到对应的阅读频率分组。如果一段时间以后,自己的兴趣转移,或者这个Blog本身内容有所下降时,就降低它的阅读频率分类,从freq_0到freq_1。与此同时定期对阅读频率最低的Feed清理、退订。另外,可以根据自己的需要设置更多的频率等级,如freq_0到freq_3。但对我来说,两级已是完全够用。

  • 保持一定的Feed淘汰率

只订阅,不退订是信息过载的主要原因。事实上,GR只是个阅读工具,真正的重点永远在于阅读本身。过多的Feed不仅看不过来,也容易造成阅读时走马观花的坏习惯。说实在的,与其每天1小时把未读内容都看一遍,还不如退订几个阅读收获不大的Feed,然后抽时间把以前读过而且觉得有价值的文章找出来再读一遍(这个在文章评级部分还会再讲)。

具体说淘汰的方法。我目前用到的有这么几条原则:

a)从阅读频率最低的分组(freq_1)里定期淘汰;
b)优先淘汰更新频繁且价值有限的Feed。因为这样意味着更低的信噪比;
c)优先淘汰不能提供全文输出的Feed。每次都要点击“阅读全文”实在是种时间浪费;
d)利用GR首页提供的What’s new进行随机的淘汰。解释一下,GR首页的默认设置是Home(如果没有自己改过设置的话),这个页面会从你所有订阅的Feed中随机(应该也不是完全随机,和你最近的订阅内容以及阅读内容有关)挑选几个有内容更新的显示出来。这个时候如果首页显示的总是你不大去读的Feed,不用犹豫,退订吧。

  • 关于文章的评级与分享

Star,Like,Share我最初也没有什么区分,看到一篇好文章总是又加星,又点Like又Share。而这样的三倍点击完全没有意义。这三者最大的区别就在于,他们的可见对象是完全不同的。Star是给自己看的,Like是给陌生人和好友看的,Share只是给好友看的。

在谈我的对他们三个的区分之前,想先岔开话题说下豆瓣上我对电影的评价标准。其实好电影4星和5星是很难分的。我的标准是这样,如果这部电影对于没看过的人值得推荐,那就是4星;若在此基础上自己还打算找时间看第二遍,那就是5星。当然,这里的区别还是很微妙。总的来说,并不因为知晓剧情而降低观赏价值的,就对得起5星啦~ 😀

再回过头来说我对于Star,Like和Share的区分:

Star:Star就是文章里的5星标准,是值得自己重读第二遍的文章;
Like:表达一种最一般的喜欢,顺手“顶”一下,“digg”一把,“支持”一下的意思;
Share:4星+5星的内容。不过这个标准我还心存犹豫,因为如果好友增多的话,很容易看到大量相同的文章被共享。也许有必要把Share的标准提高一些。(这个在好友管理部分中再讲)

  • 关于People you follow

也是从今年的那次更新开始,Google Reader中的文章分享变得更加开放。最初只能向Gmail的联系人或者Gtalk好友分享文章,在更新之后,可以去follow一个陌生人的文章分享列表。一般可以通过这么几种方式查看并Follow陌生人的shared item:

a)直接访问对方的文章分享页面,左上方会有Follow按钮。例如我的文章分享页面URL是  https://www.google.com/reader/shared/unicell
b)访问对方的Google Profile页面。很多编辑过自己Google Profile的用户都会列上GR的分享页面地址;
c)通过某一篇blog文章点like的用户列表。如果某一篇文章你很喜欢,而恰好也有另一个用户也点了like,那么有兴趣,可以不妨探索下他的share items看看;

是否要Follow一个人,以及Follow之后是否需要Unfollow,也是需要有所考虑的。基本上,我既希望通过Follow别人来获得我所不知道的高质量内容,又希望避免因此可能会产生的信息过载。下面是我关于Follow/Unfollow的一些想法:

a) 和管理Feed一样,如果某个人的分享列表中你感兴趣的内容低于一定的比例,则不用Follow,已经Follow的Unfollow之;
b)避免去Follow内容来源过于单一的人。内容来源过于单一(总是分享某个Blog的内容)有一个严重问题——如果这个Blog本身的内容很有价值的话,我为什么不直接去订阅那个Blog呢?当然,有一种可能是你Follow的这个人可以帮你做初步的筛选。但基于人们的阅读兴趣不可能完全一致,如果他不能做到筛选后的你都喜欢,那还不如自己直接订阅原始的Blog;
c)避免Follow和自己已订阅Feed重复的人。这也是一种阅读时间的浪费,因为你已经读过内容,在你Follow的人那里又会读到一遍,然后在Follow的另一个人那里又会读到一遍。实在很奔溃。。。这也是之前提到我质疑自己Share标准的一个问题。如果4星和5星的都share,很容易造成大量重复内容。也许在可推荐与必须推荐之间,应该取上限值;
d)倾向于Follow自己本身也写Blog,而且内容不错的人。 因为这往往意味着这个人是有观点的,是有审美力的,他们share的东西往往是值得一读的。事实上,从实践来看,这个方法相当有效。
e)倾向于Follow能从高质量内容源中过滤再分享的人。例如科学松鼠会TEDtoChina 牛博网这些内容都相当不错,可是往往每篇的内容较长。如果能Follow定期阅读高质量内容源的人,往往不会错过精彩的内容;

其余

最后,和Google Reader有关几点想说的是:

  1. https访问是王道。https://www.google.com/reader/view/ 访问起来稳定而且安全;
  2. Google Reader再强大,也代替不了真正的书。毕竟后者要丰富、完整的多,是一手内容的主要来源;
  3. 上面说的这些方法不太适用于朋友的Blog和Share items。在这种情况下,了解朋友的近况和状态才是阅读的目的。