Jan 12

默认的Chrome浏览器非常弱智, 弱智到不可用. 举两点:

  • 关闭最后一个标签时, Chrome程序就退出了 – 而且没有选项可以配置.
  • 和IE共用同一个代理(Proxy)设置, Google的人技术会差到不能开发一个HTTP库, 而要用操作系统自带的吗?!.

为了解决这两个问题, 必须安装两个插件:

Written by ideawu at 2012-01-12 22:55:11 | tags: ,

Jan 04
# encoding=UTF-8
import logging
import logging.config

logging.addLevelName(5, 'TRACE')
logging.addLevelName(30, 'WARN')
logging.addLevelName(50, 'FATAL')

logging.config.fileConfig('my.conf')
logger = logging.getLogger('root')

my.conf:

[loggers]
keys=root

[handlers]
keys=consoleHandler, fileHandler

[formatters]
keys=simpleFormatter

[logger_root]
#level=ERROR
level=DEBUG
handlers=consoleHandler, fileHandler

[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)

[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=simpleFormatter
args=('a.log', 'a')

[formatter_simpleFormatter]
#format=%(asctime)s [%(levelname)-5s] %(name)s %(message)s
format=%(asctime)s [%(levelname)-5s] %(message)s
#datefmt= %Y-%m-%d %H:%M:%S
datefmt=

Written by ideawu at 2012-01-04 17:10:57

Dec 01

事情是这样的,

那是1998年,互联网经济爆发的年代。我22岁,是一名自由职业的程序员,在纽约从事网站开发。第一个客户我收了他1400美元,第二个客户给了我5400美元。之后的一笔收入是2万4千美元。我清清楚楚的记得这些数字——这是我当时见过的最大面额的支票。

然后我写了一份价值34万美元的方案来帮助一个在线零售商改进他们的网站。当时我和5个全职的程序员一起干(全在我家工作),这也是不小的开销。客户同意了这个方案,但他们要求我签一份合同——一切看来都很正常。

没问题。我把合同发给了我的律师。她做了些修改,然后发给了客户。然后客户又做了些修改,发回我的律师。这样来来回回,大概进行了一个月。我毫无经验,以为做生意就是这样。

不堪我合同条文上的折腾,客户最终放弃了我,采用了其他人的方案。

该死。

但是我很幸运,另外一个大客户来敲门了。一个世界500强的大公司需要一个电子商务网站。我写了一个400万美元的方案(哇塞,这互联网经济繁荣的日子…)。客户接受了,并给了我一份合同让我签署。

这回,我没有把它发给我的律师,而是发给了我的老爸——他是一个老企业家。

“只管签,”老爸冷静的说。

Continue reading »

Written by ideawu at 2011-12-01 14:16:37

Oct 12

重用一个CURL句柄时, 发现curl_setopt($ch, CURLOPT_HTTPGET, TRUE) 不起作用. 期望在调用这条语句之后发起请求, 应该发送的是GET, 但看服务器log, 却使用了和前一次请求相同的HTTP方法.

PHP脚本:

<?php
$url = 'http://www.ideawu.net/';

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_exec($ch);

curl_setopt($ch, CURLOPT_HTTPGET, true); // 错误! BUG
curl_exec($ch);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); // 正确
curl_exec($ch);
?>

web server log:

124.127.130.50 "2011-10-12 18:55:09" "POST / HTTP/1.1" 200 3516 "-" www.ideawu.net
124.127.130.50 "2011-10-12 18:55:09" "POST / HTTP/1.1" 200 3516 "-" www.ideawu.net
124.127.130.50 "2011-10-12 18:55:09" "GET / HTTP/1.1" 200 3516 "-" www.ideawu.net

这个BUG目前还没找到相关的资料.

补充: 不仅仅是CURLOPT_HTTPGET, CURLOPT_POST也有同样的问题. 所以, 结论是: 只有CURLOPT_CUSTOMREQUEST才是正确的方法.

Written by ideawu at 2011-10-12 18:55:51

Sep 30

做个笔记:

SHELL循环:

1. while
i=0; while [ $i -lt 10 ]; do echo $i; i=$(($i+1)); done

2. for
for ((i=1; i<=10; i++)); do echo $i; done

3. while
cat file.txt | while read line; do echo $line; done
while read line; do echo $line; done < file.txt

Written by ideawu at 2011-09-30 12:14:11

Sep 28

为了应对亚太地区快速增长的需求, Linode 开始把机房建在亚洲了! 第一个 Linode 亚洲机房选择在日本东京.

我测了下, 速度比原来在美国加州快多了, 应该主要得益于网络延时的减少. 所以, 我立即开了张 Support Ticket 将我的 VPS 迁到了日本. 迁完之后, 访问速度飞快! 和原来在国内某机房没有感觉上的区别.

大家可以反馈下你访问的速度是否有提升?

注: Linode VPS 是完整的 VPS, 一年的费用在人民币一千五左右, 可以月付, 建议选择年付(可优惠10%). 看看去…

Written by ideawu at 2011-09-28 00:18:54