大怪兽

嘿嘿嘿,嘿嘿嘿
随笔 - 31, 评论 - 284, 引用 - 174

导航

标签

每月存档

最新留言

  • 一点声音也没有
    啊啊
    by 大卫(匿名) on 2008/2/16 11:58:00
  • 回复: 0的突破
    wda
    by 123(匿名) on 2007/12/28 9:50:00
  • 0的突破
    GFJGHF AFJKAGHKFGHFJKGFJGJKGJGFJGASJKFGASHFGJAGFAGSFJKGJKFGJKASGFJASKASKASKASKASKASKASKASKASKASKASKA...
    by jkl(匿名) on 2007/12/9 20:38:00
  • 0的突破
    GFJGHF AFJKAGHKFGHFJKGFJGJKGJGFJGASJKFGASHFGJAGFAGSFJKGJKFGJKASGFJASKASKASKASKASKASKASKASKASKASKASKA...
    by jkl(匿名) on 2007/12/9 20:38:00
  • 0的突破
    GFJGHF AFJKAGHKFGHFJKGFJGJKGJGFJGASJKFGASHFGJAGFAGSFJKGJKFGJKASGFJASKASKASKASKASKASKASKASKASKASKASKA...
    by jkl(匿名) on 2007/12/9 20:38:00
  • 0的突破
    GFJGHF AFJKAGHKFGHFJKGFJGJKGJGFJGASJKFGASHFGJAGFAGSFJKGJKFGJKASGFJASKASKASKASKASKASKASKASKASKASKASKA...
    by jkl(匿名) on 2007/12/9 20:38:00
  • 回复: 病例:不理解C/C++的函数指针
    有知道的兄弟麻烦 发个邮件给我,谢谢了阿,郁闷死了 <br>
    by niu-xingtianxia@163.com(匿名) on 2007/11/8 16:36:00
  • 感觉还是不对头
    #include &quot;stdafx.h&quot; <br> <br>typedef void (*p_f)(); <br>void p...
    by niu-xingtianxia@163.com(匿名) on 2007/11/8 16:34:00
  • 病例:不理解C/C 的函数指针
    病人:医生,我折腾了许久,无法理解函数指针。 <br>中医:能意识到自己不理解,不错。那么你说说你目前的理解。函数指针是什么? <br>病人:函数指针是指向函数的指针。 <...
    by qiqi5521(匿名) on 2007/7/31 13:10:00
  • 回复: 高级语言高级起来还真是高级
    一头雾水………………………………
    by 小脑袋(匿名) on 2007/5/15 9:16:00
  • 回复: 为他人着想
    AHQGWGSVDAHWGEHDASFDHERUIFGURDFVUYRDGFVKUTY45HTGRYVDFS
    by mSGY(匿名) on 2007/4/27 21:30:00
  • 回复: 为他人着想
    124gy3wtr2
    by m(匿名) on 2007/4/27 21:29:00
  • 回复: 发现一个超强网站
    (1)1980年英國的一個叫約翰?西爾的人發現,把一個圓盤形的電容器(正極在中心,負極在邊沿)充電至10萬伏時,整個電容器會快速旋轉並飛向空中,這就是一直讓人莫明其妙的“懸浮盤”。 實驗裝置是強負電場...
    by 彭中葵(匿名) on 2007/4/13 20:00:00
  • 回复: 发现一个超强网站
    要研发一种自动力发动机不用任何外力任何燃料  想没想过如果地球没引力还能有摩擦力吗,地球 有引力也有浮力.把它们连一起 利用起来能有相生相克.动力就有了
    by 彭中葵(匿名) on 2007/4/13 19:52:00
  • 回复: 发现一个超强网站
    我也在做这种自动力发动机不用任何外力任何燃料 我很想给做成希望能得到帮助
    by 彭中葵(匿名) on 2007/4/13 19:44:00

广告

【第1页/共3页,35条】
首页
前页
1
2004年11月07日

刚瞄到电视上,武汉有个冯老先生,到法庭告MS 拼音出错别字侵犯了他的商业秘密,

结果庭外调解MS付了他1万。

呵呵,真是有创意,不服不行。

看来以后造笔的也要留神了,要是漏水让人写坏字,没准就侵犯了他人的商业秘密,

要赔钱的咯。

 

 

 

 

posted on 2004-11-07 20:02:00 by BigMonster  评论(28) 阅读(4215)

 
2004年09月14日

这几个月来在单位里,又当爹又当妈,忙得一塌糊涂,很久没有更新了。

想想这一年来,作为MVP,除了参加校园行讲了两座之外,就是到处骗吃骗喝,基本上没有学过雷锋做过好事,自问们心有愧,也就没有申请连任MVP,好在作为MVP最大的收益--认识朋友--已经到手了,嘿嘿,呵呵。

我这么说不会被赶出博课堂吧? :)

posted on 2004-09-14 11:44:00 by BigMonster  评论(22) 阅读(3682)

 
2004年06月28日

 

.net语言中的debug功能,真是令人咋舌。
"编辑后继续运行","拖动程序计数器(program counter)"等等。
还得我只能对每一个新来的程序员再三强调,禁止使用上述功能。
平白无故给我添了很多工作,真是世风日下人心不古。

不过这些倒还可以忍,问题是传统c/c++开发环境中的"数据断点"功能没了!
我承认一个东西沦落到要动用"数据断点"的地步,已经是不灵了,问提出在前面。
可现实是,大工程(尤其是接手的项目)中,往往有人抱怨"我这个变量被人改掉了!"
这个时候该怎么办哩?

 

posted on 2004-06-28 17:20:00 by BigMonster  评论(16) 阅读(4509)

 
2004年06月04日

进一步开展定段工作

林黛玉同学的段位定下来之后,定段工作今后的开展方向就提上了我们的议事日程。

受十一段和大都督鸟两位同学的启发和委托,
我来推动一下围棋相关软件的定段工作。

1。TOM对弈系统 -- 6D
优点: 功能全,有一定难度,稳定性好。
缺点:
作为很多人上线的系统,他"分布"处理能力不够。
比如,大厅上限2500人,这就很弱。
现状是搞了几个大厅,万军人满为患,其他的稀稀拉拉,找下棋的都找不到。
不同大厅的人,不能进入同一个游戏,更是弱。

本质上,他是大厅和游戏服务器不分的做法,很业余。
[i]
相比之下,diablo,对外1个大厅(realm),每个都能上几万人;
而diablo的游戏服务器不是realm服务器,一个realm背后准备了有N个游戏服务器,对用户是透明的。
用户就感觉到一个realm里面那么多人都可以在一起玩。
这就是职业水平的系统了。
[/i]

综上,TOM对弈系统定为6D.

2。新郎对弈系统 -- 4D
功能和实现难度和TOM对弈系统类似,没有发现超过TOM的地方,这就注定他不可能超过6D。
而新郎对弈系统稳定性明显不如TOM,这是基本功的问题了。
就好比一个棋手,他棋感,大局观,官子方面和6D差不多,但是死活对杀方面差了一截,两下对比,
结果可想而知,只能给4D。

3。清风对弈系统 -- 面6D
总体和TOM类似,但是功能少了点,所以是面6。

4。阿呆大师的multigo --5D
功能强,有一定难度,非常稳定。可以说局部上无可挑剔,相当于发阳论的级别。
无奈整体只是一个小小桌面工具,不能体现阿呆大师的实力,5D。

5。TOM社区 -- 4D
功能强,性能高,TOM秀创意好。
不过整体只是一个低难度web应用,4D差不多了。

贴子出处

posted on 2004-06-04 16:34:00 by BigMonster  评论(22) 阅读(3748)

 
2004年05月24日

参加了个MS技术校园行活动,去母校和交大吹了2通。

居然收到了华师大MS俱乐部的感谢信,呵呵,生平首度,

感觉像小时候听说得好人好事,某某捡了钱包交换失主之后发生的事 笑脸

 

posted on 2004-05-24 20:01:00 by BigMonster  评论(14) 阅读(12032)

 
2004年04月09日

彭大虾文章 中,提出了一个有趣的预言--“C# designers can come up with a better syntax ”,
那么到底怎么个better法呢?
坐等结果没劲,我来斗胆猜一猜,若是猜不中,就当是搞笑一把为大家献丑。 笑脸


我猜测:
1,还是 traits的路子。没办法,模般特例化/traits 的概念确确实实摆在那里,绕不开的。
2,提供比C++ "better"的traits。
  比如:
 template <typename T> class TMD {...};
这里,C++语言本身提供的 特例化方案(我杜撰的词,不知道该怎么说),只能告诉编译器T是否是一个指针,
大致这样
template <typename T> class TMD<*T> {...};  //具体语法可能有出入,毕竟我不是写 xTL 的:)
(这里x = S,A,W ...呵呵)

如果你想告诉编译器更多的类型信息,比如"T是一个类,不过你可以用memcpy来复制他"之类,
对不起,请你自己写相应的traits。这可就苦了那些 xTL的大虾闷喽,随便哪一个STL容器背后都有无数traits呦。

还好,.net语言情况没有C++那么复杂,我大胆预测,
范型化.net语言提供两个"天生" 特例化方案,一个代表值类型另一个代表引用类型,就可以应付大部分xTL的要求。

比如
template <typename T> class TMD< 值类型 T> {...}
告诉编译器T是 int ,char 之类的东西,意味着BOX地不要,要比较就memcmp,要复制就memcpy...
而 template <typename T> class TMD< 引用类型 T> {...}
则诉编译器T是 object 之类的东西。

于是,彭大虾的那些令人望而生畏IComparer<T>之类,就可以休息了,
这  syntax 也就 better了,呵呵。

 

 

posted on 2004-04-09 16:20:00 by BigMonster  评论(16) 阅读(6179)

 
2004年03月31日

粒子随笔    native event简介  介绍了很有意思的一个 MS对C++的扩展--事件。

文中提到的 http://lamoo.s53.xrea.com/diary/diary2003a.html
这个地方很不错。从那里,我还跳到了一个讲解虚基类机制的地方,
搞懂了一些事情。 

我一直认为虚基类是通过在vftbl里面加一个特殊的entry
--比如 vftbl[-1] 的位置放一个"求基类实例地址"的函数指针-- 来实现的。
现在才知道,原来vc为了 虚基类,专门搞了另一个 vtbl,
专门放"求基类实例地址"的函数指针。

 

在有虚函数的情况下,vc的做法,比我的假说,
明显地每个基类多用4字节(一个指针的大小)。

为什么VC要付出这样的代价,不可能是做VC的人没想到我的办法,
一定是我的办法里面带有不能克服的缺陷,使得他们没法采用。
那么,那个缺陷是什么?我又得思考了。。。。

posted on 2004-03-31 10:39:00 by BigMonster  评论(8) 阅读(4079)

 
2004年03月12日

 

这几天在看国内拍的天龙八部,别笑我俗,还蛮好看的。
和其他金庸剧相比,情节乱改得少,外景多,武打动作悦目,服饰多彩,而且PPMM很不少。 ^^
贯穿天龙八部的一条主线,是乔峰的悲剧。他被那么多"好人"冤枉,还亲手送走了阿朱,
世间伤心之事,莫过于此。

为什么?谁能告诉乔峰和我们,这一些都是为什么?

原因之中,民族矛盾有之,机缘不巧有之,恶人作祟有之,等等。
而我,站在一个职业程序员的角度,认为导致悲剧的据定性因素,
是包括乔峰在内的大批人物,说话乃至下结论时不讲证据。

凭什么说非我族类其心就必异?
凭什么说乔峰就是一系列命案的凶手?
乔峰凭什么断定段正淳是带头大哥?

到底有什么证据,所有情况都考虑/考察了吗?

当然,我也知道那个时代没有讲证据的条件,
就是在今天,现代意义的法庭,也只有少数国家才有。
可是另一方面,有了条件,也不是人人都愿意讲证据的。

比如,国内大半的程序员,在工作时,即使条件具备仍然是不讲证据的。
当我指着屏幕上一个输出结果,问当事人,那个结果对不对的时候,
他/她会毫不犹豫地说"对的呀"。
然后,我接问,"这个数据是从哪些源头来的,中间计算过程是怎么样的,指出来我看看"。
他/她就会摇摇头"不是很清楚"云云。
靠!那他之前那句"对的呀",证据何在?

有意思的是,不愿意造数据,手工计算核对数据的人,
往往很愿意"学习新技术",认为那些"有用"。

我就不懂了,无论用什么技术,要是不能严格保证自己的程序是正确的,意义何在?
我看,这样不讲证据就下结论的人,学什么技术都没用,都不能达到职业水平;
放到宋辽战争年间,也许就是乔峰悲剧的参与制造者。

工作中的一点感想,有一说一。

 

posted on 2004-03-12 16:37:00 by BigMonster  评论(24) 阅读(7762)

 
2004年03月10日

 

  程序员初哥的一个特征是,只顾自己写代码,从不考虑别人是否能看懂他的代码,
写出了除了他自己没人能懂的程序(其实可以写得人人都懂)还洋洋自得。
  更一般地来看,不仅仅是程序、文档,说话、写文章、做事,样样都该为他人着想。
  比如在这个场所发帖子,由于每一个帖子都会被刊登在"头版"上,
客观上每一个帖子都会被所有来访者看到。那么,就得想想别人是否愿意看自己的东西了。
  我私下里和一些朋友谈到文章风格的时候,发现大家的好恶还是很有一些共同点的。
对于过于专业/局部而又不带出自己观点的东西,没有人愿意看,比如
看到MSDN里面一篇文章很好,原样帖出来;
自己在某平台用某语言写了一段代码,原样帖出来;
看到一个软件蛮喜欢的,界面截图帖出来;
看了一本书,书的介绍帖出来;
学校/单位搞了一个什么活动,日程表帖出来;
等等
  不是说这些内容不好,而是专门交流这些内容的地方有的是,都放到头版来,未免。。。
  呵呵,斗胆我也有一说一一回。

posted on 2004-03-10 19:08:00 by BigMonster  评论(28) 阅读(4771)

 
2004年03月08日


/******************************************************************
附一: P新郎 计算工具
*******************************************************************/
#include
#include

double _p_win_A_in_B_games(double dWinPossiblity ,int a ,int b);

void usage(const char * argv0)
{
?printf("useage:\n\t");
?printf("%s ? \n",argv0);
?printf("MUST 0< <1 AND 0<= ? <= ? AND >0 \n");
?printf("for example : %s 0.2 20 5 \n",argv0);
}

int main(int argc,char** argv)
{
?if (4!= argc)
?{
??usage(argv[0]);
??return 1;
?}

?double dWinPossiblity;
?int iGameTimes ,iHitTimes;

?dWinPossiblity=atof(argv[1]);

?iGameTimes=atoi(argv[2]);

?iHitTimes=atoi(argv[3]);

?if ( dWinPossiblity<=0? || dWinPossiblity >=1 )
?{
??usage(argv[0]);
??return 1;
?}

?if (iHitTimes <0 || iHitTimes> iGameTimes)
?{
??usage(argv[0]);
??return 1;
?}

?if (iGameTimes <=0)
?{
??usage(argv[0]);
??return 1;
?}

?double p,pAtLeast;
?int i;

?p= _p_win_A_in_B_games(dWinPossiblity ,iHitTimes ,iGameTimes);
?pAtLeast=p;

?for (i=iHitTimes+1;i<=iGameTimes;i++)
?{
??pAtLeast+= _p_win_A_in_B_games(dWinPossiblity ,i ,iGameTimes);
?}

?printf("%f %f\n",p,pAtLeast);


?return 0;
}


template
T times(T iDiShu,int iZhishu)
{
?int i;

?if (iZhishu<=0 )
??return 1;

?T result=1;

?for (i=0;i?{
??result = result* iDiShu;
?}

?return result;

}

__int64 C(__int64 iDi,__int64 iJian)
{
?int i;
?__int64 result=1;

?for (i=0;i?{
??result=result * (iDi-i)? / (i+1);
?}

?return result;

}

double _p_win_A_in_B_games(double dWinPossiblity ,int a ,int b)
{
?double p;
?p=C(b,a) * times(dWinPossiblity,a) * times((1-dWinPossiblity),(b-a));
?return p;
}

?

?

?


/******************************************************************
附二: PTOM 计算工具
注这个程序比较蛮,耗内存略多,您凑合着用。
要是想整个"读写头循环队列"什么的来节约内存,我也试过,慢 ^^
*******************************************************************/

#include

#include
#include
#include
#include

#define SIMU_COUNT 100000


void usage(const char * argv0)
{
?printf("useage:\n\t");
?printf("%s ? \n",argv0);
?printf("MUST 0< <1 AND 0< <=? ? <= \n");
?printf("for example : %s 0.5 14? 20 100 \n",argv0);
}

int simu_game(double dWinPossiblity,int iCheckRange,int iUpDownCondition,int iGameTime );


int main(int argc, char* argv[])
{
?double dWinPossiblity;
?int iCheckRange,iUpDownCondition,iGameTime;
?
?if (5!=argc)
?{
??usage(argv[0]);
??return 1;
?}

?dWinPossiblity =atof(argv[1]);
?if ( dWinPossiblity<=0 || dWinPossiblity>=1)
?{
??usage(argv[0]);
??return 1;
?}

?iUpDownCondition= atoi(argv[2]);
?if (! (0?{
??usage(argv[0]);
??return 1;
?}

?iCheckRange= atoi(argv[3]);
?if (! (iUpDownCondition <= iCheckRange))
?{
??usage(argv[0]);
??return 1;
?}

?iGameTime= atoi(argv[4]);
?if (! (iCheckRange <= iGameTime))
?{
??usage(argv[0]);
??return 1;
?}

?simu_game( dWinPossiblity,iCheckRange, iUpDownCondition, iGameTime );

?return 0;
}


typedef enum
{
?UP =0,DOWN=1,KEEP=2
} LEVEL_DELTA;


LEVEL_DELTA simu_game_once(double dWinPossiblity,int iCheckRange,int iUpDownCondition,int iGameTime )
{
?char * pResults;
?//+1 is for making scan not to buffer overflow
?pResults=(char*)_alloca(sizeof(*pResults) * (iGameTime) +1);?

?int i,iThreshold;

?iThreshold= (int)(RAND_MAX *dWinPossiblity);

?//simulate game
?for (i=0;i?{
??pResults[i]= rand() < iThreshold;
?}

?// [pRangeStart,pRangeEnd] is the check range
?char * pRangeStart=pResults;
?char * pRangeEnd = &pResults[iCheckRange-1];
?int iWinCount=0;
?char * pWalk;

?//init chech range
?for (pWalk=pRangeStart; pWalk<=pRangeEnd; pWalk++ )
?{
??iWinCount+= *pWalk;
?}

?//scan
?char * pEndPosition;
?pEndPosition= pResults+iGameTime;
?int iDownCondition=(iCheckRange-iUpDownCondition );
?while (pRangeEnd < pEndPosition)
?{
??if (iWinCount >= iUpDownCondition )
???return UP;

??if (iWinCount <= iDownCondition)
???return DOWN;

??iWinCount-= *pRangeStart;
??
??pRangeStart++;
??pRangeEnd++;

??iWinCount+= *pRangeEnd;
?}

?return KEEP;
}

int simu_game(double dWinPossiblity,int iCheckRange,int iUpDownCondition,int iGameTime )
{
?srand(time(0));

?int i,Counter[4];

?memset((void*)Counter,0,sizeof Counter);

?for (i=0;i?{
??LEVEL_DELTA delta;
??delta=simu_game_once(dWinPossiblity,iCheckRange,iUpDownCondition,iGameTime );

??Counter[delta]++;
?}

?printf("up: %d ,down: %d ,keep: %d\n",
??Counter[UP],
??Counter[DOWN],
??Counter[KEEP]
??眨眼笑脸;
?
?return 0;
}

posted on 2004-03-08 11:43:00 by BigMonster  评论(0) 阅读(1473)

 
2004年03月01日

上次我说了没有一个司机理解"在第一个可以左拐的路口左拐"这句话。
有人说确实存在BT的理解方法解读出其二义性,
更多的人说对于司机用这种表述方法不合适。
都有一定的道理。

现在,我又一次面临这个问题。
如果我说"第二个路口左拐",固然毫无问题,
可是这等于是放弃了努力,承认自己无法对司机表达上述意思,
这不是我的风格。

那我该怎么说呢?
"你一个路口一个路口往前开,如果遇到的路口不能左拐,就继续往前开,能左拐就左拐"
这么罗嗦的话,我是说不出口的(虽然客户对我说得出口)。

办法,我需要办法!

常言道:“问题一般可以通过增加中间抽象层来解决”。

于是我问:"第几个路口可以左拐?"
司机的回答有长有短,核心意思都是"第二个"。
我接着说"那里左拐。"

终于在总字数维持不变的情况下,顺利表达了意思,嘿嘿!

posted on 2004-03-01 10:49:00 by BigMonster  评论(10) 阅读(3520)

 
2004年02月24日

 

工作中经常发生协调问题,
我总是认为是描述方讲述不严格不明确造成我接受方不能领会其意思。

然而,现在我感到了迷惑。

事情的起因是因为我经常要座出租到一个地方去办事,
那个地方要过一个高架桥,
下桥第一个路口不能左拐,也不是我要去的,
而第二个路口可以左拐,拐过去之后,正是我要去的地方。
可惜我记不住路名,这第一第二也是最近刚刚记住,我一直和司机说,”在第一个可以左拐的路口左拐”。

我自认为这句话严格而精确,没有二义性。

可是,几次下来,司机没有一个懂,他们都回答”第一个路口不能左拐”!

我迷惑了,我错了吗,我该怎么表达我的意思呢?

posted on 2004-02-24 12:12:00 by BigMonster  评论(26) 阅读(3554)

 
2004年02月05日

我选了3张

1.城管走后,哭泣的卖红薯老人。

2.同在一片天空下

3.一个人的游行

全文在此

 

据我的观察,那位惊恐地注视背枪的美军士兵的伊拉克女孩,
面色和穿着比其它大部分照片的主人公强。

posted on 2004-02-05 13:35:00 by BigMonster  评论(10) 阅读(5307)

 
2004年01月08日

来轻松一下

posted on 2004-01-08 13:50:00 by BigMonster  评论(29) 阅读(6827)

 
2004年01月06日

我个人的招募标准是:
高考数学成绩折合百分制之后,>=80的,OK,没写过程序也不要紧;
不到80的,毙掉,哪怕他懂函数指针也不行。

 

结果当然是老板反对,嘿嘿。

posted on 2004-01-06 17:53:00 by BigMonster  评论(13) 阅读(3484)

 
【第1页/共3页,35条】
首页
前页
1

Powered by: Joycode.MVC引擎 0.5.2.0