Firefox, Web @ 01 April 2008, “2 Comments”

作为一个喜欢读书看碟的人,我一直把豆瓣当作非常喜欢且每天必上去转几圈的网站。可是最近的豆瓣越来越不让我喜欢,或者说不能让我越来越喜欢。在推出“广播”之后,最近推出日记,接着推出推荐网址,这对在豆瓣上找书看影评的我来说,不仅没有用处,“信号”降低了,“噪音”反而升高了。

我不想离开豆瓣,但是又不想受到这些干扰,就想干脆用GreaseMonkey扩展来写个脚本把不想看到的东西屏蔽掉吧,Keep It Simple, Sweet.

我的目的很简单,就是要把右边栏屏蔽然后把左边主要内容横向伸展开。试了一下,只要八行脚本语句就能暂时满足我的要求,这里要强烈赞一下豆瓣的开发团队,要不是他们写的页面代码很一致(嘿,页面也是API),脚本就可能很复杂甚至让我放弃这个念头 ;-)

脚本如下:

// ==UserScript==
// @name           mini douban
// @namespace      douban
// @include        http://www.douban.com/*
// ==/UserScript==

a = document.getElementById('tablerm');
if (a) a.setAttribute('style', 'display:none');

a = document.getElementById('tabler');
if (a) a.setAttribute('style', 'display:none');

a = document.getElementById('in_table');
if (a) a.setAttribute('style', 'width:100%');

a = document.getElementById('in_tablem');
if (a) a.setAttribute('style', 'width:100%');

好了,现在不妨趁机说说意见:

首先,我想我能理解豆瓣做这些新功能(比如在不断增加大量用户在读看听上的喜好和选择的数据基础上,可以尽量深入收集,发现和发掘更深层次的潜在数据),但是对我个人来说更希望能帮发掘更多的数据,这方面的服务似乎有提高的空间,举例来说,《枪炮,病菌与钢铁》这本书我看过了,很喜欢,可是豆瓣依然向我推荐繁体版和英文版,更不要说大量原英文版和翻译的中文版的技术书籍了,读了其中之一就不大会再读其它的,类似的问题还有不同版次的书(这方面技术书籍问题更多),在“豆瓣猜”的列表下,我该不该选“不感兴趣”呢?

Web2.0,长尾,Abundance,UGC,…. 在数据和信息越来越多的时代,我更需要的是提高信噪比。

Firefox, GTD, lifehacks @ 11 December 2007, “7 Comments”

自从几天前写了“我的GTD工具之一: DIY一个Firefox扩展”,有朋友来要求提供下载地址。感谢大家关注,现在已经可以提供下载了。

当时没能提供下载地址是因为:

  • 这是我自己边学边写的第一个Firefox扩展(之前发布的HTML Entity Char Lookup其实是第二个),因为一直断断续续在开发,因此用的一直是本地目录(Firefox支持开发和测试时候,扩展使用解压后的独立目录)的形式,没有直接打包成可直接安装的xpi文件;
  • Firefox 3.0b1发布,而该版本在安全性方面增加了新的要求,为了让发布后的扩展支持安全更新,又花了点时间;
  • 这几天我在忙着Get GTD Done :p …

请感兴趣的朋友访问,在TWSStopper扩展的主页那里点击Install就能下载。

已经有朋友发现以下问题:

  • 在某些Firefox上,不能安装这个扩展,出现“不合法的安装包”的错误信息,但是我没能重新这个Bug :-( 不知道有多少朋友遇到这个问题 :-(
  • 在MacOS上,时间段的Tab上的日期下拉框里的日期无法显示日期数字,而是显示“…”;
  • 一个愚蠢的错误:时间段的输入里”To”和“From”标记搞反了;

如果使用上还发现其它问题,请大家原谅,或者有新需求,请在这里留言。我会尽量满足。

谢谢。

更新(2008/09/09):
现在能在Firefox 3.0.1以上版本运行了。

Firefox, GTD, lifehacks @ 05 December 2007, “14 Comments”

每天都有很多网页要看,500多个Blog Feeds,常看的论坛,许多Twitter上发来的链接,那是相当的消耗时间,而且每个网页里有很多链接,往往会再跟着点击看下去,如此重复… 等全部看完,才发现很多时间已经过去,尤其是应该工作等正经事情的时间。

在网络开发的术语里有句话叫作:Hypermedia as the Engine of Application State,直白的翻译是:超媒体是网络应用程序状态变化的引擎。这句话放到我平时浏览网页的情况下,就是:Hypermedia as the Engine of Attention State:超链接是我注意力跳转的引擎。

于是,为了强迫自己不上那些经常会消耗时间的网站,自己写了一个Firefox扩展:TWSStopper,全称: Time Wasting Site Stopper (我知道,我在取名字方面真的很差劲 :p)。

现在,当我去某个非常浪费时间的网站的时候,Firefox就会拒绝,同时会跳出这个对话框:

stop

但是如果我就是要去那个网站的时候,可以选择暂时“释放”一下,点击状态栏或者右键子菜单的”Unblock Me…”

statusbar-1

这时候,TWSStopper会“挑战”我,必须毫无错误地输入一长串随机生成的字符串,长度可以在扩展的选项里修改,图中是30个字符。

challenge

如果我愿意并且完成这个挑战,就可以选择“释放”的时间长度,最长半小时。在这段时间里,所有“黑名单”上的网站暂时都可以访问了。

unblock-time-limit

扩展的选项:

  • 添加和管理那些对我来说是消耗很多时间的网站:

    options-1

  • 设置我需要干活的时间段,就是不让自己访问消耗时间的网站的时间段:

    options-2

  • 其他选项,包括随机字符串的长度,对话框内容等:

    options-3

当然,要绕过TWSStopper有很多办法:

  • 卸载这个扩展;
  • Disable这个扩展;
  • 使用另外一个没有个扩展的Firefox Profile;
  • 用别的浏览器 - 还好,我只用Firefox;

但是,这些手段足够麻烦(比如要重启Firefox等),最重要的是,采用这些手段的本身就足以让自己意识到自己已经在不让自己Get things done了,这时候,我就会停下来。

就像《Following Through》(一本关于如何完成要做的事情的书,类似那本非常有名的《Get Things Done》)在关于如何对付影响自己GTD的因素时候说的:

You usually don’t have to make it impossible to go backwards, you just have to make it, difficult enough.
你不需要让它(影响GTD的因素)变成不可能,你只需要让它变得足够难。

Choose an obstacle and give it a try. If it doesn’t work, don’t stop there. Build on the obstacle or replace it with a bigger one. Keep experimenting until you’re moving forward.

选择一个障碍试试看,如果行不通,别停止。在它的基础上建一个或者换一个更大的障碍。不断试验直到你能够前进。

这个扩展就是变得让我访问那些消耗时间的网站变得“足够难”的障碍 :-) 从开始使用到现在几个月来,效果还不错,而且慢慢地,即使可能,也不去访问其中一些网站了。

Bruce (Number5)曾经说

…生产力工具的主要功能是心理安慰。你觉得最有效的生产力工具是什么?

首先,对他的看法,我感同身受。我的理解是:使用效率工具(Productivity Tools或者GTD tools)本身只能表明我有把事情做完和提高效率的意愿(Intention),但是有去做的意愿并不等于去做了,意愿本身是不能变成行动(Action),而且在执行意愿的过程中,又有许多自身引起的负面的影响因素。

43Folders上的一幅图来说明:

Dumbass是我自身一些会影响GTD的潜意识和本性或者本能,Smarty Pants是指要GTD的意愿和能够意识到Dumbass的存在并且想办法阻止或者让Dumbass为我所用的能力。

Hey, Bruce,这是我回答你的问题的第一个答案 :-)

Remy Sharp wrote a web service to look up HTML Entity Character. The service “allows you to quickly find the entity based on how it looks”. There is also an OpenSearch plugin and MacOS Dashboard widget. Kudos to Remy!

I figured a Firefox extension clone would be handy, and it wouldn’t be too difficult to make one, thus:

This extenion is simple: a GUI wraps and calls the Javascript code Remy wrote (with a little modifiication, basically renaming global variables to make them unique) and then displays the result. The code is licensed under Creative Commons by-sa 2.5, same as Remy’s code.

It should work on Firefox from version 1.5 and above (have tested on 3.0aPre7 too), also on Netscape Navigator and Flock, let me know if you have any problem using it.

To try out, go to the extension’s home page and click install (it’s currently hosted on my server, so you have to let Firefox allow download and install extension from my server).

I could have made the extension remotely invoke Remy’s web service, parse the return html and present the result, but it might not be a good option, because:

  1. I need it work while off-line (too much distraction online);
  2. HTML entities character set doesn’t change that often, what’s the last addition? € maybe?
  3. Overhead from network traffic and CPU cycles parsing html;
  4. Not really a reason though: I could later make use of the new Online and Offline Events and provide user the options;

Update (09/09/2008):
You should be able to have it run on Firefox 3.0.1 and above.

Notes, Tech @ 29 November 2006, “No Comments”

Generated: Wed Nov 29 2006 02:03:42 GMT+0800 (CST)
User Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.8) Gecko/20061115 Ubuntu/dapper-security Firefox/1.5.0.8
Build ID: 2006111503

Enabled Extensions: [20]

以上用MR Tech Local Install生成,themes和plugins忽略。