不是影评 – 汉考克

忍痛含泪把《汉考克》看完,应该说还蛮好看的,虽然情节普通。但是当看到theron把smith从厨房一把扔出去时候还是惊了一下,虽然把超人说成是上帝造出来的有点牵强。但是看到两个人对打那里,觉得还不错,至少以前没有在真人电影里看到这样的打斗。拿卡车砸人,过瘾。典型爆米花电影。

跟着打着哈欠把《超级英雄》看完,其实就是想看看怎么恶搞,其实看这种电影的人应该都有点自虐倾向,就是想看看什么样的恶搞能真的把自己turn on或者turn off。

–我就是想知道怎么成为超级英雄。
–Find ~~~ a ~~~ costume!!

不一样就是不一样

上周五,metlife的老大过来了,找所有team”训话”,旁边站一位微微秃顶的中国人,猜想应该是美国那边的二老大,一副要说点什么的样子。我当时对他的好奇远远大过那个”训话“的老大。可最后也没说一句话。
现在对印度人一点都不感冒了。之后就是一通政治和历史,原来这位也是元老级人物。所谓”metlife老大“,不是美国metlife公司的老大,只是cognizant的负责这个客户所有项目的老大。我问他,他所看到的中国团队有什么比其他美国,印度团队不一样的地方,老头居然说他眼中所有的团队都是一样的 –  energetic, passion.Come on! 一共就来几天就看出energetic,passionate。这样的回答显然是不会让人满意的,可最后也还是让他蒙过去了,谁让人家是老大呢?

那我看看不一样吧,只比较中国和印度的团队建设,一家之言。只有有比较,有不同,才会发展嘛。(之前似乎也比较过,算是新的认识吧)
1.团队发展,可能是国内这些年IT行业发展的太快,竞争太激烈,很难看到有可以发展超过5年的完整团队,大多数都是零零散散2,3年就各奔前程了,大多数人都不会考虑对团队的其他人负责,其他人也都可以认同他的选择。想想原因应该和中国人天生缺乏安全感有关系,而且现在这个时代也确实无法让人有安全感,万一出点意外什么的,真的想都不敢想。说远了,团队永远都没有成熟的时候,而一个成熟的团队恰恰是成功产品和项目的基础。

2.团队精英,中国人认为团队精英应该是那些技术过硬的牛们,而印度人则比较倾向于思考方式以及沟通能力。就我个人的经历看到的,也许他技术一塌糊涂,没有人喜欢维护它的代码。但他写的东西不会很复杂,是个人给点时间都可以知道怎么回事,怎么维护。但是他和客户还有manager说话就是很得体,“显得”很专业。是啊,代码谁回去看呢?除了自己最多就是一两个人,赏识你又怎么样,客户又不会看。
我相信代码写的好看的人同样可以把沟通做的很好,因为这二者都是一样的 – 怎么把东西做的好看。

3.侧重点
上面这一点也说了,侧重点的问题。我再说说后果,印度的软件工程师因为更注重沟通和某个行业的领域相关知识,所以在业务分析能力上要比国内的“纯”软件工程师强很多。所以要么经常看到的就是傻乎乎的印度菜鸟,要不就是看到什么都搞得定的印度大象。俺们的偏科有点严重。

(露怯了,那个中国人是这边新来的boss,一年真的是,可以发生很多事,回来要update的东西很多)

模式背后的事情

如果只单纯的从程序设计的角度去理解模式是不够的。
有时候看看那些封装,抽象和接口定义很容易有一个想法 – 何必呢。大师都说这是为了解耦,因为软件管理终归是依赖的管理,模式的背后同样是为了更好的管理依赖。

依赖管理的好坏从模块之间的划分就可以看出,最终的好处体现在开发,测试以及最后的整合的简化。从软件工程的角度可以很容易的体会出依赖管理的重要性。

说说抽象工厂模式,最常用的就是DAOFactory,可以有很多方法创建各种DAO对象。例如

DaoFactoryIF{
UserDaoIF getUserDao();
MemberDaoIF getMemberDao();
}

DaoFactoryImpl{
UserDaoIF userDao;
MemberDaoIF memberDao;
UserDaoIF getUserDao(){return userDao;}
MemberDaoIF getMemberDao(){return memberDao;}
//setters
}

DaoFactoryImpl通过类似spring这样的框架的帮助下注入所有的依赖,即真正的UserDaoIF,MemberDaoIF的实现。
这样的好处是什么呢?从DaoFactoryImpl这个类看,它并没有依赖任何具体实现。在发布时,所有的接口被发布为inf.jar,而各种实现 impl1.jar,impl2.jar…则是都只依赖于inf.jar。常见的错误做法是做成all.jar,也就是不管3721发布到一起,这么做也不能说绝对的不好,但如果要更大程度上的复用,避免局部的copy/paste,还是要把依赖划分的清楚一点,虽然这样做要求一些集成(integration)的能力。

宁信其有,莫信其无

昨天晚饭老婆说现在很多小青菜都不能吃了,严重污染。然后老妈在旁边掺和“是啊,上海的小青菜是苦的,家里的都是甜”。我赶紧把嘴里的半截菜吐出来,把菜盘子推的远远的“都不要吃了”。得!又一样东西不能吃了。家那边的豆腐,酸菜,粉条也都“封杀”了,据说也是食品安全问题。

唉,这种东西,老百姓只能是抱着“宁信其有,莫信其无”的心态跟着流言(或者根本就是事实)摇来摇去,无可奈何。

不过这里也有商机,比如各种碳筐,芦荟,防辐射服,真的管不管用不清楚,谁有工夫去调查一下?恐怕很少。但是商家知道很多人都有这样的心态,于是也就照样发着横财。

[zt]windows自动关机命令

转帖
Windows XP的系统目录system32自带关机程序shutdown.exe.如果想让Windows 2000也实现同样的效果,可以把shutdown.exe复制到系统目录.

shutdown参数

-i 显示 GUI 界面,必须是第一个选项
-l 注销(不能与选项 -m 一起使用)
-s 关闭此计算机
-r 关闭并重启动此计算机
-a 放弃系统关机
-m \computername 远程计算机关机/重启动/放弃
-t xx 设置关闭的超时为 xx 秒
-c “comment” 关闭注释(最大 127 个字符)
-f 强制运行的应用程序关闭而没有警告

常用命令

在运行中输入”shutdown -s -t (数值)”,不包括引号.即可在具体时间(秒)后关机.
例:输入”shutdown.exe -s -t 60″,表示六十秒后系统将自动关机.

在运行中输入”at (指定时间) shutdown -s”,可在指定时间关机.
例:输入”at 17:33 shutdown -s”,表示系统将在下午五时三十三分整自动关机.

所有自动关机命令即将执行前都会有提示窗口,不要以为中了病毒.

要取消以上指令,在执行前输入”shutdown -a”即可.

瓶颈

下午和高旦同学叨啦了一通人生,事业。虽然哥们这么多年,但真正这么正二八经叨啦应该是第一次。可能个泡是到了瓶颈期了。男人可能只有在这个时候才会表现的这么个。对我们这批人,瓶颈在哪首先要看自己真正想要什么。用围城解释很合适,让我说,个泡是太早”进城“了。

有的人想要挣钱,有的人想要经历各种生活,有的人可能要名留青史,有的人可能就想一辈子平平淡淡。如果太早的达到,反倒….。人总要给自己找点寄托,有的人说钱是挣不完的所以我要好好挣,有的人也说钱是挣不完的也要享受生活,有的人说学海无涯,有的人说前面那些都有病。个泡的问题就是几年就把平常老百姓一辈子的钱挣下了(东胜这种情况挺多)。现在想要做点别的事情,又有点迷茫。

这种情况该咋办了?我还没到这份上,也没个想法。之前不知道听谁提起的,10年做一件事,那么如果活70岁,从20岁开始可以好好做5件事也就不错了。也许想的简单点就是这样。

空手套白狼 – toefl(ibt)

toefl ibt考完了,没什么感觉,基本正常 – 因为根本就没怎么看,能上80就不错了。

由于基本上就是临阵磨枪,所以也以最简化,个人认为短期最有效的方法。
阅读一直以来都还不错,作了kaplan的两套82%的正确率,但实际考的时候好像要比kaplan里的难一点。
听力也还不错,谢谢印度的同事。
口语是弱项,也最没底,基本没有花时间看,毕竟口语也不是几天可以改善的,主要就是熟悉题型,考的时候表现中规中矩,因为时间比较少,精神一集中也就很快过去了。
写作主要是 看看别人的模板,然后临场发挥,ibt的好处就是可以写完之后再调整,如果字数不够还可以往里填一些废话进去:)应该比两年前pbt的4分好一点

就是时间长了一点,从9:50足足考到下午1:50 — 4个小时!到写作的时候肚子都不听的叫。

一点点现场经验:
1.早上早点起,考时候会比较清醒
2.提前半小时进场,坐到座位上以后就可以自己开始了,不用等其他人。如果早一点开始可以确保自己的比别人先抵达口语部分,免得自己在口语的时候被别人打扰。
3.因为kaplan里阅读只有3篇39个问题,考时候做完三篇就开始准备听力,结果biang~又两篇,吓一跳,还以为是听力的新题型呢,阅读的时间还是够的,觉得第一篇较难一点,可能是第一篇没热身吧
4.笔记很有用,听力和口语时候记下一些关键细节。
5.遇到对话时候,通常是一男一女,笔记一开始就先把man/woman先写到纸上,然后边听边把观点列到旁边。
6.我原来觉得笔记都是扯淡,因为很容易在记的时候走神,实际情况是真正考试的时候精力很集中,完全可以记下来的。当然记得要快,能记多少记多少。
7.写作的第一部分也要做笔记,把观点列出来
8.还有一点,口语如果像我这样比较烂,就不要提前准备太多的套话或者句型,很多时候时间太短,如果想着用这些,恐怕说都说不完。

update2008/7/29-早上查到成绩92(R24 L27 S17 W24)基本中等,不过口语确实差,看评语说主要是词汇和语法很不够。其他基本正常,写作也是一个中规中矩的分数,阅读听力和预期差不多。无论怎样,事情又做完一件。

SQLServer 交叉报表

Cross-Tab Reports
Sometimes it is necessary to rotate results so that columns are presented horizontally and rows are presented vertically. This is known as creating a PivotTable?, creating a cross-tab report, or rotating data.

Assume there is a table Pivot that has one row per quarter. A SELECT of Pivot reports the quarters vertically:

Year      Quarter      Amount
—-      ——-      ——
1990      1           1.1
1990      2           1.2
1990      3           1.3
1990      4           1.4
1991      1           2.1
1991      2           2.2
1991      3           2.3
1991      4           2.4

A report must be produced with a table that contains one row for each year, with the values for each quarter appearing in a separate column, such as:

Year
 Q1
 Q2
 Q3
 Q4
 
1990
 1.1
 1.2
 1.3
 1.4
 
1991
 2.1
 2.2
 2.3
 2.4
 
These are the statements used to create the Pivot table and populate it with the data from the first table:

USE Northwind
GO

CREATE TABLE Pivot
( Year      SMALLINT,
  Quarter   TINYINT,
  Amount      DECIMAL(2,1) )
GO
INSERT INTO Pivot VALUES (1990, 1, 1.1)
INSERT INTO Pivot VALUES (1990, 2, 1.2)
INSERT INTO Pivot VALUES (1990, 3, 1.3)
INSERT INTO Pivot VALUES (1990, 4, 1.4)
INSERT INTO Pivot VALUES (1991, 1, 2.1)
INSERT INTO Pivot VALUES (1991, 2, 2.2)
INSERT INTO Pivot VALUES (1991, 3, 2.3)
INSERT INTO Pivot VALUES (1991, 4, 2.4)
GO

This is the SELECT statement used to create the rotated results:

SELECT Year,
    SUM(CASE Quarter WHEN 1 THEN Amount ELSE 0 END) AS Q1,
    SUM(CASE Quarter WHEN 2 THEN Amount ELSE 0 END) AS Q2,
    SUM(CASE Quarter WHEN 3 THEN Amount ELSE 0 END) AS Q3,
    SUM(CASE Quarter WHEN 4 THEN Amount ELSE 0 END) AS Q4
FROM Northwind.dbo.Pivot
GROUP BY Year
GO

This SELECT statement also handles a table in which there are multiple rows for each quarter. The GROUP BY combines all rows in Pivot for a given year into a single row in the output. When the grouping operation is being performed, the CASE functions in the SUM aggregates are applied in such a way that the Amount values for each quarter are added into the proper column in the result set and 0 is added to the result set columns for the other quarters.

If the results of this SELECT statement are used as input to a spreadsheet, it is easy for the spreadsheet to calculate a total for each year. When the SELECT is used from an application it may be easier to enhance the SELECT statement to calculate the yearly total. For example:

SELECT P1.*, (P1.Q1 + P1.Q2 + P1.Q3 + P1.Q4) AS YearTotal
FROM (SELECT Year,
             SUM(CASE P.Quarter WHEN 1 THEN P.Amount ELSE 0 END) AS Q1,
             SUM(CASE P.Quarter WHEN 2 THEN P.Amount ELSE 0 END) AS Q2,
             SUM(CASE P.Quarter WHEN 3 THEN P.Amount ELSE 0 END) AS Q3,
             SUM(CASE P.Quarter WHEN 4 THEN P.Amount ELSE 0 END) AS Q4
     FROM Pivot AS P
     GROUP BY P.Year) AS P1
GO

Both GROUP BY with CUBE and GROUP BY with ROLLUP compute the same sort of information as shown in the example, but in a slightly different format.