2012年十一月月 发布的文章

个人时间管理的一些实践体会

时间是人类最宝贵的财富之一,我十分认同这点,因此我在个人时间管理以及工作效率上也是一直追求持续改善的,期望能在最短的时间内产出更多有价值的成果,尤其是工作时间里。

我知道的时间管理思想主要有三种:

* 四象限理论。这是我们经常谈到的传统时间管理理论,它告诉我们如何根据待办事项的重要和紧急两个属性对待办事项进行分类和优先级确定。我个人觉得这个理论是时间管理的基础,后续无论是GTD理论还是番茄时间理论都离不开这个理论的铺垫和辅助;

* GTD理论。这是一种被大家热捧的实践型时间管理方法。资料不少,配套的软件工具以及web应用也有很多。该实践方法被很多职场人采用,其中就包括我;

* 番茄工作法。这是近几年兴起的一种旨在提高单位时间内生产效率的实践方法,也有很多工具和web应用支持,其原理简单,易于理解和实践。

总体来说,这两年我采用的时间管理方法是以上三种思想的结合:以GTD思想为主导,用四象限理论在收集待办事项过程中对待办事项进行分类整理,在处理待办事项时使用番茄工作法最大程度的提升工作效率。

GTD是需要工具支持才能发挥最大威力的。再具体点,目前日常工作和生活中,我使用的是Todolist这个GTD时间管理工具来辅助我进行时间管理的。 当然GTD的工具有很多,Todolist只是其中一个,也未必是最好的那个,只是我当初选择了它并一直坚持使用它罢了。

GTD理论讲究的是收集、组织整理、执行与回顾。在最初使用Todolist时,我按照经典GTD理论,建立了两个Project:Work和 Personal。在每个Project下建立了三个“筐”:“Next Action”、“Waiting for”和“Someday/Maybe”,三个筐的含义分别是:“下一步要做的”、“等待他人做,待跟踪的”以及“将来可能做的”。开始用时还比较顺 手。但时间长了后,就发现了一些问题:

* Work下“Next Action”中的事项越来越多,即便是个人待办事项,也更多的放在Work下的"Next Action"中,Personal下的事项越来越少;

* “Next Action”中的待办事项不断移动到“Someday/Maybe”中;

* “Someday/Maybe”中的事项还不舍得删除;

* 一些持续要做的事项,比如某个习惯养成时的事项提醒,无处存放;

* 一些周期性的事项,如每月技术交流会议等,也无处存放;

* 为待办事项赋予的优先级属性总是因时间的推移而不断调整,导致在这方面花费了不少心力;

* 一些待办事项的完成时间总是调来调去;

* 很少往Waiting For中存放事件。

也许是我对GTD的理解和执行还不够好,导致了这些问题,反倒给自己带来了负面的反馈。针对这些问题,我按如下思路对Todolist的筐结构做了调整:

* 删除Personal Project。这样在收集事项时只有唯一一个Project入口。个人事项和工作事项都是要做的事项,扫一眼即可区分,何须分离;

* 建立Durative Action,用于存放持续事项,这些事项不赋予完成时间,只是用来随时查看和自我提醒;可定期对该筐进行整理,已经养成的工作习惯就可以从该筐中删除了;

* 建立Periodic Action,用于存放周期性事项,这个就不解释了;

* 重新定义Next Action的含义。将即将做的、本周甚至本月要做的事项都放在“Next Action中”,不添加任何优先级属性,需要增加完成时间的,添加完成时间,诸如当天要完成的;否则不添加时间属性;

* 将Someday/Maybe筐改名为“Memo”,只是用于收集任何突发的想法和待办事项,这些想法和待办事项尚没有任何计划,不赋予完成时间,只是用于备忘;

* 删除Waiting For这个“筐”,这些事项放在Next Action中统一管理,用事项内容以及标签(可用人名)来提醒自己这件事项是依赖谁,需要跟踪谁的工作。

这样调整完,似乎就顺手多了:工作中的待办事项多进入“Next Action”,一些点子、想法、期待做的事情进入"Memo",习惯养成事项放在“Durative Action”;周期性的事项放到“Periodic Action”中。利用Todolist提供的"today"标签,我可以迅速看到今天的待办事项,不会有遗漏。"Memo"需要定期回顾整理,否则事项还是会越来越多,不过多一些也无妨,只是影响用眼睛过滤一遍的时间罢了,这个我能接受^_^。

对于番茄工作法,没有太多可说的,需要用的时候,打开一个番茄定时器(浏览器插件,也可以是物理定时器,看个人喜好了),心无外物,开始做就是了。

下面是其他一些在运用GTD时的体会:

* 工具重要,但也不要为此频繁尝试各种工具,选定一个口碑不错的工具,用下去;

* 待办事项不要放在脑子里,务必要记录下来。腾出大脑集中精力做事,这也是GTD的前提;

* 时时刻刻收集待办事项!在办公室、在会议中、走路中、乘车时、洗澡后、睡醒后、睡觉前,每当脑子中有事项或想法时,随时打开电脑或终端将这些事项记录下来,并在后续整理归类;

* 运用GTD的前提是有事做!有事做的前提则是有目标和计划。因此你要想好一天的计划、一周的、一个月的,甚至是半年的目标,一年,甚至是三年的目标;

* 虽然目前有很多脑图工具,但我更喜欢传统的纸笔。在我的身边、桌面或包都放有一只笔和一张白纸(或小本),这样无论是否有电脑或终端在身旁,我都可以随时记录事项或我的想法。

即便有了很好的个人时间管理工具和实践方法,也还是会有人会抱怨时间太少,时间不够用。工作都完不成,哪有空学习深造?究竟是真的时间不够,还是时间没有管理好,浪费了,这个只有自己知道。但加强对时间的价值的认知将 有助于你改善自己的时间管理状况。给自己做个估值,粗略计算一下你的每个小时的价值是多少(比如每天的工资除以8)。确定了这个估值后,你就可以在做任何 事情之前对这件事情的时间成本做出一个估算了。你可以累积一下每天抽烟、看无聊的肥皂剧、胡侃闲聊的成本,可能会让你觉得触目惊心。

很多人想集中精力和时间完成一些重要的事情,但我们工作在团队中,工作在组织内,难免会遇到一些自己不情愿做的事情或一些打扰。对于这类让你无法集中高效利用时间的事项,处理起来很麻烦,不同的场景处理方式可能不同。但这里还是几个小建议:

* 对于领导下派给你的,你并不情愿做的事情,抱怨是毫无意义的,你的唯一行动只能是解决这个问题。我的建议是开启一个番茄,集中注意力,用最短的时间完成它。然后再去做你喜欢做的重要的事情;

* 对于电话打扰,我的建议是如果可能的话,拆除你工位上的电话,这样渐渐地找你的电话就会变少了,他们很可能用mail或其他方式与你沟通交流;

* 对于会议打扰,我的建议是学会拒绝。如果你不能在会议上给其他与会者带来什么价值(不会提问,没有问题,给不出建议),那就不要去。利用会议这段时间,做你认为更有价值的事情;

* 对于登门打扰,这个的确不好处理。很多人建议设定自己的“不会客”时间,但真的有效么?够呛啊。我实际的作法:停下手头的工作,快速沟通,快速解决来客的问题,然后恢复原有工作上下文,尽快恢复之前的工作状态。

除了做好工作时的个人时间管理之外,其他时间也要做好管理,因为工作之余,我们还要在利用这些时间去学习、充电以掌握新知识、新技能,提升个人能力。

* 学会利用碎片时间。现代人工作繁忙,工作之外的时间(除去睡觉)有两个特点:绝对时间少和严重的碎片化。要学习要充电,我们只能把这些短暂的碎片时间充分 利用起来。比如坐在班车里、搭乘地铁时、等飞机航班时、火车上、睡觉前、陪男/女朋友逛商场时,都是可以完成一些小事项的。关键还是提做好策划,知道该做 什么,回忆一下你的时间价值吧。一年下来这些碎片时间累积起来,肯定是会让你大吃一惊的。

* 预留充分的休息时间。将时间用于休息,以保持后续以旺盛精力投入工作和学习,比将这些时间花费在一些无聊的活动上,比如漫无目的地浏览网页、看无聊肥皂剧等要划算的多。

使用squid搭建http代理

近期在做一些基础设施搭建的过程中,又遭遇到了公司http代理的问题。主要是很多主机上的工具只支持不带身份鉴权信息的http_proxy设置,如只 支持诸如:export http_proxy='http://10.10.1.1:8090',而不支持export http_proxy='http://tonybai:passwd@10.10.1.1:8090'这种形式的配置。

或是其命令行选项中只提供了proxy_host和proxy_port两个选项,但并不支持携带鉴权信息。而公司内部要访问外部信息还必须通过公司的带 有身份鉴权的代理服务器,总而言之,弄得我十分不爽。于是乎产生一个想法:是否可以搭建一个内部http中间代理,部门内部主机通过不带身份鉴权信息的代 理配置访问该中间代理,而该中间代理将内部的所有http request都转发到公司代理,同时携带配置好的身份验证信息。

对http代理这事,我完全是个小白啊,于是乎Google开来(恰逢最近Google还不给力,原因你懂的)。

最先试用了一下tinyproxy,这个工具挺小巧简单,在ubuntu下通过apt-get 可直接安装,/etc/tinyproxy/tinyproxy.conf的配置也很简单明了。但配置文件中涉及到转发到upstream proxy server的配置行只支持"Upstream host:port"而不支持"Upstream tonybai:passwd@host:port"形式,并且也没有其他地方支持身份鉴权信息的配置。在其官方bugzilla上有很多人反映这一情 况,但其最新版本似乎也没有将这个功能加入,十分遗憾!

于是乎打算换一个重量级的代理工具-nginx。Ubuntu 9.04下默认安装的nginx是0.65版本。nginx功能虽强大,配置倒并不那么“复杂”,但问题在于nginx本身似乎更专注于负载均衡和反向代 理,而满足我这个问题场景的资料甚少。nginx配置命令和变量太多,要想短时间搞清楚这些变量的含义还真是一件困难事。照猫画虎的尝试了几种配 置,也均未能成功。翻阅了国内唯一一本nginx书籍 – 《实战nginx》,但无奈太厚,翻了三章,索性放下了。换工具!

最传统的开源免费http代理工具莫过于squid了。估计其市场占有率也是名列前茅的。Ubuntu 9.04下默认安装的squid是2.7版本,不算很老,squid官方站至今还提供2.7版本详细的配置文档。但squid默认的配置文件可是超级庞 大,总共有近5k行,虽然绝大部分内容都是被注释掉的。于是乎先用命令过滤出未注释行,这些行是真正生效的配置。

关于squid如何将收到的http request转发到带身份鉴权的上级http proxy server,网上的信息也较少,不过还是让我发现一条。按照这条配置建议做了尝试。/etc/squid/squid.conf的配置摘要如下:

access_log /var/log/squid/access.log squid
debug_options ALL,1
hosts_file /etc/hosts
coredump_dir /var/spool/squid

acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32

acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12  # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network

http_port 10.10.13.17:3128

http_access allow localnet
http_access allow localhost
http_access deny all

cache_peer proxy.yourcompany.com parent port_of_company_httpproxy 0 no-query default login=user:passwd
never_direct allow localnet

配置后,重启squid(sudo /etc/init.d/squid restart)。将Chrome浏览器的代理配置改为该代理,尝试打开"baidu.com",陷入漫长等待。于是打开squid的访问日志/var /log/squid/access.log,看到如下失败信息:

1353476636.008      0 10.10.13.235 TCP_DENIED/400 1709 GET error:invalid-request – NONE/- text/html
1353476657.337      1 10.10.13.235 TCP_DENIED/400 1709 GET error:invalid-request – NONE/- text/html
1353476691.420      0 10.10.13.235 TCP_DENIED/400 1678 GET error:invalid-request – NONE/- text/htm

居然出错!换成IE浏览器,现象一样,都是这种错误。在/var/log/squid/cache.log中,还能发现下面错误:

2012/11/21 13:43:56| clientTryParseRequest: FD 12 (10.10.13.235:4247) Invalid Request

不断的修改squid.conf配置,不断地修改浏览器代理配置,不断的失败。总是修改浏览器的代理配置让我感觉十分费劲,于是我换用curl工具来测试 该代理。curl是可以识别http_proxy环境变量的。将http_proxy环境变量改为export http_proxy=http://10.10.13.17:3128,在命令行敲入curl http://baidu.com,居然得到下面结果:

$ curl http://baidu.com
<html>
<meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
</html>

再回到access.log观察,居然看到了下面成功日志:

1353476863.916      0 10.10.13.235 TCP_HIT/200 677 GET http://baidu.com/ – NONE/- text/html

于是又尝试用wget下载外部文件、用subversion访问外部svn repository、rvm安装ruby包均告成功!这不就是我想要的结果吗!居然被我误打误撞到了!虽然到目前为止我仍然不知道为何浏览器发出的http request不能被识别^_^。

Squid这个http代理功能十分强大,本身就是被很多企业作为公司级http代理的工具的。其配置参考足足可以写成一本厚厚的书(市面上已经有这种书),还好我的场景用不到那些稀奇古怪的配置,目前这种状态足矣!

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言精进之路1 Go语言精进之路2 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats