2008年11月27日星期四

呵呵,真是人品问题

今天公司专门开会强调注意防范,注意病毒.想想我自己的电脑已经一年多没有装杀
毒软件了,晚上回家装了一个,整个硬盘检查了一遍,呵呵,还真是一点毒没有.恩,很
满意,很满意啊~~~

二维数组

Exported from Notepad++
#include <vector>
#include <iostream>
#include <cstdlib>
#include <cstdio>


char
** two_d_array(int m, int n);

int
main(int argc, char **argv){
int index = 0;
int
** aaa;
aaa = (int**)two_d_array(3,12);
for(; index < 3; index++)
strcpy((char *)aaa[index], "hello");
for(index = 0; index < 3; ++index)
std::cout<<(char *)aaa[index]<<std::endl;
std::cout<<(char)aaa[1][1]<<std::endl;
free(aaa);
return 0;
}

char
** two_d_array(int m, int n){
int i;
char ** planar, *array;
if(! (m && n)) return NULL;
planar = (char **)calloc(1, m * sizeof(planar) + m * n);
array = (char *)(planar + m);
for(i = 0; i < m; i++)
planar[i] = array + n * i;
return planar;
}

2008年10月7日星期二

keep-alive

HTTP header中的keep-alive字段
这个字段的意思是在一个TCP连接中处理多个HTTP的请求和回应.
不同于一般的对每个请求/回应都建立单独的TCP连接,keep-alive字段指明重用TCP连接.这种方法能有效的改善HTTP服务器的性能.
因为减少了TCP握手的过程,这种方法能减少网络流量和降低并发请求的延迟.而且长时间的连接也能让TCP层有时间根据网络状况自动调整.
而对于HTTPS或者是HTTP+SSL的连接,这种方法有更能减少建立安全连接的次数.
在HTTP/1.1中,对任何连接,keep-alive是默认选项.也就是说,除非特别指明,这个选项都是打开的.

由于TCP是一个面向流的协议,为了重用一个已有的连接,HTTP必须要能够区分上一个回应的终点和下一个请求的起点.也就是要求连接上的所有信息都包含自己的长度.也就是Content-Length字段.

2008年9月27日星期六

转帖

我们就是体制   连岳 @ 2008-9-20

毒奶粉事件发生到现在,听得最多的一句话就是:这是体制的问题。
在层出不穷的悲剧里,听得最多的一句话就是:这是体制的问题。
是不是体制的问题?是,这绝对是体制的问题。
从SARS到现在的毒奶,处理方法是一样的:先瞒、瞒不了骗、骗不了就承认一部分,然后撤几个官员了事,最后宣传包装成一件功劳
如果这次毒奶粉是传染病毒,估计全球都得死伤惨重——可谁能保证下一次不是病毒呢?


是的,如果我们有言论自由,如果我们有选择及罢免政府的自由,如果我们有强大且独立的媒体,如果我们有游行示威的自由,如果我们有免于恐惧的自由……是的,这样的体制才能保护我们。
我们有没有这样体制?没有。
所以可以很自然地说出那句话:这是体制的问题。李长江下了,不过换个张长江。什锦八宝饭馊了,不过上碗平强汤。
所以,算了吧。

可是,且慢,你忘了,我们自己就是体制的一部分。
这体制的存在,有我们的不作为。
我们得有所作为。
这作为不是鼓吹暴力,不是以暴易暴。暴力只会带来一个更坏的体制。
这作为不是希望他人去牺牲,牺牲永远只是个人选项,一个人永远没有资格去鼓动他人牺牲。
这作为是忍耐地慢慢做一件事
让李长江辞职,这是体制进了一小步;张长江还不行,让张长江辞职,这又是体制进了一小步。他换一个,我们盯一个,最后就是质检体制的进步。
他不让我们在媒体里说,我们网络上说;他不让我们在网络上说,我们在嘴上说;我们不停地议论,嘲讽他的谎言,最后就是言论体制的进步。
那些拒不认错的企业,那些强词夺理的企业,我们记住它们的名字,永不消费它们的产品,最后就是企业文化的进步。
我们呼吁杨佳应该得到公平、公正、公开的审判;接下来,我们呼吁田文华或者李长江应该得到公平、公正、公开的审判,最后就是法制的进步。
并不需要牺牲,并不需要成为意见领袖,并不需要多么大的权力,只要你有选择权,你就能让体制变坏,或者变好

我们能改良体制,我们能选择体制,我们就是体制。
到了我们多过他们的那一天,体制就变了。
"这都是体制的问题",不要用这么重的虚拟铁锤砸掉你的自信,砸掉他人的信心。
你说"算了,没用的",就等于投了你憎恨的体制一票。

我们享受生活,我们和美好的人呆在一起,我们保持怀疑,我们批评,我们不合作,我们能快乐地改变这个体制,我们就是体制。

如果需要一百年,我们就花一百年。如果需要一千年,我们就花一千年。

今天居然错在这个上面了,小本子记下来

cout << *iter++ << endl;
//=====================
cout << *iter << endl;
++iter;
这两个才是等价的

2008年9月26日星期五

美国的房价

http://chinese.wsj.com/gb/20080926/pal113913.asp?source=rss
美国的房子真便宜,我们现在过得叫什么日子啊

2008年9月18日星期四

到底牛奶里面加了什么东西?

刚才在网上简单查了一下,"三聚氰胺"在九月初的价格是11000RMB/吨,而差不多时间的原奶收购价格是3500RMB/吨到2500RMB/吨,原来奶农都是傻逼啊

2008年8月13日星期三

mingw下使用boost::thread

今天下了一个boost,想试试它的thread库.折腾了一个下午,用mingw把thread编译出来了.记下来.
先要设置PATH路径,bjam只能通过这个路径找到g++
在/tools/jam/src下调用
build.bat mingw e:\ty\mingw
mingw 是指定toolset
e:\ty\mingw 是指定mingw的位置
(本来手册上说的是 --toolset=mingw --toolset-root="e:\ty\mingw" 但是我实际用的时候会出错,会把 --toolset-root="e:\ty\mingw" 这一整句都当作mingw的路径,结果就是找不到mingw.)
然后再 tools\jam\src\bin.ntx86\ 下调用编译好的 bjam.exe
bjam.exe --build-dir="e:\tmp" --toolset=gcc --with-thread stage
这个地方要用 gcc 做参数,用 mingw 不行,stage不知道是什么版本,我没查. --with-thread 是只编译thread库.
这就是编译的过程.
使用这个库如下
g++ -Wall boost.thread.test.cpp -o thread.test.exe -Ie:\ty\boost_1_35_0\ -Le:\ty\lib -lthread
用这个命令需要把上面编译的 boost_thread-mgw34-mt-1_35.lib 拷到 e:\ty\lib 文件夹下面,改名为 thread.lib 这个和Linux下不一样,不用改成libthread.
这样就应该能够编译出来了.
生成的exe运行的时候需要编译thread库是生成的 boost_thread-mgw34-mt-1_35.dll 文件在exe的当前文件夹中.

boost.thread.test.cpp的内容可以这样:
#include <boost/thread/thread.hpp>
#include <iostream>
void hello()
{
    std::cout << "Hello world, I'm a thread!" << std::endl;
}
int main(void)
{
    boost::thread thrd(&hello);
    thrd.join();
}