星期二, 二月 28, 2006

103天

到今天为止,宝宝来到这个世界就整整103了,以前看过电影《101斑点狗》、《102斑点狗》,今天是我们家有了“103苗苗牛”
100天的时候,苗苗她妈带她去儿童摄影拍照。昨天中午,苗苗她妈传给苗苗她爸我看(绕口令?),果然拍得不错,几百块钱花得值。
现在正是苗苗长记性的时候,等我回家的时候,苗苗肯定不认识偶是who了。不过没关系,等我在家过两天,苗苗又要跟我玩成一团了。
现在在考虑一个问题,乌鲁木齐这儿能有什么东西能带回去送给苗苗玩?!

星期一, 二月 27, 2006

在乌鲁木齐

交行网络管理太严格了,只有中午吃饭的时候可以上网,所以上网的时间太有限了,而住的宾馆没有宽带,拨号太原始社会了,不想上。
现在的乌鲁木齐冰天雪地,白天晚上大街上都没什么人,时间上跟常州有两个小时的时差,很不适应。晚上7点,大多数商店都关门了,而实际上大多数单位在7点半之后才下班,所以下班之后根本没法购物,据说,这里的人都是在中午出来购物,呵呵,很有趣。
平时和周末都会出去转转,在人民广场到东风超市这片地区,也没走多远,发现乌鲁木齐到处都是地下商场,地下比地面还热闹,而且营业时间会到晚上9点半左右。
从人口密度来说,乌鲁木齐还是很萧条的,从楼高和商场数量来说,又还算不错的城市,也许旅游季节一到,乌鲁木齐会是另一番景象。

星期一, 二月 20, 2006

Evolution of Programmer(程序员进化史)

看到一篇极其搞笑的文章,转载并记录一下。

High School/Jr.High(高中、初中)



10 PRINT "HELLO WORLD"
20 END

First year in College(大一)


program Hello(input, output)
begin
writeln('Hello World')
end.

Senior year in College(大二)


(defun hello
(print
(cons 'Hello (list 'World))))

New professional(毕业生)


#include
void main(void)
{
char *message[] = {"Hello ", "World"};
int i;

for(i = 0; i < 2; ++i)
printf("%s", message[i]);
printf("\n");
}

Seasoned professional(开发人员)


#include
#include

class string
{
private:
int size;
char *ptr;

public:
string() : size(0), ptr(new char('\0')) {}

string(const string &s) : size(s.size)
{
ptr = new char[size + 1];
strcpy(ptr, s.ptr);
}

~string()
{
delete [] ptr;
}

friend ostream &operator <<(ostream &, const string &);
string &operator=(const char *);
};

ostream &operator<<(ostream &stream, const string &s)
{
return(stream << s.ptr);
}

string &string::operator=(const char *chrs)
{
if (this != &chrs)
{
delete [] ptr;
size = strlen(chrs);
ptr = new char[size + 1];
strcpy(ptr, chrs);
}
return(*this);
}

int main()
{
string str;

str = "Hello World";
cout << str << endl;

return(0);
}

Master Programmer(开发组长)


[
uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)
]
library LHello
{
// bring in the master library
importlib("actimp.tlb");
importlib("actexp.tlb");

// bring in my interfaces
#include "pshlo.idl"

[
uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)
]
cotype THello
{
interface IHello;
interface IPersistFile;
};
};

[
exe,
uuid(2573F890-CFEE-101A-9A9F-00AA00342820)
]
module CHelloLib
{

// some code related header files
importheader();
importheader();
importheader();
importheader("pshlo.h");
importheader("shlo.hxx");
importheader("mycls.hxx");

// needed typelibs
importlib("actimp.tlb");
importlib("actexp.tlb");
importlib("thlo.tlb");

[
uuid(2573F891-CFEE-101A-9A9F-00AA00342820),
aggregatable
]
coclass CHello
{
cotype THello;
};
};


#include "ipfix.hxx"

extern HANDLE hEvent;

class CHello : public CHelloBase
{
public:
IPFIX(CLSID_CHello);

CHello(IUnknown *pUnk);
~CHello();

HRESULT __stdcall PrintSz(LPWSTR pwszString);

private:
static int cObjRef;
};


#include
#include
#include
#include
#include "thlo.h"
#include "pshlo.h"
#include "shlo.hxx"
#include "mycls.hxx"

int CHello::cObjRef = 0;

CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
{
cObjRef++;
return;
}

HRESULT __stdcall CHello::PrintSz(LPWSTR pwszString)
{
printf("%ws\n", pwszString);
return(ResultFromScode(S_OK));
}


CHello::~CHello(void)
{

// when the object count goes to zero, stop the server
cObjRef--;
if( cObjRef == 0 )
PulseEvent(hEvent);

return;
}

#include
#include
#include "pshlo.h"
#include "shlo.hxx"
#include "mycls.hxx"

HANDLE hEvent;

int _cdecl main(
int argc,
char * argv[]
) {
ULONG ulRef;
DWORD dwRegistration;
CHelloCF *pCF = new CHelloCF();

hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);

// Initialize the OLE libraries
CoInitializeEx(NULL, COINIT_MULTITHREADED);

CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER,
REGCLS_MULTIPLEUSE, &dwRegistration);

// wait on an event to stop
WaitForSingleObject(hEvent, INFINITE);

// revoke and release the class object
CoRevokeClassObject(dwRegistration);
ulRef = pCF->Release();

// Tell OLE we are going away.
CoUninitialize();

return(0); }

extern CLSID CLSID_CHello;
extern UUID LIBID_CHelloLib;

CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */
0x2573F891,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};

UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */
0x2573F890,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};

#include
#include
#include
#include
#include
#include "pshlo.h"
#include "shlo.hxx"
#include "clsid.h"

int _cdecl main(
int argc,
char * argv[]
) {
HRESULT hRslt;
IHello *pHello;
ULONG ulCnt;
IMoniker * pmk;
WCHAR wcsT[_MAX_PATH];
WCHAR wcsPath[2 * _MAX_PATH];

// get object path
wcsPath[0] = '\0';
wcsT[0] = '\0';
if( argc > 1) {
mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
wcsupr(wcsPath);
}
else {
fprintf(stderr, "Object path must be specified\n");
return(1);
}

// get print string
if(argc > 2)
mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
else
wcscpy(wcsT, L"Hello World");

printf("Linking to object %ws\n", wcsPath);
printf("Text String %ws\n", wcsT);

// Initialize the OLE libraries
hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);

if(SUCCEEDED(hRslt)) {


hRslt = CreateFileMoniker(wcsPath, &pmk);
if(SUCCEEDED(hRslt))
hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello);

if(SUCCEEDED(hRslt)) {

// print a string out
pHello->PrintSz(wcsT);

Sleep(2000);
ulCnt = pHello->Release();
}
else
printf("Failure to connect, status: %lx", hRslt);

// Tell OLE we are going away.
CoUninitialize();
}

return(0);
}



Apprentice Hacker(黑客初学)


#!/usr/local/bin/perl
$msg="Hello, world.\n";
if ($#ARGV >= 0) {
while(defined($arg=shift(@ARGV))) {
$outfilename = $arg;
open(FILE, ">" . $outfilename) || die "Can't write $arg: $!\n";
print (FILE $msg);
close(FILE) || die "Can't close $arg: $!\n";
}
} else {
print ($msg);
}
1;



Experienced Hacker(上手)


#include
#define S "Hello, World\n"
main(){exit(printf(S) == strlen(S) ? 0 : 1);}



Seasoned Hacker(有经验)


% cc -o a.out ~/src/misc/hw/hw.c
% a.out



Guru Hacker(高手)


% cat
Hello, world.
^D



New Manager(项目经理)


10 PRINT "HELLO WORLD"
20 END



Middle Manager(产品经理)


mail -s "Hello, world." bob@b12
Bob, could you please write me a program that prints "Hello,
world."?
I need it by tomorrow.
^D



Senior Manager(部门主管)


% zmail jim
I need a "Hello, world." program by this afternoon.



Chief Executive(CEO)


% letter
letter: Command not found.
% mail
To: ^X ^F ^C
% help mail
help: Command not found.
% damn!
!: Event unrecognized
% logout

中文说明是我加的。
原文出处:

King kong

已经下载了很久,昨天终于有空看完了。
Peter Jackson把金刚拍得像泰坦尼克号+哥斯拉的混合体,小岛上的蜘蛛、爬虫、恐龙、蜥蜴、土著等还透露着魔戒的味道。
最喜欢的是金刚大战恐龙、金刚勇斗战斗机的两个片断,而金刚被蒙倒在海水后,向船上的女主角努力的伸出援助的手、以及金刚被干倒后悲伤的看着女主角,滑落帝国大厦的片断都是很不错的催泪弹。
而当夕阳落下,天空瓦蓝,海风习习,悬崖上,女主角在金刚的手掌里入眠的那个画面,让我想起了美女与野兽、或者狮子王。
这是一部融热血和热泪于一体的电影。以至于看完电影之后,老婆一拍桌子,大叫一声“人类真恶心”就跑开,去哭了!?
而我还纳闷的是,King kong这个词是怎么来的呢?跟Kongfu有关系吗?结果在www.kongisking.net上看到这样的解释:A gigantic ape diety known as Kong。原来金刚的名字叫Kong,Kong也许就是金刚从高处跳下落地后的声响,或者是前肢击打胸肌的声音。反正跟Kongfu这个词没有关系。

星期六, 二月 18, 2006

关于浏览器

从一开始上网就用windows,用internet explorer。windows95下的IE还是个很烂、很幼稚的产品,当年的浏览器之王是Netscape的Navigator,记得那时候33.6k的小猫下载东西是巨慢无比,下载东西的时候如果断线就要从头开始,那个郁闷啊,所以支持断点续传的下载工具是多么重要,那时候GetRightNetVampire这些老外的东西还是很抢手的,直到NetAnts的出现,以及后来有了更NB的FlashGet、NetTransport,现在就再也不使用老外的下载工具了。
现在很多在使用Firefox,喜欢它的自由、可定制、完全免费、绿色;也有很多人使用Maxthon,因为它完全兼容IE,且使用起来快捷顺手。
在我一开始知道MyIE的时候,我就发现了另外一个IE内核的浏览器Sleipnir,并且我觉得Sleipnir比MyIE要好,所以我选择了Sleipnir。现在,大概有99%的时间在使用Sleipnir,而还有1%时间因为要用X或者访问一些被封闭的站点,就选择了Firefox以及使用了Firefox内核的TorPark

星期五, 二月 17, 2006

novell公司的操作系统演示

Novell公司要推出它们的PC平台X86架构的操作系统,今天下载了一段演示录像,界面效果的确不错,不知道用起来顺手不?以前上学的时候还摸过NetWare两把,现在还摸过SuSE Linux,这些都是属于Novell的东西,不过SuSE Linux和RedHat Linux一样,开始逐步面向企业级用户了。经常玩联机游戏的,或者玩游戏比较有历史的应该都知道除了TCP/IP之外还有个IPX/SPX协议,这个也是Novell的。
要下载的赶快。

街头乞丐秀

街头的乞讨者越来越多,是中国太穷了,还是中国太富了,这还真是个问题?(其中有很多照片是在中国工作、旅游的外国人拍的,这突然让我想起一部上世纪七八十年代的记录片《CINA》(中国),意大利大导演安东尼奥尼的作品)。

日本麦当劳的电视广告

今天早上在Gea-Suan Lin's blog上看到日本麦当劳的广告,挺厉害,分男人版女人版,估计全世界也就日本敢策划、制作、播放这样的电视广告。或者说,日本麦当劳的顾客群是成年人。
AOL推出中文版,不过从它的新闻内容来看,应该属于中国政府过滤的范畴,涉及某邪教组织的东西还不少的说...,估计互联网监管部门还没有发现这个站点,抓紧时间浏览浏览...

星期四, 二月 16, 2006

所谓WEB2.0

不知道什么时候突然冒出来一个web2.0的概念,web2.0?对于非从业人员来说是个很悬乎的概念,我也对此莫名其妙了好久。
不过自从开始使用诸如bloglineswordpressdel.icio.usdiggflickr等等这些东西以来,发现今天的web已经跟5年前完全不同了,搜索引擎、个人主页、论坛、电子邮件已经不再新鲜,就像到处都飘扬的"GetFireFox here"的广告散发的热情一样,IE不再是唯一的选择,连msn space都开始考虑firefox的兼容性问题了,unix、linux、windows的争斗已经成了历史,尽管它并没有停止。
网络即自由,如果没有网络封锁,这个网将更加好玩。

星期三, 二月 15, 2006

出差

在常州安心待着,已经有差不多一年时间没有出差了,这次出差的地方比较遥远,且有点exotic,新疆乌鲁木齐,以前对新疆的概念模糊又神秘,自从发现大街上有数不清的维吾尔族青少年扒手后,对新疆的印象是非常糟糕。年纪轻轻做什么都比做小偷这份职业有前途啊
除此之外,刚三个月的宝宝也是个问题,因为这次出差要40天左右才能回来,到时候宝宝可能都不认识我这个老爸了,唉...
说来说去,总还是要去的,刚来新公司,出差任务下来了,推脱不去有点不像话,而同时还可以接触到我们产品的客户,让大家互相有个印象,以后的事情也好做点。
这几天春雨绵绵,气温也很高了,估计最低温度也有10度,到新浪查了乌鲁木齐的天气,晴天,零下十几度,跟东北差不多,还要多带点衣服。

星期一, 二月 06, 2006

又上班了

放假结束,今天开始上班,当前的主要的任务如下:
    1. 熟悉UNIX下的C/C++开发,掌握posix多线程编程,信号、互斥等...(接触不多,努力指数*****)
    2. 熟悉Sybase数据库(基础扎实,努力指数**)
    3. 熟悉dialogic语音卡的SDK(跟以前学LeadTools的SDK类似,努力指数***)
    4. 熟悉CallCenter、金融业务(对建行业务比较熟悉,努力指数**)
    5. 如何在C/C++中嵌入一种适合本项目的脚本语言(跟大家一起研究,努力指数***)

同时,发现自己越来越喜欢picasa2了,用了近6年的ACDSee逐渐淡出,以后再也不要费力寻找ACDSee的破解版。

过年回老家,家里没有宽带、拨号的速度无法忍受,开电脑干嘛?玩了几天连连看,呵呵,原来连连看也是个博大精深的游戏,一直以为非专业人士和无所事事的公务人员喜欢的连连看是个弱弱的游戏,在家这几天让我对它的景仰犹如...,看来无所事事的人喜欢的东西也很有趣,论坛有帖子说现在办公室最流行的不是连连看了,换成了一个打球的游戏,可惜名字没记住。

今天还有件趣事,同事换了台笔记本,Dell的730m,随机的驱动光盘居然没有找到声卡驱动,结果同事捣鼓了一个下午也没有装好机器,该声卡的官方网站也没有驱动下载,并且有一个声明说,本产品的驱动不提供下载,如有需要联系集成该声卡的厂商,那不就是Dell么,后来发现Acer也集成了该声卡,并在Acer的网站找到了这个驱动。哈哈,Dell是美国的神州电脑?

宝宝的名字

宝宝的名字问题一直像炊烟萦绕在我脑门,搞得我焦头烂额,够呛。
终于在前天晚上经与老婆协商达成初步一致,宝宝的大名叫沐桉,小名叫苗苗,希望宝宝在我们大家的呵护下健康茁壮成长。

星期日, 二月 05, 2006

年过了

过完年回来,发现space改样子了。不知道这次改版之后,firefox等非ie内核的浏览器能否完美显示。
然后又发现google的网页下加上了“京ICPXXXXX”字样,我晕啊,google这次是真的向中国政府妥协了,同时还推出了censored google,这样你在中文google里就只能看到被我国政府审查合格的搜索结果了,包括图像搜索等其他搜索服务。
当然,如果你依然可以享受没有censored的搜索结果,而搜索入口也必须从英文进入了。

下雪啦...

今年终于看到飘雪花了。

很有可能是2006年的唯一一场雪。