2008年11月27日星期四

一个冲动的青年去了


2008年11月26日

结局一点都不意外,可事件的经过描述实在让人脑残,摘录如下(媒体):

经法院查明,2007年10月5日,杨.X骑一辆无证无牌的自行车途经上海市闸北区芷江西路、普善路口时,受到上海市闸北公安分局芷江西路派出所巡逻民警盘 查。由于杨.X不配合,被民警带至派出所询问,以查明其所骑自行车来源。此后,杨.X对公安民警的盘查不满,多次向公安机关投诉并要求赔偿,闸北公安分局派员 对杨.X进行了解释、说明和劝导。而杨.X因无理要求未获满足,遂起意行凶报复。

关键点没有任何披露:杨.X的要求、有没有受到不公正待遇或伤害,就这样走了,没有给普罗大众任何思考,于是就有了不合乎常理的描述。我宁愿相信传闻是真的,那样起码在理解上就非常容易。

再看sina的页面,该页面可以说是咋现sina,很快就“沉”了,没有任何留言,所有的留言统统删除,看看qq新闻上的几千条留言你就知道多么不正常(现在看似乎也删除了),不信你去看看:
http://news.sina.com.cn/c/2008-11-26/110016728944.shtml
裁定书:
http://news.qq.com/a/20081020/002317.htm

Mark一下这个特殊的日子。

2008年11月16日星期日

nginx+fastcgi+django的一次尝试

早有耳闻nginx,现在试用一下。我的机器ip为10.0.40.83,就在一台机器上测试,多台机器也是一样。

1. 安装nginx
在公司的机器是win,所以就在win下安装nginx。若果你在linux下安装过如lighttpd,过程是一样的,并没有太多的差异。OS因素是次要,实际生产环境要使用linux。
到http://nginx.net/,下载nginx-0.6.32-win32-setup.exe。后面......

2. 安装django1.0以及flup1.0
下载这2个软件,找到setup.py脚本,python setup.py install或python setup.py即可安装。当然要先要安装python,并配置好python环境变量。

3.创建工程
在D:\software\django\sites\下创建一个django工程mysite,如:pwd/django-admin.py startproject mysite
在mysite里添加一个py文件first.py

from django.http import HttpResponse
def index(request):
return HttpResponse('first django page .....')

修改url.py,在patterns里添加:
(r'^mysite/$','mysite.first.index')

4. 配置nginx
在nginx安装目录下,一般在C:\nginx\conf下,修改nginx.conf文件,关键几点如下:

worker_processes 2;#开2个nginx进程,在任务管理器可以看到这2个子进程和一个nginx主进程,一般按CPU数配置,我的习惯是2*CPU(核)数
events {
worker_connections 64;#每个进程链接队列长度,可按实际设置
}

http {
... #省略其它配置

#和后端的2个fastcgi 服务通讯,注意fastcgi ,后面用到,weight是权重
upstream fastcgi {
server 10.0.40.83:8051 weight=1;
server 10.0.40.83:8052 weight=1;
}

server {
listen 80;
server_name localhost;

...#省略其它配置

location / {
# 指定 fastcgi 的主机和端口,这里的fastcgi指的是上面的upstream
fastcgi_pass fastcgi;
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;
}

...#省略其它配置
}

...#省略其它内容

}

4. 运行
运行nginx(administrator用户),在开始菜单里。
运行2个fastcgi服务,开2个cmd窗口,在mysite目录下:
python manage.py runfcgi host=10.0.40.83 port=8051 method=threaded daemonize=false
python manage.py runfcgi host=10.0.40.83 port=8052 method=threaded daemonize=false

http://10.0.40.83/或http://127.0.0.1/或http://localhost/可以看到输出结果。

5. 破坏尝试
开2个fastcgi的cmd窗口,终止其中一个访问看看,其实没有任何影响。
再把运行的停止,停止的启动看看,还是能访问。
若2个都终止,发现不能访问。
在测试过程中注意C:\nginx\logs下的log的输出信息。


nginx没有多少文档,只能看一些只言片语。有几个比较不错的参考文章。
张宴的一个ppt: 使用Nginx轻松实现开源负载均衡,其blog地址为:http://blog.s135.com/index.php
http://www.ibm.com/developerworks/cn/web/wa-lo-nginx/
http://nginx.net/
http://sysoev.ru/en/
其它的在网上google吧,总会有点的。

2008年11月13日星期四

在baidu和google上搜索java

听到几个朋友议论在baidu和google上搜索java的结果,我也跟着试试,结果如下(截图为证):
baidu


google

看到区别了吗?再看到一个新闻,看来不是空穴来风:http://tech.sina.com.cn/d/2008-11-13/10322576886.shtml

做搜索要公正就如同做人要厚道,baidu太不厚道。
baidu人品如下:
1.有钱能改变搜索结果
2.混淆广告和信息内容,误导用户,误导广告商:带来虚假繁荣,骗取点击费用

2008年11月4日星期二

python访问mysql

import MySQLdb

#host,user,password,dbname
cxn = MySQLdb.connect('10.0.32.83','devuser','devuser1234','supplier_site')
cur = cxn.cursor()
cur.execute('select * from findex limit 0,100')
for rs in cur.fetchall():
print rs

安装MySQLdb模块,参看:

在linux下安装MySQLdb

2008年10月29日星期三

有啊!来了

打了一阵的口水仗,“有啊”来了,正式和阿里巴巴拉开阵势,是骡子是马都要遛遛。“有啊” 对 “淘宝”,“百付宝”对“支付宝”,相信后面还有对阿里巴巴的“B2B”和"B2C"的,对了还有个"hi"对"旺旺"。阿里取名一向很土,败坏网络整体的取名风气,“宝”、“旺”、“财”的乱飞。

阿里巴巴一怒之下终止在百度的投放广告的业务,我看阿里巴巴也没有必要在百度上投放广告,很快阿里巴巴的搜索引擎也要诞生,这回来了个掉个,是“yahoo”(阿里巴巴应该不会丢下yahoo这块金子招牌)对决“百度”。

战略严重叠,国人就是喜欢扎堆,哪有钱往哪扎。哦!仔细看看似乎错了,阿里巴巴和百度都是欧美企业,不信你查查。说个地道的公司---海尔,房地产火了,它眼红了,搞起了房地产,怪你没选好时辰,和经济危机干上了,现在不知道在哪个昏暗角落掉泪。

看看“有啊”长啥样。

和那个淘宝宝很像吧,复制是最廉价的。再看看这个活宝“百付宝”。


相信从支付宝转过来直接就是熟手。

马云不是说打着望远镜也看不到对手吗?!没感觉到周彦宏的37°?!周前胸贴着你的后背呢!那亲呼劲......!

2008年10月26日星期日

黑屏!该来的还是来了

黑屏事件已经有几天了,可以说是闹的满城风雨。

自从咱百姓用上Windows起,D版和Z版的纷扰就从来没消停过。在电脑城至今还是堂而皇之的给用户无条件的安装D版。在我身边,至今没见过个人买过Z版(我已经撤离了windows,惭愧,呵呵),没有负疚感,还口口声声说烂。

看了一片报导,中国计算机学会声明反对微软黑屏,实在让人诧异:
http://tech.sina.com.cn/it/2008-10-27/09422536145.shtml
毕竟是有知识产权的商品,MS在此付出和投入的可以说比任何OS都大,收费是合理的,就是高了点,物价局估计还不知道怎么去评估软件价格。作为一个协会还打上中国二字,发表此申明非常不妥,MS也没有把事情做绝,只是黑屏几分钟,警示而已。至于垄断不垄断的都是自己造成的,自己习惯不好还赖别人。

该来的还是来了!不管你反对还是赞成。I support MS.

2008年10月22日星期三

lighttpd & django搭建测试环境

1. 软件环境
我的机器ip为192.168.1.183。
在此机器上安装了lighttpd1.4.20、python2.5、以及django1.0、flu1.0。
注:若在安装lighttpd时缺少依赖包,直接使用sudo apt-get install lighttpd来安装试试。其它可以源码编译安装。

2.创建工程
在/work/sites下创建一个django工程mysite,如:pwd/django-admin.py startproject mysite
在mysite里添加一个py文件first.py

from django.http import HttpResponse
def index(request):
return HttpResponse('first django page .....')

修改url.py,在patterns里添加:
(r'^mysite/$','mysite.first.index')


3.在mysite下添加一个文件mysite.cgi
#!/usr/bin/python
import sys,os
sys.path.inert(0, "/work/sites/mysite")
os.environ['DJANGO_SETTING_MODULE'] = 'setting'

from django.core.servers.fastcgi import runfastcgi
runfastcgi(method='threaded', daemonize='fase', socket='/work/sites/mysite/django.sock')


4.配置lighty
server.modules= ("mod_rewrite","mod_redirect","mod_alias","mod_access","mod_fastcgi","mod_accesslog")

#添加如下信息(采用load balance),采用tcp方式通讯:
$HTTP["remoteip"] == "192.168.1.183"{
server.document-root = "/work/sites/mysite/"
fastcgi.server = (
"/mysite.fcgi" => (
("host" => "127.0.0.1",
"port" => 8100,
#"socket" => "/work/sites/mysite/django.sock",
"check-local" => "disable"),
("host" => "192.168.1.183",
"port" => 8101,
"check-local" => "disable"),
),
)

alias.url = (
"/media/" => "/work/sites/mysite/media/",
)

url.rewrite-once = (
"^(/media.*)$" => "$1",
"^/favicon.ico$" => "/media/favicon.ico",
"^(/.*)$" => "/mysite.fcgi$1",
)
}

启动lighty

5.启动2个fastcgi服务(注意host区别,在前端分发时会匹配)
sudo python manage.py runfcgi host=127.0.0.1 port=8100 method=threaded
sudo python manage.py runfcgi host=192.168.1.183 port=8101 method=threaded

6.访问
http://192.168.1.183/mysite
页面输出为:first django page .....

可观察到请求被正常分发到127.0.0.1:8100和192.168.1.183:8101上(不同的fastcgi server)。