我真的连他一半那么好都没有吗?你真的不知道这样就像拿着长长的针往我心里狠狠地刺吗?
[转]专心工作的15个方法
你正决定完成手头的工作。突然,某件事情需要解决。你没有想这让人分神的事情是否紧迫——你就开始了。
五分钟,十分钟。有时,超过一个小时。
等到你回到先前的工作——轰——你不知道刚才做到哪儿了,或者不知道自己为什么不能全神贯注地做这件事。你的注意力再也不能集中在工作上了,效率也低了。你宝贵的时间和努力白费了。你的动力和创造力不见了。
你忙碌的时候,不可能与世隔离。专心工作的决心掌握在你的手里。这不过需要找到合适的技巧,知道你的优势,并且持之以恒。
没什么想法?好吧,下面有十五个专心工作的方法:
1. 总是发现你所做的鼓舞人心的有趣的事情
任何有意义的任务或常规都需要一个人很多的注意力。在开始做任何事之前,问问自己为什么应该做这件事。有了答案,就会有你如此渴望的产出——那么,你就会重视这项任务。然后,想办法让这项任务变得有趣,比如,让你的创造力和想象力在此过程中玩耍。不要拘泥于“认可”的产出;让自己可以随意选择一些新奇有趣的想法。
当你做一些可以称为是自己的东西的时候,就更有可能专心工作。
2. 选择舒适的桌椅组合
很多人发现,即使多数时间坐着办公,可还是会觉得腰酸背痛。
不要因为桌椅不舒适而浪费宝贵的时间,分散精力。买一张靠背很舒服的好椅子。确保你的办公桌或者工作台结构合理。那样的话,你能工作好几个小时,而身体和眼睛却不觉得疲劳。
3. 让你的工作环境变得井井有条
胳膊够得到的东西太多,或者办公桌上方东西太多,都会让你分神。为了专心工作,只把你需要的东西整齐地堆放在你的桌子上——把其余的收好,比如放在抽屉或者架子上。找一个地方放吃的和喝的,你的包,还有其他的个人物品。
但是,把它们都放在你够得到的地方,这样你就可以喝点东西,又可以专注做手头的工作。
4. 让你的电脑里没有让你分神的东西
这一点对于使用电脑工作的人很重要:为所有经常用到的程序设定快捷方式。
把所有的关于某一项项目或任务的文件置于一个文件夹。然后,确保你的电脑没有病毒。这样你可以免受检查和修理的烦恼。这样的事例给人压力,会减弱你完成工作任务的兴趣。
5. 身边有足够的水
喝水不仅是为了健康,也让你神清气爽。一旦你觉得累了或饿了,一杯水就可以把它们赶跑。接着,你就可以完成手头的工作,晚些时候休息。此外,并非所有的肚子咕咕叫都代表饥饿,通常喝一杯水就可以解决。
确保水就在你胳膊够得到的地方。那样,你就可以专心工作,不用走到打水的地方——被别的事情分神!
6. 带点零食
就像把水放在身旁,让咕噜作响的胃安静的食物必须放在手边。处于同样的原因——把你90%的注意力投入工作,在你的工作区域之内吃东西能避免让你做不相关的事情。因此,确保你的零食也在胳膊可以够得到的范围之内!
7. 列出每天要做的事情并放在身旁
列出每天要做的事情并放在电脑旁(或者工作区域任何显眼的地方)。这一点很有用。如果把工作的清单放在电脑或者手机上,你往往会查阅其他无关紧要的选项卡或者视窗,或者回复不重要的短信。
所以,把你的“今日必做”清单放在你总是能够看到的地方,划掉“已完成”的任务。那样的话,你就不用把包翻个底朝天,也不用找来找去找你写必做事项的那一页。
8. 根据轻重缓急把任务分类
工作的第一个小时是人们效率最高的时候。这是因为所有的精力还有待消耗。所以把所有费力棘手,又富于挑战性的任务放在日程表的第一个小时里。排在这后面的是不太紧急的工作,最后是那些让你倍感无聊的常规性任务。
这样的方法让你能够专注于工作,不浪费宝贵的时间做自己不喜欢的任务。 这样做,你就不会在工作日结束的时候感到很有压力了。
9. 让别人知道你的原则
如果你决心让自己的工作方式发挥作用,那么让他们知道这一点。 很可能的情况是,你可以不受打扰地花几个小时专注于那一项真正重大的工作。当同事知道你在休息时段,会在此期间提问题或者和你交谈。除非有特别紧急的事情,否则他们不会打扰你工作的。
毕竟,他们希望别人也这样待自己。
10. 戴上耳机
大多数的办公室都有各种各样的声音源让人分神——比如,地板打蜡器,邮车,同事说话,电话铃声,东西掉在地上的声音。戴上耳机保护自己,这样你就可以专心工作。耳机可以避免你听到一些让人惊讶的声音——还有那些让你思绪飘开去的声音。
11. 让别人找不到你,让自己忙碌、离开或者“隐身”
并非所有的电话都是关于你的公寓被盗了,或者心爱的人处于极其危险的境地了。所以,在需要全神贯注工作的时候,把你的手机置于静音模式。你也可以选择激活语音信箱服务。
至于即时短信,工作的时候把状态设为“忙碌”或者“隐身”。如果你还是收到即时聊天短信(IMs),那就关掉那个程序。等晚些时候,你手头的工作不那么紧迫了再打开。
12. 远离社交网站
这些网站不需要时刻查看。所以严格要求自己,有几分钟空闲时间的时候,再登陆。
大多数的社交网站上总是有一些新奇活泼有趣的信息,所以你非常可能比原计划超时很多。这样做不但击毁了你专心工作的目标,而且还有大量信息让你产生不必要的烦躁——比如一个朋友的状态说自己的心脏病了,或者某个人涨工资了。
13. 整理你的邮件
另外一个让人紧张,令人分神的就是电子邮件。面对现实吧:你有很多电子邮件,很可能有私人信件,工作信件,预告片,网站的更新,毋庸置疑,还有垃圾邮件。它们都混杂在一起。
避免这点的一个好办法就是有一个电子邮件地址专门用于工作,一个电子邮件地址专门用于私人信件。并设定过滤所有的电子邮件。一旦你有闲暇时间,再次查看电子邮件,取消你不需要的订阅。然后,整理你以后会关注的电子邮件。剩下的都删除。
最后,只有在完成当天最重要的工作之后才查阅邮件。一定要控制浏览邮件的时间。
14. 重新规划你的电话使用
电话是用来聊重要事务的。聊前一晚的约会可以在午饭休息的时候进行。遵守这个原则有助于让你专注工作。你也可以要求同事告诉打电话的人你晚些时候会回电,而不是让你的同事随时拍你的背或者大声喊有你的电话。一旦完成工作,给先前打电话的人回电话,简单地解释你的状况。接下来的两分钟,询问他们有什么事情,记下来,告诉他们事情办好,你会再打电话给他们。准备并写下他们需要的细节,牢记他们对于这件事接下来的可能会有的想法。然后,给他们打电话,一定把谈话控制在三分钟之内。
15. 选择合适的音乐
工作的时候听音乐让你感到放松,给你提供灵感。对于一些人来说,听音乐让他们体内产生更多的肾上激素, 这样他们能够更加经济充沛地工作。
然而,并非所有类型的音乐都让人心旷神怡——某些音乐不适合一个人的心境。因此把你的音乐库根据心境相应地整理。除了帮助你专注工作的音乐,不能有其他让你分神的东西。听过一些让人放松的爵士乐,突然听到吵闹的重金属尖叫声会让你觉得异常刺耳。
还有一些想法
记住——你的周围是各种事件和工作的人们,他们可能会让你失去动力。使用上面提到的任何一种方法都可以让你不受他们的影响。
vim生成注释插件DoxygenToolkit
之前写函数/类的注释时经常是ctrl+c/ctrl+v的,也知道有些IDE上有自动生成的功能,但是没找过vim的插件。
最近不知道为什么要用它了…
Script page: http://www.vim.org/scripts/script.php?script_id=987
安装很简单,下载->解压->复制到$VIM/$VIMFILE目录下的plugin目录即可。
使用:
: Dox
或者:
: DoxAuthor
具体设置参考VIM官网上的介绍,也可以看源码。
然后用得不是很舒服,自己改了下代码,加了个@copyright(和他那个licence不一样),改了@version显示…
最近新宠Lana Del Rey
20120129
春节假期就这样过去了,七天里几乎有六天在床上赖着,这不是件值得开心的事,更不是件好事。
过年没回家乡,是有史以来第一次。其中夹带着很多的因素,假期短、天气冷、怕坐车、怕去拜年、怕面对各式亲戚朋友……我也不知道到底哪个才是牵住我的原因,只知道现在过年的感觉越来越少心情越来越沉重。
这个年过得真的有点压抑,即使面对着最亲的亲人,我也无法得到自在和幸福的感觉,取而代之的是压抑拘谨内疚。我感到与外面世界那层隔膜似乎越来越厚,而且前所未有的真实。
昨天终于把安娜卡列琳娜看完了。大体上还是能看明白的,但由于文化环境时代背景等原因,加上自己修养不够,还是有些东西理解不了,只能说是把书翻了一遍。其中印象最深的是很多的心理描写,很多的自言自语,给我的感觉在某种程度上似乎几个主要人物都比较孤独:安娜,她哥,她嫂子,伏伦斯基,列文。
列文最后那个茅塞顿开有点牵强,他之前思考了那么久的,曾为之迷茫挣扎甚至轻生的人生意义,居然凭一个普通农奴的一句话就解脱了。之前一天他还想着自杀的…更何况他一直不太信教,也没经历大悲大喜,怎么一下子改变的这么快…
另外我真的感觉不到安娜和伏伦斯基之间有爱情的存在,一方面,我觉得伏伦斯基这人比较轻佻虚伪,可能开头他和吉娣那段给了我一个很不好的印象,以安娜的魅力和修养,我觉得她更应该爱上列文那类型或者更好的…另一方面他们两一起后的生活好像一直比较平淡(除了他们在社交界的影响),没有什么刻骨铭心的悲伤或快乐,至少我是没有感受出来,可能时代不一样,也可能是基于前一原因我没办法感受。安娜最后的死也比较突然,他们不是第一次吵架,安娜也不是第一次觉得痛苦,我还以为(因为一开始就有人剧透说安娜最后卧轨)会在发生悲痛欲绝的事,如他儿子挂了、伏伦斯基为保名誉而放弃了她、或者后来她发现她居然爱上了已婚的列文,等等……不知道为什么这么快这么轻易就做决定。
总的来说,小说超出我的正常理解范围,但是有时却能找到共鸣。唯一能解释的是因为时代不同,很多当时不可思议不可原谅的行为,在今天看来已经很普遍了,比如劈腿,比如离婚,但是很多在那个时代很正当的勾当在今天看来却又很不可思议。
接下来想换换口味,看些心理学或哲学上面的书。
想买个kindle fire。
想找个伴。
yardvps配置手记
I.新建用户(test):
购买vps时只有root一个用户,ubuntu上习惯用普通用户:
1、输入用户管理的命令,新建用户(以test为例):
useradd test
修改 test 用户的密码:
passwd test
2、将新用户添加到管理组:
gpasswd -a test admin
3、给 test 用户创建自己的目录:
cd /home mkdir test chown test /home/test
4、添加sudoer权限:
vim /etc/sudoers文件。找到这一 行:”root ALL=(ALL) ALL”在起下面添加”xxx ALL=(ALL) ALL”(这里的xxx是你的用户名),保存退出.
5、指定shell:
vim /etc/passwd,找到相应的用户,指定shell路径:/bin/bash
II.OPENVPN:
1、安装:
sudo apt-get installl openvpn
2、准备和安装:
sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/ /etc/openvpn/ cd /etc/openvpn/2.0/ sudo vim vars su (切换到root,用普通用户老出错) source vars ./clean-all ./build-ca ./build-key-server server ./build-key client1 ./build-dh
3、配置:
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn cd /etc/openvpn sudo gzip -d server.conf.gz sudo vim server.conf
4、配置nat转发:
sudo bash sudo echo 1 > /proc/sys/net/ipv4/ip_forward sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE iptables-save > /etc/iptables.up.rules sudo vim /etc/network/interfaces 最后添加: pre-up iptables-restore < /etc/iptables.up.rules
If you made a mistake and want to remove all rules from IPTables:
sudo iptables -F -t nat
III. Apache:
1、安装:
下载源码包,解压。
cd httpd-xxx sudo ./configure --prefix=/usr/local/apache2 –-enable-mem-cache –-enable-vhost-alias --enable-cache -with-ssl --enable-ssl --enable-so --enable-rewrite --enable-mime-magic sudo make sudo make install
IV. Mysql:
sudo apt-get install cmake libncurses5-dev build-essential g++ sysv-rc-conf sudo cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock sudo make sudo make install cd /usr/local/mysql sudo chown -R mysql . sudo chgrp -R mysql . sudo ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --no-defaults sudo cp /usr/local/mysql/support-files/my-medium.cnf /etc/mysql/my.cnf sudo vim /etc/mysql/my.cnf 在[mysqld]下添加: basedir=/usr/local/mysql datadir=/usr/local/mysql/data user=mysql sudo /usr/local/mysql/support-files/mysql.server start
(如果能启动成功,则说明配置成功)
配置开机启动:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql sudo sysv-rc-conf
找到【mysql】一栏,选定【3】【4】【5】这三列
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
/usr/local/mysql/bin/mysqladmin -u root -h veapon.com password 'new-password'
V. PHP:
sudo apt-get install -y libltdl-dev libssl-dev sendmail libjpeg8 libjpeg8-dev libpng12-0 libpng12-dev libxml2-dev libcurl4-openssl-dev libmcrypt-dev sudo ln -s /usr/lib/x86_64-linux-gnu/libpng* /usr/lib/ cd php-xxx sudo ./configure --prefix=/usr/local/php --with-curl --with-mcrypt --enable-mbstring --enable-pdo --with-openssl --with-imap-ssl --with-gd --with-jpeg-dir=/usr/lib/ --with-png-dir=/usr/lib/ --enable-exif --enable-zip --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql sudo make sudo make install sudo cp php.ini-development /usr/local/php/lib/php.ini sudo vim /usr/local/apache2/conf/httpd.conf
适当位置加入:
AddType application/x-httpd-php .php
安装mysqli扩展
sudo apt-get install autoconf cd /path/to/php-source/ext/mysqli sudo ./configure --prefix=/usr/local/php/include/php/ext/mysqli --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/mysql/bin/mysql_config sudo vim /usr/local/php/lib/php.ini
加入:
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/mysqli.so
VI. subversion:
sudo apt-get install subversion subversion-tools sudo mkdir /var/svn/test sudo svnadmin create /var/svn
修改配置:
sudo vim /var/svn/test/conf/svnserver.conf #匿名访问的权限,可以是read,write,none,默认为read anon-access = none #认证用户的权限,可以是read,write,none,默认为write auth-access = write #账号数据库 password-db = passwd
添加账号:
sudo vim /var/svn/test/conf/passwd #格式:用户名 = 密码 user = passwd
修改权限:
chmod -R 755 /var/svn/test
VII. Memcache:
1.安装libevent:
sudo wget https://github.com/downloads/libevent/libevent/libevent-2.0.17-stable.tar.gz sudo tar -zvxf libevent-2.0.17-stable.tar.gz cd libevent-xxx sudo ./configure sudo make && sudo make install sudo ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib
2.memcached服务端:
sudo wget http://memcached.googlecode.com/files/memcached-x.xx.x.tar.gz sudo mkdir /usr/local/memcached sudo tar -zvxf memcached-xxx.tar.gz cd memcached-xxx sudo ./configure --prefix=/usr/local/memcached sudo make && sudo make install /usr/local/memcached/bin/memcached -h
3.php memcache扩展
sudo wget http://pecl.php.net/get/memcache-2.2.6.tgz sudo tar -zvxf memcache-x.x.x.tgz cd memcache-1.5 sudo /usr/local/php/bin/phpize sudo ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir sudo make sudo make install sudo vim /usr/local/php/lib/php.ini
加入:
extension=/usr/local/php/lib/php/extensions/no-debug-zts-20090626/memcache.so sudo /usr/local/apahce2/bin/apachectl -k restart
HTML5拖放上传PHP完整版
update: 2011-12-05.
主要原理:利用FILE-API获得文件的二进制数据,通过AJ将二进制发送到PHP处理,到PHP后就跟处理普通的二进制数据一样了。
经测试,目前支持支Chrome和Firefox。这里有份HTML5特性支持列表,主要是file-api和dnd两个。
主要技术:
由于sendAsBinary不是W3C标准,Chrome上会报无此方法的错误,但是可以重写这个方法原型,在 http://code.google.com/p/chromium/issues/detail?id=35705 这里有讨论,这里 http://javascript0.org/wiki/Portable_sendAsBinary 直接给出解决办法。
然后,代码:
HTML:
index.html:
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>DndUpload</title>
<style type="text/css">
#ct{
border:1px solid #999;
-webkit-border-radius:15px;
-moz-border-radius:15px;
border-radius:15px;
width:600px;
height:120px;
}
.shadow-ct{
border:1px solid #666;
box-shadow:5px 5px 3px #ccc;
background:#FCFAE9;
}
</style>
</head>
<body>
<h2>Drop Zone</h2>
<div id="ct"></div>
<script type="text/javascript">
if( !window.FileReader ){
document.body.innerHTML = "Browser is not supported";
}
objCt = document.getElementById("ct");
function dragenterHandler(e){
this.setAttribute("class","shadow-ct");
}
function dragoverHandler(e){
e.stopPropagation();
e.preventDefault();
}
function dropHandler(e){
e.stopPropagation();
e.preventDefault();
var files = e.dataTransfer.files;
var fr = new FileReader();
var xhr = null;
if (window.XMLHttpRequest){
xhr=new XMLHttpRequest();
}else if (window.ActiveXObject){
xhr=new ActiveXObject("Microsoft.XMLHTTP");
}
for (var i = 0, f; f = files[i]; i++) {
tmp_file = f;
ext = getExt(tmp_file.name);
fr.onloadend = function(){
if( xhr ){
var url = "upload.php?ext="+ext;
xhr.open("POST",url,true);
xhr.overrideMimeType("application/octet-stream");
if(!XMLHttpRequest.prototype.sendAsBinary){
XMLHttpRequest.prototype.sendAsBinary = function(datastr) {
function byteValue(x) {
return x.charCodeAt(0) & 0xff;
}
var ords = Array.prototype.map.call(datastr, byteValue);
var ui8a = new Uint8Array(ords);
this.send(ui8a.buffer);
}
}
xhr.sendAsBinary(fr.result);
xhr.onreadystatechange = function(){
if( xhr.readyState==4 && xhr.status==200 ){
var reg = /^image/;
if( reg.exec(tmp_file.type) ){
var html = '<p><img src="'+xhr.responseText+'" title="'+tmp_file.name+'" /></p>';
document.getElementById("file-list").innerHTML += html;
}else{
document.getElementById("file-list").innerHTML += '<p>'+xhr.responseText+'</p>';
}
}
}
}
}
fr.readAsBinaryString(f);
}
this.setAttribute("class","no-class");
}
function getExt(file){
var ext;
if( file=="" ){
ext = "unknown";
}
var arr = file.split('.');
var str = arr[arr.length-1];
if( str=="" || str=="undefined" ){
ext = "unknown";
}else{
ext = str;
}
return ext;
}
objCt.addEventListener('dragenter',dragenterHandler,false);
objCt.addEventListener('dragover',dragoverHandler,false);
objCt.addEventListener('drop',dropHandler,false);
</script>
<hr>
<h2>File List:</h2>
<div id="file-list">
</div>
</body>
</html>
PHP:
upload.php:
<?php
$tmp_str = @file_get_contents("php://input");
$ext = $_GET['ext'];
if( !empty($tmp_str) ){
$path = "./uploads/";
$filename = time().'.'.$ext;
$handle = fopen( $path.$filename, "w" );
if( fwrite($handle,$tmp_str) === false ){
echo "Failed";
}else{
echo $path.$filename;
}
fclose($handle);
}
apache无法读取挂载分区的问题
问题是这样都,我想把windows的某个分区下的文件夹软链接到/var/www/下,就是想平时的写的代码可以和windows共用。
但是如果挂载分区都时候不加读写权限选项的话,访问的时候会出现forbidden的情况,试了下网上说都直接给原文件夹chmod,但是还是不行.
ls -l一下,其实是不生效的。于是只好在挂载的时候加上读写权限选项,之前挂载因为没想到这个,就简单的/dev/sdax /media/Other default,utf-8 0 0挂载进来就行,这样默认是只有root有写权限,可以加上umask=000(或者dmask+fmask分别设置)。
/dev/sdax /media/Other default,utf-8,dmask=022,fmask=133 0 0
O了。
JS的unterminated string literal问题
之前遇过好几次了,都不了了之,今天找到了根源。
一般这个问题是在js处理含 换行 标签的模板变量(如smarty的变量)时出现,特别是含html标签的变量。
解决问题是在后台把模板变量中的换行字符去掉,PHP里是:$str = str_replace(array(“\n”,”\r”),”",strip_tags($str) );
这里还要注意转义字符里坑爹的双引号…”\n”才会转义,坑爹的’\n’不会…
VIM 自动改变工作路径
之前用VIM新建/打开文件时,一直是:new 或者 :e 加上一串地址(幸亏有 tab 补全),一直不知道原来VIM的工作路径是可自动改变的。
这个和 Taglist 一样需要 Ctags 支持,如果你之前已经安装了 Taglist ,只要修改 vimrc 就行。
如果你还没安装 Ctags 可以搜下 Ctags的安装方法 。
然后,修改 vimrc , 加入以下两行代码:
set tags=tags; set autochdir
然后结合 NERDTree 就可以实现自动将工作路径切换到当前编辑文件的位置了。
PS: VIM 工作路径相关的几个命令:
cd: 改变vim的当前工作路径
lcd: 改变当前窗口的工作路径
pwd: 查看当前的工作路径
set autochdir: 自动设当前编辑的文件所在目录为当前工作路径
