HABIT IS POWER

习惯就是力量

0%

文明,就是孜孜不倦地寻找这种人才的一段长久过程

上周四的凌晨,我听完冬吴相对论,节目中提到了一本书,叫《不说,就真来不及了》,于是我习惯的打开豆瓣看看别人写的书评,有好有坏,我便决定马上买一本。

拿起iPad对比了下电子书和纸质书的价格,我最后决定在JD上买纸质书,点完购买,网站推荐了几本特价的书,其中有本就是我今天的主题:《致加西亚的信》,¥7.60。

《致加西亚的信》,这是一篇影响我人生成长的文章。

快车组,是我在大学时加入的最好的学生团体,他给我的人生烙上了一种特别的生活态度,而《致加西亚的信》就是快车组生活态度的第一课。

当时我们一群“新兵”人手一份《致加西亚的信》,一起学习这篇文章,学习的方法是:每个人按顺序大声朗读文章的一个段落,有任何错漏,就必须从头开始重新朗读,读到文章结束,下一位同学就从开头继续往下读,直至整个团队都完成任务。

当时还是比较单纯,没有想过要吐槽自己真傻或者什么的,只是怀着一股敬意完成了这样的“仪式”。

在“仪式”之后我再也没有重读过那篇文章,直到工作6年之后的今天——花了不到一个小时看完这本小册子,我的豆瓣书评是这样的:

我给6页的文章打五星,书中其他部分,剩下的99%,我打-1星。

短短6页的文章依然能给我带来感动,像是看完日本小学生三十人三十一脚比赛后的那种感觉,感谢快车组。

一百个读者就有一百个哈姆雷特,评价书或者文章的好坏并不是看书的内容是否正确,而在于书对于你能引发多大的思考,这才是书中自有黄金屋的真谛所在。

说回《致加西亚的信》,如果你问我文章中让我感受到的罗文最重要的特质是什么?

我还真说不上来,但有一个粗俗的词可以概括:靠谱。

可“靠谱”又是什么样的一个特质呢?“道可道,非常道”,我无法进行完整的阐述,只能“有损”的来理解,并尝试表达如下:

主动,反馈

这是一个闭环;

而我并没有提及能力、性格等等属性,因为在我看来这些属性只是“果”,而不是“因”。

人生的成功就是要找到一群能把信带给加西亚的人,他们会从不同的方面带给你不一样的成功,你找到了吗?

问题描述:

之前都好好的,今天自己不记得做了什么操作后(后面我才想起来),我的VirtualBox中的虚拟机要么启动到一半就卡住,要么就提示:

中文:

不能为虚拟电脑 UbuntuDesktop 打开一个新任务.

cpum#1: X86_CPUID_FEATURE_ECX_MONITOR mismatch: host=0 saved=1 [ver=14 pass=final] (VERR_SSM_LOAD_CPUID_MISMATCH).

返回 代码:E_FAIL (0x80004005)
组件:Console
界面:IConsole {db7ab4ca-2a3f-4183-9243-c1208da92392}

英文:

Failed to open a session for the virtual machine UbuntuServerJP.

cpum#1: X86_CPUID_FEATURE_ECX_MONITOR mismatch: host=0 saved=1 [ver=14 pass=final] (VERR_SSM_LOAD_CPUID_MISMATCH).

Result Code: E_FAIL (0x80004005)
Component: Console
Interface: IConsole {db7ab4ca-2a3f-4183-9243-c1208da92392}

寻找原因:

我感到非常的奇怪,一阵狂轰滥炸之后我突然想起了关键字CPU,所以我打开了“securable.exe”,结果如我所料的是虚拟化技术不支持!

这个太奇怪了,明明是支持的,而且前两天都还好好的,怎么会突然这样呢?

于是我再次Google,Win8 虚拟化,结果一个似曾相识的关键字映入我的眼帘:“Hyper-V”

我好像想起了什么?!是的我早上的时候在网卡适配器那里看到几个Hyper-V的虚拟化网卡,我以为是VirtualBox的,所以我就从设备管理器里面把他给卸载掉了

好吧,看来问题就出在这个Hyper-V上面,而且是我把他给破坏了

知道了原因,解决方案也是水落石出:

1、到控制面板中“启用或关闭 Windows功能”,找到Hyper-V,去掉勾选,确认,重启

2、重新打开“securable.exe”,OK,最后一个选项正常了

3、重新打开VirtualBox,一切都正常了

参考信息:

将 Hyper-V 引入“Windows 8”

Windows 8自带虚拟机Hyper-V,VMware靠边站

VirtualBox32位系统上安装64位系统

问题:

使用了VirtualBox的导入和导出功能,用来实现类似VM的“克隆”功能,但是发现导出后,再次导入的虚拟机,如果我选择了

“Reinitialize the MAC address of all network cards”(重新初始化所有网卡的MAC地址),

那么在导入完成后你会发现系统无法找到网卡eth0了

解决方法:

1
2
3
4
$cd /etc/udev/rules.d
$sudo mkdir backup
$sudo mv * backup
#sudo reboot

参考:

【转】跟我一起写udev规则(译)

VirtualBox虚拟机Ubuntu找不到网卡的解决方法

最终有用的方法是:

1.打开virtualbox,选择【设置】-【网络】将连接方式改为【Bridged Adapter】

2.在Ubuntu中,
运行sudo vi /etc/network/interfaces

修改如下:

1
2
3
4
5
6
7
8
9
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 172.17.1.178
netmask 255.255.0.0 #此处改成您的掩码
gateway 172.17.1.111 #此处改成您的网关
dns-search example.com
dns-nameservers 192.168.3.45 192.168.8.10

3.还是不行的话就执行下:

resolvconf –disable-updates

这个步骤是我后面google出来的综合结论,Ubuntu 12.04 在DNS这块有所改动导致的这一问题

参考:

How do I add changes to resolv.conf without them getting overwritten on reboot?

How do I set the dns search domain in Ubuntu 12.04?

在Windows下搞这些东西纯属娱乐,虽然上不了台面,但简单够用,这就足够了。

前言

0、本文的前提是你已经知道什么是Web.py并且知道怎么运行Web.py的代码。

1、本文是对Web.py Cookbook中Webpy + Nginx with FastCGI这一章节的实践操作指南

2、所以本文假设你已经在本机安装好了python和web.py并能正常运行

配置指南

1、下载并配置Nginx

1.1 Nginx专门有Windows的zip包,直接从官网下载即可:nginx/Windows-1.2.6

1.2 下载后解压到你喜欢的任何目录

1.3 打开nginx.conf进行配置,我的配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
worker_processes  1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;


events {
worker_connections 64;
}


http {
include mime.types;
default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] $request '
# '"$status" $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 10;

#gzip on;

server {
listen 80;
server_name localhost;

#root /cygdrive/D/html;
root D:/git/learning/HelloWebPy/HelloWorld;
index index.html index.htm;

charset utf-8;

#access_log logs/host.access.log main;

location = /favicon.ico {
rewrite ^/favicon.ico$ /static/favicon.ico break;
}

# 静态资源
location ~* ^.+/.(html|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$
{
expires 30d;
break;
}

location / {
# 指定 fastcgi 的主机和端口
fastcgi_pass 127.0.0.1:8051;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_pass_header Authorization;
fastcgi_intercept_errors off;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ /.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ /.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ //.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}

1.4 运行nginx.exe,并在浏览器输入127.0.0.1验证下nginx是否正常启动

2、下载并配置Flup

2.1 从Python官网的Flup页面下载最新的Flup,我下载的是flup 1.0.2

2.2 解压后执行setup.py install就好了(依赖setuptools

2.3 好了

3、启动web.py

Nginx已经启动了,Flup也已经安装好了,现在你需要的就是根据Nginx.conf中配置的fastcgi端口(我的配置文件中是8051),启动你的web.py:

index.py 8051 fastcgi

顺利的话,你已经在Windows上搭好了一个web.py的Nginx Web服务器,Have fun :)

参考文章

Windows下Nginx + flup + fastcgi + webpy 开发应用环境的设置

在windows上利用Nginx部署web.py

1. 环境准备

1.1 在Win8下要用x86的Windbg才能成功load起sos.dll,抓取Dump的工具也必须是x86的版本,否则就就会出现下面两种错误:

error: x64的Windbg无法成功load sos.dll

0:000> .load sos.dll
The call to LoadLibrary(sos.dll) failed, Win32 error 0n193
“%1 不是有效的 Win32 应用程序。”
Please check your debugger configuration and/or network access.

error: x64的TaskManager或者Procexp创建的Dump不支持SOS.dll,我最后成功的是用x86的Windbg 抓的

0:000> !DumpHeap -stat
SOS does not support the current target architecture.

1.2 Windbg

直接到微软下载就可以了:http://msdn.microsoft.com/en-US/windows/hardware/gg463009/

1.3 SOS.dll

文档中使用了SOS.dll (SOS Debugging Extension),使用之前需要先用下面的命令加载下sos.dll

1
.load <full path of sos.dll>

2. 遇到的其他错误

2.1 Failed to find runtime DLL (clr.dll), 0x80004005

0:000> .load sos.dll
0:000> !dumpheap -stat
Failed to find runtime DLL (clr.dll), 0x80004005
Extension commands need clr.dll in order to have something to do.

2.2 解决方案:

App必须是:Managed Windows Store Apps,所以对我们来说SOS.dll这个方向一开始就是错的,汗

2.3 参考:

Load SOS in WinDbg

使用WinDbg调试Silverlight中遇到“Failed to find runtime DLL (clr.dll), 0x80004005”问题的解决方法之一

3. 小结

非Managed的App无法使用这个方案,这对我们的应用就没有意义了,但是解决前面遇到的几个小问题的方法希望对其他朋友有所帮助。

4. 参考文档:

Diagnosing Memory Leaks in Managed Windows Store Apps

周一的平安夜,我们刚刚上了三天班……

自勉如下:

不要做包工头,要做大师兄;

平常心做事,不急不躁;

坚持看书,坚持实践;

Good luck, have fun :)

2000

有人说在Windows上Ruby是件很虐心的事情,这段时间实践了下,其实一点也不然,有了RubyInstaller,纯Ruby的学习找就是无障碍一步到位了。

当然闹心的事情还是有的 :)

1、如果你需要使用gem,那么真正虐心的事情来了:天朝的网络问题。

解决方案:

http://ruby.taobao.org/

按照首页上的指引操作就好了

2、公司代理问题(公司网络只能通过http代理来上网)

gem也是可以设置代理的,不过有个简单的方法是给系统变量添加一个http_proxy,这样在CMD中运行gem install就能直接使用代理来安装了 :)

1
2
set http_proxy=<http://proxy.yourdomain.com:8080>  

3、给IDE增加Debug功能

你需要执行下面这个命令:

gem install ruby-debug-base19x

如果你发现失败了?而且错误提示中提到了“DevKit”,那么你需要先安装、配置好DevKit。

从[http://rubyinstaller.org/downloads/ 这里]下载,解压,到解压出来的目录下执行:

ruby dk.rb init
ruby dk.rb review
ruby dk.rb install
搞定,DevKit就安装好了,可以再执行下这个命令行,运气不是很差的话你,你已经可以在IDE中Debug Ruby了
gem install ruby-debug-base19x

这里其实还有个更简便的方法:使用RailsInstaller

参考:

解决Rubygems被墙,GEM无法更新

CMD 和 Git 中的代理设置

Windows下安装DevKit

RubyInstaller和DevKit都可以从这里下载到:http://rubyinstaller.org/downloads/

引子:

这是一篇攻略,重点简述从深圳出发,经香港转机前往马来西亚旅游的交通、签证、语言等方面的注意事项。

1、我们的行程

2012年8月10号出发,包括搭飞机前后共11天。

深圳出发,在蛇口码头坐船去香港国际机场,搭亚洲航空飞机到吉隆坡,然后做大巴往返了下马六甲,再从吉隆坡打飞机去沙巴,最后又从沙巴搭飞机回吉隆坡,从吉隆坡回香港。

我们的行程安排的不是特别好,这里就不具体介绍了;

主要是我的工作时间不好安排,筹备的时间太短,机票和酒店都是半个月左右时决定去的时候才开始定,如果早点定的话能便宜不少。

2、签证

马来西亚可以落地签,不过去那人生地不熟的还是算了,另外我们要从香港搭飞机,所以肯定是要先签好签证;

马来西甲的签证很容易办,也不用什么抵押,找个旅行社帮忙办就不用自己去领事馆办,我们办的时候每人180RMB。

3、定机票和酒店

3.1 直接在www.qunar.com上搜索,会帮忙跳转到具体的外国网站;

3.2 我们全程4躺飞机都是亚航的,所以机票都是直接在亚航官网上预定的,信用卡支付

3.3 酒店也是调整之后我们主要选择在booking.com和agoda.com上面预定的,一样是信用卡支付

4、我们住的酒店

4.1 吉隆坡 The Royale Chulan Hotel

不知道为什么帮我们升级了房间,很豪华,住的很舒服;

就是交通不是很方便,离地铁站走路要15分钟(路稍微有点绕);

酒店一楼的自助餐是伊斯兰口味的,我们不小心尝试了下,完全吃不惯,而且很贵,慎入;

有免费WiFi。

4.2 马六甲 Hotal Hong

老板是一个华人,非常Nice~

酒店的位置在鸡场街的街尾,马六甲很小的,所以打的也不会花多少钱,如果提前和老板联系的话老板很可能会去车站接你;

离开的时候老板会开车送你去车站,我们原来觉得有点不好意思,不过老板真的很好,算是他们酒店的特色贴心服务 :)

酒店很便宜,所以条件肯定不能和吉隆坡的比,但是卫生整洁,有免费WiFi。

4.3 吉隆坡 Furama Bukit Bintang

酒店前台有个MM会讲中文;

酒店没有免费WiFi,马路对面的猪肚鸡可以搜索到免费Wifi;

酒店条件一般,离地铁站走路也是10几分钟,离华人街比较近,走路去Pudu Sentral 20多分钟吧。

4.4 沙巴 Gaya Centre Hotel

海边,靠近去沙比岛(Sapi Island)的码头,步行5分钟就到码头;

从机场打的到酒店30RM(RM是马币的意思,1RM 算成人民币差不多是 2RMB还要多一些,大概这么算,数学好的自己查下汇率);

性价比高的“廉价酒店”,大概就是国内如家的条件,有窗户可以看到海,但景观和条件自然是不能和香格里拉比;

酒店一楼大堂有免费WiFi和电脑可以上网。

4.5 吉隆坡 Traders Hotel

位置超赞,双子塔正旁边,房间落地窗完美双子塔景观;

算成人民币也是700多一晚,酒店顶楼有个酒吧;

双子塔边上,交通自然差不了,双子塔楼底下就是地铁站,走过去10分钟这样子(就在眼前但还是要走上一小段时间);

有免费WiFi。

5、语言

马来西亚的华人挺多的,但官方语言是马来语和英语,也就是说地铁站、汽车站、机场的工作人员说的一般都不是中文,这个要提前有点心理准备,基本的英语会话还是要有的,不然你就得盼啊盼,盼到一个会中文的帮你翻译。马来西亚的华人大概占了25%左右,时不时都会遇到一两个,但不是每时每刻都能遇到的 :)

沙巴的华人比较多,酒店、的士、饭馆会说中文的很多,中文基本可以畅通无阻,说白话的人更多。

6、亚洲航空和LCCT

廉价著称的亚洲航空,飞机上是没有免费食物的;

虽说不给带水和食物,但其实你自己带上放包里也没事;

不是国际航线,马来西亚航班安检的时候水是可以通过的;

其实飞机上的套餐也挺划算的,不像国内那么坑爹;

亚航每年都有特价机票活动,关注的话能优惠非常多;

LCCT真是我见过的最烂,最脏的机场,机场里面的麦当劳桌子上苍蝇乱飞……

本来这条是放在最后的,写到最后我决定调整下顺序。

7、经香港转机

从蛇口码头去香港机场的船是可以网上预定的,最好先在网上买好,我们当时差点错过,最后只能买头等舱的票过去;

买完票要检查下你的机票预定,最好提请就把登机牌打印好,不然打印机票预订的那个页面也可以;

坐船到香港机场后,通道出来的大厅就可以办理亚航的行李托运和登机牌;

从香港出发的时候机票是可以退税的,我们两个人的机票退了100多港币,刚好可以在机场里面吃个饭;

机场里有免费WiFi,吃饭可以刷卡,没有港币也没事。

8、吉隆坡

机场入境手续很简单,走出很破的机场通道,到了一个空调不要钱的大厅,什么表都不用填,一本签证过去盖个戳就搞定了;

入境后再拿行李,拿了行李过海关就出机场了;

出门就可以买去市区大大巴票,也可以直接走到巴士站再买票;

Sky Line和Star Bus价格都是一样的,服务也都差不多,到KL Sentral是10RM,Pudu Sentral 12RM,另外有一种自由下个点的是18RM就不要坐了,其实就是到市区后帮你转的士,你自己到了上面任意一个Sentral后转地铁就OK了,不差钱的话从机场直接打的回市区大概是75RM(那天我们刚好赶上他们的开斋节,全国告诉免费);

马来西亚是一个伊斯兰国家,女的面带头巾,虽然已经废除了一夫多妻制,但是街上还是能时不时看到一个男的带着两个老婆逛街的……

说这个主要是想表达:民俗习惯很不一样,要先做点功课。

吉隆坡有点脏乱差,城市建设和国内的一线城市是没法比的,我想了好久,觉得跟福州比较像……(不要打我)

但是交通比较发达,地铁也是好几条线,在市区内活动地铁绝对是首选;

打的比较贵,中短途大巴很便宜(机场、云顶、马六甲……);

去云顶玩的话最好早点起,去KL Sentral或者Pudu Sentral买套票过去,人多的话最好一到那里就把回程票给买了;

机场到市区的大巴也是到KL Sentral和Pudu Sentral这两个点的;

在吉隆坡玩的话KL Sentral和Pudu Sentral是非常重要的两个“交通要塞”,定酒店和安排行程最好能结合这两个车站中的一个,会方便很多。

9、马六甲

从吉隆坡去马六甲现在已经不能从Pudu Sentral坐车了,现在要统一去Bandar Tasik Selatan买票搭车(有地铁直达);

马六甲汽车站可以搭车到KL Sentral或者Pudu Sentral;

马六甲很小,但是很有历史的味道;

离新加坡很近,很多新加坡人过来度周末。

10、沙巴

从吉隆坡下飞机也是一样要入境,跟着队伍排队就好了,有签证的话什么都不用填,排队盖戳就OK了;

出门后门口打的就好啦,马拉西亚的的士比较规范,还是一样先在Counter交钱买的士票,出门再凭票排队打的;

还是沙巴休闲啊,没有吉隆坡的喧嚣,市区也比较小;

打的都是不打表的,先说好价钱,10几马币一般是;

华人比较多,语言畅通,华人饭馆等等众多;

几个华人夜市还不错,我们去吃的华兴比较有广东口味,价格也比较公道;

浮潜的三个岛(马穆迪岛、曼奴干岛和沙比岛)其实都差不多,如果想玩的轻松点的话完全可以只玩一个岛;

码头里面的买票的Counter其实都差不多,在码头那里可以租救生衣;

我们第一天去岛上的时候11点才从码头出发,导游建议我们只玩一个岛,但后面一下子就玩的差不多想换个岛,时间肯定是来得及的;

美人鱼岛的深潜确实不错,美不胜收,比靠近市区的三个岛要漂亮很多;

美人鱼岛我们是找到当地旅行社报的名,先坐车1个半小时左右,再做45分钟快艇才能到;

长鼻猴和萤火虫想去的话也可以去看看,休闲之旅,到了当地找个旅行社报名就好啦,每天都有团的。

小结:

从香港出发的机票要便宜很多;

马来西亚旅游比较厚道,价格贵不贵是一回事但都比较规范;

吉隆坡就算了,城市没什么好逛的,云顶的话去下澳门+香港肯定好过那里了;

马六甲是比较有味道的,但是专门去的话有点浪费,可以选择去新加坡的时候顺路去玩下;

沙巴是最休闲惬意的,适合度假,深潜比浮潜好玩很多~

这是一篇产品理念的小思考。

引子:

1
2
八卦消息说天**广*场的画像要撤下,……运回湖南…… bla bla bla…… 
从某种意义上说,这是仪式上的走下神台。

思考:

走下神坛很难?可为什么要走下神坛呢?

大团队经常会说的一句话是:真羡慕你们小团队,船大了不好调头?

这其实就是一种自命不凡的神化,为何不放下身段,回到空杯心态?

所谓的用户和所谓的级别其实都是自己或者别人“观察”出来的一个框框条条,不破不立。