Wednesday, December 27, 2006

世界不是天才创造的

// transshipment

see the original link above

p.s.
blogger is out of beta! how exciting we are!

......
Read More...

Monday, December 18, 2006

failure is the mother of success

there's no doubt that the pure technique skills are very important for a person. but it isnt the whole world. actually it is just a small aspect for your working. to be a generalist, not only in techniques.
such as English language skill :)

......
Read More...

Monday, December 11, 2006

软件技术人员常见的缺点 && 职业箴言

软件技术人员常见的缺点

过高的估计了自身的价值
兴趣导向性而不是目标导向性
频繁跳槽,不拿职业生涯当回事
过于关注细节而缺乏大局观
缺乏为人处事的成熟和练达

职业箴言
不要频繁跳槽
慎重的选择自己的职业
注意培养自己的人脉关系
技术不是你生命的全部
多结交不同背景的人
脚踏实地做事情必有斩获

......
Read More...

Sunday, December 10, 2006

"I think that the most important result of the computer graphics revolution is that it has helped heal the gulf between art and science."
-- James F. Blinn

......
Read More...

一个年轻董事长给年轻人的17条很好的建议

// transshipment

1. 一定要有独立的人格、独立的思想。一个经过独立思考而坚持错误观点的人比一个不假思索而接受正确观点的人更值得肯定。不要成为灌输教育的牺牲品。

2. 仕途,商界,学术。大致说来,每个人都注定要走上三条道路中的某一条。在进行职业生涯规划的时候,不妨以此作为思考的出发点。根据不同的职业生涯规划来塑造各自的核心竞争力。只有知道自己以后要做什么,才能知道自己应该学什么。

3. 专业无冷热,学校无高低。没有哪个用人单位会认为你代表了你的学校或者你的专业。千万不要因为你是名牌大学或者热门专业而沾沾自喜,也大可不必因为你的学校不好或者专业冷门而自卑。

4. 千招会,不如一招熟。十个百分之十并不是百分之百,而是零。如果你有十项工作每项都会做百分之十,那么,在用人单位眼中,你什么都不会。所以,你必须要让自己具备核心竞争力。“通才”只有在“专才”的基础上才有意义

5. 不逃课的学生不是好学生。什么课都不逃,跟什么课都逃掉没什么两样。一定要掌握学习的主动性,不要像读中学一样被老师牵着鼻子走。逃课没有错,但是不要逃错课。同时,既要逃课,又要让老师给高分。

6. 一定要学会理财。对于贫困生来说,首先要做的不是挣钱,而是省钱。很多年轻人读书的时候一掷千金,可是,毕业以后一个月的工资还不够交半个月的房租。

7. 大部分女生将电脑当成了影碟机,大部分男生将电脑当成了游戏机。年轻人要掌握必要的计算机操作能力,但是,很多时候电脑会成为浪费时间的堂而皇之的借口。有电脑的大学生非常多,可是,这中间很多人可能大学毕业的时候还不会Excel,不会做一个像样的PPT。

8. 做事不如做人,人脉决定成败。一个人有多少钱并不是指他拥有多少钱的所有权,而是指他拥有多少钱的使用权。一个人具备多少能力,不只是说他一个人的时候能做什么,还包括他能通过别人做什么。一个人赚的钱,12.5%是靠自身的知识,87.5%则来自人脉关系。三十岁以前靠专业赚钱,三十岁以后拿人脉赚钱。所以,请好好珍惜已经建立起来的人脉关系。这几年你认识的朋友可能会是你毕业以后最可宝贵的财富。

9. 互联网固然威力无穷,但是,如果你沉迷于网络聊天,或者沉迷于网络游戏,浪费的金钱倒是可以弥补,荒废的青春就无可追寻了。轻舞飞扬已经红颜薄命了,而痞子蔡却继续跟别的女孩发生着一次又一次的亲密接触。对于很多年轻人而言,网吧就是一个血淋淋的黑洞。

10. 爱情是不期而至的,可以期待,但不可以制造。花开堪折方须折,莫让鲜花败残枝。一个有一万块钱的人为你花掉一百元,你只占了他的百分之一;而一个只有十块钱的人为你花掉十块,你就成了他的全部。

11. 不要一门心思想着出国,更加不要迷信外国的月亮比中国圆。削尖脑袋记GRE词汇很可能是一件非常愚蠢也非常可悲的事情。既然全世界的公司都想到中国的市场上来瓜分蛋糕,为什么中国人还要一门心思到国外去留学然后给外国人打工?

12. 人才市场就是一个地雷阵。通过多种方式求职固然没有错,但是千万不要饥不择食。只要用人单位一说要你交钱,你掉头就走便是了。

13. 求职简历必须突出自己的核心竞争力。求职的时候大可不必像严守一那样“有一说一”,必要的时候恰到好处地说一些谎言是非常有用的。一份求职简历只要用一张 A4纸做个表格就足够了。很多女生的求职简历就像是写真集,不但浪费钱,而且对求职毫无用处。面试其实是有规律的,每次面试的时候只要背标准答案就行了…… (???)

14. 垃圾是放错位置的人才。所以,在找工作的时候一定要把自己放到那个让你成为人才而不是垃圾的职位上。当然,前提是你要知道自己究竟想做什么、究竟适合做什么。世界上最大的悲剧莫过于有太多的年轻人从来没有发现自己真正想做什么。骑驴找马固然没错,可是,并非随便找一头驴就能找到千里马。所以,一定要重视第一份工作

15. 大公司是做人,小公司是做事。进入公司工作以后,必须尽快融入写字楼政治。职员能否得到提升,很大程度不在于是否努力,而在于老板对你的赏识程度。在写字楼的政治斗争中,一定要学会自我保护。

16. 瘦死的骆驼比马大。撑死胆大的,饿死胆小的。一定要有创业的勇气和魄力。如果你一只满足于给别人打工,那么,不管你工资多高,永远都只能是一个可怜的穷光蛋。就算月薪2万,在深圳上海那种地方,一年的存款还买不来一个小小的洗手间。

17. 一定要多去图书馆多去自习室。很多书你现在不读,一辈子就再也没有机会去读了。虽然不是每本书看了都一定有用,但是,因为你不知道究竟哪本书以后会有用,所以只好多看书,并且抛弃那些过于功利的想法。尽管每次网到鱼的不过是一个网眼,但要想捕到鱼,就必须要编织一张网

......
Read More...

Monday, November 27, 2006

google.com IP list

// transshipment (segment)

if you cannt visit google.com by default in China, try to modify the text file below to help you:
X:\WINDOWS\system32\drivers\etc\hosts (X is your system partition)
then add:
"216.239.63.104 www.google.com" or "64.233.171.99 www.google.com" or "216.239.53.99 www.google.com" (without the double quotation marks)
finally restart your browser and have fun :)

p.s. here's more google.com IPs:

http://216.239.37.103     http://216.239.57.99     http://64.233.187.107
http://216.239.37.105 http://216.239.59.103 http://64.233.187.89
http://216.239.37.106 http://216.239.59.104 http://64.233.187.99
http://216.239.37.107 http://216.239.59.105 http://66.102.11.104
http://216.239.39.100 http://216.239.59.106 http://66.102.11.105
http://216.239.39.102 http://216.239.59.107 http://66.102.11.106
http://216.239.39.103 http://216.239.59.147 http://66.102.11.107
http://216.239.39.106 http://216.239.59.98 http://66.102.11.99
http://216.239.39.107 http://216.239.59.99 http://66.102.7.104
http://216.239.51.100 http://216.239.63.104 http://66.102.7.105
http://216.239.51.103 http://216.239.63.91 http://66.102.7.106
http://216.239.53.102 http://216.239.63.93 http://66.102.7.107
http://216.239.53.103 http://216.239.63.99 http://66.102.7.147
http://216.239.53.104 http://64.233.161.104 http://66.102.7.18
http://216.239.53.106 http://64.233.161.105 http://66.102.7.19
http://216.239.53.107 http://64.233.161.106 http://66.102.7.89
http://216.239.53.99 http://64.233.161.107 http://66.102.7.91
http://216.239.55.102 http://64.233.161.89 http://66.102.7.95
http://216.239.57.103 http://64.233.163.104 http://66.102.7.99
http://216.239.57.104 http://64.233.163.106 http://66.102.9.104
http://216.239.57.105 http://64.233.163.99 http://66.102.9.105
http://216.239.57.106 http://64.233.183.91 http://66.102.9.106
http://216.239.57.107 http://64.233.183.93 http://66.102.9.107
http://216.239.57.147 http://64.233.183.99 http://66.102.9.147
http://216.239.57.98 http://64.233.187.104 http://66.102.9.99

......
Read More...

Breadth-First Search

// transshipment (segment)

we assume that the input graphic G(V, E) is described by adjacency table.
for each vertex u∈V, save its is-visited-flag in color[u] (white for undiscovered, gray for discovered, black for visited), save its parent vertex in π[u] (π[u] = NIL if it doesnt have parent or doesnt know who's its parent), save its distance to the start s in d[u].
a first-in-first-out queue Q is used by the algorithm to hold the set of gray vertices. head[Q] is used to describe the head of Q, Enqueue(Q,v) means to add a vertex into Q and Dequeue(Q) is a operation of removing the head of Q.
Adj[u] is the set of neighbors of u.

here's the pseudo-code:

   procedure BFS(G,S);
begin
1. for each vertex u∈V[G]-{s} do
begin
2. color[u]←White;
3. d[u]←∞;
4. π[u]←NIL;
end;

5. color[s]←Gray;
6. d[s]←0;
7. π[s]←NIL;
8. Q←{s}

9. while Q≠φ do
begin
10. u←head[Q];
11. for each vertex v∈Adj[u] do
12. if color[v]=White then
begin
13. color[v]←Gray;
14. d[v]←d[v]+1;
15. π[v]←u;
16. Enqueue(Q,v);
end;
17. Dequeue(Q);
18. color[u]←Black;
end;
end;

......
Read More...

Wednesday, November 22, 2006

blogspot come back!

let's whoop it up~~~
http://islet8.blogspot.com/

......
Read More...

Tuesday, November 07, 2006

国内用户如何访问blogger beta控制台

号外~
国内的blogger beta用户最近访问不了控制台了,导致不能发帖,曾有人推荐使用花刺代理,效果还不错,不过现在的更方便,各位国内的朋友修改以后就都能留言啦!

在bloggerspaces的google group里发了帖子,有高人指点如下:
用任何文本编辑器打开 X:\WINDOWS\system32\drivers\etc\hosts 这个文件,添加 72.14.219.190 beta.blogger.com 以后,就可以访问了:)

......
Read More...

Monday, November 06, 2006

about "explicit", one of the C++ keywords

explicit修饰的构造函数不能担任转换函数
in ANSI/ISO C++ Professional Programmer's Handbook it said,

explicit Constructors
A constructor that takes a single argument is, by default, an implicit
conversion operator, which converts its argument to an object of its class .
for example, declear such a class
class CArray
{
public:
CArray(void);
explicit CArray(int size);
......
};
the explicit is very important for this declearation. without the keyword the compiler may convert int to CArray like follows
CArray arr;
......
arr = 8;
the c++ compiler will convert 8 to an instance of class CArray with 8 elements and assign the instance to arr. actually it's wrong (though with no compile or link errors). but we'll get some compile error while using explicit in declearation and avoid it. :)

notes: explicit同样也能阻止"以赋值语法进行带有转型操作的初始化".

......
Read More...

Friday, November 03, 2006

my first game was born in Oct, 2006

it names 王牌, with folk name 三张牌
here's its face:

it include some animation such as flying jettons. i wrote it in one month based on a net-game development platform.
now i'm going to write a new game called SiGuoDaZhan (maybe say Chinese Military Chess), good luck to myself :)

......
Read More...

bloggerers, come here~

i wanted to write some word yesterday noon, but......F**K GFW! the access to blogger beta is forbidden.
"impossible is nothing", yes, now i can write blogs as usual~ is it GFW's benefaction? absolutely not! we should appreciate a freeware called ProxyThorn (花刺代理验证), it's highly recommended!
bloggerers, just write it

p.s.: i use the proxy(203.106.52.102:3128) to access to blogger beta dashboard.

p.s.2: my friends in China can visit my blog through http://inblogs.net/islet8 or http://pkblogs.com/islet8

......
Read More...

Wednesday, November 01, 2006

代码也是一件艺术品

// transshipment (segment)
//--------
偶尔和小文哥讨论一下编程心得,设计架构,小文哥对代码精益求精的精神深深教育了我,小文哥指出:
代码也是一件艺术品实现功能只是最基本的要求,能做到实现功能的人,一抓一大把
他用洁癖来形容自己编写代码的态度,他写的代码里,没有warning,没有垃圾注释,没有垃圾TODO
//--------

shouldn't we be much more religious while facing an art?

......
Read More...

Sunday, October 22, 2006

a disaster comes up

my blog was crashed incomprehensibly. DAMN!
i have to reestablish it, and time is needed. i apologize to those who commented in my blog for this disaster, all the comments are lost.
all the posts will be re-public soooooooooooon :)

......
Read More...

Saturday, October 14, 2006

如何准备软件工程师的面试

// transshipment, 共勉:)

(作者简介: 王忻,Google 工程师。北京出生,五岁时跟随父母移居美国。中学期间跳了三级,十五岁进入了加州理工大学,加入 Google 前曾在微软等公司工作。)

六月份的时候,我曾经在黑板报上介绍过“如何写一份好的工程师简历”, 今天想跟大家来谈谈如何准备软件工程师的面试?假设,现在您的杀手简历 (killer resume)已经吸引了某大公司的注意并约你面试。那么接下来该如何准备呢?

我在 Google(以前是微软)工作期间面试了不下 300人,其中某些应聘者确实表现非凡,但有些却显得准备不足。当然许多面试准备不足的人最后依然获得了录用通知,因为他们本身确实才华出众。但如果应聘者能提前准备妥当,那么面试过程将更为保险和轻松。以下所列出的就是我根据多年经验总结得出的建议:

1.使用相同的工具(如铅笔和纸张)和时间限制(例如半个小时)模拟面试训练

Google 和微软都会让应聘者在白板上手工解答编程问题,但通常大部分的应聘者都是习惯于在电脑上利用编程工具系统编写程序。因此面试的时候,某些应聘者离开了熟悉的电脑光标,站在白板前感觉手足无措不知该如何起行。又或者他们不习惯在编程之时旁边有人观看,这会让他们感到紧张而无法正常思考。

在现实生活中,如果你想要横渡英吉利海峡,自然不能总是在室内游泳池练习。你必须投身于大海在波涛之中训练,在准备面试的时候也是如此。:)

在面试开始之前你最好向招聘单位询问面试形式和面试问题。如果招聘单位让你在某个房间考试且仅提供没有汇编程序的编辑器,那么就应该在家中按照这种情景进行练习。如果招聘公司单位让你在白板上回答问题并会安排考官在旁监督,那么你就要找一位软件工程师来扮演考官配合你练习。即使找来的考官经验不如你也没有关系,他们依然能帮助你消除在他人面前出错所带来的紧张感,这样可以让你适应有人在旁边盯着看的面试氛围。

如果你恰巧认识我并希望由我来帮你联系,那我的条件就是必须请我吃饭:如果你已经工作了就吃日本寿司大餐;如果你还是学生,那么吃比萨饼也可以。:)

2.在面试过程中不要对细小错误耿耿于怀

我曾不止一次的在面试过程中碰到这种情况:当应聘者知道编程问题后,他马上就想到了最佳的方案、确定了边界条件,然后开始编写程序。但在编写过程中,应聘者犯了诸如首先检查是不是操作顺序错误或忘记设定某变量等无关大局的小错误,当我指出其错误之后,应聘者立刻变得十分紧张,这种焦虑情绪影响了他在后面环节的正常发挥。

其实这种恐惧心理完全不必要。一名优秀的程序员在编程过程中出现错误也是很正常的,就像是小提琴手在演奏高难度的巴赫交响乐时也会偶尔失误。音乐会的听众可能会觉察到这些错误,但是听众绝对不会因为这种细小失误就把出色的小提琴手看作是门外汉。

即便应聘者彻底搞砸了某个编程问题,面试考官也可能会提出不同的问题并会容忍应聘者在某个问题上的失误。再退一步说,就算某次面试彻底失败,你也有机会在其它面试上补救。

我的一位同事(一个项目的技术负责人)最近面试了一个人,在开始面试时他觉得面试者的交流方式存在问题,因此开始表现的相当不友好。但经过了整个面试过程后,面试者证明了自身的能力,而我的那位同事也成了那位面试者最坚定的支持者。在过去的一年中,我从未见过这位同事如此强烈的支持哪位面试者。

所以,因此就算面试进展不顺,也务必坚持到底不要放弃。

3.在面试过程中不要失礼

这似乎是不用说的问题,但在面试过程中我确实碰到过影响很不好的失礼行为。曾有一位前来应聘软件工程师的人看到我就说:“哇,我真不敢相信你这么年轻!你看上去好小!!我觉得你才 18 岁!”我看了他的简历才搞清楚原来是来应聘的,在开始的时候我却忍不住想:“这个人是来面试我的吧?!?!”

面试者的这种言行实在要不得。

面试者也要注意不要说出诸如此类的话:“哇,你真的就是考官吗?你看上去好老!”“哇,你真的是来面试我的,你看上去好胖!”(相信应该不会有人说这样的话)。

在我的另外一次面试中,应聘者的手机在面试开始 15 分钟之后就响了,她没有理会,手机连续响了 20 秒,这样不免会对面试造成影响。5 分钟之后,她的手机又响了,她依然没有理会;5分钟之后,手机第三次响起。最后她终于抓过手提包在里面翻出了手机。我想:“是时候关掉手机了,她在进来之前就应该把手机关掉。”但是她在手提包中拿出手机之后却旁若无人的打起电话来,而且就在面试过程中间!

这种情况唯一可接受的理由就是他有什么非常紧急的事,但是即便情况如此,那么他也应该在面试开始之时就讲清楚,让面试官有所准备。

4.不要在面试中喧宾夺主

我曾经面试过几个应聘者,他们好像铁了心肠一定要告诉我他们最近的“超级项目”。当我开始发话他们就立刻打断:“我想让你了解我们近期处理的超级项目,10年之前当这个项目开始之时还默默无闻……”,然后接下来的5分钟时间都在那里滔滔不绝唾沫横飞。

有时应聘者好像打定主意要给每个考官详细描述其引以为豪的项目,然后一整天都在那里翻来覆去的说这个项目。

记住:面试官在面试过程中有具体的问题需要询问。但是如果应聘者喧宾夺主,那么考官就可能无法获得充分的信息来做出判断,同时这种行为也会让考官觉得应聘者很难共事。

如果你确实想谈论自己的项目,那么就应询问面试官:“我觉得最近的某某项目能充分体现我的能力,我能不能用 10分钟的时间来描述一下具体情况?”这样就会给面试官空间来调整面试过程,由此也避免毫无征兆就让面试离题万里。

5.在回答需要具体答案的问题之时,记得首先要有总括性的发言

有时我会问一个答案可以很简练的问题,例如:“在你的那个成功项目中总共有多少人参与?”但应聘者往往会就此打开话匣:“恩,张三参与了这个项目,他负责UI部分,当然我也会给他一些指导。李四也在项目中,她在宾州远程工作,负责后端服务器。两年之后我们又有新人王五加入……”

在应聘者滔滔不绝的讲了三分钟之后,我还是不知道这个项目到底有多少人参与。

因此首先要简练的回答问题,然后再展开描述:“在我接手项目时有三个人,但当我离开项目时人数已经增加到12人。”

当然如果能简练的回答问题,然后征询意见之后再展开论述那就更好了:“在我接手项目时有三个人,但当我离开项目时人数已经增加到 12 人。我可以讲一下各人在项目中的具体分工吗?”

6.(不是特别重要)在面试中要衣着得体,舒适的商务便装是最佳的选择

人们有时候会为衣着犯愁。但是最重要的是要让自己感觉舒适。如果需要具体的建议,那么我建议穿衬衫甚至T恤衫。对于某些公司(例如 Google),西装革履显然是太隆重了。

这条建议不必太看中,因为面试官不会管应聘者穿什么。最好应该询问人事招聘部门穿什么合适,因为不同国家有不同习俗,就算美国东海岸和西海岸的公司着装文化也会有差别。像 Google 这样的公司在着装方面更加随意,因此如果你穿着“三件套”的经典西服去 Google 面试,考官可能会有异样的感觉。因此如果你真的具备软件工程的本领,穿什么其实并不重要。某个应聘者曾经穿着皱巴巴脏兮兮的T恤就跑来面试,他的T恤衫上还有着许多破洞。但最后他还是拿到了录取通知(当然我绝不建议如此穿着)。

最后的一个小故事

最后我想讲一场极为尴尬的面试。在看完之后,我希望你能这样想:无论你的面试如何糟糕,你至少要比这位应聘者幸运。

以前我还在微软的时候,我们通常会为应聘者准备一些饮料,某位暂称其为 Jeff 的应聘者要了一听百事可乐。我们走进面试房间后,他就在桌前坐下了。接下来我们简要的谈了谈他的工作经历,然后他开始在白板上解答编程问题,此时他还没有打开他的可乐。

我们俩站在白板前,然后杰夫开始在上面写程序。在写程序之时他沉浸在对整体构架的思考中,下意识的退了一步来查看整个白板。在后退时他不小心碰到了桌子,放在桌上的百事可乐掉到了地上。

因为可乐还没有打开,因此当可乐罐落地的时候,可乐罐炸开了。

可乐罐在地上打转,泡沫喷的到处都是。你可以想象当时的场景,可乐喷到了墙上、书架还有我电脑的键盘上。我俩楞在那里,手都半伸着(根本来不及抓到可乐罐),眼睁睁的看着可乐弄得到处都是。

我们花了 5 分钟的时间用纸巾来清理现场(虽然我的书本自那天之后都粘页了,而墙壁也不再是干净的了)。

随后我们重新开始白板测试。杰夫此时已非常紧张(换了谁都会紧张吧?)。他写了几行程序,然后擦掉,然后再写。他是用自己的手擦拭白板而不是用板刷。他急得额头冒汗,然后他又用刚刚擦过白板的手擦汗。在面试过程结束之时,他的脸上布满了红色、绿色和蓝色的颜料。

我说:“你的手上粘了很多颜料,我带你去卫生间洗洗吧,”然后我把他领到洗手间让他从镜中看到了自己的尊容。

......
Read More...